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

Jean-Noel Rouvignac
12.52.2013 c5ab3254dc665b820ca65ea919c5c2f5f5e0d110
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
commitc5ab3254dc665b820ca65ea919c5c2f5f5e0d110
tree e21b7c2fd1d6c4e4e93978c57407ad830e8ceb72 tree | zip | gz
parent 1424fbc56193f3e821d96e2b7f3a97f2bfd7f56c 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
opends/src/messages/messages/replication.properties 2 ●●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEChangelogDB.java 174 ●●●● diff | view | raw | blame | history
opends/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDB.java 15 ●●●● diff | view | raw | blame | history
opends/tests/unit-tests-testng/src/server/org/opends/server/replication/server/changelog/je/JEReplicaDBTest.java 4 ●●●● diff | view | raw | blame | history