[jira] [Updated] (HADOOP-10278) Refactor to make CallQueue pluggable

2014-02-28 Thread Arpit Agarwal (JIRA)

 [ 
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

2014-02-21 Thread Arpit Agarwal (JIRA)

 [ 
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

2014-02-18 Thread Chris Li (JIRA)

 [ 
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

2014-02-18 Thread Chris Li (JIRA)

 [ 
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

2014-02-14 Thread Chris Li (JIRA)

 [ 
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

2014-02-04 Thread Chris Li (JIRA)

 [ 
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

2014-02-04 Thread Chris Li (JIRA)

 [ 
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

2014-02-04 Thread Chris Li (JIRA)

 [ 
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

2014-02-04 Thread Chris Li (JIRA)

 [ 
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

2014-02-04 Thread Chris Li (JIRA)

 [ 
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

2014-02-03 Thread Chris Li (JIRA)

 [ 
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

2014-02-03 Thread Chris Li (JIRA)

 [ 
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

2014-02-01 Thread Chris Li (JIRA)

 [ 
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

2014-01-31 Thread Chris Li (JIRA)

 [ 
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

2014-01-28 Thread Chris Li (JIRA)

 [ 
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

2014-01-28 Thread Chris Li (JIRA)

 [ 
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

2014-01-27 Thread Chris Li (JIRA)

 [ 
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

2014-01-27 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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

2014-01-24 Thread Chris Li (JIRA)

 [ 
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)