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

Jean-Noel Rouvignac
12.52.2013 760cd52e941b352aab6d0d3362f1f0d689bcec62
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Tuesday, November 12, 2013 14:52 +0100
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Tuesday, November 12, 2013 14:52 +0100
commit760cd52e941b352aab6d0d3362f1f0d689bcec62
tree cf8705e0eeb06d099b4d24e0c2dce97b66de0968 tree | zip | gz
parent 8cc88e4b57773d49f111dae492dd2f324fbcc672 view | diff
CR-2563 JEChangelogDB removing a synchronized block in a heavily hit path

JEChangelogDB.java:
Used ConcurrentMap for domainToReplicaDBs.
Added shutdown field to better protect various code paths against shutdown.
In getOrCreateReplicaDB(), removed global synchronization block with fined grained synchronization code that is only used on JEReplicaDB creation.
Added getExistingOrNewDomainMap(), getExistingOrNewReplicaDB().
Extracted innerShutdownDomain() from shutdownDomain().
In shutdownDB(), ensured shutdown of all the replicaDBs.
In shutdownDB(), shutdownDomain() and getOrCreateReplicaDB() check whether the DB is shutting down.
In removeDomain() and innerShutdownDomain() ensured the domainMap is removed before shutting down the replicaDBs.

replication.properties:
Added an error message to be used when the DB is shutting down.
Extracted and separated method init() from JEReplicaDB ctor.

JEReplicaDB.java:
In ctor, renamed id parameter to serverId + removed queueSize parameter.

JEReplicaDBTest.java:
Consequence of the change to JEReplicaDB.
4 files modified
195 ■■■■ changed files
opendj-sdk/opends/src/messages/messages/replication.properties 2 ●●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 174 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDB.java 15 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java 4 ●●●● diff | view | raw | blame | history