2016-07-27 82 views
1

這是本書HBase in Action中用於掃描緩存的摘錄。掃描緩存和ResultScanner接口中的下一個方法

的ResultScanner接口也有一個未來(int)的調用,您可以使用它從掃描問 回報接下來n行。這是一個API方便程度,它與客戶端對HBase獲取這些n行所進行的RPC調用的數量沒有任何 關係。 在引擎蓋下,ResultScanner根據需要進行儘可能多的RPC調用以滿足 請求;每次RPC調用返回的行數完全取決於爲掃描器配置的緩存值 。

我有任何與上述2個疑惑:

  1. 如果下一個(int)方法沒有任何關係RPC調用的次數客戶端向HBase的,它解決什麼目的或者應該如何以及在哪裏使用?
  2. 最後一句說明了ResultScanner會盡可能多的RPC調用來滿足請求。我認爲掃描緩存將有助於減少往返HBase的往返次數或要求,或者我瞭解它錯誤嗎?

回答

1
  1. 文件說,這是方便的功能,我看到返回類型爲數組的好處。

  2. 是的,高速緩存有幫助。該文檔通過說明返回的RPC行數完全依賴於緩存配置來確認它。

+0

關於第2點,我知道緩存有幫助,但如果RPC調用次數沒有減少,那麼它有什麼幫助? – Viraj

+1

它會減少,這個帖子是說在接下來的n不會減少它。更大的緩存意味着返回更多的行。查找[this.caching](https://www.codatlas.com/github.com/apache/hbase/bdd7782/hbase-client/src/main/java/org/apache/的hadoop/HBase的/客戶端/ ClientScanner.java?行= 148)。 [和這裏](https://www.codatlas.com/github.com/apache/hbase/bdd7782/hbase-client/src/main/java/org/apache/hadoop/hbase/client/ScannerCallable.java?line = 455) – miroB