腾讯TDSQL提三个“数据库之问”,数据库技术未来重点在哪?(12)

腾讯TDSQL提三个“数据库之问”,数据库技术未来重点在哪?

图11/13

图9 事务和存储层解耦

另外,解耦工作,其实无处不在。图10展示了算法与数据结构之间的解耦。图10的左子图,是数据库的持久化部分和内存中数据之间的设计解耦。图10的右子图,是索引的数据结构与物理存储层之间的解耦。

图10的左子图,对应VLDB 2018的论文"FineLine: Log-structured Transactional Storage and Recovery",提出了一种事务存储和恢复机制FineLine,舍弃了传统的WAL,把所有需要持久化的数据存储到一个单一的数据结构,希望将数据库的持久化部分和内存中数据存储之间达到设计解耦。

FineLine无需将内存中数据落盘到DB,仅将内存中的log信息持久化到Indexed log中,然后通过fetch操作从Indexed log读取到数据的最新状态。通过将内存中的数据结构与其持久性表示尽量地解耦,消除了与传统基于磁盘的RDBMS相关的许多开销。除此之外,这种单一的持久化存储架构带来的另一个好处是,在系统发生故障后恢复的开销很低。由于Indexed log保持了与原子操作的一致性,当发生故障并重启时,可以从Indexed log中读取到已提交的最新数据记录。基于no-steal的策略,Undo操作,Checkpoint这些也都不需要。

推荐阅读