You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2014/08/05 15:47:48 UTC

[1/2] git commit: Fixes logic for potential seed count / quorumSize

Repository: incubator-brooklyn
Updated Branches:
  refs/heads/master 7d2d42b37 -> 367925e3a


Fixes logic for potential seed count / quorumSize


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/3c05c599
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/3c05c599
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/3c05c599

Branch: refs/heads/master
Commit: 3c05c599f3e9919b076d664827e62c8116a9bde7
Parents: f03d82c
Author: Martin Harris <gi...@nakomis.com>
Authored: Tue Jul 22 15:05:16 2014 +0100
Committer: Martin Harris <gi...@nakomis.com>
Committed: Tue Jul 29 15:40:57 2014 +0100

----------------------------------------------------------------------
 .../entity/nosql/cassandra/CassandraFabricImpl.java      | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/3c05c599/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java b/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
index 635b8f2..5d3c219 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/cassandra/CassandraFabricImpl.java
@@ -86,8 +86,11 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
             if (seeds == null || seeds.size() < quorumSize || containsDownEntity(seeds)) {
                 Set<Entity> newseeds;
                 Map<CassandraDatacenter,Set<Entity>> potentialSeeds = MutableMap.of();
+                int potentialSeedCount = 0;
                 for (CassandraDatacenter member : Iterables.filter(getMembers(), CassandraDatacenter.class)) {
-                    potentialSeeds.put(member, member.gatherPotentialSeeds());
+                    Set<Entity> dcPotentialSeeds = member.gatherPotentialSeeds();
+                    potentialSeeds.put(member, dcPotentialSeeds);
+                    potentialSeedCount += dcPotentialSeeds.size();
                 }
                 
                 if (hasPublishedSeeds) {
@@ -101,7 +104,7 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
                     } else if (serviceState == Lifecycle.STOPPING || serviceState == Lifecycle.STOPPED) {
                         if (log.isTraceEnabled()) log.trace("Fabric {} ignoring any potential seed-changes, because {}: seeds={}", new Object[] {CassandraFabricImpl.this, serviceState, currentSeeds});
                         newseeds = currentSeeds;
-                    } else if (potentialSeeds.isEmpty()) {
+                    } else if (potentialSeedCount == 0) {
                         // TODO Could be race where nodes have only just returned from start() and are about to 
                         // transition to serviceUp; so don't just abandon all our seeds!
                         log.warn("Fabric {} has no seeds (after startup); leaving seeds as-is; but risks split-brain if these seeds come back up!", new Object[] {CassandraFabricImpl.this});
@@ -116,8 +119,8 @@ public class CassandraFabricImpl extends DynamicFabricImpl implements CassandraF
                         }
                         newseeds = result;
                     }
-                } else if (potentialSeeds.size() < quorumSize) {
-                    if (log.isDebugEnabled()) log.debug("Not setting seeds of fabric {} yet, because still waiting for quorum (need {}; have {} potentials from {} members)", new Object[] {CassandraFabricImpl.this, quorumSize, potentialSeeds.size(), getMembers()});
+                } else if (potentialSeedCount < quorumSize) {
+                    if (log.isDebugEnabled()) log.debug("Not setting seeds of fabric {} yet, because still waiting for quorum (need {}; have {} potentials from {} members)", new Object[] {CassandraFabricImpl.this, quorumSize, potentialSeedCount, getMembers()});
                     newseeds = ImmutableSet.of();
                 } else if (!allNonEmpty(potentialSeeds.values())) {
                     if (log.isDebugEnabled()) {


[2/2] git commit: This closes #88

Posted by al...@apache.org.
This closes #88


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/367925e3
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/367925e3
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/367925e3

Branch: refs/heads/master
Commit: 367925e3a2106a7cc8779d80e7ab0b1a615a7f25
Parents: 7d2d42b 3c05c59
Author: Aled Sage <al...@gmail.com>
Authored: Tue Aug 5 14:47:01 2014 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Tue Aug 5 14:47:01 2014 +0100

----------------------------------------------------------------------
 .../entity/nosql/cassandra/CassandraFabricImpl.java      | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)
----------------------------------------------------------------------