Opened 9 years ago
Last modified 22 months ago
#708 new defect
Implement database fixing for glass
Reported by: | Olly Betts | Owned by: | Olly Betts |
---|---|---|---|
Priority: | normal | Milestone: | 2.0.0 |
Component: | Backend-Glass | Version: | git master |
Severity: | normal | Keywords: | |
Cc: | Blocked By: | ||
Blocking: | Operating System: | All |
Description (last modified by )
For chert, we have the DBCHECK_FIX
mode for database checking (which you can activate from xapian-check
by passing F
in the flags) which will attempt to fix some problems:
- Regenerate
iamchert
if not valid - Regenerate
.baseA
/.baseB
files from.DB
files
While glass should be less susceptible to small, frequently-replaced files getting truncated or otherwise corrupted (because it no longer has the .baseA
or .baseB
files) we ought to have the equivalent support for glass - that's probably means regenerating iamglass
if not valid.
The complex part of this is fixing up the freelists, which are now stored in unused blocks in the database. That requires writing to the table file, which is potentially unwise if there's been damage, as it could make things worse. The simplest approach would be to set up empty freelists (which would potentially mean lost space that couldn't be reclaimed in normal use). Then you'd have a database which could read and compacted.
If we implement regenerating missing freelists, that could easily be triggered if the freelists don't match the blocks in use.
Change History (3)
comment:1 by , 9 years ago
Summary: | Implemnt database fixing for glass → Implement database fixing for glass |
---|
comment:2 by , 5 years ago
Description: | modified (diff) |
---|
comment:3 by , 22 months ago
Milestone: | 1.4.x → 2.0.0 |
---|