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

Jean-Noel Rouvignac
30.07.2014 5266e0fdfc422e1e14e475b76940c11b84ca5a17
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Wednesday, April 30, 2014 17:07 +0200
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Wednesday, April 30, 2014 17:07 +0200
commit5266e0fdfc422e1e14e475b76940c11b84ca5a17
tree c732376494f6570c1aa97544ab7f0a49a12a587c tree | zip | gz
parent 11d8ddb8f5c88b19fe3a6ea5e77384c43084003a view | diff
OPENDJ-1259 (CR-3443) Make the Medium Consistency Point support replicas temporarily leaving the topology

Changed ChangeTimeHeartbeatMsg to be able to send timestamps for a replica stopping. This is done by adding an event type to cover both normal heartbeat and temporarily offline replica.
This allows RSs to compute medium consistency accurately by using the stop time from the originating server.
Because of this change, incremented protocol version to v8.



ProtocolVersion.java:
Added REPLICATION_PROTOCOL_V8.
Fixed javadocs by using lists.

ByteArrayBuilder.java, ByteArrayScanner.java, ByteArrayTest.java: ADDED

ChangeTimeHeartbeatMsg.java:
Added eventType field + added isReplicaOfflineMsg().
Made ctor private + added factory methods heartbeatMsg() and replicaOfflineMsg().
Used ByteArrayBuilder and ByteArrayScanner.

CTHeartbeatPublisherThread.java:
In run(), on shutdown, handle sending a replica offline message.



SynchronizationMsgTest.java:
Added changeTimeHeartbeatMsgTest() and assertCTHearbeatMsg().
Code cleanup + used static import for ProtocolVersion.



DataServerHandler.java:
Consequence of the change to StopMsg ctor.
Extracted method publishStopMsg() for increased readability.

ReplicationServerDomain.java:
In processChangeTimeHeartbeatMsg(), added support for offline replica messages + declared DirectoryException checked exception.

ServerHandler.java:
Consequence of the change to ReplicationServerDomain.processChangeTimeHeartbeatMsg() checked exception.



ChangeNumberIndexer.java:
In initialize(), handle offline replicas.
In moveForwardMediumConsistencyPoint(), now throw ChangelogException.
In removeCursor(), now call resetNextChangeForInsertDBCursor().

ChangeNumberIndexerTest.java:
Expanded the emptyDBTwoDSsOneGoingOffline() test.



JEChangelogDB.java, ReplicationDomainDB.java:
In replicaOffline(), now throw ChangelogException and call ReplicationDbEnv.addOfflineReplica()
Added ChangelogDBPurger.initiateShutdown().

ReplicationDbEnv.java:
Added OFFLINE_TAG constant, toReplicaOfflineEntry(), addOfflineReplica() and putInChangelogStateDB(), toByteArray()().
In decodeChangelogState(), handle offline replica information.
Changed several method signature to use Entry<byte[], byte[]> instead of Entry<String, String>.

ReplicationDbEnvTest.java:
Fixed indentation + added tests.

ChangelogState.java:
Added offlineReplicas field + addOfflineReplica() and getOfflineReplicas() + changed toString() to display it.



StopMsg.java:
Added toString().

JEReplicaDBCursor.java:
Improved comments and javadocs.
15 files modified
3 files added
1452 ■■■■ changed files
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ByteArrayBuilder.java 348 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ByteArrayScanner.java 281 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ChangeTimeHeartbeatMsg.java 108 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/protocol/ProtocolVersion.java 53 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/protocol/StopMsg.java 13 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ChangelogState.java 37 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java 22 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java 15 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/api/ReplicationDomainDB.java 4 ●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 51 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 11 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBCursor.java 8 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java 142 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java 37 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/ByteArrayTest.java 83 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java 69 ●●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexerTest.java 15 ●●●● diff | view | raw | blame | history
opendj-sdk/opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnvTest.java 155 ●●●●● diff | view | raw | blame | history