@Override public Map<String, Long> getEntityCounters( UUID entityId ) throws Exception { Map<String, Long> counters = new HashMap<String, Long>(); Keyspace ko = cass.getApplicationKeyspace( applicationId ); SliceCounterQuery<UUID, String> q = createCounterSliceQuery( ko, ue, se ); q.setColumnFamily( ENTITY_COUNTERS.toString() ); q.setRange( null, null, false, ALL_COUNT ); //Adding graphite metrics Timer.Context timeEntityCounters = entGetEntityCountersTimer.time(); QueryResult<CounterSlice<String>> r = q.setKey( entityId ).execute(); timeEntityCounters.stop(); for ( HCounterColumn<String> column : r.get().getColumns() ) { counters.put( column.getName(), column.getValue() ); } return counters; }
@Override public <SN, N> Mutator<K> addCounterSubDeletion(K key, String cf, HCounterSuperColumn<SN, N> sc) { Deletion d = new Deletion(); if ( sc.getColumns() != null ) { SlicePredicate pred = new SlicePredicate(); for (HCounterColumn<N> col : sc.getColumns()) { pred.addToColumn_names(col.getNameSerializer().toByteBuffer(col.getName())); } d.setPredicate(pred); } d.setSuper_column(sc.getNameByteBuffer()); getPendingMutations().addDeletion(key, Arrays.asList(cf), d); return this; }
public Map<String, Long> getQueueCounters( UUID queueId ) throws Exception { Map<String, Long> counters = new HashMap<String, Long>(); Keyspace ko = cass.getApplicationKeyspace( applicationId ); SliceCounterQuery<UUID, String> q = createCounterSliceQuery( ko, ue, se ); q.setColumnFamily( COUNTERS.getColumnFamily() ); q.setRange( null, null, false, ALL_COUNT ); QueryResult<CounterSlice<String>> r = q.setKey( queueId ).execute(); for ( HCounterColumn<String> column : r.get().getColumns() ) { counters.put( column.getName(), column.getValue() ); } return counters; }
AggregateCounter count = new AggregateCounter( column.getName(), column.getValue() ); if ( pad && !( resolution == CounterResolution.ALL ) ) { while ( count.getTimestamp() != expected_time ) {
List<AggregateCounter> counters = new ArrayList<AggregateCounter>(); for ( HCounterColumn<Long> column : r.get().getColumns() ) { AggregateCounter count = new AggregateCounter( column.getName(), column.getValue() ); if ( pad && !( resolution == CounterResolution.ALL ) ) { while ( count.getTimestamp() != expected_time ) {
List<AggregateCounter> counters = new ArrayList<AggregateCounter>(); for ( HCounterColumn<Long> column : r.getColumnSlice().getColumns() ) { AggregateCounter count = new AggregateCounter( column.getName(), column.getValue() ); if ( pad && ( resolution != CounterResolution.ALL ) ) { while ( count.getTimestamp() != expected_time ) {
List<AggregateCounter> counters = new ArrayList<AggregateCounter>(); for ( HCounterColumn<Long> column : r.getColumnSlice().getColumns() ) { AggregateCounter count = new AggregateCounter( column.getName(), column.getValue() ); if ( pad && ( resolution != CounterResolution.ALL ) ) { while ( count.getTimestamp() != expected_time ) {
@Override public HCounterColumn<N> next() { HCounterColumn<N> column = iterator.next(); start = column.getName(); columns++; return column; }
public CounterSliceImpl(List<CounterColumn> tColumns, Serializer<N> nameSerializer) { Assert.noneNull(tColumns, nameSerializer); columnsMap = new HashMap<N,HCounterColumn<N>>(tColumns.size()); List<HCounterColumn<N>> list = new ArrayList<HCounterColumn<N>>(tColumns.size()); for (CounterColumn c: tColumns) { HCounterColumn<N> column = new HCounterColumnImpl<N>(c, nameSerializer); columnsMap.put(column.getName(), column); list.add(column); } columnsList = list; }
private void refresh() { query.setRange(start, finish.function(), reversed, count); columns = 0; List<HCounterColumn<N>> list = query.execute().get().getColumns(); iterator = Iterators.peekingIterator(list.iterator()); if (iterator.hasNext()) { // The lower bound column may have been removed prior to the query executing, // so check to see if the first column returned by the current query is the same // as the lower bound column. If both columns are the same, skip the column N first = list.get(0).getName(); if (first.equals(start)) { next(); } } } /**
@Test public void testIterator() { SliceCounterQuery<String, UUID> query = HFactory.createCounterSliceQuery(keyspace, se, us).setKey(KEY).setColumnFamily(CF); SliceCounterIterator<String, UUID> it = new SliceCounterIterator<String, UUID>(query, null, FINISH, false, 100); Map<UUID, Long> results = new HashMap<UUID, Long>(); while (it.hasNext()) { HCounterColumn<UUID> c = it.next(); results.put(c.getName(), c.getValue()); } assertEquals(1000, results.size()); }
@Test public void testModificationIterator() { Mutator mutator = HFactory.createMutator(keyspace, se); SliceCounterQuery<String, UUID> query = HFactory.createCounterSliceQuery(keyspace, se, us).setKey(KEY).setColumnFamily(CF); SliceCounterIterator<String, UUID> it = new SliceCounterIterator<String, UUID>(query, null, FINISH, false, 100); Map<UUID, Long> results = new HashMap<UUID, Long>(); while (it.hasNext()) { HCounterColumn<UUID> c = it.next(); results.put(c.getName(), c.getValue()); mutator.addDeletion(KEY, CF, c.getName(), us); mutator.execute(); } assertEquals(1000, results.size()); }
/** * Clear the counter columns. */ public void clear() { Mutator<K> mutator = HFactory.createMutator(this.keyspace, this.keySerializer, new BatchSizeHint(1, this.mutateInterval)); SliceCounterQuery<K, N> query = HFactory.createCounterSliceQuery(this.keyspace, this.keySerializer, this.nameSerializer). setColumnFamily(this.cf). setKey(this.rowKey); SliceCounterIterator<K, N> iterator = new SliceCounterIterator<K, N>(query, null, (N) null, false, this.count); while(iterator.hasNext()) { HCounterColumn<N> column = iterator.next(); mutator.incrementCounter(this.rowKey, this.cf, column.getName(), column.getValue() * -1); } mutator.execute(); } }
@Override public HCounterColumn<N> next() { HCounterColumn<N> column = iterator.next(); start = column.getName(); columns++; return column; }
public CounterSliceImpl(List<CounterColumn> tColumns, Serializer<N> nameSerializer) { Assert.noneNull(tColumns, nameSerializer); columnsMap = new HashMap<N,HCounterColumn<N>>(tColumns.size()); List<HCounterColumn<N>> list = new ArrayList<HCounterColumn<N>>(tColumns.size()); for (CounterColumn c: tColumns) { HCounterColumn<N> column = new HCounterColumnImpl<N>(c, nameSerializer); columnsMap.put(column.getName(), column); list.add(column); } columnsList = list; }
while(it.hasNext()) { HCounterColumn<String> c = it.next(); String name = c.getName();
HCounterColumn<String> column = iterator.next(); long expected = Long.parseLong(column.getName()); assertEquals(expected, (long) column.getValue());
Long value = c.getValue(); assertEquals(25, value.longValue()); String name = c.getName(); assertEquals("testInsertGetRemoveCounter_name", name); assertEquals(q, r.getQuery());
private static void checkCounterColumnValue(RowModel expectedRowModel, HCounterColumn<byte[]> hColumn) throws Error { byte[] expectedColumnName = hColumn.getName(); Long expectedColumnValue = hColumn.getValue(); byte[] expectedColumnValueBytes = getBytes(new GenericType(Long.toString(expectedColumnValue), GenericTypeEnum.LONG_TYPE)); if (!areLoadValuesOnExpectedList(expectedRowModel.getColumns(), expectedColumnName, expectedColumnValueBytes)) { throw FailureHandler.createFailure("Row with key %s does not contain column with name %s and value %s.", asString(expectedRowModel.getKey()), new String(expectedColumnName), expectedColumnValue); } }