@Override public <N, V> Mutator<K> addInsertion( final K key, final String cf, final HColumn<N, V> c ) { target.addInsertion( key, cf, c ); checkAndFlush(); return this; }
@Override public <SN, N, V> Mutator<K> addInsertion( final K key, final String cf, final HSuperColumn<SN, N, V> sc ) { target.addInsertion( key, cf, sc ); checkAndFlush(); return this; }
public void batchSubscribeToQueue( Mutator<ByteBuffer> batch, String publisherQueuePath, UUID publisherQueueId, String subscriberQueuePath, UUID subscriberQueueId, long timestamp ) { batch.addInsertion( bytebuffer( publisherQueueId ), QUEUE_SUBSCRIBERS.getColumnFamily(), createColumn( subscriberQueuePath, subscriberQueueId, timestamp, se, ue ) ); batch.addInsertion( bytebuffer( subscriberQueueId ), QUEUE_SUBSCRIPTIONS.getColumnFamily(), createColumn( publisherQueuePath, publisherQueueId, timestamp, se, ue ) ); }
public void addToMutation( Mutator<ByteBuffer> batch, UUID queueId, long shard_ts, long timestamp ) { if ( propertyEntryList != null ) { for ( Entry<String, List<Entry<String, Object>>> property : propertyEntryList.entrySet() ) { for ( Map.Entry<String, Object> indexEntry : property.getValue() ) { if ( validIndexableValue( indexEntry.getValue() ) ) { batch.addInsertion( bytebuffer( key( queueId, shard_ts, indexEntry.getKey() ) ), PROPERTY_INDEX.getColumnFamily(), createColumn( new DynamicComposite( indexValueCode( indexEntry.getValue() ), indexEntry.getValue(), message.getUuid() ), ByteBuffer.allocate( 0 ), timestamp, dce, be ) ); batch.addInsertion( bytebuffer( key( queueId, DICTIONARY_MESSAGE_INDEXES ) ), QUEUE_DICTIONARIES.getColumnFamily(), createColumn( indexEntry.getKey(), ByteBuffer.allocate( 0 ), timestamp, se, be ) ); } } batch.addInsertion( bytebuffer( key( queueId, DICTIONARY_MESSAGE_INDEXES ) ), QUEUE_DICTIONARIES.getColumnFamily(), createColumn( property.getKey(), ByteBuffer.allocate( 0 ), timestamp, se, be ) ); } } }
public static Mutator<ByteBuffer> addMessageToMutator( Mutator<ByteBuffer> m, Message message, long timestamp ) { Map<ByteBuffer, ByteBuffer> columns = serializeMessage( message ); if ( columns == null ) { return m; } for ( Map.Entry<ByteBuffer, ByteBuffer> column_entry : columns.entrySet() ) { if ( ( column_entry.getValue() != null ) && column_entry.getValue().hasRemaining() ) { HColumn<ByteBuffer, ByteBuffer> column = createColumn( column_entry.getKey(), column_entry.getValue(), timestamp, be, be ); m.addInsertion( bytebuffer( message.getUuid() ), QueuesCF.MESSAGE_PROPERTIES.toString(), column ); } else { m.addDeletion( bytebuffer( message.getUuid() ), QueuesCF.MESSAGE_PROPERTIES.toString(), column_entry.getKey(), be, timestamp ); } } return m; }
public static Mutator<ByteBuffer> addQueueToMutator( Mutator<ByteBuffer> m, Queue queue, long timestamp ) { Map<ByteBuffer, ByteBuffer> columns = serializeQueue( queue ); if ( columns == null ) { return m; } for ( Map.Entry<ByteBuffer, ByteBuffer> column_entry : columns.entrySet() ) { if ( ( column_entry.getValue() != null ) && column_entry.getValue().hasRemaining() ) { HColumn<ByteBuffer, ByteBuffer> column = createColumn( column_entry.getKey(), column_entry.getValue(), timestamp, be, be ); m.addInsertion( bytebuffer( queue.getUuid() ), QueuesCF.QUEUE_PROPERTIES.toString(), column ); } else { m.addDeletion( bytebuffer( queue.getUuid() ), QueuesCF.QUEUE_PROPERTIES.toString(), column_entry.getKey(), be, timestamp ); } } return m; }
public Mutator<ByteBuffer> batchIncrementQueueCounter( Mutator<ByteBuffer> m, UUID queueId, String name, long value, long timestamp, UUID applicationId ) { if ( logger.isTraceEnabled() ) { logger.trace( "BIQC: Incrementing property {} of queue {} by value {}", name, queueId, value ); } m.addInsertion( bytebuffer( key( queueId, DICTIONARY_COUNTERS ).toString() ), QueuesCF.QUEUE_DICTIONARIES.toString(), createColumn( name, ByteBuffer.allocate( 0 ), timestamp, se, be ) ); if ( "o".equals( counterType ) || "p".equals( counterType ) ) { HCounterColumn<String> c = createCounterColumn( name, value ); ByteBuffer keybytes = bytebuffer( queueId ); m.addCounter( keybytes, QueuesCF.COUNTERS.toString(), c ); } if ( "n".equals( counterType ) || "p".equals( counterType ) ) { PrefixedSerializer ps = new PrefixedSerializer( applicationId, ue, ue ); batcher.add( new Count( QueuesCF.COUNTERS.toString(), ps.toByteBuffer( queueId ), name, value ) ); } return m; }
/** * Write the updated client pointer * * @param lastReturnedId This is a null safe parameter. If it's null, this won't be written since it means we didn't * read any messages */ protected void writeClientPointer( UUID queueId, UUID consumerId, UUID lastReturnedId ) { // nothing to do if ( lastReturnedId == null ) { return; } // we want to set the timestamp to the value from the time uuid. If this is // not the max time uuid to ever be written // for this consumer, we want this to be discarded to avoid internode race // conditions with clock drift. long colTimestamp = UUIDUtils.getTimestampInMicros( lastReturnedId ); Mutator<UUID> mutator = CountingMutator.createFlushingMutator( ko, ue ); if ( logger.isDebugEnabled() ) { logger.debug( "Writing last client id pointer of '{}' for queue '{}' and consumer '{}' with timestamp '{}", lastReturnedId, queueId, consumerId, colTimestamp ); } mutator.addInsertion( consumerId, CONSUMERS.getColumnFamily(), createColumn( queueId, lastReturnedId, colTimestamp, ue, ue ) ); mutator.execute(); }
public static void addInsertToMutator( Mutator<ByteBuffer> m, Object columnFamily, Object key, Object columnName, Object columnValue, long timestamp ) { logBatchOperation( "Insert", columnFamily, key, columnName, columnValue, timestamp ); if ( columnName instanceof List<?> ) { columnName = DynamicComposite.toByteBuffer( ( List<?> ) columnName ); } if ( columnValue instanceof List<?> ) { columnValue = DynamicComposite.toByteBuffer( ( List<?> ) columnValue ); } HColumn<ByteBuffer, ByteBuffer> column = createColumn( bytebuffer( columnName ), bytebuffer( columnValue ), timestamp, be, be ); m.addInsertion( bytebuffer( key ), columnFamily.toString(), column ); }
col.setTtl( ttl ); m.addInsertion( bytebuffer( key ), columnFamily.toString(), createColumn( name_bytes, value_bytes, timestamp, be, be ) );
batch.addInsertion( getQueueShardRowKey( queueId, shard_ts ), QUEUE_INBOX.getColumnFamily(), createColumn( messageUuid, ByteBuffer.allocate( 0 ), timestamp, ue, be ) ); batch.addInsertion( bytebuffer( queueId ), QUEUE_PROPERTIES.getColumnFamily(), createColumn( QUEUE_OLDEST, messageUuid, oldest_ts, se, ue ) ); batch.addInsertion( bytebuffer( queueId ), QUEUE_PROPERTIES.getColumnFamily(), createColumn( QUEUE_NEWEST, messageUuid, newest_ts, se, ue ) ); batch.addInsertion( bytebuffer( getQueueId( "/" ) ), QUEUE_SUBSCRIBERS.getColumnFamily(), createColumn( queuePath, queueId, timestamp, se, ue ) ); batch.addInsertion( bytebuffer( queueId ), QUEUE_PROPERTIES.getColumnFamily(), createColumn( QUEUE_CREATED, timestamp / 1000, Long.MAX_VALUE - timestamp, se, le ) ); batch.addInsertion( bytebuffer( queueId ), QUEUE_PROPERTIES.getColumnFamily(), createColumn( QUEUE_MODIFIED, timestamp / 1000, timestamp, se, le ) );
mutator.addInsertion( key, CONSUMER_QUEUE_TIMEOUTS.getColumnFamily(), createColumn( expirationId, messageId, time, ue, ue ) );
batch.addInsertion( bytebuffer( index_key ), PROPERTY_INDEX.getColumnFamily(), createColumn( indexEntry.getIndexComposite(), ByteBuffer.allocate( 0 ), indexUpdate.getTimestamp(), dce, be ) ); batch.addInsertion( bytebuffer( key( subcriptionQueueId, DICTIONARY_SUBSCRIBER_INDEXES ) ), QUEUE_DICTIONARIES.getColumnFamily(), createColumn( index, ByteBuffer.allocate( 0 ), indexUpdate.getTimestamp(), se, be ) );
batch.addInsertion( bytebuffer( queueId ), PROPERTY_INDEX_ENTRIES.getColumnFamily(), createColumn( DynamicComposite .toByteBuffer( entryName, indexValueCode( entryValue ), toIndexableValue( entryValue ),
@Override public Queue updateQueue( String queuePath, Queue queue ) { queue.setPath( queuePath ); UUID timestampUuid = newTimeUUID(); long timestamp = getTimestampInMicros( timestampUuid ); Mutator<ByteBuffer> batch = CountingMutator.createFlushingMutator( cass.getApplicationKeyspace( applicationId ), be ); addQueueToMutator( batch, queue, timestamp ); try { batchUpdateQueuePropertiesIndexes( batch, queuePath, queue.getUuid(), queue.getProperties(), timestampUuid ); } catch ( Exception e ) { logger.error( "Unable to update queue", e ); } batch.addInsertion( bytebuffer( queue.getUuid() ), QUEUE_PROPERTIES.getColumnFamily(), createColumn( QUEUE_CREATED, timestamp / 1000, Long.MAX_VALUE - timestamp, se, le ) ); batch.addInsertion( bytebuffer( queue.getUuid() ), QUEUE_PROPERTIES.getColumnFamily(), createColumn( QUEUE_MODIFIED, timestamp / 1000, timestamp, se, le ) ); batchExecute( batch, RETRY_COUNT ); return queue; }
mutator.addInsertion( key, CONSUMER_QUEUE_TIMEOUTS.getColumnFamily(), createColumn( expirationId, messageId, cass.createTimestamp(), ue, ue ) );
/** * Insert multiple values */ public <K> void insertMulti(Map<K, String> keyValues, Serializer<K> keySerializer) { Mutator<K> m = createMutator(keyspace, keySerializer); for (Map.Entry<K, String> keyValue: keyValues.entrySet()) { m.addInsertion(keyValue.getKey(), CF_NAME, createColumn(COLUMN_NAME, keyValue.getValue(), keyspace.createClock(), serializer, serializer)); } m.execute(); }
/** * Insert multiple values for a given columnName */ public void insertMulti(String columnName, Map<String, String> keyValues) { Mutator<String> m = createMutator(keyspace, serializer); for (Map.Entry<String, String> keyValue: keyValues.entrySet()) { m.addInsertion(keyValue.getKey(), columnFamilyName, createColumn(columnName, keyValue.getValue(), keyspace.createClock(), serializer, serializer)); } m.execute(); }
private <V> void addInsertion(N columnName, V value, Serializer<V> valueSerializer, int ttl) { HColumn<N,V> column = columnFactory.createColumn(columnName, value, clock, template.getTopSerializer(), valueSerializer); if(ttl > DEF_TTL) { column.setTtl(ttl); } mutator.addInsertion(getCurrentKey(), template.getColumnFamily(), column); }
@Before public void setUp() { cluster = getOrCreateCluster("Test Cluster", "127.0.0.1:9170"); keyspace = createKeyspace("Keyspace1", cluster); Mutator<String> m = createMutator(keyspace, ss); for (int i = 0; i < columns; i++) { m.addInsertion(SOURCE_KEY, CF, createColumn(UUID.randomUUID(), String.valueOf(i), us, ss)); } m.execute(); }