jackrabbit-oak-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chetan Mehrotra (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (OAK-1559) Expose BlobGCMBean for supported NodeStores
Date Thu, 20 Mar 2014 07:36:44 GMT

    [ https://issues.apache.org/jira/browse/OAK-1559?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13941488#comment-13941488

Chetan Mehrotra commented on OAK-1559:

Looking at various pieces

# {{BlobGC}} - Uses {{BlobGarbageCollector}} which is currently implemented by {{MarkSweepGarbageCollector}}
# {{MarkSweepGarbageCollector}} - Currently it handles two parts
## Marking blobs in BlobStore
## Determining what all blobId are in use. It is currently hardwired to {{DocumentNodeStore}}
impl. With OAK-1512 {{SegmentNodeStore}} also provides some means to get information about
all the blobId in use

So if {{MarkSweepGarbageCollector}} is made generic that it can be used with these two NodeStore
via some common interface impl then it can be used. It might be tricky as two impl are different
in there approach. DocumentNodeStore has a pull based approach where the GC logic pulls in
the information lazily via custom Iterator while the SegmentnNodeStore  has a push based impl
({{SegmentTracker#collectBlobReferences}} where it control the flow and push the reference

For final plumbing there are two possibilities
* A - {{BlobGC}}  can be registered as JMX in {{Oak#createContentRepository}} via {{WhiteboardUtils#registerMBean}}
as it has reference to NodeStore being used. This can be default and controlled via flag.
So default uses in non OSGi env can use it easily
* B - If the GC logic itself needs some config and expose extension points then in OSGi env
we can have a DS Component which would assemble the {{MarkSweepGarbageCollector}} and then
register the {{BlobGC}}  instance. For example see {{org.apache.jackrabbit.oak.plugins.blob.datastore.FileDataStoreService}}
which is a factory for JR2 {{FileDataStore}}

> Expose BlobGCMBean for supported NodeStores
> -------------------------------------------
>                 Key: OAK-1559
>                 URL: https://issues.apache.org/jira/browse/OAK-1559
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: mongomk, segmentmk
>            Reporter: Michael Dürig
>            Assignee: Michael Dürig
>             Fix For: 0.20
> {{NodeStore}} implementations should expose the {{BlobGCMBean}} in order to be interoperable
with {{RepositoryManagementMBean}}. See OAK-1160.

This message was sent by Atlassian JIRA

View raw message