1. 13 12月, 2013 1 次提交
  2. 12 12月, 2013 2 次提交
  3. 11 12月, 2013 1 次提交
  4. 07 12月, 2013 1 次提交
  5. 05 12月, 2013 1 次提交
  6. 04 12月, 2013 3 次提交
    • S
      [rocksdb] statistics counters for memtable hits and misses · 28a1b9b9
      Sajal Jain 提交于
      Summary:
      added counters
      rocksdb.memtable.hit - for memtable hit
      rocksdb.memtable.miss - for memtable miss
      
      Test Plan: db_bench tests
      
      Reviewers: igor, dhruba, haobo
      
      Reviewed By: dhruba
      
      Differential Revision: https://reviews.facebook.net/D14433
      28a1b9b9
    • I
      Killing Transform Rep · eb12e47e
      Igor Canadi 提交于
      Summary:
      Let's get rid of TransformRep and it's children. We have confirmed that HashSkipListRep works better with multifeed, so there is no benefit to keeping this around.
      
      This diff is mostly just deleting references to obsoleted functions. I also have a diff for fbcode that we'll need to push when we switch to new release.
      
      I had to expose HashSkipListRepFactory in the client header files because db_impl.cc needs access to GetTransform() function for SanitizeOptions.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14397
      eb12e47e
    • I
      Get rid of some shared_ptrs · 043fc14c
      Igor Canadi 提交于
      Summary:
      I went through all remaining shared_ptrs and removed the ones that I found not-necessary. Only GenerateCachePrefix() is called fairly often, so don't expect much perf wins.
      
      The ones that are left are accessed infrequently and I think we're fine with keeping them.
      
      Test Plan: make asan_check
      
      Reviewers: dhruba, haobo
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14427
      043fc14c
  7. 29 11月, 2013 1 次提交
  8. 26 11月, 2013 5 次提交
  9. 22 11月, 2013 3 次提交
  10. 20 11月, 2013 2 次提交
    • K
      Move flush_block_policy from Options to TableFactory · 6eb56498
      kailiu 提交于
      Summary:
      Previously we introduce a `flush_block_policy_factory` in Options, however, that options is strongly releated to Table based tables.
      It will make more sense to move it to block based table's own factory class.
      
      Test Plan: make check to pass existing tests
      
      Reviewers: dhruba, haobo
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14211
      6eb56498
    • K
      Improve the "table stats" · 1415f882
      kailiu 提交于
      Summary:
      The primary motivation of the changes is to make it easier to figure out the inside of the tables.
      
      * rename "table stats" to "table properties" since now we have more than "integers" to store in the property block.
      * Add filter block size to the basic table properties.
      * Whenever a table is built, we'll log the table properties (the sample output is in Test Plan).
      * Make an api to expose deleted keys.
      
      Test Plan:
      Passed all existing test. and the sample output of table stats:
      
          ==================================================================
              Basic Properties
          ------------------------------------------------------------------
                        # data blocks: 1
                            # entries: 1
      
                         raw key size: 9
                 raw average key size: 9
                       raw value size: 9
               raw average value size: 0
      
                      data block size: 25
                     index block size: 27
                    filter block size: 18
               (estimated) table size: 70
      
                        filter policy: rocksdb.BuiltinBloomFilter
          ==================================================================
              User collected properties: InternalKeyPropertiesCollector
          ------------------------------------------------------------------
                          kDeletedKeys: 1
          ==================================================================
      
      Reviewers: dhruba, haobo
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14187
      1415f882
  11. 17 11月, 2013 1 次提交
    • K
      Change the logic in KeyMayExist() · 75df72f2
      Kai Liu 提交于
      Summary:
      Previously in KeyMayExist(), if DB::Get() returns non-Status::OK(), we assumes key may not exist.
      However, as if index block is not in block cache, Status::Incomplete() will return. Worse still, if
      options::filter_delete is enabled, we may falsely ignore the "delete" operation:
      
        https://github.com/facebook/rocksdb/blob/master/db/write_batch.cc#L217-L220
      
      This diff fixes this bug and will let crash-test pass.
      
      Test Plan:
      Ran:
      
        ./db_stress --test_batches_snapshots=1 --ops_per_thread=1000000 --threads=32 --write_buffer_size=4194304 --destroy_db_initially=1 --reopen=0 --readpercent=5 --prefixpercent=45 --writepercent=35 --delpercent=5 --iterpercent=10 --db=/home/kailiu/local/newer --max_key=100000000 --disable_seek_compaction=0 --mmap_read=0 --block_size=16384 --cache_size=1048576 --open_files=500000 --verify_checksum=1 --sync=0 --disable_wal=0 --disable_data_sync=0 --target_file_size_base=2097152
      --target_file_size_multiplier=2 --max_write_buffer_number=3 --max_background_compactions=20 --max_bytes_for_level_base=10485760 --filter_deletes=1
      
      Previously we'll see crash happens very soon.
      
      Reviewers: igor, dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14115
      75df72f2
  12. 16 11月, 2013 1 次提交
  13. 15 11月, 2013 2 次提交
  14. 14 11月, 2013 1 次提交
  15. 13 11月, 2013 5 次提交
    • K
      Fix the string format issue · 35460ccb
      Kai Liu 提交于
      Summary:
      
      mac and our dev server has totally differnt definition of uint64_t, therefore fixing the warning in mac has actually made code in linux uncompileable.
      
      Test Plan:
      
      make clean && make -j32
      35460ccb
    • I
      Fix deleting files · d88d8ecf
      Igor Canadi 提交于
      Summary: One more fix! In some cases, our filenames start with "/". Apparently, env_ can't handle filenames with double //
      
      Test Plan:
      deletefile_test does not include this line in the LOG anymore:
      2013/11/12-18:11:43.150149 7fe4a6fff700 RenameFile logfile #3 FAILED -- IO error: /tmp/rocksdbtest-3574/deletefile_test//000003.log: No such file or directory
      
      Reviewers: dhruba, haobo
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14055
      d88d8ecf
    • K
      Fixing the warning messages captured under mac os # Consider using `git commit... · 21587760
      kailiu 提交于
      Fixing the warning messages captured under mac os # Consider using `git commit -m 'One line title' && arc diff`. # You will save time by running lint and unit in the background.
      
      Summary: The work to make sure mac os compiles rocksdb is not completed yet. But at least we can start cleaning some warnings captured only by g++ from mac os..
      
      Test Plan: ran make in mac os
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D14049
      21587760
    • I
      Small changes in Deleting obsolete files · 9bc4a26f
      Igor Canadi 提交于
      Summary:
      @haobo's suggestions from https://reviews.facebook.net/D13827
      
      Renaming some variables, deprecating purge_log_after_flush, changing for loop into auto for loop.
      
      I have not implemented deleting objects outside of mutex yet because it would require a big code change - we would delete object in db_impl, which currently does not know anything about object because it's defined in version_edit.h (FileMetaData). We should do it at some point, though.
      
      Test Plan: Ran deletefile_test
      
      Reviewers: haobo
      
      Reviewed By: haobo
      
      CC: leveldb, haobo
      
      Differential Revision: https://reviews.facebook.net/D14025
      9bc4a26f
    • I
      Move the comment · dad42556
      Igor Canadi 提交于
      Summary: Moving the comment per @haobo suggestion.
      
      Test Plan: No
      
      Reviewers: haobo
      
      Reviewed By: haobo
      
      CC: leveldb, haobo
      
      Differential Revision: https://reviews.facebook.net/D14019
      dad42556
  16. 12 11月, 2013 2 次提交
  17. 09 11月, 2013 1 次提交
    • I
      Speed up FindObsoleteFiles · 1510339e
      Igor Canadi 提交于
      Summary:
      Here's one solution we discussed on speeding up FindObsoleteFiles. Keep a set of all files in DBImpl and update the set every time we create a file. I probably missed few other spots where we create a file.
      
      It might speed things up a bit, but makes code uglier. I don't really like it.
      
      Much better approach would be to abstract all file handling to a separate class. Think of it as layer between DBImpl and Env. Having a separate class deal with file namings and deletion would benefit both code cleanliness (especially with huge DBImpl) and speed things up. It will take a huge effort to do this, though.
      
      Let's discuss offline today.
      
      Test Plan: Ran ./db_stress, verified that files are getting deleted
      
      Reviewers: dhruba, haobo, kailiu, emayanke
      
      Reviewed By: dhruba
      
      Differential Revision: https://reviews.facebook.net/D13827
      1510339e
  18. 08 11月, 2013 2 次提交
    • K
      Provide mechanism to configure when to flush the block · fd075d6e
      Kai Liu 提交于
      Summary: Allow block based table to configure the way flushing the blocks. This feature will allow us to add support for prefix-aligned block.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, sdong, igor
      
      Reviewed By: sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13875
      fd075d6e
    • I
      Flush the log outside of lock · 444cf88a
      Igor Canadi 提交于
      Summary:
      Added a new call LogFlush() that flushes the log contents to the OS buffers. We never call it with lock held.
      
      We call it once for every Read/Write and often in compaction/flush process so the frequency should not be a problem.
      
      Test Plan: db_test
      
      Reviewers: dhruba, haobo, kailiu, emayanke
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13935
      444cf88a
  19. 07 11月, 2013 2 次提交
    • H
      [RocksDB] Generalize prefix-aware iterator to be used for more than one Seek · fd204488
      Haobo Xu 提交于
      Summary: Added a prefix_seek flag in ReadOptions to indicate that Seek is prefix aware(might not return data with different prefix), and also not bound to a specific prefix. Multiple Seeks and range scans can be invoked on the same iterator. If a specific prefix is specified, this flag will be ignored. Just a quick prototype that works for PrefixHashRep, the new lockless memtable could be easily extended with this support too.
      
      Test Plan: test it on Leaf
      
      Reviewers: dhruba, kailiu, sdong, igor
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13929
      fd204488
    • S
      WAL log retention policy based on archive size. · c2be2cba
      shamdor 提交于
      Summary:
      Archive cleaning will still happen every WAL_ttl seconds
      but archived logs will be deleted only if archive size
      is greater then a WAL_size_limit value.
      Empty archived logs will be deleted evety WAL_ttl.
      
      Test Plan:
      1. Unit tests pass.
      2. Benchmark.
      
      Reviewers: emayanke, dhruba, haobo, sdong, kailiu, igor
      
      Reviewed By: emayanke
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13869
      c2be2cba
  20. 05 11月, 2013 1 次提交
    • M
      Making the transaction log iterator more robust · f837f5b1
      Mayank Agarwal 提交于
      Summary:
      strict essentially means that we MUST find the startsequence. Thus we should return if starteSequence is not found in the first file in case strict is set. This will take care of ending the iterator in case of permanent gaps due to corruptions in the log files
      Also created NextImpl function that will have internal variable to distinguish whether Next is being called from StartSequence or by application.
      Set NotFoudn::gaps status to give an indication of gaps happeneing.
      Polished the inline documentation at various places
      
      Test Plan:
      * db_repl_stress test
      * db_test relating to transaction log iterator
      * fbcode/wormhole/rocksdb/rocks_log_iterator
      * sigma production machine sigmafio032.prn1
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13689
      f837f5b1
  21. 02 11月, 2013 1 次提交
    • D
      Implement a compressed block cache. · b4ad5e89
      Dhruba Borthakur 提交于
      Summary:
      Rocksdb can now support a uncompressed block cache, or a compressed
      block cache or both. Lookups first look for a block in the
      uncompressed cache, if it is not found only then it is looked up
      in the compressed cache. If it is found in the compressed cache,
      then it is uncompressed and inserted into the uncompressed cache.
      
      It is possible that the same block resides in the compressed cache
      as well as the uncompressed cache at the same time. Both caches
      have their own individual LRU policy.
      
      Test Plan: Unit test case attached.
      
      Reviewers: kailiu, sdong, haobo, leveldb
      
      Reviewed By: haobo
      
      CC: xjin, haobo
      
      Differential Revision: https://reviews.facebook.net/D12675
      b4ad5e89
  22. 01 11月, 2013 1 次提交
    • H
      [RocksDB] Add OnCompactionStart to CompactionFilter class · 8cbe5bb5
      Haobo Xu 提交于
      Summary: This is to give application compaction filter a chance to access context information of a specific compaction run. For example, depending on whether a compaction goes through all data files, the application could do things differently.
      
      Test Plan: make check
      
      Reviewers: dhruba, kailiu, sdong
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D13683
      8cbe5bb5