Author: fpj Date: Thu May 14 08:21:16 2009 New Revision: 774679 URL: http://svn.apache.org/viewvc?rev=774679&view=rev Log: ZOOKEEPER-400. Issues with procedure to close ledger. (flavio)
Modified: hadoop/zookeeper/trunk/CHANGES.txt hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/ClientCBWorker.java hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerHandle.java hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerRecoveryMonitor.java hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/BookieReadWriteTest.java hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/LedgerRecoveryTest.java Modified: hadoop/zookeeper/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/CHANGES.txt?rev=774679&r1=774678&r2=774679&view=diff ============================================================================== --- hadoop/zookeeper/trunk/CHANGES.txt (original) +++ hadoop/zookeeper/trunk/CHANGES.txt Thu May 14 08:21:16 2009 @@ -72,6 +72,8 @@ ZOOKEEPER-392. Change log4j properties in bookkeeper. (flavio via mahadev) + ZOOKEEPER-400. Issues with procedure to close ledger. (flavio) + IMPROVEMENTS: ZOOKEEPER-308. improve the atomic broadcast performance 3x. (breed via mahadev) Modified: hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/ClientCBWorker.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/ClientCBWorker.java?rev=774679&r1=774678&r2=774679&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/ClientCBWorker.java (original) +++ hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/ClientCBWorker.java Thu May 14 08:21:16 2009 @@ -113,10 +113,11 @@ case Operation.ADD: AddOp aOp = (AddOp) op; + aOp.getLedger().setAddConfirmed(aOp.entry); aOp.cb.addComplete(aOp.getErrorCode(), aOp.getLedger().getId(), aOp.entry, aOp.ctx); - aOp.getLedger().setAddConfirmed(aOp.entry); + break; case Operation.READ: ReadOp rOp = (ReadOp) op; Modified: hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerHandle.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerHandle.java?rev=774679&r1=774678&r2=774679&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerHandle.java (original) +++ hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerHandle.java Thu May 14 08:21:16 2009 @@ -444,8 +444,8 @@ throws KeeperException, InterruptedException { //Set data on zookeeper ByteBuffer last = ByteBuffer.allocate(8); - last.putLong(getLast()); - LOG.info("Last saved on ZK is: " + getLast()); + last.putLong(lastAddConfirmed); + LOG.info("Last saved on ZK is: " + lastAddConfirmed); String closePath = BookKeeper.prefix + bk.getZKStringId(getId()) + BookKeeper.close; if(bk.getZooKeeper().exists(closePath, false) == null){ bk.getZooKeeper().create(closePath, Modified: hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerRecoveryMonitor.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerRecoveryMonitor.java?rev=774679&r1=774678&r2=774679&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerRecoveryMonitor.java (original) +++ hadoop/zookeeper/trunk/src/contrib/bookkeeper/src/java/org/apache/bookkeeper/client/LedgerRecoveryMonitor.java Thu May 14 08:21:16 2009 @@ -150,14 +150,12 @@ hasMore = false; LOG.debug("Recovering: " + lh.getLast()); LedgerSequence ls = lh.readEntries(lh.getLast(), lh.getLast()); - //if(ls == null) throw BKException.create(Code.ReadException); LOG.debug("Received entry for: " + lh.getLast()); byte[] le = ls.nextElement().getEntry(); if(le != null){ if(notLegitimate) notLegitimate = false; lh.addEntry(le); - //lh.incLast(); hasMore = true; } } @@ -168,7 +166,7 @@ * Write counter as the last entry of ledger */ if(!notLegitimate){ - //lh.setLast(readCounter); + lh.setAddConfirmed(readCounter); lh.close(); return true; Modified: hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/BookieReadWriteTest.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/BookieReadWriteTest.java?rev=774679&r1=774678&r2=774679&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/BookieReadWriteTest.java (original) +++ hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/BookieReadWriteTest.java Thu May 14 08:21:16 2009 @@ -189,7 +189,7 @@ // wait for all entries to be acknowledged synchronized (sync) { - if (sync.counter < numEntriesToWrite){ + while (sync.counter < numEntriesToWrite){ LOG.debug("Entries counter = " + sync.counter); sync.wait(); } @@ -204,7 +204,7 @@ // open ledger lh = bkc.openLedger(ledgerId, ledgerPassword); LOG.debug("Number of entries written: " + lh.getLast()); - assertTrue("Verifying number of entries written", lh.getLast() == numEntriesToWrite); + assertTrue("Verifying number of entries written", lh.getLast() == (numEntriesToWrite - 1)); //read entries lh.asyncReadEntries(0, numEntriesToWrite - 1, this, (Object) sync); @@ -269,7 +269,7 @@ // wait for all entries to be acknowledged synchronized (sync) { - if (sync.counter < numEntriesToWrite){ + while (sync.counter < numEntriesToWrite){ LOG.debug("Entries counter = " + sync.counter); sync.wait(); } @@ -284,7 +284,7 @@ // open ledger lh = bkc.openLedger(ledgerId, ledgerPassword); LOG.debug("Number of entries written: " + lh.getLast()); - assertTrue("Verifying number of entries written", lh.getLast() == numEntriesToWrite); + assertTrue("Verifying number of entries written", lh.getLast() == (numEntriesToWrite - 1)); //read entries ls = lh.readEntries(0, numEntriesToWrite - 1); @@ -342,7 +342,7 @@ lh.close(); lh = bkc.openLedger(ledgerId, ledgerPassword); LOG.debug("Number of entries written: " + lh.getLast()); - assertTrue("Verifying number of entries written", lh.getLast() == numEntriesToWrite); + assertTrue("Verifying number of entries written", lh.getLast() == (numEntriesToWrite - 1)); ls = lh.readEntries(0, numEntriesToWrite - 1); int i = 0; @@ -394,7 +394,7 @@ lh.close(); lh = bkc.openLedger(ledgerId, ledgerPassword); LOG.debug("Number of entries written: " + lh.getLast()); - assertTrue("Verifying number of entries written", lh.getLast() == (numEntriesToWrite + 1)); + assertTrue("Verifying number of entries written", lh.getLast() == numEntriesToWrite); ls = lh.readEntries(0, numEntriesToWrite - 1); int i = 0; @@ -441,8 +441,8 @@ lh2 = bkc.openLedger(ledgerId2, ledgerPassword); LOG.debug("Number of entries written: " + lh.getLast() + ", " + lh2.getLast()); - assertTrue("Verifying number of entries written lh (" + lh.getLast() + ")" , lh.getLast() == numEntriesToWrite); - assertTrue("Verifying number of entries written lh2 (" + lh2.getLast() + ")", lh2.getLast() == numEntriesToWrite); + assertTrue("Verifying number of entries written lh (" + lh.getLast() + ")" , lh.getLast() == (numEntriesToWrite - 1)); + assertTrue("Verifying number of entries written lh2 (" + lh2.getLast() + ")", lh2.getLast() == (numEntriesToWrite - 1)); ls = lh.readEntries(0, numEntriesToWrite - 1); int i = 0; Modified: hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/LedgerRecoveryTest.java URL: http://svn.apache.org/viewvc/hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/LedgerRecoveryTest.java?rev=774679&r1=774678&r2=774679&view=diff ============================================================================== --- hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/LedgerRecoveryTest.java (original) +++ hadoop/zookeeper/trunk/src/contrib/bookkeeper/test/org/apache/bookkeeper/test/LedgerRecoveryTest.java Thu May 14 08:21:16 2009 @@ -243,7 +243,7 @@ /* * Check if has recovered properly. */ - assertTrue("Has not recovered correctly: " + afterlh.getLast(), afterlh.getLast() == 1000); + assertTrue("Has not recovered correctly: " + afterlh.getLast(), afterlh.getLast() == 999); } catch (KeeperException e) { LOG.error("Error when opening ledger", e); fail("Couldn't open ledger"); @@ -328,7 +328,7 @@ /* * Check if has recovered properly. */ - assertTrue("Has not recovered correctly: " + afterlh.getLast(), afterlh.getLast() == 1); + assertTrue("Has not recovered correctly: " + afterlh.getLast(), afterlh.getLast() == 0); } catch (KeeperException e) { LOG.error("Error when opening ledger", e); fail("Couldn't open ledger");