- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我们需要将一个特定的数据位写入 mongo 副本集,并真正确保它是安全的(这是法律要求)。是否有一个标准的 WriteConcern 封装了大多数节点上的磁盘写入操作?类似于 MAJORITY_FSYNCED。
我想出的最好的方法是以下 - 这有效吗?
WriteConcern replicaSetFsyscToMajority = new WriteConcern.Majority(0, true, false);
查看 Java 驱动程序的 WriteConcern 类中的预定义级别,据我所知,现有级别似乎都不是我所追求的:
FSYNCED 表示仅在主数据库上安全写入磁盘。 (因此主节点崩溃可能会导致写入丢失)
REPLICAS_SAFE 似乎表示写入已被至少 2 个副本确认,并写入内存,而不一定写入磁盘(因此整个 mongo 副本集断电可能会丢失写入)。 MAJORITY 类似 - 但与 ((n/2) + 1) 个副本相同。
补充说明/评论
* 对于更好的给定定义!
<小时/>编辑:到目前为止我们已经尝试过......
我们尝试过使用:
new WriteConcern.Majority(0, true, false)
我可以说它不会抛出任何错误(我们可以读取和写入,并且所有测试都通过),我不知道它是否在很大程度上验证写入,而且我还没有对其进行性能分析。
最佳答案
您是对的,与辅助节点相关的写入问题仅确保确认,而不确保数据已写入磁盘。
我不熟悉 Java 驱动程序,但您应该能够单独设置 Journaling 和 WriteConcern。但请记住,即使 J=1 且 W=Majority 也存在回滚的可能性,如以下 SO 问题所述:Can rollback still occur on a MongoDB replica set with J=1 and W=Majority?
J=1将确保主节点上的数据安全,辅助节点也会以复制的形式提供一定的保护。
要增加额外的信心,请考虑在主硬盘上使用 RAID 或类似技术。
关于java - 如何在 Java 中设置 WriteConcern 以非常安全地写入 MongoDB 副本集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385256/
我正在阅读 WriteConcern在 mongoDB wiki 上,但我不清楚。我有个问题!它是什么以及何时必须使用 WithWriteConcern(WriteConcern.Acknowledg
在插入 mongodb 时,我可以将 writeconcern 设置为仅忽略重复键错误吗?我想完全忽略这些错误,但如果出现其他问题,仍然会发现。我特别想知道我是否失去了与数据库的连接或者 mongod
我正在尝试计算给定用户有多少条未读通知。 也就是说,通过 aggregate,我已经在控制台中完成了输出预期结果的下一个代码: db.getCollection('users').aggregate(
private val DATABASE:String = config.getString("db.dbname") private val SERVER:ServerAddress = {
是否可以在findAndModify操作中指定WriteConcern?如果不是,默认的 WriteConcern 是什么? 顺便说一句,我正在使用 java 驱动程序。 最佳答案 MongoDB J
我已经在 MongoDB 数据库中存储了一个 pdf,我正在按如下方式访问它: dbPDFReports = client['pdfReports'] 客户端是我的 MongoClient 如下: c
我在我的 Go 应用程序中使用 labix mgo 作为 mongodb 驱动程序,我想知道是否有一种方法可以覆盖特定查询的默认 writeConcern。 关于配置的几句话:副本集有三个节点 - 一
谁能说如何用 WriteConcern 替换过时的 SafeMode ?特别是我对 SafeMode.True 很感兴趣? 谢谢。 最佳答案 SafeMode.True 转换为 WriteConcer
我一直在阅读 Write Concern在 MongoDB 中。我知道有几个级别决定了写操作成功的保证级别,您设置的这个级别越高,性能权衡。但是,我在 C# 环境中工作,我试图弄清楚如何在那里使用 W
文档不清楚当 Write Concern j 选项设置为 true 并且 mongod 在没有日志的情况下运行时会发生什么。这是否表明写入操作将在确认已提交到数据库后返回?或者写入操作可以在写入提交到
我有一个巨大的 mongodb 数据库,由于在任何给定时间只有一个线程在集合中写入,并且所有更新都是在已经存在的文档上执行的,我希望 mongodb 不承认任何操作,因为我想提高性能。 我遇到了一个
我正在创建一个 List并使用 insertbatch 方法插入列表。 ( _collection.InsertBatch(entities) ) 我没有为 MyCollectionItem 对象设置
我正在使用 pymongo 写入我的 mongodb。我想要尽可能快的性能,所以我将写入关注设置为 w=0。我尝试了三种方法: 1. client = MongoClient(host=HOST, p
我正在尝试对 db.collection.insert(List, WriteConcern) 执行阻塞调用方法与 MongoDB java 驱动程序。无论我在 WriteConcern 中使用什么:
我不明白如何使用 mongo-go-driver 为 MongoDB 添加记录参数 示例请求 c.client.Database(MONGO_DATABASE).Collection(*packet.
我们需要将一个特定的数据位写入 mongo 副本集,并真正确保它是安全的(这是法律要求)。是否有一个标准的 WriteConcern 封装了大多数节点上的磁盘写入操作?类似于 MAJORITY_FSY
当我在 mongodb 中保存文档时,出现以下错误: WriteConcern detected an error 'insertDocument :: caused by :: 0 assertio
我想将 spring mongodb 中的 WriteConcern 设置为确认。另外,我想知道这是否是默认值?我在 application.properties 中使用 spring.data.mo
我正在使用带有环回的 mongodb,并且在成功连接后我收到警告 Top-level use of w, wtimeout, j, and fsync is deprecated. Use write
使用 MongoDB w node.js,我试图在找到它后删除它.. 但它失败了 我得到了集合 (db.collection) 我找到了项目 (collection.findOne) 我从收藏中删除了
我是一名优秀的程序员,十分优秀!