On 8/18/2012 5:27 AM, Eric Charles wrote:
Hi,

We tackle distributed UID generation via https://issues.apache.org/jira/browse/MAILBOX-103

We have a first snapshot implementation (undocumented) with UID generated by a Zookeeper Ensemble in https://svn.apache.org/repos/asf/james/mailbox/trunk/zoo-seq-provider

I understand Joshua is using a single IBM Database, for info a distributed storage such as HBase is also available for James (maybe out-of-scope for you). As James is component-based (@see the UidProvider interface in mailbox-store project), HBase could also be responsible for the UID generation, such as Hazelcast could be...

More simply, you could even rely on a centrally generated UID such as we do with JPA, but the deal is to let the other servers of the UID because we store in memory in a Map the messages. So if you want to inform the other servers of this event, you need a distributed event system. And yes, there is the UIDVALIDITY which comes also in the game...

So, there is still much to do in order to have a full James distributed, so if you are looking for a out-of-the-box solution, it's too early. If you are interested to invest some time to help, we will also help :) The first step would be a design document with all the constraints. The solution will come from it self once the things are sorted on paper.

Thx, Eric

We've decided to go with the database replication angle and are now working on crocking the UID generation algorithm (we use the JPA implementation) to use the 3 highest bits as a server ID tag. Yes, this breaks the RFC. But we won't be using this server on the Internet and it won't be used for e-mails - only voicemails.

--
Joshua M. Armstrong
Software Engineer
Centurion, Inc.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to