1. 06 5月, 2014 3 次提交
    • I
      Make rocksdb work with all versions of lz4 · 9e7d00d9
      Igor Canadi 提交于
      Summary:
      There are some projects in fbcode that define lz4 dependency on r108. We, however, defined dependency on r117. That produced some interesting issues and our build system was not happy.
      
      This diff makes rocksdb work with both r108 and r117. Hopefully this will fix our problems.
      
      Test Plan: compiled rocksdb with both r108 and r117 lz4
      
      Reviewers: dhruba, sdong, haobo
      
      Reviewed By: sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18465
      9e7d00d9
    • I
      log_and_apply_bench on a new benchmark framework · d2569fea
      Igor Canadi 提交于
      Summary:
      db_test includes Benchmark for LogAndApply. This diff removes it from db_test and puts it into a separate log_and_apply bench. I just wanted to play around with our new benchmark framework and figure out how it works.
      
      I would also like to show you how great it is! I believe right set of microbenchmarks can speed up our productivity a lot and help catch early regressions.
      
      Test Plan: no
      
      Reviewers: dhruba, haobo, sdong, ljin, yhchiang
      
      Reviewed By: yhchiang
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18261
      d2569fea
    • S
      PlainTableFactory::PlainTableFactory() to have huge TLB turned off by default · 9b175583
      sdong 提交于
      Summary: PlainTableFactory::PlainTableFactory() now has Huge TLB page feature turned on by default. Although it is not a public API (which we always turn the feature off now), our unit tests, like db_test sometimes uses it directly, which causes wrong coverage of codes. This patch fix it to allow unit tests to run with the correct setting
      
      Test Plan: Run db_test and make sure this feature is not on any more.
      
      Reviewers: igor, haobo
      
      Reviewed By: igor
      
      CC: yhchiang, dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D18483
      9b175583
  2. 05 5月, 2014 4 次提交
  3. 04 5月, 2014 1 次提交
  4. 03 5月, 2014 4 次提交
  5. 02 5月, 2014 5 次提交
    • I
      Improve ttl_test · 3b5fa6bd
      Igor Canadi 提交于
      Summary:
      Our valgrind tests are failing because ttl_test is kind of flakey. This diff should fix valgrind issue and make ttl_test less flakey and much faster.
      
      Instead of relying on Env::Default() for getting current time, I expose `Env*` to all TTL functions that are interested in time. That way, I can insert a custom test Env which is then used to provide exactly the times we need. That way, we don't need to sleep anymore -- we control the time.
      
      Test Plan: ttl_test in normal and valgrind run
      
      Reviewers: dhruba, haobo, sdong, yhchiang
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18399
      3b5fa6bd
    • I
      Include version in options · 82042f45
      Igor Canadi 提交于
      82042f45
    • I
      fix release build · d28ed693
      Igor Canadi 提交于
      d28ed693
    • I
      fix compile warning · d29e48bb
      Igor Canadi 提交于
      d29e48bb
    • I
      xxHash · 0afc8bc2
      Igor Canadi 提交于
      Summary:
      Originally: https://github.com/facebook/rocksdb/pull/87/files
      
      I'm taking over to apply some finishing touches
      
      Test Plan: will add tests
      
      Reviewers: dhruba, haobo, sdong, yhchiang, ljin
      
      Reviewed By: yhchiang
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18315
      0afc8bc2
  6. 01 5月, 2014 7 次提交
  7. 30 4月, 2014 11 次提交
    • I
      More s/us fixes · d6d67c0e
      Igor Canadi 提交于
      d6d67c0e
    • Y
      Merge pull request #131 from ankgup87/master · 2e11e47c
      Yueh-Hsuan Chiang 提交于
      [Java] Add multiget JNI bindings
      2e11e47c
    • I
      Merge pull request #132 from kjk/master · 046a85af
      Igor Canadi 提交于
      Improve building of shared library so that it e.g. works with Go bindings
      046a85af
    • 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
    • K
      Update Makefile · 2b7cf03e
      Krzysztof Kowalczyk 提交于
      2b7cf03e
    • I
      More unsigned/signed compare fixes · f1c9aa6e
      Igor Canadi 提交于
      f1c9aa6e
    • I
      Fix more signed/unsigned comparsions · 38693d99
      Igor Canadi 提交于
      38693d99
    • I
      Fix unsigned and signed integer compare · d0b006ab
      Igor Canadi 提交于
      d0b006ab
    • I
      Make ttl_test a bit more robust · 76c3dbf5
      Igor Canadi 提交于
      76c3dbf5
    • I
      Cache result of ReadFirstRecord() · dd9eb7a7
      Igor Canadi 提交于
      Summary:
      ReadFirstRecord() reads the actual log file from disk on every call. This diff introduces a cache layer on top of ReadFirstRecord(), which should significantly speed up repeated calls to GetUpdatesSince().
      
      I also cleaned up some stuff, but the whole TransactionLogIterator could use some refactoring, especially if we see increased usage.
      
      Test Plan: make check
      
      Reviewers: haobo, sdong, dhruba
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18387
      dd9eb7a7
    • I
      Create new branch instead of tag in make_new_version · de825e73
      Igor Canadi 提交于
      de825e73
  8. 29 4月, 2014 5 次提交