1. 11 2月, 2014 2 次提交
  2. 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
  3. 07 2月, 2014 5 次提交
  4. 06 2月, 2014 3 次提交
  5. 05 2月, 2014 1 次提交
  6. 04 2月, 2014 5 次提交
  7. 03 2月, 2014 2 次提交
  8. 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
  9. 31 1月, 2014 3 次提交
  10. 30 1月, 2014 8 次提交
    • Y
      Allow command line tool sst-dump to display table properties. · a46ac921
      Yueh-Hsuan Chiang 提交于
      Summary:
      Add option '--show_properties' to sst_dump tool to allow displaying
      property block of the specified files.
      
      Test Plan:
      Run sst_dump with the following arguments, which covers cases affected by
      this diff:
      
        1. with only --file
        2. with both --file and --show_properties
        3. with --file, --show_properties, and --from
      
      Reviewers: kailiu, xjin
      
      Differential Revision: https://reviews.facebook.net/D15453
      a46ac921
    • I
      InternalStatistics · 3c0dcf0e
      Igor Canadi 提交于
      Summary:
      In DBImpl we keep track of some statistics internally and expose them via GetProperty(). This diff encapsulates all the internal statistics into a class InternalStatisics. Most of it is copy/paste.
      
      Apart from cleaning up db_impl.cc, this diff is also necessary for Column families, since every column family should have its own CompactionStats, MakeRoomForWrite-stall stats, etc. It's much easier to keep track of it in every column family if it's nicely encapsulated in its own class.
      
      Test Plan: make check
      
      Reviewers: dhruba, kailiu, haobo, sdong, emayanke
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15273
      3c0dcf0e
    • K
      Remove unused classes · 3170abd2
      kailiu 提交于
      Summary: This is a followup diff for https://reviews.facebook.net/D15447, which picks the most simple task: delete some unused memtable reps.
      
      Test Plan: make
      
      Reviewers: haobo, dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15585
      3170abd2
    • L
      set bg_error_ when background flush goes wrong · d118707f
      Lei Jin 提交于
      Summary: as title
      
      Test Plan: unit test
      
      Reviewers: haobo, igor, sdong, kailiu, dhruba
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15435
      d118707f
    • L
      convert Tickers back to array with padding and alignment · fb84c49a
      Lei Jin 提交于
      Summary:
      Pad each Ticker structure to be 64 bytes and make them align on 64 bytes
      boundary to avoid cache line false sharing issue.
      Please refer to task 3615553 for more details
      
      Test Plan:
      db_bench
      
      LevelDB:    version 2.0s
      Date:       Wed Jan 29 12:23:17 2014
      CPU:        32 * Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
      CPUCache:   20480 KB
      rocksdb.build.overwrite.qps 49638
      rocksdb.build.overwrite.p50_micros 58.73
      rocksdb.build.overwrite.p75_micros 210.56
      rocksdb.build.overwrite.p99_micros 733.28
      rocksdb.build.fillseq.qps 366729
      rocksdb.build.fillseq.p50_micros 1.00
      rocksdb.build.fillseq.p75_micros 1.00
      rocksdb.build.fillseq.p99_micros 2.65
      rocksdb.build.readrandom.qps 1152995
      rocksdb.build.readrandom.p50_micros 11.27
      rocksdb.build.readrandom.p75_micros 15.69
      rocksdb.build.readrandom.p99_micros 33.59
      rocksdb.build.readrandom_smallblockcache.qps 956047
      rocksdb.build.readrandom_smallblockcache.p50_micros 15.23
      rocksdb.build.readrandom_smallblockcache.p75_micros 17.31
      rocksdb.build.readrandom_smallblockcache.p99_micros 31.49
      rocksdb.build.readrandom_memtable_sst.qps 1105183
      rocksdb.build.readrandom_memtable_sst.p50_micros 12.04
      rocksdb.build.readrandom_memtable_sst.p75_micros 15.78
      rocksdb.build.readrandom_memtable_sst.p99_micros 32.49
      rocksdb.build.readrandom_fillunique_random.qps 487856
      rocksdb.build.readrandom_fillunique_random.p50_micros 29.65
      rocksdb.build.readrandom_fillunique_random.p75_micros 40.93
      rocksdb.build.readrandom_fillunique_random.p99_micros 78.68
      rocksdb.build.memtablefillrandom.qps 91304
      rocksdb.build.memtablefillrandom.p50_micros 171.05
      rocksdb.build.memtablefillrandom.p75_micros 196.12
      rocksdb.build.memtablefillrandom.p99_micros 291.73
      rocksdb.build.memtablereadrandom.qps 1340411
      rocksdb.build.memtablereadrandom.p50_micros 9.48
      rocksdb.build.memtablereadrandom.p75_micros 13.95
      rocksdb.build.memtablereadrandom.p99_micros 30.36
      rocksdb.build.readwhilewriting.qps 491004
      rocksdb.build.readwhilewriting.p50_micros 29.58
      rocksdb.build.readwhilewriting.p75_micros 40.34
      rocksdb.build.readwhilewriting.p99_micros 76.78
      
      Reviewers: igor, haobo
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15573
      fb84c49a
    • K
      LIBNAME in Makefile is not really configurable · b7db2411
      Kai Liu 提交于
      Summary:
      In new third-party release tool, `LIBNAME=<customized_library> make`
      will not really change the LIBNAME.
      
      However it's very odd that the same approach works with old third-party
      release tools. I checked previous rocksdb version and both librocksdb.a
      and librocksdb_debug.a were correctly generated and copied to the
      right place.
      
      Test Plan:
      `LIBNAME=hello make -j32` generates hello.a
      `make -j32` generates librocksdb.a
      
      Reviewers: igor, sdong, haobo, dhruba
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15555
      b7db2411
    • K
      Canonicalize "RocksDB" in make_new_version.sh · b1874af8
      kailiu 提交于
      Summary: Change all occurrences of "rocksdb" to its canonical form "RocksDB".
      
      Test Plan: N/A
      
      Reviewers: igor
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15549
      b1874af8
    • K
      Improve make_new_version.sh · c9eef784
      kailiu 提交于
      c9eef784