Design scale-aware scanner persistence and database strategy #4
Labels
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
david/library-manager#4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Design the M2 persistence model around large existing libraries. Initial scans of 10,000+ files are expected and should shape database and indexing decisions.
Scope
Acceptance
M2 persistence planning progress:
Verification passed:
Latest synthetic scan result: 10,000 files, 10,000 candidates, 10,000 evidence records, 10,000 dry-run import actions. Database write/read validation remains the next decision point before locking in SQLite.
Migrated the scanner foundation from JavaScript to Go for the M2 scale/database direction.
Verification now includes:
make test->go test ./...passed.make check-large-scanprocessed 10,000 synthetic files in 112 ms and produced 10,000 candidates/evidence records/dry-run actions.Next step for #4 is SQLite write/read validation from Go and then persisted scan runs.
Added the first SQLite persistence validation checkpoint for scanner reports.
Local verification:
make testpassed.make check-large-scanprocessed 10,000 synthetic files in 135 ms.make check-persistencescanned 10,000 synthetic files in 116 ms and persisted the report in 1021 ms.Persisted counts:
Next M2 validation should cover re-scans, missing/moved file state, and indexed read/query behavior before SQLite is fully locked in.
M2 persistence checkpoint completed.
Implemented:
Verification:
make testpassed.make check-large-scan: 30,000 files in 404 ms.make check-persistence: scan 409 ms, persist 3209 ms, 30,000 rows across scan files/candidates/evidence/import actions.SQLite is accepted for the first app scaffold, with the option to revisit after real-library testing.