Find a file
agiardullo c2f2cb0214 Pessimistic Transactions
Summary:
Initial implementation of Pessimistic Transactions.  This diff contains the api changes discussed in D38913.  This diff is pretty large, so let me know if people would prefer to meet up to discuss it.

MyRocks folks:  please take a look at the API in include/rocksdb/utilities/transaction[_db].h and let me know if you have any issues.

Also, you'll notice a couple of TODOs in the implementation of RollbackToSavePoint().  After chatting with Siying, I'm going to send out a separate diff for an alternate implementation of this feature that implements the rollback inside of WriteBatch/WriteBatchWithIndex.  We can then decide which route is preferable.

Next, I'm planning on doing some perf testing and then integrating this diff into MongoRocks for further testing.

Test Plan: Unit tests, db_bench parallel testing.

Reviewers: igor, rven, sdong, yhchiang, yoshinorim

Reviewed By: sdong

Subscribers: hermanlee4, maykov, spetrunia, leveldb, dhruba

Differential Revision: https://reviews.facebook.net/D40869
2015-08-11 17:52:23 -07:00
arcanist_util Fix linters on non-fb machines 2015-08-11 11:36:12 -07:00
build_tools Upgrading jemalloc from 3.6.0 to the latest for fbcode+gcc 4.8.1 2015-08-04 16:35:26 -07:00
coverage
db Pessimistic Transactions 2015-08-11 17:52:23 -07:00
doc
examples Pessimistic Transactions 2015-08-11 17:52:23 -07:00
hdfs Improved FileExists API 2015-07-20 17:20:40 -07:00
include/rocksdb Pessimistic Transactions 2015-08-11 17:52:23 -07:00
java Update JAVA-HISTORY.md for v3.13 2015-08-04 18:12:58 -07:00
port Fix WinEnv::NowMicrosec 2015-07-22 14:36:43 -07:00
table Better CompactionJob testing 2015-08-07 21:59:51 -07:00
third-party
tools Removing duplicate code in db_bench/db_stress, fixing typos 2015-08-11 11:46:15 -07:00
util Pessimistic Transactions 2015-08-11 17:52:23 -07:00
utilities Pessimistic Transactions 2015-08-11 17:52:23 -07:00
.arcconfig
.clang-format
.gitignore
.travis.yml Another attempt at adding the Java API and tests to the travis build 2015-07-28 11:52:11 +01:00
appveyor.yml Add auto-build manifest for appveyor 2015-08-07 15:37:46 -07:00
AUTHORS
CMakeLists.txt Pessimistic Transactions 2015-08-11 17:52:23 -07:00
CONTRIBUTING.md
DUMP_FORMAT.md
HISTORY.md Pessimistic Transactions 2015-08-11 17:52:23 -07:00
INSTALL.md
LICENSE
Makefile Pessimistic Transactions 2015-08-11 17:52:23 -07:00
PATENTS
README.md
ROCKSDB_LITE.md
src.mk Pessimistic Transactions 2015-08-11 17:52:23 -07:00
thirdparty.inc
USERS.md
Vagrantfile
WINDOWS_PORT.md

RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

Build Status

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com)

This code is a library that forms the core building block for a fast key value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it specially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/master/examples

See the github wiki for more explanation.

The public interface is in include/. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Design discussions are conducted in https://www.facebook.com/groups/rocksdb.dev/