You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ignite.apache.org by "Kirill Gusakov (Jira)" <ji...@apache.org> on 2023/11/15 14:06:00 UTC
[jira] [Created] (IGNITE-20868) ReplicaService whenCompleteAsync waste significant amount of time
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)