CouchDB是否存在模拟后端,即相同的REST接口和语义,但纯粹是内存中的?我们有一个测试套件,每次在原始数据库上运行每个测试(可重现),但是对真实数据库的运行可能会更快。CouchDB内存中实现
8
A
回答
6
您的意思是针对模拟数据库运行吗?
我不认为开箱即可。两个想法:
- CouchDB在内存文件系统上。设置ramdisk或tmpfs安装,并将CouchDB
database_dir
和view_index_dir
配置为指向那里。 - PouchDB正在将CouchDB移植到浏览器的IndexedDB标准中。你没有说你正在使用哪种语言和环境,但是如果你可以运行Node.js,这可能值得研究。 PouchDB具有良好的发展势头,我认为它很快就会在Node.js中运行(可能通过jsdom或其他库)。请注意,这并不能为您提供完整的解决方案;但是您已将问题扩展到“是否有内存IndexedDB Node.js的实现“,其答案是”yes“或”soon“,因为它的采用轨迹。
0
我有同样的问题...对于测试,我只是不想设置一个我只是想有一些内存的东西,尽可能容易。
我做了什么: *我创建一个内存CouchDB连接器=>它只是一个非常简单的实现“org.ektorp.CouchDbConnector “ *春天我把CouchDbCo当我使用它为我的开发测试我连接我的内存CouchDB连接器,如果我想连接到一个真正的CouchDb我使用通常的连接器=> org.ektorp.impl.StdCouchDbConnector
唯一的问题是,该“org.ektorp.CouchDbConnector”有超过50个方法,必须实施。对于我的问题,仅仅实现这些方法中的几个就足够了。取决于你的测试案例。
2
2
基于前面提到的PouchDB项目(CouchDB的JavaScript实现),使用pouchdb-server
取得了很大的成功。它可以针对各种后端运行,包括内存后端。这意味着您可以运行
pouchdb-server --in-memory
以获取内存中与CouchDB兼容的服务器。还有其他几个命令行选项可供探索。
我认为它能够运行整个CouchDB测试套件,所以我猜想你不太可能遇到太多的实现差异。
-1
相关问题
- 1. 在内存池中实现内存池
- 2. 实现内存调试器
- 3. 如何实现内存堆
- 4. 图形内存实现
- 5. 实现内存中的B树插入
- 6. 如何在Golang中实现内存池
- 7. 如何在Javascript中实现内存块?
- 8. 如何在couchdb/NoSQL数据存储上实现IMAP服务器?
- 9. Java内容存储库实现:单线程,内存中,只读?
- 10. 如何实现内存缓存?
- 11. CouchDB内存泄漏 - 性能问题
- 12. CouchDB与MongoDB(内存利用率)
- 13. RavenDb vs CouchDb在内存管理方法
- 14. 共享内存中内部进程的屏障实现
- 15. 东京内阁是否支持内存中的B +树实现?
- 16. 空drawRect实现导致内存警告
- 17. Rot13实现后的低内存警告
- 18. 内存管理,同时实现用C
- 19. 实现内存情况下,NHibernate的
- 20. C或C++堆内存管理实现
- 21. 如何实现内存压缩?
- 22. 使用共享内存实现管道
- 23. 内存有效的SHA1实现
- 24. 匿名实现导致内存泄漏
- 25. C++内存映射文件实现
- 26. 使用内存映射文件实现虚拟内存
- 27. 如何在HTML5中实现应用程序内存缓存?
- 28. 如何Spark实现交互式内存中缓存?
- 29. 如何在Android中实现内存映像缓存?
- 30. 在传统的ASP内存泄漏中实现对象缓存
我避免使用“模拟”这个词,因为我真正想要的是针对真正的数据库运行,只需要更快的后端(不一定是持久性的)。嘲笑从来不是100%兼容的,准确的嘲弄是昂贵的维护。 –
对。你需要一个“模拟”,这是真实的东西,这是真的,事实上,真实的东西。这是很好的测试。不幸的是,我没有比我列出的两个半答案更好的想法(这些答案没有加在一起)。 – JasonSmith