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

Jean-Noel Rouvignac
30.07.2014 5a0befe36d7b7e93a65bb19df19d667d413c7c89
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
commit5a0befe36d7b7e93a65bb19df19d667d413c7c89
tree 2e62b47bf4fa00e9ff6c4551fd7dc526b2550cb7 tree | zip | gz
parent 1508f558ba658b7f0e713f3d5e61fa66b9dc2fa0 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
1452 ■■■■ changed files
opendj3-server-dev/src/server/org/opends/server/replication/protocol/ByteArrayBuilder.java 348 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/protocol/ByteArrayScanner.java 281 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/protocol/ChangeTimeHeartbeatMsg.java 108 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/protocol/ProtocolVersion.java 53 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/protocol/StopMsg.java 13 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/ChangelogState.java 37 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/ReplicationServerDomain.java 22 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/ServerHandler.java 15 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/api/ReplicationDomainDB.java 4 ●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexer.java 51 ●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 11 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBCursor.java 8 ●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnv.java 142 ●●●● diff | view | raw | blame | history
opendj3-server-dev/src/server/org/opends/server/replication/service/CTHeartbeatPublisherThread.java 37 ●●●● diff | view | raw | blame | history
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/ByteArrayTest.java 83 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/protocol/SynchronizationMsgTest.java 69 ●●●●● diff | view | raw | blame | history
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ChangeNumberIndexerTest.java 15 ●●●● diff | view | raw | blame | history
opendj3-server-dev/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/ReplicationDbEnvTest.java 155 ●●●●● diff | view | raw | blame | history