在某个阶段,在我的 LevelDB 文件夹中,我有以下文件:
000004.log 000005.ldb CURRENT LOCK LOG MANIFEST-000002
我不认为它们都是仅附加的?所以肯定不可能对数据库文件夹中的所有文件都运行“chattr +a *”,因为在运行 leveldb 时,有些文件会被删除。我的问题是哪些文件不会被删除,并且仅在正常的 LevelDB 会话期间和压缩期间追加,那些在删除之前删除的文件是否仅追加?
*.log: append-only while WAL, 文件名会改变
.ldb: static 一旦生成, 文件名会改变
MANIFEST- : static 一旦生成, 后缀会改变
LOG: append-only, 默认每天轮换
CURRENT: rewrite版本更改后
LOCK:仅在打开或关闭时更改
回答你的问题:
Q1:哪些文件不会被删除,并且只在正常的 LevelDB 会话期间追加?
A1:不,没有这样的文件(可能是 LOG,但它会旋转)
Q2:是那些在删除前被删除的文件只追加
A2:*.log 只在删除前追加