rocksdb/utilities
Islam AbdelRahman ab01da5437 Support SST files with Global sequence numbers
Summary:
- Update SstFileWriter to include a property for a global sequence number in the SST file `rocksdb.external_sst_file.global_seqno`
- Update TableProperties to be aware of the offset of each property in the file
- Update BlockBasedTableReader and Block to be able to honor the sequence number in `rocksdb.external_sst_file.global_seqno` property and use it to overwrite all sequence number in the file

Something worth mentioning is that we don't update the seqno in the index block since and when doing a binary search, the reason for that is that it's guaranteed that SST files with global seqno will have only one user_key and each key will have seqno=0 encoded in it, This mean that this key is greater than any other key with seqno> 0. That mean that we can actually keep the current logic for these blocks

Test Plan: unit tests

Reviewers: andrewkr, yhchiang, yiwu, sdong

Reviewed By: sdong

Subscribers: hcz, andrewkr, dhruba

Differential Revision: https://reviews.facebook.net/D62523
2016-10-03 16:12:39 -07:00
..
backupable DB::GetOptions() reflect dynamic changed options 2016-09-14 22:10:28 -07:00
blob_db Support SST files with Global sequence numbers 2016-10-03 16:12:39 -07:00
checkpoint fix typo in comments (#1360) 2016-09-27 20:39:15 -07:00
compaction_filters Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
convenience Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
date_tiered Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
document Alpine Linux Build (#990) 2016-04-22 16:49:12 -07:00
flashcache Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
geodb Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
leveldb_options Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
memory Temporarily disable unstable tests in memory_test.cc 2016-02-09 16:28:34 -08:00
merge_operators Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
option_change_migration A utility function to help users migrate DB after options change 2016-08-05 15:39:55 -07:00
options Only cache level 0 indexes and filter when opening table reader 2016-07-20 11:23:31 -07:00
persistent_cache Add factory method for creating persistent cache that is accessible from public 2016-10-03 10:55:46 -07:00
redis Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
simulator_cache add stats to Cache::LookUp() 2016-09-01 13:50:39 -07:00
spatialdb fix wrong assignment of level0_stop_writes_trigger in spatialdb (#1061) 2016-04-07 09:02:28 -07:00
table_properties_collectors Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
transactions Expose transaction id, lock state information and transaction wait information 2016-09-30 11:41:21 -07:00
ttl Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
write_batch_with_index Add SeekForPrev() to Iterator 2016-09-27 18:20:57 -07:00
col_buf_decoder.cc Fix clang on macOS 2016-08-03 10:41:27 -07:00
col_buf_decoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
col_buf_encoder.cc Fix clang on macOS 2016-08-03 10:41:27 -07:00
col_buf_encoder.h Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_exp.cc Support ZSTD with finalized format 2016-09-06 12:22:16 -07:00
column_aware_encoding_test.cc Fix clang build failure and refactor unit test 2016-08-02 15:16:39 -07:00
column_aware_encoding_util.cc Fix Windows build issues (#1253) 2016-08-02 17:15:18 -07:00
column_aware_encoding_util.h Remove ImmutableCFOptions from public API 2016-09-02 14:16:31 -07:00
env_librados.cc Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_librados_test.cc Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror.cc Fix warning in release 2015-12-23 22:38:12 -08:00
env_mirror_test.cc env: add EnvMirror 2015-12-10 21:32:45 -05:00
env_registry.cc Env registry for URI-based Env selection [pluggable Env part 1] 2016-06-03 08:15:16 -07:00
env_registry_test.cc Env registry for URI-based Env selection [pluggable Env part 1] 2016-06-03 08:15:16 -07:00
merge_operators.h Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00
util_merge_operators_test.cc Introduce FullMergeV2 (eliminate memcpy from merge operators) 2016-07-20 09:49:03 -07:00