hadoop-yarn-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sangjin Lee (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (YARN-3863) Support complex filters in TimelineReader
Date Wed, 24 Feb 2016 02:01:18 GMT

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

Sangjin Lee commented on YARN-3863:
-----------------------------------

Just to clarify my mental model, I am trying to view the logic as something like the following:

{code}
public static boolean matchRelations(
    Map<String, Set<String>> entityRelations,
    TimelineFilterList relationFilters) throws IOException {
  Operator operator = relationFilters.getOperator();
  for (TimelineFilter filter : relationFilters.getFilterList()) {
    TimelineFilterType filterType = filter.getFilterType();
    boolean matched;
    switch (filterType) {
    case LIST:
      matched = matchRelations(entityRelations, (TimelineFilterList)filter);
      break;
    case MULTIVAL_EQUALITY:
      matched = matchMulValEquality(...); // method that handles multival equality
      break;
    default:
      throw new IOException("Unsupported filter " + filterType);
    }
    if (!matched) {
      if (operator == AND) {
        return false;
      }
    } else if (operator == OR) {
      return true;
    }
  }
  return operator == AND;
}
{code}

Am I far off? In any case, it would be great to make this part of the code easier to parse,
whether it be refactoring of some unit of logic or plenty of comments.

Also, these methods seem to have similar code. Any possibility of refactoring the common logic?

> Support complex filters in TimelineReader
> -----------------------------------------
>
>                 Key: YARN-3863
>                 URL: https://issues.apache.org/jira/browse/YARN-3863
>             Project: Hadoop YARN
>          Issue Type: Sub-task
>    Affects Versions: YARN-2928
>            Reporter: Varun Saxena
>            Assignee: Varun Saxena
>              Labels: yarn-2928-1st-milestone
>         Attachments: YARN-3863-YARN-2928.v2.01.patch, YARN-3863-YARN-2928.v2.02.patch,
YARN-3863-feature-YARN-2928.wip.003.patch, YARN-3863-feature-YARN-2928.wip.01.patch, YARN-3863-feature-YARN-2928.wip.02.patch,
YARN-3863-feature-YARN-2928.wip.04.patch, YARN-3863-feature-YARN-2928.wip.05.patch
>
>
> Currently filters in timeline reader will return an entity only if all the filter conditions
hold true i.e. only AND operation is supported. We can support OR operation for the filters
as well. Additionally as primary backend implementation is HBase, we can design our filters
in a manner, where they closely resemble HBase Filters.



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

Mime
View raw message