0

同事们,我正在使用 v2.2 的 Mongo 和 java Mongo 驱动程序 2.9.0,

一些业务逻辑创建大约 25 个线程,每个线程在 GridFS 上创建 150 个文件。每 1000 个文件中大约有 20 个文件返回不正确getId(),因此结果为空。我认为(如果我错了,请纠正我)从吞吐量的角度来看这是正确的行为。但我真的需要这个id。对于常规 DBCollection 我会设置WriteConcern.FSYNC_SAFE,但我看不到setWriteConcernGridFS 是否存在方法。您对如何强制刷新文件有一些想法吗?

4

1 回答 1

0

查看 GridFS.java 中的驱动程序代码:

_filesCollection = _db.getCollection( _bucketName + ".files" );

在创建 GridFS 后,我可以解析具有相同名称的集合,因此我的设置写入关注的代码如下所示:

_fs = new GridFS(_db, "MyBucketName");
DBCollection col = _db.getCollection( "MyBucketName" + ".files" );
col.setWriteConcern(WriteConcern.SAFE);

开始测试后,我可以看到所有文件都成功返回了正确的 id。

于 2012-10-12T16:00:04.993 回答