> On Dec. 2, 2014, 11:43 p.m., fpj wrote:
> > src/java/main/org/apache/zookeeper/ClientCnxnSocketNetty.java, line 66
> > <https://reviews.apache.org/r/27244/diff/22/?file=774526#file774526line66>
> >
> >     Is the reason to have workSemaphore to block in doTransport when there 
> > isn't anything in the outgoing queue? If so, we might be better off with a 
> > blocking queue rather than a list as we have right now.
> 
> Hongchao Deng wrote:
>     Sounds good on my side. I tried to make minimal changes. Do you think I 
> should make it in here or create another JIRA?
> 
> fpj wrote:
>     I'd rather have it fixed here, but depends on how much more energy you 
> have to put into this patch.

I get a new patch written. Tested in local jenkins.


> On Dec. 2, 2014, 11:43 p.m., fpj wrote:
> > src/java/main/org/apache/zookeeper/ClientCnxnSocketNetty.java, line 188
> > <https://reviews.apache.org/r/27244/diff/22/?file=774526#file774526line188>
> >
> >     Could you elaborate on what you're trying to do with this NIOLock? I'm 
> > not sure what you mean with race cocnditions in the comment.
> 
> Hongchao Deng wrote:
>     1. The intuition is that in NIO client all reads and writes are 
> sequential.
>     2. One problem I found: (1) packet is removed from outgoingQueue; (2) 
> before the packet is added to pendingQueue; (3) sendThread.readResponse 
> throws exception.
>     3. I am wondering what the purpose of pendingQueue is except for checking 
> and if we can remove it. AFAICT that's the only concurrency concern.
> 
> Hongchao Deng wrote:
>     I come up with a better way if the pendingQueue is the only concern. It 
> looks like pendingQueue doesn't care about ordering. So I can add packets to 
> pendingQueue before writing to channel.
> 
> fpj wrote:
>     Check SendThread.readResponse() in ClientCnxn, pls.

I did. I figure out it holds the assumptions:
1. pendingQueue only takes non-priming packets.
2. pendingQueue ordering is the same as packets sent in.

I would re-clarify my point that I can remove the lock as long as the only 
interaction between read and write is the pendingQueue. :)


- Hongchao


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/27244/#review63604
-----------------------------------------------------------


On Dec. 3, 2014, 9:50 p.m., Hongchao Deng wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/27244/
> -----------------------------------------------------------
> 
> (Updated Dec. 3, 2014, 9:50 p.m.)
> 
> 
> Review request for zookeeper.
> 
> 
> Repository: zookeeper-git
> 
> 
> Description
> -------
> 
> ZOOKEEPER-2069
> 
> 
> Diffs
> -----
> 
>   build.xml bb5ff4f 
>   src/java/main/org/apache/zookeeper/ClientCnxn.java b4ece07 
>   src/java/main/org/apache/zookeeper/ClientCnxnSocket.java 5ca0ba7 
>   src/java/main/org/apache/zookeeper/ClientCnxnSocketNIO.java adb27ee 
>   src/java/main/org/apache/zookeeper/ClientCnxnSocketNetty.java PRE-CREATION 
>   src/java/main/org/apache/zookeeper/ZooKeeper.java dd13cc9 
>   src/java/test/org/apache/zookeeper/test/NettyNettySuiteBase.java 
> PRE-CREATION 
>   src/java/test/org/apache/zookeeper/test/NettyNettySuiteHammerTest.java 
> PRE-CREATION 
>   src/java/test/org/apache/zookeeper/test/NettyNettySuiteTest.java 
> PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/27244/diff/
> 
> 
> Testing
> -------
> 
> 1. use LinkedBlockingDeque.
> 
> 
> Thanks,
> 
> Hongchao Deng
> 
>

Reply via email to