[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Arpit Agarwal updated HADOOP-10278: --- Target Version/s: 2.4.0 (was: 2.5.0) Fix Version/s: (was: 2.5.0) 2.4.0 I merged this to branch-2.4. Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Assignee: Chris Li Fix For: 3.0.0, 2.4.0 Attachments: HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-rwlock.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Arpit Agarwal updated HADOOP-10278: --- Resolution: Fixed Fix Version/s: 2.5.0 3.0.0 Target Version/s: 2.5.0 Hadoop Flags: Reviewed Status: Resolved (was: Patch Available) I committed to trunk and branch-2. Thanks for the contribution [~chrilisf] and thanks Hiroshi, Benoy, Jing and Daryn for reviewing. Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Assignee: Chris Li Fix For: 3.0.0, 2.5.0 Attachments: HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-rwlock.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278-atomicref-adapter.patch Latest version of atomicref-adapter swaps by using handlers to clear the calls, choreographed by using two refs for put and take. We use a software version of double clocking to ensure the queue is likely empty. This should decrease the probability of dropping calls to highly unlikely. And losing calls isn't the end of the world either, since the client handles IPC timeouts with retries. Tests updated too, since the queue can only be swapped when there are active readers. Here's what a live swap looks like: !http://i.imgur.com/g28zJ7u.png! Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-rwlock.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278-atomicref-adapter.patch This should fix the test (HADOOP-10278-atomicref-adapter.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-rwlock.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278-atomicref-adapter.patch Uploaded new version of atomicref-adapter.patch This version makes the changes [~daryn] proposed. Other changes: * renames CallQueueAdapter to CallQueueManager (which still isn't the greatest name, but hints about its ability to swap its backing queue) * added tests * try instantiation using different constructors, preferring to use the custom one Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-adapter.patch, HADOOP-10278-atomicref-rwlock.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask1.4.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask1.5.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask1.3.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278-atomicref.patch Good catch, here's a version without those extra parameters. I'll add them back in a later patch when I use them. Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278-atomicref.patch [~jingzhao] This patch should fix that issue [~daryn] [~benoyantony] I completed tests using more powerful servers, doing RPCCallBenchmark -c 500 -s 300 -t 60 First test between trunk, HADOOP-10278-atomic.patch, and a variation using volatile instead of atomic ref: * Both experimental groups showed a statistically significant decrease in throughput (-1.1%, p=.0007) and increase in server CPU time (1.5%, p=.0001) compared to trunk. * No significant difference between volatile and atomicref (or difference is too small to be noticed among other noise. p=.4) Second test between trunk, HADOOP-10278-atomic.patch, and variation using 1000ms wait instead of 100ms (on a different machine): * Significant throughput decrease between 100ms poll and trunk, as before (-0.6%, p=0.03) * No significant throughput decrease between 1000ms poll and trunk (-0.2%, p=.26) * Significant increase in server CPU compared to trunk for both 100ms and 1000ms poll (about 2.2%, p=0.0007) * No significant difference in server CPU between 100ms and 1000ms poll (p=.34) * Significant increase in client CPU for 1000ms poll vs trunk (1.2%, p=0.03) --- Benchmarks show that a longer poll timeout is better for throughput performance, but will still raise the server CPU about the same. Thoughts? Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278-atomicref.patch, HADOOP-10278.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278.patch Uploaded HADOOP-10278.patch Removes whitespace at end of lines Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278.patch, subtask1.3.patch, subtask1.4.patch, subtask1.5.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: HADOOP-10278-atomicref.patch Sure thing, patch updated with atomicref version Potential issue? From the [BlockingQueue documentation|http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/BlockingQueue.html#poll(long, java.util.concurrent.TimeUnit)]: drainTo: ...the behavior of this operation is undefined if the specified collection is modified while the operation is in progress. On Performance: * The time can be increased since queue swaps should be rare, maybe even pegged to ipc.client.connect.timeout or made configurable * The performance hit will probably increase with more handler threads too * Even though the server CPU time increased, the throughput wasn't really affected, so it's definitely not the bottleneck (at least not on my machine) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: HADOOP-10278-atomicref.patch, HADOOP-10278.patch, subtask1.3.patch, subtask1.4.patch, subtask1.5.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask1.5.patch Patch generated with git format-patch trunk --stdout --no-prefix --ignore-space-change subtask1.5.patch Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.3.patch, subtask1.4.patch, subtask1.5.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask1.4.patch Removed redundant methods on CallQueue Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.3.patch, subtask1.4.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask1.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.3.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask1.2.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.3.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask1.2.patch Update tests to fix javac warnings Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.2.patch, subtask1.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask1.3.patch Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.2.patch, subtask1.3.patch, subtask1.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Status: Patch Available (was: Open) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask_refactor_callqueue.patch Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask_refactor_callqueue2.patch This version has the unit tests Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask_refactor_callqueue2.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask_refactor_callqueue2.patch This version has the unit tests and doesn't accidentally delete a different file. Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch, subtask_refactor_callqueue2.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask_refactor_callqueue3.patch This version doesn't include an irrelevant test Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch, subtask_refactor_callqueue2.patch, subtask_refactor_callqueue3.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask_refactor_callqueue3.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask_refactor_callqueue.patch, subtask_refactor_callqueue2.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask_refactor_callqueue2.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: (was: subtask_refactor_callqueue.patch) Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)
[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable
[ https://issues.apache.org/jira/browse/HADOOP-10278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Chris Li updated HADOOP-10278: -- Attachment: subtask1.patch As per [~daryn]'s suggestions, this patch retains the original interface of the callQueue in Server. This patch allows the Server to use a custom implementation of BlockingQueue if the user defines ipc.8020.callqueue.impl It includes one such implementation, the FIFOCallQueue, which simply imitates the LinkedBlockingQueue (and uses the same 2-lock algorithm used in the JDK's implementation). Though it seems redundant, the FIFOCallQueue will have greater flexibility in that it can be swapped out at runtime (coming in a later patch). Refactor to make CallQueue pluggable Key: HADOOP-10278 URL: https://issues.apache.org/jira/browse/HADOOP-10278 Project: Hadoop Common Issue Type: Sub-task Components: ipc Reporter: Chris Li Attachments: subtask1.patch * Refactor CallQueue into an interface, base, and default implementation that matches today's behavior * Make the call queue impl configurable, keyed on port so that we minimize coupling -- This message was sent by Atlassian JIRA (v6.1.5#6160)