public interface

MutationBatch

implements Execution<R>
com.netflix.astyanax.MutationBatch
Known Indirect Subclasses

Class Overview

Batch mutator which operates at the row level assuming the hierarchy: RowKey -> ColumnFamily -> Mutation. This hierarchy serves two purposes. First, it makes it possible to perform multiple operations on the same row without having to repeat specifying the row key. Second, it mirrors the underlying Thrift data structure which averts unnecessary operations to convert from one data structure to another. The mutator is not thread safe If successful, all the mutations are cleared and new mutations may be created. Any previously acquired ColumnFamilyMutations are no longer valid and should be discarded. No data is actually returned after a mutation is executed, hence the Void return value type. Example:

 {
     @code
     ColumnFamily<String, String> cf = AFactory.makeColumnFamily("COLUMN_FAMILY_NAME", // Name
                                                                                       // of
                                                                                       // CF
                                                                                       // in
                                                                                       // Cassandra
             StringSerializer.get(), // Row key serializer (implies string type)
             StringSerializer.get(), // Column name serializer (implies string
                                     // type)
             ColumnType.STANDARD); // This is a standard row
 
     // Create a batch mutation
     RowMutationBatch m = keyspace.prepareMutationBatch();
 
     // Start mutate a column family for a specific row key
     ColumnFamilyMutation<String> cfm = m.row(cfSuper, "UserId").putColumn("Address", "976 Elm St.")
             .putColumn("Age", 50).putColumn("Gender", "Male");
 
     // To delete a row
     m.row(cfSuper, "UserId").delete();
 
     // Finally, execute the query
     m.execute();
 
 }
 

Summary

Public Methods
abstract <K> void deleteRow(Collection<ColumnFamily<K, ?>> columnFamilies, K rowKey)
Delete the row for all the specified column families
abstract void deserialize(ByteBuffer data)
Re-recreate a mutation batch from a serialized ByteBuffer created by a call to serialize().
abstract void discardMutations()
Discard any pending mutations.
abstract int getRowCount()
Returns the number of rows being mutated
abstract Map<ByteBuffer, Set<String>> getRowKeys()
Return a mapping of column families to rows being modified
abstract boolean isEmpty()
Returns true if there are no rows in the mutation.
abstract MutationBatch lockCurrentTimestamp()
Force all future mutations to have the same timestamp.
abstract void mergeShallow(MutationBatch other)
Perform a shallow merge of mutations from another batch.
abstract MutationBatch pinToHost(Host host)
Pin this operation to a specific host
abstract ByteBuffer serialize()
Serialize the entire mutation batch into a ByteBuffer.@return
abstract MutationBatch setConsistencyLevel(ConsistencyLevel consistencyLevel)
Set the consistency level for this mutation
abstract MutationBatch setTimeout(long timeout)
This never really did anything :)
abstract MutationBatch setTimestamp(long timestamp)
Set the timestamp for all subsequent operations on this mutation
abstract MutationBatch usingWriteAheadLog(WriteAheadLog manager)
Specify a write ahead log implementation to use for this mutation
abstract MutationBatch withRetryPolicy(RetryPolicy retry)
Set the retry policy to use instead of the one specified in the configuration
abstract <K, C> ColumnListMutation<C> withRow(ColumnFamily<K, C> columnFamily, K rowKey)
Mutate a row.
[Expand]
Inherited Methods
From interface com.netflix.astyanax.Execution

Public Methods

public abstract void deleteRow (Collection<ColumnFamily<K, ?>> columnFamilies, K rowKey)

Delete the row for all the specified column families

public abstract void deserialize (ByteBuffer data)

Re-recreate a mutation batch from a serialized ByteBuffer created by a call to serialize(). Serialization of MutationBatches from different implementations is not guaranteed to match.

Throws
Exception

public abstract void discardMutations ()

Discard any pending mutations. All previous references returned by row are now invalid.

public abstract int getRowCount ()

Returns the number of rows being mutated

public abstract Map<ByteBuffer, Set<String>> getRowKeys ()

Return a mapping of column families to rows being modified

public abstract boolean isEmpty ()

Returns true if there are no rows in the mutation. May return a false true if a row() was added by calling the above row() method but no mutations were created.

public abstract MutationBatch lockCurrentTimestamp ()

Force all future mutations to have the same timestamp. Make sure to call lockTimestamp before doing any other operations otherwise previously created withRow mutations will use the previous timestamp.

public abstract void mergeShallow (MutationBatch other)

Perform a shallow merge of mutations from another batch.

Throws
UnsupportedOperationException if the other mutation is of a different type

public abstract MutationBatch pinToHost (Host host)

Pin this operation to a specific host

public abstract ByteBuffer serialize ()

Serialize the entire mutation batch into a ByteBuffer.@return

Throws
Exception

public abstract MutationBatch setConsistencyLevel (ConsistencyLevel consistencyLevel)

Set the consistency level for this mutation

public abstract MutationBatch setTimeout (long timeout)

This never really did anything :)

public abstract MutationBatch setTimestamp (long timestamp)

Set the timestamp for all subsequent operations on this mutation

public abstract MutationBatch usingWriteAheadLog (WriteAheadLog manager)

Specify a write ahead log implementation to use for this mutation

public abstract MutationBatch withRetryPolicy (RetryPolicy retry)

Set the retry policy to use instead of the one specified in the configuration

public abstract ColumnListMutation<C> withRow (ColumnFamily<K, C> columnFamily, K rowKey)

Mutate a row. The ColumnFamilyMutation is only valid until execute() or discardMutations is called.