1. 16 10月, 2012 1 次提交
  2. 04 10月, 2012 3 次提交
    • D
      An configurable option to write data using write instead of mmap. · c1006d42
      Dhruba Borthakur 提交于
      Summary:
      We have seen that reading data via the pread call (instead of
      mmap) is much faster on Linux 2.6.x kernels. This patch makes
      an equivalent option to switch off mmaps for the write path
      as well.
      
      db_bench --mmap_write=0 will use write() instead of mmap() to
      write data to a file.
      
      This change is backward compatible, the default
      option is to continue using mmap for writing to a file.
      
      Test Plan: "make check all"
      
      Differential Revision: https://reviews.facebook.net/D5781
      c1006d42
    • M
      Add --stats_interval option to db_bench · e678a594
      Mark Callaghan 提交于
      Summary:
      The option is zero by default and in that case reporting is unchanged.
      By unchanged, the interval at which stats are reported is scaled after each
      report and newline is not issued after each report so one line is rewritten.
      When non-zero it specifies the constant interval (in operations) at which
      statistics are reported and the stats include the rate per interval. This
      makes it easier to determine whether QPS changes over the duration of the test.
      
      Task ID: #
      
      Blame Rev:
      
      Test Plan:
      run db_bench
      
      Revert Plan:
      
      Database Impact:
      
      Memcache Impact:
      
      Other Notes:
      
      EImportant:
      
      - begin *PUBLIC* platform impact section -
      Bugzilla: #
      - end platform impact -
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5817
      e678a594
    • M
      Fix the bounds check for the --readwritepercent option · d8763abe
      Mark Callaghan 提交于
      Summary:
      see above
      
      Task ID: #
      
      Blame Rev:
      
      Test Plan:
      run db_bench with invalid value for option
      
      Revert Plan:
      
      Database Impact:
      
      Memcache Impact:
      
      Other Notes:
      
      EImportant:
      
      - begin *PUBLIC* platform impact section -
      Bugzilla: #
      - end platform impact -
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5823
      d8763abe
  3. 03 10月, 2012 1 次提交
    • M
      Fix compiler warnings and errors in ldb.c · 98804f91
      Mark Callaghan 提交于
      Summary:
      stdlib.h is needed for exit()
      --readhead --> --readahead
      
      Task ID: #
      
      Blame Rev:
      
      Test Plan:
      compile
      
      Revert Plan:
      
      Database Impact:
      
      Memcache Impact:
      
      Other Notes:
      
      EImportant:
      
      - begin *PUBLIC* platform impact section -
      Bugzilla: #
      - end platform impact -
      fix compiler warnings & errors
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      CC: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5805
      98804f91
  4. 02 10月, 2012 1 次提交
    • A
      Commandline tool to compace LevelDB databases. · fec81318
      Abhishek Kona 提交于
      Summary:
      A simple CLI which calles DB->CompactRange()
      Can take String key's as range.
      
      Test Plan:
      Inserted data into a table.
      Waited for a minute, used compact tool on it. File modification time's
      changed so Compact did something on the files.
      
      Existing unit tests work.
      
      Reviewers: heyongqiang, dhruba
      
      Reviewed By: dhruba
      
      Differential Revision: https://reviews.facebook.net/D5697
      fec81318
  5. 29 9月, 2012 1 次提交
    • D
      Trigger read compaction only if seeks to storage are incurred. · c1bb32e1
      Dhruba Borthakur 提交于
      Summary:
      In the current code, a Get() call can trigger compaction if it has to look at more than one file. This causes unnecessary compaction because looking at more than one file is a penalty only if the file is not yet in the cache. Also, th current code counts these files before the bloom filter check is applied.
      
      This patch counts a 'seek' only if the file fails the bloom filter
      check and has to read in data block(s) from the storage.
      
      This patch also counts a 'seek' if a file is not present in the file-cache, because opening a file means that its index blocks need to be read into cache.
      
      Test Plan: unit test attached. I will probably add one more unti tests.
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      CC: MarkCallaghan
      
      Differential Revision: https://reviews.facebook.net/D5709
      c1bb32e1
  6. 26 9月, 2012 1 次提交
  7. 25 9月, 2012 1 次提交
    • D
      The BackupAPI should also list the length of the manifest file. · ae36e509
      Dhruba Borthakur 提交于
      Summary:
      The GetLiveFiles() api lists the set of sst files and the current
      MANIFEST file. But the database continues to append new data to the
      MANIFEST file even when the application is backing it up to the
      backup location. This means that the database-version that is
      stored in the MANIFEST FILE in the backup location
      does not correspond to the sst files returned by GetLiveFiles.
      
      This API adds a new parameter to GetLiveFiles. This new parmeter
      returns the current size of the MANIFEST file.
      
      Test Plan: Unit test attached.
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5631
      ae36e509
  8. 22 9月, 2012 1 次提交
    • D
      Segfault in DoCompactionWork caused by buffer overflow · bb2dcd24
      Dhruba Borthakur 提交于
      Summary:
      The code was allocating 200 bytes on the stack but it
      writes 256 bytes into the array.
      
      x8a8ea5 std::_Rb_tree<>::erase()
          @     0x7f134bee7eb0 (unknown)
          @           0x8a8ea5 std::_Rb_tree<>::erase()
          @           0x8a35d6 leveldb::DBImpl::CleanupCompaction()
          @           0x8a7810 leveldb::DBImpl::BackgroundCompaction()
          @           0x8a804d leveldb::DBImpl::BackgroundCall()
          @           0x8c4eff leveldb::(anonymous namespace)::PosixEnv::BGThreadWrapper()
          @     0x7f134b3c010d start_thread
          @     0x7f134bf9f10d clone
      
      Test Plan: run db_bench with overwrite option
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5595
      bb2dcd24
  9. 19 9月, 2012 1 次提交
  10. 18 9月, 2012 2 次提交
  11. 17 9月, 2012 2 次提交
  12. 15 9月, 2012 2 次提交
  13. 14 9月, 2012 2 次提交
  14. 13 9月, 2012 1 次提交
  15. 07 9月, 2012 2 次提交
  16. 05 9月, 2012 1 次提交
    • D
      Benchmark with both reads and writes at the same time. · 94208a78
      Dhruba Borthakur 提交于
      Summary:
      This patch enables the db_bench benchmark to issue both random reads and random writes at the same time. This options can be trigged via
      ./db_bench --benchmarks=readrandomwriterandom
      
      The default percetage of reads is 90.
      
      One can change the percentage of reads by specifying the --readwritepercent.
      ./db_bench --benchmarks=readrandomwriterandom=50
      
      This is a feature request from Jeffro asking for leveldb performance with a 90:10 read:write ratio.
      
      Test Plan: run on test machine.
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5067
      94208a78
  17. 30 8月, 2012 2 次提交
    • D
      Clean up compiler warnings generated by -Wall option. · fe936316
      Dhruba Borthakur 提交于
      Summary:
      Clean up compiler warnings generated by -Wall option.
      make clean all OPT=-Wall
      
      This is a pre-requisite before making a new release.
      
      Test Plan: compile and run unit tests
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5019
      fe936316
    • D
      The sharding of the block cache is limited to 2*20 pieces. · e5fe80e4
      Dhruba Borthakur 提交于
      Summary:
      The numbers of shards that the block cache is divided into is
      configurable. However, if the user specifies that he/she wants
      the block cache to be divided into more than 2**20 pieces, then
      the system will rey to allocate a huge array of that size) that
      could fail.
      
      It is better to limit the sharding of the block cache to an
      upper bound. The default sharding is 16 shards (i.e. 2**4)
      and the maximum is now 2 million shards (i.e. 2**20).
      
      Also, fixed a bug with the LRUCache where the numShardBits
      should be a private member of the LRUCache object rather than
      a static variable.
      
      Test Plan:
      run db_bench with --cache_numshardbits=64.
      
      Task ID: #
      
      Blame Rev:
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D5013
      e5fe80e4
  18. 29 8月, 2012 5 次提交
  19. 28 8月, 2012 1 次提交
    • D
      Introduce a new method Env->Fsync() that issues fsync (instead of fdatasync). · fc20273e
      Dhruba Borthakur 提交于
      Summary:
      Introduce a new method Env->Fsync() that issues fsync (instead of fdatasync).
      This is needed for data durability when running on ext3 filesystems.
      Added options to the benchmark db_bench to generate performance numbers
      with either fsync or fdatasync enabled.
      
      Cleaned up Makefile to build leveldb_shell only when building the thrift
      leveldb server.
      
      Test Plan: build and run benchmark
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      Differential Revision: https://reviews.facebook.net/D4911
      fc20273e
  20. 25 8月, 2012 4 次提交
    • H
      add more logs · 1de83cc2
      heyongqiang 提交于
      Summary:
      as subject
      
      add a tool to read sst file
      
      as subject.
      
      ./sst_reader --command=check --file=
      ./sst_reader --command=scan --file=
      
      Test Plan:
      db_test
      
      run this command
      
      Reviewers: dhruba
      
      Reviewed By: dhruba
      
      Differential Revision: https://reviews.facebook.net/D4881
      1de83cc2
    • H
      sst_dump tool · 64219276
      heyongqiang 提交于
      Summary:
      as subject
      
      add a tool to read sst file
      
      as subject.
      
      ./sst_reader --command=check --file=
      ./sst_reader --command=scan --file=
      
      Test Plan:
      db_test
      
      run this command
      
      Reviewers: dhruba
      
      Differential Revision: https://reviews.facebook.net/D4881
      64219276
    • H
      add more logs · 1c99b0a6
      heyongqiang 提交于
      Summary:
      
      as subject
      
      Test Plan:db_test
      
      Reviewers: dhruba
      1c99b0a6
    • D
      Utility to dump manifest contents. · f3ee5452
      Dhruba Borthakur 提交于
      Summary:
      ./manifest_dump --file=/tmp/dbbench/MANIFEST-000002
      
      Output looks like
      
      manifest_file_number 30 next_file_number 31 last_sequence 388082 log_number 28  prev_log_number 0
      --- level 0 ---
      --- level 1 ---
      --- level 2 ---
       5:3244155['0000000000000000' @ 1 : 1 .. '0000000000028220' @ 28221 : 1]
       7:3244177['0000000000028221' @ 28222 : 1 .. '0000000000056441' @ 56442 : 1]
       9:3244156['0000000000056442' @ 56443 : 1 .. '0000000000084662' @ 84663 : 1]
       11:3244178['0000000000084663' @ 84664 : 1 .. '0000000000112883' @ 112884 : 1]
       13:3244158['0000000000112884' @ 112885 : 1 .. '0000000000141104' @ 141105 : 1]
       15:3244176['0000000000141105' @ 141106 : 1 .. '0000000000169325' @ 169326 : 1]
       17:3244156['0000000000169326' @ 169327 : 1 .. '0000000000197546' @ 197547 : 1]
       19:3244178['0000000000197547' @ 197548 : 1 .. '0000000000225767' @ 225768 : 1]
       21:3244155['0000000000225768' @ 225769 : 1 .. '0000000000253988' @ 253989 : 1]
       23:3244179['0000000000253989' @ 253990 : 1 .. '0000000000282209' @ 282210 : 1]
       25:3244157['0000000000282210' @ 282211 : 1 .. '0000000000310430' @ 310431 : 1]
       27:3244176['0000000000310431' @ 310432 : 1 .. '0000000000338651' @ 338652 : 1]
       29:3244156['0000000000338652' @ 338653 : 1 .. '0000000000366872' @ 366873 : 1]
      --- level 3 ---
      --- level 4 ---
      --- level 5 ---
      --- level 6 ---
      
      Test Plan: run on test directory created by dbbench
      
      Reviewers: heyongqiang
      
      Reviewed By: heyongqiang
      
      CC: hustliubo
      
      Differential Revision: https://reviews.facebook.net/D4743
      f3ee5452
  21. 23 8月, 2012 2 次提交
  22. 22 8月, 2012 3 次提交