已有0人关注此标签
--- title: MySQL · RocksDB · Write Prepared Policy author: 张远 --- # 背景 早期RocksDB TransactionDB将事务的更新操作都缓存在WriteBatch中,事务提交时才写WAL和memtable。RocksDB支持二阶段提交(2PC)后,在prepare阶段写WAL, WriteBatch写memt
数据存储与数据库 mysql 阿里技术协会 Commit IT 存储 rocksdb myrocks visibility writeprepared writepolicy
RocksDB版本:v5.13.4 1. 概述 得益于LSM-Tree结构,RocksDB所有的写入并非是update in-place,所以他支持起来事务的难度也相对较小,主要原理就是利用WriteBatch将事务所有写操作在内存缓存打包,然后在commit时一次性将WriteBatch写入,保证了原子,另外通过Sequence和Key锁来解决冲突实现隔离。
## 基本概念 #### 1. LSN (log sequence number) RocksDB中的每一条记录(KeyValue)都有一个LogSequenceNumber(后面统称lsn),从最初的0开始,每次写入加1。该值为逻辑量,区别于InnoDB的lsn为redo log物理写入字节量。 这个lsn在RocksDB内部的memtable中是`单调递增`的,在WriteA
java mysql 阿里技术协会 Transaction facebook 事务 Commit 2PC rocksdb TransactionDB
本文主要对RocksDB中事务实现TransactionDB做分析,设计事务并发、隔离级别、MVCC等实现细节
java mysql Transaction facebook Commit rocksdb rocksdb事务 事务冲突 mvcc