MESSAGE quota resource implemention
Rob Mueller
robm at fastmail.fm
Thu Sep 1 19:37:24 EDT 2011
> Actually, really I'd like to create a new UNIQUEID - and store
> all the files in paths based on uniqueid rather than on folder
> name. This would not only mean renames could be fast and
> atomic, but that delayed delete would be fast. The downside is
> a more opaque filesystem layout. Oh, another upside - file path
> limitations don't exist so much any more.
While UNIQUEID is nice, the opaqueness is annoying. Personally, I liked the
idea that we talked about a while back which I think was:
$spooldir/a/user/aardvark/user.aardvark/
$spooldir/a/user/aardvark/user.aardvark.drafts/
$spooldir/a/user/aardvark/user.aardvark.trash/
$spooldir/a/user/aardvark/user.aardvark.foo/
$spooldir/a/user/aardvark/user.aardvark.foo.bar/
$spooldir/a/user/aardvark/user.aardvark.abc.xyz/
So you end up with every folder for a user in one dir. This solves the
current messy handling of sub-dirs (eg currently you have to create the
intermediate dir /abc/ even though there's no entry in mailboxes.db for it),
and makes renaming any folder very cheap still (because you can do it with a
single dir rename, rather than having to move each message file), but you
don't go completely opaque.
Delete handling is still easier, just rename to DELETED.$oldname.$UNIQUEID
or something like that, because it's cheap to rename anyway.
Of course it means re-organising folder layout for every installation out
there, but maybe we need to bump major versions anyway, cyrus 3.0 here we
come :)
Rob
More information about the Cyrus-devel
mailing list