f7975ac733
Summary: Each assoc is identified by (id1, assocType). This is the rowkey. Each row has a read/write rowlock. There is statically allocated array of 2000 read/write locks. A rowkey is murmur-hashed to one of the read/write locks. assocPut and assocDelete acquires the rowlock in Write mode. The key-updates are done within the rowlock with a atomic nosync batch write to leveldb. Then the rowlock is released and a write-with-sync is done to sync leveldb transaction log. Test Plan: added unit test Reviewers: heyongqiang Reviewed By: heyongqiang Differential Revision: https://reviews.facebook.net/D5859 |
||
---|---|---|
.. | ||
bin | ||
folly | ||
gen-cpp | ||
if | ||
lib/cpp | ||
libs | ||
test | ||
assoc.h | ||
openhandles.h | ||
README | ||
server_options.h | ||
server_utils.cpp | ||
server.cpp |
This directory has the thrift server code that exposes leveldb apis. The thrift api is specified in thrift/if/leveldb.thrift. The thrift header files are in ./thrift/lib. These are part of Apache Thrift code base and are needed for compilation of the leveldb thrift server. The thrift libraries are copied into ./thrift/libs. If you want to use a different version of thrift, please update these directories with the corresponding thrift header files and the compiled thrift libraries. If you want to compile leveldb with thrift-server support, please set the following enviroment variables appropriately: USE_THRIFT=1 LD_LIBRARY_PATH=$LD_LIBRARY_PATH:./thrift/libs:./snappy/libs make clean leveldb_server leveldb_server_test You can run the leveldb server unit tests by ./leveldb_server_test You can regenerate the thrift cpp files by doing the following cd ./thrift bin/thrift --gen cpp if/leveldb.thrift