MongoDb期刊在写关注

时间:2014-11-14 06:31:06

标签: mongodb journal

我编写了一个测试程序来检查mongodb写入性能是否有日记: 要插入的项目:10000

情形1: 插入(w = 1, j = 1)结果:在 340,620毫秒中插入10000个文档(约每秒 29 个文档)

情况2: 插入(w = 0, j = 1)结果:10000个文档插入 360ms (约 27700 每秒文档数)

(w = 0, j = 1)是什么意思?

我们在case2中有耐用性吗?

1 个答案:

答案 0 :(得分:4)

假设在最后一个版本中记录的工作没有改变,我相信你所看到的是w=0的速度。由于您有w=0http://docs.mongodb.org/manual/core/write-concern/#unacknowledged),因此您只承认该命令已发送到MongoDB实例。

w=0的行为已从早期版本的MongoDB中确认的套接字更改,因此无法缓解网络错误。

因此w=0的值覆盖j=1的值并导致未确认的写入,但是,j=1仍然导致持久性应该是主要的相同:

http://docs.mongodb.org/manual/core/write-concern/#journaled

  

MongoDB还增加了它向日志提交操作的频率。

可是:

  

Unacknowledged类似于忽略的错误;但是,驱动程序将尽可能尝试接收和处理网络错误。

值得注意的是"错误被忽略"。如果你在更新/插入它们时遇到错误,你就不会被告知它,但忽略有错误的文件,你的耐久性应该是相同的。

当然,它不如实际执行w=1那么好,但它没有套接字确认(旧w=0)那么糟糕,可能会丢失大量的写入。

所以你得到w=0的速度,间隔很短,就好像它们都是日记记录一样。