leo*_*eon 1 mongodb mongodb-query php-mongodb
我们有两台 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;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
根据您的代码,您提到了写入关注,并且Majority您的副本集有 2 个成员,因此多数将为 2。此外,您提到的值为wtimeout10000 毫秒(10 秒)。因此,期望所有写入都应在 10 秒内从主数据库复制到辅助数据库,否则系统将返回一条错误消息waiting for replication timed out: 。
回答您的第二个问题,是的,文档将在主数据库中成功更新,该消息仅适用于在给定时间内(以毫秒为单位)在辅助数据库中未复制文档的情况wtimeout。
| 归档时间: |
|
| 查看次数: |
6025 次 |
| 最近记录: |