[
https://issues.apache.org/jira/browse/IGNITE-20424?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Mikhail Petrov updated IGNITE-20424:
------------------------------------
Description:
All messages designated for the thin client are accumulated in the selector
queue GridSelectorNioSessionImpl#queue before they are sent. Note that
GridSelectorNioSessionImpl#queue for the Ignite Thin Client currently is
unbound. If the thin client connection is slow and a huge number of heavy
messages are about to send to the thin client, GridSelectorNioSessionImpl#queue
growing size can lead to OOM.
See
1. https://issues.apache.org/jira/browse/IGNITE-20327
2. https://github.com/apache/ignite/issues/10559
We need to investigate mechanisms to limit the thin client message queue size.
Currently, two mechanisms related to the described problem have already been
implemented:
1. GridNioServer.Builder#messageQueueSizeListener is used to limit the message
queue size for Ignite Thick clients - if the message queue size limit is
exceeded, the client node will be forced to leave the cluster.
2. GridNioServer.Builder#sendQueueLimit is used to block a thread that sends a
message if the message queue size limit is exceeded. Currently is used with
Thick Clients and Ignite REST clients.
was:
All messages designated for the thin client are accumulated in the selector
queue GridSelectorNioSessionImpl#queue before they are sent. Note that
GridSelectorNioSessionImpl#queue is unbound. If the thin client connection is
slow and a huge number of messages with a large weight will be sent to it,
GridSelectorNioSessionImpl#queue growing size can lead to OOM.
See
1. https://issues.apache.org/jira/browse/IGNITE-20327
2. https://github.com/apache/ignite/issues/10559
We need to investigate mechanisms to limit the thin client message queue size.
> [Thin clients] Slow thin clients connection can lead to consuming of huge
> amount of heap
> -----------------------------------------------------------------------------------------
>
> Key: IGNITE-20424
> URL: https://issues.apache.org/jira/browse/IGNITE-20424
> Project: Ignite
> Issue Type: Task
> Reporter: Mikhail Petrov
> Priority: Major
> Labels: ise
>
> All messages designated for the thin client are accumulated in the selector
> queue GridSelectorNioSessionImpl#queue before they are sent. Note that
> GridSelectorNioSessionImpl#queue for the Ignite Thin Client currently is
> unbound. If the thin client connection is slow and a huge number of heavy
> messages are about to send to the thin client,
> GridSelectorNioSessionImpl#queue growing size can lead to OOM.
> See
> 1. https://issues.apache.org/jira/browse/IGNITE-20327
> 2. https://github.com/apache/ignite/issues/10559
> We need to investigate mechanisms to limit the thin client message queue size.
> Currently, two mechanisms related to the described problem have already been
> implemented:
> 1. GridNioServer.Builder#messageQueueSizeListener is used to limit the
> message queue size for Ignite Thick clients - if the message queue size limit
> is exceeded, the client node will be forced to leave the cluster.
> 2. GridNioServer.Builder#sendQueueLimit is used to block a thread that sends
> a message if the message queue size limit is exceeded. Currently is used with
> Thick Clients and Ignite REST clients.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)