mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

gbellato
17.46.2006 46e6061d63562ce021ef8f3b5062d3eba1c2db4e
refs
author gbellato <gbellato@localhost>
Friday, November 17, 2006 14:46 +0100
committer gbellato <gbellato@localhost>
Friday, November 17, 2006 14:46 +0100
commit46e6061d63562ce021ef8f3b5062d3eba1c2db4e
tree 46eff413d2cb786f4f5b39b16074bfcfbe34c706 tree | zip | gz
parent 4995d3fcfe047ce9e4465e456f8449261f41c6bd view | diff
The synchronization changelog monitoring information has a counter named
waiting-changes that publish the number of updates known by the changelog
server that have not yest been sent to each ldap server because they are too slow to replay them.

This is calculated from the list of changes in memory when this list is small
enough. However when this list becomes too large it is not possible to keep
all the changes in memory and the changes therefore goes to disk.
This monitoring information therefore becomes unavailable and currently returns MAXINT.

This is unfortunate because this is the time when it is the most important.

Unfortunately the Java edition of the berkeley DB does not provide a way to
know the record number of a given db entry and therefore we can't rely on the DB
to tell us how many changes stay in the db after the current change.

This fix therefore change the format of the ChangeNumber so that the ChangeNumber
now uses consecutive numbers for its seqnum part.

The number of missing changes can therefore be calculated by a simple substraction
of the current seqnum and the largest seqnum.
the drawback of this method is that it is only accurate if the majority of update
operations done on the masters are successfull because this method also count the failed
operations.

This fix also modify the ProtocolWindowTest in order to add tests of this waiting-changes
monitoring information.

This fix also makes the size of the memory queue of messages configurable.
2 files renamed
13 files modified
331 ■■■■■ changed files
opends/resource/config/synchronization.ldif 2 ●●● diff | view | raw | blame | history
opends/resource/schema/02-config.ldif 7 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/changelog/Changelog.java 20 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/changelog/ServerHandler.java 65 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/common/ChangeNumber.java 7 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/common/ChangeNumberGenerator.java 60 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/common/ServerState.java 11 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/plugin/SynchronizationDomain.java 13 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/synchronization/protocol/AckMessage.java 18 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/UpdateOperationTest.java 4 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/ChangeLogTestCase.java 2 ●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/changelog/UpdateComparatorTest.java 2 ●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/common/ChangeNumberTest.java 17 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/plugin/ModifyConflictTest.java 57 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/synchronization/protocol/ProtocolWindowTest.java 46 ●●●● diff | view | raw | blame | history