1. 13 2月, 2014 1 次提交
    • I
      [CF] Rethinking ColumnFamilyHandle and fix to dropping column families · b06840aa
      Igor Canadi 提交于
      Summary:
      The change to the public behavior:
      * When opening a DB or creating new column family client gets a ColumnFamilyHandle.
      * As long as column family handle is alive, client can do whatever he wants with it, even drop it
      * Dropped column family can still be read from (using the column family handle)
      * Added a new call CloseColumnFamily(). Client has to close all column families that he has opened before deleting the DB
      * As soon as column family is closed, any calls to DB using that column family handle will fail (also any outstanding calls)
      
      Internally:
      * Ref-counting ColumnFamilyData
      * New thread-safety for ColumnFamilySet
      * Dropped column families are now completely dropped and their memory cleaned-up
      
      Test Plan: added some tests to column_family_test
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16101
      b06840aa
  2. 08 2月, 2014 8 次提交
    • I
      [CF] OpenWithColumnFamilies -> Open · 8d4db63a
      Igor Canadi 提交于
      Summary: By discussion with @dhruba, overloading Open makes more sense
      
      Test Plan: compiles!
      
      Reviewers: dhruba
      
      CC: leveldb, dhruba
      
      Differential Revision: https://reviews.facebook.net/D16017
      8d4db63a
    • I
      Merge branch 'master' into columnfamilies · 9ff9abeb
      Igor Canadi 提交于
      9ff9abeb
    • I
      [CF] Separate dumping of DBOptions and ColumnFamilyOptions · 99e61fdd
      Igor Canadi 提交于
      Summary: When we open a DB, we should dump only DBOptions and then when we create a new column family, we dump ColumnFamilyOptions for each one.
      
      Test Plan: make check, confirm contents of the LOG
      
      Reviewers: dhruba, haobo, sdong, kailiu
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D16011
      99e61fdd
    • I
      Merge pull request #77 from alberts/docfixes · 4159a284
      Igor Canadi 提交于
      doc: table_stats_collectors -> table_properties_collectors.
      4159a284
    • A
      d19d981d
    • I
      Merge branch 'master' into columnfamilies · 2b8c4463
      Igor Canadi 提交于
      2b8c4463
    • 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 9 次提交
  4. 06 2月, 2014 8 次提交
    • K
      Merge branch 'master' into performance · 84f8185f
      kailiu 提交于
      Conflicts:
      	HISTORY.md
      	db/db_impl.cc
      	db/memtable.cc
      84f8185f
    • I
      Fixed a bug introduced by previous commit · b4f441f4
      Igor Canadi 提交于
      b4f441f4
    • I
      [CF] Options -> DBOptions · f276e0e5
      Igor Canadi 提交于
      Summary: Replaced most of occurrences of Options with more specific DBOptions. This brings us very close to supporting different configuration options for each column family.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15933
      f276e0e5
    • L
      Fix build in case zlib not found · aa6fbbfa
      lisyarus 提交于
      aa6fbbfa
    • I
      [CF] Add full_options_ to ColumnFamilyData · 6e56ab57
      Igor Canadi 提交于
      Summary:
      Lots of code expects Options on construction/function call. My original idea was to split Options argument into ColumnFamilyOptions and DBOptions (the latter only if needed). However, this will require huge code changes very deep in the stack.
      
      The better idea is to have ColumnFamilyData hold both ColumnFamilyOptions and Options. ColumnFamilyData::Options would be constructed from DBOptions (same for each column family) and ColumnFamilyOptions (different for each column family)
      
      Now when we construct a class or call any method that requires Options, we can just push him ColumnFamilyData::Options and be sure that it's using column-family-specific settings.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15927
      6e56ab57
    • I
      Merge branch 'master' into columnfamilies · 328ac7ee
      Igor Canadi 提交于
      328ac7ee
    • I
      [CF] Rethink table cache · c24d8c4e
      Igor Canadi 提交于
      Summary:
      Adapting table cache to column families is interesting. We want table cache to be global LRU, so if some column families are use not as often as others, we want them to be evicted from cache. However, current TableCache object also constructs tables on its own. If table is not found in the cache, TableCache automatically creates new table. We want each column family to be able to specify different table factory.
      
      To solve the problem, we still have a single LRU, but we provide the LRUCache object to TableCache on construction. We have one TableCache per column family, but the underyling cache is shared by all TableCache objects.
      
      This allows us to have a global LRU, but still be able to support different table factories for different column families. Also, in the future it will also be able to support different directories for different column families.
      
      Test Plan: make check
      
      Reviewers: dhruba, haobo, kailiu, sdong
      
      CC: leveldb
      
      Differential Revision: https://reviews.facebook.net/D15915
      c24d8c4e
    • I
      Merge pull request #71 from alberts/crc32 · 183ba01a
      Igor Canadi 提交于
      crc32c: choose function in static initialization
      183ba01a
  5. 05 2月, 2014 3 次提交
  6. 04 2月, 2014 9 次提交
  7. 03 2月, 2014 2 次提交