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.