WholeRowIterator и диапазон с одним из одного ключа

У меня проблема с Accumulo 1.5.1, связанная с WholeRowIterator и получением фильтра для возврата строк, когда диапазон указан для одного ключа.

Range testRange = new Range("aa", true, "aa\0", false);

Когда я устанавливаю этот диапазон для сканера со связанным WholeRowIterator, фильтр не возвращает указанную строку «aa» клиенту, даже если переопределенная функция фильтра возвращает true для этого диапазона.

Является ли диапазон искаженным для сканера, использующего WholeRowIterator? Каким будет правильный диапазон?

Спасибо.


person Richard Garcia    schedule 02.09.2014    source источник


Ответы (2)


Указанный вами Range должен быть правильным. Вы также можете попробовать использовать ссылку new Range(CharSequence) для простоты.

Убедитесь, что ваши данные сформированы так, как вы думаете — вам могут мешать видимости или что-то еще. Перейдите в оболочку и выполните scan -t [table] -r aa и убедитесь, что вы получите результаты.

person MikeD    schedule 03.09.2014
comment
Спасибо за ответ. Я проверил, что сканирование в диапазоне +/- бесконечности работает, чтобы вернуть это значение с помощью WholeRowIterator, но когда диапазон уменьшается до этого одного ключа, ключ не возвращается. Этот ключ является первым ключом на планшете. - person Richard Garcia; 05.09.2014

После долгих поисков я смог найти этот пост:

http://mail-archives.apache.org/mod_mbox/accumulo-user/201207.mbox/%3CCAPMpPc5v83wn_PTqh-Hh1-TfP-PxLELwPQsDHkCKK_KzR3yqUg@mail.gmail.com%3E

Для WholeRowIterator должен быть установлен приоритет 21 или выше, чтобы не возникало конфликтного поведения с итераторами Version.

Это была раздражающая ошибка, потому что она давала много ложных срабатываний при тестировании.

person Richard Garcia    schedule 05.09.2014