[
https://issues.apache.org/jira/browse/HBASE-19035?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Guanghao Zhang updated HBASE-19035:
-----------------------------------
Description:
Region interface is exposed to coprocessor. So coprocessor use getScanner to
get a region scanner to read data. But the scan metrics was only updated in
region server level. So we will miss some scan metrics for the read from
coprocessor.
|| Region Operation || When to update requests metric ||
| get | update read metric in nextRaw() |
| put | update write metric in batchMutate() |
| delete | update write metric in batchMutate() |
| increment | update read metric by get() and update write metric in doDelta()
|
| append | update read metric by get() and update write metric in doDelta() |
| mutateRow | update write metric in processRowsWithLocks() |
| mutateRowsWithLocks | update write metric in processRowsWithLocks() |
| batchMutate | update write metric in batchMutate() |
| checkAndMutate | update read metric by get() and update write metric by
mutateRow() |
| checkAndRowMutate | update read metric by get() and update write metric by
doBatchMutate() |
| processRowsWithLocks | update write metric in processRowsWithLocks() |
1. Move read requests to region level. Because RegionScanner exposed to CP.
2. Update write requests count in processRowsWithLocks. This was missed in
previous implemenation, too.
3. Remove requestRowActionCount in RSRpcServices. This metric can be computed
by region's readRequestsCount and writeRequestsCount.
was:
Region interface is exposed to coprocessor. So coprocessor use getScanner to
get a region scanner to read data. But the scan metrics was only updated in
region server level. So we will miss some scan metrics for the read from
coprocessor.
|| Region Operation || When to update requests metric ||
| get | update read metric in nextRaw() |
| put | update write metric in batchMutate() |
| delete | update write metric in batchMutate() |
| increment | update read metric by get() and update write metric in doDelta()
|
| append | update read metric by get() and update write metric in doDelta() |
| mutateRow | update write metric in processRowsWithLocks() |
| mutateRowsWithLocks | update write metric in processRowsWithLocks() |
| batchMutate | update write metric in batchMutate() |
| checkAndMutate | update read metric by get() and update write metric by
mutateRow() |
| checkAndRowMutate | update read metric by get() and update write metric by
doBatchMutate() |
| processRowsWithLocks | update write metric in processRowsWithLocks() |
Meanwhile, remove requestRowActionCount in RSRpcServices. This metric can be
computed by region's readRequestsCount and writeRequestsCount.
> Miss metrics when coprocessor use region scanner to read data
> -------------------------------------------------------------
>
> Key: HBASE-19035
> URL: https://issues.apache.org/jira/browse/HBASE-19035
> Project: HBase
> Issue Type: Bug
> Reporter: Guanghao Zhang
> Assignee: Guanghao Zhang
> Fix For: 2.0.0-beta-1
>
> Attachments: HBASE-19035.master.001.patch,
> HBASE-19035.master.002.patch
>
>
> Region interface is exposed to coprocessor. So coprocessor use getScanner to
> get a region scanner to read data. But the scan metrics was only updated in
> region server level. So we will miss some scan metrics for the read from
> coprocessor.
> || Region Operation || When to update requests metric ||
> | get | update read metric in nextRaw() |
> | put | update write metric in batchMutate() |
> | delete | update write metric in batchMutate() |
> | increment | update read metric by get() and update write metric in
> doDelta() |
> | append | update read metric by get() and update write metric in doDelta() |
> | mutateRow | update write metric in processRowsWithLocks() |
> | mutateRowsWithLocks | update write metric in processRowsWithLocks() |
> | batchMutate | update write metric in batchMutate() |
> | checkAndMutate | update read metric by get() and update write metric by
> mutateRow() |
> | checkAndRowMutate | update read metric by get() and update write metric by
> doBatchMutate() |
> | processRowsWithLocks | update write metric in processRowsWithLocks() |
> 1. Move read requests to region level. Because RegionScanner exposed to CP.
> 2. Update write requests count in processRowsWithLocks. This was missed in
> previous implemenation, too.
> 3. Remove requestRowActionCount in RSRpcServices. This metric can be computed
> by region's readRequestsCount and writeRequestsCount.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)