[
https://issues.apache.org/jira/browse/TEZ-2450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14555089#comment-14555089
]
Siddharth Seth commented on TEZ-2450:
-------------------------------------
* HttpConnnection - connection, input, connectionSucceeded volatile. In
cleanup, connection and input should be set to null after they're cleaned up.
* HttpConnectionParams - Ideally should be final fields with a constructor used
to setup the params in the helper
* AsyncHttpConnection
** final fields where possible, if they're not unset
** initClient may not be safe. A partially constructed connection may be
returned if there's thread contention. See
http://en.wikipedia.org/wiki/Double-checked_locking
** //.setMaximumConnectionsTotal, //.setMaximumConnectionsPerHost commented
out. Should this be set to 1, numFetchers or some other value. Maybe temporary
configurable parameters while this is baked. There's an Exception later on
which refers to setting a parameter which isn't used on a
TooManyConnectionsException
* TezBodyDeferringAsyncHandler - Would be good to file a request with
AsyncClient so that this can be fixed in a later version and we can get rid of
the copy.
* Fetcher - catch(InterruptedException) return null - Does this need to check
the shutdown status ? Also, this likely needs to return a HostFetchResult so
that pending inputs are registered back with the ShuffleManager.
* FetcherOrderedGrouped - same as above. asyncHttp can be final
* ShuffleUtils - some commented out code which can be removed
* TestHttpConnection
** Tests should have a timeout
** NOT_USED_URL - should this be localhost instead ? Not sure what the current
url implies
** testHttpConnection - what is this verifying ?
** testHttpConnection - future.get() and then verify exceptions instead of just
a future.cancel(). A fail() within Worker won't fail the test - it has to be
propagated back to the main thread for it to have any affect.
** testAsyncHttpConnectionInterrupt - Replace the sleep(500) with a
future.get() and verify an InterruptException ?
* TestPipelinedShuffle
** setupTezCluster enables async by default - which means all tests run with
this ?
** last conf.set in baseTest doesn't do anything
** baseTest set async true even though it's already set (both tests will run as
async ?)
> support async http clients in ordered & unordered inputs
> --------------------------------------------------------
>
> Key: TEZ-2450
> URL: https://issues.apache.org/jira/browse/TEZ-2450
> Project: Apache Tez
> Issue Type: Improvement
> Reporter: Rajesh Balamohan
> Assignee: Rajesh Balamohan
> Attachments: TEZ-2450.1.patch, TEZ-2450.2.WIP.patch,
> TEZ-2450.2.patch, TEZ-2450.WIP.patch
>
>
> It will be helpful to switch between JDK & other async http impls. For LLAP
> scenarios, it would be useful to make http clients interruptible which is
> supported in async libraries.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)