Hi,

we have had a long discussion with Alex today about https://issues.apache.org/jira/browse/DIRSERVER-1599

The problem is that one user's operation can generate many internal operations, some of them impacting the data stored in the backend. In such a case, we have two issues : - the first one is that the changeLog can fail to generate the revert operations in the correct order - the second one is that e can't guarantee the atomicity in this case, and it's way worse than the first problem.

In order to fix the first problem, there is a simple solution : moving the ChangeLog interceptor to the end of the interceptor chain. It should work (as soon as I get the pb with Schema element not being correctly reverted, something I'm working on atm)

The second issue is way more complex and we need to implement a TransactionManager. It will be added in the partition layer, and should hold the modifications until the operation is either committed or rollbacked. If the operation is committed, then everything is written on disk.

Regarding the changeLog interceptor, the only problem we have is that when we update the schema, in case we can't successfully modify a schema element, then we won't be able to revert operation. I'm working on this.

More informations later...

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to