[ 
https://issues.apache.org/jira/browse/HBASE-21406?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Wellington Chevreuil updated HBASE-21406:
-----------------------------------------
    Status: Patch Available  (was: In Progress)

Attached first patch version. Basically, added new metric to differentiate sink 
startup time from last OP applied time. Original behaviour was to always set 
startup time to TimestampsOfLastAppliedOp, and always show it on "status 
'replication'" command, regardless if the sink ever applied any OP. This was 
confusing, specially for scenarios where cluster was just acting as source, the 
output could lead to wrong interpretations about sink not applying edits or 
replication being stuck. With the new metric, we now compare the two metrics 
values, assuming that if both are the same, there's never been any OP shipped 
to the given sink, so output would reflect it more clearly, to something as for 
example:
{noformat}
SINK: TimeStampStarted=Thu Dec 06 23:59:47 GMT 2018, Waiting for 
OPs...{noformat}

For the replication source issues described earlier, have an ongoing jira: 
HBASE-21505.

> "status 'replication'" should not show SINK if the cluster does not act as 
> sink
> -------------------------------------------------------------------------------
>
>                 Key: HBASE-21406
>                 URL: https://issues.apache.org/jira/browse/HBASE-21406
>             Project: HBase
>          Issue Type: Improvement
>            Reporter: Daisuke Kobayashi
>            Assignee: Wellington Chevreuil
>            Priority: Minor
>         Attachments: HBASE-21406-branch-1.001.patch, 
> HBASE-21406-master.001.patch, Screen Shot 2018-10-31 at 18.12.54.png
>
>
> When replicating in 1 way, from source to target, {{status 'replication'}} on 
> source always dumps SINK with meaningless metrics. It only makes sense when 
> running the command on target cluster.
> {{status 'replication'}} on source, for example. {{AgeOfLastAppliedOp}} is 
> always zero and {{TimeStampsOfLastAppliedOp}} does not get updated from the 
> time the RS started since it's not acting as sink.
> {noformat}
>     source-1.com
>        SOURCE: PeerID=1, AgeOfLastShippedOp=0, SizeOfLogQueue=0, 
> TimeStampsOfLastShippedOp=Mon Oct 29 23:44:14 PDT 2018, Replication Lag=0
>        SINK  : AgeOfLastAppliedOp=0, TimeStampsOfLastAppliedOp=Thu Oct 25 
> 23:56:53 PDT 2018
> {noformat}
> {{status 'replication'}} on target works as expected. SOURCE is empty as it's 
> not acting as source:
> {noformat}
>     target-1.com
>        SOURCE:
>        SINK  : AgeOfLastAppliedOp=70, TimeStampsOfLastAppliedOp=Mon Oct 29 
> 23:44:08 PDT 2018
> {noformat}
> This is because {{getReplicationLoadSink}}, called in {{admin.rb}}, always 
> returns a value (not null).
> 1.X
> https://github.com/apache/hbase/blob/rel/1.4.0/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerLoad.java#L194-L204
> 2.X
> https://github.com/apache/hbase/blob/rel/2.0.0/hbase-client/src/main/java/org/apache/hadoop/hbase/ServerLoad.java#L392-L399



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to