1. 06 3月, 2014 10 次提交
  2. 05 3月, 2014 7 次提交
  3. 04 3月, 2014 8 次提交
    • K
      Uncomment the unit tests in table test · a1d56e73
      kailiu 提交于
      a1d56e73
    • K
      Add a hash-index component for block · 906f3dca
      kailiu 提交于
      Summary:
      this is the key component extracted from diff: https://reviews.facebook.net/D14271
      I separate it to a dedicated patch to make the review easier.
      
      Test Plan: added a unit test and passed it.
      
      Reviewers: haobo, sdong, dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16245
      906f3dca
    • K
      Get rid of all optimization flags in debug mode · 6b9da48a
      kailiu 提交于
      6b9da48a
    • I
      Merge branch 'master' into columnfamilies · 9d0577a6
      Igor Canadi 提交于
      Conflicts:
      	db/db_impl.cc
      	db/db_impl.h
      	db/transaction_log_impl.cc
      	db/transaction_log_impl.h
      	include/rocksdb/options.h
      	util/env.cc
      	util/options.cc
      9d0577a6
    • S
      Fix issue with iterator operations in this order: Prev(), Seek(), Prev() · f0ee2356
      sdong 提交于
      Summary:
      Due to a bad merge of D14163 and D14001 before checking in D14001, "direction_ = kForward;" in MergeIterator::Seek() was deleted my mistake (in commit b135d01e ). It will generate wrong results or assert failure after the sequence of Prev() (or SeekToLast()), Seek() and Prev().
      
      Fix it
      
      Test Plan: make all check
      
      Reviewers: igor, haobo, dhruba
      
      Reviewed By: igor
      
      CC: yhchiang, i.am.jin.lei, ljin, leveldb
      
      Differential Revision: https://reviews.facebook.net/D16527
      f0ee2356
    • I
      Fix a group commit bug in LogAndApply · 5142b370
      Igor Canadi 提交于
      Summary:
      EncodeTo(&record) does not overwrite, it appends to it.
      
      This means that group commit log and apply will look something like:
      record1
      record1record2
      record1record2record3
      
      I'm surprised this didn't show up in production, but I think the reason is that MANIFEST group commit almost never happens.
      
      This bug turned up in column family work, where opening a database failed with "adding a same column family twice".
      
      Test Plan: Tested the change in column family branch and observed that the problem is gone (with db_stress)
      
      Reviewers: dhruba, haobo
      
      Reviewed By: dhruba
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16461
      5142b370
    • I
      Reopen DB in crash test · 97eddef2
      Igor Canadi 提交于
      Summary:
      Why don't we automatically reopen DB when running crash test (running in our nightly build)? If I understand correctly, crashtest is manually reopenning the DB, but then the DB does not check its consistency when you kill db_stress process and then re-run it again.
      Does this make sense?
      
      Test Plan: not reall
      
      Reviewers: dhruba, haobo, emayanke
      
      Reviewed By: emayanke
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16167
      97eddef2
    • I
      [CF] Fix CF bugs in WriteBatch · f9b2f0ad
      Igor Canadi 提交于
      Summary:
      This diff fixes two bugs:
      * Increase sequence number even if WriteBatch fails. This is important because WriteBatches in WAL logs have implictly increasing sequence number, even if one update in a write batch fails. This caused some writes to get lost in my CF stress testing
      * Tolerate 'invalid column family' errors on recovery. When a column family is dropped, processing WAL logs can have some WriteBatches that still refer to the dropped column family. In recovery environment, we want to ignore those errors. In client's Write() code path, however, we want to return the failure to the client if he's trying to add data to invalid column family.
      
      Test Plan: db_stress's verification works now
      
      Reviewers: dhruba, haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16533
      f9b2f0ad
  4. 02 3月, 2014 2 次提交
  5. 01 3月, 2014 11 次提交
    • K
      Fix the unit test failure in devbox · ff151132
      Kai Liu 提交于
      Summary:
      My last diff was developed in MacOS but in devserver environment error occurs.
      
      I dug into the problem and found the way we calcuate approximate data size is pretty out-of-date. We can use table properties to get more accurate results.
      
      Test Plan: ran ./table_test and passed
      
      Reviewers: igor, dhruba, haobo, sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16509
      ff151132
    • K
      Make the block-based table's index pluggable · 74939a9e
      kailiu 提交于
      Summary:
      This patch introduced a new table options that allows us to make
      block-based table's index pluggable.
      
      To support that new features:
      
      * Code has been refacotred to be more flexible and supports this option well.
      * More documentation is added for the existing obsecure functionalities.
      * Big surgeon on DataBlockReader(), where the logic was really convoluted.
      * Other small code cleanups.
      
      The pluggablility will mostly affect development of internal modules
      and won't change frequently, as a result I intentionally avoid
      heavy-weight patterns (like factory) and try to make it simple.
      
      Test Plan: make all check
      
      Reviewers: haobo, sdong
      
      Reviewed By: sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16395
      74939a9e
    • K
      Remove the terrible hack in for flush_block_policy_factory · bf86af51
      kailiu 提交于
      Summary:
      Previous code is too convoluted and I must be drunk for letting
      such code to be written without a second thought.
      
      Thanks to the discussion with @sdong, I added the `Options` when
      generating the flusher, thus avoiding the tricks.
      
      Just FYI: I resisted to add Options in flush_block_policy.h since I
      wanted to avoid cyclic dependencies: FlushBlockPolicy dpends on Options
      and Options also depends FlushBlockPolicy... While I appreciate my
      effort to prevent it, the old design turns out creating more troubles than
      it tried to avoid.
      
      Test Plan: ran ./table_test
      
      Reviewers: sdong
      
      Reviewed By: sdong
      
      CC: sdong, leveldb
      
      Differential Revision: https://reviews.facebook.net/D16503
      bf86af51
    • I
      [CF] Rething LogAndApply for column families · 8ea21a77
      Igor Canadi 提交于
      Summary:
      I though I might get away with as little changes to LogAndApply() as possible. It turns out this is not the case.
      
      This diff introduces different behavior of LogAndApply() for three cases:
      1. column family add
      2. column family drop
      3. no-column family manipulation
      
      (1) and (2) don't support group commit yet.
      
      There were a lot of problems with old version od LogAndApply, detected by db_stress. The biggest was non-atomicity of manifest writes and metadata changes (i.e. if column family add is in manifest, it also has to be in in-memory data structure).
      
      Test Plan: db_stress
      
      Reviewers: dhruba, haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16491
      8ea21a77
    • I
      Make Log::Reader more robust · 58ca641d
      Igor Canadi 提交于
      Summary:
      This diff does two things:
      (1) Log::Reader does not report a corruption when the last record in a log or manifest file is truncated (meaning that log writer died in the middle of the write). Inherited the code from LevelDB: https://code.google.com/p/leveldb/source/detail?r=269fc6ca9416129248db5ca57050cd5d39d177c8#
      (2) Turn off mmap writes for all writes to log and manifest files
      
      (2) is necessary because if we use mmap writes, the last record is not truncated, but is actually filled with zeros, making checksum fail. It is hard to recover from checksum failing.
      
      Test Plan:
      Added unit tests from LevelDB
      Actually recovered a "corrupted" MANIFEST file.
      
      Reviewers: dhruba, haobo
      
      Reviewed By: haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16119
      58ca641d
    • I
      Fix LogAndApply() group commit · 12966ec1
      Igor Canadi 提交于
      12966ec1
    • Y
      Add ReadOptions to TransactionLogIterator. · a77527f2
      Yueh-Hsuan Chiang 提交于
      Summary:
      Add an optional input parameter ReadOptions to DB::GetUpdateSince(),
      which allows the verification of checksums to be disabled by setting
      ReadOptions::verify_checksums to false.
      
      Test Plan: Tests are done off-line and will not be included in the regular unit test.
      
      Reviewers: igor
      
      Reviewed By: igor
      
      CC: leveldb, xjin, dhruba
      
      Differential Revision: https://reviews.facebook.net/D16305
      a77527f2
    • I
      f6a257b6
    • I
      [CF] Small refactor of Recover() and DumpManifest() · 670f3ba2
      Igor Canadi 提交于
      670f3ba2
    • I
      Set log number for column family · 099ad943
      Igor Canadi 提交于
      099ad943
    • I
      [CF] CreateColumnFamily fix · 510f84b6
      Igor Canadi 提交于
      Summary:
      This fixes few bugs with CreateColumnFamily
      * We first have to LogAndApply and then call VersionSet::CreateColumnFamily. Otherwise, WriteSnapshot might be invoked, writing out column family add inside of LogAndApply, even though it's not really committed
      * Fix LogAndApplyHelper() to not apply log number to column_family_data, which is in case of column family add, just a dummy (default) column family
      * Create SuperVerion when creating column family
      
      Test Plan: column_family_test
      
      Reviewers: dhruba, haobo
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16443
      510f84b6
  6. 28 2月, 2014 2 次提交