国内数据库领域 , “去O”绝对不仅仅是简单的替代 , 而是要从更高维度去降维打击 。 由于之前关系型数据库在市场中的强大惯性影响 , 使得在实际工作中存在很多数据库的滥用情况 , 比如 在传统的关系型数据库上进行“表关联的数仓查询任务”、用数据湖存储时序数据等等 , 因此国产数据库只要从这些实际痛点切入 , 完全有机会打下自己的一片天 。
PolarDB:Share Everything与Share Nothing的平衡体
正如上文所说 , Oracle、Db2等单体数据库往往成本极高 , 因此如何把之前的单点数据库拆分成分布式数据库达到“去O”降本的目标 , 就是一个业界必须要回答的问题 。
一开始的映入人们眼帘的方案是分库分表 , 将之前成百上千亿行的大库 , 拆分成一个个小的数据库是一个看似不错的方式 。
最初版本的PolarDB是这种Share Everything的典型代表 。 2021年6月 , PolarDB正式对外开源 , 8月有关PolarDB数据库核心架构创新论文被国际数据库顶级会议VLDB 2021录用 。
从中我们发现 , 使用Share Everything就要解决跨库联合查询时的效率问题 , 这个目标的达成离不开PolarDB业内首创的 数据库代理增强理念 , 即在碎片化的数据库基础服务之上构建新一层的标准和生态 , 从而对上层应提供标准化的数据库应用规法 , 尽可能地屏蔽底层不同数据库所带来的业务干扰 。
细分来看 , PolarDB的MPP层首要任务是做好“连接数据与应用”的桥梁作用 。 PolarDB的GateWay层是一个“数据库网关” , 可获取数据库的访问流量 , 提供流量重定向(数据分片、读写分离、影子库)、流量变形(数据加密、数据脱敏)、流量鉴权(安全、审计、权限)、流量治理(熔断、限流)以及流量分析(服务质量分析、可观察性)等透明化功能 。
在增强功能基础上 , PolarDB可插拔功能也就顺理成章了 。 可插拔功能让用户可以任意组合增强性功能 , 并通过可插拔的能力完成快速接入 。 PolarDB采用三层可插拔模型 , 使内核、功能组件以及生态对接完全能够灵活的方式进行插拔式扩展 。 将各种能力封装到模块中 , 用户任意挑选适合的组件 , 根据自身的业务需求、以极小的成本来定制化数据库服务 。
另外 , PolarDB提供接口让开发者自主拓展开发 , 通过可插拔体系帮助大家建立分片、加解密、迁移、治理、SQL审计、多租户、TTL、影子库、读写分离、高可用等标准功能和一些非标准功能 , 并借助数据库与应用之间的这个缓冲带 , “搭个台子”帮助业界以最低成本打造一个良好的数据库生态 。
未来 , PolarDB自治服务DAS将进一步结合云原生数据库的弹性能力 , 向用户提供智能化的Serverless数据库服务 。 云原生与分布式也将深度结合 , 通过“Shared Nothing+Shared Everything”、“Shared Storage”、存储计算分离等技术 , 最大限度实现资源池化、弹性变配、超高并发等能力 。
TiDB:Share Nothing的NewSQL数据库
在“去O”的方案中 , TiDB则选择了Share Nothing的路线 , 本质上讲Share Nothing架构中各个子数据库之间是完全独立的 , 但是其跨库计算却是统一关联的 , 因此Share Nothing则是另外一种流派 。
这个方案中各个节点共享所有的物理日志 , 并通过RAFT、Paxos等协议在各节点中进行同步TiDB则是这种方案的典范 , 而今年TiDB最主要的进展是在4月发布了5.0版本 , 这个版本中又将行列混存的方案发挥到了极致 。
TP与AP的巨大差异本质是由于行存与列存在不同使用场景下的效能表现所造成的 。 在计算机的世界中数据吞吐速率往往是受数据访问局部性原理所支配的 , 我们知道现代硬盘、内存工作原理是当用户读某一区域的数据时 , 其邻接的数据也会被调入上一级高速缓存 , 读1k数据和连续的64M数据代价基本相同 , 用户在读取连续的磁盘或者内存信息时 , 其速度往往比随机读取快一个数量级 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
