rocksdb/utilities/persistent_cache
Karthikeyan Radhakrishnan 3068870cce Making persistent cache more resilient to filesystem failures
Summary:
The persistent cache is designed to hop over errors and return key not found. So far, it has shown resilience to write errors, encoding errors, data corruption etc. It is not resilient against disappearing files/directories. This was exposed during testing when multiple instances of persistence cache was started sharing the same directory simulating an unpredictable filesystem environment.

This patch

- makes the write code path more resilient to errors while creating files
- makes the read code path more resilient to handle situation where files are not found
- added a test that does negative write/read testing by removing the directory while writes are in progress
Closes https://github.com/facebook/rocksdb/pull/1472

Differential Revision: D4143413

Pulled By: kradhakrishnan

fbshipit-source-id: fd25e9b
2016-11-22 10:39:10 -08:00
..
block_cache_tier_file_buffer.h Persistent Read Cache (part 6) Block Cache Tier Implementation 2016-08-01 14:15:14 -07:00
block_cache_tier_file.cc Making persistent cache more resilient to filesystem failures 2016-11-22 10:39:10 -08:00
block_cache_tier_file.h Fix Windows build issues (#1253) 2016-08-02 17:15:18 -07:00
block_cache_tier_metadata.cc Persistent Read Cache (part 6) Block Cache Tier Implementation 2016-08-01 14:15:14 -07:00
block_cache_tier_metadata.h Persistent Read Cache (part 6) Block Cache Tier Implementation 2016-08-01 14:15:14 -07:00
block_cache_tier.cc Making persistent cache more resilient to filesystem failures 2016-11-22 10:39:10 -08:00
block_cache_tier.h Making persistent cache more resilient to filesystem failures 2016-11-22 10:39:10 -08:00
hash_table_bench.cc Minor fix to GFLAGS usage in persistent cache 2016-11-08 13:09:20 -08:00
hash_table_evictable.h Fix tsan error 2016-06-13 12:59:38 -07:00
hash_table_test.cc Add persistent cache to Windows build system 2016-06-02 17:48:25 -07:00
hash_table.h fix simple typos (#1183) 2016-06-25 08:29:40 +01:00
lrulist.h fix simple typos (#1183) 2016-06-25 08:29:40 +01:00
persistent_cache_bench.cc Minor fix to GFLAGS usage in persistent cache 2016-11-08 13:09:20 -08:00
persistent_cache_test.cc Making persistent cache more resilient to filesystem failures 2016-11-22 10:39:10 -08:00
persistent_cache_test.h Making persistent cache more resilient to filesystem failures 2016-11-22 10:39:10 -08:00
persistent_cache_tier.cc Persistent Cache: Expose stats to user via public API 2016-11-21 17:39:13 -08:00
persistent_cache_tier.h Persistent Cache: Expose stats to user via public API 2016-11-21 17:39:13 -08:00
persistent_cache_util.h Persistent Read Cache (6) Persistent cache tier implentation - File layout 2016-07-19 12:01:46 -07:00
volatile_tier_impl.cc Persistent Cache: Expose stats to user via public API 2016-11-21 17:39:13 -08:00
volatile_tier_impl.h Persistent Cache: Expose stats to user via public API 2016-11-21 17:39:13 -08:00