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