2016-04-14 30 views
0

我正在期待集成測試我的Couchbase實現,並且我遇到了Couchbase的最終一致性問題。在生產環境中,我的數據完全沒問題,但是在測試時間,我想插入一些數據,然後通過我的各種服務驗證我是否收到數據。如果數據陳舊,這是行不通的,因爲我的測試期望無法解釋這一點。強制couchbase在集成測試時更新視圖索引

我可以通過在Couchbase客戶端中將staleState設置爲false來解決此問題,但這意味着我所有的測試都將觸發重建索引並增加其運行時間。

有沒有辦法強制Couchbase觸發一次性重建設計文檔的索引?本質上,我想上傳我的所有測試數據,觸發重建,然後執行我的測試用例。

此外,如果有更好的與Couchbase進行集成測試的模式,我很樂意聽到它。

感謝,

M.

回答

0

當陳舊=假的,如果有需要進入指數實際上更多的數據集Couchbase只會重建視圖索引。您的第一個stale = false可能需要一些時間,但只要您沒有在集羣中放入更多數據,即使設置了stale = false,其餘的調用也應該很快。

對於所有後續調用,由於索引檢查的原因,會有一個小的(毫秒或更小的)延遲,以確保它是最新的。如果你不想要這個,你可以運行stale = true查詢,並且只要你沒有插入更多的數據就可以得到正確的結果。

最後要注意的是,視圖索引構建是增量式的,因此它們從不重建整個索引。