1. 30 4月, 2014 3 次提交
  2. 29 4月, 2014 1 次提交
  3. 26 4月, 2014 2 次提交
  4. 25 4月, 2014 1 次提交
  5. 22 4月, 2014 4 次提交
    • I
      Single-threaded asan_crash_test · d0939cdc
      Igor Canadi 提交于
      d0939cdc
    • I
      Rename "benchmark" back to "bench". · 8dc34364
      Igor Canadi 提交于
      Also, make `benchharness.cc` not compiled into rocksdb library.
      8dc34364
    • P
      Added benchmark functionality on the lines of folly/Benchmark.h · ff1b5df4
      Pratyush Seth 提交于
      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
      ff1b5df4
    • L
      hints for narrowing down FindFile range and avoiding checking unrelevant L0 files · 0f2d7681
      Lei Jin 提交于
      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
      0f2d7681
  6. 19 4月, 2014 1 次提交
  7. 18 4月, 2014 2 次提交
  8. 17 4月, 2014 1 次提交
  9. 16 4月, 2014 6 次提交
  10. 11 4月, 2014 1 次提交
  11. 09 4月, 2014 2 次提交
    • Y
      [JNI] Add an initial benchmark for java binding for rocksdb. · 0f5cbcd7
      Yueh-Hsuan Chiang 提交于
      Summary:
      * Add a benchmark for java binding for rocksdb.  The java benchmark
        is a complete rewrite based on the c++ db/db_bench.cc and the
        DbBenchmark in dain's java leveldb.
      * Support multithreading.
      * 'readseq' is currently not supported as it requires RocksDB Iterator.
      
      * usage:
      
        --benchmarks
          Comma-separated list of operations to run in the specified order
              Actual benchmarks:
                      fillseq    -- write N values in sequential key order in async mode
                      fillrandom -- write N values in random key order in async mode
                      fillbatch  -- write N/1000 batch where each batch has 1000 values
                                    in random key order in sync mode
                      fillsync   -- write N/100 values in random key order in sync mode
                      fill100K   -- write N/1000 100K values in random order in async mode
                      readseq    -- read N times sequentially
                      readrandom -- read N times in random order
                      readhot    -- read N times in random order from 1% section of DB
              Meta Operations:
                      delete     -- delete DB
          DEFAULT: [fillseq, readrandom, fillrandom]
      
        --compression_ratio
          Arrange to generate values that shrink to this fraction of
              their original size after compression
          DEFAULT: 0.5
      
        --use_existing_db
          If true, do not destroy the existing database.  If you set this
              flag and also specify a benchmark that wants a fresh database,  that benchmark will fail.
          DEFAULT: false
      
        --num
          Number of key/values to place in database.
          DEFAULT: 1000000
      
        --threads
          Number of concurrent threads to run.
          DEFAULT: 1
      
        --reads
          Number of read operations to do.  If negative, do --nums reads.
      
        --key_size
          The size of each key in bytes.
          DEFAULT: 16
      
        --value_size
          The size of each value in bytes.
          DEFAULT: 100
      
        --write_buffer_size
          Number of bytes to buffer in memtable before compacting
              (initialized to default value by 'main'.)
          DEFAULT: 4194304
      
        --cache_size
          Number of bytes to use as a cache of uncompressed data.
              Negative means use default settings.
          DEFAULT: -1
      
        --seed
          Seed base for random number generators.
          DEFAULT: 0
      
        --db
          Use the db with the following name.
          DEFAULT: /tmp/rocksdbjni-bench
      
      * Add RocksDB.write().
      
      Test Plan: make jbench
      
      Reviewers: haobo, sdong, dhruba, ankgup87
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17433
      0f5cbcd7
    • L
      macros for perf_context · 92c1eb02
      Lei Jin 提交于
      Summary: This will allow us to disable them completely for iOS or for better performance
      
      Test Plan: will run make all check
      
      Reviewers: igor, haobo, dhruba
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17511
      92c1eb02
  12. 05 4月, 2014 2 次提交
  13. 03 4月, 2014 1 次提交
    • Y
      [JNI] Add java api and java tests for WriteBatch and WriteOptions, add put()... · da0887a3
      Yueh-Hsuan Chiang 提交于
      [JNI] Add java api and java tests for WriteBatch and WriteOptions, add put() and remove() to RocksDB.
      
      Summary:
      * Add java api for rocksdb::WriteBatch and rocksdb::WriteOptions, which are necessary components
        for running benchmark.
      * Add java test for org.rocksdb.WriteBatch and org.rocksdb.WriteOptions.
      * Add remove() to org.rocksdb.RocksDB, and add put() and remove() to RocksDB which take
        org.rocksdb.WriteOptions.
      
      Test Plan: make jtest
      
      Reviewers: haobo, sdong, dhruba
      
      Reviewed By: sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17373
      da0887a3
  14. 02 4月, 2014 1 次提交
  15. 01 4月, 2014 1 次提交
  16. 29 3月, 2014 2 次提交
    • D
      A GIS implementation for rocksdb. · 4031b983
      Dhruba Borthakur 提交于
      Summary:
          This patch stores gps locations in rocksdb.
      
          Each object is uniquely identified by an id. Each object has
          a gps (latitude, longitude) associated with it. The geodb
          supports looking up an object either by its gps location
          or by its id. There is a method to retrieve all objects
          within a circular radius centered at a specified gps location.
      
      Test Plan: Simple unit-test attached.
      
      Reviewers: leveldb, haobo
      
      Reviewed By: haobo
      
      CC: leveldb, tecbot, haobo
      
      Differential Revision: https://reviews.facebook.net/D15567
      4031b983
    • Y
      Add a jni library for rocksdb which supports Open, Get, Put, and Close. · 0d463a36
      Yueh-Hsuan Chiang 提交于
      Summary:
      This diff contains a simple jni library for rocksdb which supports open, get,
      put and closeusing default options (including Options, ReadOptions, and
      WriteOptions.)  In the usual case, Java developers can use the c++ rocksdb
      library in the way similar to the following:
      
          RocksDB db = RocksDB.open(path_to_db);
          ...
          db.put("hello".getBytes(), "world".getBytes();
          byte[] value = db.get("hello".getBytes());
          ...
          db.close();
      
      Specifically, this diff has the following major classes:
      
      * RocksDB: a Java wrapper class which forwards the operations
        from the java side to c++ rocksdb library.
      * RocksDBException: ncapsulates the error of an operation.
        This exception type is used to describe an internal error from
        the c++ rocksdb library.
      
      This diff also include a simple java sample code calling c++ rocksdb library.
      
      To build the rocksdb jni library, simply run make jni, and make jtest will try to
      build and run the sample code.
      
      Note that if the rocksdb is not built with the default glibc that Java uses,
      java will try to load the wrong glibc during the run time.  As a result,
      the sample code might not work properly during the run time.
      
      Test Plan:
      * make jni
      * make jtest
      
      Reviewers: haobo, dhruba, sdong, igor, ljin
      
      Reviewed By: dhruba
      
      CC: leveldb, xjin
      
      Differential Revision: https://reviews.facebook.net/D17109
      0d463a36
  17. 18 3月, 2014 1 次提交
  18. 07 3月, 2014 1 次提交
    • I
      DB Sanity Test · 9c8ad626
      Igor Canadi 提交于
      Summary:
      @kailiu mentioned on meeting yesterday that we sometimes have trouble opening DB created by old version with the new version. This will be very important to test for column families, since I'm changing disk format for the MANIFEST.
      
      I added a tool that can help us test that. Usage:
      ./db_sanity_test <path> create
      will create a bunch of DBs under <path>
      <change RocksDB version>
      ./db_sanity_test <path> verify
      will verify consistency of DBs created under <path>
      
      Test Plan: ran the db_sanity_test
      
      Reviewers: kailiu, dhruba, haobo
      
      Reviewed By: kailiu
      
      CC: leveldb, kailiu, xjin
      
      Differential Revision: https://reviews.facebook.net/D16605
      9c8ad626
  19. 04 3月, 2014 2 次提交
  20. 28 2月, 2014 1 次提交
  21. 26 2月, 2014 1 次提交
    • L
      thread local pointer storage · b2795b79
      Lei Jin 提交于
      Summary:
      This is not a generic thread local implementation in the sense that it
      only takes pointer. But it does support multiple instances per thread
      and lets user plugin function to perform cleanup when thread exits or an
      instance gets destroyed.
      
      Test Plan: unit test for now
      
      Reviewers: haobo, igor, sdong, dhruba
      
      Reviewed By: igor
      
      CC: leveldb, kailiu
      
      Differential Revision: https://reviews.facebook.net/D16131
      b2795b79
  22. 25 2月, 2014 1 次提交
  23. 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
  24. 13 2月, 2014 1 次提交