Kirill Gusakov created IGNITE-20868:
---------------------------------------

             Summary: ReplicaService whenCompleteAsync waste significant amount 
of time
                 Key: IGNITE-20868
                 URL: https://issues.apache.org/jira/browse/IGNITE-20868
             Project: Ignite
          Issue Type: Improvement
            Reporter: Kirill Gusakov


During the YCSB 1-node embedded run we found out the following behaviour: [this 
code 
|https://github.com/apache/ignite-3/blob/82c74598b5006ea3e4e86da744a68022dd799c89/modules/replicator/src/main/java/org/apache/ignite/internal/replicator/ReplicaService.java#L92]
 takes significant time to execute, because of whenCompleteAsync:

{code:java}
 private <R> CompletableFuture<R> sendToReplica(String targetNodeConsistentId, 
ReplicaRequest req) {
        CompletableFuture<R> res = new CompletableFuture<>();

        // TODO: IGNITE-17824 Use named executor instead of default one in 
order to process replica Response.
        messagingService.invoke(targetNodeConsistentId, req, 
RPC_TIMEOUT).whenCompleteAsync(
{code}
The simple switch to simple whenComplete give us a boost from 26us/s to 13us/s 
in the 1-node fsync=false run of SelectBenchmark.kvGet




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to