日志结构流派存储引擎的演化

本文介绍了日志结构流派的存储引擎,包括从最简单的数据库到哈希索引,再到SSTables和LSM-Tree的演化过程。详细讨论了LSM-Tree的优势,如顺序写、低写放大和压缩支持,以及与B-tree的对比,指出其在后台压缩对实时读写的影响和对事务支持的不足。最后,总结了LSM-Tree在现代数据库系统中的重要地位。
摘要由CSDN通过智能技术生成

本文主要内容来自于《数据密集型应用系统设计》 第三章,内容对我很有启发,所以分享给大家,推荐看原作。

背景

存储引擎存在着两个主要流派:

  1. 日志结构流派,只允许追加式更新/删除文件,不会修改已写入的文件,BitcastSSTablesLSM-TreeLevelDBRocksDBCassandraHBaseLucene 等属于此类
  2. 原地更新流派,将磁盘视为可以覆盖的一组固定大小的页。B-tree 就是这一流派的典型代表,已用于所有主流关系型数据库,以及大量的非关系数据库

大部分人已经对原地更新流派中 B-tree 已经比较熟悉了,但对日志结构流派并不是很了解,本文带领大家了解下其演化过程及 LSM-tree 与 B-tree 的对比

演化过程

1. 一个最简单的数据库

基本原理

由两个 Bash 函数实现:

db_set(){
   
        echo "$1,$2" >> database
}

db_get(){
   
        grep "^$1," database | sed -e "s
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值