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

Jean-Noel Rouvignac
30.26.2014 de36fa06856d8d04652401bb24e49c3259aef154
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Wednesday, April 30, 2014 12:26 +0200
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Wednesday, April 30, 2014 12:26 +0200
commitde36fa06856d8d04652401bb24e49c3259aef154
tree ada822df1b1abb815b86dcc1f4832a6d0d27ab67 tree | zip | gz
parent 8d695e5535cfc25303e8db106f13fa1565e72055 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.
3 files added
15 files modified
1456 ■■■■ changed files
opends/src/server/org/opends/server/replication/protocol/ByteArrayBuilder.java 348 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/ByteArrayScanner.java 281 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/ChangeTimeHeartbeatMsg.java 108 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/ProtocolVersion.java 53 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/protocol/StopMsg.java 13 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ChangelogState.java 37 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ReplicationServerDomain.java 22 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/ServerHandler.java 15 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/api/ReplicationDomainDB.java 4 ●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 51 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 11 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBCursor.java 8 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java 142 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java 39 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/ByteArrayTest.java 84 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java 69 ●●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexerTest.java 15 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnvTest.java 156 ●●●●● diff | view | raw | blame | history