@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; }
private Long readCounterValue(String key, String cf, String colName) { CounterQuery<String, String> q = createCounterColumnQuery(ko, se, se); q.setColumnFamily(cf).setName(colName).setKey(key); HCounterColumn<String> c = q.execute().get(); if (c == null) return null; return c.getValue(); }
@Override public HCounterColumn<N> next() { HCounterColumn<N> column = iterator.next(); start = column.getName(); columns++; return column; }
@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 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; }
@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; }
@Test public void testInsertCounter() { Mutator<String> m = createMutator(keyspace, se); MutationResult mr = m.insertCounter("k", "Counter1", createCounterColumn("name", 5)); assertTrue("Execution time on single counter insert should be > 0", mr.getExecutionTimeMicro() > 0); assertTrue("Should have operated on a host", mr.getHostUsed() != null); CounterQuery<String, String> counter = new ThriftCounterColumnQuery<String,String>(keyspace, se, se); counter.setColumnFamily("Counter1").setKey("k").setName("name"); assertEquals(new Long(5), counter.execute().get().getValue()); }
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(); } } } /**
@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; }
@Test public void testIncrementDecrementCounter() { createMutator(ko, se).incrementCounter("testIncrementDecrementCounter", COUNTER_CF, "testIncrementDecrementCounter_name", 7); createMutator(ko, se).decrementCounter("testIncrementDecrementCounter", COUNTER_CF, "testIncrementDecrementCounter_name", 2); // The total in the counter is 5. (7 - 2) // get value CounterQuery<String, String> q = createCounterColumnQuery(ko, se, se); q.setColumnFamily(COUNTER_CF).setName("testIncrementDecrementCounter_name"); QueryResult<HCounterColumn<String>> r = q.setKey("testIncrementDecrementCounter") .execute(); assertNotNull(r); HCounterColumn<String> c = r.get(); assertNotNull(c); Long value = c.getValue(); assertEquals(5, value.longValue()); }
@Override public HCounterColumn<N> next() { HCounterColumn<N> column = iterator.next(); start = column.getName(); columns++; return column; }
@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; }
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 ) {
@Test public void testRangeSubSlicesCounterQuery() { String cf = "SuperCounter1"; TestCleanupDescriptor cleanup = insertSuperCountColumns(cf, 4, "testRangeSubSlicesCounterQuery", 3, "testRangeSubSlicesCounterQuery"); // get value RangeSubSlicesCounterQuery<String, String, String> q = createRangeSubSlicesCounterQuery( ko, se, se, se); q.setColumnFamily(cf); q.setKeys("testRangeSubSlicesCounterQuery2", "testRangeSubSlicesCounterQuery3"); // try with column name first q.setSuperColumn("testRangeSubSlicesCounterQuery1"); q.setColumnNames("c021", "c111"); QueryResult<OrderedCounterRows<String, String>> r = q.execute(); assertNotNull(r); OrderedCounterRows<String, String> rows = r.get(); assertNotNull(rows); assertEquals(2, rows.getCount()); CounterRow<String, String> row = rows.getList().get(0); assertNotNull(row); assertEquals("testRangeSubSlicesCounterQuery2", row.getKey()); CounterSlice<String> slice = row.getColumnSlice(); assertNotNull(slice); // Test slice.getColumnByName assertEquals(Long.valueOf(3), slice.getColumnByName("c021").getValue()); assertEquals(Long.valueOf(3), slice.getColumnByName("c111").getValue()); assertNull(slice.getColumnByName("c033")); // Delete values deleteColumns(cleanup); }
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; }
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 Long get(final K key) { final CounterQuery<K, String> counter = new ThriftCounterColumnQuery<K, String>(_keyspace, _serializer_k, STRING_SERIALIZER); counter.setColumnFamily(_cf_name).setKey(key).setName(COLUMN_NAME_AS_STRING); final HCounterColumn<String> c = counter.execute().get(); if (c == null) { if (_default_value != null) { return _default_value; } else { return null; } } else { return c.getValue(); } }