Fixes #243 Tuples should no longer be squashed in the event store

I'm trying to reuse as much of the iterator logic as possible. The global
index's time is in the timestamp field. The shard table's event time is now
in the value portion of the key (with the timestamp) because it uses logic
time.

On Wed, Nov 26, 2014 at 11:55 AM, eawagner <notifications@github.com> wrote:

> In
> commons/src/main/java/org/calrissian/accumulorecipes/commons/iterators/ExpirationFilter.java:
>
> >          }
> >
> >          return true;
> >      }
> >
> > -    protected abstract long parseExpiration(Value v);
> > +
> > +
> > +    protected boolean shouldExpire(long threshold, long timestamp) {
> > +      if (threshold > -1) {
> > +        long currentTime = currentTimeMillis();
> > +        if (timestamp > currentTime || currentTime - timestamp > threshold)
> > +          return true;
> > +      }
> > +      return false;
> > +    }
> > +
> > +    protected abstract long parseExpiration(long timestamp, Key k, Value v);
> > +
> > +    protected abstract long parseTimestamp(Key k, Value v);
>
> Yes in the GlobalIndexExpirationFilter.
> It looks like you handle the parseTimestamp method differently in three
> different places.
> GloablIndexExpirationFilter = k.getTimestamp();
> MetadataExpirationFilter = 0;
> EventExpirationFilter = extracts it from the key
>
> At a minimum I find it strange the the GlobalIndex and Metadata extraction
> filters are using to different values for the timestamp.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/calrissian/accumulo-recipes/pull/244/files#r20947661>.
>