CEPH filesystem development
 help / color / mirror / Atom feed
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

      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