rocksdb/db
Igor Canadi 9ca638a86d Enable iterating column families with a concurrent writer
Summary:
Sometimes we iterate through column families, and unlock the mutex in the body of the iteration. While mutex is unlocked, some column family might be created or dropped. We need to be able to continue iterating through column families even though our current column family got dropped.

This diff implements circular linked lists that connect all column families. It then uses the link list to enable iterating through linked lists. Even if the column family is dropped, its next_ pointer still can be used to advance to another alive column family.

Test Plan: make check

Reviewers: dhruba, haobo

CC: leveldb

Differential Revision: https://reviews.facebook.net/D15603
2014-01-30 16:57:52 -08:00
..
builder.cc Don't always compress L0 files written by memtable flush 2014-01-07 21:50:26 -08:00
builder.h Don't always compress L0 files written by memtable flush 2014-01-07 21:50:26 -08:00
c_test.c Rename leveldb to rocksdb in C api 2013-12-10 10:48:35 +02:00
c.cc C API: add rocksdb_env_set_high_priority_background_threads 2013-12-31 15:14:18 -08:00
column_family_test.cc Fix column family test (create directory) 2014-01-29 14:06:59 -08:00
column_family.cc Enable iterating column families with a concurrent writer 2014-01-30 16:57:52 -08:00
column_family.h Enable iterating column families with a concurrent writer 2014-01-30 16:57:52 -08:00
compaction_picker.cc Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
compaction_picker.h Make VersionSet::ReduceNumberOfLevels() static 2014-01-24 14:57:04 -08:00
compaction.cc Unfriending classes 2014-01-22 10:55:16 -08:00
compaction.h Unfriending classes 2014-01-22 10:55:16 -08:00
corruption_test.cc Make "Table" pluggable 2013-10-28 17:54:09 -07:00
db_bench.cc Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
db_filesnapshot.cc Change ColumnFamilyData from struct to class 2014-01-29 15:18:36 -08:00
db_impl_readonly.cc Change ColumnFamilyData from struct to class 2014-01-29 15:18:36 -08:00
db_impl_readonly.h Merge branch 'master' into columnfamilies 2014-01-24 09:27:29 -08:00
db_impl.cc Enable iterating column families with a concurrent writer 2014-01-30 16:57:52 -08:00
db_impl.h MakeRoomForWrite() support for column families 2014-01-30 16:12:08 -08:00
db_iter.cc Add column family information to WAL 2014-01-08 12:53:33 -08:00
db_iter.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
db_stats_logger.cc Change ColumnFamilyData from struct to class 2014-01-29 15:18:36 -08:00
db_test.cc LogAndApply to take ColumnFamilyData 2014-01-27 13:57:58 -08:00
dbformat_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
dbformat.h Add column family information to WAL 2014-01-08 12:53:33 -08:00
deletefile_test.cc Start DeleteFileTest with clean plate 2013-11-15 16:30:23 -08:00
filename_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
filename.cc Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
filename.h Unify DeleteFile and DeleteWalFiles 2013-10-25 08:32:14 -07:00
internal_stats.cc Merge branch 'master' into columnfamilies 2014-01-30 11:47:23 -08:00
internal_stats.h Merge branch 'master' into columnfamilies 2014-01-30 11:47:23 -08:00
log_format.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_reader.cc Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_reader.h Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_test.cc Fix UnmarkEOF for partial blocks 2014-01-27 14:49:10 -08:00
log_writer.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
log_writer.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
memtable.cc [column families] Move memtable and immutable memtable list to column family data 2014-01-27 13:37:14 -08:00
memtable.h [column families] Move memtable and immutable memtable list to column family data 2014-01-27 13:37:14 -08:00
memtablelist.cc LogAndApply to take ColumnFamilyData 2014-01-27 13:57:58 -08:00
memtablelist.h LogAndApply to take ColumnFamilyData 2014-01-27 13:57:58 -08:00
merge_context.h Introduce MergeContext to Lazily Initialize merge operand list 2013-12-11 11:37:28 -08:00
merge_helper.cc Statistics code cleanup 2014-01-17 12:46:06 -08:00
merge_helper.h [RocksDB] Use raw pointer instead of shared pointer when passing Statistics object internally 2013-11-25 10:38:15 -08:00
merge_operator.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
merge_test.cc Use ASSERT_EQ() instead of assert() in merge_test 2014-01-11 09:25:47 -08:00
perf_context_test.cc Killing Transform Rep 2013-12-03 12:42:15 -08:00
prefix_filter_iterator.h Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
prefix_test.cc Killing Transform Rep 2013-12-03 12:42:15 -08:00
repair.cc VersionEdit not to take NumLevels() 2014-01-14 15:27:09 -08:00
simple_table_db_test.cc Statistics code cleanup 2014-01-17 12:46:06 -08:00
skiplist_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
skiplist.h Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
snapshot.h Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
table_cache.cc Hotfix the bug in table cache's GetSliceForFileNumber 2014-01-02 10:30:42 -08:00
table_cache.h Follow-up Cleaning-up After D13521 2013-10-30 10:52:33 -07:00
table_properties_collector_test.cc Move flush_block_policy from Options to TableFactory 2013-11-19 22:00:48 -08:00
table_properties_collector.cc Improve the readability of the TableProperties::ToString() 2013-11-21 17:54:23 -08:00
table_properties_collector.h Improve the "table stats" 2013-11-19 16:29:42 -08:00
tailing_iter.cc Moving Some includes from options.h to forward declaration 2014-01-24 17:16:22 -08:00
tailing_iter.h Tailing iterator 2014-01-23 16:26:08 -08:00
transaction_log_impl.cc Fix the string format issue 2013-11-12 21:05:39 -08:00
transaction_log_impl.h Making the transaction log iterator more robust 2013-11-04 20:49:03 -08:00
version_edit_test.cc Merge branch 'master' into columnfamilies 2014-01-21 17:01:52 -08:00
version_edit.cc Fix some lint warnings 2014-01-29 15:27:27 -08:00
version_edit.h Fix some lint warnings 2014-01-29 15:27:27 -08:00
version_set_test.cc Add appropriate LICENSE and Copyright message. 2013-10-16 17:48:41 -07:00
version_set.cc MakeRoomForWrite() support for column families 2014-01-30 16:12:08 -08:00
version_set.h MakeRoomForWrite() support for column families 2014-01-30 16:12:08 -08:00
write_batch_internal.h Read from and write to different column families 2014-01-29 11:38:16 -08:00
write_batch_test.cc [column families] Move memtable and immutable memtable list to column family data 2014-01-27 13:37:14 -08:00
write_batch.cc Fix some lint warnings 2014-01-29 15:27:27 -08:00