将WriteConcern分配给mongo文件系统

时间:2012-10-12 14:56:00

标签: java mongodb gridfs

同事 我正在使用Mongo of v2.2和java Mongo driver 2.9.0,

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

1 个答案:

答案 0 :(得分: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。