Skip to content
  • Igor Canadi's avatar
    [CF] Rethinking ColumnFamilyHandle and fix to dropping column families · b06840aa
    Igor Canadi authored
    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