convert RowMutations on the cql3 path to use more-efficient mutations map
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/200ed658 Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/200ed658 Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/200ed658 Branch: refs/heads/trunk Commit: 200ed658454822985179cb1d82e0cbb12072f28b Parents: a9b075d Author: Jonathan Ellis <[email protected]> Authored: Thu Feb 28 10:10:52 2013 -0600 Committer: Jonathan Ellis <[email protected]> Committed: Thu Feb 28 10:10:52 2013 -0600 ---------------------------------------------------------------------- .../cassandra/cql3/statements/DeleteStatement.java | 6 +++--- .../cassandra/cql3/statements/UpdateStatement.java | 5 +++-- .../org/apache/cassandra/service/StorageProxy.java | 5 +++-- 3 files changed, 9 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/200ed658/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java b/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java index 91462d3..3461870 100644 --- a/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/DeleteStatement.java @@ -20,6 +20,7 @@ package org.apache.cassandra.cql3.statements; import java.nio.ByteBuffer; import java.util.*; +import org.apache.cassandra.config.Schema; import org.apache.cassandra.cql3.*; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.ConsistencyLevel; @@ -102,8 +103,7 @@ public class DeleteStatement extends ModificationStatement throws InvalidRequestException { QueryProcessor.validateKey(key); - RowMutation rm = new RowMutation(cfDef.cfm.ksName, key); - ColumnFamily cf = rm.addOrGet(columnFamily()); + ColumnFamily cf = ColumnFamily.create(Schema.instance.getCFMetaData(cfDef.cfm.ksName, columnFamily())); if (toRemove.isEmpty() && builder.componentCount() == 0) { @@ -135,7 +135,7 @@ public class DeleteStatement extends ModificationStatement } } - return rm; + return new RowMutation(cfDef.cfm.ksName, key, cf); } public ParsedStatement.Prepared prepare(ColumnSpecification[] boundNames) throws InvalidRequestException http://git-wip-us.apache.org/repos/asf/cassandra/blob/200ed658/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java b/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java index 8abd09b..ad8aa48 100644 --- a/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java +++ b/src/java/org/apache/cassandra/cql3/statements/UpdateStatement.java @@ -20,6 +20,7 @@ package org.apache.cassandra.cql3.statements; import java.nio.ByteBuffer; import java.util.*; +import org.apache.cassandra.config.Schema; import org.apache.cassandra.cql3.*; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.db.*; @@ -203,8 +204,7 @@ public class UpdateStatement extends ModificationStatement validateKey(key); QueryProcessor.validateKey(key); - RowMutation rm = new RowMutation(cfDef.cfm.ksName, key); - ColumnFamily cf = rm.addOrGet(cfDef.cfm.cfName); + ColumnFamily cf = ColumnFamily.create(Schema.instance.getCFMetaData(cfDef.cfm.ksName, cfDef.cfm.cfName)); // Inserting the CQL row marker (see #4361) // We always need to insert a marker, because of the following situation: @@ -252,6 +252,7 @@ public class UpdateStatement extends ModificationStatement op.execute(key, cf, builder.copy(), params); } + RowMutation rm = new RowMutation(cfDef.cfm.ksName, key, cf); return type == Type.COUNTER ? new CounterMutation(rm, cl) : rm; } http://git-wip-us.apache.org/repos/asf/cassandra/blob/200ed658/src/java/org/apache/cassandra/service/StorageProxy.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java index 3f76c0e..f157049 100644 --- a/src/java/org/apache/cassandra/service/StorageProxy.java +++ b/src/java/org/apache/cassandra/service/StorageProxy.java @@ -320,14 +320,15 @@ public class StorageProxy implements StorageProxyMBean private static void asyncRemoveFromBatchlog(Collection<InetAddress> endpoints, UUID uuid) { - RowMutation rm = new RowMutation(Table.SYSTEM_KS, UUIDType.instance.decompose(uuid)); - rm.delete(SystemTable.BATCHLOG_CF, FBUtilities.timestampMicros()); + ColumnFamily cf = ColumnFamily.create(Schema.instance.getCFMetaData(Table.SYSTEM_KS, SystemTable.BATCHLOG_CF)); + cf.delete(new DeletionInfo(FBUtilities.timestampMicros(), (int) (System.currentTimeMillis() / 1000))); AbstractWriteResponseHandler handler = new WriteResponseHandler(endpoints, Collections.<InetAddress>emptyList(), ConsistencyLevel.ANY, Table.open(Table.SYSTEM_KS), null, WriteType.SIMPLE); + RowMutation rm = new RowMutation(Table.SYSTEM_KS, UUIDType.instance.decompose(uuid), cf); updateBatchlog(rm, endpoints, handler); }
