我正在尝试使用Cassandra database
从Pelops client
读取数据。我成功地做到了。
现在我开始做benchmarking
,这意味着从Cassandra数据库读取了多少时间。所以我在下面的代码中添加了benchmarking code
。
现在我不确定是否已将benchmarking code
添加到正确的位置以使用Cassandra database
来衡量Pelops client
的读取延迟?
以下是我的代码 -
public Map<String, String> getAttributes(final String rowKey, final Collection<String> attributeNames, final String columnFamily) {
final Map<String, String> attributes = new ConcurrentHashMap<String, String>();
try {
final SlicePredicate myPredicate = Selector.newColumnsPredicate(attributeNames.toArray(new String[attributeNames.size()]));
final Selector selector = Pelops.createSelector(CassandraPelopsConnection.getInstance().getPoolName());
// this is the right place to start the timer?
CassandraTimer timer = CassandraTimer.getInstance();
final List<Column> columnList = selector.getColumnsFromRow(columnFamily, rowKey, myPredicate, ConsistencyLevel.ONE);
// And this is the right place to end the timer incase of Pelops client?
timer.getDuration();
for (Column column : columnList) {
attributes.put(new String(column.getName()), new String(column.getValue()));
}
} catch (Exception e) {
}
return attributes;
}
任何人都可以看看,让我知道我做得对吗?
答案 0 :(得分:2)
是的,这是正确的,您希望计时器在查询之前准确启动,并在查询后立即停止。
作为旁注,你没有对计时器做任何事情,把它分配给一个变量,以便你以后可以使用它。