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

Reply via email to