X-Status flag, reconstruct and a suggestion

Rob Siemborski rjs3 at andrew.cmu.edu
Sat Oct 4 12:12:41 EDT 2003


On Sat, 4 Oct 2003, Diego Rivera wrote:

> How about adding a second text file a-la "34.status" which ONLY contains
> the X-Status flag?  If the file exists, reconstruct could leverage it...
>
> My line of thinking is this: if a catastrophe prevents me from using the
> DBs, or the DBs are partially corrupted for a group of users who also
> happen to have a lot of e-mail, the X-Status information lets me restore
> the entirety of the mailbox status info as it was before the failure,
> rather than have all the statuses reset due to the failure.

What's to prevent the same catastrophe that destroyed your databases from
having destroyed the "spare" status information?

> Note that I'm thinking of ALWAYS replacing the contents of the status
> file, rather than trying to edit it.  Also, in case the file is lost for
> a particular message it's no big deal that THAT particular message's
> status gets reset, but it helps in keeping the bulk of the mailbox's
> statuses available for a good recovery - which would be the goal.

This is still a significant perforamce hit.

Think what happens if you issue

STORE 1:1000 (FLAGS (\Deleted))

That's atleast 1000 each of open() write() fsync() and close() calls.
That's a significant increase from just modifying a single file (even if
it does mean modifying it in 1000 places).

I just can't see the benefit given that if the database is corrupted
(which is rare -- as opposed to flag changes which are *frequent*), the
rest of your data is suddenly suspect anyway.

Additionally, one of the reasons \Seen state is currently per-user instead
of stored with the mailbox is because in shared mailbox situations it had
become a bottleneck. I wouldn't want to see us return to that situation.

-Rob

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Rob Siemborski * Andrew Systems Group * Cyert Hall 207 * 412-268-7456
Research Systems Programmer * /usr/contributed Gatekeeper





More information about the Info-cyrus mailing list