分片中的 InsertBatch

Posted

技术标签:

【中文标题】分片中的 InsertBatch【英文标题】:InsertBatch in Sharding 【发布时间】:2012-02-22 22:29:45 【问题描述】:

如果使用大的 InsertBatch,幕后实际发生了什么 一个正在写入分片集群? MongoDb 是否真的支持 批量插入或 InserBatch 实际上是一次插入一个 服务器级别?那么,这如何与分片一起工作?做这个 意味着 mongos 将查看批次中的每个项目以找出 每个项目的分片键是什么,然后将其路由到右侧 服务器?如果存在并且似乎不存在,这将破坏批量插入 高效。分片的 InsertBatch 机制是什么 解决方案?我正在使用 2.0 版,如果有任何不同,我愿意升级

【问题讨论】:

【参考方案1】:

批量插入是 MongoDB 的一项实际功能,由于往返次数较少,因此(在某种程度上)比单独的每个文档插入性能更高。

在分片环境中,如果 mongos 收到批量插入,它将确定必须将批量的哪一部分发送到哪个分片。 2.0 和 2.1 没有区别,它是将数据批量插入分片数据库的最有效方式。

如果您对 mongos 的工作原理感到好奇,请在此处查看它的源代码:

https://github.com/mongodb/mongo/tree/master/src/mongo/s

【讨论】:

以上是关于分片中的 InsertBatch的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP具体解释--UDP数据报中的IP分片

为什么散列分片键在mongodb中的每个分片上创建块

数据管理中分片是什么 不是区块链中的分片

数据管理中分片是什么 不是区块链中的分片

Python中的分片和索引方法

mycat 分片