Opened 10 years ago
Last modified 21 hours ago
#708 new defect
Implement database fixing for glass
| Reported by: | Olly Betts | Owned by: | Olly Betts |
|---|---|---|---|
| Priority: | normal | Milestone: | 3.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
iamchertif not valid - Regenerate
.baseA/.baseBfiles from.DBfiles
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 (4)
comment:1 by , 10 years ago
| Summary: | Implemnt database fixing for glass → Implement database fixing for glass |
|---|
comment:2 by , 6 years ago
| Description: | modified (diff) |
|---|
comment:3 by , 3 years ago
| Milestone: | 1.4.x → 2.0.0 |
|---|
comment:4 by , 21 hours ago
| Milestone: | 2.0.0 → 3.0.0 |
|---|

Milestone renamed