1. 13 2月, 2014 1 次提交
  2. 12 2月, 2014 3 次提交
    • K
      Fix problem 3 for issue #80 · 265150cb
      kailiu 提交于
      265150cb
    • K
      Fix a member variables initialization order issue · aa734ce9
      kailiu 提交于
      Summary:
      In MacOS, I got issue with `Footer`'s default constructor, which initialized the magic number with some random number instead of 0.
      With investigation, I found we forgot to make the kInvalidTableMagicNumber to be static. As a result, kInvalidTableMagicNumber was assgined to `table_magic_number_` before it is initialized (which will be populated with random number).
      
      Test Plan: passed current unit tests; also passed the unit tests for the incoming diff which used the default footer.
      
      Reviewers: yhchiang
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16077
      aa734ce9
    • S
      Reduce malloc of iterators in Get() code paths · 33042669
      Siying Dong 提交于
      Summary:
      This patch optimized Get() code paths by avoiding malloc of iterators. Iterator creation is moved to mem table rep implementations, where a callback is called when any key is found. This is the same practice as what we do in (SST) table readers.
      
      db_bench result for readrandom following a writeseq, with no compression, single thread and tmpfs, we see throughput improved to 144958 from 139027, about 3%.
      
      Test Plan: make all check
      
      Reviewers: dhruba, haobo, igor
      
      Reviewed By: haobo
      
      CC: leveldb, yhchiang
      
      Differential Revision: https://reviews.facebook.net/D14685
      33042669
  3. 11 2月, 2014 5 次提交
  4. 09 2月, 2014 1 次提交
  5. 08 2月, 2014 8 次提交
    • K
      Fix the valgrind error in table test. · 9a270f3f
      Kai Liu 提交于
      9a270f3f
    • K
      Fix incompatible compilation in Linux server · b8ea5e36
      Kai Liu 提交于
      b8ea5e36
    • K
      Make table properties shareable · 161ab42a
      kailiu 提交于
      Summary:
      We are going to expose properties of all tables to end users through "some" db interface.
      However, current design doesn't naturally fit for this need, which is because:
      
      1. If a table presents in table cache, we cannot simply return the reference to its table properties, because the table may be destroy after compaction (and we don't want to hold the ref of the version).
      2. Copy table properties is OK, but it's slow.
      
      Thus in this diff, I change the table reader's interface to return a shared pointer (for const table properties), instead a const refernce.
      
      Test Plan: `make check` passed
      
      Reviewers: haobo, sdong, dhruba
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15999
      161ab42a
    • D
      Fix compilation error with gcc 4.7 · 0982c380
      Dhruba Borthakur 提交于
      Summary:
      Fix compilation error with gcc 4.7
      
      Test Plan:
      make clean
      make
      
      Reviewers:
      
      CC:
      
      Task ID: #
      
      Blame Rev:
      0982c380
    • I
      Merge pull request #77 from alberts/docfixes · 4159a284
      Igor Canadi 提交于
      doc: table_stats_collectors -> table_properties_collectors.
      4159a284
    • A
      d19d981d
    • Y
      Add support for plain table format to sst_dump. · 3ce8d9a9
      Yueh-Hsuan Chiang 提交于
      Summary:
      This diff enables the command line tool `sst_dump` to work for sst files
      under plain table format.  Changes include:
        * In tools/sst_dump.cc:
          - add support for plain table format
          - display prefix_extractor information when --show_properties is on
        * In table/format.cc
          - Now the table magic number of a Footer can be later initialized
            via ReadFooterFromFile().
        * In table/meta_bocks:
          - add function ReadTableMagicNumber() that reads the magic number of
            the specified file.
      
      Minor fixes:
       - remove a duplicate #include in table/table_test.cc
       - fix a commentary typo in include/rocksdb/memtablerep.h
       - fix lint errors.
      
      Test Plan:
      Runs sst_dump with both block-based and plain-table format files with
      different arguments, specifically those with --show-properties and --from.
      
      * sample output:
        https://reviews.facebook.net/P261
      
      Reviewers: kailiu, sdong, xjin
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15903
      3ce8d9a9
    • I
      Readrandom with tailing iterator · 1560bb91
      Igor Canadi 提交于
      Summary:
      Added an option for readrandom benchmark to run with tailing iterator instead of Get. Benefit of tailing iterator is that it doesn't require locking DB mutex on access.
      
      I also have some results when running on my machine. The results highly depend on number of cache shards. With our current benchmark setting of 4 table cache shards and 6 block cache shards, I don't see much improvements of using tailing iterator. In that case, we're probably seeing cache mutex contention.
      
      Here are the results for different number of shards
      
          cache shards       tailing iterator        get
             6                      1.38M           1.16M
            10                      1.58M           1.15M
      
      As soon as we get rid of cache mutex contention, we're seeing big improvements in using tailing iterator vs. ordinary get.
      
      Test Plan: ran regression test
      
      Reviewers: dhruba, haobo, ljin, kailiu, sding
      
      Reviewed By: haobo
      
      CC: tnovak
      
      Differential Revision: https://reviews.facebook.net/D15867
      1560bb91
  6. 07 2月, 2014 5 次提交
  7. 06 2月, 2014 3 次提交
  8. 05 2月, 2014 1 次提交
  9. 04 2月, 2014 5 次提交
  10. 03 2月, 2014 2 次提交
  11. 01 2月, 2014 3 次提交
    • D
      Fix corruption_test failure caused by auto-enablement of checksum verification. · 30a70065
      Dhruba Borthakur 提交于
      Summary:
      Patch  https://reviews.facebook.net/D15591 enabled checksum
      verification by default. This caused the unit test to fail.
      
      Test Plan: ./corruption_test
      
      Reviewers: igor, kailiu
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15795
      30a70065
    • I
      Mark the log_number file number used · dbbffbd7
      Igor Canadi 提交于
      Summary:
      VersionSet::next_file_number_ is always assumed to be strictly greater than VersionSet::log_number_. In our new recovery code, we artificially set log_number_  to be (log_number + 1), so that once we flush, we don't recover from the same log file again (this is important because of merge operator non-idempotence)
      
      When we set VersionSet::log_number_ to (log_number + 1), we also have to mark that file number used, such that next_file_number_ is increased to a legal level. Otherwise, VersionSet might assert.
      
      This has not be a problem so far because here's what happens:
      1. assume next_file_number is 5, we're recovering log_number 10
      2. in DBImpl::Recover() we call MarkFileNumberUsed with 10. This will set VersionSet::next_file_number_ to 11.
      3. If there are some updates, we will call WriteTable0ForRecovery(), which will use file number 11 as a new table file and advance VersionSet::next_file_number_ to 12.
      4. When we LogAndApply() with log_number 11, assertion is true: assert(11 <= 12);
      
      However, this was a lucky occurrence. Even though this diff doesn't cause a bug, I think the issue is important to fix.
      
      Test Plan: In column families I have different recovery logic and this code path asserted. When adding MarkFileNumberUsed(log_number + 1) assert is gone.
      
      Reviewers: dhruba, kailiu
      
      Reviewed By: kailiu
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15783
      dbbffbd7
    • S
      When using Universal Compaction, Zero out seqID in the last file too · 56bea9f8
      Siying Dong 提交于
      Summary: I didn't figure out the reason why the feature of zeroing out earlier sequence ID is disabled in universal compaction. I do see bottommost_level is set correctly. It should simply work if we remove the constraint of universal compaction.
      
      Test Plan: make all check
      
      Reviewers: haobo, dhruba, kailiu, igor
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15423
      56bea9f8
  12. 31 1月, 2014 3 次提交