2014-06-26 75 views
0

我有一個用例,我需要基於2i值進行查詢,並且只檢索所有的Riak對象而不是隻有鍵。爲此執行map-reduce操作需要相當長的時間和更多的計算。我們可以使用2i來檢索Riak對象而不是密鑰嗎

有沒有其他解決方案呢?

+0

Riak確實爲2i查詢提供了'return_terms'選項。因此,如果您感興趣的數據包含在索引中,則可以直接使用2i結果返回該數據。 – Joe

+0

@Joe return_terms只有範圍匹配的索引值以及搜索查詢中的鍵,有關更多詳細信息,請參閱以下鏈接(http://docs.basho.com/riak/latest/dev/references/http/secondary-indexes /) – Gaurav

+0

確實如此,但是我發現當人們只需要部分對象時就會變得富有創造性,比如將索引日期 - 電子郵件和日期 - 名稱以及日期 - 主題標題放在單獨的索引中,以便它們可以返回足夠的通過索引查詢向用戶呈現以供他們選擇他們想要看到的全部內容。 – Joe

回答

0

由於2i搜索返回匹配鍵列表,因此可以發出多個並行請求來獲取關聯的對象。

Riak不像傳統的RDBMS,您可以儘量減少您製作的提取請求的數量。我建議基準測試找到理想數量的並行請求,以最大限度提高獲取對象的性能。

最後,請確保您在應用程序和Riak之間使用負載均衡器,以便這些提取請求在集羣中的節點之間達到平衡。

+0

感謝您的建議,我已經在並行請求的數量上做了基準測試,但是當密鑰數量超過5K並且平均riak對象大小小於700KB時,結果並不令人滿意 – Gaurav

相關問題