LSMT 存储引擎浅析

LSMT概述

简单来说,就是通过Append-only Write+择机Compact来维护结构的索引树。

LSMT的历史

  • LSMT是Log-Structured Merge-Tree的缩写,由Patrick O 'Neil etc.在1996年的论文,The Log-Structured Merge-Tree(LSM-Tree),提出。
  • 相较而言,B-Tree出现就早得多了,在197O年由Bayer,R.;McCreight,E.提出。
  • 早期的数据库系统一般都采用B-Tree家族作为索引,例如MySQL。2000年后诞生的数据库 大多采用LSMT索引,例如Google BigTable,HBase,Canssandra等。

存储引擎是什么?

  • ACD是什么/存储引擎哪些组件保障了这些特性?
    • Atomicity Write-Ahead Log(WAL)Redo Log
    • Consistency(Correctness) 依赖于数据库整体
    • Isolation Snapshot 2PL(Phase Lock)
    • Durability Flusher遵循Sync语意
    除了保障ACD以外,存储引擎还要负责:
    • 屏蔽细节提供更好的抽象
    • 提供统计信息与Predicate Push Down能力
    存储引擎不掌控IO细节,让操作系统接管,例如使用map, 会有如下问题:
    • 落盘时机不确定造成的事务不安全
    • IO Stall
    • 错误处理繁琐
    • 无法完全发挥硬件性能

为什么要采用LSMT模型

  • 机械硬盘时代,顺序操作远快于随机操作<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值