You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Yanqin Jin
9b53f14a35
Fixed a bug in CompactionIterator when write-preared transaction is used ( #9060 )
...
Summary:
Pull Request resolved: https://github.com/facebook/rocksdb/pull/9060
RocksDB bottommost level compaction may zero out an internal key's sequence if
the key's sequence is in the earliest_snapshot.
In write-prepared transaction, checking the visibility of a certain sequence in
a specific released snapshot may return a "snapshot released" result.
Therefore, it is possible, after a certain sequence of events, a PUT has its
sequence zeroed out, but a subsequent SingleDelete of the same key will still
be output with its original sequence. This violates the ascending order of
keys and leads to incorrect result.
The solution is to use an extra variable `last_key_seq_zeroed_` to track the
information about visibility in earliest snapshot. With this variable, we can
know for sure that a SingleDelete is in the earliest snapshot even if the said
snapshot is released during compaction before processing the SD.
Reviewed By: ltamasi
Differential Revision: D31813016
fbshipit-source-id: d8cff59d6f34e0bdf282614034aaea99be9174e1
3 years ago
..
backupable
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
blob_db
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
cassandra
Fix and detect headers with missing dependencies ( #8893 )
3 years ago
checkpoint
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
compaction_filters
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
convenience
Add a SystemClock class to capture the time functions of an Env ( #7858 )
4 years ago
leveldb_options
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
memory
Make types of Immutable/Mutable Options fields match that of the underlying Option ( #8176 )
4 years ago
merge_operators
Replace most typedef with using= ( #8751 )
3 years ago
option_change_migration
Fix a minor issue with initializing the test path ( #8555 )
3 years ago
options
Allow WAL dir to change with db dir ( #8582 )
3 years ago
persistent_cache
Improve support for using regexes ( #8740 )
3 years ago
simulator_cache
Make TraceRecord and Replayer public ( #8611 )
3 years ago
table_properties_collectors
Make WalFilter, SstPartitionerFactory, FileChecksumGenFactory, and TableProperties Customizable ( #8638 )
3 years ago
trace
Fix and detect headers with missing dependencies ( #8893 )
3 years ago
transactions
Fixed a bug in CompactionIterator when write-preared transaction is used ( #9060 )
3 years ago
ttl
Cleanup includes in dbformat.h ( #8930 )
3 years ago
write_batch_with_index
Some code cleanup ( #9003 )
3 years ago
cache_dump_load.cc
Introduce a mechanism to dump out blocks from block cache and re-insert to secondary cache ( #8912 )
3 years ago
cache_dump_load_impl.cc
Introduce a mechanism to dump out blocks from block cache and re-insert to secondary cache ( #8912 )
3 years ago
cache_dump_load_impl.h
Initialize cache dumper `DumpUnit` in constructor ( #9014 )
3 years ago
compaction_filters.cc
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
debug.cc
In ParseInternalKey(), include corrupt key info in Status ( #7515 )
4 years ago
env_librados.cc
Fix EnvLibrados and add to CI ( #9088 )
3 years ago
env_librados.md
Update branch name to main in env_librados.md ( #8738 )
3 years ago
env_librados_test.cc
Fix EnvLibrados and add to CI ( #9088 )
3 years ago
env_mirror.cc
Add new Append API with DataVerificationInfo to Env WritableFile ( #8071 )
4 years ago
env_mirror_test.cc
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
env_timed.cc
Make FileSystem a Customizable Class ( #8649 )
3 years ago
env_timed.h
Make FileSystem a Customizable Class ( #8649 )
3 years ago
env_timed_test.cc
Make env*_test work with ASSERT_STATUS_CHECKED ( #7176 )
4 years ago
fault_injection_env.cc
Protect existing files in `FaultInjectionTest{Env,FS}::ReopenWritableFile()` ( #8995 )
3 years ago
fault_injection_env.h
Protect existing files in `FaultInjectionTest{Env,FS}::ReopenWritableFile()` ( #8995 )
3 years ago
fault_injection_fs.cc
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
fault_injection_fs.h
Skip directory fsync for filesystem btrfs ( #8903 )
3 years ago
merge_operators.cc
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
merge_operators.h
Make MergeOperator+CompactionFilter/Factory into Customizable Classes ( #8481 )
3 years ago
object_registry.cc
Add support to the ObjectRegistry for ManagedObjects ( #8658 )
3 years ago
object_registry_test.cc
Add support to the ObjectRegistry for ManagedObjects ( #8658 )
3 years ago
util_merge_operators_test.cc
Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE ( #6433 )
5 years ago
wal_filter.cc
Make WalFilter, SstPartitionerFactory, FileChecksumGenFactory, and TableProperties Customizable ( #8638 )
3 years ago