[
https://issues.apache.org/jira/browse/ZOOKEEPER-387?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Flavio Paiva Junqueira updated ZOOKEEPER-387:
---------------------------------------------
Attachment: ZOOKEEPER-387.patch
> closeLedger shouldn't shut down all QuorumEngines
> -------------------------------------------------
>
> Key: ZOOKEEPER-387
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-387
> Project: Zookeeper
> Issue Type: Bug
> Components: contrib-bookkeeper
> Reporter: Flavio Paiva Junqueira
> Assignee: Flavio Paiva Junqueira
> Attachments: ZOOKEEPER-387.patch
>
>
> We had initially assumed one ledger open at a time, and LedgerRecoverMonitor
> reads and closes a ledger without instantiating a QuorumEngine. Consequently,
> when closing a ledger, we have to shut down a QuorumEngine only if there is
> one. A poor way of implementing it is by having a for loop that iterates over
> all available QuorumEngines and shut them down. Given the assumptions of one
> ledger at a time and no QuorumEngine for LedgerRecoveryMonitor, this
> implementation works. However, as we move to a more flexible model in which
> multiple ledgers can be open and closed at arbitrary times, the for loop
> choice no longer works.
> The attached patch fixes this problem by just shutting down the QuorumEngine
> instance corresponding to the ledger being closed, and it checks if a
> QuorumEngine exists before submitting a STOP operation. The patch also
> includes a test that opens four ledger, and then sequentially writes to the
> each ledger and closes it.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.