From 75db7b59b7ff63d04a6d455ffadf6356be6accf8 Mon Sep 17 00:00:00 2001 From: Chris Goffinet Date: Sat, 5 Dec 2009 01:44:41 +0000 Subject: [PATCH] Change convertFromDiskFormat to use substring splitting vs using split operation (slow). patch by goffinet; reviewed by stuhood for CASSANDRA-581 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@887481 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/cassandra/dht/RandomPartitioner.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/src/java/org/apache/cassandra/dht/RandomPartitioner.java b/src/java/org/apache/cassandra/dht/RandomPartitioner.java index 9bd1b2467f..796d1ca6af 100644 --- a/src/java/org/apache/cassandra/dht/RandomPartitioner.java +++ b/src/java/org/apache/cassandra/dht/RandomPartitioner.java @@ -39,9 +39,6 @@ public class RandomPartitioner implements IPartitioner private static final String DELIMITER = ":"; - //to avoid having to create the pattern on every String.split - private Pattern diskDelimiter = Pattern.compile(DELIMITER); - private static final Comparator> comparator = new Comparator>() { public int compare(DecoratedKey o1, DecoratedKey o2) @@ -64,9 +61,11 @@ public class RandomPartitioner implements IPartitioner public DecoratedKey convertFromDiskFormat(String key) { - String[] parts = diskDelimiter.split(key, 2); - assert parts.length == 2; - return new DecoratedKey(new BigIntegerToken(parts[0]), parts[1]); + int splitPoint = key.indexOf(DELIMITER); + String first = key.substring(0, splitPoint); + String second = key.substring(splitPoint+1); + + return new DecoratedKey(new BigIntegerToken(first), second); } public String convertToDiskFormat(DecoratedKey key)