zoukankan      html  css  js  c++  java
  • TDSQL-A与CK的对比

    CK介绍

    CK是目前社区里面比较热门的,应用场景也比较广泛。

    首先,在架构上,集群内划分为多个分片,通过分片的线性扩展能力,支持海量数据的分布式存储计算,每个分片内包含一定数量的节点Node,即进程,Node之间互为副本,通过ZooKeeper进行数据同步。

    其次,CK的数据模型主要使用MergeTree表引擎——一种LSM Tree的实现,同时支持分布式表,写入时进行数据转发,读取时进行数据收集。

    file

    再者,在存储上,CK采用了列存、分区、数据排序和分块、主键索引等方式。最后,在计算上,CK采用向量化执行方式,利用SIMD指令加速。

    存储引擎

    在存储引擎上来看,TDSQL-A和CK各有自己鲜明的特点。

    TDSQL-A采用的是典型的列存设计,功能完备,包括完整的事务能力,同时还设计一些特殊的优化来加速数据读写操作。

    file

    SQL引擎

    在SQL引擎上,TDSQL-A继承了PG原生的SQL能力,SQL完备且兼容性好,支持多表关联、存储过程等复杂查询,另外TDSQL-A在分布式架构上对优化器和执行器具有很多优化。我们也在分布式架构上做了一些并发器和执行器的优化,左图实际上就是分布式的一个重要例子。

    file

    CK也具有出色的向量化执行引擎,特别是在AGG计算中,针对不同数据类型设计不同的数据结构和算法,将CPU和内存能力发挥到极致。右图中列了一下针对于Hash AGG计算设计的不同数据结构。

    对比

    整体来看,TDSQL-A相比于CK,在SQL能力、事务能力、优化器能力、分布式管控能力以及高可用能力上具有优势,而CK则在计算引擎执行效率上表现突出。

    file

    TDSQL-A受惠于PG社区的长期积累,同时经过我们团队长时间的功能增强、性能优化以及在多个应用领域的实践,已经具备了全面和强大的能力,可以提供企业级一站式解决方案,可以把事务、高可用以及部分业务逻辑放到数据库中来处理,大大降低业务的复杂程度。我们也将继续与PG社区、CK社区等优秀开源社区保持紧密联系,吸收改进新的发展技术和研究成果,不断地提高TDSQL-A的能力并开放给我们的用户。

  • 相关阅读:
    二叉树的遍历
    十进制与m进制的相互转化
    【素数】Prime Distance
    【数论】Sumdiv(整数的唯一分解定理+约束和公式+递归求等比)
    【错位+组合】排列计数
    【扩展欧几里得】青蛙的约会
    【归并排序+逆序数】poj-2299 Ultra-QuickSort
    【模拟】Sandglass
    【位运算】高效解决n皇后问题
    Popular Cows
  • 原文地址:https://www.cnblogs.com/tencentdb/p/15219878.html
Copyright © 2011-2022 走看看