[ 
https://issues.apache.org/jira/browse/YARN-4074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14803384#comment-14803384
 ] 

Sangjin Lee commented on YARN-4074:
-----------------------------------

{quote}
In TimelineEntityReader#readMetrics it seems safe to assume that if we have 
more than one value that this is a TimelineMetric.Type.TIME_SERIES.
Conversely it doesn't have to be true though right? I guess we'll just assume 
that for timelines we'd never have just one value? I can't quite oversee the 
impact of incorrectly assuming TimelineMetric.Type.SINGLE_VALUE if only one 
value has been written to HBase yet.
{quote}

That's right. We discussed this some time ago, and we think it'd be safer if 
the metric type (single value vs. time series) were stored/persisted. But there 
are other dimensions of metrics we may need to store (e.g. long vs. float, 
whether to aggregate, etc.). Also, there is a question of what if users wrote 
inconsistent data. So, at that time we went with a simple decision that's 
currently there (the code you see in {{TimelineEntityReader}} is refactored out 
of {{HBaseTimelineReaderImpl}} so it's not new code).

We should come to a conclusion on how to store/encode various dimensions of 
metrics, but not as part of this JIRA.

{quote}
Wrt. ApplicationRowKey: at some point (perhaps not this jira) we should 
consider making the app_id a compound object that is stored with a ? separator. 
The prefix (in most cases in yarn right now would be "application_") would be 
separate and the RM start time and the final numeric part would be stored as a 
numerical value with a separate Bytes.to... conversion.

Otherwise we'll end up getting incorrect order for rowkeys when the application 
id wraps to 10K and each power of ten after that. For example, lexically 
application_1442351767756_10000 < application_1442351767756_9999

If we just access the application by specific key this doesn't matter, but if 
we do a row-scan and count on ordering to set an appropriate stop on the scan, 
we'll break things.
This happens on all rowkeys with the app_id in it.
{quote}

That's a good point. We need to fix this, or we'll have incorrect 
orders/results happening with queries. This impacts anywhere we rely on the app 
id order (as string). I'll file a separate JIRA to address this issue.

> [timeline reader] implement support for querying for flows and flow runs
> ------------------------------------------------------------------------
>
>                 Key: YARN-4074
>                 URL: https://issues.apache.org/jira/browse/YARN-4074
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelineserver
>    Affects Versions: YARN-2928
>            Reporter: Sangjin Lee
>            Assignee: Sangjin Lee
>         Attachments: YARN-4074-YARN-2928.007.patch, 
> YARN-4074-YARN-2928.POC.001.patch, YARN-4074-YARN-2928.POC.002.patch, 
> YARN-4074-YARN-2928.POC.003.patch, YARN-4074-YARN-2928.POC.004.patch, 
> YARN-4074-YARN-2928.POC.005.patch, YARN-4074-YARN-2928.POC.006.patch
>
>
> Implement support for querying for flows and flow runs.
> We should be able to query for the most recent N flows, etc.
> This includes changes to the {{TimelineReader}} API if necessary, as well as 
> implementation of the API.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to