假設我有5個數據節點。然後我保存一份Person
文件。現在有多少個問題:ElasticSearch:如何檢查文檔來自/去哪個節點/副本?
我怎樣才能找到保存到哪個節點的文件?
將一個
Person
文檔保存到具有兩個副本的節點後,如何查詢此Person
並獲取信息哪個副本/節點得到的答案來自哪裏?如何檢查文檔在兩個副本節點中的可用速度?
EDIT
用例是如下: 通常如何保證萬一一致性當主碎片有寫入新的數據,但數據尚未與同步複製品。與此同時,正在查詢複製副本中查詢副本時僅存在於主碎片中的新數據。差不多我想知道詳情的情況一致的是,從另一方面here the doc says about query phase每個主和副的查詢,並建立優先級隊列被後來合併在最後一段of the distributed read documentation ===>但描述,因此本根據協調節點上所有優先級隊列中的全局排序結果集構建合併隊列中的結果表單主分片。
- 問X所以從主碎片獨家文檔在返回搜索與否的情況下,它沒有被複制到其餘的副本?
換句話說, 我想確保整個分佈式ES羣集的數據一致性。現在我想測試下面的情況是否可以發生。比方說,我有一個有5個節點的集羣,數據只能放到一個節點上(例如,帶有主分片的node2
)。在數據有時間複製到剩餘副本之前,我得到了這個新數據朝node3
的查詢,這在理論上應該有數據的副本,但在node2
發生變化後還沒有得到它。因此,在這種情況下,查詢承諾朝node3
請求新數據即使已被放入'node2'也不會返回新數據。
- 問題A)如果這件事會發生如何控制複製 階段/狀態,這樣我可以告訴大家,如果複製完成?
- 問題B)如何判斷副本是否與主要碎片一致,以及它處於何種狀態(副本的數據與主要碎片一致或不一致)?
- 問題C)如果我無法控制此複製流和數據的一致性,如何消除針對
node3
提交的查詢 的潛在不一致性? - 問題D)我如何觀察將文檔添加到主分片並將其保存在副本分片中的行爲(例如,是否可以減慢/自定義複製時間,或者是否可以通過其他方式測試此行爲)?
出於好奇,請問爲什麼您對這些底層細節非常關心?您的需求背後有什麼用途? – Val
嗯,我只是想測試如果兩個節點將用於查詢可能會發生什麼。如果來自'node1'的文檔尚未處於'node2',但正在查詢文檔的「node2」,會發生什麼情況? – mCs