[
https://issues.apache.org/jira/browse/ZOOKEEPER-373?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12699426#action_12699426
]
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.