[ 
https://issues.apache.org/jira/browse/DIRSERVER-1097?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12542106
 ] 

Martin Alderson commented on DIRSERVER-1097:
--------------------------------------------

At the moment I am thinking that we would have an extra operation redundancy 
table alongside the current replication logs which would have two columns, one 
being the CSN of a new operation, the other being the CSN of an older operation 
that is made redundant by the new one.  This table would be generated on the 
fly - i.e. when we add a new operation to the replication logs we also update 
the redundancy table with any number of operations that are made redundant by 
this.

I think the operations we can make redundant for each new operation would be 
something like:

Operation              | Operations to ignore
-----------------------+------------------------------
Add entry              | None
Remove entry           | All previous for this entry
Rename entry           | None
Add attribute          | None
Remove attribute       | All previous for this attribute
Replace attribute      | All previous for this attribute
Add attribute value    | One previous matching remove attribute value and self
Remove attribute value | One previous matching add attribute value and self

I'm sure that formatting will come out well...

That table is just a quick draft which isn't quite right yet.  It doesn't 
really deal with matching up adds and removes.

I am not sure if this is the best design for this feature, nor am I sure how 
this can fit in with the changelog service.  I agree with you though that the 
functionality of the replication service and the changelog service overlap a 
fair bit and there probably should be some code sharing going on here.

> Only send net changes during replication
> ----------------------------------------
>
>                 Key: DIRSERVER-1097
>                 URL: https://issues.apache.org/jira/browse/DIRSERVER-1097
>             Project: Directory ApacheDS
>          Issue Type: Improvement
>          Components: mitosis
>    Affects Versions: 1.5.1
>            Reporter: Martin Alderson
>            Priority: Minor
>
> During replication we currently send all changes that have occurred since the 
> target replica was last brought up to date.  We can optimise this by only 
> sending the net changes.  As an example, if an entry is created, modified 
> several times then deleted at one server, we do not need to tell other 
> replicas anything regarding this entry.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to