1. 01 5月, 2014 3 次提交
  2. 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
  3. 29 4月, 2014 7 次提交
  4. 28 4月, 2014 4 次提交
  5. 27 4月, 2014 2 次提交
  6. 26 4月, 2014 10 次提交
  7. 25 4月, 2014 3 次提交
    • I
      Column family logging · ad3cd39c
      Igor Canadi 提交于
      Summary:
      Now that we have column families involved, we need to add extra context to every log message. They now start with "[column family name] log message"
      
      Also added some logging that I think would be useful, like level summary after every flush (I often needed that when going through the logs).
      
      Test Plan: make check + ran db_bench to confirm I'm happy with log output
      
      Reviewers: dhruba, haobo, ljin, yhchiang, sdong
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18303
      ad3cd39c
    • I
      Better stack trace in MAC · 46b3076c
      Igor Canadi 提交于
      Summary:
      Now this gives us the real deal stack trace:
      
          Assertion failed: (false), function GetProperty, file db/db_impl.cc, line 4072.
          Received signal 6 (Abort trap: 6)
          #0   0x7fff57ce39b9
          #1   abort (in libsystem_c.dylib) + 125
          #2   basename (in libsystem_c.dylib) + 0
          #3   rocksdb::DBImpl::GetProperty(rocksdb::ColumnFamilyHandle*, rocksdb::Slice const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (in db_test) (db_impl.cc:4072)
          #4   rocksdb::_Test_Empty::_Run() (in db_test) (testharness.h:68)
          #5   rocksdb::_Test_Empty::_RunIt() (in db_test) (db_test.cc:1005)
          #6   rocksdb::test::RunAllTests() (in db_test) (testharness.cc:60)
          #7   main (in db_test) (db_test.cc:6697)
          #8   start (in libdyld.dylib) + 1
      
      Test Plan: added artificial assert, saw great stack trace
      
      Reviewers: haobo, dhruba, ljin
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18309
      46b3076c
    • Y
      a82c492a