You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Emmanuel Lecharny <el...@gmail.com> on 2007/09/19 16:30:27 UTC

New ChangeLog interceptor

Hi guys,

Alex just committed a very interesting new interceptor into the trunk
; the ChangeLog interceptor which was drafted by Ersin a year ago
(more or less).

This new interceptor will be very usefull for many usage, like :
- logging _all_ the requests sent to the server (valuable when debugging)
- defining some kind of journal we can replay if the server just
crashed and we have lost some data (because the data are written on
disk on a regular basis, not synchronously, unless you ask the server
to do so )
- add some kind of snapshot + rollback/commit functionality.

However, we need to polish the code to support all those new functionalities.

Atm, for instance, we can't rollback for two reasons :
1) we have to define some  tags to tell the server from which point we
want a rollback to start
2) we have to save an 'anti-request' data into the log. 'Anti-request'
is just the opposite request sent by the user. For instance, suppose
that the user is adding some entry, the anti-request (A-req) will be a
"DelRequest <added entry DN>". If the user is deleting an entry, the
A-req is a little bit more complex : the interceptor will have to
lookup for the entry first, and save it as a "AddRequest <looked up
entry>". For modify requests and ModifyDN requests, this can bbecome
complex...
3) We also have to define a control or an extended request to set this
tag, and another one to do the rollback or to discard the snapshot.

None of those tasks are complex per se, but we have to add them.

Do you have any other ideas, or opinions ?

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

Re: New ChangeLog interceptor

Posted by Alex Karasulu <ak...@apache.org>.
Hey btw I move that page you had on the advanced user guide to the
developer's guide and
filled it in a bit.  Here's the new link in confluence:

http://cwiki.apache.org/confluence/display/DIRxSRVx11/Versioning+and+Snapshots

Alex

On 9/19/07, Alex Karasulu <ak...@apache.org> wrote:
>
> FYI the present commits
>
> (1) took the workshop example from the "Embedding ApacheDS" seminar and
> added it to the server adapting it to the changes.
> (2) added some SPI for such a server service for extension
> (3) the present interceptor does not use this
>
> There's a bit more work to do to flush out a coherent picture.  I will get
> this done today and
> document it all in the wiki.  I will also modify the existing interceptor
> to use these interfaces
> but it will still not be fully functional since I need to figure out how
> to implement an anti-ldif
> calculation algorithm.
>
> I'll add the convos we have had on IRC so others can back track and also
> jot down some other
> ideas around this facility.
>
> Alex
>
> On 9/19/07, Emmanuel Lecharny <el...@gmail.com> wrote:
> >
> > Hi guys,
> >
> > Alex just committed a very interesting new interceptor into the trunk
> > ; the ChangeLog interceptor which was drafted by Ersin a year ago
> > (more or less).
> >
> > This new interceptor will be very usefull for many usage, like :
> > - logging _all_ the requests sent to the server (valuable when
> > debugging)
> > - defining some kind of journal we can replay if the server just
> > crashed and we have lost some data (because the data are written on
> > disk on a regular basis, not synchronously, unless you ask the server
> > to do so )
> > - add some kind of snapshot + rollback/commit functionality.
> >
> > However, we need to polish the code to support all those new
> > functionalities.
> >
> > Atm, for instance, we can't rollback for two reasons :
> > 1) we have to define some  tags to tell the server from which point we
> > want a rollback to start
> > 2) we have to save an 'anti-request' data into the log. 'Anti-request'
> > is just the opposite request sent by the user. For instance, suppose
> > that the user is adding some entry, the anti-request (A-req) will be a
> > "DelRequest <added entry DN>". If the user is deleting an entry, the
> > A-req is a little bit more complex : the interceptor will have to
> > lookup for the entry first, and save it as a "AddRequest <looked up
> > entry>". For modify requests and ModifyDN requests, this can bbecome
> > complex...
> > 3) We also have to define a control or an extended request to set this
> > tag, and another one to do the rollback or to discard the snapshot.
> >
> > None of those tasks are complex per se, but we have to add them.
> >
> > Do you have any other ideas, or opinions ?
> >
> > --
> > Regards,
> > Cordialement,
> > Emmanuel Lécharny
> > www.iktek.com
> >
>
>

Re: New ChangeLog interceptor

Posted by Alex Karasulu <ak...@apache.org>.
FYI the present commits

(1) took the workshop example from the "Embedding ApacheDS" seminar and
added it to the server adapting it to the changes.
(2) added some SPI for such a server service for extension
(3) the present interceptor does not use this

There's a bit more work to do to flush out a coherent picture.  I will get
this done today and
document it all in the wiki.  I will also modify the existing interceptor to
use these interfaces
but it will still not be fully functional since I need to figure out how to
implement an anti-ldif
calculation algorithm.

I'll add the convos we have had on IRC so others can back track and also jot
down some other
ideas around this facility.

Alex

On 9/19/07, Emmanuel Lecharny <el...@gmail.com> wrote:
>
> Hi guys,
>
> Alex just committed a very interesting new interceptor into the trunk
> ; the ChangeLog interceptor which was drafted by Ersin a year ago
> (more or less).
>
> This new interceptor will be very usefull for many usage, like :
> - logging _all_ the requests sent to the server (valuable when debugging)
> - defining some kind of journal we can replay if the server just
> crashed and we have lost some data (because the data are written on
> disk on a regular basis, not synchronously, unless you ask the server
> to do so )
> - add some kind of snapshot + rollback/commit functionality.
>
> However, we need to polish the code to support all those new
> functionalities.
>
> Atm, for instance, we can't rollback for two reasons :
> 1) we have to define some  tags to tell the server from which point we
> want a rollback to start
> 2) we have to save an 'anti-request' data into the log. 'Anti-request'
> is just the opposite request sent by the user. For instance, suppose
> that the user is adding some entry, the anti-request (A-req) will be a
> "DelRequest <added entry DN>". If the user is deleting an entry, the
> A-req is a little bit more complex : the interceptor will have to
> lookup for the entry first, and save it as a "AddRequest <looked up
> entry>". For modify requests and ModifyDN requests, this can bbecome
> complex...
> 3) We also have to define a control or an extended request to set this
> tag, and another one to do the rollback or to discard the snapshot.
>
> None of those tasks are complex per se, but we have to add them.
>
> Do you have any other ideas, or opinions ?
>
> --
> Regards,
> Cordialement,
> Emmanuel Lécharny
> www.iktek.com
>