rocksdb/utilities
Andrew Kryczka b00761eea6 Fix block cache ID uniqueness for Windows builds (#5844)
Summary:
Since we do not evict a file's blocks from block cache before that file
is deleted, we require a file's cache ID prefix is both unique and
non-reusable. However, the Windows functionality we were relying on only
guaranteed uniqueness. That meant a newly created file could be assigned
the same cache ID prefix as a deleted file. If the newly created file
had block offsets matching the deleted file, full cache keys could be
exactly the same, resulting in obsolete data blocks returned from cache
when trying to read from the new file.

We noticed this when running on FAT32 where compaction was writing out
of order keys due to reading obsolete blocks from its input files. The
functionality is documented as behaving the same on NTFS, although I
wasn't able to repro it there.
Pull Request resolved: https://github.com/facebook/rocksdb/pull/5844

Test Plan:
we had a reliable repro of out-of-order keys on FAT32 that
was fixed by this change

Differential Revision: D17752442

fbshipit-source-id: 95d983f9196cf415f269e19293b97341edbf7e00
2019-10-11 18:19:31 -07:00
..
backupable Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
blob_db Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
cassandra Organizing rocksdb/db directory 2019-05-31 11:57:01 -07:00
checkpoint Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
compaction_filters Comment out unused variables 2018-03-05 13:13:41 -08:00
convenience Auto roll logger to enforce options.keep_log_file_num immediately after a new file is created (#5370) 2019-05-31 10:50:19 -07:00
leveldb_options Change RocksDB License 2017-07-15 16:11:23 -07:00
memory Make clang-analyzer happy (#5821) 2019-09-18 15:25:48 -07:00
merge_operators Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
option_change_migration Avoid double-compacting data in bottom level in manual compactions (#5138) 2019-04-16 23:32:20 -07:00
options simplify include directive involving inttypes (#5402) 2019-06-06 13:56:07 -07:00
persistent_cache Fix block cache ID uniqueness for Windows builds (#5844) 2019-10-11 18:19:31 -07:00
simulator_cache Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
table_properties_collectors Reduce the number of random iterations in compact_on_deletion_collector_test (#5635) 2019-07-26 15:53:34 -07:00
trace Divide file_reader_writer.h and .cc (#5803) 2019-09-16 10:33:51 -07:00
transactions save a few redundant container lookups (#5875) 2019-10-07 12:28:09 -07:00
ttl Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
write_batch_with_index Apply formatter to recent 200+ commits. (#5830) 2019-09-20 12:04:26 -07:00
debug.cc Support GetAllKeyVersions() for non-default cf (#5544) 2019-07-07 22:43:52 -07:00
env_librados_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
env_librados.cc Optionally wait on bytes_per_sync to smooth I/O (#5183) 2019-04-22 11:51:39 -07:00
env_librados.md Add EnvLibrados - RocksDB Env of RADOS (#1222) 2016-07-21 11:16:34 -07:00
env_mirror_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
env_mirror.cc Optionally wait on bytes_per_sync to smooth I/O (#5183) 2019-04-22 11:51:39 -07:00
env_timed_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00
env_timed.cc Apply modernize-use-override (2nd iteration) 2019-02-14 14:41:36 -08:00
merge_operators.h New API to get all merge operands for a Key (#5604) 2019-08-06 14:26:44 -07:00
object_registry_test.cc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293) 2019-07-23 17:13:05 -07:00
object_registry.cc The ObjectRegistry class replaces the Registrar and NewCustomObjects.… (#5293) 2019-07-23 17:13:05 -07:00
util_merge_operators_test.cc Move test related files under util/ to test_util/ (#5377) 2019-05-30 11:25:51 -07:00