编译

cmake .. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=”-Wno-implicit-fallthrough -Wno-int-in-bool-context -Wno-shift-negative-value -Wno-misleading-indentation -Wno-format-overflow -Wno-nonnull -Wno-unused-function” -DCMAKE_CXX_FLAGS=”-Wno-implicit-fallthrough -Wno-int-in-bool-context -Wno-shift-negative-value -Wno-misleading-indentation -Wno-format-overflow -Wno-nonnull -Wno-unused-function -Wno-aligned-new -Wno-unused-variable” -DCMAKE_C_COMPILER=/opt/gcc-5.4.0.bak/bin/gcc -DCMAKE_CXX_COMPILER=/opt/gcc-5.4.0.bak/bin/g++

两种tx 的实现

自己定义了transaction 的基类,并没有像 optimisticTx, pessimisticTx那样继承 TransactionBaseImpl
image.png
image.png

image.png

开启事务

在 rocksdb_init_func中,
status = rocksdb::TransactionDB::Open(
main_opts, tx_db_options, rocksdb_datadir, cf_descr, &cf_handles, &rdb);

由此生成悲观事务DB, policy默认是WriteCommitted (WriteCommittedTxnDB)

rdb 仅是一个全局的 rocksdb::TransactionDB
image.png

myrocks中rocksdb部分的代码规范

image.png

Mark 演讲

https://www.youtube.com/watch?v=Lxbb_7q8iRo

yx 上有总结