1. 05 9月, 2014 1 次提交
    • L
      introduce ImmutableOptions · 5665e5e2
      Lei Jin 提交于
      Summary:
      As a preparation to support updating some options dynamically, I'd like
      to first introduce ImmutableOptions, which is a subset of Options that
      cannot be changed during the course of a DB lifetime without restart.
      
      ColumnFamily will keep both Options and ImmutableOptions. Any component
      below ColumnFamily should only take ImmutableOptions in their
      constructor. Other options should be taken from APIs, which will be
      allowed to adjust dynamically.
      
      I am yet to make changes to memtable and other related classes to take
      ImmutableOptions in their ctor. That can be done in a seprate diff as
      this one is already pretty big.
      
      Test Plan: make all check
      
      Reviewers: yhchiang, igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D22545
      5665e5e2
  2. 07 8月, 2014 1 次提交
    • S
      Add DB property "rocksdb.estimate-table-readers-mem" · 1242bfca
      sdong 提交于
      Summary:
      Add a DB Property "rocksdb.estimate-table-readers-mem" to return estimated memory usage by all loaded table readers, other than allocated from block cache.
      
      Refactor the property codes to allow getting property from a version, with DB mutex not acquired.
      
      Test Plan: Add several checks of this new property in existing codes for various cases.
      
      Reviewers: yhchiang, ljin
      
      Reviewed By: ljin
      
      Subscribers: xjin, igor, leveldb
      
      Differential Revision: https://reviews.facebook.net/D20733
      1242bfca
  3. 19 7月, 2014 1 次提交
  4. 18 7月, 2014 1 次提交
  5. 11 7月, 2014 1 次提交
    • S
      Removing NewTotalOrderPlainTableFactory · 30c81e77
      Stanislau Hlebik 提交于
      Summary:
      Seems like NewTotalOrderPlainTableFactory is useless and is semantically incorrect.
      Total order mode indicator is prefix_extractor == nullptr,
      but NewTotalOrderPlainTableFactory doesn't set it to be nullptr. That's why some tests
      in plain_table_db_tests is incorrect.
      
      Test Plan: make all check
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D19587
      30c81e77
  6. 02 7月, 2014 1 次提交
    • S
      HashLinkList memtable switches a bucket to a skip list to reduce performance outliers · 9c332aa1
      sdong 提交于
      Summary:
      In this patch, we enhance HashLinkList memtable to reduce performance outliers when a bucket contains too many entries. We switch to skip list for this case to enable binary search.
      
      Add threshold_use_skiplist parameter to determine when a bucket needs to switch to skip list.
      
      The new data structure is documented in comments in the codes.
      
      Test Plan:
      make all check
      set threshold_use_skiplist in several tests
      
      Reviewers: yhchiang, haobo, ljin
      
      Reviewed By: yhchiang, ljin
      
      Subscribers: nkg-, xjin, dhruba, yhchiang, leveldb
      
      Differential Revision: https://reviews.facebook.net/D19299
      9c332aa1
  7. 19 6月, 2014 1 次提交
  8. 18 6月, 2014 3 次提交
  9. 10 6月, 2014 1 次提交
    • S
      Clean PlainTableReader's variables for better data locality · 80f409ea
      sdong 提交于
      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
      80f409ea
  10. 05 5月, 2014 1 次提交
  11. 04 5月, 2014 1 次提交
  12. 01 5月, 2014 2 次提交
  13. 26 4月, 2014 1 次提交
  14. 23 4月, 2014 1 次提交
    • S
      PlainTableReader to expose index size to users · 86a0133d
      sdong 提交于
      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
      86a0133d
  15. 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
  16. 08 4月, 2014 1 次提交
    • S
      PlainTableIterator not to store copied key in std::string · 5e2db3b4
      sdong 提交于
      Summary:
      Move PlainTableIterator's copied key from std::string local buffer to avoid paying the extra costs in std::string related to sharing. Reuse the same buffer class in DbIter. Move the class to dbformat.h.
      
      This patch improves iterator performance significantly. Running this benchmark:
      
      ./table_reader_bench --num_keys2=17 --iterator --plain_table --time_unit=nanosecond
      
      The average latency is improved to about 750 nanoseconds from 1100 nanoseconds.
      
      Test Plan:
      Add a unit test.
      make all check
      
      Reviewers: haobo, ljin
      
      Reviewed By: haobo
      
      CC: igor, yhchiang, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D17547
      5e2db3b4
  17. 02 4月, 2014 1 次提交
  18. 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
  19. 20 2月, 2014 1 次提交
  20. 14 2月, 2014 1 次提交
  21. 13 2月, 2014 1 次提交
  22. 03 2月, 2014 1 次提交
  23. 31 1月, 2014 1 次提交
    • K
      Clean up arena API · 4e0298f2
      kailiu 提交于
      Summary:
      Easy thing goes first. This patch moves arena to internal dir; based
      on which, the coming patch will deal with memtable_rep.
      
      Test Plan: make check
      
      Reviewers: haobo, sdong, dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15615
      4e0298f2
  24. 04 1月, 2014 1 次提交
  25. 21 12月, 2013 1 次提交
  26. 22 11月, 2013 1 次提交
  27. 21 11月, 2013 1 次提交
    • S
      A Simple Plain Table · b59d4d5a
      Siying Dong 提交于
      Summary:
      A Simple plain table format. No block structure. When creating the table reader, scanning the full table to create indexes.
      
      Test Plan:Add unit test
      
      Reviewers:haobo,dhruba,kailiu
      
      CC:
      
      Task ID: #
      
      Blame Rev:
      b59d4d5a