阅读 80

kafka架构和原理,sql是什么

TDSQL团队在开发分布式事务型数据库的过程中,除了考虑分布式事务处理技术(ACID实现的所有技术)外,还深入探索了测试验证、体系结构扩展、模块解耦等各种关键问题。

新硬件和AI等技术,在云环境下,如何影响着数据库的架构?

能否解除各模块之间的耦合以降低研发复杂度,同时缩短研发人才的培养周期?

新硬件和AI等技术,从架构上深深地影响了传统的数据库,这表现在如何融合这些新技术:

首先,数据库可能会“添加”许多新模块。 如图7左下角的子图所示,AI调整数据库技术扩展了数据库系统,添加了许多新组件。其次,数据库的传统模块被改变,如图8的左下子图所示,在并行事务型数据库系统中提出了基于AI技术优化事务的模型。 该模型采用存储过程方式(这一点类似于H-Store,VoltDB ),提前向数据库引擎提供执行的事务,并采用AI技术(Markov model,马尔可夫模型) ) 确定这些存储过程所表示的事务之间的语义,调度事务在同时执行时如何冲突,得到固定结构的事务执行模型。 图8如果左多个客户端发出SQL语句以执行存储过程表示的并发事务,则可以根据此模型估计事务的调度。 这是AI技术改变事务中并发访问控制模块的典型事例。

下图中的“d”模型基于RDMA从两个方面影响事务。 一个是事务的控制流,另一个是在事务执行过程中发生的数据流。 影响分布式事务处理效率的不仅是庞大的数据流,数据量相对较少的控制流也是瓶颈,因此为了解决网络带宽瓶颈,有必要引入RDMA。

数据库中的模块发生变化

传统的数据库系统,其复杂度极高,外显高凝聚,内显高耦合,数据库复杂度急剧提高。 随着各种新技术的产生,影响了数据库的体系结构,数据库的复杂性又上了一个台阶。 在这样的背景下,研发人才的培养,成长周期会变长。 因此,我们考虑的一个问题是,从技术上讲,如何解除数据库内部的许多模块的联接? 结合度高,研发人员需要掌握一些相关模块才能较好地开展工作; 如果模块之间的耦合解除得很好的话,掌握各个模块就更容易开展工作,相应地,人才的培养周期也会缩短,软件的质量也会提高。

因此,数据库架构背景下的各模块解耦问题是一个技术问题。 解耦工作可以在多个层次、多个模块之间展开。 解耦技术,各有千秋。

如上图所示,AWS的Aurora提出的内存计算的分离是内存和计算两个大模块的连接解除。 微软的Deuteronomy系统在08年-16年也做过一系列的相关工作。 Deuteronomy最初采用在存储层之上实施事务的方案,而底层存储采用KV模型。 存储层只提供KV的原子性和幂等性,上层比较容易实现事务的并发访问控制和恢复。

后来的Percolator、Spanner/F1、CockroachDB、TiDB其实也是按照这个思路发展的,基础是Bigtable/Spanner和RocksDB这样的KV存储引擎,在存储上但是,在RocksDB这样的KV存储中,KV记录的同时控制仍然与存储紧密结合。

内存和计算这两个模块的去耦会促进各自所包含的子模块之间的再去耦,事务和内存层的去耦,怎么办呢? 有的研究者将事务处理功能提取到客户端进行(彪形冬日)和将事务处理功能配置到中间件层进行执行)的中间子图)这两种方式,与以往的服务器端进行事务处理(右图)不同。

事务和存储层解耦

另外,解偶联的工作其实无处不在。 下图显示了算法和数据结构之间的解耦。 下图彪形大汉冬日是数据库的持续部分与内存中的数据之间的设计解耦。 下图的右边部分是索引的数据结构与物理存储层的解耦。

在下图彪形大汉的冬日里,为了应对VLDB 2018的论文“fine line : log-structuredtransactionalstorageandrecovery”,舍弃了传统的WAL,将所有需要持续化的数据都保存起来

FineLine不需要将内存内的数据掉落到DB中,只将内存内的log信息永久化为Indexed log,通过fetch操作从Indexed log中读取数据的最新状态。 通过尽可能地解耦内存中的数据结构及其持久性表示,消除与传统的基于磁盘的RDBMS相关的许多开销。 此外,这种单一的持久性存储体系结构带来的另一个好处是出现系统故障后恢复开销较低。 索引日志与原子操作保持一致,因此如果发生故障并重新启动,可以读取索引日志提交的最新数据记录。 也不需要基于no-steal的策略、还原操作、检查点等。

*取消计算与数据结构之间的联接*

数据库内部、各模块间的连接解除、与模块粒度的区分

具体实现的系统,都有密切关系。如图11展示了几个主流数据库之间解耦的关系,期待能抛砖引玉,引发更多思考。



结语

数据库作为核心基础技术之一,在自主可控的时代发展潮流下,是我们必将要跨过的大山。路虽弥,不行则不至,历经十数年的研发演进,至少今天我们都已达成了许多重要的里程碑。当下而言,国产数据库从技术、人才、工业生态等各方面,都有待完善和发展,而未来更紧密的产学研结合、科技与传统产业融合趋势下,将进一步促进数据库自主可控发展。

本文由博客一文多发平台 OpenWrite 发布!


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐