2013-07-22 18 views
1

源迭代器如何設置源SortedKeyValueIterator? 在許多迭代器中,我看到一個初始化(init)方法和source.get *方法,但我沒有看到這些方法的具體實現。有沒有一個基礎迭代器,所有這些迭代器都是在我沒有看到的頂部實現的?Accumulo迭代器SortedKeyValueIterator源

回答

4

整個迭代器堆棧在平板電腦服務器(TServer)上構建。

在堆棧的底部,是內置的系統迭代器,用於讀取數據,從內存/文件合併。最重要的是實現訪問控制和修剪刪除標記的系統迭代器。在頂部,都是您的用戶迭代器,按您在每個表和/或掃描配置中設置的優先級排序。

在構建這個迭代器堆棧期間,TServer調用init方法,它處理將一個迭代器傳遞到堆棧中下一個的init方法。

+0

謝謝克里斯,你能指點我到堆棧的底部嗎?我希望看到一些get方法的具體定義。 –

+0

看看Tablet.createIterator()。尤其要特別注意InterruptibleIterator的fileManager.openFiles()和子類。這是非常深刻的內部東西,所以它可能會有所改變。您應該能夠在體面的IDE(如Eclipse)中查看類型層次結構,並查看從fileManager.openFiles()返回的擴展InterruptibleIterator的具體迭代器。 – Christopher