fix(rustdb-storage): run collection compaction during file storage initialization after crashes

This commit is contained in:
2026-04-05 09:54:56 +00:00
parent 92f07ef3d7
commit 24c504518d
3 changed files with 14 additions and 1 deletions

View File

@@ -1,5 +1,11 @@
# Changelog # Changelog
## 2026-04-05 - 2.5.9 - fix(rustdb-storage)
run collection compaction during file storage initialization after crashes
- Triggers compaction for all loaded collections before starting the periodic background compaction task.
- Helps clean up dead weight left from before a crash during startup.
## 2026-04-05 - 2.5.8 - fix(rustdb-storage) ## 2026-04-05 - 2.5.8 - fix(rustdb-storage)
detect stale hint files using data file size metadata and add restart persistence regression tests detect stale hint files using data file size metadata and add restart persistence regression tests

View File

@@ -504,6 +504,13 @@ impl StorageAdapter for FileStorageAdapter {
"FileStorageAdapter initialization complete" "FileStorageAdapter initialization complete"
); );
// Run compaction on all collections that need it (dead weight from before crash)
for entry in self.collections.iter() {
let state = entry.value();
let _guard = state.write_lock.lock().unwrap();
state.try_compact();
}
// Start periodic compaction task (runs every 24 hours) // Start periodic compaction task (runs every 24 hours)
{ {
let collections = self.collections.clone(); let collections = self.collections.clone();

View File

@@ -3,6 +3,6 @@
*/ */
export const commitinfo = { export const commitinfo = {
name: '@push.rocks/smartdb', name: '@push.rocks/smartdb',
version: '2.5.8', version: '2.5.9',
description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.' description: 'A MongoDB-compatible embedded database server with wire protocol support, backed by a high-performance Rust engine.'
} }