-1

我正在尝试从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;
}

任何人都可以看看,让我知道我是否做得对吗?

4

1 回答 1

2

是的,这是正确的,您希望计时器在查询之前准确启动,并在查询之后立即停止。

作为旁注,你没有对计时器做任何事情,将它分配给一个变量,以便你以后可以使用它。

于 2013-04-24T08:47:45.230 回答