[ 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-unsubscr...@impala.apache.org For additional commands, e-mail: issues-all-h...@impala.apache.org