ascherbakoff commented on code in PR #7950:
URL: https://github.com/apache/ignite-3/pull/7950#discussion_r3071499032
##########
modules/client-handler/src/main/java/org/apache/ignite/client/handler/ClientInboundMessageHandler.java:
##########
@@ -882,19 +889,28 @@ private void processOperation(ChannelHandlerContext ctx,
ClientMessageUnpacker i
if (ClientOp.isPartitionOperation(opCode)) {
long requestId0 = requestId;
int opCode0 = opCode;
+ if (!partitionOperationInFlightLimiter.tryAcquire()) {
Review Comment:
This approach doesn't look working to me.
* It make single get operation and a write batch of thousand keys equal in
terms of backpressure.
* It's not clear how a used should choose the proper "per-core" limit value.
Using a small value will throttle too much, and big value basically disables
throttling.
* It is disabled by default, which means a cluster is not protected from
overloading by this mechanism.
We already have natural backpressure in the form of max lock table size.
Probably this is enough.
I would start from writing tests which actually overload the cluster and
figure out how to avoid this by introducing new natual backpressure metrics.
For example, a number of active transactions per node.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]