Author: jbellis
Date: Wed Dec 23 20:11:07 2009
New Revision: 893619

URL: http://svn.apache.org/viewvc?rev=893619&view=rev
Log:
avoid unnecessarily serializations of RowMutations from both CommitLog and 
RowMutationVerbHandlers.  patch by gdusbabek and jbellis; reviewed by goffinet 
for CASSANDRA-652

Modified:
    incubator/cassandra/branches/cassandra-0.5/CHANGES.txt
    
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/CommitLog.java
    
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutation.java
    
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
    
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/Table.java

Modified: incubator/cassandra/branches/cassandra-0.5/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/CHANGES.txt?rev=893619&r1=893618&r2=893619&view=diff
==============================================================================
--- incubator/cassandra/branches/cassandra-0.5/CHANGES.txt (original)
+++ incubator/cassandra/branches/cassandra-0.5/CHANGES.txt Wed Dec 23 20:11:07 
2009
@@ -16,6 +16,8 @@
  * fix bug determining closest neighbor for use in multiple datacenters
    (CASSANDRA-648)
  * Vast improvements in anticompaction speed (CASSANDRA-607)
+ * Speed up log replay and writes by avoiding redundant serializations
+   (CASSANDRA-652)
 
 
 0.5.0 beta 2

Modified: 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/CommitLog.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/CommitLog.java?rev=893619&r1=893618&r2=893619&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/CommitLog.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/CommitLog.java
 Wed Dec 23 20:11:07 2009
@@ -358,7 +358,7 @@
                         {
                             try
                             {
-                                rm.apply(false);
+                                Table.open(rm.getTable()).apply(rm, null, 
false);
                             }
                             catch (IOException e)
                             {
@@ -453,7 +453,7 @@
      * of any problems. This way we can assume that the subsequent commit log
      * entry will override the garbage left over by the previous write.
     */
-    void add(RowMutation rowMutation, DataOutputBuffer serializedRow) throws 
IOException
+    void add(RowMutation rowMutation, Object serializedRow) throws IOException
     {
         Callable<CommitLogContext> task = new LogRecordAdder(rowMutation, 
serializedRow);
 
@@ -621,7 +621,7 @@
         final RowMutation rowMutation;
         final Object serializedRow;
 
-        LogRecordAdder(RowMutation rm, DataOutputBuffer serializedRow)
+        LogRecordAdder(RowMutation rm, Object serializedRow)
         {
             this.rowMutation = rm;
             this.serializedRow = serializedRow;

Modified: 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutation.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutation.java?rev=893619&r1=893618&r2=893619&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutation.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutation.java
 Wed Dec 23 20:11:07 2009
@@ -200,12 +200,7 @@
     */
     public void apply() throws IOException
     {
-        apply(true);
-    }
-
-    public void apply(boolean writeCommitLog) throws IOException
-    {
-        Table.open(table_).apply(this, this.getSerializedBuffer(), 
writeCommitLog);
+        Table.open(table_).apply(this, getSerializedBuffer(), true);
     }
 
     /*

Modified: 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java?rev=893619&r1=893618&r2=893619&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/RowMutationVerbHandler.java
 Wed Dec 23 20:11:07 2009
@@ -58,6 +58,7 @@
                 hintedMutation.apply();
             }
 
+            Table.open(rm.getTable()).apply(rm, bytes, true);
             rm.apply();
 
             WriteResponse response = new WriteResponse(rm.getTable(), 
rm.key(), true);

Modified: 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/Table.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/Table.java?rev=893619&r1=893618&r2=893619&view=diff
==============================================================================
--- 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/Table.java
 (original)
+++ 
incubator/cassandra/branches/cassandra-0.5/src/java/org/apache/cassandra/db/Table.java
 Wed Dec 23 20:11:07 2009
@@ -428,7 +428,7 @@
      * Once this happens the data associated with the individual column 
families
      * is also written to the column family store's memtable.
     */
-    void apply(RowMutation mutation, DataOutputBuffer serializedMutation, 
boolean writeCommitLog) throws IOException
+    void apply(RowMutation mutation, Object serializedMutation, boolean 
writeCommitLog) throws IOException
     {
         HashMap<ColumnFamilyStore,Memtable> memtablesToFlush = new 
HashMap<ColumnFamilyStore, Memtable>(2);
 


Reply via email to