Find a file
Changyu Bi 854eb76a8c Improve error message when an SST file in MANIFEST is not found (#11573)
Summary:
I got the following error message when an SST file is recorded in MANIFEST but is missing from the db folder.
It's confusing in two ways:
1. The part about file "./074837.ldb" which RocksDB will attempt to open only after ./074837.sst is not found.
2. The last part about "No such file or directory in file ./MANIFEST-074507" sounds like `074837.ldb` is not found in manifest.

```
ldb --hex --db=. get some_key

Failed: Corruption: Corruption: IO error: No such file or directory: While open a file for random read: ./074837.ldb: No such file or directory in file ./MANIFEST-074507
```

Improving the error message a little bit:

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

Test Plan:
run the same command after this PR
```
Failed: Corruption: Corruption: IO error: No such file or directory: While open a file for random read: ./074837.sst: No such file or directory  The file ./MANIFEST-074507 may be corrupted.
```

Reviewed By: ajkr

Differential Revision: D47192056

Pulled By: cbi42

fbshipit-source-id: 06863f376cc4455803cffb2250c41399b4c39467
2023-07-10 15:52:38 -07:00
.circleci
.github/workflows Fix failed CI job "Check buck targets and code format" (#11532) 2023-06-13 14:20:11 -07:00
buckifier Fix duplicate symbols in linking with buck2 (#11421) 2023-05-01 10:45:36 -07:00
build_tools Repair/instate jemalloc build on M1 (#11257) 2023-05-22 11:06:41 -07:00
cache Update secondary_cache_adapter.cc (#11566) 2023-06-27 10:42:42 -07:00
cmake
coverage Remove platform009 and default to platform010 (#11333) 2023-03-30 09:56:37 -07:00
db Improve error message when an SST file in MANIFEST is not found (#11573) 2023-07-10 15:52:38 -07:00
db_stress_tool Initialize StressTest::optimistic_txn_db_ in ctor (#11547) 2023-06-19 15:41:30 -07:00
docs Fix typo in twitter link (#11529) 2023-06-12 15:26:13 -07:00
env remove duplicate comments in EncryptedEnv (#11549) 2023-06-27 11:55:37 -07:00
examples
file Fix extra prefetching when num_file_reads_for_auto_readahead is 1 in async_io (#11560) 2023-06-26 10:39:44 -07:00
fuzz Block per key-value checksum (#11287) 2023-04-25 12:08:23 -07:00
include/rocksdb Make rocksdb_options_add_compact_on_deletion_collector_factory backward compatible (#11593) 2023-07-07 13:16:20 -07:00
java Make option level_compaction_dynamic_level_bytes true by default (#11525) 2023-06-15 21:12:39 -07:00
logging
memory Change internal headers with duplicate names (#11408) 2023-05-17 11:27:09 -07:00
memtable remove redundant move (#11418) 2023-05-03 09:37:21 -07:00
microbench Small improvements to DBGet microbenchmark (#11498) 2023-06-02 16:39:14 -07:00
monitoring Add a ticker to track number of trash files deleted in background thread (#11540) 2023-06-16 10:05:25 -07:00
options Change internal headers with duplicate names (#11408) 2023-05-17 11:27:09 -07:00
plugin
port Add OpenBSD Support (#11255) 2023-06-27 11:58:29 -07:00
table sst_dump --command=verify should verify block checksums (#11576) 2023-07-05 14:12:06 -07:00
test_util Add support to strip / pad timestamp when writing / reading a block (#11472) 2023-05-25 15:41:32 -07:00
third-party fix optimization-disabled test builds with platform010 (#11361) 2023-04-10 13:59:44 -07:00
tools sst_dump --command=verify should verify block checksums (#11576) 2023-07-05 14:12:06 -07:00
trace_replay
unreleased_history Deprecate option periodic_compaction_seconds for FIFO compaction (#11550) 2023-07-05 14:40:45 -07:00
util fix: std::optional value() build error on older macOS SDK (#11574) 2023-07-10 14:21:34 -07:00
utilities Use FaultInjectionTestFS in transaction_test, clarify Close() APIs (#11499) 2023-06-21 23:38:54 -07:00
.clang-format
.gitignore Tweak on IsTrivialMove() (#11467) 2023-05-26 16:40:50 -07:00
.lgtm.yml
.watchmanconfig
AUTHORS
CMakeLists.txt Add utils to use for handling user defined timestamp size record in WAL (#11451) 2023-05-22 14:28:58 -07:00
CODE_OF_CONDUCT.md
common.mk
CONTRIBUTING.md
COPYING
crash_test.mk Stress/Crash Test for OptimisticTransactionDB (#11513) 2023-06-17 16:27:37 -07:00
DEFAULT_OPTIONS_HISTORY.md
DUMP_FORMAT.md
HISTORY.md Make rocksdb_options_add_compact_on_deletion_collector_factory backward compatible (#11593) 2023-07-07 13:16:20 -07:00
INSTALL.md Simplify detection of x86 CPU features (#11419) 2023-05-09 22:25:45 -07:00
issue_template.md
LANGUAGE-BINDINGS.md
LICENSE.Apache
LICENSE.leveldb
Makefile Add utils to use for handling user defined timestamp size record in WAL (#11451) 2023-05-22 14:28:58 -07:00
PLUGINS.md Added encryption plugin based on Intel open-source ipp-crypto library (#11429) 2023-05-08 12:13:43 -07:00
README.md Remove deprecated integration tests from README.md (#11354) 2023-04-07 16:52:50 -07:00
rocksdb.pc.in
src.mk Add utils to use for handling user defined timestamp size record in WAL (#11451) 2023-05-22 14:28:58 -07:00
TARGETS Add utils to use for handling user defined timestamp size record in WAL (#11451) 2023-05-22 14:28:58 -07:00
thirdparty.inc
USERS.md Add more users (#11369) 2023-05-03 10:47:41 -07:00
Vagrantfile
WINDOWS_PORT.md

RocksDB: A Persistent Key-Value Store for Flash and RAM Storage

CircleCI Status

RocksDB is developed and maintained by Facebook Database Engineering Team. It is built on earlier work on LevelDB by Sanjay Ghemawat (sanjay@google.com) and Jeff Dean (jeff@google.com)

This code is a library that forms the core building block for a fast key-value server, especially suited for storing data on flash drives. It has a Log-Structured-Merge-Database (LSM) design with flexible tradeoffs between Write-Amplification-Factor (WAF), Read-Amplification-Factor (RAF) and Space-Amplification-Factor (SAF). It has multi-threaded compactions, making it especially suitable for storing multiple terabytes of data in a single database.

Start with example usage here: https://github.com/facebook/rocksdb/tree/main/examples

See the github wiki for more explanation.

The public interface is in include/. Callers should not include or rely on the details of any other header files in this package. Those internal APIs may be changed without warning.

Questions and discussions are welcome on the RocksDB Developers Public Facebook group and email list on Google Groups.

License

RocksDB is dual-licensed under both the GPLv2 (found in the COPYING file in the root directory) and Apache 2.0 License (found in the LICENSE.Apache file in the root directory). You may select, at your option, one of the above-listed licenses.