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

> Have you profiled setting creating this instance here and clearing it
each time instead of one per item. My biggest concern here is that for a
large number of events getting called in the save, writing to accumulo may
take long enough that this makes it out of new gen space and then becomes
much more expensive to clean up. For a small number of events, it isn't
actually providing much of an improvement.

Im not saying change it, but this just looks like a fishy micro
optimization to me.

If you are referrign tot he tupleByObjectCache then that one is necessary.
A single mutation will have its own timestamp so I need to aggregate any
like tuples (aggregate the metadata into the value) ahead of time. This one
wasn't meant as an optimization.


The one that is meant as an optimization is the visibility. I cannot
imagine any use cases which will such a large variation in unique
visibilities where a single iterable of events would be enough to blow the
heap. I don't think it's realistic to assume that in the worst case every
visiblity for every tuple on every event is going to be unique.



On Wed, Nov 26, 2014 at 1:52 PM, eawagner <notifications@github.com> wrote:

> In
> commons/src/main/java/org/calrissian/accumulorecipes/commons/support/qfd/QfdHelper.java:
>
> >
> > -        if (connector.tableOperations().getIteratorSetting(this.indexTable, "cardinalities", majc) == null) {
> > -            IteratorSetting setting = new IteratorSetting(10, "cardinalities", GlobalIndexCombiner.class);
> > -            GlobalIndexCombiner.setCombineAllColumns(setting, true);
> > -            connector.tableOperations().attachIterator(this.indexTable, setting, allOf(IteratorScope.class));
> > -            IteratorSetting expirationFilter = new IteratorSetting(12, "expiration", GlobalIndexExpirationFilter.class);
> > -            connector.tableOperations().attachIterator(this.indexTable, expirationFilter, allOf(IteratorScope.class));
> > -        }
> > +    private ObjectVisCache(String vis, Object obj) {
>
> Call the instance of the multimap a cache. This is a cacheKey if nothing
> else.
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/calrissian/accumulo-recipes/pull/244/files#r20955461>.
>