accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Josh Elser <>
Subject Re: [DISCUSS] Iterator Clean Up
Date Wed, 09 Nov 2016 16:36:30 GMT
OrIterator and AndIterator are both miserable piles and not good 
representations of what they're actually supposed to be do.

They are designed to do conjunctions or disjunctions across one or more 
columns within a row. e.g.

1 f:a => bob
1 f:c => george
1 f:z => sally

You could use the AndIterator to find row "1" for (f:a => bob AND f:z => 
sally) and you could use the OrIterator find row "1" for (f:a => bob OR 
f:c => frank). The power behind the design of these iterators is that 
you could compose them to do things like (AND (OR f:a => bob f:c => 
frank) f:z => sally).

I'm not sure how to best handle them, but would agree that they are in 
terrible shape and not helping anyone. Channeling my "inner Tubbs", if 
they continue to exist in accumulo "proper", they should have cleaned 
up. Otherwise, defer until someone wants to give them some love.

Mike Miller wrote:
> I am struggling with writing Iterator tests for ACCUMULO-1280. One Iterator
> in particular makes me scratch my head is the OrIterator. It doesn't have a
> Test (ACCUMULO-3208) and some of the code appears stale/illogical.  This
> class, combined with my other Iterator struggles, makes me wonder if there
> are some classes than can be deprecated...
> ./apache/accumulo/core/iterators$ ls *.java system/*.java user/*.java | wc
> -l
> 72
> Just looking at numbers between these 3 directories we have 72 classes
> pertaining to Iterators/Filters/Combiners. Can any of these safely be
> deprecated in 2.0.0?
> We already have this ticket
> <>  for unused Iterator
> classes.  Instead of creating tests for these classes, could they be
> deprecated?

View raw message