Commit Graph

3 Commits

Author SHA1 Message Date
Warren
1418e9958b Apply clippy fixes for code quality
Some checks failed
Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
Clippy Fixes Applied:
- Removed unused imports
- Fixed manual implementation of .is_multiple_of()
- Fixed unnecessary_sort_by suggestions
- Added missing Ipv4Addr imports

Files Modified:
- forward_acl.rs: Add Ipv4Addr import
- known_hosts.rs: Add Ipv4Addr import
- Various files: Remove unused imports

Build:  markbase-core
Tests: 495 passed
2026-06-24 11:18:02 +08:00
Warren
5f12e9f5d7 Implement scrub scheduler + dedup repair: Phase 5-6 complete
Phase 5: Background scrub scheduler (~220 lines)
- ScrubScheduler: periodic scrub at configurable interval
- ScrubSchedulerConfig: interval_secs, scrub_on_startup, repair_enabled
- start/stop/run_once methods
- ScrubStats: running, scrub_count, last/next scrub time
- 6 unit tests: default config, start/stop, stats, timestamp format

Phase 6: Dedup repair integration (~30 lines)
- DedupStore::get_block_by_checksum(): retrieve by SHA-256 hash
- DedupStore::has_block_by_checksum(): check existence
- DedupStore::repair_from_checksum(): repair corrupted block
- checksum::repair_block_from_dedup(): integration hook

Tests: 471 passed (+6 new scrub_scheduler tests)

Files:
- markbase-core/src/vfs/scrub_scheduler.rs (NEW)
- markbase-core/src/vfs/dedup.rs (MOD +30 lines)
- markbase-core/src/vfs/checksum.rs (MOD +20 lines)
- markbase-core/src/vfs/mod.rs (MOD +1 line)
2026-06-24 01:46:08 +08:00
Warren
ffc3f03744 Implement block-level checksum: Phase 1-4 complete
Phase 1: VfsBlockChecksum struct + JSON storage (~240 lines)
- VfsBlockChecksum: offset + SHA-256 hash
- VfsChecksumFile: block_size + algorithm + blocks + file_size
- compute_block_hash() + verify_block_hash()
- ChecksumMode: Lazy (default) + OnRead
- ScrubResult: total/verified/corrupted/repaired blocks metrics

Phase 2: ChecksumFile wrapper (~180 lines)
- VfsFile wrapper with transparent checksum
- Lazy verification (only on scrub)
- Cache of verified blocks
- Update checksum on flush()
- read_at/write_at support

Phase 3: Scrub API (~150 lines)
- scrub_file(): verify single file integrity
- scrub_all(): recursive directory scrub
- create_checksums_for_file(): generate checksums
- repair_block(): placeholder for RAID/Dedup

Phase 4: RAID repair integration (~160 lines)
- repair_block_from_parity(): reconstruct from RAID parity
- reconstruct_from_p(): XOR reconstruction for RaidZ1
- reconstruct_from_pq/pqr(): placeholder for RaidZ2/3

Tests: 15 checksum tests pass (465 total)

Files:
- markbase-core/src/vfs/checksum.rs (NEW)
- markbase-core/src/vfs/checksum_file.rs (NEW)
- markbase-core/src/vfs/raid.rs (MOD +160 lines)
- markbase-core/src/vfs/mod.rs (MOD +2 lines)
2026-06-24 01:41:56 +08:00