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