Overview

常见的存储引擎:

InnodDB

存储结构

如何存储

存储Record

存储page

索引

事务

总结如下:


使用Next-Key 锁的效果:

LevelDB

java使用:https://medium.com/@wishmithasmendis/leveldb-from-scratch-in-java-c300e21c7445

levelDB是可以理解为BigTable的单机版本,看做,bigTable中的tablet的一个实例,tablet中有sstable。

Bigtable基本架构

基于SSTable的存储引擎可以这样Run起来:

读/写过程如下:

注:上图中tablet log理解为WAL

LevelDB,RocksDB,Cassandra,HBase
kafka是对lsm tree的极端应用么,key天然自增,绕过了Memtable直接落磁盘

rocksdb

RocksDB是facebook基于LevelDB实现的,目前为facebook内部大量业务提供服务。经过facebook大量工作,将RocksDB作为MySQL的一个存储引擎移植到MySQL,称之为MyRocks

相关算法

SkipList:对比红黑树、AVL:参考