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;
     }