From: Smart Weblications GmbH <info@smart-weblications.de>
To: Kristofer <kristofer@cybernetik.net>
Cc: Sage Weil <sage@inktank.com>,
Mitsue Acosta Murakami <mitsue@webcenter.com.br>,
ceph-devel@vger.kernel.org
Subject: Re: rados mailbox? (was Re: Ceph for email storage)
Date: Tue, 10 Jul 2012 16:35:52 +0200 [thread overview]
Message-ID: <4FFC3DC8.2090707@smart-weblications.de> (raw)
In-Reply-To: <4FFBC192.8060206@cybernetik.net>
Am 10.07.2012 07:45, schrieb Kristofer:
> Very short answer to this.
>
> It can work if you direct all email requests for a particular mailbox to a
> single machine. You need to avoid locking between servers as much as possible.
>
> Messages will need to be indexed, period. Or else your life will suck.
>
> Dovecot has a nice writeup on this type of thing; not Ceph specific, but NFS
> related..it can be extrapolated to Ceph or any distributed storage:
> http://wiki.dovecot.org/NFS
>>
>> - each mail message is a rados object, and immutable.
>> - each mailbox is an index of messages, stored in a rados object.
>> - the index consists of omap records, one for each message.
>> - the key is some unique id
>> - the value is a copy of (a useful subset of) the message headers
>>
>> This has a number of nice properties:
>>
>> - you can efficiently list messages in the mailbox using the omap
>> operations
>> - you can (more) efficiently search messages (everything but the message
>> body) based on the index contents (since it's all stored in one object)
>> - you can efficiently grab recent messages with the omap ops (e.g., list
>> keys > last_seen_msgid)
>> - moving messages between folders involves updating the indices only; the
>> messages objects need not be copied/moved.
>> - no metadata bottleneck: mailbox indices are distributed across the
>> entire cluster, just like the mail.
>> - all the scaling benefits of rados for a growing mail system.
>>
>> I don't know enough about what exactly the mail storage backends need to
>> support to know what issues will come up. Presumably there are several.
>> E.g., if you delete a message, is the IMAP client expected to discover
>> that efficiently? And do the mail storage backends attempt to do it
>> efficiently?
>>
>> This also doesn't solve the problem of efficiently indexing/searching the
>> bodies of messages, although I suspect that indexing could be efficiently
>> implemented on top of this scheme.
>>
>> So, a non-trivial project, but probably one that can be prototyped without
>> that much pain, and one that would perform and scale drastically better
>> than existing solutions I'm aware of.
>>
>> I'm hoping there are some motivated hackers lurking who understand the
>> pain that is maildir/mail infrastructure...
>>
Maybe another idea which could be done with few effort would be to mostly reuse
the code from dbmail and make a cephmail version out of it.
--
Mit freundlichen Grüßen,
Smart Weblications GmbH
Martinsberger Str. 1
D-95119 Naila
fon.: +49 9282 9638 200
fax.: +49 9282 9638 205
24/7: +49 900 144 000 00 - 0,99 EUR/Min*
http://www.smart-weblications.de
--
Sitz der Gesellschaft: Naila
Geschäftsführer: Florian Wiessner
HRB-Nr.: HRB 3840 Amtsgericht Hof
*aus dem dt. Festnetz, ggf. abweichende Preise aus dem Mobilfunknetz
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
prev parent reply other threads:[~2012-07-10 14:43 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-04 18:29 Ceph for email storage Mitsue Acosta Murakami
2012-07-04 19:10 ` Gregory Farnum
2012-07-04 20:40 ` rados mailbox? (was Re: Ceph for email storage) Sage Weil
2012-07-05 14:07 ` Wido den Hollander
2012-07-10 5:45 ` Kristofer
2012-07-10 14:35 ` Smart Weblications GmbH [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FFC3DC8.2090707@smart-weblications.de \
--to=info@smart-weblications.de \
--cc=ceph-devel@vger.kernel.org \
--cc=kristofer@cybernetik.net \
--cc=mitsue@webcenter.com.br \
--cc=sage@inktank.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox