Author: jbellis
Date: Thu Nov 25 18:17:18 2010
New Revision: 1039128
URL: http://svn.apache.org/viewvc?rev=1039128&view=rev
Log:
support multiple Mutations perkey in hadoop ColumnFamilyOutputFormat
patch by Mck SembWever; reviewed by jbellis for CASSANDRA-1774
Modified:
cassandra/branches/cassandra-0.7/CHANGES.txt
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1039128&r1=1039127&r2=1039128&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Thu Nov 25 18:17:18 2010
@@ -10,6 +10,8 @@ dev
* fix add/remove index bugs in CFMetadata (CASSANDRA-1768)
* rebuild Strategy during system_update_keyspace (CASSANDRA-1762)
* cli updates prompt to ... in continuation lines (CASSANDRA-1770)
+ * support multiple Mutations per key in hadoop ColumnFamilyOutputFormat
+ (CASSANDRA-1774)
* improvements to Debian init script (CASSANDRA-1772)
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
URL:
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java?rev=1039128&r1=1039127&r2=1039128&view=diff
==============================================================================
---
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
(original)
+++
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/hadoop/ColumnFamilyRecordWriter.java
Thu Nov 25 18:17:18 2010
@@ -319,8 +319,14 @@ implements org.apache.hadoop.mapred.Reco
Map<ByteBuffer, Map<String, List<Mutation>>> batch = new
HashMap<ByteBuffer, Map<String, List<Mutation>>>();
while (batch.size() < batchThreshold)
{
- Map<String, List<Mutation>> subBatch =
Collections.singletonMap(columnFamily, Arrays.asList(mutation.right));
- batch.put(mutation.left, subBatch);
+ Map<String, List<Mutation>> subBatch =
batch.get(mutation.left);
+ if (subBatch == null)
+ {
+ subBatch = Collections.singletonMap(columnFamily,
(List<Mutation>) new ArrayList<Mutation>());
+ batch.put(mutation.left, subBatch);
+ }
+
+ subBatch.get(columnFamily).add(mutation.right);
if ((mutation = queue.poll()) == null)
break;
}