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

Varun Saxena commented on YARN-5585:
------------------------------------

Thanks [~rohithsharma] for the patch. Will touch upon the areas which have been 
completed.

# In GenericEntityReader#getResults we need to have a PageFilter based on 
TimelineEntityFilters#limit.
# You commented about the GenericEntityReader#getResults method. I agree that 
we can have {{Long}} in EntityRowKey to get the prefix which can then be used 
to set stop row. Current code has a problem as you mentioned. We should have 
now either 2 filters fromPrefix and fromId or a single filter which carries 
both separated by some separator. Right ?
# Should we move calculateTheClosestNextRowKeyForPrefix to TimelineStorageUtils 
?
# Javadoc in TimelineReader should be changed. It currently says entities would 
be sorted by created time which is no longer true.
{code}
   * @return A set of <cite>TimelineEntity</cite> instances of the given entity
   *    type in the given context scope which matches the given predicates
   *    ordered by created time, descending. Each entity will only contain the
   *    metadata(id, type and created time) plus the given fields to retrieve.
{code}
# Regarding below piece of code in GenericEntityReader#getResults. I think to 
differentiate between pagination and non pagination mode we should merely use 
the new filters we add instead checking the context. These filter(s) should go 
into TimelineEntityFilters (semantically speaking) instead of going in 
TimelineReaderContext i.e. we should not be filling entity ID and prefix in 
context based on fromId + fromPrefix filter.
{code}
if (context.getEntityId() == null) {
 ...
} else { // pagination mode, will scan from given entityPrefix!enitityId
  ...
}
{code}

> [Atsv2] Reader side changes for entity prefix and support for pagination via 
> additional filters
> -----------------------------------------------------------------------------------------------
>
>                 Key: YARN-5585
>                 URL: https://issues.apache.org/jira/browse/YARN-5585
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>          Components: timelinereader
>            Reporter: Rohith Sharma K S
>            Assignee: Rohith Sharma K S
>            Priority: Critical
>              Labels: oct16-hard
>         Attachments: 0001-YARN-5585.patch, YARN-5585-YARN-5355.0001.patch, 
> YARN-5585-workaround.patch, YARN-5585.v0.patch
>
>
> TimelineReader REST API's provides lot of filters to retrieve the 
> applications. Along with those, it would be good to add new filter i.e fromId 
> so that entities can be retrieved after the fromId. 
> Current Behavior : Default limit is set to 100. If there are 1000 entities 
> then REST call gives first/last 100 entities. How to retrieve next set of 100 
> entities i.e 101 to 200 OR 900 to 801?
> Example : If applications are stored database, app-1 app-2 ... app-10.
> *getApps?limit=5* gives app-1 to app-5. But to retrieve next 5 apps, there is 
> no way to achieve this. 
> So proposal is to have fromId in the filter like 
> *getApps?limit=5&&fromId=app-5* which gives list of apps from app-6 to 
> app-10. 
> Since ATS is targeting large number of entities storage, it is very common 
> use case to get next set of entities using fromId rather than querying all 
> the entites. This is very useful for pagination in web UI.



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

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org

Reply via email to