You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/06/09 02:16:27 UTC
svn commit: r1133610 - in /cassandra/branches/cassandra-0.8: ./
src/java/org/apache/cassandra/locator/ src/java/org/apache/cassandra/service/
test/unit/org/apache/cassandra/locator/
test/unit/org/apache/cassandra/service/
Author: jbellis
Date: Thu Jun 9 00:16:27 2011
New Revision: 1133610
URL: http://svn.apache.org/viewvc?rev=1133610&view=rev
Log:
revert 1133443
Modified:
cassandra/branches/cassandra-0.8/CHANGES.txt
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/TokenMetadata.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java
cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/WriteResponseHandler.java
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/MoveTest.java
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.8/CHANGES.txt Thu Jun 9 00:16:27 2011
@@ -42,7 +42,6 @@
by nio sockets (CASSANDRA-2654)
* restrict repair streaming to specific columnfamilies (CASSANDRA-2280)
* fix nodetool ring use with Ec2Snitch (CASSANDRA-2733)
- * fix inconsistency window during bootstrap (CASSANDRA-833)
0.8.0-final
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java Thu Jun 9 00:16:27 2011
@@ -24,7 +24,6 @@ import java.net.InetAddress;
import java.util.*;
import com.google.common.collect.HashMultimap;
-import com.google.common.collect.Iterables;
import com.google.common.collect.Multimap;
import org.apache.cassandra.gms.Gossiper;
import org.slf4j.Logger;
@@ -120,21 +119,20 @@ public abstract class AbstractReplicatio
*/
public abstract List<InetAddress> calculateNaturalEndpoints(Token searchToken, TokenMetadata tokenMetadata) throws IllegalStateException;
- public IWriteResponseHandler getWriteResponseHandler(Iterable<InetAddress> writeEndpoints,
+ public IWriteResponseHandler getWriteResponseHandler(Collection<InetAddress> writeEndpoints,
Multimap<InetAddress, InetAddress> hintedEndpoints,
- Iterable<InetAddress> pendingEndpoints,
ConsistencyLevel consistency_level)
{
if (consistency_level == ConsistencyLevel.LOCAL_QUORUM)
{
// block for in this context will be localnodes block.
- return DatacenterWriteResponseHandler.create(writeEndpoints, hintedEndpoints, pendingEndpoints, consistency_level, table);
+ return DatacenterWriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table);
}
else if (consistency_level == ConsistencyLevel.EACH_QUORUM)
{
- return DatacenterSyncWriteResponseHandler.create(writeEndpoints, hintedEndpoints, pendingEndpoints, consistency_level, table);
+ return DatacenterSyncWriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table);
}
- return WriteResponseHandler.create(writeEndpoints, hintedEndpoints, pendingEndpoints, consistency_level, table);
+ return WriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table);
}
/**
@@ -150,10 +148,9 @@ public abstract class AbstractReplicatio
* as the destination, it is a "hinted" write, and will need to be sent to
* the ultimate target when it becomes alive again.
*/
- public Multimap<InetAddress, InetAddress> getHintedEndpoints(Iterable<InetAddress> targets)
+ public Multimap<InetAddress, InetAddress> getHintedEndpoints(Collection<InetAddress> targets)
{
- int targetSize = Iterables.size(targets);
- Multimap<InetAddress, InetAddress> map = HashMultimap.create(targetSize, 1);
+ Multimap<InetAddress, InetAddress> map = HashMultimap.create(targets.size(), 1);
// first, add the live endpoints
for (InetAddress ep : targets)
@@ -163,7 +160,7 @@ public abstract class AbstractReplicatio
}
// if everything was alive or we're not doing HH on this keyspace, stop with just the live nodes
- if (map.size() == targetSize || !StorageProxy.isHintedHandoffEnabled())
+ if (map.size() == targets.size() || !StorageProxy.isHintedHandoffEnabled())
return map;
// assign dead endpoints to be hinted to the closest live one, or to the local node
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/TokenMetadata.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/TokenMetadata.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/TokenMetadata.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/locator/TokenMetadata.java Thu Jun 9 00:16:27 2011
@@ -674,25 +674,24 @@ public class TokenMetadata
* If possible, will return the same collection it was passed, for efficiency.
*
* Only ReplicationStrategy should care about this method (higher level users should only ask for Hinted).
- *
- * @return a pair with the collection of write endpoints as well as the collection of pending endpoints (a subset
- * of the write endpoints). The later is needed to correctly compute the number of endpoint to block for in face of
- * bootstrap/leaving node
*/
- public Pair<? extends Iterable<InetAddress>, ? extends Iterable<InetAddress>> getWriteEndpoints(Token token, String table, Collection<InetAddress> naturalEndpoints)
+ public Collection<InetAddress> getWriteEndpoints(Token token, String table, Collection<InetAddress> naturalEndpoints)
{
Map<Range, Collection<InetAddress>> ranges = getPendingRanges(table);
if (ranges.isEmpty())
- return Pair.create(naturalEndpoints, Collections.<InetAddress>emptyList());
+ return naturalEndpoints;
+
+ Set<InetAddress> endpoints = new HashSet<InetAddress>(naturalEndpoints);
- Set<InetAddress> pendings = new HashSet<InetAddress>();
for (Map.Entry<Range, Collection<InetAddress>> entry : ranges.entrySet())
{
if (entry.getKey().contains(token))
- pendings.addAll(entry.getValue());
+ {
+ endpoints.addAll(entry.getValue());
+ }
}
- return Pair.create(Iterables.concat(naturalEndpoints, pendings), pendings);
+ return endpoints;
}
/**
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/AbstractWriteResponseHandler.java Thu Jun 9 00:16:27 2011
@@ -41,16 +41,14 @@ public abstract class AbstractWriteRespo
protected final long startTime;
protected final Collection<InetAddress> writeEndpoints;
protected final Multimap<InetAddress, InetAddress> hintedEndpoints;
- protected final Collection<InetAddress> pendingEndpoints;
protected final ConsistencyLevel consistencyLevel;
- protected AbstractWriteResponseHandler(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel)
+ protected AbstractWriteResponseHandler(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel)
{
startTime = System.currentTimeMillis();
this.consistencyLevel = consistencyLevel;
this.hintedEndpoints = hintedEndpoints;
this.writeEndpoints = writeEndpoints;
- this.pendingEndpoints = pendingEndpoints;
}
public void get() throws TimeoutException
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterSyncWriteResponseHandler.java Thu Jun 9 00:16:27 2011
@@ -57,10 +57,10 @@ public class DatacenterSyncWriteResponse
private final NetworkTopologyStrategy strategy;
private HashMap<String, AtomicInteger> responses = new HashMap<String, AtomicInteger>();
- protected DatacenterSyncWriteResponseHandler(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel, String table)
+ protected DatacenterSyncWriteResponseHandler(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel, String table)
{
// Response is been managed by the map so make it 1 for the superclass.
- super(writeEndpoints, hintedEndpoints, pendingEndpoints, consistencyLevel);
+ super(writeEndpoints, hintedEndpoints, consistencyLevel);
assert consistencyLevel == ConsistencyLevel.EACH_QUORUM;
strategy = (NetworkTopologyStrategy) Table.open(table).getReplicationStrategy();
@@ -70,16 +70,11 @@ public class DatacenterSyncWriteResponse
int rf = strategy.getReplicationFactor(dc);
responses.put(dc, new AtomicInteger((rf / 2) + 1));
}
- // see comment in DatacenterWriteResponseHandler.determineBlockFor()
- for (InetAddress pending : pendingEndpoints)
- {
- responses.get(snitch.getDatacenter(pending)).incrementAndGet();
- }
}
- public static IWriteResponseHandler create(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel, String table)
+ public static IWriteResponseHandler create(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel, String table)
{
- return new DatacenterSyncWriteResponseHandler(writeEndpoints, hintedEndpoints, pendingEndpoints, consistencyLevel, table);
+ return new DatacenterSyncWriteResponseHandler(writeEndpoints, hintedEndpoints, consistencyLevel, table);
}
public void response(Message message)
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/DatacenterWriteResponseHandler.java Thu Jun 9 00:16:27 2011
@@ -51,31 +51,22 @@ public class DatacenterWriteResponseHand
localdc = snitch.getDatacenter(FBUtilities.getLocalAddress());
}
- protected DatacenterWriteResponseHandler(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel, String table)
+ protected DatacenterWriteResponseHandler(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel, String table)
{
- super(writeEndpoints, hintedEndpoints, pendingEndpoints, consistencyLevel, table);
+ super(writeEndpoints, hintedEndpoints, consistencyLevel, table);
assert consistencyLevel == ConsistencyLevel.LOCAL_QUORUM;
}
- public static IWriteResponseHandler create(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel, String table)
+ public static IWriteResponseHandler create(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel, String table)
{
- return new DatacenterWriteResponseHandler(writeEndpoints, hintedEndpoints, pendingEndpoints, consistencyLevel, table);
+ return new DatacenterWriteResponseHandler(writeEndpoints, hintedEndpoints, consistencyLevel, table);
}
@Override
protected int determineBlockFor(String table)
{
NetworkTopologyStrategy strategy = (NetworkTopologyStrategy) Table.open(table).getReplicationStrategy();
- int blockFor = (strategy.getReplicationFactor(localdc) / 2) + 1;
- // If there is any pending endpoints we went to increase blockFor to make sure we guarantee CL (see CASSANDRA-833). However, we're only
- // intersted in endpoint in the local DC. Note that we use the fact that when a node boostrap (or leave), both the source and
- // destination of a pending range will be in the same DC (this is true because strategy == NTS)
- for (InetAddress pending : pendingEndpoints)
- {
- if (localdc.equals(snitch.getDatacenter(pending)))
- blockFor++;
- }
- return blockFor;
+ return (strategy.getReplicationFactor(localdc) / 2) + 1;
}
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java Thu Jun 9 00:16:27 2011
@@ -199,12 +199,10 @@ public class StorageProxy implements Sto
String table = mutation.getTable();
AbstractReplicationStrategy rs = Table.open(table).getReplicationStrategy();
- Pair<? extends Iterable<InetAddress>, ? extends Iterable<InetAddress>> p = getWriteEndpoints(table, mutation.key());
- Iterable<InetAddress> writeEndpoints = p.left;
- Iterable<InetAddress> pendingEndpoints = p.right;
+ Collection<InetAddress> writeEndpoints = getWriteEndpoints(table, mutation.key());
Multimap<InetAddress, InetAddress> hintedEndpoints = rs.getHintedEndpoints(writeEndpoints);
- IWriteResponseHandler responseHandler = rs.getWriteResponseHandler(writeEndpoints, hintedEndpoints, pendingEndpoints, consistency_level);
+ IWriteResponseHandler responseHandler = rs.getWriteResponseHandler(writeEndpoints, hintedEndpoints, consistency_level);
// exit early if we can't fulfill the CL at this time
responseHandler.assureSufficientLiveNodes();
@@ -213,7 +211,7 @@ public class StorageProxy implements Sto
return responseHandler;
}
- private static Pair<? extends Iterable<InetAddress>, ? extends Iterable<InetAddress>> getWriteEndpoints(String table, ByteBuffer key)
+ private static Collection<InetAddress> getWriteEndpoints(String table, ByteBuffer key)
{
StorageService ss = StorageService.instance;
List<InetAddress> naturalEndpoints = ss.getNaturalEndpoints(table, key);
@@ -389,11 +387,9 @@ public class StorageProxy implements Sto
// Exit now if we can't fulfill the CL here instead of forwarding to the leader replica
String table = cm.getTable();
AbstractReplicationStrategy rs = Table.open(table).getReplicationStrategy();
- Pair<? extends Iterable<InetAddress>, ? extends Iterable<InetAddress>> p = getWriteEndpoints(table, cm.key());
- Iterable<InetAddress> writeEndpoints = p.left;
- Iterable<InetAddress> pendingEndpoints = p.right;
+ Collection<InetAddress> writeEndpoints = getWriteEndpoints(table, cm.key());
Multimap<InetAddress, InetAddress> hintedEndpoints = rs.getHintedEndpoints(writeEndpoints);
- rs.getWriteResponseHandler(writeEndpoints, hintedEndpoints, pendingEndpoints, cm.consistency()).assureSufficientLiveNodes();
+ rs.getWriteResponseHandler(writeEndpoints, hintedEndpoints, cm.consistency()).assureSufficientLiveNodes();
// Forward the actual update to the chosen leader replica
IWriteResponseHandler responseHandler = WriteResponseHandler.create(endpoint);
Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/WriteResponseHandler.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/WriteResponseHandler.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/WriteResponseHandler.java (original)
+++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/WriteResponseHandler.java Thu Jun 9 00:16:27 2011
@@ -21,7 +21,6 @@ package org.apache.cassandra.service;
import java.net.InetAddress;
import java.util.Arrays;
import java.util.Collection;
-import java.util.Collections;
import java.util.concurrent.atomic.AtomicInteger;
import com.google.common.collect.ImmutableMultimap;
@@ -43,9 +42,9 @@ public class WriteResponseHandler extend
protected final AtomicInteger responses;
- protected WriteResponseHandler(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel, String table)
+ protected WriteResponseHandler(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel, String table)
{
- super(writeEndpoints, hintedEndpoints, pendingEndpoints, consistencyLevel);
+ super(writeEndpoints, hintedEndpoints, consistencyLevel);
responses = new AtomicInteger(determineBlockFor(table));
}
@@ -53,14 +52,13 @@ public class WriteResponseHandler extend
{
super(Arrays.asList(endpoint),
ImmutableMultimap.<InetAddress, InetAddress>builder().put(endpoint, endpoint).build(),
- Collections.<InetAddress>emptyList(),
ConsistencyLevel.ALL);
responses = new AtomicInteger(1);
}
- public static IWriteResponseHandler create(Iterable<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, Iterable<InetAddress> pendingEndpoints, ConsistencyLevel consistencyLevel, String table)
+ public static IWriteResponseHandler create(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistencyLevel, String table)
{
- return new WriteResponseHandler(writeEndpoints, hintedEndpoints, pendingEndpoints, consistencyLevel, table);
+ return new WriteResponseHandler(writeEndpoints, hintedEndpoints, consistencyLevel, table);
}
public static IWriteResponseHandler create(InetAddress endpoint)
@@ -76,11 +74,6 @@ public class WriteResponseHandler extend
protected int determineBlockFor(String table)
{
- return blockForCL() + pendingEndpoints.size();
- }
-
- private int blockForCL()
- {
switch (consistencyLevel)
{
case ONE:
Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java (original)
+++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/locator/SimpleStrategyTest.java Thu Jun 9 00:16:27 2011
@@ -146,7 +146,7 @@ public class SimpleStrategyTest extends
for (int i = 0; i < keyTokens.length; i++)
{
- Collection<InetAddress> endpoints = tmd.getWriteEndpoints(keyTokens[i], table, strategy.getNaturalEndpoints(keyTokens[i])).left;
+ Collection<InetAddress> endpoints = tmd.getWriteEndpoints(keyTokens[i], table, strategy.getNaturalEndpoints(keyTokens[i]));
assertTrue(endpoints.size() >= replicationFactor);
for (int j = 0; j < replicationFactor; j++)
Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java (original)
+++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/ConsistencyLevelTest.java Thu Jun 9 00:16:27 2011
@@ -23,7 +23,6 @@ package org.apache.cassandra.service;
import java.net.InetAddress;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.List;
import com.google.common.collect.HashMultimap;
@@ -96,7 +95,7 @@ public class ConsistencyLevelTest extend
hintedNodes.put(hosts.get(j), hosts.get(j));
}
- IWriteResponseHandler writeHandler = strategy.getWriteResponseHandler(hosts, hintedNodes, Collections.<InetAddress>emptyList(), c);
+ IWriteResponseHandler writeHandler = strategy.getWriteResponseHandler(hosts, hintedNodes, c);
IReadCommand command = new IReadCommand()
{
Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java (original)
+++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/LeaveAndBootstrapTest.java Thu Jun 9 00:16:27 2011
@@ -95,7 +95,7 @@ public class LeaveAndBootstrapTest exten
{
int replicationFactor = strategy.getReplicationFactor();
- HashSet<InetAddress> actual = new HashSet<InetAddress>(tmd.getWriteEndpoints(token, table, strategy.calculateNaturalEndpoints(token, tmd)).left);
+ HashSet<InetAddress> actual = new HashSet<InetAddress>(tmd.getWriteEndpoints(token, table, strategy.calculateNaturalEndpoints(token, tmd)));
HashSet<InetAddress> expected = new HashSet<InetAddress>();
for (int i = 0; i < replicationFactor; i++)
@@ -212,7 +212,7 @@ public class LeaveAndBootstrapTest exten
for (int i = 0; i < keyTokens.size(); i++)
{
- endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i)));
assertTrue(expectedEndpoints.get(table).get(keyTokens.get(i)).size() == endpoints.size());
assertTrue(expectedEndpoints.get(table).get(keyTokens.get(i)).containsAll(endpoints));
}
@@ -223,7 +223,7 @@ public class LeaveAndBootstrapTest exten
// tokens 5, 15 and 25 should go three nodes
for (int i=0; i<3; ++i)
{
- endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(i+1)));
assertTrue(endpoints.contains(hosts.get(i+2)));
@@ -231,7 +231,7 @@ public class LeaveAndBootstrapTest exten
}
// token 35 should go to nodes 4, 5, 6, 7 and boot1
- endpoints = tmd.getWriteEndpoints(keyTokens.get(3), table, strategy.getNaturalEndpoints(keyTokens.get(3))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(3), table, strategy.getNaturalEndpoints(keyTokens.get(3)));
assertTrue(endpoints.size() == 5);
assertTrue(endpoints.contains(hosts.get(4)));
assertTrue(endpoints.contains(hosts.get(5)));
@@ -240,7 +240,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(boot1));
// token 45 should go to nodes 5, 6, 7, 0, boot1 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(4), table, strategy.getNaturalEndpoints(keyTokens.get(4))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(4), table, strategy.getNaturalEndpoints(keyTokens.get(4)));
assertTrue(endpoints.size() == 6);
assertTrue(endpoints.contains(hosts.get(5)));
assertTrue(endpoints.contains(hosts.get(6)));
@@ -250,7 +250,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(boot2));
// token 55 should go to nodes 6, 7, 8, 0, 1, boot1 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(5), table, strategy.getNaturalEndpoints(keyTokens.get(5))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(5), table, strategy.getNaturalEndpoints(keyTokens.get(5)));
assertTrue(endpoints.size() == 7);
assertTrue(endpoints.contains(hosts.get(6)));
assertTrue(endpoints.contains(hosts.get(7)));
@@ -261,7 +261,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(boot2));
// token 65 should go to nodes 7, 8, 9, 0, 1 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(6), table, strategy.getNaturalEndpoints(keyTokens.get(6))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(6), table, strategy.getNaturalEndpoints(keyTokens.get(6)));
assertTrue(endpoints.size() == 6);
assertTrue(endpoints.contains(hosts.get(7)));
assertTrue(endpoints.contains(hosts.get(8)));
@@ -271,7 +271,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(boot2));
// token 75 should to go nodes 8, 9, 0, 1, 2 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(7), table, strategy.getNaturalEndpoints(keyTokens.get(7))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(7), table, strategy.getNaturalEndpoints(keyTokens.get(7)));
assertTrue(endpoints.size() == 6);
assertTrue(endpoints.contains(hosts.get(8)));
assertTrue(endpoints.contains(hosts.get(9)));
@@ -281,7 +281,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(boot2));
// token 85 should go to nodes 9, 0, 1 and 2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(8), table, strategy.getNaturalEndpoints(keyTokens.get(8))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(8), table, strategy.getNaturalEndpoints(keyTokens.get(8)));
assertTrue(endpoints.size() == 4);
assertTrue(endpoints.contains(hosts.get(9)));
assertTrue(endpoints.contains(hosts.get(0)));
@@ -289,7 +289,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(hosts.get(2)));
// token 95 should go to nodes 0, 1 and 2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(9), table, strategy.getNaturalEndpoints(keyTokens.get(9))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(9), table, strategy.getNaturalEndpoints(keyTokens.get(9)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(0)));
assertTrue(endpoints.contains(hosts.get(1)));
@@ -330,7 +330,7 @@ public class LeaveAndBootstrapTest exten
for (int i = 0; i < keyTokens.size(); i++)
{
- endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i)));
assertTrue(expectedEndpoints.get(table).get(keyTokens.get(i)).size() == endpoints.size());
assertTrue(expectedEndpoints.get(table).get(keyTokens.get(i)).containsAll(endpoints));
}
@@ -341,7 +341,7 @@ public class LeaveAndBootstrapTest exten
// tokens 5, 15 and 25 should go three nodes
for (int i=0; i<3; ++i)
{
- endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(i+1)));
assertTrue(endpoints.contains(hosts.get(i+2)));
@@ -349,21 +349,21 @@ public class LeaveAndBootstrapTest exten
}
// token 35 goes to nodes 4, 5 and boot1
- endpoints = tmd.getWriteEndpoints(keyTokens.get(3), table, strategy.getNaturalEndpoints(keyTokens.get(3))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(3), table, strategy.getNaturalEndpoints(keyTokens.get(3)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(4)));
assertTrue(endpoints.contains(hosts.get(5)));
assertTrue(endpoints.contains(boot1));
// token 45 goes to nodes 5, boot1 and node7
- endpoints = tmd.getWriteEndpoints(keyTokens.get(4), table, strategy.getNaturalEndpoints(keyTokens.get(4))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(4), table, strategy.getNaturalEndpoints(keyTokens.get(4)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(5)));
assertTrue(endpoints.contains(boot1));
assertTrue(endpoints.contains(hosts.get(7)));
// token 55 goes to boot1, 7, boot2, 8 and 0
- endpoints = tmd.getWriteEndpoints(keyTokens.get(5), table, strategy.getNaturalEndpoints(keyTokens.get(5))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(5), table, strategy.getNaturalEndpoints(keyTokens.get(5)));
assertTrue(endpoints.size() == 5);
assertTrue(endpoints.contains(boot1));
assertTrue(endpoints.contains(hosts.get(7)));
@@ -372,7 +372,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(hosts.get(0)));
// token 65 goes to nodes 7, boot2, 8, 0 and 1
- endpoints = tmd.getWriteEndpoints(keyTokens.get(6), table, strategy.getNaturalEndpoints(keyTokens.get(6))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(6), table, strategy.getNaturalEndpoints(keyTokens.get(6)));
assertTrue(endpoints.size() == 5);
assertTrue(endpoints.contains(hosts.get(7)));
assertTrue(endpoints.contains(boot2));
@@ -381,7 +381,7 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(hosts.get(1)));
// token 75 goes to nodes boot2, 8, 0, 1 and 2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(7), table, strategy.getNaturalEndpoints(keyTokens.get(7))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(7), table, strategy.getNaturalEndpoints(keyTokens.get(7)));
assertTrue(endpoints.size() == 5);
assertTrue(endpoints.contains(boot2));
assertTrue(endpoints.contains(hosts.get(8)));
@@ -390,14 +390,14 @@ public class LeaveAndBootstrapTest exten
assertTrue(endpoints.contains(hosts.get(2)));
// token 85 goes to nodes 0, 1 and 2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(8), table, strategy.getNaturalEndpoints(keyTokens.get(8))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(8), table, strategy.getNaturalEndpoints(keyTokens.get(8)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(0)));
assertTrue(endpoints.contains(hosts.get(1)));
assertTrue(endpoints.contains(hosts.get(2)));
// token 95 goes to nodes 0, 1 and 2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(9), table, strategy.getNaturalEndpoints(keyTokens.get(9))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(9), table, strategy.getNaturalEndpoints(keyTokens.get(9)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(0)));
assertTrue(endpoints.contains(hosts.get(1)));
Modified: cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/MoveTest.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/MoveTest.java?rev=1133610&r1=1133609&r2=1133610&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/MoveTest.java (original)
+++ cassandra/branches/cassandra-0.8/test/unit/org/apache/cassandra/service/MoveTest.java Thu Jun 9 00:16:27 2011
@@ -98,7 +98,7 @@ public class MoveTest extends CleanupHel
{
int replicationFactor = strategy.getReplicationFactor();
- HashSet<InetAddress> actual = new HashSet<InetAddress>(tmd.getWriteEndpoints(token, table, strategy.calculateNaturalEndpoints(token, tmd)).left);
+ HashSet<InetAddress> actual = new HashSet<InetAddress>(tmd.getWriteEndpoints(token, table, strategy.calculateNaturalEndpoints(token, tmd)));
HashSet<InetAddress> expected = new HashSet<InetAddress>();
for (int i = 0; i < replicationFactor; i++)
@@ -368,7 +368,7 @@ public class MoveTest extends CleanupHel
for (Token token : keyTokens)
{
- endpoints = tmd.getWriteEndpoints(token, table, strategy.getNaturalEndpoints(token)).left;
+ endpoints = tmd.getWriteEndpoints(token, table, strategy.getNaturalEndpoints(token));
assertTrue(expectedEndpoints.get(table).get(token).size() == endpoints.size());
assertTrue(expectedEndpoints.get(table).get(token).containsAll(endpoints));
}
@@ -380,7 +380,7 @@ public class MoveTest extends CleanupHel
// tokens 5, 15 and 25 should go three nodes
for (int i = 0; i < 3; i++)
{
- endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(i), table, strategy.getNaturalEndpoints(keyTokens.get(i)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(i+1)));
assertTrue(endpoints.contains(hosts.get(i+2)));
@@ -388,7 +388,7 @@ public class MoveTest extends CleanupHel
}
// token 35 should go to nodes 4, 5, 6 and boot1
- endpoints = tmd.getWriteEndpoints(keyTokens.get(3), table, strategy.getNaturalEndpoints(keyTokens.get(3))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(3), table, strategy.getNaturalEndpoints(keyTokens.get(3)));
assertTrue(endpoints.size() == 4);
assertTrue(endpoints.contains(hosts.get(4)));
assertTrue(endpoints.contains(hosts.get(5)));
@@ -396,7 +396,7 @@ public class MoveTest extends CleanupHel
assertTrue(endpoints.contains(boot1));
// token 45 should go to nodes 5, 6, 7 boot1
- endpoints = tmd.getWriteEndpoints(keyTokens.get(4), table, strategy.getNaturalEndpoints(keyTokens.get(4))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(4), table, strategy.getNaturalEndpoints(keyTokens.get(4)));
assertTrue(endpoints.size() == 4);
assertTrue(endpoints.contains(hosts.get(5)));
assertTrue(endpoints.contains(hosts.get(6)));
@@ -404,7 +404,7 @@ public class MoveTest extends CleanupHel
assertTrue(endpoints.contains(boot1));
// token 55 should go to nodes 6, 7, 8 boot1 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(5), table, strategy.getNaturalEndpoints(keyTokens.get(5))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(5), table, strategy.getNaturalEndpoints(keyTokens.get(5)));
assertTrue(endpoints.size() == 5);
assertTrue(endpoints.contains(hosts.get(6)));
assertTrue(endpoints.contains(hosts.get(7)));
@@ -413,7 +413,7 @@ public class MoveTest extends CleanupHel
assertTrue(endpoints.contains(boot2));
// token 65 should go to nodes 7, 8, 9 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(6), table, strategy.getNaturalEndpoints(keyTokens.get(6))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(6), table, strategy.getNaturalEndpoints(keyTokens.get(6)));
assertTrue(endpoints.size() == 4);
assertTrue(endpoints.contains(hosts.get(7)));
assertTrue(endpoints.contains(hosts.get(8)));
@@ -421,7 +421,7 @@ public class MoveTest extends CleanupHel
assertTrue(endpoints.contains(boot2));
// token 75 should to go nodes 8, 9, 0 and boot2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(7), table, strategy.getNaturalEndpoints(keyTokens.get(7))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(7), table, strategy.getNaturalEndpoints(keyTokens.get(7)));
assertTrue(endpoints.size() == 4);
assertTrue(endpoints.contains(hosts.get(8)));
assertTrue(endpoints.contains(hosts.get(9)));
@@ -429,14 +429,14 @@ public class MoveTest extends CleanupHel
assertTrue(endpoints.contains(boot2));
// token 85 should go to nodes 9, 0, 1
- endpoints = tmd.getWriteEndpoints(keyTokens.get(8), table, strategy.getNaturalEndpoints(keyTokens.get(8))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(8), table, strategy.getNaturalEndpoints(keyTokens.get(8)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(9)));
assertTrue(endpoints.contains(hosts.get(0)));
assertTrue(endpoints.contains(hosts.get(1)));
// token 95 should go to nodes 0, 1 and 2
- endpoints = tmd.getWriteEndpoints(keyTokens.get(9), table, strategy.getNaturalEndpoints(keyTokens.get(9))).left;
+ endpoints = tmd.getWriteEndpoints(keyTokens.get(9), table, strategy.getNaturalEndpoints(keyTokens.get(9)));
assertTrue(endpoints.size() == 3);
assertTrue(endpoints.contains(hosts.get(0)));
assertTrue(endpoints.contains(hosts.get(1)));