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

Jean-Noel Rouvignac
02.01.2013 8142001482e00c81f1302ea447fc8d0957d2a042
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
commit8142001482e00c81f1302ea447fc8d0957d2a042
tree 29245bbcbfefd342d1af453c47dffd91bfe5e327 tree | zip | gz
parent 04a820a4ecc3304311f74d4016af05223f9d821c 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
opendj-sdk/opends/src/admin/defn/org/opends/server/admin/std/ExternalChangelogDomainConfiguration.xml 8 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/admin/defn/org/opends/server/admin/std/ReplicationServerConfiguration.xml 27 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/admin/messages/ExternalChangelogDomainCfgDefn.properties 2 ●●● diff | view | raw | blame | history
opendj-sdk/opends/src/admin/messages/ReplicationServerCfgDefn.properties 2 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/common/MultiDomainServerState.java 53 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ECLServerHandler.java 41 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java 34 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/api/ChangelogDB.java 13 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 292 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangeNumberIndexDB.java 32 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 84 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java 12 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ExternalChangeLogTest.java 29 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/ReplServerFakeConfiguration.java 35 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexerTest.java 5 ●●●●● diff | view | raw | blame | history