Closed Bug 495572 Opened 17 years ago Closed 16 years ago

gloda should explicitly handle compaction

Categories

(MailNews Core :: Database, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
Thunderbird 3.0rc1

People

(Reporter: asuth, Assigned: asuth)

Details

(Whiteboard: [no l10n impact][gloda key])

<bienvenu> asuth, what makes gloda work after compacting a local folder? <bienvenu> I get messages with gloda id's, but gloda won't fetch snippets, for example <bienvenu> and I assume it's because the msg key changed <asuth> yeah, gloda will need to re-index <asuth> I don't think I ever specifically dealt with that case <bienvenu> so it doesn't know it has to re-index? <asuth> I was hoping the events just worked out for us <asuth> that sounds likely <asuth> I realize there is the foldercompacted event <asuth> gloda should probably be listening to that <bienvenu> compact is unfortunately maintaining the gloda-id when compacting... <bienvenu> but it would be so nice if gloda could just realize the keys had changed <asuth> yeah, we should listen to compaction, mark the folder as compacted-dirty, then do a specialized pass through where we just fix up the message keys <asuth> I think that is probably as efficient as we can be? <bienvenu> asuth, yes, that's as efficient as you could be, if you hang onto msg keys <asuth> gloda used to have fallback logic that might have hidden things... <asuth> if it went to grab a message but couldn't find it by the message key, it would do a last stab using the message id <bienvenu> one thing to note is that compact might result in the first 100 keys not changing, but next 50 definitely changing <bienvenu> asuth, yes, that would fix it as well
Flags: blocking-thunderbird3?
Whiteboard: [gloda key]
Target Milestone: --- → Thunderbird 3.0b4
Flags: blocking-thunderbird3? → blocking-thunderbird3+
Whiteboard: [gloda key] → [gloda key][no l10n impact]
Target Milestone: Thunderbird 3.0b4 → Thunderbird 3.0rc1
asuth to at the very least attach his WIP patch
Assignee: nobody → bugmail
Whiteboard: [gloda key][no l10n impact] → [no l10n impact][gloda key]
Very close to having this working and tested. I have added a nsIMsgFolderListener.itemEvent notification for the start and end of compaction. Combined with the ability to cleanly kill indexing jobs, I believe this covers the semantic edge cases related to compaction.
Status: NEW → ASSIGNED
Whiteboard: [no l10n impact][gloda key] → [no l10n impact][gloda key][will be fixed by gloda correctness patch]
Compaction unit test test_index_compaction.js passes. Another victory for unit tests!
Whiteboard: [no l10n impact][gloda key][will be fixed by gloda correctness patch] → [no l10n impact][gloda key][fixed in correctness patch]
Fixed in gloda correctness patch tracked on bug 465618. trunk commit: http://hg.mozilla.org/comm-central/rev/413b2018349c
Status: ASSIGNED → RESOLVED
Closed: 16 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Whiteboard: [no l10n impact][gloda key][fixed in correctness patch] → [no l10n impact][gloda key]
You need to log in before you can comment on or make changes to this bug.