Por lo que yo entiendo, los índices de CouchDB se actualizan cuando se consulta una vista. Suponiendo que hay más lecturas que escrituras, ¿no es malo para escalar? ¿Cómo puedo configurar CouchDB para actualizar los índices en las escrituras, o mejor aún, en un cronograma?Cómo programar actualizaciones de índice en CouchDB
Respuesta
CouchDB regenera vistas en la actualización, pero solo en lo que ha cambiado desde el último acceso de lectura a la vista. Suponiendo que su volumen de lectura pesa mucho más que su volumen de escritura, esto no debería ser un problema.
Cuando se cambian grandes cantidades de documentos a la vez, esto podría dar lugar a que las primeras solicitudes de lectura tarden un tiempo notable. Para aliviar esto, se han sugerido algunas posibilidades diferentes. La mayoría depende de registrarse con las notificaciones de actualización de CouchDB y de activar las lecturas automáticamente.
Un script de ejemplo para hacer exactamente eso está disponible en el wiki de CouchDB en [1].
[1] http://wiki.apache.org/couchdb/RegeneratingViewsOnUpdate
Usted no puede y también, ¿por qué quieres eso?
Piénsalo así:
- Al importar datos en MySQL se puede dar vuelta de Indizes porque es más caro para actualizar el índice para cada fila se inserta, lo que es para actualizar el índice 100 escribe (o cuantas filas importe) en una sola ejecución.
- Es por esto que CouchDB actualiza el índice en lectura porque es menos costoso integrar esos 100 cambios al mismo tiempo, luego cada cambio cuando está escrito.
¡Esta es una de las ventajas de CouchDB! :) No estoy diciendo que esta sea una característica exclusiva de CouchDB, pero es inteligente hacerlo en modo lectura.
Una cosa que podría hacer es leer con update = false, que es una lectura sucia y es posible que no devuelva lo que esperaba. Si siempre hace esto, puede programar una lectura "regular" a través de un cronjob y actualizar su índice con eso. Simplemente no creo que tenga sentido.
'rancio = verdadero' y' obsoleto = update_after' son los parámetros actuales para lecturas sucias. Este último también actualiza el índice de vista después de regresar. – OrangeDog
a) "Scaling" es un término tan sobrecargado. ¿A qué "tipo" de escalamiento te refieres? (De cualquier manera, no puedo ver cómo te afecta negativamente).
b) Actualización de escrituras: simplemente consulte su vista después de escribir. Tenga en cuenta que agregar un montón de datos al índice es más amigable con los recursos (eso no es específico de CouchDB). Por lo tanto, es posible que desee activar su vista cada N escribe.
c) Programado: configure un cronjob que consulte su vista cada M minutos.
d) Espere a que evolucione CouchDB para proporcionarle la infraestructura que le permite configurarlo con un parámetro de configuración.
e) (MEJOR OPCIÓN). ¡Ensuciate las manos y ayúdanos a pulir CouchDB! Cualquier contribución es muy apreciada.
- 1. (actualizaciones in situ) CouchDB documento de actualización Manipuladores
- 2. Índice de referencia x CouchDB bases de datos relacionales
- 3. ¿Cómo programar hex2bin en Javascript?
- 4. Desventajas de CouchDB
- 5. Python twisted: ¿cómo programar?
- 6. Función de consulta CouchDB
- 7. Cómo manejar las actualizaciones muy frecuentes a un índice de Lucene
- 8. cómo seguir actualizaciones de metadatos en Python
- 9. marcas de tiempo automáticas CouchDb
- 10. Cómo proteger CouchDB
- 11. Couchdb en Android
- 12. ¿Cómo programar un procedimiento almacenado?
- 13. Como-condición en CouchDB
- 14. Cómo programar una tarea en segundo plano
- 15. ¿Cómo programar una tarea periódica en Java?
- 16. ¿Cómo puedo programar una GUI en MATLAB?
- 17. ¿Cómo programar una consulta MySQL?
- 18. Programar tarea en android
- 19. Cómo programar programma maxLength en Android TextView?
- 20. objetos relacionados en CouchDB
- 21. Cómo programar una tarea Maven
- 22. Paginación en CouchDB?
- 23. Automatizando wix pequeñas actualizaciones y actualizaciones menores
- 24. Identificación de duplicados en CouchDB
- 25. ¿Cómo funcionan las actualizaciones en tiempo real?
- 26. Despliegue mínimo de couchdb en Windows
- 27. actualizaciones instantáneas de maven
- 28. Múltiples actualizaciones en MySQL
- 29. Recuperación de documento CouchDB múltiple con couchdb-python
- 30. Cómo consolar inicie sesión en couchdb
¿Hay una manera de difundir el cálculo del índice en varios equipos o se realiza de forma automática cuando una replicación se creó? –
@ThomasFankhauser: sharding?vea BigCouch – OrangeDog
He creado una pequeña utilidad para ayudar con la tarea de actualizar automáticamente todas las vistas: [couchdb-utils] (https://github.com/awilliams/couchdb-utils) – acw