1

我正在构建一个将执行 2 个阶段的应用程序。

  1. 执行阶段 - 第一阶段非常 INSERT密集(硬件可以在一秒钟内执行尽可能多的插入)。这本质上是执行工作的日志记录。
  2. 验证阶段 - 下一阶段将查询阶段 1 生成的日志,并与外部源进行比较, UPDATE并对记录执行一次以存储一些统计信息。此过程是阶段 1 的第二优先级。

我正在尝试查看并行执行它们是否可行,并将执行阶段的写锁定保持在最低限度。我认为做到这一点的一种方法是将我的验证阶段限制为仅查询不在执行阶段当前插入的块中的旧记录。MongoDB 中是否有某些东西限制find()只从在可配置的时间内未访问的块中查询?

4

2 回答 2

2

您可能想要设置副本集。插入主服务器并从辅助服务器获取。这样,您的插入根本不会被阻止。

于 2011-06-21T16:50:42.087 回答
1

您可以将提到的副本集与 slaveOk 一起使用,并在 master 中更新。

您可以使用时间戳字段或 ObjectId(已包含时间戳)进行过滤。

于 2011-06-21T21:56:54.603 回答