From 18910387398d79bc82c80d38a68c0859001fc4c3 Mon Sep 17 00:00:00 2001 From: Andrei Ivanov Date: Mon, 27 Sep 2021 14:58:03 +0300 Subject: [PATCH] Introduced C* throttling --- src/main/java/net/iponweb/disthene/dumper/Dumper.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/net/iponweb/disthene/dumper/Dumper.java b/src/main/java/net/iponweb/disthene/dumper/Dumper.java index ad06751..efd7374 100644 --- a/src/main/java/net/iponweb/disthene/dumper/Dumper.java +++ b/src/main/java/net/iponweb/disthene/dumper/Dumper.java @@ -9,6 +9,7 @@ import com.datastax.oss.driver.api.core.metadata.Metadata; import com.datastax.oss.driver.api.core.metadata.Node; import com.datastax.oss.driver.internal.core.loadbalancing.DcInferringLoadBalancingPolicy; +import com.datastax.oss.driver.internal.core.session.throttling.ConcurrencyLimitingRequestThrottler; import org.apache.http.HttpHost; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -54,6 +55,9 @@ public class Dumper { private static final String TABLE_FORMAT = "metric_%s_%d"; private static final String KEYSPACE = "metric"; + private static final int MAX_QUEUE_SIZE = 1024*1024; + private static final int MAX_CONCURRENT_REQUESTS = 1024; + private static final Logger logger = LogManager.getLogger(Dumper.class); private final DistheneDumperParameters parameters; @@ -228,6 +232,9 @@ private void connectToCassandra() { .withDuration(DefaultDriverOption.REQUEST_TIMEOUT, Duration.ofMillis(1_000_000)) .withString(DefaultDriverOption.REQUEST_CONSISTENCY, "ONE") .withClass(DefaultDriverOption.LOAD_BALANCING_POLICY_CLASS, DcInferringLoadBalancingPolicy.class) + .withClass(DefaultDriverOption.REQUEST_THROTTLER_CLASS, ConcurrencyLimitingRequestThrottler.class) + .withInt(DefaultDriverOption.REQUEST_THROTTLER_MAX_CONCURRENT_REQUESTS, MAX_CONCURRENT_REQUESTS) + .withInt(DefaultDriverOption.REQUEST_THROTTLER_MAX_QUEUE_SIZE, MAX_QUEUE_SIZE) .build(); session = CqlSession.builder().withConfigLoader(loader).build();