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(); }
@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()); }
@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()); }
q.setColumnFamily(COUNTER_CF). setName("testInsertGetRemoveCounter_name"). setKey("testInsertGetRemoveCounter"); q2.setName("testInsertGetRemoveCounter_name").setColumnFamily(COUNTER_CF); QueryResult<HCounterColumn<String>> r2 = q2.setKey("testInsertGetRemoveCounter") .execute();
@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(); } }
@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(); } }
@Override public <K, N> long getCounter(String keyspace, String columnFamily, K rowKey, N columnName, CmbSerializer keySerializer, CmbSerializer columnNameSerializer) throws PersistenceException { long ts1 = System.currentTimeMillis(); logger.debug("event=get_counter cf=" + columnFamily + " key=" + rowKey + " column=" + columnName); try { CounterQuery<K, N> countQuery = HFactory.createCounterColumnQuery(getKeyspace(keyspace), getSerializer(keySerializer), getSerializer(columnNameSerializer)); countQuery.setColumnFamily(columnFamily).setKey(rowKey).setName(columnName); QueryResult<HCounterColumn<N>> result = countQuery.execute(); CMBControllerServlet.valueAccumulator.addToCounter(AccumulatorName.CassandraRead, 1L); if (result.get() == null) { return 0; } return result.get().getValue(); } finally { long ts2 = System.currentTimeMillis(); CMBControllerServlet.valueAccumulator.addToCounter(AccumulatorName.CassandraTime, (ts2 - ts1)); } } }
private static void checkCounterColumn(Keyspace keyspace, RowModel expectedRowModel, String expectedColumnFamilyName, ColumnModel expectedColumnModel) throws Error { CounterQuery<byte[], byte[]> counterColumnQuery = HFactory.createCounterColumnQuery(keyspace, BytesArraySerializer.get(), BytesArraySerializer.get()); counterColumnQuery.setColumnFamily(expectedColumnFamilyName) .setKey(getBytes(expectedRowModel.getKey())).setName(getBytes(expectedColumnModel.getName())); QueryResult<HCounterColumn<byte[]>> result = counterColumnQuery.execute(); HCounterColumn<byte[]> hColumn = result.get(); checkCounterColumnName(expectedColumnModel, hColumn); checkCounterColumnValue(expectedRowModel, hColumn); }
private static void checkCounterColumn(Keyspace keyspace, RowModel expectedRowModel, String expectedColumnFamilyName, ColumnModel expectedColumnModel) throws Error { CounterQuery<byte[], byte[]> counterColumnQuery = HFactory.createCounterColumnQuery(keyspace, BytesArraySerializer.get(), BytesArraySerializer.get()); counterColumnQuery.setColumnFamily(expectedColumnFamilyName) .setKey(getBytes(expectedRowModel.getKey())).setName(getBytes(expectedColumnModel.getName())); QueryResult<HCounterColumn<byte[]>> result = counterColumnQuery.execute(); HCounterColumn<byte[]> hColumn = result.get(); checkCounterColumnName(expectedColumnModel, hColumn); checkCounterColumnValue(expectedRowModel, hColumn); }