当前位置:刘伯温高手心水论坛1 > 软件可维护性 >

重磅!开源分布式 NewSQL 数据库 TiDB 20 正式发布 - OSCHINA

  去年十月,TiDB 1.0 版本发布,在接下来的六个月中,开发团队一方面在维护 1.0 版本的稳定性并且增加必要的新特性,另一方面马不停蹄地开发 2.0 版本。经过 6 个 RC 版本,TiDB 2.0 GA 版本于 4月 27日正式发布。

  根据现有用户的情况、技术发展趋势以及社区的声音,TiDB 2.0 版本主要聚焦在以下几点:

  保证 TiDB 的稳定性以及正确性。这两点是一个数据库软件的基础功能,作为业务的基石,任何一点抖动或者错误都可能对业务造成巨大的影响。目前已经有大量的用户在线上使用 TiDB,这些用户的数据量在不断增加、业务也在不断演进。

  提升 TiDB 在大数据量下的查询性能。TiDB目前很多客户都有少则上百 GB,多则上百 TB 的数据,一方面数据会持续增加,另一方面也希望能对这些数据做实时的查询。所以如果能提升大数据量下的查询性能,对用户会很有帮助。

  优化 TiDB 的易用性和可维护性。TiDB 整套系统的复杂性比较高,运维及使用的难度要大于单机数据库,所以希望能提供尽可能方便的方案帮助用户使用 TiDB。比如尽可能简化部署、升级、扩容方式,尽可能容易的定位系统中出现的异常状态。

  围绕上面三点原则,TiDB 做了大量的改进,一些是对外可见,如 OLAP 性能的显著提升、监控项的大量增加以及运维工具的各项优化,还有更多的改进是隐藏在数据库背后,默默的提升整个数据库的稳定性以及正确性。

  在 1.0 版本发布之后,TiDB 开始构建和完善自动化测试平台 Schrodinger,彻底告别了之前靠手工部署集群测试的方式。同时也新增了非常多的测试用例,做到测试从最底层 RocksDB,到 Raft,再到 Transaction,然后是 SQL 都能覆盖。

  在 Chaos 测试上面,TiDB 引入了更多的错误注入工具,例如使用 systemtap 对 I/O 进行 delay 等,也在代码特定的业务的逻辑进行错误注入测试,充分保证 TiDB 在异常条件下面也能稳定运行。

  TiDB的开发团队之前做了很多 TLA+ 的论证工作,也有一些简单的测试,1.0 之后开始使用 TLA+ 系统进行论证,保证所做的实现在设计上面都是正确的。

  在存储引擎方面,为了提升大规模集群的稳定性和性能,TiDB 优化了 Raft 的流程,引入 Region Merge、Raft Learner 等新特性;优化热点调度机制,统计更多的信息,并根据这些信息做更合理的调度;优化 RocksDB 的性能,使用 DeleteFilesInRanges 等特性,提升空间回收效率,降低磁盘负载,以及更加平滑地使用磁盘资源等等。

  TiDB2.0 版本重构了 SQL 优化器和执行引擎,希望能尽可能快的选择最优查询计划并且尽可能高效地执行查询计划。

  1.0 版本已经从基于规则的查询优化器转向基于代价的查询优化器,但是还不够完善,在 2.0 版本中,一方面优化统计信息的精确度以及更新及时程度,另一方面提升 SQL 优化器的能力,对查询代价的估算更加精准、对复杂过滤条件的分析更加细致、对关联子查询的处理更加优雅、对物理算子的选择更加灵活准确。

  在这一版本中,SQL 执行引擎引入新的内部数据表示方式 --- `Chunk`,一个结构中保存一批数据而不仅是一行数据,同一列的数据在内存中连续存放,使得内存使用更紧凑,这样带来了几点好处:1. 显著减小了内存消耗; 2. 批量分配内存,减小了 GC 开销;3. 算子之间可以对数据进行批量传递,减小调用开销;4. 在某些场景下,可以进行向量计算以及减小 CPU 的 Cache Miss 的情况。

  完成上述两项改动之后,TiDB 在 OLAP 场景下的性能有了大幅的质的提升,从 TPC-H 的对比结果来看,所有的 Query 在 2.0 中都运行得更快,一些 Query 大多数都有几倍甚至数量级的提升,特别是一些 1.0 中跑不出结果的 Query 在 2.0 中都能顺利执行。

  为了更容易被安装和使用,TiDB 2.0 在监控、运维、工具方面也做了诸多优化。

  在监控方面,增加了过百个监控项,同时通过 HTTP 接口、SQL 语句等方式暴露出一些运行时信息,用于系统调优或者是定位系统中存在的问题。

  在运维方面,运维工具做了优化,简化操作流程,降低操作复杂度及操作过程对于线上的影响。同时功能也更加丰富,支持自动部署 Binlog 组件、支持启用 TLS。

  优化关联子查询处理算法,支持将更多类型的关联子查询解关联并转化成 `Left Outer Join`

  扩大 `IndexLookupJoin` 的使用范围,索引前缀匹配的场景也可以使用该算法

  使用 Chunk 结构重构所有执行器算子,提升分析型语句执行性能,减少内存占用,显著提升 TPC-H 结果

  支持对物理算子内存使用进行统计,通过配置文件以及系统变量指定超过阈值后的处理行为

  优化 TiKV 节点空间不足时的调度策略,尽可能防止空间不足时磁盘被写满

  支持打散指定 Region,用于某些情况下手动调整热点 Region 分布

  12 月 23 日,分布式关系型数据库 TiDB 正式发布 RC1。更新如下: TiKV: 提升写入速度 降低磁盘空间占用 支持百 TB 级别数据 提升稳定性,集群规模支持 200 个节点 提供 Raw KV API,以及 ...

  经过半年时间的持续打磨,PingCAP University 迎来了一次重大升级,发布「培训课程 2.0」。 作为世界级的开源项目,经过四年的发展,TiDB 在越来越多的场景里落地,正逐渐被视为行业内的分布...

  新型分布式 NewSQL 数据库 TiDB 今日正式发布 Beta 版本。 TiDB 是数据库领域的顶级开源项目,致力于完美实现弹性伸缩,支持 SQL 语句,ACID 事务一致性和真正的高可用性等分布式关系型数据库...

  2017 年 10 月,国内领先的中立云计算厂商 UCloud 与国内开源分布式 NewSQL 数据库 TiDB 团队 PingCAP 正式达成合作,双方将联手在 UCloud 全球数据中心逐步推出新一代 TiDB 的云端版本——C...

http://juliekusyk.com/ruanjiankeweihuxing/336.html
点击次数:??更新时间2019-06-19??【打印此页】??【关闭
  • Copyright © 2002-2017 DEDECMS. 织梦科技 版权所有  
  • 点击这里给我发消息
在线交流 
客服咨询
【我们的专业】
【效果的保证】
【百度百科】
【因为有我】
【所以精彩】