There is no chance a zero size SST file in a checkpoint. Whatever SST file written to the manifest file should have contents.
It is possible that there are .log file and no sst file. In this case, the log file is not yet flushed to be an SST file.
I’m not 100% sure but from the source code, it seems that it is possible to have 0 size .log file in the checkpoints. My teammate, Peter (CCed), knows best.
Regarding the error itself, does file /local_disk0/tmp/spark-fd4fcecf-6190-44ba-83bf-c6442b279775/395955.sst exist in your directory? The error means that RocksDB expects the file exist there, but it doesn’t. You should be able to build ldb tool and use “ldb dump_manifest” command to print out contents of the MANIFEST-xxxx file and see what files are expected. (you may need to add -hex if keys are not printable and perhaps –verbose to each historic updates).
It might be a little bit hard to figure out what happens to the rocksdb::ThreadLocalPtr::Swap() segfault. But either way, any crash isn’t expected to cause DB corruption like what you’ve seen.
From: roc...@googlegroups.com <roc...@googlegroups.com>
On Behalf Of Burak Yavuz
Sent: Monday, August 1, 2022 1:29 PM
To: rocksdb <roc...@googlegroups.com>
Subject: RocksDB checkpoint created zero-byte WAL file
Hi all, We use RocksDB's Java interface. We periodically create a checkpoint of RocksDB and persist the WAL and SST files to cloud storage incrementally. In one of our data pipelines, we noticed that one of our periodic checkpoints resulted
ZjQcmQRYFpfptBannerStart
|
ZjQcmQRYFpfptBannerEnd
--
You received this message because you are subscribed to the Google Groups "rocksdb" group.
To unsubscribe from this group and stop receiving emails from it, send an email to
rocksdb+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rocksdb/f819a497-1da6-4b52-9079-cacf3f14739dn%40googlegroups.com.