7a9dd5f | Haobo Xu | 19 June 2014, 22:32:31 UTC | [RocksDB] Make block based table hash index more adaptive Summary: Currently, RocksDB returns error if a db written with prefix hash index, is later opened without providing a prefix extractor. This is uncessarily harsh. Without a prefix extractor, we could always fallback to the normal binary index. Test Plan: unit test, also manually veried LOG that fallback did occur. Reviewers: sdong, ljin Reviewed By: ljin Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19191 | 19 June 2014, 23:40:32 UTC |
4f5ccfd | Yueh-Hsuan Chiang | 19 June 2014, 21:53:03 UTC | Fixed a potential write hang Summary: Currently, when something badly happen in the DB::Write() while the write-queue contains more than one element, the current design seems to forget to clean up the queue as well as wake-up all the writers, this potentially makes rocksdb hang on writes. Test Plan: make all check Reviewers: sdong, ljin, igor, haobo Reviewed By: haobo Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19167 | 19 June 2014, 21:53:03 UTC |
bae4957 | Igor Canadi | 19 June 2014, 19:22:46 UTC | Merge pull request #179 from edsrzf/c-api-compaction-filter Support for compaction filters in the C API | 19 June 2014, 19:22:46 UTC |
1ec2d1c | Lei Jin | 19 June 2014, 17:12:26 UTC | fix make shared_lib compilation error Summary: s/class ParsedInternalKey/struct ParsedInternalKey Test Plan: make shared_lib Reviewers: igor, yhchiang, sdong, haobo Reviewed By: haobo Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19173 | 19 June 2014, 17:12:26 UTC |
c4e90c7 | Lei Jin | 19 June 2014, 16:31:14 UTC | bug fix: iteration over ColumnFamilySet needs to be under mutex Summary: asan_crash_test is failing on segfault Test Plan: running asan_crash_test Reviewers: sdong, igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19149 | 19 June 2014, 16:31:14 UTC |
5363eb8 | Evan Shaw | 19 June 2014, 03:45:26 UTC | Add a test for using compaction filters via the C API | 19 June 2014, 09:46:58 UTC |
1677382 | Haobo Xu | 19 June 2014, 08:07:49 UTC | [RocksDB] Fix unit test Summary: fix a bug in D19047, which caused DBTest.RecoverDuringMemtableCompaction to fail. Test Plan: unit test Reviewers: sdong, igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19155 | 19 June 2014, 08:37:21 UTC |
d72313a | Evan Shaw | 18 June 2014, 02:28:11 UTC | Add a way to set compaction filter in the C API | 19 June 2014, 04:31:24 UTC |
df27013 | Evan Shaw | 18 June 2014, 02:23:47 UTC | Support for compaction filters in the C API | 19 June 2014, 04:31:17 UTC |
edd47c5 | sdong | 18 June 2014, 23:36:48 UTC | PlainTable to encode to avoid to rewrite prefix when it is the same as the previous key Summary: Add a encoding feature of PlainTable to encode PlainTable's keys to save some bytes for the same prefixes. The data format is documented in table/plain_table_factory.h Test Plan: Add unit test coverage in plain_table_db_test Reviewers: yhchiang, igor, dhruba, ljin, haobo Reviewed By: haobo Subscribers: nkg-, leveldb Differential Revision: https://reviews.facebook.net/D18735 | 19 June 2014, 03:41:52 UTC |
0f0076e | Haobo Xu | 13 June 2014, 02:03:22 UTC | [RocksDB] Reduce memory footprint of the blockbased table hash index. Summary: Currently, the in-memory hash index of blockbased table uses a precise hash map to track the prefix to block range mapping. In some use cases, especially when prefix itself is big, the memory overhead becomes a problem. This diff introduces a fixed hash bucket array that does not store the prefix and allows prefix collision, which is similar to the plaintable hash index, in order to reduce the memory consumption. Just a quick draft, still testing and refining. Test Plan: unit test and shadow testing Reviewers: dhruba, kailiu, sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19047 | 19 June 2014, 01:16:07 UTC |
3525aac | Igor Canadi | 18 June 2014, 05:04:37 UTC | Change order of parameters in adaptive table factory Summary: This is minor, but if we put the writing talbe factory as the third parameter, when we add a new table format, we'll have a situation: 1) block based factory 2) plain table factory 3) output factory 4) new format factory I think it makes more sense to have output as the first parameter. Also, fixed a NewAdaptiveTableFactory() call in unit test Test Plan: unit test Reviewers: sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19119 | 18 June 2014, 05:04:37 UTC |
8c265c0 | sdong | 17 June 2014, 22:58:35 UTC | HashLinkList to log distribution of number of entries aross buckets Summary: Add two parameters of hash linked list to log distribution of number of entries across all buckets, and a sample row when there are too many entries in one single bucket. Test Plan: Turn it on in plain_table_db_test and see the logs. Reviewers: haobo, ljin Reviewed By: ljin Subscribers: leveldb, nkg-, dhruba, yhchiang Differential Revision: https://reviews.facebook.net/D19095 | 18 June 2014, 00:55:36 UTC |
4bff7a8 | Yueh-Hsuan Chiang | 17 June 2014, 22:52:37 UTC | Merge pull request #177 from nanwu/master specify the command to install build_tools/mac-install-gflags.sh file in... | 17 June 2014, 22:52:37 UTC |
b982e65 | nawu | 17 June 2014, 22:03:21 UTC | specify the command to install build_tools/mac-install-gflags.sh file in doc | 17 June 2014, 22:03:21 UTC |
200e4b4 | sdong | 17 June 2014, 03:06:18 UTC | Add a table factory that can read DB with both of PlainTable and BlockBasedTable in it Summary: The new table factory is used if users want to convert a DB from one table format to the other. A user can use this table to open a DB written using one table format and write new files to another table format. Test Plan: add a unit test Reviewers: haobo, igor Reviewed By: igor Subscribers: dhruba, ljin, yhchiang, leveldb Differential Revision: https://reviews.facebook.net/D19017 | 17 June 2014, 18:49:22 UTC |
4f18bfe | Igor Canadi | 17 June 2014, 18:38:06 UTC | Merge pull request #176 from bgrainger/mutexrw-unlock Add separate Read/WriteUnlock methods in MutexRW. | 17 June 2014, 18:38:06 UTC |
e6e259b | Yueh-Hsuan Chiang | 16 June 2014, 23:26:46 UTC | Include max_write_buffer_number >= 2 to SanitizeOptions. Summary: Include max_write_buffer_number >= 2 to SanitizeOptions. Test Plan: make all check Reviewers: haobo, sdong, igor, ljin Reviewed By: ljin Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19077 | 16 June 2014, 23:26:46 UTC |
cadc1ad | sdong | 13 June 2014, 22:54:19 UTC | Refactor: group metadata needed to open an SST file to a separate copyable struct Summary: We added multiple fields to FileMetaData recently and are planning to add more. This refactoring separate the minimum information for accessing the file. This object is copyable (FileMetaData is not copyable since the ref counter). I hope this refactoring can enable further improvements: (1) use it to design a more efficient data structure to speed up read queries. (2) in the future, when we add information of storage level, we can easily do the encoding, instead of enlarge this structure, which might expand memory work set for file meta data. The definition is same as current EncodedFileMetaData used in two level iterator, so now the logic in two level iterator is easier to understand. Test Plan: make all check Reviewers: haobo, igor, ljin Reviewed By: ljin Subscribers: leveldb, dhruba, yhchiang Differential Revision: https://reviews.facebook.net/D18933 | 16 June 2014, 23:10:52 UTC |
2d02ec6 | Bradley Grainger | 16 June 2014, 22:41:46 UTC | Add separate Read/WriteUnlock methods in MutexRW. Some platforms, particularly Windows, do not have a single method that can release both a held reader lock and a held writer lock; instead, a separate method (ReleaseSRWLockShared or ReleaseSRWLockExclusive) must be called in each case. This may also be necessary to back MutexRW with a shared_mutex in C++14; the current language proposal includes both an unlock() and a shared_unlock() method. | 16 June 2014, 22:41:46 UTC |
4d913cf | Yueh-Hsuan Chiang | 16 June 2014, 17:27:42 UTC | Fix a bug causing LOG is not created when max_log_file_size is set. Summary: Fix a bug causing LOG is not created when max_log_file_size is set. This bug is reported in issue #174. Test Plan: Add TEST(AutoRollLoggerTest, LogFileExistence). make auto_roll_logger_test ./auto_roll_logger_test Reviewers: haobo, sdong, ljin, igor, igor2 Reviewed By: igor2 Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D19053 | 16 June 2014, 17:27:42 UTC |
983c93d | sdong | 13 June 2014, 22:06:10 UTC | VersionSet::Get(): Bring back the logic of skipping key range check when there are <=3 level 0 files Summary: https://reviews.facebook.net/D17205 removed the logic of skipping file key range check when there are less than 3 level 0 files. This patch brings it back. Other than that, add another small optimization to avoid to check all the levels if most higher levels don't have any file. Test Plan: make all check Reviewers: ljin Reviewed By: ljin Subscribers: yhchiang, igor, haobo, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D19035 | 13 June 2014, 22:51:44 UTC |
a52a4e0 | Barnaby | 13 June 2014, 21:11:10 UTC | Update README.md Moved doc/index.html to wiki | 13 June 2014, 21:11:10 UTC |
9202d9b | sdong | 12 June 2014, 17:54:57 UTC | Fix sst_dump for PlainTable Summary: sst_dump now doesn't work well for PlainTable. Not sure when it started, but this should fix it. Test Plan: Run sst_dump against a file that used to fail. Reviewers: yhchiang, haobo, igor Reviewed By: igor Subscribers: dhruba, ljin, leveldb Differential Revision: https://reviews.facebook.net/D19023 | 12 June 2014, 18:03:03 UTC |
c83b085 | Lei Jin | 12 June 2014, 17:06:18 UTC | prefetch bloom filter data block for L0 files Summary: as title Test Plan: db_bench the initial result is very promising. I will post results of complete runs Reviewers: dhruba, haobo, sdong, igor Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18867 | 12 June 2014, 17:06:18 UTC |
578cf84 | Lei Jin | 10 June 2014, 23:32:09 UTC | give correct metric name for grep in regression script Summary: as title Test Plan: jenkin Reviewers: igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D19005 | 10 June 2014, 23:32:09 UTC |
c4b3817 | Lei Jin | 10 June 2014, 18:24:24 UTC | fix regression test Summary: as title Test Plan: push Reviewers: igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18999 | 10 June 2014, 18:24:24 UTC |
88a1691 | sdong | 10 June 2014, 16:36:59 UTC | BlockBasedTable::PrefixMayMatch() to bloom setting to the beginning of the function Summary: In BlockBasedTable::PrefixMayMatch() we calculate prefix even if bloom is not config. Move the check before Test Plan: make all check Reviewers: igor, ljin Reviewed By: ljin Subscribers: wuj, leveldb, haobo, yhchiang, dhruba Differential Revision: https://reviews.facebook.net/D18993 | 10 June 2014, 18:14:22 UTC |
e2d3101 | Lei Jin | 10 June 2014, 16:59:16 UTC | collect metrics for in memory workload get/seek Summary: collect in-memory workload get/seek metrics so that we can alert on regression Test Plan: ran locally Reviewers: igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18969 | 10 June 2014, 16:59:16 UTC |
77db08f | Lei Jin | 10 June 2014, 16:57:26 UTC | fix forward iterator bug Summary: obvious Test Plan: db_test Reviewers: sdong, haobo, igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18987 | 10 June 2014, 16:57:26 UTC |
80f409e | sdong | 09 June 2014, 19:30:19 UTC | Clean PlainTableReader's variables for better data locality Summary: Clean PlainTableReader's data structures: (1) inline bloom_ (in order to do this, change DynamicBloom to allow lazy initialization) (2) remove some variables only used when initialization from the class (3) put variables not used in normal read code paths to the end of the class and reference prefix_extractor directly (4) make Options a reference. Test Plan: make all check Reviewers: haobo, ljin Reviewed By: ljin Subscribers: igor, yhchiang, dhruba, leveldb Differential Revision: https://reviews.facebook.net/D18891 | 09 June 2014, 20:53:39 UTC |
f43c826 | Igor Canadi | 09 June 2014, 19:26:09 UTC | Don't compress block bigger than 2GB Summary: This is a temporary solution to a issue that we have with compression libraries. See task #4453446. Test Plan: make check doesn't complain :) Reviewers: haobo, ljin, yhchiang, dhruba, sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18975 | 09 June 2014, 19:26:09 UTC |
ee5a51e | sdong | 07 June 2014, 00:17:12 UTC | sst_dump: still try to print out table properties even if failing to read the file Summary: Even if the file is corrupted, table properties are usually available to print out. Now sst_dump would just fail without printing table properties. With this patch, table properties are still try to be printed out. Test Plan: run sst_dump against multiple scenarios Reviewers: igor, yhchiang, ljin, haobo Reviewed By: haobo Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D18981 | 09 June 2014, 18:21:44 UTC |
3e701a6 | Yueh-Hsuan Chiang | 08 June 2014, 00:27:03 UTC | [Java] Improve documentation for RocksEnv and its C++ resource. Summary: Improve documentation for RocksEnv and its C++ resource. Specifically, the result of RocksEnv::Default() is a singleton, and the ownership of its c++ resource belongs to rocksdb c++. As a result, calling dispose() of the return value of RocksDB::Default() will be no-op. Test Plan: no code change. Reviewers: haobo, ankgup87 Reviewed By: ankgup87 Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18945 | 08 June 2014, 00:27:03 UTC |
0365eaf | Igor Canadi | 07 June 2014, 01:27:44 UTC | remove unnecessary printf | 07 June 2014, 01:27:44 UTC |
a0191c9 | Igor Canadi | 07 June 2014, 01:04:56 UTC | Create Missing Column Families Summary: Provide an convenience option to create column families if they are missing from the DB. Task #4460490 Test Plan: added unit test. also, stress test for some time Reviewers: sdong, haobo, dhruba, ljin, yhchiang Reviewed By: yhchiang Subscribers: yhchiang, leveldb Differential Revision: https://reviews.facebook.net/D18951 | 07 June 2014, 01:04:56 UTC |
99d3eed | Igor Canadi | 07 June 2014, 00:26:23 UTC | Write Fast-path for single column family Summary: We have a perf regression of Write() even with one column family. Make fast path for single column family to avoid the perf regression. See task #4455480 Test Plan: make check Reviewers: sdong, ljin Reviewed By: sdong, ljin Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18963 | 07 June 2014, 00:26:23 UTC |
e72b02e | Yueh-Hsuan Chiang | 06 June 2014, 00:09:25 UTC | [Java] Add basic Java binding for rocksdb::Env. Summary: Add basic Java binding for rocksdb::Env. Test Plan: make rocksdbjava make jtest cd java ./jdb_bench.sh --max_background_compactions=1 ./jdb_bench.sh --max_background_compactions=10 Reviewers: sdong, ankgup87, haobo Reviewed By: haobo Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18903 | 06 June 2014, 00:09:25 UTC |
b92a19a | sdong | 05 June 2014, 22:12:32 UTC | sst_dump: Set dummy prefix extractor for binary search index in block based table Summary: Now sst_dump fails in block based tables if binary search index is used, as it requires a prefix extractor. Add it. Test Plan: Run it against such a file to make sure it fixes the problem. Reviewers: yhchiang, kailiu Reviewed By: kailiu Subscribers: ljin, igor, dhruba, haobo, leveldb Differential Revision: https://reviews.facebook.net/D18927 | 05 June 2014, 22:37:23 UTC |
5d87071 | Igor Canadi | 05 June 2014, 20:19:35 UTC | Correctly preallocate files in universal compaction Summary: In universal compaction, MaxFileSizeForLevel is ULLONG_MAX. We've been preallocation files to UULONG_MAX size all these time :) Test Plan: make check Reviewers: dhruba, haobo, ljin, sdong, yhchiang Reviewed By: yhchiang Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18915 | 05 June 2014, 20:19:35 UTC |
166cc5b | Yueh-Hsuan Chiang | 05 June 2014, 16:24:55 UTC | Merge pull request #157 from ankgup87/master [Java] Add RestoreBackupableDB | 05 June 2014, 16:24:55 UTC |
1a6c1a5 | Ankit Gupta | 05 June 2014, 12:34:38 UTC | Fix build | 05 June 2014, 12:34:38 UTC |
2fa0a99 | Ankit Gupta | 05 June 2014, 12:25:08 UTC | Fix build | 05 June 2014, 12:25:08 UTC |
0831432 | Ankit Gupta | 05 June 2014, 12:17:53 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 05 June 2014, 12:17:53 UTC |
457bae6 | Igor Canadi | 04 June 2014, 16:59:44 UTC | Fix regression test Summary: https://github.com/facebook/rocksdb/commit/388d2054c7077d58ea56e08092382d904bec71c7 added extra line to db_bench output, breaking regression tests. This diff makes it more robust and fixes the issue Test Plan: ran it Reviewers: ljin, sdong Reviewed By: sdong Subscribers: sdong, leveldb Differential Revision: https://reviews.facebook.net/D18897 | 04 June 2014, 16:59:44 UTC |
552c49f | Igor Canadi | 03 June 2014, 20:58:44 UTC | Remove upper bound for rate limiting unit test | 03 June 2014, 20:58:44 UTC |
fd27001 | Igor Canadi | 03 June 2014, 19:28:58 UTC | Fix compile errors on Mac Summary: https://phabricator.fb.com/P11372644 Test Plan: compiles Reviewers: sdong, ljin Reviewed By: ljin Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18873 | 03 June 2014, 19:28:58 UTC |
df9069d | sdong | 02 June 2014, 23:38:00 UTC | In DB::NewIterator(), try to allocate the whole iterator tree in an arena Summary: In this patch, try to allocate the whole iterator tree starting from DBIter from an arena 1. ArenaWrappedDBIter is created when serves as the entry point of an iterator tree, with an arena in it. 2. Add an option to create iterator from arena for following iterators: DBIter, MergingIterator, MemtableIterator, all mem table's iterators, all table reader's iterators and two level iterator. 3. MergeIteratorBuilder is created to incrementally build the tree of internal iterators. It is passed to mem table list and version set and add iterators to it. Limitations: (1) Only DB::NewIterator() without tailing uses the arena. Other cases, including readonly DB and compactions are still from malloc (2) Two level iterator itself is allocated in arena, but not iterators inside it. Test Plan: make all check Reviewers: ljin, haobo Reviewed By: haobo Subscribers: leveldb, dhruba, yhchiang, igor Differential Revision: https://reviews.facebook.net/D18513 | 03 June 2014, 00:44:57 UTC |
4627966 | sdong | 02 June 2014, 23:52:29 UTC | dynamic_bloom: replace some divide (remainder) operations with shifts in locality mode, and other improvements Summary: This patch changes meaning of options.bloom_locality: 0 means disable cache line optimization and any positive number means use CACHE_LINE_SIZE as block size (the previous behavior is the block size will be CACHE_LINE_SIZE*options.bloom_locality). By doing it, the divide operations inside a block can be replaced by a shift. Performance is improved: https://reviews.facebook.net/P471 Also, improve the basic algorithm in two ways: (1) make sure num of blocks is an odd number (2) rotate bytes after every probe in locality mode. Since the divider is 2^n, unless doing it, we are never able to use all the bits. Improvements of false positive: https://reviews.facebook.net/P459 Test Plan: make all check Reviewers: ljin, haobo Reviewed By: haobo Subscribers: dhruba, yhchiang, igor, leveldb Differential Revision: https://reviews.facebook.net/D18843 | 03 June 2014, 00:36:38 UTC |
91ddd58 | Igor Canadi | 03 June 2014, 00:23:55 UTC | Only signal cond variable if need to Summary: At the end of BackgroundCallCompaction(), we call SignalAll(), even though we don't need to. If compaction hasn't done anything and there's another compaction running, there is no need to signal on the condition variable. Doing so creates a tight feedback loop which results in log files like: wait for memtable flush compaction nothing to do wait for memtable flush compaction nothing to do This change eliminates that Test Plan: make check Also: icanadi@dev1440 ~ $ grep "nothing to do" /fast-rocksdb-tmp/rocksdb_test/column_family_test/LOG | wc -l 7435 icanadi@dev1440 ~ $ grep "nothing to do" /fast-rocksdb-tmp/rocksdb_test/column_family_test/LOG | wc -l 372 First version is before the change, second version is after the change. Reviewers: dhruba, ljin, haobo, yhchiang, sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18855 | 03 June 2014, 00:23:55 UTC |
8cb7ad8 | Igor Canadi | 02 June 2014, 22:33:54 UTC | Flush stale column families less aggressively Summary: We've seen some production issues where column family is detected as stale, although there is only one column family in the system. This is a quick fix that: 1) doesn't flush stale column families if there's only one of them 2) Use 4 as a coefficient instead of 2 for determening when a column family is stale. This will make flushing less aggressive, while still keep a nice dynamic flushing of very stale CFs. Test Plan: make check Reviewers: dhruba, haobo, ljin, sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18861 | 02 June 2014, 22:33:54 UTC |
593bb2c | sdong | 02 June 2014, 17:12:41 UTC | db_stress to add an option to periodically change background thread pool size. Summary: Add an option to indicates the variation of background threads. If the flag is not 0, for every 100 milliseconds, adjust thread pool size to a value within the range. Test Plan: run db_stress Reviewers: haobo, dhruba, igor, ljin Reviewed By: ljin Subscribers: leveldb, nkg- Differential Revision: https://reviews.facebook.net/D18759 | 02 June 2014, 17:32:09 UTC |
388d205 | Lei Jin | 30 May 2014, 21:31:55 UTC | forward iterator Summary: Forward iterator puts everything together in a flat structure instead of a hierarchy of nested iterators. this should simplify the code and provide better performance. It also enables more optimization since all information are accessiable in one place. Init evaluation shows about 6% improvement Test Plan: db_test and db_bench Reviewers: dhruba, igor, tnovak, sdong, haobo Reviewed By: haobo Subscribers: sdong, leveldb Differential Revision: https://reviews.facebook.net/D18795 | 30 May 2014, 21:31:55 UTC |
f29c62f | Lei Jin | 30 May 2014, 21:09:22 UTC | add an iterator refresh option for SeekRandom Summary: One more option to allow iterator refreshing when using normal iterator Test Plan: ran db_bench Reviewers: haobo, sdong, igor Reviewed By: igor Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18849 | 30 May 2014, 21:09:22 UTC |
fa1b62c | Ankit Gupta | 30 May 2014, 01:33:11 UTC | Merge remote-tracking branch 'upstream/master' | 30 May 2014, 01:33:11 UTC |
9899b12 | sdong | 29 May 2014, 17:57:22 UTC | ThreadID printed when Thread terminating in the same format as posix_logger Summary: https://github.com/facebook/rocksdb/commit/220132b65ec17abb037d3e79d5abf6ca8d797b96 correctly fixed the issue of thread ID printing when terminating a thread. Nothing wrong with it. This diff prints the ID in the same way as in PosixLogger::logv() so that users can be more easily to correlates them. Test Plan: run env_test and make sure it prints correctly. Reviewers: igor, haobo, ljin, yhchiang Reviewed By: yhchiang Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D18819 | 29 May 2014, 18:11:08 UTC |
ab3e566 | Yueh-Hsuan Chiang | 29 May 2014, 01:16:29 UTC | [Java] Generalize dis-own native handle and refine dispose framework. Summary: 1. Move disOwnNativeHandle() function from RocksDB to RocksObject to allow other RocksObject to use disOwnNativeHandle() when its ownership of native handle has been transferred. 2. RocksObject now has an abstract implementation of dispose(), which does the following two things. First, it checks whether both isOwningNativeHandle() and isInitialized() return true. If so, it will call the protected abstract function dispose0(), which all the subclasses of RocksObject should implement. Second, it sets nativeHandle_ = 0. This redesign ensure all subclasses of RocksObject have the same dispose behavior. 3. All subclasses of RocksObject now should implement dispose0() instead of dispose(), and dispose0() will be called only when isInitialized() returns true. Test Plan: make rocksdbjava make jtest Reviewers: dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett, haobo Reviewed By: haobo Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18801 | 29 May 2014, 01:16:29 UTC |
663627a | Yueh-Hsuan Chiang | 27 May 2014, 21:07:22 UTC | Merge pull request #153 from bpot/fix_jni_segfault Segfault when using BackupableDB with Java bindings | 27 May 2014, 21:07:22 UTC |
8e41e54 | Yueh-Hsuan Chiang | 27 May 2014, 20:52:44 UTC | [Java] Makes DbBenchmark takes 0 and 1 as boolean values. Summary: Originally, the boolean arguments in Java DB benchmark only takes true and false as valid input. This diff allows boolean arguments to be set using 0 or 1. Test Plan: make rocksdbjava make jdb_bench java/jdb_bench.sh --db=/tmp/path-not-exist --use_existing_db=1 java/jdb_bench.sh --db=/tmp/path-not-exist --use_existing_db=0 java/jdb_bench.sh --db=/tmp/path-not-exist --use_existing_db=1 Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett Reviewed By: haobo Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D18687 | 27 May 2014, 20:52:44 UTC |
84cbafa | Ankit Gupta | 27 May 2014, 20:04:16 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 27 May 2014, 20:04:16 UTC |
05dd018 | Bob Potter | 27 May 2014, 18:54:02 UTC | BackupableDB: don't keep a reference to the RocksDB object now that we have disOwnNativeObject | 27 May 2014, 18:54:02 UTC |
f068d2a | Igor Canadi | 23 May 2014, 17:27:56 UTC | Move master version to 3.2 | 23 May 2014, 17:27:56 UTC |
3a1cf12 | Igor Canadi | 22 May 2014, 17:24:24 UTC | Run FIFO compaction as part of db_crashtest2.py Summary: As title Test Plan: ran it Reviewers: dhruba Reviewed By: dhruba Differential Revision: https://reviews.facebook.net/D18783 | 22 May 2014, 17:24:24 UTC |
5fe176d | Bob Potter | 20 May 2014, 23:52:27 UTC | Java Bindings: prevent segfault from double delete Give BackupableDB sole responsibility of the native object to prevent RocksDB from also trying to delete it. | 21 May 2014, 23:47:18 UTC |
1fd4654 | Igor Canadi | 21 May 2014, 22:25:05 UTC | Update HISTORY.md | 21 May 2014, 22:25:05 UTC |
6de6a06 | Igor Canadi | 21 May 2014, 18:43:35 UTC | FIFO compaction style Summary: Introducing new compaction style -- FIFO. FIFO compaction style has write amplification of 1 (+1 for WAL) and it deletes the oldest files when the total DB size exceeds pre-configured values. FIFO compaction style is suited for storing high-frequency event logs. Test Plan: Added a unit test Reviewers: dhruba, haobo, sdong Reviewed By: dhruba Subscribers: alberts, leveldb Differential Revision: https://reviews.facebook.net/D18765 | 21 May 2014, 18:43:35 UTC |
220132b | Igor Canadi | 21 May 2014, 17:26:09 UTC | Merge pull request #156 from Chilledheart/print_pthread_info Print pthread_t in a more safe way | 21 May 2014, 17:26:09 UTC |
81b498b | Chilledheart | 21 May 2014, 17:24:42 UTC | Print pthread_t in a more safe way | 21 May 2014, 17:24:42 UTC |
62d2b92 | Igor Canadi | 21 May 2014, 16:25:43 UTC | Merge pull request #154 from mrsqueeze/master hdfs cleanup and compile test against CDH 4.4. | 21 May 2014, 16:25:43 UTC |
260842a | Ankit Gupta | 21 May 2014, 14:59:50 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 21 May 2014, 14:59:50 UTC |
d271cc5 | Ankit Gupta | 21 May 2014, 14:54:22 UTC | Treat negative values as no limit | 21 May 2014, 14:54:22 UTC |
591f712 | Mike Orr | 21 May 2014, 11:54:22 UTC | cleanup exception text | 21 May 2014, 11:54:22 UTC |
d788bb8 | Mike Orr | 21 May 2014, 11:50:37 UTC | - hdfs cleanup; fix to NewDirectory to comply with definition in env.h - fix compile error with env_test; static casts added | 21 May 2014, 11:50:37 UTC |
f725e4f | Igor Canadi | 21 May 2014, 00:09:38 UTC | Make RateLimiting unit test less flakey | 21 May 2014, 00:09:38 UTC |
b2cf95f | Igor Canadi | 20 May 2014, 21:28:51 UTC | Call EnableFileDeletions with false as argument | 20 May 2014, 21:28:51 UTC |
c2fda55 | Mike Orr | 20 May 2014, 21:22:12 UTC | hdfs cleanup and compile test against CDH 4.4. | 20 May 2014, 21:22:12 UTC |
bd1105a | sdong | 19 May 2014, 21:25:11 UTC | Print out thread ID while thread terminates for decreased pool size. Summary: Per request from @nkg-, temporarily print thread ID when a thread terminates. It is a temp solution as we try to minimized stderr messages. Test Plan: env_test Reviewers: haobo, igor, dhruba Reviewed By: igor CC: nkg-, leveldb Differential Revision: https://reviews.facebook.net/D18753 | 19 May 2014, 22:18:02 UTC |
3df07d1 | sdong | 19 May 2014, 17:40:18 UTC | ThreadPool to allow decrease number of threads and increase of number of threads is to be instantly scheduled Summary: Add a feature to decrease the number of threads in thread pool. Also instantly schedule more threads if number of threads is increased. Here is the way it is implemented: each background thread needs its thread ID. After decreasing number of threads, all threads are woken up. The thread with the largest thread ID will terminate. If there are more threads to terminate, the thread will wake up all threads again. Another change is made so that when number of threads is increased, more threads are created and all previous excessive threads are woken up to do the work. Test Plan: Add a unit test. Reviewers: haobo, dhruba Reviewed By: haobo CC: yhchiang, igor, nkg-, leveldb Differential Revision: https://reviews.facebook.net/D18675 | 19 May 2014, 18:52:12 UTC |
5a1b41c | Ankit Gupta | 19 May 2014, 05:41:00 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 19 May 2014, 05:41:00 UTC |
e87973c | Ankit Gupta | 19 May 2014, 05:40:48 UTC | Removing code from portal.h for setting handle of RestoreOptions and RestoreBackupableDB | 19 May 2014, 05:40:48 UTC |
1e56045 | Igor Canadi | 16 May 2014, 20:17:29 UTC | Add .swp to gitignore | 16 May 2014, 20:17:29 UTC |
a0e9ee5 | Igor Canadi | 15 May 2014, 23:07:05 UTC | Add rapidjson to RocksDB Summary: This diff adds rapidjson (https://code.google.com/p/rapidjson/) to RocksDB repository. First step to adding JSON is to add a JSON parser :) I'm not sure if rapidjson is the right choice. I only considered folly as an alternative. Using folly JSON parser has serious downsides. I tried extracting folly::json from the folly library. However, it depends on folly::dynamic, which basically depends on everything else. I would prefer to avoid adding complete folly library as RocksDB dependency. Folly has a lot of its own dependencies (https://github.com/facebook/folly) and also looks like open source world has some trouble installing it (https://groups.google.com/forum/#!forum/facebook-folly -- 60% of the posts are compile errors). We can discuss this if you think otherwise. RapidJSON does not have any dependencies whatsoever. No boost, no STL. We don't need to compile it since it's all header files. The performance results are also impressive: https://code.google.com/p/rapidjson/wiki/Performance. However, I'll make sure to write code in a way that we can easily switch JSON implementations going forward. Quora thread has some alternatives: http://www.quora.com/What-is-the-best-C-JSON-library Test Plan: none Reviewers: dhruba, haobo, yhchiang, sdong, jamesgpearce Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18729 | 15 May 2014, 23:07:05 UTC |
0b3d03d | Kai Liu | 15 May 2014, 21:09:03 UTC | Materialize the hash index Summary: Materialize the hash index to avoid the soaring cpu/flash usage when initializing the database. Test Plan: existing unit tests passed Reviewers: sdong, haobo Reviewed By: sdong CC: leveldb Differential Revision: https://reviews.facebook.net/D18339 | 15 May 2014, 21:09:03 UTC |
4e0602f | sdong | 14 May 2014, 15:53:09 UTC | Remove maximum key_size check in db_bench Summary: Key size limit doesn't seem to be applicable anymore. Remove it. Test Plan: run a couple of tests in db_bench Reviewers: haobo, igor, yhchiang, dhruba Reviewed By: igor CC: leveldb Differential Revision: https://reviews.facebook.net/D18723 | 15 May 2014, 18:06:37 UTC |
f3ec191 | Igor Canadi | 15 May 2014, 17:16:58 UTC | Add build status to README.md | 15 May 2014, 17:16:58 UTC |
2ca7a98 | Igor Canadi | 15 May 2014, 07:20:34 UTC | Merge pull request #150 from Chilledheart/master Fix errors while building with clang (against libc++) under linux | 15 May 2014, 07:20:34 UTC |
fa16ef3 | Chilledheart | 15 May 2014, 04:31:03 UTC | Fix errors while building with clang | 15 May 2014, 04:34:53 UTC |
c07c960 | Igor Canadi | 14 May 2014, 23:23:40 UTC | Expose Status::code() | 14 May 2014, 23:23:40 UTC |
cdc53dc | Igor Canadi | 14 May 2014, 23:08:02 UTC | Turn off travis notifications | 14 May 2014, 23:08:02 UTC |
52783c7 | Igor Canadi | 14 May 2014, 19:40:49 UTC | declare kInline size in arena.cc | 14 May 2014, 19:40:49 UTC |
a490d2d | Igor Canadi | 14 May 2014, 19:36:21 UTC | Revert "Define kInlineSize in .cc file instead of header" This reverts commit 35a8873aa66d3e92eefaf216d44c965a588aec5a. | 14 May 2014, 19:36:21 UTC |
35a8873 | Igor Canadi | 14 May 2014, 19:29:46 UTC | Define kInlineSize in .cc file instead of header | 14 May 2014, 19:29:46 UTC |
eea7322 | Igor Canadi | 14 May 2014, 19:14:18 UTC | Improve EnvHdfs Summary: Copy improvements from fbcode's version of EnvHdfs to our open-source version. Some very important bug fixes in there. Test Plan: compiles Reviewers: dhruba, haobo, sdong Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18711 | 14 May 2014, 19:14:18 UTC |
f457444 | Igor Canadi | 14 May 2014, 19:13:50 UTC | Clean up compaction logging Summary: Cleaned up compaction logging a little bit. Now file sizes are easier to read. Also, removed the trailing space. Test Plan: verified that i'm happy with logging output: files_size[#33(seq=101,sz=98KB,0) #31(seq=81,sz=159KB,0) #26(seq=0,sz=637KB,0)] Reviewers: sdong, haobo, dhruba Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18549 | 14 May 2014, 19:13:50 UTC |
3e4a9ec | sdong | 09 May 2014, 18:01:54 UTC | Arena to inline 2KB of data in it. Summary: In order to use arena to a use case that the total allocation size might be small (LogBuffer is already such a case), inline 1KB of data in it, so that it can be mostly in stack or inline in another class. If always inlining 2KB is a concern, I could make it a template to determine what to inline. However, dependents need to changes. Doesn't go with it for now Test Plan: make all check. Reviewers: haobo, igor, yhchiang, dhruba Reviewed By: haobo CC: leveldb Differential Revision: https://reviews.facebook.net/D18609 | 14 May 2014, 18:49:01 UTC |
1ef31b6 | Igor Canadi | 14 May 2014, 17:44:22 UTC | Merge pull request #143 from mlin/travis-ci Travis CI | 14 May 2014, 17:44:22 UTC |
29eef1f | Ankit Gupta | 14 May 2014, 05:40:01 UTC | Add javadoc for BackupableDBOptions constructor params | 14 May 2014, 05:40:01 UTC |
b830bb9 | Ankit Gupta | 14 May 2014, 05:34:29 UTC | Add newline at end of file | 14 May 2014, 05:34:29 UTC |
c92425e | Ankit Gupta | 14 May 2014, 05:23:04 UTC | Merge branch 'master' of https://github.com/facebook/rocksdb | 14 May 2014, 05:23:04 UTC |
cf0b773 | Ankit Gupta | 14 May 2014, 05:22:21 UTC | Add more options to backupable DB | 14 May 2014, 05:22:21 UTC |