RocksDB事务实现TransactionDB分析

  1. 云栖社区>
  2. 博客>
  3. 正文

RocksDB事务实现TransactionDB分析

曦轩 2017-11-20 10:45:29 浏览8481
展开阅读全文

基本概念

1. LSN (log sequence number)

RocksDB中的每一条记录(KeyValue)都有一个LogSequenceNumber(后面统称lsn),从最初的0开始,每次写入加1。该值为逻辑量,区别于InnoDB的lsn为redo log物理写入字节量。

这个lsn在RocksDB内部的memtable中是单调递增的,在WriteAheadLog(WAL)中以WriteBatch为单位递增(count(batch.records)为单位)。

WriteBatch是一次RocksDB::Put()的原子操作集合,不同的WriteBatch间是遵循ACID特性(要么完全成功要么完全失败,并且相互隔离),结构如下:

 WriteBatch :=
    sequence: fixed64
    count: fixe

网友评论

登录后评论
0/500
评论