[ https://issues.apache.org/jira/browse/BOOKKEEPER-246?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13400527#comment-13400527 ]
Uma Maheswara Rao G commented on BOOKKEEPER-246: ------------------------------------------------ - {noformat} @Override + public void markLedgerComplete(long ledgerId) throws ReplicationException.UnavailableException { + try { + zkc.delete(getUrLedgerZnode(ledgerId), -1); + } catch (KeeperException.NoNodeException nne) { {noformat} This delete call can fail with NodeNotEMpty exception as, lock file will present inside that. - I was written most of this node fetching code in Replication wroker. I like this abstraction. Implemented the Lock in separate class and make use of it. Already filed a JIRA BOOKKEEPER-305 - Also other case while deleting ledger node is When other peers trying to aquire the lock for same node also, they will create one lock file, at the same time if the current node trying to delete the ledgerNode, then also NotEmpty exception can come. On exception may be better to call recursive delete api from ZKUtils? - As per my understanding Rakesh is trying to update the multiple bookie failure to the same ledger under replicated Znode with some data, ex: BKIP:port1, BKIP:port2. SO, that current replication should check the version number for deleting the ledger znode. otherwise we may end up deleting that znode right? - One question: markLedgerUnderreplicated api will be used by Auditor. getLedgerToRereplicate & markLedgerComplete apis will be used by ReplicationWorker right? > Recording of underreplication of ledger entries > ----------------------------------------------- > > Key: BOOKKEEPER-246 > URL: https://issues.apache.org/jira/browse/BOOKKEEPER-246 > Project: Bookkeeper > Issue Type: Sub-task > Components: bookkeeper-client, bookkeeper-server > Reporter: Ivan Kelly > Assignee: Ivan Kelly > Fix For: 4.2.0 > > Attachments: BOOKKEEPER-246.diff > > > This JIRA is to decide how to record that entries in a ledger are > underreplicated. > I think there is a common understanding (correct me if im wrong), that > rereplication can be broken into two logically distinct phases. A) Detection > of entry underreplication & B) Rereplication. > This subtask is to handle the interaction between these two stages. Stage B > needs to know what to rereplicate; how should Stage A inform it? -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira