You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Enis Soztutar (JIRA)" <ji...@apache.org> on 2016/04/05 05:04:25 UTC
[jira] [Comment Edited] (HBASE-15518) Add Per-Table metrics back
[ https://issues.apache.org/jira/browse/HBASE-15518?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15225559#comment-15225559 ]
Enis Soztutar edited comment on HBASE-15518 at 4/5/16 3:03 AM:
---------------------------------------------------------------
Thanks [~aliciashu] for the patch. Couple of comments:
- Please check the above hadoopqa warnings, and address those.
- Having both {{num}} and {{Count}} in the metric name does not make sense. Lets use {{readRequestCount}} / {{writeRequestCount}} to be consistent with RS-level metric names. Same thing for total request count.
{code}+ String NUM_READ_REQUESTS_COUNT = "numReadRequestsCount";{code}
- Move this class inside the MetricsTableWrapperAggregateImpl. No need to be top level. It should be declared private.
{code}
+public class MetricsTableValues {
{code}
- Instead of using the table aggregate wrapper directly in the regionserver, lets do a wrapper like the MetricsTable to hold the aggregate source and aggregate wrapper. We can instantiate that in the regionserver level.
{code}
+ MetricsTableWrapperAggregate metricsTableWrapperAgg;
{code}
- You don't need this ConcurrentHashMap for metricsTableMap. It should be a locally allocated map inside the method that uses it.
{code}
+ private ConcurrentHashMap<TableName, MetricsTableValues> metricsTableMap = new ConcurrentHashMap<>();
{code}
- otherwise looks good.
- Let me test this patch with my ycsb setup.
was (Author: enis):
Thanks [~aliciashu] for the patch. Couple of comments:
- Please check the above hadoopqa warnings, and address those.
- Having both {{num}} and {{Count}} in the metric name does not make sense. Lets use {{readRequestCount}} / {{writeRequestCount}} to be consistent with RS-level metric names. Same thing for total request count.
{code}+ String NUM_READ_REQUESTS_COUNT = "numReadRequestsCount";
- Move this class inside the MetricsTableWrapperAggregateImpl. No need to be top level. It should be declared private.
{code}
+public class MetricsTableValues {
{code}
- Instead of using the table aggregate wrapper directly in the regionserver, lets do a wrapper like the MetricsTable to hold the aggregate source and aggregate wrapper. We can instantiate that in the regionserver level.
{code}
+ MetricsTableWrapperAggregate metricsTableWrapperAgg;
{code}
- You don't need this ConcurrentHashMap for metricsTableMap. It should be a locally allocated map inside the method that uses it.
{code}
+ private ConcurrentHashMap<TableName, MetricsTableValues> metricsTableMap = new ConcurrentHashMap<>();
{code}
- otherwise looks good.
- Let me test this patch with my ycsb setup.
> Add Per-Table metrics back
> --------------------------
>
> Key: HBASE-15518
> URL: https://issues.apache.org/jira/browse/HBASE-15518
> Project: HBase
> Issue Type: Sub-task
> Reporter: Enis Soztutar
> Assignee: Alicia Ying Shu
> Fix For: 2.0.0, 1.4.0
>
> Attachments: HBASE-15518.patch
>
>
> We used to have per-table metrics, but it was removed in some restructuring. We have per-region metrics, and per-regionserver metrics, but nothing in between.
> For majority of users, per-region is too granular, they are mostly interested in table level aggregates. This is especially useful in multi-tenant cases where a table's disk usage, number of requests, etc can be made much more visible.
> In this jira, we'll add the basic infrastructure to add a single (or a few) per-table metrics. Than we can improve on that by adding remaining metrics from the region server level.
> The plan is to NOT aggregate per-table metrics at master for now. Just aggregation of per-region metrics at the per-table level for every regionserver.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)