Author: brandonwilliams Date: Tue Dec 28 21:49:01 2010 New Revision: 1053453
URL: http://svn.apache.org/viewvc?rev=1053453&view=rev Log: Avoid synchronization in getPendingRanges. Patch by brandonwilliams, reviewed by jbellis for CASSANDRA-1370 Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/locator/TokenMetadata.java Modified: cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/locator/TokenMetadata.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/locator/TokenMetadata.java?rev=1053453&r1=1053452&r2=1053453&view=diff ============================================================================== --- cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/locator/TokenMetadata.java (original) +++ cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/locator/TokenMetadata.java Tue Dec 28 21:49:01 2010 @@ -319,13 +319,15 @@ public class TokenMetadata } } - private synchronized Multimap<Range, InetAddress> getPendingRangesMM(String table) + private Multimap<Range, InetAddress> getPendingRangesMM(String table) { Multimap<Range, InetAddress> map = pendingRanges.get(table); if (map == null) { - map = HashMultimap.create(); - pendingRanges.put(table, map); + map = HashMultimap.create(); + Multimap<Range, InetAddress> newmap = pendingRanges.putIfAbsent(table, map); + if (newmap != null) + map = newmap; } return map; }
