我想了解MongoDB查詢的整個路由到MongoDB Sharded集羣,並返回結果。它是否從mongos傳遞到配置服務器,然後傳遞到其中一個碎片,然後它返回到配置並返回到客戶端驅動程序或以其他方式?MongoDB Shard集羣路由
謝謝!
我想了解MongoDB查詢的整個路由到MongoDB Sharded集羣,並返回結果。它是否從mongos傳遞到配置服務器,然後傳遞到其中一個碎片,然後它返回到配置並返回到客戶端驅動程序或以其他方式?MongoDB Shard集羣路由
謝謝!
查詢從您的應用程序發送到本地或遠程mongos
實例,與其名稱(Mongo Shard)相反,實際上是一個路由器。
如果您的查詢包含分片密鑰,則mongos
路由器將使用來自配置服務器的緩存數據來確定要查詢的分片。
如果您的查詢不包含分片鍵,那麼MongoDB將執行分散和收集操作,基本上要求所有分片的結果都是針對某個查詢。
在這兩種情況下,mongos
都會將查詢並行化爲多個分片,然後返回最終結果。
每次在光標上運行getMore()
以獲得另一批結果時,即使它是分散和收集操作,它也必須重新執行查詢。
我非常確定這是在分片下的文檔 – Sammaye