Benjamin Reed commented on ZOOKEEPER-373:

looks good. the one trick piece is the refCounting. specifically decrementing 
the counter. in close when you decrement the counter and then do the remove you 
aren't in a synchronized method, so you have a race condition. one other place 
that could be problematic is the mac object. isn't it possible that two 
different threads going to two different ledgers use the same mac?

> One thread per bookie
> ---------------------
>                 Key: ZOOKEEPER-373
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-373
>             Project: Zookeeper
>          Issue Type: Improvement
>          Components: contrib-bookkeeper
>    Affects Versions: 3.1.1
>            Reporter: Flavio Paiva Junqueira
>            Assignee: Flavio Paiva Junqueira
>             Fix For: 3.2.0
>         Attachments: ZOOKEEPER-373.patch, ZOOKEEPER-373.patch
> Currently, if a client is writing to multiple ledgers and these ledgers 
> overlap on some bookie, there will be as many threads for such a bookie as 
> the number of ledgers writing to it. Consequently, if a client writes to many 
> ledgers simultaneously, it may end up with an undesirably large number of 
> threads. I don't have a concrete proposal yet, but I suspect it is as simple 
> as keeping an array of BookieHandle objects, one per bookie, and having each 
> BookieHandle object shared by all ledgers.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

Reply via email to