2016-04-21 72 views
0

我正在使用Couchbase的Spring數據並希望實施Couchbase的bulkGet。請讓我知道以下內容:Couchbase BulkGet在春季數據couchbase

  1. 是否可以通過Spring Data?
    • 如果是,你能分享一個例子嗎?
  2. findAll(使用_all查看)在性能方面可媲美bulkGet
  3. 我可以連同Couchbase文檔一起獲取_id嗎?

環境: - Couchbase 4.0,春數據2.0.0.RELEASE,爪哇8

先謝謝了!

回答

1

我假設您在存儲庫的上下文中詢問有關批量獲取的問題。

首先,目前在Spring Data Couchbase中沒有完全支持「bulkGet」。大部分實現基於SDK同步API,批量獲取通常使用異步 API,使用RxJava完成。

請注意,在Couchbase的協議級別沒有實際的「bulkGet」操作,它只是發出多個單一的Get的SDK並將它們分配在一起。

要回答你的第二個問題,上面的問題很重要。在Couchbase Java SDK文檔(此處)中討論的批量獲取模式會略微提升性能,因爲與同步模式不同,我們不會等待檢索一個項目才能獲得下一個項目。

findAll()findAll(Iterable)方法在Spring數據Couchbase在view的頂部,它允許只檢索匹配您的存儲庫的實體類型的文件,但引入了與純序列間接,可以降低性能的水平兩方面鍵/值得到。

所以,你可以得到的Spring數據Couchbase這樣的批量操作最接近將知道所有的ID你有興趣,然後每個ID執行findOne

在近期內,findAll(Iterable)簽名背後的代碼可能會通過在所有提供的ID上應用批量獲取模式得到改進,但這意味着忘記了由視圖導致的類型檢查,所以我不確定...