{"id":"compaction-lacks-crash-safety-across-implementations","text":"No storage engine implementation uses the write-temp/fsync/rename pattern for file creation, and both Bitcask implementations delete old segments before renaming replacements, creating crash windows where data exists in neither old nor new files.","truth_value":"OUT","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["no-atomic-file-creation","delete-before-rename-ordering","lsm-compact-no-atomic-rename"],"outlist":[],"label":"Three observations across Bitcask and LSM establish that non-atomic file operations are a codebase-wide pattern, not implementation-specific"}],"dependents":["post-crash-compaction-produces-irrecoverable-corruption","storage-crash-recovery-has-no-safe-path"],"metadata":{"last_reviewed":"2026-05-30T09:01:17","review_result":"unnecessary"},"created_at":"","updated_at":"","reviewed_at":"","verified_at":"","retracted_at":"","explanation":{"steps":[{"node":"compaction-lacks-crash-safety-across-implementations","truth_value":"OUT","reason":"SL justification invalid","failed_antecedents":["delete-before-rename-ordering"],"label":"Three observations across Bitcask and LSM establish that non-atomic file operations are a codebase-wide pattern, not implementation-specific"}]}}