[
https://issues.apache.org/jira/browse/OAK-4712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15471936#comment-15471936
]
Matt Ryan edited comment on OAK-4712 at 9/7/16 10:07 PM:
---------------------------------------------------------
Requested changes applied in the latest patch (OAK-4712.4.diff). It eliminates
{{NodeIdMapper}} and consolidates the resolution logic into
{{S3DataStoreStats}} for all relevant {{NodeStoreService}} classes.
Some items of note:
- {{S3DataStoreStats}} was moved from {{oak-blob-cloud}} to {{oak-core}},
alongside some other S3-related classes. Moving the path resolution logic into
{{S3DataStoreStats}} required this change since it relies on other classes in
{{oak-core}} to work, and since {{oak-core}} already depends on
{{oak-blob-cloud}}, leaving S3DataStoreStats in {{oak-blob-cloud}} would have
ended up with a circular dependency.
- A new interface, {{BlobIdBlob}}, was added, extending {{Blob}}. This
represents a kind of blob that also has a blob ID that can be retrieved.
{{SegmentBlob}} and {{BlobStoreBlob}} now implement this interface, since both
support {{getBlobId()}}.
- The active nodeStore is provided to the MBean at construction time. I chose
this approach over OSGi injection because the MBean also requires an additional
parameter, the {{S3DataStore}}, and injection would have required that we also
inject the {{S3DataStore}}, which at first look seems more trouble than it is
worth (open to discussion however).
was (Author: mattvryan):
Requested changes applied in this patch. It eliminates {{NodeIdMapper}} and
consolidates the resolution logic into {{S3DataStoreStats}} for all relevant
{{NodeStoreService}} classes.
Some items of note:
- {{S3DataStoreStats}} was moved from {{oak-blob-cloud}} to {{oak-core}},
alongside some other S3-related classes. Moving the path resolution logic into
{{S3DataStoreStats}} required this change since it relies on other classes in
{{oak-core}} to work, and since {{oak-core}} already depends on
{{oak-blob-cloud}}, leaving S3DataStoreStats in {{oak-blob-cloud}} would have
ended up with a circular dependency.
- A new interface, {{BlobIdBlob}}, was added, extending {{Blob}}. This
represents a kind of blob that also has a blob ID that can be retrieved.
{{SegmentBlob}} and {{BlobStoreBlob}} now implement this interface, since both
support {{getBlobId()}}.
- The active nodeStore is provided to the MBean at construction time. I chose
this approach over OSGi injection because the MBean also requires an additional
parameter, the {{S3DataStore}}, and injection would have required that we also
inject the {{S3DataStore}}, which at first look seems more trouble than it is
worth (open to discussion however).
> Publish S3DataStore stats in JMX MBean
> --------------------------------------
>
> Key: OAK-4712
> URL: https://issues.apache.org/jira/browse/OAK-4712
> Project: Jackrabbit Oak
> Issue Type: New Feature
> Components: blob
> Reporter: Matt Ryan
> Attachments: OAK-4712.2.diff, OAK-4712.3.diff, OAK-4712.4.diff
>
>
> This feature is to publish statistics about the S3DataStore via a JMX MBean.
> There are two statistics suggested:
> * Indicate the number of files actively being synchronized from the local
> cache into S3
> * Given a path to a local file, indicate whether synchronization of file into
> S3 has completed
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)