[ 
https://issues.apache.org/jira/browse/BOOKKEEPER-193?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241055#comment-13241055
 ] 

[email protected] commented on BOOKKEEPER-193:
----------------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/4481/#review6511
-----------------------------------------------------------



bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
<https://reviews.apache.org/r/4481/#comment14165>

    Casting indicates that something is wrong in your abstraction. Perhaps 
activeLedgers.snapshot() should return a SortedMap, and doGC() should take a 
Map. It doesn't do anything that requires the ConcurrentMap interface.



bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
<https://reviews.apache.org/r/4481/#comment14166>

    why not just have the implementation of SnapshotMap use a 
ConcurrentSkipListMap?


- Ivan


On 2012-03-29 05:27:14, Sijie Guo wrote:
bq.  
bq.  -----------------------------------------------------------
bq.  This is an automatically generated e-mail. To reply, visit:
bq.  https://reviews.apache.org/r/4481/
bq.  -----------------------------------------------------------
bq.  
bq.  (Updated 2012-03-29 05:27:14)
bq.  
bq.  
bq.  Review request for bookkeeper.
bq.  
bq.  
bq.  Summary
bq.  -------
bq.  
bq.  create a snapshot of bookie active ledgers, and then fetch the list of 
zookeeper metadata, then it is safe to do garbage collection.
bq.  
bq.  
bq.  This addresses bug BOOKKEEPER-193.
bq.      https://issues.apache.org/jira/browse/BOOKKEEPER-193
bq.  
bq.  
bq.  Diffs
bq.  -----
bq.  
bq.    
bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/SnapshotMap.java 
PRE-CREATION 
bq.    
bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/FlatLedgerManager.java
 100cdad 
bq.    
bookkeeper-server/src/main/java/org/apache/bookkeeper/meta/HierarchicalLedgerManager.java
 169c906 
bq.    
bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/GcLedgersTest.java 
PRE-CREATION 
bq.    
bookkeeper-server/src/test/java/org/apache/bookkeeper/meta/LedgerManagerTestCase.java
 PRE-CREATION 
bq.  
bq.  Diff: https://reviews.apache.org/r/4481/diff
bq.  
bq.  
bq.  Testing
bq.  -------
bq.  
bq.  
bq.  Thanks,
bq.  
bq.  Sijie
bq.  
bq.


                
> Ledger is garbage collected by mistake.
> ---------------------------------------
>
>                 Key: BOOKKEEPER-193
>                 URL: https://issues.apache.org/jira/browse/BOOKKEEPER-193
>             Project: Bookkeeper
>          Issue Type: Bug
>          Components: bookkeeper-server
>            Reporter: Sijie Guo
>            Assignee: Sijie Guo
>            Priority: Blocker
>             Fix For: 4.1.0
>
>         Attachments: BK-193.patch, BK-193.patch_v2
>
>
> currently, we encountered such case: ledger is garbage collected by mistake, 
> and following requests would fail due to NoLedgerException.
> {code}
> 2012-03-23 19:10:47,403 - INFO  
> [GarbageCollectorThread:GarbageCollectorThread@234] - Garbage collecting 
> deleted ledger index files.
> 2012-03-23 19:10:48,702 - INFO  [GarbageCollectorThread:LedgerCache@544] - 
> Deleting ledgerId: 89408
> 2012-03-23 19:10:48,703 - INFO  [GarbageCollectorThread:LedgerCache@577] - 
> Deleted ledger : 89408
> 2012-03-23 19:11:10,013 - ERROR [NIOServerFactory-3181:BookieServer@361] - 
> Error writing 1@89408
> org.apache.bookkeeper.bookie.Bookie$NoLedgerException: Ledger 89408 not found
>         at 
> org.apache.bookkeeper.bookie.LedgerCache.getFileInfo(LedgerCache.java:228)
>         at 
> org.apache.bookkeeper.bookie.LedgerCache.updatePage(LedgerCache.java:260)
>         at 
> org.apache.bookkeeper.bookie.LedgerCache.putEntryOffset(LedgerCache.java:158)
>         at 
> org.apache.bookkeeper.bookie.LedgerDescriptor.addEntry(LedgerDescriptor.java:135)
>         at 
> org.apache.bookkeeper.bookie.Bookie.addEntryInternal(Bookie.java:1059)
>         at org.apache.bookkeeper.bookie.Bookie.addEntry(Bookie.java:1099)
>         at 
> org.apache.bookkeeper.proto.BookieServer.processPacket(BookieServer.java:357)
>         at 
> org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.readRequest(NIOServerFactory.java:315)
>         at 
> org.apache.bookkeeper.proto.NIOServerFactory$Cnxn.doIO(NIOServerFactory.java:213)
>         at 
> org.apache.bookkeeper.proto.NIOServerFactory.run(NIOServerFactory.java:124)
> {code}

--
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

        

Reply via email to