MongoDB日志:当客户端请求非日志写入并且在Mongod上激活日志记录时,是否使用日志文件
我试着去理解日记到底是如何工作的:对吗 当服务器端没有激活日志记录时(mongod--nojournal):MongoDB日志:当客户端请求非日志写入并且在Mongod上激活日志记录时,是否使用日志文件,mongodb,journaling,Mongodb,Journaling,我试着去理解日记到底是如何工作的:对吗 当服务器端没有激活日志记录时(mongod--nojournal): (a) 如果客户端请求日志写入,它将输出一个错误(从2.6开始,在被忽略之前) (b) 如果客户端请求一个非日志写入,日志将不会被使用,所以我猜更改将在RAM上进行,然后操作系统将刷新对数据文件evry 60s的更改 在Mongod上激活日志记录时(Mongod--journal(默认为64位版本): (a) 如果客户端请求日志写入,mongoDB只有在将数据提交到日志后才会确认主节点中
事实上,我在官方文件中没有找到关于案例2(b)的任何信息,有人能确认当客户端的j为false但mongod上激活了日志记录时是否使用了日志记录吗?您的断言都是正确的。我认为您使用的语言令人困惑,可能会让您有点困惑。但是,客户端不会请求记录日志或未记录日志的写入。如果日志记录为on,则写入无论客户端做什么,都会记录日志。客户端包含的是需要一定级别的数据复制(参数
w
和/或日志记录(参数j
)在服务器响应之前,写入是成功的。您所说的非日志写入是j=0
,这意味着服务器将成功响应,而无需等待写入提交到日志;j=1
意味着服务器在写入提交到日志之前不会响应写入
w
参数控制成功响应所需的数据复制级别。上面的链接中有更多详细信息