Voltdb C ++ Async Invoke Requests

Я использую фрагмент кода ниже, который занимает около 8 микросекунд на транзакцию.

voltdb::Procedure procedure("test.Insert", parameterTypes);

voltdb::InvocationResponse response;
voltdb::ParameterSet* params = procedure.params();

int trans = 100000;

for(i=0;i<trans;i++) {
params->addInt64(i).addString("Hello");
client.invoke(procedure, new FunctionCallback);
}
client.run();

У меня проблема в том, что если число транзакций равно 1000, они не будут отправлены в базу данных без выполнения client.run();,

Нагрузка может быть переменной, иногда 100000 транзакций в секунду и иногда только 10 транзакций в секунду. Если я позвоню "client.run()" после каждой транзакции она не асинхронна, на мой взгляд, и занимает более 280 микросекунд, что в моем случае неприемлемо.

У меня будет около 5 тем для чтения / записи voltdb всегда и каждому потоку нужны точные данные. Если данные не записываются до определенного количества записей (1940 записей в моем случае), то другие потоки могут не найти их.

Как сохранить время транзакции на операцию менее 10 микросекунд?

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]