¿Hay un backend simulado para CouchDB, es decir, la misma interfaz y semántica REST pero puramente en la memoria? Tenemos una suite de pruebas que ejecuta cada prueba en una base de datos prístina en todo momento (para ser reproducible), pero correr contra una base de datos real podría ser más rápido.Implementación en memoria de CouchDB
Respuesta
¿Quiere decir correr contra una base de datos simulacro?
No creo que haya algo listo para usar. Dos ideas:
- CouchDB en un sistema de archivos de memoria. Configure un ramdisk, o un montaje tmpfs, y configure CouchDB
database_dir
yview_index_dir
para que apunten allí. - PouchDB está trasladando CouchDB al navegador IndexedDB estándar. No dijiste qué idioma y entorno estás usando, pero si puedes ejecutar Node.js, vale la pena investigarlo. PouchDB tiene un buen impulso y creo que se ejecutará en Node.js pronto (quizás a través de jsdom o de otra biblioteca. Tenga en cuenta que esto no le ofrece la solución completa, pero ha expandido su pregunta a "¿hay memoria indexada en la memoria interna? implementaciones para Node.js "para la cual la respuesta es" sí "o" pronto ", dada su trayectoria de adopción.
Tengo el mismo problema ... para las pruebas simplemente no quiero configurar un couchdb ... solo quiero tener algo de memoria, tan fácil como sea posible.
Qué hice: * Creé una memoria CouchDB Connector => Es solo una implementación muy simple de "org.ektorp.CouchDbConnector " * En primavera, cableo el CouchDbCo nnection-Implementación que necesito => cuando lo uso para mi dev-tests conecto mi memoria CouchDB Connector, si quiero conectarme a un CouchDb real, uso el conector usual => org.ektorp.impl.StdCouchDbConnector
El único problema es que "org.ektorp.CouchDbConnector" tiene más de 50 métodos, que deben implementarse. Para mis problemas fue suficiente implementar solo algunos de estos métodos. Depende de tus testcases.
Encontrado esto: https://github.com/RipcordSoftware/AvanceDB - es compatible con diferentes plataformas y parece ser un esfuerzo serio.
¡esto es realmente útil! esperemos que tenga más impulso. –
Ya es tarde para la fiesta, pero he tenido un gran éxito usando pouchdb-server
, basado en el ya mencionado proyecto PouchDB (una implementación de JavaScript de CouchDB). Se puede ejecutar contra una variedad de back-ends, incluyendo un back-end en memoria. Eso significa que puede ejecutar
pouchdb-server --in-memory
para obtener un servidor compatible con CouchDB en memoria. También hay varias otras opciones de línea de comandos para explorar.
Creo que es capaz de ejecutar todo el conjunto de pruebas CouchDB, así que supongo que es bastante poco probable que se encuentre con demasiadas diferencias de implementación.
- 1. CouchDB vs MongoDB (uso de memoria)
- 2. Paginación en CouchDB?
- 3. Implementación del modelo de memoria de Java?
- 4. UUID en CouchDB
- 5. Implementación de la compresión en memoria para objetos en Java
- 6. Implementación IList de archivo mapeado en memoria, para almacenar conjuntos de datos grandes "en la memoria"?
- 7. Desventajas de CouchDB
- 8. objetos relacionados en CouchDB
- 9. Couchdb en Android
- 10. Couchdb en Nodejs
- 11. CouchDB en producción
- 12. CouchDB en Windows?
- 13. Como-condición en CouchDB
- 14. Identificación de duplicados en CouchDB
- 15. Implementación de barrera de memoria para un recolector de basura
- 16. hashmap de memoria baja recomendado para la implementación de Java
- 17. La implementación de Java SSL de Sun está perdiendo memoria?
- 18. Implementación de agrupación de memoria sin hilos no bloqueante
- 19. Implementación segura de subprocesos de la memoria intermedia circular
- 20. Forzar actualización de la memoria caché después de la implementación
- 21. CouchDB autorización
- 22. Recuperación de documento CouchDB múltiple con couchdb-python
- 23. Función de consulta CouchDB
- 24. Autenticación de CouchDB
- 25. controlador de autenticación personalizado couchdb
- 26. Replicación filtrada de CouchDB
- 27. ¿Usando jquery.couch.js de CouchDB?
- 28. Eliminar varios documentos en CouchDB
- 29. Comodines en vistas con CouchDB?
- 30. Consultas dinámicas complejas en CouchDB
Evité usar la palabra "simulacro", porque lo que realmente quiero es ejecutar contra una base de datos real, solo con un motor de fondo más rápido (no necesariamente persistente). Los simulacros nunca son 100% compatibles, y los simulacros precisos son costosos de mantener. –
Derecha.Necesitas un "simulacro" que sea tan fiel a lo real que es, de hecho, lo real. Esa es una buena prueba. Lamentablemente, no tengo mejores ideas que las dos medias respuestas que enumeré (que no suman un total). – JasonSmith