You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Zoram Thanga (JIRA)" <ji...@apache.org> on 2019/01/11 00:40:00 UTC

[jira] [Commented] (IMPALA-7802) Implement support for closing idle sessions

    [ https://issues.apache.org/jira/browse/IMPALA-7802?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16739902#comment-16739902 ] 

Zoram Thanga commented on IMPALA-7802:
--------------------------------------

Apologies, [~tarmstrong] for not responding sooner. I hadn't noticed your comment until today.

It would be nice to have something like [TThreadedSelectorServer|https://github.com/apache/thrift/blob/master/lib/java/src/org/apache/thrift/server/TThreadedSelectorServer.java], but that would likely require too much work.

The best we can do might be to find a way to forcibly close the socket once all sessions in the connection have timed out, as you suggest above. The tricky thing we need to do is to change TAcceptQueueServer::Task::run()'s call to TTransport->peek() so that it can be 'woken up' from the ImpalaServer layer.

> Implement support for closing idle sessions
> -------------------------------------------
>
>                 Key: IMPALA-7802
>                 URL: https://issues.apache.org/jira/browse/IMPALA-7802
>             Project: IMPALA
>          Issue Type: Improvement
>          Components: Clients
>    Affects Versions: Impala 3.0, Impala 2.12.0
>            Reporter: Michael Ho
>            Assignee: Zoram Thanga
>            Priority: Critical
>              Labels: supportability
>
> Currently, the query option {{idle_session_timeout}} specifies a timeout in seconds after which all running queries of that idle session will be cancelled and no new queries can be issued to it. However, the idle session will remain open and it needs to be closed explicitly. Please see the [documentation|https://www.cloudera.com/documentation/enterprise/latest/topics/impala_idle_session_timeout.html] for details.
> This behavior may be undesirable as each session still consumes an Impala frontend service thread. The number of frontend service threads is bound by the flag {{fe_service_threads}}. So, in a multi-tenant environment, an Impala server can have a lot of idle sessions but they still consume against the quota of {{fe_service_threads}}. If the number of sessions established reaches {{fe_service_threads}}, all new session creations will block until some of the existing sessions exit. There may be no time bound on when these zombie idle sessions will be closed and it's at the mercy of the client implementation to close them. In some sense, leaving many idle sessions open is a way to launch a denial of service attack on Impala.
> To fix this situation, we should have an option to forcefully close a session when it's considered idle so it won't unnecessarily consume the limited number of frontend service threads. cc'ing [~zoram]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org