Using Accumulo 1.4.3, I have a table configured to keep Many (maxint) versions of each key, with the version being interpreted as a timestamp. Given a set of times I'm interested in, I can pull out the data at exactly those times with no problem.
But I also want another behavior: if I don't have a particular time, I want to respond with the most recent version of the data. I'm trying to use this code:
where TimestampSetIterator is my own custom iterator that's already working.
In my table, I have 76063 different data points, each with 31 versions. When I pass a null timestamp, I expect to get back 76063 entries. Instead, I get 76063*31 = 2357953 entries. That is, it looks like the table is ignoring the part where I setMaxVersions to 1. What am I missing?
When you say that you have configured your table to keep maxint versions of each key, do you mean that another versioning iterator already exists on the table with a different number of max versions? What is the name and priority of this iterator?
On Thu, Mar 13, 2014 at 11:23 AM, John Armstrong <[EMAIL PROTECTED]> wrote:
On Thu 13 Mar 2014 03:55:28 PM EDT, Christopher wrote:
Sorry all, false alarm: the code I pasted works after all. I was modifying a method through which I thought all of our methods setting up timestamp selection factored. Unfortunately the part I was testing was the one did not routed through there, so it didn't get the alterations I was making. Thanks anyway.
Instead of setting maxVersions large, it would be better to remove the iterator from the table. Also, iterator names are expected to be unique, so having "vers" be the name of the default versioning iterator and your scan versioning iterator is not recommended. It might be possible to override the options of an existing iterator for a particular scan.
Given your configuration, I would expect the scan time option of maxVersions=1 to be used for both your scan time iterator and the table iterator of the same name.
On Thu, Mar 13, 2014 at 12:43 PM, John Armstrong <[EMAIL PROTECTED]> wrote:
In the shell, you can use the following command to remove the iterator named "vers": deleteiter -t tableName -n vers -minc -majc -scan
In Java, it looks like: connector.tableOperations().removeIterator(tableName, "vers", EnumSet.allOf(IteratorScope.class));
On Thu, Mar 13, 2014 at 1:58 PM, John Armstrong <[EMAIL PROTECTED]> wrote:
NEW: Monitor These Apps!
Apache Lucene, Apache Solr and all other Apache Software Foundation projects and their respective logos are trademarks of the Apache Software Foundation.
Elasticsearch, Kibana, Logstash, and Beats are trademarks of Elasticsearch BV, registered in the U.S. and in other countries. This site and Sematext Group is in no way affiliated with Elasticsearch BV.
Service operated by Sematext