You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2009/03/27 06:20:51 UTC
svn commit: r759021 - in
/incubator/cassandra/trunk/src/org/apache/cassandra/service:
BootstrapAndLbHelper.java IPartitioner.java LocationInfoVerbHandler.java
OrderPreservingHashPartitioner.java RandomPartitioner.java
TokenInfoVerbHandler.java
Author: alakshman
Date: Fri Mar 27 05:20:50 2009
New Revision: 759021
URL: http://svn.apache.org/viewvc?rev=759021&view=rev
Log:
The paritioning related stuff checked in again.
Added:
incubator/cassandra/trunk/src/org/apache/cassandra/service/BootstrapAndLbHelper.java
- copied unchanged from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/BootstrapAndLbHelper.java
incubator/cassandra/trunk/src/org/apache/cassandra/service/IPartitioner.java
- copied unchanged from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/IPartitioner.java
incubator/cassandra/trunk/src/org/apache/cassandra/service/LocationInfoVerbHandler.java
- copied unchanged from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/LocationInfoVerbHandler.java
incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java
- copied, changed from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java
incubator/cassandra/trunk/src/org/apache/cassandra/service/RandomPartitioner.java
- copied unchanged from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/RandomPartitioner.java
incubator/cassandra/trunk/src/org/apache/cassandra/service/TokenInfoVerbHandler.java
- copied unchanged from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/TokenInfoVerbHandler.java
Copied: incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java (from r758964, incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java)
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java?p2=incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java&p1=incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java&r1=758964&r2=759021&rev=759021&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java (original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/service/OrderPreservingHashPartitioner.java Fri Mar 27 05:20:50 2009
@@ -22,20 +22,22 @@
public class OrderPreservingHashPartitioner implements IPartitioner
{
- private final static int maxKeyHashLength_ = 24;
- private static final BigInteger prime_ = BigInteger.valueOf(31);
+ private final static int maxKeyHashLength_ = 36;
+ private final static BigInteger ONE = BigInteger.ONE;
+ /* May be even 255L will work. But I need to verify that. */
+ private static final BigInteger prime_ = BigInteger.valueOf(Character.MAX_VALUE);
public BigInteger hash(String key)
{
BigInteger h = BigInteger.ZERO;
char val[] = key.toCharArray();
-
- for (int i = 0; i < OrderPreservingHashPartitioner.maxKeyHashLength_; i++)
+
+ for (int i = 0; i < maxKeyHashLength_; i++)
{
if( i < val.length )
- h = OrderPreservingHashPartitioner.prime_.multiply(h).add( BigInteger.valueOf(val[i]) );
+ h = prime_.multiply(h).add( BigInteger.valueOf(val[i]) );
else
- h = OrderPreservingHashPartitioner.prime_.multiply(h).add( OrderPreservingHashPartitioner.prime_ );
+ h = prime_.multiply(h).add( ONE );
}
return h;
}