Voltdb C ++ Async Invoke Requests - PullRequest
       31

Voltdb C ++ Async Invoke Requests

0 голосов
/ 17 октября 2018

Я использую приведенный ниже фрагмент кода, который занимает около 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 микросекунд?

...