accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From brianloss <...@git.apache.org>
Subject [GitHub] accumulo pull request #275: ACCUMULO-4667 Reworked the LocalityGroupIterator...
Date Wed, 28 Jun 2017 14:32:46 GMT
Github user brianloss commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/275#discussion_r124557591
  
    --- Diff: core/src/main/java/org/apache/accumulo/core/iterators/system/LocalityGroupIterator.java
---
    @@ -97,75 +133,118 @@ public static final int seek(HeapIterator hiter, LocalityGroup[]
groups, Set<Byt
         else
           cfSet = Collections.emptySet();
     
    -    for (LocalityGroup lgr : groups) {
    -      // when include is set to true it means this locality groups contains
    -      // wanted column families
    -      boolean include = false;
    +    // determine the set of groups to use
    +    Set<LocalityGroup> groupsToUse = new HashSet<LocalityGroup>();
     
    -      if (cfSet.size() == 0) {
    -        include = !inclusive;
    -      } else if (lgr.isDefaultLocalityGroup && lgr.columnFamilies == null) {
    -        // do not know what column families are in the default locality group,
    -        // only know what column families are not in it
    +    // if no column families specified, then include all groups unless !inclusive
    +    if (cfSet.size() == 0) {
    +      if (!inclusive) {
    +        groupsToUse.addAll(Arrays.asList(groups.groups));
    +      }
    +    } else {
     
    +      // do not know what column families are in the default locality group,
    +      // only know what column families are not in it
    +      if (groups.defaultGroup != null) {
             if (inclusive) {
    -          if (!nonDefaultColumnFamilies.containsAll(cfSet)) {
    +          if (!groups.groupByCf.keySet().containsAll(cfSet)) {
                 // default LG may contain wanted and unwanted column families
    -            include = true;
    +            groupsToUse.add(groups.defaultGroup);
               }// else - everything wanted is in other locality groups, so nothing to do
             } else {
               // must include, if all excluded column families are in other locality groups
    --- End diff --
    
    I know this wasn't your change, but this comment is misleading. We haven't tested that
all excluded column families are in other locality groups here. I think that for !inclusive,
you have to use the default locality group no matter what.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message