Чтение данных из клиента Pelops и тестирование операции чтения

Я пытаюсь прочитать данные из Cassandra database с помощью Pelops client, Я успешно могу это сделать.

Теперь я начал делать benchmarkingЭто означает, сколько времени занимает чтение из базы данных Кассандры. Итак, я добавил свой 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;
}

Может кто-нибудь взглянуть и дать мне знать, правильно ли я поступаю или нет?

1 ответ

Решение

Да, это правильно, вы хотите, чтобы таймер запускался точно перед запросом и останавливался сразу после вашего запроса.

Как примечание: вы ничего не делаете с таймером, присвойте его переменной, чтобы вы могли использовать его позже.

Другие вопросы по тегам