What does this error mean?
This error means that either a cache file or a CRC for the cache file failed to rename from the temp (.tmp) version to the actual final (cache.db) version.
Why does this error occur?
Every so often, Cassandra will save the in-memory caches (key/row/counter) to disk for durability in the event of a node failure. This ensures that the cache is not completely "cold" at startup. During this flush to disk, the caches are written to temporary files in the saved_caches_directory (i.e. KeyCache-f.db123.tmp), and then renamed to the final saved cache file (i.e. KeyCache-f.db). The Java renameTo() method is used to rename the file. renameTo() can fail due to a NullPointerException if the specified directory does not exist, or it can throw a SecurityException if a security manager exists and its SecurityManager.checkWrite(java.lang.String) method denies write access to either the old or new pathnames.
How do you fix this error?
If this error occurs, you can remove the temporary files that still exist in the saved_caches directory. Cassandra will periodically save the caches again. If the error continues to occur, check that the directory for the caches was not renamed/removed since the last start of Cassandra, and that Cassandra can write to the directory properly.