From de36fa06856d8d04652401bb24e49c3259aef154 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 30 Apr 2014 10:26:42 +0000
Subject: [PATCH] OPENDJ-1259 (CR-3443) Make the Medium Consistency Point support replicas temporarily leaving the topology
---
opends/src/server/org/opends/server/replication/server/ChangelogState.java | 37 +++++++++++++++++++++++++++++++++++--
1 files changed, 35 insertions(+), 2 deletions(-)
diff --git a/opends/src/server/org/opends/server/replication/server/ChangelogState.java b/opends/src/server/org/opends/server/replication/server/ChangelogState.java
index a454a35..a0cb04b 100644
--- a/opends/src/server/org/opends/server/replication/server/ChangelogState.java
+++ b/opends/src/server/org/opends/server/replication/server/ChangelogState.java
@@ -21,7 +21,7 @@
* CDDL HEADER END
*
*
- * Copyright 2013 ForgeRock AS
+ * Copyright 2013-2014 ForgeRock AS
*/
package org.opends.server.replication.server;
@@ -30,6 +30,7 @@
import java.util.List;
import java.util.Map;
+import org.opends.server.replication.common.CSN;
import org.opends.server.types.DN;
/**
@@ -49,6 +50,8 @@
private final Map<DN, Long> domainToGenerationId = new HashMap<DN, Long>();
private final Map<DN, List<Integer>> domainToServerIds =
new HashMap<DN, List<Integer>>();
+ private final Map<DN, List<CSN>> offlineReplicas =
+ new HashMap<DN, List<CSN>>();
/**
* Sets the generationId for the supplied replication domain.
@@ -83,6 +86,25 @@
}
/**
+ * Adds the following replica information to the offline list.
+ *
+ * @param baseDN
+ * the baseDN of the offline replica
+ * @param offlineCSN
+ * the CSN (serverId + timestamp) of the offline replica
+ */
+ public void addOfflineReplica(DN baseDN, CSN offlineCSN)
+ {
+ List<CSN> offlineCSNs = offlineReplicas.get(baseDN);
+ if (offlineCSNs == null)
+ {
+ offlineCSNs = new LinkedList<CSN>();
+ offlineReplicas.put(baseDN, offlineCSNs);
+ }
+ offlineCSNs.add(offlineCSN);
+ }
+
+ /**
* Returns the Map of domainBaseDN => generationId.
*
* @return a Map of domainBaseDN => generationId
@@ -102,11 +124,22 @@
return domainToServerIds;
}
+ /**
+ * Returns the Map of domainBaseDN => List<offlineCSN>.
+ *
+ * @return a Map of domainBaseDN => List<offlineCSN>.
+ */
+ public Map<DN, List<CSN>> getOfflineReplicas()
+ {
+ return offlineReplicas;
+ }
+
/** {@inheritDoc} */
@Override
public String toString()
{
return "domainToGenerationId=" + domainToGenerationId
- + ", domainToServerIds=" + domainToServerIds;
+ + ", domainToServerIds=" + domainToServerIds
+ + ", offlineReplicas=" + offlineReplicas;
}
}
--
Gitblit v1.10.0