[
https://issues.apache.org/jira/browse/BOOKKEEPER-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13649728#comment-13649728
]
Ivan Kelly commented on BOOKKEEPER-257:
---------------------------------------
This will give an OutOfMemory in the case where there's a lot of ledgers. It
would be better to implement iterable like
{code}
LedgerRangeIterator iterator = bkc.getLedgerManager().getLedgerRanges();
return new Iterable<Long>() {
Iterator<Long> iterator() {
return new Iterator<Long>() {
LedgerRange currentRange = null;
boolean hasNext() {
if (currentRange == null && iterator.hasNext()) {
return true;
} else if (currentRange.hasNext() || iterator.hasNext()) {
return true;
} else {
return false;
}
}
Long next() {
if (currentRange == null) {
currentRange = iterator.next();
}
return currentRange.next();
}
}
}
}
{code}
> Ability to list all ledgers
> ---------------------------
>
> Key: BOOKKEEPER-257
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-257
> Project: Bookkeeper
> Issue Type: New Feature
> Reporter: Ivan Kelly
> Assignee: Flavio Junqueira
> Fix For: 4.3.0
>
> Attachments: BOOKKEEPER-257.patch
>
>
> When an application is using bookkeeper it must keep a copy of the ledger ids
> it creates so that they can be used later, and once they are no longer
> useful, deleted. However, in the case of a crash between ledger creation and
> persisting the application copy of the id, the ledger will be dangling.
> Therefore I propose we have the ability to get a list of all ledger ids,
> which clients can use for garbage collection. However, I don't think it
> should be part of the BookKeeper class, rather part of a new BookKeeperAdmin
> class.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira