BGo*_*hil 9 concurrency multithreading thread-safety mongodb document-database
我在Windows上运行MongoDB.我有一个或多个线程删除并重新创建一个集合.
使用mongo.exe与show collections()命令,我看到名称相同的多个集合(超过1000个集的同名!).
当我运行验证时:
> db.MY_COLLECTION.validate()
Run Code Online (Sandbox Code Playgroud)
我明白了:
{ "errmsg" : "ns not found", "ok" : 0, "valid" : false }
Run Code Online (Sandbox Code Playgroud)
该size()命令返回0,并且不find()返回任何内容.
我的问题是:MongoDB线程安全吗?接下来的问题将是"我是否正确地执行此操作(删除和重新创建),还是有更好的方法来刷新集合的整个内容?"
来自mongodb文档:
线程安全
只有少数C#Driver类是线程安全的.其中包括:MongoServer,MongoDatabase,MongoCollection和MongoGridFS.您将使用很多非线程安全的公共类包括MongoCursor和BSON库中的所有类(BsonSymbolTable除外,它是线程安全的).除非特别记录为线程安全,否则类不是线程安全的.
所有类的所有静态属性和方法都是线程安全的.
您可以在此页面上搜索"线程"一词:
小智 5
在 2.2 版中更改。
MongoDB 允许多个客户端使用锁定系统读取和写入单个数据语料库,以确保所有客户端收到一致的数据视图,并防止多个应用程序同时修改完全相同的数据。锁有助于保证对单个文档的所有写入要么全部发生要么根本不发生。
http://docs.mongodb.org/manual/faq/concurrency/
| 归档时间: |
|
| 查看次数: |
11539 次 |
| 最近记录: |