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
## 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)
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"
);
// 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)
{
let collections = self.collections.clone();

View File

@@ -3,6 +3,6 @@
*/
export const commitinfo = {
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.'
}