Author: jbellis
Date: Fri Apr 17 20:08:49 2009
New Revision: 766136

URL: http://svn.apache.org/viewvc?rev=766136&view=rev
Log:
change column_t value to binary from string.  patch by johano; reviewed by 
jbellis for #29

Modified:
    incubator/cassandra/trunk/interface/cassandra.thrift
    incubator/cassandra/trunk/src/org/apache/cassandra/cli/CliClient.java
    incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java
    incubator/cassandra/trunk/src/org/apache/cassandra/service/Cassandra.java
    
incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraServer.java
    incubator/cassandra/trunk/src/org/apache/cassandra/service/column_t.java
    incubator/cassandra/trunk/src/org/apache/cassandra/test/DataImporter.java
    incubator/cassandra/trunk/src/org/apache/cassandra/test/StressTest.java

Modified: incubator/cassandra/trunk/interface/cassandra.thrift
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/interface/cassandra.thrift?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/interface/cassandra.thrift (original)
+++ incubator/cassandra/trunk/interface/cassandra.thrift Fri Apr 17 20:08:49 
2009
@@ -11,7 +11,7 @@
 
 struct column_t {
    1: string                        columnName,
-   2: string                        value,
+   2: binary                        value,
    3: i64                           timestamp,
 }
 
@@ -57,7 +57,7 @@
   list<column_t> get_slice_by_names(string tablename,string key,string 
columnFamily, list<string> columnNames) throws (1:CassandraException e),
   column_t       get_column(string tablename,string key,string 
columnFamily_column) throws (1:CassandraException e),
   i32            get_column_count(string tablename,string key,string 
columnFamily_column) throws (1:CassandraException e),
-  async void     insert(string tablename,string key,string 
columnFamily_column, string cellData,i64 timestamp),
+  async void     insert(string tablename,string key,string 
columnFamily_column, binary cellData,i64 timestamp),
   async void     batch_insert(batch_mutation_t batchMutation),
   bool           batch_insert_blocking(batch_mutation_t batchMutation) throws 
(1:CassandraException e),
   bool           remove(string tablename,string key,string 
columnFamily_column, i64 timestamp, bool block),

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/cli/CliClient.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/cli/CliClient.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/cli/CliClient.java 
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/cli/CliClient.java Fri 
Apr 17 20:08:49 2009
@@ -207,7 +207,7 @@
 
             // do the insert
             thriftClient_.insert(tableName, key, columnFamily + ":" + 
columnName,
-                                 value, System.currentTimeMillis());
+                                 value.getBytes(), System.currentTimeMillis());
 
             css_.out.println("Value inserted.");
         }

Modified: incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java 
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/db/RowMutation.java Fri 
Apr 17 20:08:49 2009
@@ -286,7 +286,7 @@
             for (column_t columnData : list)
             {
                 rm.add(cfname + ":" + columnData.columnName,
-                       columnData.value.getBytes(), columnData.timestamp);
+                       columnData.value, columnData.timestamp);
 
             }
         }
@@ -310,7 +310,7 @@
                     for (column_t columnData : superColumnData.columns)
                     {
                         rm.add(key.toString() + ":" + superColumnData.name + 
":" + columnData.columnName,
-                               columnData.value.getBytes(), 
columnData.timestamp);
+                               columnData.value, columnData.timestamp);
                     }
                 }
                 else

Modified: 
incubator/cassandra/trunk/src/org/apache/cassandra/service/Cassandra.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/service/Cassandra.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/service/Cassandra.java 
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/service/Cassandra.java 
Fri Apr 17 20:08:49 2009
@@ -30,7 +30,7 @@
 
     public int get_column_count(String tablename, String key, String 
columnFamily_column) throws CassandraException, TException;
 
-    public void insert(String tablename, String key, String 
columnFamily_column, String cellData, long timestamp) throws TException;
+    public void insert(String tablename, String key, String 
columnFamily_column, byte[] cellData, long timestamp) throws TException;
 
     public void batch_insert(batch_mutation_t batchMutation) throws TException;
 
@@ -244,12 +244,12 @@
       throw new TApplicationException(TApplicationException.MISSING_RESULT, 
"get_column_count failed: unknown result");
     }
 
-    public void insert(String tablename, String key, String 
columnFamily_column, String cellData, long timestamp) throws TException
+    public void insert(String tablename, String key, String 
columnFamily_column, byte[] cellData, long timestamp) throws TException
     {
       send_insert(tablename, key, columnFamily_column, cellData, timestamp);
     }
 
-    public void send_insert(String tablename, String key, String 
columnFamily_column, String cellData, long timestamp) throws TException
+    public void send_insert(String tablename, String key, String 
columnFamily_column, byte[] cellData, long timestamp) throws TException
     {
       oprot_.writeMessageBegin(new TMessage("insert", TMessageType.CALL, 
seqid_));
       insert_args args = new insert_args();
@@ -3858,7 +3858,7 @@
     public static final int KEY = -2;
     public String columnFamily_column;
     public static final int COLUMNFAMILY_COLUMN = -3;
-    public String cellData;
+    public byte[] cellData;
     public static final int CELLDATA = -4;
     public long timestamp;
     public static final int TIMESTAMP = -5;
@@ -3896,7 +3896,7 @@
       String tablename,
       String key,
       String columnFamily_column,
-      String cellData,
+      byte[] cellData,
       long timestamp)
     {
       this();
@@ -3930,7 +3930,8 @@
       }
       __isset.cellData = other.__isset.cellData;
       if (other.cellData != null) {
-        this.cellData = other.cellData;
+        this.cellData = new byte[other.cellData.length];
+        System.arraycopy(other.cellData, 0, cellData, 0, 
other.cellData.length);
       }
       __isset.timestamp = other.__isset.timestamp;
       this.timestamp = other.timestamp;
@@ -4007,11 +4008,11 @@
       this.__isset.columnFamily_column = value;
     }
 
-    public String getCellData() {
+    public byte[] getCellData() {
       return this.cellData;
     }
 
-    public void setCellData(String cellData) {
+    public void setCellData(byte[] cellData) {
       this.cellData = cellData;
       this.__isset.cellData = (cellData != null);
     }
@@ -4066,7 +4067,7 @@
         break;
 
       case CELLDATA:
-        setCellData((String)value);
+        setCellData((byte[])value);
         break;
 
       case TIMESTAMP:
@@ -4163,7 +4164,7 @@
       if (this_present_cellData || that_present_cellData) {
         if (!(this_present_cellData && that_present_cellData))
           return false;
-        if (!this.cellData.equals(that.cellData))
+        if (!java.util.Arrays.equals(this.cellData, that.cellData))
           return false;
       }
 
@@ -4221,7 +4222,7 @@
             break;
           case CELLDATA:
             if (field.type == TType.STRING) {
-              this.cellData = iprot.readString();
+              this.cellData = iprot.readBinary();
               this.__isset.cellData = true;
             } else { 
               TProtocolUtil.skip(iprot, field.type);
@@ -4269,7 +4270,7 @@
       }
       if (this.cellData != null) {
         oprot.writeFieldBegin(CELL_DATA_FIELD_DESC);
-        oprot.writeString(this.cellData);
+        oprot.writeBinary(this.cellData);
         oprot.writeFieldEnd();
       }
       oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
@@ -4298,7 +4299,16 @@
       first = false;
       if (!first) sb.append(", ");
       sb.append("cellData:");
-      sb.append(this.cellData);
+      if (cellData == null) { 
+        sb.append("null");
+      } else {
+        int __cellData_size = Math.min(this.cellData.length, 128);
+        for (int i = 0; i < __cellData_size; i++) {
+          if (i != 0) sb.append(" ");
+          sb.append(Integer.toHexString(this.cellData[i]).length() > 1 ? 
Integer.toHexString(this.cellData[i]).substring(Integer.toHexString(this.cellData[i]).length()
 - 2).toUpperCase() : "0" + 
Integer.toHexString(this.cellData[i]).toUpperCase());
+        }
+        if (this.cellData.length > 128) sb.append(" ...");
+      }
       first = false;
       if (!first) sb.append(", ");
       sb.append("timestamp:");

Modified: 
incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraServer.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraServer.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraServer.java 
(original)
+++ 
incubator/cassandra/trunk/src/org/apache/cassandra/service/CassandraServer.java 
Fri Apr 17 20:08:49 2009
@@ -129,7 +129,7 @@
             {
                 continue;
             }
-            column_t thrift_column = new column_t(column.name(), new 
String(column.value()), column.timestamp());
+            column_t thrift_column = new column_t(column.name(), 
column.value(), column.timestamp());
             thriftColumns.add(thrift_column);
         }
         return thriftColumns;
@@ -360,7 +360,7 @@
             {
                 return null;
             }
-            return new column_t(column.name(), new String(column.value()), 
column.timestamp());
+            return new column_t(column.name(), column.value(), 
column.timestamp());
                }
                catch (Exception ex)
                {
@@ -436,13 +436,13 @@
                return count;
        }
 
-    public void insert(String tablename, String key, String 
columnFamily_column, String cellData, long timestamp)
+    public void insert(String tablename, String key, String 
columnFamily_column, byte[] cellData, long timestamp)
        {
                try
                {
                        validateTable(tablename);
                        RowMutation rm = new RowMutation(tablename, key.trim());
-                       rm.add(columnFamily_column, cellData.getBytes(), 
timestamp);
+                       rm.add(columnFamily_column, cellData, timestamp);
                        StorageProxy.insert(rm);
                }
                catch (Exception e)

Modified: 
incubator/cassandra/trunk/src/org/apache/cassandra/service/column_t.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/service/column_t.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/service/column_t.java 
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/service/column_t.java 
Fri Apr 17 20:08:49 2009
@@ -26,7 +26,7 @@
 
   public String columnName;
   public static final int COLUMNNAME = 1;
-  public String value;
+  public byte[] value;
   public static final int VALUE = 2;
   public long timestamp;
   public static final int TIMESTAMP = 3;
@@ -56,7 +56,7 @@
 
   public column_t(
     String columnName,
-    String value,
+    byte[] value,
     long timestamp)
   {
     this();
@@ -78,7 +78,8 @@
     }
     __isset.value = other.__isset.value;
     if (other.value != null) {
-      this.value = other.value;
+      this.value = new byte[other.value.length];
+      System.arraycopy(other.value, 0, value, 0, other.value.length);
     }
     __isset.timestamp = other.__isset.timestamp;
     this.timestamp = other.timestamp;
@@ -111,11 +112,11 @@
     this.__isset.columnName = value;
   }
 
-  public String getValue() {
+  public byte[] getValue() {
     return this.value;
   }
 
-  public void setValue(String value) {
+  public void setValue(byte[] value) {
     this.value = value;
     this.__isset.value = (value != null);
   }
@@ -162,7 +163,7 @@
       break;
 
     case VALUE:
-      setValue((String)value);
+      setValue((byte[])value);
       break;
 
     case TIMESTAMP:
@@ -231,7 +232,7 @@
     if (this_present_value || that_present_value) {
       if (!(this_present_value && that_present_value))
         return false;
-      if (!this.value.equals(that.value))
+      if (!java.util.Arrays.equals(this.value, that.value))
         return false;
     }
 
@@ -273,7 +274,7 @@
           break;
         case VALUE:
           if (field.type == TType.STRING) {
-            this.value = iprot.readString();
+            this.value = iprot.readBinary();
             this.__isset.value = true;
           } else { 
             TProtocolUtil.skip(iprot, field.type);
@@ -311,7 +312,7 @@
     }
     if (this.value != null) {
       oprot.writeFieldBegin(VALUE_FIELD_DESC);
-      oprot.writeString(this.value);
+      oprot.writeBinary(this.value);
       oprot.writeFieldEnd();
     }
     oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC);
@@ -332,7 +333,16 @@
     first = false;
     if (!first) sb.append(", ");
     sb.append("value:");
-    sb.append(this.value);
+    if (value == null) { 
+      sb.append("null");
+    } else {
+      int __value_size = Math.min(this.value.length, 128);
+      for (int i = 0; i < __value_size; i++) {
+        if (i != 0) sb.append(" ");
+        sb.append(Integer.toHexString(this.value[i]).length() > 1 ? 
Integer.toHexString(this.value[i]).substring(Integer.toHexString(this.value[i]).length()
 - 2).toUpperCase() : "0" + Integer.toHexString(this.value[i]).toUpperCase());
+      }
+      if (this.value.length > 128) sb.append(" ...");
+    }
     first = false;
     if (!first) sb.append(", ");
     sb.append("timestamp:");

Modified: 
incubator/cassandra/trunk/src/org/apache/cassandra/test/DataImporter.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/test/DataImporter.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/test/DataImporter.java 
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/test/DataImporter.java 
Fri Apr 17 20:08:49 2009
@@ -131,7 +131,7 @@
                try {
                        long t = System.currentTimeMillis();
                        peerstorageClient_.insert(tablename_, rowKey, 
columnFamily_ + ":"
-                                       + column, columnValue, ts);
+                                       + column, columnValue.getBytes(), ts);
                        logger_.debug("Time taken for thrift..."
                                        + (System.currentTimeMillis() - t));
                } catch (Exception e) {
@@ -304,7 +304,7 @@
                        }
                        column_t columnData = new column_t();
                        columnData.columnName = threadId;
-                       columnData.value = String.valueOf(isDeleted);
+                       columnData.value = String.valueOf(isDeleted).getBytes();
                        columnData.timestamp = lastUpdated;
                        // List <MboxStruct> list = 
userthreadmap.get(rs.getString(1));
                        if (folder == 0) {
@@ -405,7 +405,7 @@
                        }
                        column_t columnData = new column_t();
                        columnData.columnName = threadId;
-                       columnData.value = String.valueOf(isDeleted);
+                       columnData.value = String.valueOf(isDeleted).getBytes();
                        columnData.timestamp = lastUpdated;
                        List<column_t> list = 
rmInbox.cfmap.get("MailboxMailList"+(columnFamilyHack_%divideby_));
                        if (list == null) {
@@ -515,7 +515,7 @@
                        }
                        column_t columnData = new column_t();
                        columnData.columnName = threadId;
-                       columnData.value = String.valueOf(isDeleted);
+                       columnData.value = String.valueOf(isDeleted).getBytes();
                        columnData.timestamp = lastUpdated;
                        // List <MboxStruct> list = 
userthreadmap.get(rs.getString(1));
                        if (folder == 0) {
@@ -697,7 +697,7 @@
                        }
                        column_t columnData = new column_t();
                        columnData.columnName = threadId;
-                       columnData.value = String.valueOf(isDeleted);
+                       columnData.value = String.valueOf(isDeleted).getBytes();
                        columnData.timestamp = lastUpdated;
                        // List <MboxStruct> list = 
userthreadmap.get(rs.getString(1));
                        if (folder == 0) {

Modified: 
incubator/cassandra/trunk/src/org/apache/cassandra/test/StressTest.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/org/apache/cassandra/test/StressTest.java?rev=766136&r1=766135&r2=766136&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/org/apache/cassandra/test/StressTest.java 
(original)
+++ incubator/cassandra/trunk/src/org/apache/cassandra/test/StressTest.java Fri 
Apr 17 20:08:49 2009
@@ -433,11 +433,11 @@
                                Thread.sleep(0, 1000000000/requestsPerSecond_);
                        else
                                Thread.sleep(1000/requestsPerSecond_);
-                       peerstorageClient_.insert(table, key, columnFamily, new 
String(bytes), ts);
+                       peerstorageClient_.insert(table, key, columnFamily, 
bytes, ts);
                } catch (Exception e) {
                        try {
                                peerstorageClient_ = connect();
-                               peerstorageClient_.insert(table, key, 
columnFamily, new String(bytes), ts);
+                               peerstorageClient_.insert(table, key, 
columnFamily, bytes, ts);
                        } catch (Exception e1) {
                                e1.printStackTrace();
                        }
@@ -622,7 +622,7 @@
                    for( int j = 1; j <= columns ; j++)
                    {
                        random.nextBytes(bytes);
-                       column_arr.add(new column_t(columnFix_ + j, 
bytes.toString(), ts));
+                       column_arr.add(new column_t(columnFix_ + j, bytes, ts));
                    }
                    bt.cfmap.put(columnFamilyColumn_, column_arr);
                    apply(bt);
@@ -659,7 +659,7 @@
                            for( int j = 1; j <= columns ; j++)
                            {
                                random.nextBytes(bytes);
-                               column_arr.add(new column_t(columnFix_ + j, 
bytes.toString(), ts));
+                               column_arr.add(new column_t(columnFix_ + j, 
bytes, ts));
                            }
                        superColumn_arr.add(new superColumn_t(superColumnFix_ + 
i, column_arr));        
                    }
@@ -688,9 +688,9 @@
                int key = random.nextInt();
                int threadId = random.nextInt();
                int word = random.nextInt();
-                       peerstorageClient_.insert("Mailbox", 
Integer.toString(key), "MailboxMailList0:" + Integer.toString(threadId),  new 
String(bytes1), t++);
-                       peerstorageClient_.insert("Mailbox", 
Integer.toString(key), "MailboxThreadList0:" + Integer.toString(word) + ":" + 
Integer.toString(threadId),  new String(bytes), t++);
-                       peerstorageClient_.insert("Mailbox", 
Integer.toString(key), "MailboxUserList0:"+ Integer.toString(word) + ":" + 
Integer.toString(threadId),  new String(bytes), t++);
+                       peerstorageClient_.insert("Mailbox", 
Integer.toString(key), "MailboxMailList0:" + Integer.toString(threadId), 
bytes1, t++);
+                       peerstorageClient_.insert("Mailbox", 
Integer.toString(key), "MailboxThreadList0:" + Integer.toString(word) + ":" + 
Integer.toString(threadId), bytes, t++);
+                       peerstorageClient_.insert("Mailbox", 
Integer.toString(key), "MailboxUserList0:"+ Integer.toString(word) + ":" + 
Integer.toString(threadId), bytes, t++);
        }
        }
 


Reply via email to