1. 05 9月, 2014 1 次提交
  2. 28 8月, 2014 1 次提交
  3. 26 8月, 2014 1 次提交
  4. 19 8月, 2014 2 次提交
  5. 14 8月, 2014 1 次提交
  6. 12 8月, 2014 1 次提交
  7. 22 7月, 2014 1 次提交
  8. 18 7月, 2014 1 次提交
  9. 17 7月, 2014 1 次提交
  10. 08 7月, 2014 1 次提交
    • R
      Adding NUMA support to db_bench tests · f0660d52
      Radheshyam Balasundaram 提交于
      Summary:
      Changes:
      - Adding numa_aware flag to db_bench.cc
      - Using numa.h library to bind memory and cpu of threads to a fixed NUMA node
      Result: There seems to be no significant change in the micros/op time with numa_aware enabled. I also tried this with other implementations, including a combination of pthread_setaffinity_np, sched_setaffinity and set_mempolicy methods. It'd be great if someone could point out where I'm going wrong and if we can achieve a better micors/op.
      
      Test Plan:
      Ran db_bench tests using following command:
      ./db_bench --db=/mnt/tmp --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_type=none --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=/mnt/tmp --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 --duration=300 --benchmarks=readwhilewriting --use_existing_db=1 --num=157286400 --threads=24 --writes_per_second=10240 --numa_aware=[False/True]
      
      The tests were run in private devserver with 24 cores and the db was prepopulated using filluniquerandom test. The tests resulted in 0.145 us/op with numa_aware=False and 0.161 us/op with numa_aware=True.
      
      Reviewers: sdong, yhchiang, ljin, igor
      
      Reviewed By: ljin, igor
      
      Subscribers: igor, leveldb
      
      Differential Revision: https://reviews.facebook.net/D19353
      f0660d52
  11. 25 6月, 2014 1 次提交
  12. 24 6月, 2014 2 次提交
  13. 20 6月, 2014 1 次提交
    • I
      Remove seek compaction · d4a84233
      Igor Canadi 提交于
      Summary:
      As discussed in our internal group, we don't get much use of seek compaction at the moment, while it's making code more complicated and slower in some cases.
      
      This diff removes seek compaction and (hopefully) all code that was introduced to support seek compaction.
      
      There is one test case that relied on didIO information. I'll try to find another way to implement it.
      
      Test Plan: make check
      
      Reviewers: sdong, haobo, yhchiang, ljin, dhruba
      
      Reviewed By: ljin
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D19161
      d4a84233
  14. 31 5月, 2014 2 次提交
    • L
      forward iterator · 388d2054
      Lei Jin 提交于
      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
      388d2054
    • L
      add an iterator refresh option for SeekRandom · f29c62fc
      Lei Jin 提交于
      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
      f29c62fc
  15. 16 5月, 2014 1 次提交
  16. 09 5月, 2014 1 次提交
  17. 02 5月, 2014 1 次提交
  18. 30 4月, 2014 2 次提交
    • Y
      Add a new mem-table representation based on cuckoo hash. · 9d9d2965
      Yueh-Hsuan Chiang 提交于
      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
      9d9d2965
    • I
      Fix more signed/unsigned comparsions · 38693d99
      Igor Canadi 提交于
      38693d99
  19. 26 4月, 2014 1 次提交
  20. 23 4月, 2014 1 次提交
    • I
      Print out stack trace in mac, too · f9f8965e
      Igor Canadi 提交于
      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
      f9f8965e
  21. 22 4月, 2014 2 次提交
  22. 15 4月, 2014 1 次提交
  23. 12 4月, 2014 2 次提交
    • S
      db_bench: add a mode to operate multiple DBs · d5e087b6
      sdong 提交于
      Summary: This patch introduces a new parameter num_multi_db in db_bench. When this parameter is larger than 1, multiple DBs will be created. In all benchmarks, any operation applies to a random DB among them. This is to benchmark the performance of similar applications.
      
      Test Plan: run db_bench on both of num_multi_db=0 and more.
      
      Reviewers: haobo, ljin, igor
      
      Reviewed By: igor
      
      CC: igor, yhchiang, dhruba, nkg-, leveldb
      
      Differential Revision: https://reviews.facebook.net/D17769
      d5e087b6
    • L
      SeekRandomWhileWriting · 0af36d6a
      Lei Jin 提交于
      Summary: as title
      
      Test Plan: ran it
      
      Reviewers: igor, haobo, yhchiang
      
      Reviewed By: yhchiang
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17751
      0af36d6a
  24. 11 4月, 2014 1 次提交
  25. 10 4月, 2014 2 次提交
    • 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
    • L
      speed up db_bench filluniquerandom mode · 4824014e
      Lei Jin 提交于
      Summary:
      filluniquerandom is painfully slow due to the naive bitmap check to find
      out if a key has been seen before. Majority of time is spent on searching
      the last few keys. Split a giant BitSet to smaller ones so that we can
      quickly check if a BitSet is full and thus can skip quickly.
      
      It used to take over one hour to filluniquerandom for 100M keys, now it
      takes about 10 mins.
      
      Test Plan:
      unit test
      also verified correctness in db_bench and make sure all keys are
      generated
      
      Reviewers: igor, haobo, yhchiang
      
      Reviewed By: igor
      
      CC: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D17607
      4824014e
  26. 09 4月, 2014 2 次提交
    • I
      Fix Mac OS compile issues · 34455deb
      Igor Canadi 提交于
      34455deb
    • L
      db_bench cleanup · 0c1126d4
      Lei Jin 提交于
      Summary:
      clean up the db_bench a little bit. also avoid allocating memory for key
      in the loop
      
      Test Plan:
      I verified a run with filluniquerandom & readrandom. Iterator seek will be used lot
      to measure performance. Will fix whatever comes up
      
      Reviewers: haobo, igor, yhchiang
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17559
      0c1126d4
  27. 05 4月, 2014 1 次提交
  28. 29 3月, 2014 1 次提交
  29. 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
  30. 06 3月, 2014 3 次提交