hbase-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Demai Ni <nid...@gmail.com>
Subject Re: meaning for AgeOfLastAppliedOp in Replication MetricsSink
Date Wed, 30 Jul 2014 15:49:09 GMT
Lars, thanks for your input.


> This metric indicates the time an edit sat in the "replication queue"
> before it got replicated.

yeah, I am with you on this.


> With that definition it is doing the right thing: Reporting current time -
> the time an edit entered the system (it's WAL time)
>
When the  'the time an edit entered the system' doesn't change (in the case
of  no Sink Op enter for a period of time), the age will keep growing since
current time moving forward, which gives a false impression that an edit
sitting in the queue for very long time. isn't it?


On Tue, Jul 29, 2014 at 10:54 PM, lars hofhansl <larsh@apache.org> wrote:

> This metric indicates the time an edit sat in the "replication queue"
> before it got replicated.
> With that definition it is doing the right thing: Reporting current time -
> the time an edit entered the system (it's WAL time)
>
>
> -- Lars
>
>
>
> ________________________________
>  From: Demai Ni <nidmgg@gmail.com>
> To: "dev@hbase.apache.org" <dev@hbase.apache.org>
> Sent: Tuesday, July 29, 2014 3:48 PM
> Subject: meaning for AgeOfLastAppliedOp in Replication MetricsSink
>
>
> hi,
>
> A quick question to clarify this  AgeOfLastAppliedOp in MetricsSink.java. I
> assume it is used as an indicator about how long for a Sink OP to be
> applied; but instead, it is more like to show how long since the last Sink
> OP applied
>
>   /**
>    * Set the age of the last applied operation
>    *
>    * @param timestamp The timestamp of the last operation applied.
>    * @return the age that was set
>    */
>   public long setAgeOfLastAppliedOp(long timestamp) {
>     lastTimestampForAge = timestamp;
>     long age = System.currentTimeMillis() - lastTimestampForAge;
>     rms.setGauge(SINK_AGE_OF_LAST_APPLIED_OP, age);
>     return age;
>   }
>
> In the following scenario:
> 1) at 7:00am a sink op is applied, and the SINK_AGE_OF_LAST_APPLIED_OP is
> set for example 100ms;
> 2) and then NO new Sink op occur.
> 3) when a refreshAgeOfLastAppliedOp() is invoked at 8:00am. Instead of
> return the 100ms, the AgeOfLastAppliedOp become 1hour + 100ms, which
> doesn't make sense, right?
>
> should we put a check for (lastTimestampForAge != timestamp) before refresh
> the age?
>
> Thanks
>
> Demai
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message