1. 26 4月, 2014 1 次提交
  2. 10 4月, 2014 1 次提交
    • I
      Turn on -Wmissing-prototypes · 4daea663
      Igor Canadi 提交于
      Summary: Compiling for iOS has by default turned on -Wmissing-prototypes, which causes rocksdb to fail compiling. This diff turns on -Wmissing-prototypes in our compile options and cleans up all functions with missing prototypes.
      
      Test Plan: compiles
      
      Reviewers: dhruba, haobo, ljin, sdong
      
      Reviewed By: ljin
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17649
      4daea663
  3. 15 3月, 2014 1 次提交
    • I
      Fix HashSkipList and HashLinkedList SIGSEGV · 3c75cc15
      Igor Canadi 提交于
      Summary:
      Original Summary:
      Yesterday, @ljin and I were debugging various db_stress issues. We suspected one of them happens when we concurrently call NewIterator without prefix_seek on HashSkipList. This test demonstrates it.
      
      Update:
      Arena is not thread-safe!! When creating a new full iterator, we *have* to create a new arena, otherwise we're doomed.
      
      Test Plan: SIGSEGV and assertion-throwing test now works!
      
      Reviewers: ljin, haobo, sdong
      
      Reviewed By: sdong
      
      CC: leveldb, ljin
      
      Differential Revision: https://reviews.facebook.net/D16857
      3c75cc15
  4. 11 3月, 2014 1 次提交
    • L
      Consolidate SliceTransform object ownership · 8d007b4a
      Lei Jin 提交于
      Summary:
      (1) Fix SanitizeOptions() to also check HashLinkList. The current
      dynamic case just happens to work because the 2 classes have the same
      layout.
      (2) Do not delete SliceTransform object in HashSkipListFactory and
      HashLinkListFactory destructor. Reason: SanitizeOptions() enforces
      prefix_extractor and SliceTransform to be the same object when
      Hash**Factory is used. This makes the behavior strange: when
      Hash**Factory is used, prefix_extractor will be released by RocksDB. If
      other memtable factory is used, prefix_extractor should be released by
      user.
      
      Test Plan: db_bench && make asan_check
      
      Reviewers: haobo, igor, sdong
      
      Reviewed By: igor
      
      CC: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D16587
      8d007b4a
  5. 20 2月, 2014 1 次提交
    • S
      Add a test in prefix_test to verify correctness of results · b2d29675
      sdong 提交于
      Summary:
      Add a test to verify HashLinkList and HashSkipList (mainly for the former one) returns the correct results when inserting the same bucket in the different orders.
      
      Some other changes:
      (1) add the test to test list
      (2) fix compile error
      (3) add header
      
      Test Plan: ./prefix_test
      
      Reviewers: haobo, kailiu
      
      Reviewed By: haobo
      
      CC: igor, yhchiang, i.am.jin.lei, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D16143
      b2d29675
  6. 11 1月, 2014 1 次提交
  7. 10 1月, 2014 1 次提交
    • S
      [Performance Branch] A Hashed Linked List Based Mem Table · 424a524a
      Siying Dong 提交于
      Summary:
      Implement a mem table, in which keys are hashed based on prefixes. In each bucket, entries are organized in a sorted linked list. It has the same thread safety guarantee as skip list.
      
      The motivation is to optimize memory usage for the case that prefix hashing is primary way of seeking to the entry. Compared to hash skip list implementation, this implementation is more memory efficient, but inside each bucket, search is always linear. The target scenario is that there are only very limited number of records in each hash bucket.
      
      Test Plan: Add a test case in db_test
      
      Reviewers: haobo, kailiu, dhruba
      
      Reviewed By: haobo
      
      CC: igor, nkg-, leveldb
      
      Differential Revision: https://reviews.facebook.net/D14979
      424a524a
  8. 11 12月, 2013 1 次提交
  9. 04 12月, 2013 1 次提交
    • I
      Killing Transform Rep · eb12e47e
      Igor Canadi 提交于
      Summary:
      Let's get rid of TransformRep and it's children. We have confirmed that HashSkipListRep works better with multifeed, so there is no benefit to keeping this around.
      
      This diff is mostly just deleting references to obsoleted functions. I also have a diff for fbcode that we'll need to push when we switch to new release.
      
      I had to expose HashSkipListRepFactory in the client header files because db_impl.cc needs access to GetTransform() function for SanitizeOptions.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14397
      eb12e47e
  10. 27 11月, 2013 1 次提交
  11. 21 11月, 2013 1 次提交
    • H
      [RocksDB] fix prefix_test · a617227a
      Haobo Xu 提交于
      Summary: user comparator needs to work if either input is prefix only.
      
      Test Plan: ./prefix_test --write_buffer_size=100000 --total_prefixes=10000 --items_per_prefix=10
      
      Reviewers: dhruba, igor
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14241
      a617227a
  12. 08 11月, 2013 1 次提交
    • I
      Implementing DynamicIterator for TransformRepNoLock · 8b3379dc
      Igor Canadi 提交于
      Summary: What @haobo done with TransformRep, now in TransformRepNoLock. Similar implementation, except that I made DynamicIterator a subclass of Iterator which makes me have less iterator initializations.
      
      Test Plan: ./prefix_test. Seeing huge savings vs. TransformRep again!
      
      Reviewers: dhruba, haobo, sdong, kailiu
      
      Reviewed By: haobo
      
      CC: leveldb, haobo
      
      Differential Revision: https://reviews.facebook.net/D13953
      8b3379dc
  13. 07 11月, 2013 2 次提交
    • H
      [RocksDB] Generalize prefix-aware iterator to be used for more than one Seek · fd204488
      Haobo Xu 提交于
      Summary: Added a prefix_seek flag in ReadOptions to indicate that Seek is prefix aware(might not return data with different prefix), and also not bound to a specific prefix. Multiple Seeks and range scans can be invoked on the same iterator. If a specific prefix is specified, this flag will be ignored. Just a quick prototype that works for PrefixHashRep, the new lockless memtable could be easily extended with this support too.
      
      Test Plan: test it on Leaf
      
      Reviewers: dhruba, kailiu, sdong, igor
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13929
      fd204488
    • I
      TransformRep - use array instead of unordered_map · be96f249
      Igor Canadi 提交于
      Summary:
      I'm sending this diff together with https://reviews.facebook.net/D13881 because it didn't allow me to send only the array one.
      
      Here I also replaced unordered_map with just an array of shared_ptrs. This elminated all the locks.
      
      I will run the new benchmark and post the results here.
      
      Test Plan: db_test
      
      Reviewers: dhruba, haobo
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13893
      be96f249
  14. 06 11月, 2013 1 次提交