77edbfd | Igor Canadi | 02 May 2014, 20:55:33 UTC | link with lz4 Summary: link our fbcode build with lz4 Test Plan: compiles Reviewers: sdong, haobo, dhruba, yhchiang Reviewed By: yhchiang CC: leveldb Differential Revision: https://reviews.facebook.net/D18447 | 02 May 2014, 20:55:33 UTC |
4ecfbcf | Igor Canadi | 02 May 2014, 20:24:04 UTC | ApplyToAllCacheEntries Summary: Added a method that executes a callback on every cache entry. Test Plan: added a unit test Reviewers: haobo Reviewed By: haobo CC: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D18441 | 02 May 2014, 20:24:04 UTC |
31d38a6 | Igor Canadi | 02 May 2014, 18:18:55 UTC | Add TARGETS to gitignore | 02 May 2014, 18:18:55 UTC |
3b5fa6b | Igor Canadi | 02 May 2014, 14:13:51 UTC | Improve ttl_test Summary: Our valgrind tests are failing because ttl_test is kind of flakey. This diff should fix valgrind issue and make ttl_test less flakey and much faster. Instead of relying on Env::Default() for getting current time, I expose `Env*` to all TTL functions that are interested in time. That way, I can insert a custom test Env which is then used to provide exactly the times we need. That way, we don't need to sleep anymore -- we control the time. Test Plan: ttl_test in normal and valgrind run Reviewers: dhruba, haobo, sdong, yhchiang Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18399 | 02 May 2014, 14:13:51 UTC |
82042f4 | Igor Canadi | 01 May 2014, 23:28:23 UTC | Include version in options | 01 May 2014, 23:28:23 UTC |
d28ed69 | Igor Canadi | 01 May 2014, 19:41:49 UTC | fix release build | 01 May 2014, 19:42:06 UTC |
d29e48b | Igor Canadi | 01 May 2014, 18:12:35 UTC | fix compile warning | 01 May 2014, 18:12:35 UTC |
0afc8bc | Igor Canadi | 01 May 2014, 18:09:32 UTC | xxHash Summary: Originally: https://github.com/facebook/rocksdb/pull/87/files I'm taking over to apply some finishing touches Test Plan: will add tests Reviewers: dhruba, haobo, sdong, yhchiang, ljin Reviewed By: yhchiang CC: leveldb Differential Revision: https://reviews.facebook.net/D18315 | 01 May 2014, 18:09:32 UTC |
61955a0 | Yueh-Hsuan Chiang | 01 May 2014, 08:44:46 UTC | [Java] Add RocksObject, the base class of all java objects with a c++ pointer. Summary: Add RocksObject, the base class of all java objects which has a c++ pointer. While the finalizer of a RocksObject will release its c++ resource, it is suggested to call its RocksObject.dispose() to manually release its c++ resource. Existing RocksDB java classes are now extending RocksObject. Test Plan: make rocksdbjava make jtest make jdb_bench Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18411 | 01 May 2014, 08:44:46 UTC |
096f5be | Igor Canadi | 30 April 2014, 20:24:52 UTC | Put column family information in LiveFileMetaData Summary: As summary Test Plan: compiles :) Reviewers: dhruba, haobo, sdong, yhchiang Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18405 | 30 April 2014, 20:24:52 UTC |
a3ab998 | Yueh-Hsuan Chiang | 30 April 2014, 18:54:02 UTC | [Java] Add static method RocksDB.loadLibrary() Summary: Add static method RocksDB.loadLibrary() which loads necessary library files. Test Plan: make rocksdbjava make jtest make jdb_bench java/jdb_bench.sh Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: ankgup87 CC: leveldb Differential Revision: https://reviews.facebook.net/D18375 | 30 April 2014, 18:54:02 UTC |
16f1aa7 | Igor Canadi | 30 April 2014, 18:38:01 UTC | Fix signed/unsigned compare | 30 April 2014, 18:38:01 UTC |
df70047 | Igor Canadi | 30 April 2014, 18:33:40 UTC | Flush stale column families Summary: Added a new option `max_total_wal_size`. Once the total WAL size goes over that, we make an attempt to flush all column families that still have data in the earliest WAL file. By default, I calculate `max_total_wal_size` dynamically, that should be good-enough for non-advanced customers. Test Plan: Added a test Reviewers: dhruba, haobo, sdong, ljin, yhchiang Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18345 | 30 April 2014, 18:33:40 UTC |
7dafa3a | sdong | 25 April 2014, 22:45:37 UTC | Allow allocating dynamic bloom, plain table indexes and hash linked list from huge page TLB Summary: Add an option to allocate a piece of memory from huge page TLB. Add options to trigger it in dynamic bloom, plain table indexes andhash linked list hash table. Test Plan: make all check Reviewers: haobo, ljin Reviewed By: haobo CC: nkg-, dhruba, leveldb, igor, yhchiang Differential Revision: https://reviews.facebook.net/D18357 | 30 April 2014, 18:02:26 UTC |
66f88c4 | Igor Canadi | 30 April 2014, 15:38:09 UTC | Some fixes as preparation for release | 30 April 2014, 16:03:24 UTC |
d6d67c0 | Igor Canadi | 29 April 2014, 20:25:23 UTC | More s/us fixes | 30 April 2014, 14:04:36 UTC |
2e11e47 | Yueh-Hsuan Chiang | 30 April 2014, 05:05:55 UTC | Merge pull request #131 from ankgup87/master [Java] Add multiget JNI bindings | 30 April 2014, 05:05:55 UTC |
046a85a | Igor Canadi | 30 April 2014, 01:26:12 UTC | Merge pull request #132 from kjk/master Improve building of shared library so that it e.g. works with Go bindings | 30 April 2014, 01:26:12 UTC |
9d9d296 | Yueh-Hsuan Chiang | 30 April 2014, 00:13:46 UTC | Add a new mem-table representation based on cuckoo hash. Summary: = Major Changes = * Add a new mem-table representation, HashCuckooRep, which is based cuckoo hash. Cuckoo hash uses multiple hash functions. This allows each key to have multiple possible locations in the mem-table. - Put: When insert a key, it will try to find whether one of its possible locations is vacant and store the key. If none of its possible locations are available, then it will kick out a victim key and store at that location. The kicked-out victim key will then be stored at a vacant space of its possible locations or kick-out another victim. In this diff, the kick-out path (known as cuckoo-path) is found using BFS, which guarantees to be the shortest. - Get: Simply tries all possible locations of a key --- this guarantees worst-case constant time complexity. - Time complexity: O(1) for Get, and average O(1) for Put if the fullness of the mem-table is below 80%. - Default using two hash functions, the number of hash functions used by the cuckoo-hash may dynamically increase if it fails to find a short-enough kick-out path. - Currently, HashCuckooRep does not support iteration and snapshots, as our current main purpose of this is to optimize point access. = Minor Changes = * Add IsSnapshotSupported() to DB to indicate whether the current DB supports snapshots. If it returns false, then DB::GetSnapshot() will always return nullptr. Test Plan: Run existing tests. Will develop a test specifically for cuckoo hash in the next diff. Reviewers: sdong, haobo Reviewed By: sdong CC: leveldb, dhruba, igor Differential Revision: https://reviews.facebook.net/D16155 | 30 April 2014, 00:13:46 UTC |
2b7cf03 | Krzysztof Kowalczyk | 29 April 2014, 21:29:45 UTC | Update Makefile | 29 April 2014, 21:29:45 UTC |
f1c9aa6 | Igor Canadi | 29 April 2014, 19:47:48 UTC | More unsigned/signed compare fixes | 29 April 2014, 20:01:06 UTC |
38693d9 | Igor Canadi | 29 April 2014, 19:33:57 UTC | Fix more signed/unsigned comparsions | 29 April 2014, 19:40:18 UTC |
d0b006a | Igor Canadi | 29 April 2014, 19:29:22 UTC | Fix unsigned and signed integer compare | 29 April 2014, 19:29:22 UTC |
76c3dbf | Igor Canadi | 29 April 2014, 19:19:54 UTC | Make ttl_test a bit more robust | 29 April 2014, 19:19:54 UTC |
dd9eb7a | Igor Canadi | 29 April 2014, 17:27:58 UTC | Cache result of ReadFirstRecord() Summary: ReadFirstRecord() reads the actual log file from disk on every call. This diff introduces a cache layer on top of ReadFirstRecord(), which should significantly speed up repeated calls to GetUpdatesSince(). I also cleaned up some stuff, but the whole TransactionLogIterator could use some refactoring, especially if we see increased usage. Test Plan: make check Reviewers: haobo, sdong, dhruba Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18387 | 29 April 2014, 17:27:58 UTC |
de825e7 | Igor Canadi | 29 April 2014, 16:17:34 UTC | Create new branch instead of tag in make_new_version | 29 April 2014, 17:22:34 UTC |
e525bb1 | Igor Canadi | 29 April 2014, 15:59:36 UTC | Make kMajorVersion and kMinorVersion take version from version macros | 29 April 2014, 15:59:48 UTC |
6cb0cb3 | Igor Canadi | 29 April 2014, 15:32:56 UTC | Add version.h | 29 April 2014, 15:33:00 UTC |
d5cb6e7 | Ankit Gupta | 29 April 2014, 15:02:52 UTC | Assert on key size in multiget | 29 April 2014, 15:02:52 UTC |
65fba4b | Ankit Gupta | 29 April 2014, 14:53:29 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 29 April 2014, 14:53:29 UTC |
91ef2ea | Igor Canadi | 29 April 2014, 03:44:33 UTC | Use new DBWithTTL API in tests | 29 April 2014, 03:46:24 UTC |
f868dcb | Igor Canadi | 29 April 2014, 03:34:20 UTC | Support for adding TTL-ed column family Summary: This enables user to add a TTL column family to normal DB. Next step should be to expand StackableDB and create StackableColumnFamily, such that users can for example add geo-spatial column families to normal DB. Test Plan: added a test Reviewers: dhruba, haobo, ljin Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18201 | 29 April 2014, 03:34:20 UTC |
72ff275 | Igor Canadi | 29 April 2014, 03:30:27 UTC | Fix TransactionLogIterator EOF caching Summary: When TransactionLogIterator comes to EOF, it calls UnmarkEOF and continues reading. However, if glibc cached the EOF status of the file, it will get EOF again, even though the new data might have been written to it. This has been causing errors in Mac OS. Test Plan: test passes, was failing before Reviewers: dhruba, haobo, sdong Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18381 | 29 April 2014, 03:30:27 UTC |
9895465 | Yueh-Hsuan Chiang | 28 April 2014, 04:46:30 UTC | [Java] Fixed compile error due to the removal of ReadOptions.prefix_seek, minor improvement on DbBenchmark.java. | 28 April 2014, 04:49:45 UTC |
7ca06a3 | Igor Canadi | 28 April 2014, 00:17:15 UTC | Merge pull request #130 from donovanhide/master Add rocksdb_open_for_read_only to C API | 28 April 2014, 00:17:15 UTC |
0e4e4db | Ankit Gupta | 27 April 2014, 20:05:39 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 27 April 2014, 20:05:39 UTC |
4f9fae9 | Donovan Hide | 27 April 2014, 19:57:10 UTC | Add rocksdb_open_for_read_only to C API | 27 April 2014, 19:57:10 UTC |
fe331c8 | Igor Canadi | 26 April 2014, 21:21:39 UTC | fix valgrind | 26 April 2014, 21:23:15 UTC |
c489499 | Igor Canadi | 26 April 2014, 21:15:43 UTC | Fix OSX compile | 26 April 2014, 21:15:43 UTC |
13b5632 | Ankit Gupta | 26 April 2014, 05:41:04 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 26 April 2014, 05:41:04 UTC |
a515d23 | Ankit Gupta | 26 April 2014, 05:40:16 UTC | Revert makefile | 26 April 2014, 05:40:16 UTC |
9e0ab42 | Ankit Gupta | 26 April 2014, 05:39:33 UTC | Fix bug + formatting | 26 April 2014, 05:39:33 UTC |
3f8b412 | Ankit Gupta | 26 April 2014, 03:59:16 UTC | Fix formatting | 26 April 2014, 03:59:16 UTC |
e96e71b | Ankit Gupta | 25 April 2014, 20:57:20 UTC | Multi-get impl and formatting | 25 April 2014, 20:57:20 UTC |
a618691 | Igor Canadi | 25 April 2014, 19:49:29 UTC | Read-only BackupEngine Summary: Read-only BackupEngine can connect to the same backup directory that is already running BackupEngine. That enables some interesting use-cases (i.e. restoring replica from primary's backup directory) Test Plan: added a unit test Reviewers: dhruba, haobo, ljin Reviewed By: ljin CC: leveldb Differential Revision: https://reviews.facebook.net/D18297 | 25 April 2014, 19:49:29 UTC |
ccaca59 | Lei Jin | 25 April 2014, 19:23:07 UTC | avoid calling FindFile twice in TwoLevelIterator for PlainTable Summary: this is to reclaim the regression introduced in https://reviews.facebook.net/D17853 Test Plan: make all check Reviewers: igor, haobo, sdong, dhruba, yhchiang Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D17985 | 25 April 2014, 19:23:07 UTC |
d642c60 | Lei Jin | 25 April 2014, 19:22:23 UTC | Check PrefixMayMatch on Seek() Summary: As a follow-up diff for https://reviews.facebook.net/D17805, add optimization to check PrefixMayMatch on Seek() Test Plan: make all check Reviewers: igor, haobo, sdong, yhchiang, dhruba Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D17853 | 25 April 2014, 19:22:23 UTC |
3995e80 | Lei Jin | 25 April 2014, 19:21:34 UTC | kill ReadOptions.prefix and .prefix_seek Summary: also add an override option total_order_iteration if you want to use full iterator with prefix_extractor Test Plan: make all check Reviewers: igor, haobo, sdong, yhchiang Reviewed By: haobo CC: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D17805 | 25 April 2014, 19:21:34 UTC |
8ce5492 | Igor Canadi | 25 April 2014, 18:58:02 UTC | Delete superversion and log outside of mutex Summary: As summary. Add two autovectors that get filled up in MakeRoomForWrite and they get deleted outside of mutex Test Plan: make check Reviewers: dhruba, haobo, ljin, sdong Reviewed By: ljin CC: leveldb Differential Revision: https://reviews.facebook.net/D18249 | 25 April 2014, 18:58:02 UTC |
ad3cd39 | Igor Canadi | 25 April 2014, 13:51:16 UTC | Column family logging Summary: Now that we have column families involved, we need to add extra context to every log message. They now start with "[column family name] log message" Also added some logging that I think would be useful, like level summary after every flush (I often needed that when going through the logs). Test Plan: make check + ran db_bench to confirm I'm happy with log output Reviewers: dhruba, haobo, ljin, yhchiang, sdong Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18303 | 25 April 2014, 13:51:16 UTC |
46b3076 | Igor Canadi | 25 April 2014, 13:50:51 UTC | Better stack trace in MAC Summary: Now this gives us the real deal stack trace: Assertion failed: (false), function GetProperty, file db/db_impl.cc, line 4072. Received signal 6 (Abort trap: 6) #0 0x7fff57ce39b9 #1 abort (in libsystem_c.dylib) + 125 #2 basename (in libsystem_c.dylib) + 0 #3 rocksdb::DBImpl::GetProperty(rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (in db_test) (db_impl.cc:4072) #4 rocksdb::_Test_Empty::_Run() (in db_test) (testharness.h:68) #5 rocksdb::_Test_Empty::_RunIt() (in db_test) (db_test.cc:1005) #6 rocksdb::test::RunAllTests() (in db_test) (testharness.cc:60) #7 main (in db_test) (db_test.cc:6697) #8 start (in libdyld.dylib) + 1 Test Plan: added artificial assert, saw great stack trace Reviewers: haobo, dhruba, ljin Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18309 | 25 April 2014, 13:50:51 UTC |
a82c492 | Yueh-Hsuan Chiang | 25 April 2014, 05:15:25 UTC | [Java] Fixed some errors in the sample and benchmark code. | 25 April 2014, 05:15:25 UTC |
e537a84 | Yueh-Hsuan Chiang | 24 April 2014, 23:17:00 UTC | [Java] Fixed a compile error caused in some Java version. | 24 April 2014, 23:17:00 UTC |
3e0b93b | Yueh-Hsuan Chiang | 24 April 2014, 22:37:27 UTC | [Java] Fixed a compile error. | 24 April 2014, 22:37:27 UTC |
0597949 | Yueh-Hsuan Chiang | 24 April 2014, 20:43:57 UTC | [Java] Enable filluniquerandom, readseq, BloomFilter, and 70+ command-line options to DbBenchmark.java Summary: * Add filluniquerandom * Add readseq, implemented using iterator. * Realize most command-line-arguments from db_bench.cc (70+). * Some code are commented out as some of the options in Options not yet have Java bindings. * Add default option to DbBenchmark. * RocksDB will now take the ownership of all c++ raw-pointers from Options, which includes a c++ raw-pointer for Filter. Test Plan: ./jdb_bench.sh --db=/tmp/rocksjava-bench/db --num_levels=6 --key_size=20 --prefix_size=20 --keys_per_prefix=0 --value_size=100 --block_size=4096 --cache_size=17179869184 --cache_numshardbits=6 --compression_ratio=1 --min_level_to_compress=-1 --disable_seek_compaction=1 --hard_rate_limit=2 --write_buffer_size=134217728 --max_write_buffer_number=2 --level0_file_num_compaction_trigger=8 --target_file_size_base=134217728 --max_bytes_for_level_base=1073741824 --disable_wal=0 --wal_dir=/tmp/rocksjava-bench/wal --sync=0 --disable_data_sync=1 --verify_checksum=1 --delete_obsolete_files_period_micros=314572800 --max_grandparent_overlap_factor=10 --max_background_compactions=4 --max_background_flushes=0 --level0_slowdown_writes_trigger=16 --level0_stop_writes_trigger=24 --statistics=0 --stats_per_interval=0 --stats_interval=1048576 --histogram=0 --use_plain_table=1 --open_files=-1 --mmap_read=1 --mmap_write=0 --memtablerep=prefix_hash --bloom_bits=10 --bloom_locality=1 --perf_level=0 --benchmarks=filluniquerandom,readseq,readrandom --use_existing_db=0 --threads=4 Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18267 | 24 April 2014, 20:43:57 UTC |
4cd9f58 | Igor Canadi | 24 April 2014, 18:56:37 UTC | Fix corruption test | 24 April 2014, 18:56:41 UTC |
478990c | Igor Canadi | 24 April 2014, 18:13:28 UTC | Make CompactionInputErrorParanoid less flakey Summary: I'm getting lots of e-mails with CompactionInputErrorParanoid failing. Most recent example early morning today was: http://ci-builds.fb.com/job/rocksdb_valgrind/562/consoleFull I'm putting a stop to these e-mails. I investigated why the test is flakey and it turns out it's because of non-determinsim of compaction scheduling. If there is a compaction after the last flush, CorruptFile will corrupt the compacted file instead of file at level 0 (as it assumes). That makes `Check(9, 9)` fail big time. I also saw some errors with table file getting outputed to >= 1 levels instead of 0. Also fixed that. Test Plan: Ran corruption_test 100 times without a failure. Previously it usually failed at 10th occurrence. Reviewers: dhruba, haobo, ljin Reviewed By: ljin CC: leveldb Differential Revision: https://reviews.facebook.net/D18285 | 24 April 2014, 18:13:28 UTC |
fc3127e | Igor Canadi | 24 April 2014, 17:52:20 UTC | Install stack trace handlers in unit tests Summary: Sometimes, our tests fail because of normal `assert` call. It would be helpful to see stack trace in that case, too. Test Plan: Added `assert(false)` and verified it prints out stack trace Reviewers: haobo, dhruba, sdong, ljin, yhchiang Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18291 | 24 April 2014, 17:52:20 UTC |
a40970a | Igor Canadi | 24 April 2014, 16:28:11 UTC | Run whitebox test before black box | 24 April 2014, 16:28:16 UTC |
472a80a | Igor Canadi | 24 April 2014, 13:46:50 UTC | Initialize verification_failed in db_stress | 24 April 2014, 13:53:11 UTC |
2413a06 | Igor Canadi | 24 April 2014, 13:22:58 UTC | Improve stability of db_stress Summary: Currently, whenever DB Verification fails we bail out by calling `exit(1)`. This is kind of bad since it causes unclean shutdown and spew of error log messages like: 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument 05:03:27 pthread lock: Invalid argument This diff adds a new parameter that is set to true when verification fails. It can then use the parameter to bail out safely. Test Plan: Casued artificail failure. Verified that exit was clean. Reviewers: dhruba, haobo, ljin Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18243 | 24 April 2014, 13:22:58 UTC |
d8fe006 | Yueh-Hsuan Chiang | 24 April 2014, 03:54:35 UTC | [Java] Add Java bindings and Java tests for 30+ rocksdb::Options. Summary: Add Java bindings and Java tests for 30+ rocksdb::Options. Codes are machine-genearted based on include/rocksdb/options.h with manual-polishment. Test Plan: make rocksdbjava make jtest Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18273 | 24 April 2014, 03:54:35 UTC |
4de5b84 | sdong | 24 April 2014, 00:51:16 UTC | Fix a bug in IterKey Summary: IterKey set buffer_size_ to a wrong initial value, causing it to always allocate values from heap instead of stack if the key size is smaller. Fix it. Test Plan: make all check Reviewers: haobo, ljin Reviewed By: haobo CC: igor, dhruba, yhchiang, leveldb Differential Revision: https://reviews.facebook.net/D18279 | 24 April 2014, 02:45:22 UTC |
f9f8965 | Igor Canadi | 23 April 2014, 13:11:35 UTC | Print out stack trace in mac, too Summary: While debugging Mac-only issue with ThreadLocalPtr, this was very useful. Let's print out stack trace in MAC OS, too. Test Plan: Verified that somewhat useful stack trace was generated on mac. Will run PrintStack() on linux, too. Reviewers: ljin, haobo Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18189 | 23 April 2014, 13:11:35 UTC |
a570740 | sdong | 23 April 2014, 00:17:33 UTC | Expose number of entries in mem tables to users Summary: In this patch, two new DB properties are defined: rocksdb.num-immutable-mem-table and rocksdb.num-entries-imm-mem-tables, from where number of entries in mem tables can be exposed to users Test Plan: Cover the codes in db_test make all check Reviewers: haobo, ljin, igor Reviewed By: igor CC: nkg-, igor, yhchiang, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D18207 | 23 April 2014, 05:13:21 UTC |
5f1daf7 | Lei Jin | 23 April 2014, 04:14:25 UTC | get rid of shared_ptr in memtable.cc Summary: Get rid of the devil. Probably won't impact anything on the perf side. Test Plan: make all check Reviewers: igor, haobo, sdong, yhchiang Reviewed By: haobo CC: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D18153 | 23 April 2014, 04:14:25 UTC |
547bb6a | Lei Jin | 23 April 2014, 04:13:34 UTC | simplify ThreadLocalPtr a little bit Summary: make singleton a static member instead of dynamic object. This should also avoid the race on unique_ptr Test Plan: make all check Reviewers: igor, haobo, sdong Reviewed By: igor CC: leveldb Differential Revision: https://reviews.facebook.net/D18177 | 23 April 2014, 04:13:34 UTC |
86a0133 | sdong | 23 April 2014, 01:31:55 UTC | PlainTableReader to expose index size to users Summary: This is a temp solution to expose index sizes to users from PlainTableReader before we persistent them to files. In this patch, the memory consumption of indexes used by PlainTableReader will be reported as two user defined properties, so that users can monitor them. Test Plan: Add a unit test. make all check` Reviewers: haobo, ljin Reviewed By: haobo CC: nkg-, yhchiang, igor, ljin, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D18195 | 23 April 2014, 02:29:05 UTC |
1068d2f | Igor Canadi | 23 April 2014, 01:38:10 UTC | Revert "Better port::Mutex::AssertHeld() and AssertNotHeld()" This reverts commit ddafceb6c2ecb83b7bdf6711ea1c30d97aeb3b8f. | 23 April 2014, 01:38:10 UTC |
ddafceb | Igor Canadi | 23 April 2014, 00:26:21 UTC | Better port::Mutex::AssertHeld() and AssertNotHeld() Summary: Using ThreadLocalPtr as a flag to determine if a mutex is locked or not enables us to implement AssertNotHeld(). It also makes AssertHeld() actually correct. I had to remove port::Mutex as a dependency for util/thread_local.h, but that's fine since we can just use std::mutex :) Test Plan: make check Reviewers: ljin, dhruba, haobo, sdong, yhchiang Reviewed By: ljin CC: leveldb Differential Revision: https://reviews.facebook.net/D18171 | 23 April 2014, 00:26:21 UTC |
2912340 | Yueh-Hsuan Chiang | 22 April 2014, 20:46:42 UTC | Merge pull request #125 from ankgup87/master [Java] Add bloom filter JNI bindings | 22 April 2014, 20:46:42 UTC |
042221b | Ankit Gupta | 22 April 2014, 20:05:40 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 22 April 2014, 20:05:40 UTC |
3992aec | Igor Canadi | 22 April 2014, 18:27:33 UTC | Support for column families in TTL DB Summary: This will enable people using TTL DB to do so with multiple column families. They can also specify different TTLs for each one. TODO: Implement CreateColumnFamily() in TTL world. Test Plan: Added a very simple sanity test. Reviewers: dhruba, haobo, ljin, sdong, yhchiang Reviewed By: haobo CC: leveldb, alberts Differential Revision: https://reviews.facebook.net/D17859 | 22 April 2014, 18:27:33 UTC |
dd9f6f0 | Ankit Gupta | 22 April 2014, 17:51:39 UTC | Fix formatting | 22 April 2014, 17:51:39 UTC |
e557297 | James Pearce | 22 April 2014, 16:12:19 UTC | New CLA form | 22 April 2014, 16:12:19 UTC |
7a5106f | Ankit Gupta | 22 April 2014, 16:01:57 UTC | Add doc | 22 April 2014, 16:01:57 UTC |
2214fd8 | Ankit Gupta | 22 April 2014, 15:58:43 UTC | Refactor filter impl | 22 April 2014, 15:58:43 UTC |
89cb481 | Ankit Gupta | 22 April 2014, 07:09:40 UTC | Fix doc | 22 April 2014, 07:09:40 UTC |
677b0d6 | Ankit Gupta | 22 April 2014, 07:04:56 UTC | Refactor filter impl | 22 April 2014, 07:04:56 UTC |
5e797cf | Ankit Gupta | 22 April 2014, 06:56:19 UTC | Change filter implementation | 22 April 2014, 06:56:19 UTC |
cea2be2 | Ankit Gupta | 22 April 2014, 03:27:09 UTC | Fix formatting | 22 April 2014, 03:27:09 UTC |
dc4b27a | Ankit Gupta | 22 April 2014, 03:25:30 UTC | Add bloom filters | 22 April 2014, 03:25:30 UTC |
af6ad11 | Yueh-Hsuan Chiang | 22 April 2014, 00:49:47 UTC | Fix SIGFAULT when running sst_dump on v2.6 db Summary: Fix the sigfault when running sst_dump on v2.6 db. Test Plan: git checkout bba6595b1f3f42cf79bb21c2d5b981ede1cc0063 make clean make db_bench ./db_bench --db=/tmp/some/db --benchmarks=fillseq arc patch D18039 make clean make sst_dump ./sst_dump --file=/tmp/some/db --command=check Reviewers: igor, haobo, sdong Reviewed By: sdong CC: leveldb Differential Revision: https://reviews.facebook.net/D18039 | 22 April 2014, 00:49:47 UTC |
c2da9e5 | Igor Canadi | 22 April 2014, 00:45:04 UTC | Flush before Fsync()/Sync() Summary: Calling Fsync()/Sync() on a file should give the guarantee that whatever you written to the file is now persisted. This is currently not the case, since we might have some data left in application cache as we do Fsync()/Sync(). For example, BuildTable() calls Fsync() without the flush, assuming all sst data is now persisted, but it's actually not. This may result in big inconsistencies. Test Plan: no test Reviewers: sdong, dhruba, haobo, ljin, yhchiang Reviewed By: sdong CC: leveldb Differential Revision: https://reviews.facebook.net/D18159 | 22 April 2014, 00:45:04 UTC |
ba16c1f | Igor Canadi | 22 April 2014, 00:43:48 UTC | Move benchmark timing to Env::NowNanos() | 22 April 2014, 00:43:51 UTC |
e316af5 | Yueh-Hsuan Chiang | 21 April 2014, 22:52:59 UTC | [Java] Add Java binding and Java test for ReadOptions. Summary: Add Java binding and test for rocksdb::ReadOptions. Test Plan: make rocksdbjava make jtest Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18129 | 21 April 2014, 22:52:59 UTC |
d0939cd | Igor Canadi | 21 April 2014, 22:42:04 UTC | Single-threaded asan_crash_test | 21 April 2014, 22:42:28 UTC |
ef8b8a8 | Yueh-Hsuan Chiang | 21 April 2014, 22:40:46 UTC | [Java] Add Java bindings for memtables and sst format. Summary: Add Java bindings for memtables and sst format. Specifically, add two abstract Java classses --- MemTableConfig and SstFormatConfig. Each MemTable / SST implementation should has its own config class extends MemTableConfig / SstFormatConfig respectively and pass it to Options via setMemTableConfig / setSstConfig. Test Plan: make rocksdbjava make jdb_test make jdb_bench java/jdb_bench.sh \ --benchmarks=fillseq,readrandom,readwhilewriting \ --memtablerep=hash_skiplist \ --use_plain_table=1 \ --key_size=20 \ --prefix_size=12 \ --value_size=100 \ --cache_size=17179869184 \ --disable_wal=0 \ --sync=0 \ Reviewers: haobo, ankgup87, sdong Reviewed By: haobo CC: leveldb, dhruba Differential Revision: https://reviews.facebook.net/D17997 | 21 April 2014, 22:40:46 UTC |
8dc3436 | Igor Canadi | 21 April 2014, 20:01:50 UTC | Rename "benchmark" back to "bench". Also, make `benchharness.cc` not compiled into rocksdb library. | 21 April 2014, 20:12:15 UTC |
05c1686 | Igor Canadi | 21 April 2014, 19:55:41 UTC | Relax env_test::AllocateTest | 21 April 2014, 19:56:32 UTC |
ff1b5df | Pratyush Seth | 21 April 2014, 19:29:55 UTC | Added benchmark functionality on the lines of folly/Benchmark.h Summary: Added benchmark functionality on the lines of folly/Benchmark.h Test Plan: Added unit tests Reviewers: igor, haobo, sdong, ljin, yhchiang, dhruba Reviewed By: igor CC: leveldb Differential Revision: https://reviews.facebook.net/D17973 | 21 April 2014, 19:29:55 UTC |
c7076a7 | Igor Canadi | 21 April 2014, 19:12:02 UTC | Fix Allocate test Summary: For some reason, on a subset of our continuous build machines, preallocation is allocating 8 block more than it should be. Let's relax the test a little bit -- now we require the test to allocate *at least* the number of blocks as we told them to. Test Plan: no Reviewers: ljin, haobo, sdong Reviewed By: ljin CC: leveldb Differential Revision: https://reviews.facebook.net/D18141 | 21 April 2014, 19:12:02 UTC |
f813279 | Igor Canadi | 21 April 2014, 18:08:30 UTC | Remove TransactionLogIteratorRace when -DNDEBUG | 21 April 2014, 18:08:30 UTC |
11e8525 | Igor Canadi | 21 April 2014, 16:59:39 UTC | Merge pull request #124 from ankgup87/master [Java] Add iterator JNI bindings | 21 April 2014, 16:59:39 UTC |
0f2d768 | Lei Jin | 21 April 2014, 16:10:12 UTC | hints for narrowing down FindFile range and avoiding checking unrelevant L0 files Summary: The file tree structure in Version is prebuilt and the range of each file is known. On the Get() code path, we do binary search in FindFile() by comparing target key with each file's largest key and also check the range for each L0 file. With some pre-calculated knowledge, each key comparision that has been done can serve as a hint to narrow down further searches: (1) If a key falls within a L0 file's range, we can safely skip the next file if its range does not overlap with the current one. (2) If a key falls within a file's range in level L0 - Ln-1, we should only need to binary search in the next level for files that overlap with the current one. (1) will be able to skip some files depending one the key distribution. (2) can greatly reduce the range of binary search, especially for bottom levels, given that one file most likely only overlaps with N files from the level below (where N is max_bytes_for_level_multiplier). So on level L, we will only look at ~N files instead of N^L files. Some inital results: measured with 500M key DB, when write is light (10k/s = 1.2M/s), this improves QPS ~7% on top of blocked bloom. When write is heavier (80k/s = 9.6M/s), it gives us ~13% improvement. Test Plan: make all check Reviewers: haobo, igor, dhruba, sdong, yhchiang Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D17205 | 21 April 2014, 16:10:12 UTC |
bbdd550 | Ankit Gupta | 20 April 2014, 06:17:42 UTC | Remove getIterator function from portal | 20 April 2014, 06:17:42 UTC |
1574e0c | Ankit Gupta | 19 April 2014, 20:21:06 UTC | Add doc | 19 April 2014, 20:21:06 UTC |
06b590d | Ankit Gupta | 19 April 2014, 20:13:01 UTC | Add doc | 19 April 2014, 20:13:01 UTC |
dc28a72 | Ankit Gupta | 19 April 2014, 20:05:21 UTC | Add doc + refactor + fix formatting | 19 April 2014, 20:05:21 UTC |
1d6c1e0 | Ankit Gupta | 19 April 2014, 19:55:28 UTC | Add more iterator JNI bindings | 19 April 2014, 19:55:28 UTC |