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

Jean-Noel Rouvignac
02.01.2013 891159050af4aa3fe47c67e3ba7d3f21299027a4
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Monday, December 2, 2013 15:01 +0100
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Monday, December 2, 2013 15:01 +0100
commit891159050af4aa3fe47c67e3ba7d3f21299027a4
tree f0636b0bce438b6cb842dd1af3bde3def47c2b6a tree | zip | gz
parent f9e5baa3fe03fb55c0c5ccbba2ed0984026dc060 view | diff
OPENDJ-1174 (CR-2631) Transfer responsibility for populating the ChangeNumberIndexDB to ChangelogDB


Hooked the ChangeNumberIndexer thread into our code base.
Managed thread lifecycle.
Added configuration to turn it on / off.
Removed code that builds the ChangeNumberIndexDB from ECLServerHandler.


ChangeNumberIndexer.java:
Added clear() + doClear field for unit tests
Used thread safe versions of MultiDomainServerState.
In run(), merged all the try blocks to factorize the catch blocks + supported doClear + fixed a bug with the mediumConsistencyRUV.
In removeCursor(), closed the cursors.
Added removeAllCursors(), getPrecedingCSN().
Renamed crossDomainDBCursor to nextChangeForInsertDBCursor and newCompositeDBCursor() to resetNextChangeForInsertDBCursor().
Changed newCursors from ConcurrentMap<CSN, DN> to ConcurrentMap<Pair<DN, Integer>, CSN> to ensure minimum memory consumption.

JEChangelogDB.java:
Removed dbDirectoryName field.
Added config, cnIndexer fields.
Changed ctor to accept ReplicationServerCfg.
In initializeDB(), shutdownDB(), clearDB(), publishUpdateMsg() took appropriate actions with the cnIndexer thread.
Added setComputeChangeNumber().
In getCursorFrom(), accept null parameter.
In setPurgeDelay(), also call it on the cnIndexDB.


MultiDomainServerState.java:
Made implementation to be fully thread safe.
Changed list from Map to ConcurrentMap + removed synchrnoized blocks.
Renamed update(DN, ServerState) to replace(DN, ServerState).
Added new version of update(DN, ServerState).

ECLServerHandler.java:
Removed assignNewChangeNumberAndStore() that builds the ChangeNumberIndexDB + adapted the code that was using this method.
Used MultiDomainServerState.replace().


ReplicationServerConfiguration.xml, ReplicationServerCfgDefn.properties:
Added ds-cfg-compute-changenumber.

ExternalChangelogDomainConfiguration.xml, ExternalChangelogDomainCfgDefn.properties:
Updated description

ReplicationServer.java:
In applyConfigurationChange(), handled computeChangenumber config.
Used MultiDomainServerState.replace().

ChangelogDB.java:
Added setComputeChangeNumber().

ReplServerFakeConfiguration.java:
Added isComputeChangenumber() and setComputeChangenumber().


ExternalChangeLogTest.java:
Adapted the code to the use of the ChangeNumberIndexer thread.

JEChangeNumberIndexDB.java:
Extracted runPurge() from run().


ReplicationDbEnv.java
Code cleanup.
15 files modified
669 ■■■■ changed files
opends/src/admin/defn/org/opends/server/admin/std/ExternalChangelogDomainConfiguration.xml 8 ●●●● diff | view | raw | blame | history
opends/src/admin/defn/org/opends/server/admin/std/ReplicationServerConfiguration.xml 27 ●●●●● diff | view | raw | blame | history
opends/src/admin/messages/ExternalChangelogDomainCfgDefn.properties 2 ●●● diff | view | raw | blame | history
opends/src/admin/messages/ReplicationServerCfgDefn.properties 2 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java 53 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ECLServerHandler.java 41 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ReplicationServer.java 34 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java 13 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 292 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java 32 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 84 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java 12 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java 29 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplServerFakeConfiguration.java 35 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexerTest.java 5 ●●●●● diff | view | raw | blame | history