If it is not yet attached to a JIRA, please open a new one and upload the patch there.
On 11/25/2014 01:02 PM, Benoit Tellier wrote: > Hi, > > Here comes a first patch, implementing quota management over cassandra. > It is like the quota implemented in the store, but stored in Cassandra. > > Regards, > Benoit > > On 11/23/14 08:52, Josip Almasi wrote: >> Hi, >> >> can you do that and make a patch? >> >> Regards, >> Josip >> >> On 11/18/2014 09:26 AM, Benoit Tellier wrote: >>> Hi , >>> >>> I am an intern at Linagora, and I was asked to continue Phillipe Benoit >>> works on James. He did a contribution for a James mailbox using >>> Cassandra as a backend. I already implemented quotas and a group >>> membership resolver using Cassandra. >>> >>> I also need to implement ACLs. I noticed the use of locks when re - >>> calculating acls for a given mailbox ( in the message manager ). But, as >>> the datastax driver we are using does not support path locking and ACID >>> transactions, I had to find an other way to do it. >>> >>> I finally heard about lightweight transaction. What I decided to do was >>> to add to fields to the mailbox table : one field of binary data ( our >>> serialized ACLs for this mailbox ) and a version number. So when we call >>> setRights ( message manager ) what it should do is to retrieve the ACLs >>> and the associated version number. It then re calculates the ACLs, >>> serialize it, and update it with an increment of the version number only >>> if the version number wasn't changed. >>> >>> As I really don't like copy and paste, I want to re use as much code as >>> I can : >>> >>> - It would be nice to reuse the StoreMessageManager, with just >>> overloading the setRights method to retry a lightweight transaction if >>> it fails (eg : someone changed it ) . But to implement the setRights >>> method I need an access to the mailbox. I need the mailbox parameter of >>> the StoreMessageManager to have protected access rights. >>> >>> - reusing the SimpleMailboxACL seems to be a good idea, but I need to >>> serialize it. I just need that it ( and the classes it contains ) >>> implements the Serializable interface. >>> >>> That's some really simple changes that will prevent me from copying and >>> pasting thousand of lines of code. >>> >>> Thank you very much, >>> >>> Benoit Tellier >>> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
