rocksdb/table
anand76 ee258619be Fix missing cases of corruption retries (#13122)
Summary:
This PR fixes a few cases where RocksDB was not retrying checksum failure/corruption of file reads with the `verify_and_reconstruct_read` IO option. After fixing these cases, we can almost always successfully open the DB and execute reads even if we see transient corruptions, provided the `FileSystem` supports the `verify_and_reconstruct_read` option. The specific cases fixed in this PR are -
1. CURRENT file
2. IDENTITY file
3. OPTIONS file
4. SST footer

Pull Request resolved: https://github.com/facebook/rocksdb/pull/13122

Test Plan: Unit test in `db_io_failure_test.cc` that injects corruption at various stages of DB open and reads

Reviewed By: jaykorean

Differential Revision: D65617982

Pulled By: anand1976

fbshipit-source-id: 4324b88cc7eee5501ab5df20ef7a95bb12ed3ea7
2024-11-08 12:43:21 -08:00
..
adaptive
block_based
cuckoo
plain
block_fetcher.cc
block_fetcher.h
block_fetcher_test.cc
cleanable_test.cc
compaction_merging_iterator.cc
compaction_merging_iterator.h
format.cc
format.h
get_context.cc
get_context.h
internal_iterator.h
iter_heap.h
iterator.cc
iterator_wrapper.h
merger_test.cc
merging_iterator.cc
merging_iterator.h
meta_blocks.cc
meta_blocks.h
mock_table.cc
mock_table.h
multiget_context.h
persistent_cache_helper.cc
persistent_cache_helper.h
persistent_cache_options.h
sst_file_dumper.cc
sst_file_dumper.h
sst_file_reader.cc
sst_file_reader_test.cc
sst_file_writer.cc
sst_file_writer_collectors.h
table_builder.h
table_factory.cc
table_iterator.h
table_properties.cc
table_properties_internal.h
table_reader.h
table_reader_bench.cc
table_test.cc
two_level_iterator.cc
two_level_iterator.h
unique_id.cc
unique_id_impl.h