2011-10-14 16 views
0

這是一個MongoDB(2.0.0)的分區設置,每個分區有多個3個節點的副本集。 Mongoid正在經歷mongos。我想爲每個副本集中的其中一個輔助節點提供長時間運行的查詢,否則會影響用戶體驗;我不想讓普通的查詢去那裏。我看到我可以標記節點(數據中心意識),但我怎樣才能將讀取發送到特定標記的節點?如何在通過mongos時將MongoDB中的讀取路由到特定的輔助節點?

另一個用例是在不同的數據中心中備份節點,但查詢只應該到本地數據中心,而不是隨機分佈以包含遠程數據中心。

回答

0

在諮詢完文檔之後,我很確定無法做到您想做的事情,至少不是在數據庫級別。由於mongos從應用程序中提取碎片,因此無法將查詢指向特定的碎片。

但是,我認爲這裏有一個更高層次的概念。如果您有一個不需要阻止UI的長時間運行的查詢,則最好設置消息隊列並將查詢彈出。這樣,查詢就可以在後臺運行。如果所述查詢通常會影響系統的性能,那麼您可能需要通過將其分解爲在較小數據集上工作的查詢並將該數據集重新組裝在內存中或尋找降低其優先級的方式來降低其影響系統資源不受影響。

希望這會有所幫助。

相關問題