1. 25 4月, 2014 1 次提交
  2. 24 4月, 2014 4 次提交
    • I
      Initialize verification_failed in db_stress · 472a80a3
      Igor Canadi 提交于
      472a80a3
    • I
      Improve stability of db_stress · 2413a06c
      Igor Canadi 提交于
      Summary:
      Currently, whenever DB Verification fails we bail out by calling `exit(1)`. This is kind of bad since it causes unclean shutdown and spew of error log messages like:
      
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
          05:03:27 pthread lock: Invalid argument
      
      This diff adds a new parameter that is set to true when verification fails. It can then use the parameter to bail out safely.
      
      Test Plan: Casued artificail failure. Verified that exit was clean.
      
      Reviewers: dhruba, haobo, ljin
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18243
      2413a06c
    • Y
      [Java] Add Java bindings and Java tests for 30+ rocksdb::Options. · d8fe0060
      Yueh-Hsuan Chiang 提交于
      Summary:
      Add Java bindings and Java tests for 30+ rocksdb::Options.  Codes are
      machine-genearted based on include/rocksdb/options.h with manual-polishment.
      
      Test Plan:
      make rocksdbjava
      make jtest
      
      Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18273
      d8fe0060
    • S
      Fix a bug in IterKey · 4de5b84e
      sdong 提交于
      Summary: IterKey set buffer_size_ to a wrong initial value, causing it to always allocate values from heap instead of stack if the key size is smaller. Fix it.
      
      Test Plan: make all check
      
      Reviewers: haobo, ljin
      
      Reviewed By: haobo
      
      CC: igor, dhruba, yhchiang, leveldb
      
      Differential Revision: https://reviews.facebook.net/D18279
      4de5b84e
  3. 23 4月, 2014 13 次提交
  4. 22 4月, 2014 19 次提交
    • A
      Refactor filter impl · 2214fd8a
      Ankit Gupta 提交于
      2214fd8a
    • A
      Fix doc · 89cb481a
      Ankit Gupta 提交于
      89cb481a
    • A
      Refactor filter impl · 677b0d6d
      Ankit Gupta 提交于
      677b0d6d
    • A
      Change filter implementation · 5e797cf0
      Ankit Gupta 提交于
      5e797cf0
    • A
      Fix formatting · cea2be20
      Ankit Gupta 提交于
      cea2be20
    • A
      Add bloom filters · dc4b27ac
      Ankit Gupta 提交于
      dc4b27ac
    • Y
      Fix SIGFAULT when running sst_dump on v2.6 db · af6ad113
      Yueh-Hsuan Chiang 提交于
      Summary: Fix the sigfault when running sst_dump on v2.6 db.
      
      Test Plan:
          git checkout bba6595b
          make clean
          make db_bench
          ./db_bench --db=/tmp/some/db --benchmarks=fillseq
          arc patch D18039
          make clean
          make sst_dump
          ./sst_dump --file=/tmp/some/db --command=check
      
      Reviewers: igor, haobo, sdong
      
      Reviewed By: sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18039
      af6ad113
    • I
      Flush before Fsync()/Sync() · c2da9e59
      Igor Canadi 提交于
      Summary: Calling Fsync()/Sync() on a file should give the guarantee that whatever you written to the file is now persisted. This is currently not the case, since we might have some data left in application cache as we do Fsync()/Sync(). For example, BuildTable() calls Fsync() without the flush, assuming all sst data is now persisted, but it's actually not. This may result in big inconsistencies.
      
      Test Plan: no test
      
      Reviewers: sdong, dhruba, haobo, ljin, yhchiang
      
      Reviewed By: sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18159
      c2da9e59
    • I
      Move benchmark timing to Env::NowNanos() · ba16c1f4
      Igor Canadi 提交于
      ba16c1f4
    • Y
      [Java] Add Java binding and Java test for ReadOptions. · e316af5f
      Yueh-Hsuan Chiang 提交于
      Summary: Add Java binding and test for rocksdb::ReadOptions.
      
      Test Plan:
      make rocksdbjava
      make jtest
      
      Reviewers: haobo, dhruba, sdong, ankgup87, rsumbaly, swapnilghike, zzbennett
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18129
      e316af5f
    • I
      Single-threaded asan_crash_test · d0939cdc
      Igor Canadi 提交于
      d0939cdc
    • Y
      [Java] Add Java bindings for memtables and sst format. · ef8b8a8e
      Yueh-Hsuan Chiang 提交于
      Summary:
      Add Java bindings for memtables and sst format.  Specifically,
      add two abstract Java classses --- MemTableConfig and SstFormatConfig.
      Each MemTable / SST implementation should has its own config class
      extends MemTableConfig / SstFormatConfig respectively and pass it
      to Options via setMemTableConfig / setSstConfig.
      
      Test Plan:
      make rocksdbjava
      make jdb_test
      make jdb_bench
      java/jdb_bench.sh \
        --benchmarks=fillseq,readrandom,readwhilewriting \
        --memtablerep=hash_skiplist \
        --use_plain_table=1 \
        --key_size=20 \
        --prefix_size=12 \
        --value_size=100 \
        --cache_size=17179869184 \
        --disable_wal=0 \
        --sync=0 \
      
      Reviewers: haobo, ankgup87, sdong
      
      Reviewed By: haobo
      
      CC: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D17997
      ef8b8a8e
    • I
      Rename "benchmark" back to "bench". · 8dc34364
      Igor Canadi 提交于
      Also, make `benchharness.cc` not compiled into rocksdb library.
      8dc34364
    • I
      Relax env_test::AllocateTest · 05c16865
      Igor Canadi 提交于
      05c16865
    • P
      Added benchmark functionality on the lines of folly/Benchmark.h · ff1b5df4
      Pratyush Seth 提交于
      Summary: Added benchmark functionality on the lines of folly/Benchmark.h
      
      Test Plan: Added unit tests
      
      Reviewers: igor, haobo, sdong, ljin, yhchiang, dhruba
      
      Reviewed By: igor
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17973
      ff1b5df4
    • I
      Fix Allocate test · c7076a7a
      Igor Canadi 提交于
      Summary: For some reason, on a subset of our continuous build machines, preallocation is allocating 8 block more than it should be. Let's relax the test a little bit -- now we require the test to allocate *at least* the number of blocks as we told them to.
      
      Test Plan: no
      
      Reviewers: ljin, haobo, sdong
      
      Reviewed By: ljin
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D18141
      c7076a7a
    • I
      Remove TransactionLogIteratorRace when -DNDEBUG · f813279d
      Igor Canadi 提交于
      f813279d
    • I
      Merge pull request #124 from ankgup87/master · 11e85254
      Igor Canadi 提交于
      [Java] Add iterator JNI bindings
      11e85254
    • L
      hints for narrowing down FindFile range and avoiding checking unrelevant L0 files · 0f2d7681
      Lei Jin 提交于
      Summary:
      The file tree structure in Version is prebuilt and the range of each file is known.
      On the Get() code path, we do binary search in FindFile() by comparing
      target key with each file's largest key and also check the range for each L0 file.
      With some pre-calculated knowledge, each key comparision that has been done can serve
      as a hint to narrow down further searches:
      (1) If a key falls within a L0 file's range, we can safely skip the next
      file if its range does not overlap with the current one.
      (2) If a key falls within a file's range in level L0 - Ln-1, we should only
      need to binary search in the next level for files that overlap with the current one.
      
      (1) will be able to skip some files depending one the key distribution.
      (2) can greatly reduce the range of binary search, especially for bottom
      levels, given that one file most likely only overlaps with N files from
      the level below (where N is max_bytes_for_level_multiplier). So on level
      L, we will only look at ~N files instead of N^L files.
      
      Some inital results: measured with 500M key DB, when write is light (10k/s = 1.2M/s), this
      improves QPS ~7% on top of blocked bloom. When write is heavier (80k/s =
      9.6M/s), it gives us ~13% improvement.
      
      Test Plan: make all check
      
      Reviewers: haobo, igor, dhruba, sdong, yhchiang
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D17205
      0f2d7681
  5. 20 4月, 2014 3 次提交