Search in sources :

Example 1 with Mutation

use of org.apache.cassandra.thrift.Mutation in project logprocessing by cloudian.

the class CassandraClient method insert.

/** Inserts columns into a column family in a given row. */
public void insert(byte[] key, String columnFamily, Column[] columns, ConsistencyLevel consistencyLevel) throws IOException {
    List<Mutation> mutationList = new ArrayList<Mutation>();
    for (int i = 0; i < columns.length; i++) {
        Mutation mutation = new Mutation();
        ColumnOrSuperColumn cosc = new ColumnOrSuperColumn();
        cosc.column = columns[i];
        mutation.setColumn_or_supercolumn(cosc);
        mutationList.add(mutation);
    }
    Map<String, List<Mutation>> innerMutationMap = new HashMap<String, List<Mutation>>();
    innerMutationMap.put(columnFamily, mutationList);
    //Map<byte[], Map<String, List<Mutation>>> mutationMap = new HashMap<byte[], Map<String, List<Mutation>>>();
    //balaji
    Map<ByteBuffer, Map<String, List<Mutation>>> mutationMap = new HashMap<ByteBuffer, Map<String, List<Mutation>>>();
    mutationMap.put(ByteBuffer.wrap(key), innerMutationMap);
    batchMutate(mutationMap, consistencyLevel);
}
Also used : ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) ArrayList(java.util.ArrayList) List(java.util.List) LinkedList(java.util.LinkedList) Mutation(org.apache.cassandra.thrift.Mutation) ByteBuffer(java.nio.ByteBuffer) HashMap(java.util.HashMap) Map(java.util.Map)

Example 2 with Mutation

use of org.apache.cassandra.thrift.Mutation in project brisk by riptano.

the class HistoricalPriceInserter method run.

public void run(Client client) throws IOException {
    //Create a stock price per day
    Map<ByteBuffer, Map<String, List<Mutation>>> record = new HashMap<ByteBuffer, Map<String, List<Mutation>>>(tickers.length);
    LocalDate histDate = today.minusDays(index);
    ByteBuffer histDateBuf = ByteBufferUtil.bytes(histDate.toString("yyyy-MM-dd"));
    for (String stock : tickers) {
        record.put(ByteBufferUtil.bytes(stock), genDaysPrices(histDateBuf));
    }
    long start = System.currentTimeMillis();
    boolean success = false;
    String exceptionMessage = null;
    for (int t = 0; t < session.getRetryTimes(); t++) {
        if (success)
            break;
        try {
            client.batch_mutate(record, session.getConsistencyLevel());
            success = true;
        } catch (Exception e) {
            exceptionMessage = getExceptionMessage(e);
            success = false;
        }
    }
    if (!success) {
        error(String.format("Operation [%d] retried %d times - error inserting key %s %s%n", index, session.getRetryTimes(), histDate, (exceptionMessage == null) ? "" : "(" + exceptionMessage + ")"));
    }
    session.operations.getAndIncrement();
    session.keys.addAndGet(tickers.length);
    session.latency.getAndAdd(System.currentTimeMillis() - start);
}
Also used : Mutation(org.apache.cassandra.thrift.Mutation) ByteBuffer(java.nio.ByteBuffer) LocalDate(org.joda.time.LocalDate) IOException(java.io.IOException)

Example 3 with Mutation

use of org.apache.cassandra.thrift.Mutation in project brisk by riptano.

the class CassandraStorage method putNext.

public void putNext(Tuple t) throws ExecException, IOException {
    ByteBuffer key = objToBB(t.get(0));
    DefaultDataBag pairs = (DefaultDataBag) t.get(1);
    ArrayList<Mutation> mutationList = new ArrayList<Mutation>();
    CfDef cfDef = getCfDef();
    List<AbstractType> marshallers = getDefaultMarshallers(cfDef);
    Map<ByteBuffer, AbstractType> validators = getValidatorMap(cfDef);
    try {
        for (Tuple pair : pairs) {
            Mutation mutation = new Mutation();
            if (// supercolumn
            DataType.findType(pair.get(1)) == DataType.BAG) {
                org.apache.cassandra.thrift.SuperColumn sc = new org.apache.cassandra.thrift.SuperColumn();
                sc.name = objToBB(pair.get(0));
                ArrayList<org.apache.cassandra.thrift.Column> columns = new ArrayList<org.apache.cassandra.thrift.Column>();
                for (Tuple subcol : (DefaultDataBag) pair.get(1)) {
                    org.apache.cassandra.thrift.Column column = new org.apache.cassandra.thrift.Column();
                    column.name = objToBB(subcol.get(0));
                    column.value = objToBB(subcol.get(1));
                    column.setTimestamp(System.currentTimeMillis() * 1000);
                    columns.add(column);
                }
                if (// a deletion
                columns.isEmpty()) {
                    mutation.deletion = new Deletion();
                    mutation.deletion.super_column = objToBB(pair.get(0));
                    mutation.deletion.setTimestamp(System.currentTimeMillis() * 1000);
                } else {
                    sc.columns = columns;
                    mutation.column_or_supercolumn = new ColumnOrSuperColumn();
                    mutation.column_or_supercolumn.super_column = sc;
                }
            } else // assume column since it couldn't be anything else
            {
                if (pair.get(1) == null) {
                    mutation.deletion = new Deletion();
                    mutation.deletion.predicate = new org.apache.cassandra.thrift.SlicePredicate();
                    mutation.deletion.predicate.column_names = Arrays.asList(objToBB(pair.get(0)));
                    mutation.deletion.setTimestamp(System.currentTimeMillis() * 1000);
                } else {
                    org.apache.cassandra.thrift.Column column = new org.apache.cassandra.thrift.Column();
                    column.name = marshallers.get(0).decompose((pair.get(0)));
                    if (validators.get(column.name) == null)
                        // Have to special case BytesType to convert DataByteArray into ByteBuffer
                        if (marshallers.get(1) instanceof BytesType)
                            column.value = objToBB(pair.get(1));
                        else
                            column.value = marshallers.get(1).decompose(pair.get(1));
                    else
                        column.value = validators.get(column.name).decompose(pair.get(1));
                    column.setTimestamp(System.currentTimeMillis() * 1000);
                    mutation.column_or_supercolumn = new ColumnOrSuperColumn();
                    mutation.column_or_supercolumn.column = column;
                }
            }
            mutationList.add(mutation);
        }
    } catch (ClassCastException e) {
        throw new IOException(e + " Output must be (key, {(column,value)...}) for ColumnFamily or (key, {supercolumn:{(column,value)...}...}) for SuperColumnFamily");
    }
    try {
        writer.write(key, mutationList);
    } catch (InterruptedException e) {
        throw new IOException(e);
    }
}
Also used : Column(org.apache.cassandra.db.Column) IColumn(org.apache.cassandra.db.IColumn) ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) SuperColumn(org.apache.cassandra.db.SuperColumn) org.apache.cassandra.thrift(org.apache.cassandra.thrift) Deletion(org.apache.cassandra.thrift.Deletion) BytesType(org.apache.cassandra.db.marshal.BytesType) ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) IOException(java.io.IOException) ByteBuffer(java.nio.ByteBuffer) AbstractType(org.apache.cassandra.db.marshal.AbstractType) ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) SuperColumn(org.apache.cassandra.db.SuperColumn) Mutation(org.apache.cassandra.thrift.Mutation)

Example 4 with Mutation

use of org.apache.cassandra.thrift.Mutation in project scale7-pelops by s7.

the class Mutator method writeColumnInternal.

private void writeColumnInternal(String colFamily, Bytes rowKey, Column column) {
    safeGetRowKey(rowKey);
    validateColumn(column);
    ColumnOrSuperColumn cosc = new ColumnOrSuperColumn();
    cosc.setColumn(column);
    Mutation mutation = new Mutation();
    mutation.setColumn_or_supercolumn(cosc);
    getMutationList(colFamily, rowKey).add(mutation);
}
Also used : ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) Mutation(org.apache.cassandra.thrift.Mutation)

Example 5 with Mutation

use of org.apache.cassandra.thrift.Mutation in project scale7-pelops by s7.

the class Mutator method writeSubColumnsInternal.

/**
     * Writes multiple sub-column values to a super column.
     *
     * @param colFamily        The column family
     * @param rowKey           The key of the row to modify
     * @param colName          The name of the super column
     * @param subColumns       A list of the sub-columns to write
     */
private void writeSubColumnsInternal(String colFamily, Bytes rowKey, Bytes colName, List<Column> subColumns) {
    safeGetRowKey(rowKey);
    validateColumnName(colName);
    validateColumns(subColumns);
    SuperColumn scol = new SuperColumn(nullSafeGet(colName), subColumns);
    ColumnOrSuperColumn cosc = new ColumnOrSuperColumn();
    cosc.setSuper_column(scol);
    Mutation mutation = new Mutation();
    mutation.setColumn_or_supercolumn(cosc);
    getMutationList(colFamily, rowKey).add(mutation);
}
Also used : ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) CounterSuperColumn(org.apache.cassandra.thrift.CounterSuperColumn) SuperColumn(org.apache.cassandra.thrift.SuperColumn) ColumnOrSuperColumn(org.apache.cassandra.thrift.ColumnOrSuperColumn) Mutation(org.apache.cassandra.thrift.Mutation)

Aggregations

Mutation (org.apache.cassandra.thrift.Mutation)16 ColumnOrSuperColumn (org.apache.cassandra.thrift.ColumnOrSuperColumn)10 ByteBuffer (java.nio.ByteBuffer)6 IOException (java.io.IOException)4 Column (org.apache.cassandra.thrift.Column)4 Deletion (org.apache.cassandra.thrift.Deletion)4 Column (org.apache.cassandra.db.Column)2 IColumn (org.apache.cassandra.db.IColumn)2 org.apache.cassandra.thrift (org.apache.cassandra.thrift)2 CounterSuperColumn (org.apache.cassandra.thrift.CounterSuperColumn)2 SlicePredicate (org.apache.cassandra.thrift.SlicePredicate)2 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 LinkedList (java.util.LinkedList)1 List (java.util.List)1 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 CFMetaData (org.apache.cassandra.config.CFMetaData)1 CounterMutation (org.apache.cassandra.db.CounterMutation)1 IMutation (org.apache.cassandra.db.IMutation)1