Accumulo Iterators Источник SortedKeyValueIterator

Как устанавливается исходный SortedKeyValueIterator для итераторов? Во многих итераторах я вижу метод инициализации ( init ) и методы source.get*, но я не вижу конкретных реализаций этих методов. Есть ли базовый итератор, в котором все эти итераторы реализованы поверх того, что я не вижу?


person Miguel Pereira    schedule 22.07.2013    source источник


Ответы (1)


Весь стек итераторов создается на планшетном сервере (TServer).

В нижней части стека находятся встроенные системные итераторы, которые считывают ваши данные, объединенные из памяти/файлов. Кроме того, есть системные итераторы, реализующие контроль доступа и удаление маркеров удаления. Вверху находятся все ваши пользовательские итераторы, упорядоченные по приоритету, установленному вами в конфигурации для каждой таблицы и/или сканирования.

Метод init вызывается TServer во время построения этого стека итераторов и обрабатывает передачу одного итератора методу init следующего в стеке.

person Christopher    schedule 22.07.2013
comment
Спасибо, Крис, не могли бы вы указать мне на дно стека? Я хотел бы увидеть конкретное определение для некоторых методов get. - person Miguel Pereira; 23.07.2013
comment
Взгляните на Tablet.createIterator(). В частности, обратите особое внимание на fileManager.openFiles() и подклассы InterruptibleIterator. Однако это очень глубокий внутренний материал, поэтому он может быть изменен. Вы должны иметь возможность просмотреть иерархию типов в приличной среде IDE, такой как Eclipse, и увидеть конкретные итераторы, расширяющие InterruptibleIterator, возвращаемые из fileManager.openFiles(). - person Christopher; 24.07.2013