1. 09 9月, 2014 12 次提交
    • I
      Merger test · 6bb7e3ef
      Igor Canadi 提交于
      Summary: I abandoned https://reviews.facebook.net/D18789, but I wrote a good unit test there, so let's check it in. :)
      
      Test Plan: this is test
      
      Reviewers: sdong, yhchiang, ljin
      
      Reviewed By: ljin
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D22827
      6bb7e3ef
    • I
      Explicitly cast char to signed char in Hash() · 88841bd0
      Igor Canadi 提交于
      Summary:
      The compilers we use treat char as signed. However, this is not guarantee of C standard and some compilers (for ARM platform for example), treat char as unsigned. Code that assumes that char is either signed or unsigned is wrong.
      
      This change explicitly casts the char to signed version. This will not break any of our use cases on x86, which, I believe are all of them. In case somebody out there is using RocksDB on ARM AND using bloom filters, they're going to have a bad time. However, it is very unlikely that this is the case.
      
      Test Plan: sanity test with previous commit (with new sanity test)
      
      Reviewers: yhchiang, ljin, sdong
      
      Reviewed By: ljin
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D22767
      88841bd0
    • L
      MemTableOptions · 52311463
      Lei Jin 提交于
      Summary: removed reference to options in WriteBatch and DBImpl::Get()
      
      Test Plan: make all check
      
      Reviewers: yhchiang, igor, sdong
      
      Reviewed By: sdong
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D23049
      52311463
    • I
      Some updates for SpatialDB · 55114e7f
      Igor Canadi 提交于
      Summary:
      1. add db statistics
      2. write out batch every millionth write
      
      Test Plan: unit tests
      
      Reviewers: ljin, sdong, yinwang
      
      Reviewed By: yinwang
      
      Differential Revision: https://reviews.facebook.net/D22755
      55114e7f
    • L
      remove TailingIterator reference in db_impl.h · 171d4ff4
      Lei Jin 提交于
      Summary: as title
      
      Test Plan: make release
      
      Reviewers: igor
      
      Differential Revision: https://reviews.facebook.net/D23073
      171d4ff4
    • L
      rename version_set options_ to db_options_ to avoid confusion · 9b0f7ffa
      Lei Jin 提交于
      Summary: as title
      
      Test Plan: make release
      
      Reviewers: sdong, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D23007
      9b0f7ffa
    • I
      Check stop level trigger-0 before slowdown level-0 trigger · 2d57828d
      Igor Canadi 提交于
      Summary: ...
      
      Test Plan: Can't repro the test failure, but let's see what jenkins says
      
      Reviewers: zagfox, sdong, ljin
      
      Reviewed By: sdong, ljin
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D23061
      2d57828d
    • L
      move compaction_filter to immutable_options · 659d2d50
      Lei Jin 提交于
      Summary:
      all shared_ptrs are in immutable_options now. This will also make
      options assignment a little cheaper
      
      Test Plan: make release
      
      Reviewers: sdong, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D23001
      659d2d50
    • L
      reduce references to cfd->options() in DBImpl · 048560a6
      Lei Jin 提交于
      Summary:
      I found it is almost impossible to get rid of this function in a single
      batch. I will take a step by step approach
      
      Test Plan: make release
      
      Reviewers: sdong, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D22995
      048560a6
    • S
      DB::Flush() Do not wait for background threads when there is nothing in mem table · 011241bb
      sdong 提交于
      Summary:
      When we have multiple column families, users can issue Flush() on every column families to make sure everything is flushes, even if some of them might be empty. By skipping the waiting for empty cases, it can be greatly speed up.
      
      Still wait for people's comments before writing unit tests for it.
      
      Test Plan: Will write a unit test to make sure it is correct.
      
      Reviewers: ljin, yhchiang, igor
      
      Reviewed By: igor
      
      Subscribers: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D22953
      011241bb
    • I
      Push- instead of pull-model for managing Write stalls · a2bb7c3c
      Igor Canadi 提交于
      Summary:
      Introducing WriteController, which is a source of truth about per-DB write delays. Let's define an DB epoch as a period where there are no flushes and compactions (i.e. new epoch is started when flush or compaction finishes). Each epoch can either:
      * proceed with all writes without delay
      * delay all writes by fixed time
      * stop all writes
      
      The three modes are recomputed at each epoch change (flush, compaction), rather than on every write (which is currently the case).
      
      When we have a lot of column families, our current pull behavior adds a big overhead, since we need to loop over every column family for every write. With new push model, overhead on Write code-path is minimal.
      
      This is just the start. Next step is to also take care of stalls introduced by slow memtable flushes. The final goal is to eliminate function MakeRoomForWrite(), which currently needs to be called for every column family by every write.
      
      Test Plan: make check for now. I'll add some unit tests later. Also, perf test.
      
      Reviewers: dhruba, yhchiang, MarkCallaghan, sdong, ljin
      
      Reviewed By: ljin
      
      Subscribers: leveldb
      
      Differential Revision: https://reviews.facebook.net/D22791
      a2bb7c3c
    • F
      Implement full filter for block based table. · 0af157f9
      Feng Zhu 提交于
      Summary:
      1. Make filter_block.h a base class. Derive block_based_filter_block and full_filter_block. The previous one is the traditional filter block. The full_filter_block is newly added. It would generate a filter block that contain all the keys in SST file.
      
      2. When querying a key, table would first check if full_filter is available. If not, it would go to the exact data block and check using block_based filter.
      
      3. User could choose to use full_filter or tradional(block_based_filter). They would be stored in SST file with different meta index name. "filter.filter_policy" or "full_filter.filter_policy". Then, Table reader is able to know the fllter block type.
      
      4. Some optimizations have been done for full_filter_block, thus it requires a different interface compared to the original one in filter_policy.h.
      
      5. Actual implementation of filter bits coding/decoding is placed in util/bloom_impl.cc
      
      Benchmark: base commit 1d23b5c4
      Command:
      db_bench --db=/dev/shm/rocksdb --num_levels=6 --key_size=20 --prefix_size=20 --keys_per_prefix=0 --value_size=100 --write_buffer_size=134217728 --max_write_buffer_number=2 --target_file_size_base=33554432 --max_bytes_for_level_base=1073741824 --verify_checksum=false --max_background_compactions=4 --use_plain_table=0 --memtablerep=prefix_hash --open_files=-1 --mmap_read=1 --mmap_write=0 --bloom_bits=10 --bloom_locality=1 --memtable_bloom_bits=500000 --compression_type=lz4 --num=393216000 --use_hash_search=1 --block_size=1024 --block_restart_interval=16 --use_existing_db=1 --threads=1 --benchmarks=readrandom —disable_auto_compactions=1
      Read QPS increase for about 30% from 2230002 to 2991411.
      
      Test Plan:
      make all check
      valgrind db_test
      db_stress --use_block_based_filter = 0
      ./auto_sanity_test.sh
      
      Reviewers: igor, yhchiang, ljin, sdong
      
      Reviewed By: sdong
      
      Subscribers: dhruba, leveldb
      
      Differential Revision: https://reviews.facebook.net/D20979
      0af157f9
  2. 08 9月, 2014 5 次提交
  3. 07 9月, 2014 2 次提交
  4. 06 9月, 2014 14 次提交
  5. 05 9月, 2014 7 次提交