GitHub user jacques-n opened a pull request:
https://github.com/apache/drill/pull/463
DRILL-3714: Avoid cascading disconnection when a single connection is broken
DRILL-3714: Avoid cascading disconnection when a single connection is broken
- Move the coordination id management to be connection level instead of
RpcBus level
- Rename CoordinationQueue to a more appropriate name: RequestIdMap
- Simplify locking and memory overhead of RequestIdMap. It used to be that
this would accessed by a large number of threads concurrently. We modified the
behavior so that it is only accessed by two threads at most. Rather than have
memory overhead of ConcurrentHashMap, switch to simple locking approach since
contention should be low.
- Update all methods associated with coordination to improve names as well
as add javadocs. Move these methods to the RemoteConnection.
- Consolidate the two different close handlers into a single, ordered close
handler managed inside the connection.
- Add better javadoc around the close method of RemoteConnection
- Add some preconditions checks.
- Update the HPPC version in the base memory module since it conflicts with
the one in the java-exec module.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/jacques-n/drill DRILL-3714
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/drill/pull/463.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #463
----
commit 1529d8a665a63b675236e541d1fce1c5957f50ce
Author: Jacques Nadeau <[email protected]>
Date: 2016-04-05T23:36:25Z
DRILL-3714: Avoid cascading disconnection when a single connection is
broken.
- Move the coordination id management to be connection level instead of
RpcBus level
- Rename CoordinationQueue to a more appropriate name: RequestIdMap
- Simplify locking and memory overhead of RequestIdMap. It used to be that
this would accessed by a large number of threads concurrently. We modified the
behavior so that it is only accessed by two threads at most. Rather than have
memory overhead of ConcurrentHashMap, switch to simple locking approach since
contention should be low.
- Update all methods associated with coordination to improve names as well
as add javadocs. Move these methods to the RemoteConnection.
- Consolidate the two different close handlers into a single, ordered close
handler managed inside the connection.
- Add better javadoc around the close method of RemoteConnection
- Add some preconditions checks.
- Update the HPPC version in the base memory module since it conflicts with
the one in the java-exec module.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---