范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

分布式数据库技术前瞻

  背景介绍
  在业务逐渐增长的 4 年多里,我公司的的数据库经历了从 单表数十 GB 到上百 GB 的过程。基于数据量的升级变迁,我们的数据库也经历了 2 次架构迭代,并在探索三代数据库架构:第一代数据库架构 —— 一主一从集中式部署的时代。第二代数据库架构 —— 垂直分库,一主多从的时代。第三代数据库架构 —— 云上一主一从一日志节点,基于域名&vip实现高可用的时代。
  第三代数据库架构短板OLTP 场景需求痛点
  截止目前账务系统的核心表累计数据量已达到单表 8000万行以上,还在高速增长中。监管要求金融行业历史数据至少保留 5 年以上。这给数据库系统带来了不小的挑战:海量的历史交易与账务数据堆积在 MySQL 数据库中,使数据库越发臃肿,维护困难(在线 DDL 变更、数据迁移、磁盘容量瓶颈、磁盘 IO 瓶颈等)。ccs_order_hst表现有8800万,56G数据,日均增长18万,ibd文件日均增长120MB,预计到年末将趋近80G。用户对历史交易订单的查询(OLTP 场景)是必备功能,这些海量的历史数据会根据用户需求通过 微信公众号、APP 终端等渠道进行实时查询(内部、外部用户)。此场景决定了不能通过传统的离线大数据方案来满足需求。需要一种偏向于前台、中台的数据治理方案。海量数据也会导致核心跑批时间延长,同时导致数据库单点性能瓶颈,应用可以加分片,但是数据库无法水平扩展。传统分库分表解决方案痛点分表跨实例后,产生分布式事务管理难题,一旦数据库服务器宕机,有事务不一致风险。分表后,对 SQL 语句有一定限制,对业务方功能需求大打折扣。尤其对于实时报表统计类需求,限制非常之大。对join语句不友善。分表后,需要维护的对象呈指数增长(MySQL 实例数、需要执行的 SQL 变更数量等)。
  分布式数据库技术选型
  基于第三代数据库架构的核心痛点,我们需要探索新的数据库技术方案来应对业务爆发式增长所带来的挑战,为业务提供更好的数据库服务支撑。
  分布式数据库有如下显著特点:无限水平扩展能力在线 DDL 操作不锁表分布式强一致性,确保金融数据 100% 安全完整的分布式事务处理能力与 ACID 特性选型出发点是否开源,自主可控在 GitHub的活跃度及社区贡献者方面,TiDB是国际化的全球开源级项目,是 NewSQL 行业中的代表性产品。Oceanbase作为一款在阿里孵化的一款分布式数据库产品,也于2021年6月1日在Gitee开源,并积极推进社区建设与在线培训MySQL 协议兼容性Tidb与Oceanbase都与 MySQL 5.7 高度兼容,需要应用改造的地方少市场占有率Tidb与Oceanbase 在国内分布式数据库市场占有率分列第一和第二Tidb 与 Oceanbase 具体比较1、产品发展历史TidbPingCAP 成立于 2015 年4月,是一家企业级开源分布式数据库厂商,注册资本 1 亿美元,D 轮融资 2.7 亿美金。2019年9月于Github开源,有2.81万star关注,文档齐全,对使用人员友好,有数据库开发规范(https://asktug.com/t/topic/93819)具备PCTA与PCTP两级认证,因疫情影响,培训与线下考试都已停止Oceanbase2010年于阿里巴巴集团诞生产品,2020年6月正式进行独立公司化运作,注册资本 1 亿元2021年6月1号于gitee正式开源,有521star关注,文档较少,尚需完善具备OBCA、OBCP、OBCE三级认证,线上培训,线下进行考试2、使用案例Tidb广泛应用于互联网与金融行业,长沙目前已知案例包括和包支付、澳优乳业、福米科技、兴盛优选等,在全国有股份制银行光大、浦发,头部城商行,北京银行等金融行业案例,产品稳定性得到有效验证,企业用户和社区用户超过 1500 家。Oceanbase服务于蚂蚁集团内部、移动运营商,网商银行等大的金融保险机构3、产品架构TiDB 分布式数据库采用 Shared-Nothing 架构,同时整体架构拆分成了计算、存储、调度,多个模块,各模块之间互相通信,可运行在普通 PC、K8S 上,载体多样。扩展性上,可按需灵活扩展计算或存储资源,提高系统整体的吞吐。OceanBase 数据库采用 Shared-Nothing 架构,各个节点之间完全对等,每个节点都有自己的 SQL 引擎、存储引擎,运行在普通 PC 服务器组成的集群之上4、存储引擎Tidb HTAP混合数据库Oceanbase准"内存数据库" + LSMTree存储,避免随机写5、标准SQL语句支持TiDB1、支持标准 SQL,DDL 、DML 、DCL、DQL(包括分析函数,各种查询)。2、部分支持完整性约束,不支持check约束和外键约束功能,但支持语法兼容。3、支持表管理、视图管理。4、部分支持分区表,支持 range 和 hash 分区,不支持 list 分区和复合分区;支持全局索引,不支持本地索引,但在后续的 5.0 版本中将全面支持分区表,解除前述相关限制。5、不支持临时表、存储过程,自定义函数,表空间,触发器等创建和使用。6、支持 sequence 创建和使用。7、不支持添加列的auto_increment属性,可以用AUTO_RANDOM(仅支持主键)语法来保证主键唯一性(不需要连续或递增)。Oceanbase支持1、支持大部分查询功能,包括支持单、多表查询;支持子查询;支持内连接、半连接以及外连接;支持分组、聚合;常见的概率、线性回归等数据挖掘函数等2、暂不支持空间数据类型和 JSON 数据类型3、不支持空间分析函数、JSON 函数和性能模式函数4、支持一级分区,模板化和非模板化二级分区,二级分区支持 HASH、KEY、RANGE、RANGE COLUMNS、LIST、LIST COLUMNS 分区6、分布式事务读写强一致TidbTiDB 支持分布式事务,提供乐观事务与悲观事务两种事务模型 。TiDB 3.0.8 及以后版本,TiDB 默认采用悲观事务模型。乐观并发控制期望事务间数据冲突不多,只在提交阶段检测冲突能获取更高的性能。悲观并发控制更适合数据冲突较多的场景,能够避免乐观事务在这类场景下事务因冲突而回滚的问题,但相比乐观并发控制,在没有数据冲突的场景下,性能相对要差。TiKV 的 MVCC 实现是通过在Key后面添加版本号来实现当新写入的数据覆盖旧的数据时,旧的数据不会被替换掉,而是与新写入的数据同时保留,并以时间戳来区分版本。数据版本过多会占用大量空间,同时影响数据库的查询性能, GC 的任务便是清理不再需要的旧数据。GC 会被定期触发,默认情况下每 10 分钟一次。每次 GC 时,首先,TiDB 会计算一个称为 safe point 的时间戳(默认为当前时间减去 10 分钟),接下来 TiDB 会在保证 safe point 之后的快照全部拥有正确数据的前提下,删除更早的过期数据。GC 在执行过程中会删除大量数据, 可能会对线上业务造成影响。 可通过修改 TiKV 配置中的 gc.max-write-bytes-per-sec 限制 GC worker 每秒数据写入量, 降低对正常请求的影响, 0为关闭该功能。TiDB 实现了快照隔离 (Snapshot Isolation, SI) 级别的一致性。为与 MySQL 基本保持一致,又称其为"可重复读"。事务开始时获取 start timestamp,也是快照的版本号;事务提交时获取 commit timestamp,同时也是数据的版本号事务只能读到在事务 start timestamp 之前最新已提交的数据事务在提交时会根据 timestamp 来检测数据冲突MySQL 可重复读隔离级别在更新时并不检验当前版本是否可见,也就是说,即使该行在事务启动后被更新过,同样可以继续更新。这种情况TiDB 会导致事务回滚,导致事务最终失败,而 MySQL 是可以更新成功的。Oceanbase默认Read-Committed,通过 MVCC+TSO 实现7、锁机制Tidb能检测到死锁并解除死锁,悲观锁和乐观锁都支持,默认悲观锁,悲观事务的行为和 MySQL 基本一致,在执行阶段就会上锁,先到先得,避免冲突情况下的重试,可以保证有较多冲突的事务的成功率。但如果业务场景本身冲突较少,乐观锁的性能会更有优势TiDB 没有间隙锁,当无法保证符合过滤条件的数据唯一时,MySQL 会锁住过滤条件能涵盖到的所有行:范围锁,全表锁。TiDB 只会对读取到的行加锁。Oceanbase只有行锁,没有表锁只有写锁(X锁),没有读锁8、高可用性和扩展性TiDB计算、管理、控制节点,任意挂一个都对集群整体无影响两地三中心的架构下,网络延迟保证 10 ms 以内,保证单中心失效的情况下,可以保证 RPO 为 0,PTO 30 s,即业务不丢数据,业务能在 30s 内恢复,同时还有双中心方案,可以在同城双中心部署集群,做到同城双活。底层数据分片粒度较小,灵活度较强。TiKV、TiDB、PD都支持在线扩容、缩容,集群工作正常,业务不受影响Oceanbase至少3个zone,单个zone服务器宕机无影响。集群的资源扩容就是为每个Zone增加相应的节点。租户资源的扩容是通过调整其Resource Unit的规格和数量来完成。9、数据库运维能力TidbTidb安装部署更为简单,架构清晰,利用tiup组件,半个工作日能搭建测试集群大表DML在亿级数据及索引存在的情况下,秒级对一段时间范围内的流水数据进行删除,同时对记录和表不造成任何影响。自主测试drop和truncate 200万级别的表,tidb上耗时不到1s,mysql上要3-4sOnline DDL针对包含亿级数据的表增加字段。在DDL进行的过程中对业务无影响。自主测试200万级别的表加列和减列,tidb上耗时不到1s,mysql上要6-9s加索引操作由于需要回填数据,因此执行时间略长。而在回填数据期间,需要将回填的数据写入 TiKV, 对 TiKV 会产生额外的写入压力,从而造成一些性能影响。对业务开发较为友善,业务如需经常发版,表结构可能也需要经常迭代,TiDB 的相关功能可以较好满足商业敏捷性的要求。Oceanbase组件较多,有Unit、资源池、多租户多层机构,新的版本通过obd组件,0.5个工作日也能运行起来;Online DDL表建好后,主键不能更改。如果需要修改,只能删表重建。列类型修改有较大限制。Varchar 长度只能由短变长,不能由长变短。索引生效时间较长,建议在建表时将索引语句一并纳入。
  10、最佳实践Tidb建表时避免设置递增主键,同时将大表配置 Region 打散,避免热点分区问题为了确保事务的 ACOD,TiDB 中的事务操作都需要经过两阶段提交,在 TiDB 最新发布的 5.0 中也使用了索引组织表、近似一阶段提交 来降低因为频繁的网络交互致使延迟变高的影响,总体而言,在延迟要求严格的场景中, 使用 5.0 中的关于延迟的优化,和小事务打包来获取极致的低延迟。START TRANSACTION; UPDATE my_table SET a="new_value" WHERE id = 1; UPDATE my_table SET a="newer_value" WHERE id = 2; UPDATE my_table SET a="newest_value" WHERE id = 3; COMMIT;目前单个事务大小限制在 10GB, 超过 10GB 的事务依然会报错, 不过 10GB 的事务已经能够覆盖大多数场景了:客户端在提交之前, 数据都写在内存中, 而数据量过多时易导致 OOM (Out of Memory) 错误。在第一阶段写入数据耗时增加,与其他事务出现读写冲突的概率会指数级增长, 容易导致事务提交失败。最终导致事务完成提交的耗时增加。为了使性能达到最优, 建议每 100  500 行写入一个事务。事务对内存的占用可能会有 3~4 倍的放大, 10GB 大的事务可能会占用 30~40GB 的内存。如果需要执行特别大的事务,需要提前做好内存的规划, 避免对业务产生影响
  分布式选项建议与设想Tidb 与 Oceanbase 相比,具备使用范围广,业界认可度高,社区更为成熟的优势。对于我司而言,当前的关注焦点不是 TiDB 或者 OceanBase 是否稳定可靠(据在和包的学长,和在福米的运维朋友反馈,Tidb在应对高并发和去Oracle时,表现都不错),而是怎么才能快速获取到 TiDB 或者 OceanBase 的最佳实践经验,将其纳入企业基础技术栈之内。Tidb最佳实践(和包 + 马上消费的实践经验)使用 NVME 协议的 SSD使用万兆网卡的服务器和交换机结合K8S容器云平台,降低硬件成本,马上消费作为国内第一家将所有 TiDB 都运行在 Kubernetes 容器云上的金融企业,将最小 TiDB 集群资源从 6 台服务器 ( pd-server 与 tidb-server 混合部署)降低成了 2 pods tidb-server、3 pods pd-server、3 pods tikv-server,硬件成本降低为原来的 30% 左右(需要技术积累与多方面测试,节点数多的情况下更有效果)
  说明:本文来自专栏 - 分布式数据库技术前瞻 | TiDB 社区

12月13日中药材市场快讯石膏黄芩丹参板蓝根干姜甘草成都市场快讯石膏市场需求量增大,价格出现上涨,市场货源量有限,需要厂矿定做,目前荷花池市场石膏块商户报价5元公斤。黄芩近日市场寻货商家增多,价格有一定涨幅,市场甘肃货切片价格在30冬季热饮红糖姜枣杏仁奶姨妈期在家就能简单自制一杯热饮红糖姜枣杏仁奶冬天体内积聚的寒气重,喝一杯暖暖的红糖姜枣杏仁奶,可以加快人体内湿寒之气的排出,杏仁奶富含蛋白质胡萝卜素以及多种维生素与红糖姜枣一起服用止咳神药甘草片效果好,为什么限制购买了?危害你可能不清楚咳嗽从本质上来说并不是一种病,它是人体肺部自我保护的一种机制,通过咳嗽可将人体呼吸道当中的分泌物异物排出体外。但是同时咳嗽也是疾病的一种症状之一,无论是慢性疾病,呼吸道急性感染性疾张锡纯医案吃大枣上火?张锡纯独创大枣服用方法使滋补而不上火张锡纯有一个同乡朋友赵厚庵,平时身体就比较羸弱,并且年纪也已经50岁,饮食减少,身体一天天的消瘦下去。于是就找到张锡纯,看看有什么比较好的方子补补身体。张锡纯就告诉他,每天服用数十十日涨跌甘草行情转稳,沙苑子射干商家观望总指数情况2022年11月30日总指数止于1709。32点,比10日前(2022年11月20日)下降了3。33点,下降幅度为0。19。上涨品规从40个减少到32个,下滑品规从41个巅峰对决,就要来了!2022世界杯梅西最后一舞能否圆梦潘帕斯雄鹰的狂鸣让克罗地亚狂想曲收束的尾声变得悲壮,高卢雄鸡的野望摧毁了亚特拉斯雄狮的梦想两场世界杯半决赛没有出现冷门,综合实力更加强劲的阿根廷和MIUI14真香!小米11用户这回可以放心了,双环保障下重返巅峰相信很多米粉都在期待MIUI14的适配,毕竟这回MIUI的升级确实很大,大家都在想自己的手机升级了这款系统之后,在流畅度方面会不会有大提升。目前已经有很多米粉收到了MIUI14开发断崖式下滑!本赛季五位巅峰不在的球星保罗领衔,特雷杨才24岁随着新赛季的深入,在开赛期间表现不好的一些球星逐渐找回了状态,像老詹在开赛初期还有过数场得分不过20分的表现,近期连续砍下30而且命中率还过半了,虽然没有了巅峰期的水准,但他还有着赵丽颖ELLE杂志大片曝光,红黑撞色尽显冷艳高贵,美丽迷人赵丽颖登上ELLE世界时装之苑开年刊,身穿红黑白撞色礼服,尽显冷艳高贵,美丽迷人。赵丽颖近期热播话题剧风吹半夏赢得良好口碑与高收视,再次用优质作品征服观众。这次前卫冷艳风格的大片,总想控制别人,总认为自己对,这个毛病最要命文赵学勇古语言作恶不灭,过去世有余德,德尽必灭为善不昌,过去世有余殃,殃尽必昌。行善不见善,过去世有缺欠作恶不见恶,过去世有余德。积善之家,必有余庆积不善之家,必有余殃。所谓人生酬停止这所有的胡闹你在浪费自己的时间能量跟一切。不仅如此,你也在养成一个模式,通过不停的重复它。有几件事需要明白。首先,爱不是怜悯。你以为怜悯就是爱。爱不需要解释。它就在那里。它本身就是证据,不证自
水湿在哪里,病就在哪里,张仲景祛湿的方,祛水湿之本断湿气之源水湿为万病之源,水湿在哪里,病就在哪里,今天沈医生分享一个人医圣张仲景去水湿的名方,让你无湿一身轻很多人都被湿气症状困扰,用了很多祛湿的药效果都不好,关键就是因为没有从根源上找到水三伏天3个豆子一起煮,湿气没了暑气消了脾胃好了!安度最易生病的40天据家庭医生又到了全年最热也是最容易生病的三伏天,更可怕的是,今年的三伏还是加强版的,足足有40天!养生之道,莫先于食。三伏天,天气闷热潮湿,湿热之气笼罩,使人感到四肢困倦,萎靡不振C深入理解预定义重载操作符new(placementoperatornew)对于动态内存管理,C语言的做法是使用库函数手动申请和释放动态内存空间,到了C,新增了两个关键字(newdelete),另外,分别与结合,构成4上操作符(newdeletenewde夜声丨内心强大的人,都有什么表现?夜声夜听动人之声珍惜所有的遇见作者彩霞满天来源夜读(IDyedu857)史记有曰顺,不妄喜逆,不惶馁安,不奢逸危,不惊惧。深以为然。一个内心强大的人,会把人生方向盘牢牢握在自己手中魔兽世界骑龙坐骑自定义选项,高地幼龙细节展示,捏龙也将上线魔兽世界10。0版本的巨龙时代也进入了Beta测试阶段,下个版本的许多内容都被一一曝光,目前参与Beta测试的玩家都在龙岛做着各种各样的起始任务,今天祥子哥不聊龙岛的任务,跟大家聊2022年平板电脑怎么选?这3款性价比高,闭眼买就行现在的网络非常发达,打算购买平板电脑的用户也越来越多,它不仅可以提升我们的工作效率,偶尔也可以拿来追追剧,或者玩玩游戏,也有很多学生用它上网课,总之给我们的生活带来了很多便捷,很多冬日幸存者生存指南保持理智有多重要?由Drago娱乐和心跳游戏HBG合作推出的生存模拟游戏冬日幸存者将于10月27日开启抢先体验,同时在本次Steam生存游戏节上,也可试玩到本作的免费Demo。在现实世界中,在你因为醉八仙携丰厚好礼陪你过七夕七夕单身贵族们是免不了看朋友圈里的秀恩爱狗粮了!不过不打紧,小龙人给大家带来了七夕好礼,小龙人可是给每一位仙友都准备了七夕好礼哦七夕领福利,好礼拿不停天上鹊桥见,人间今宵圆。活动期新诺基亚N73曝光6。56英寸2K屏屏下相机,支持指纹识别众所周知,诺基亚手机已逐渐边缘化,但论其曾经有多辉煌,估计只有708090后知道。巅峰时期的诺基亚每推出一款新机既是经典。例如诺基亚N73。诺基亚N73发布于2006年,是诺基亚早跌破一千大关,红米Note11SE终成性价比之王说起红米的性价比之王机型,很多人肯定说非K40莫属,但实际上对于很多父母以及长辈而言,搭载骁龙870处理器的K40的性能都有点过剩了。单纯要论性价比,其实红米Note11SE才是王我们来回顾下那个让诺基亚倒闭的嫌疑人斯蒂芬埃洛普(StephenElop)是一位加拿大商人,在领导诺基亚之前,他享有盛誉。他是Adobe的全球首席运营总裁。后来成为瞻博网络的首席运营官(COO)。2008年,他被聘为