Как устанавливается исходный SortedKeyValueIterator для итераторов? Во многих итераторах я вижу метод инициализации ( init ) и методы source.get*, но я не вижу конкретных реализаций этих методов. Есть ли базовый итератор, в котором все эти итераторы реализованы поверх того, что я не вижу?
Accumulo Iterators Источник SortedKeyValueIterator
Ответы (1)
Весь стек итераторов создается на планшетном сервере (TServer).
В нижней части стека находятся встроенные системные итераторы, которые считывают ваши данные, объединенные из памяти/файлов. Кроме того, есть системные итераторы, реализующие контроль доступа и удаление маркеров удаления. Вверху находятся все ваши пользовательские итераторы, упорядоченные по приоритету, установленному вами в конфигурации для каждой таблицы и/или сканирования.
Метод init вызывается TServer во время построения этого стека итераторов и обрабатывает передачу одного итератора методу init следующего в стеке.
person
Christopher
schedule
22.07.2013
Спасибо, Крис, не могли бы вы указать мне на дно стека? Я хотел бы увидеть конкретное определение для некоторых методов get.
- person Miguel Pereira; 23.07.2013
Взгляните на Tablet.createIterator(). В частности, обратите особое внимание на fileManager.openFiles() и подклассы InterruptibleIterator. Однако это очень глубокий внутренний материал, поэтому он может быть изменен. Вы должны иметь возможность просмотреть иерархию типов в приличной среде IDE, такой как Eclipse, и увидеть конкретные итераторы, расширяющие InterruptibleIterator, возвращаемые из fileManager.openFiles().
- person Christopher; 24.07.2013