我们有两台用于MongoDB服务器的服务器,一台是主服务器,另一台被配置为副本服务器。
我们使用PHP批量编写MongoDB更新列表。从服务器日志中,我们在服务器日志中做了一些“等待复制超时”的例外情况。
大量编写PHP代码:
try {
$manager = new MongoDB\Driver\Manager("mongodb://" . DB_HOST);
$writeConcern = new MongoDB\Driver\WriteConcern(MongoDB\Driver\WriteConcern::MAJORITY, 10000);
$result = $manager->executeBulkWrite($DBName . '.' . $collection, $bulk, $writeConcern);
return $result;
} catch (Exception $ee) {
AppendToLogFile(ERROR_Internal_Error, 'Script:' . __FILE__ . ', LINE:' . __LINE__ . ',$ee:' . $ee->getMessage());
continue;
}
谢谢!
答案 0 :(得分:1)
根据您的代码,您提到的写关注点为Majority
,而您的写关注点是2个成员副本集,因此多数将为2。此外,您还提到了wtimeout
值为10000ms( 10秒)。因此,期望所有的写操作都应在10秒内从主磁盘复制到辅助磁盘,否则,系统将返回一条错误消息,内容为waiting for replication timed out
。
回答第二个问题,是的,文档将在主数据库中成功更新,该消息仅表示在给定的wtimeout
时间(以毫秒为单位)中未在辅助数据库中复制文档。