ver reproduccion repeticiones quitar movil modo fortnite como apple aleatorio aleatoria ios nosql couchdb cloudant touchdb

ios - reproduccion - El costo de las replicaciones continuas frente a las repeticiones de un solo uso(utilizando TouchDB y Cloudant)



quitar reproduccion aleatoria en apple music (1)

Tenemos una aplicación que usa Cloudant como un servidor remoto. Sin embargo, Cloudant no es completamente compatible con las repeticiones continuas de TouchDB de la experiencia previa. Por lo tanto, nuestra alternativa por el momento es activar manualmente las réplicas de una sola vez a una frecuencia fija. Sin embargo, nos gustaría saber si ese enfoque nos va a costar más dinero que las repeticiones continuas, ya que las replicaciones continuas usan longpoll y no necesitan consultar el servidor con frecuencia. En otras palabras, ¿las réplicas de extracción one-shot con Cloudant como el objetivo nos cuestan una solicitud GET?

Gracias, Paul


Creo que el problema al que se refiere es [1]. La replicación de Cloudant es 100% compatible con CouchDB. En este caso, los registros de TouchDB indican que la pila de red de iOS pasó el JSON incompleto a TouchDB. No está claro a quién culpar en este caso por la falla de replicación.

[1] https://github.com/couchbaselabs/TouchDB-iOS/issues/241

Para la pregunta de costo, una replicación de extracción de una sola vez dará como resultado un GET a la fuente _changes cada vez que sucede, más las otras solicitudes requeridas para replicar. Esta solicitud _changes se contará como una solicitud HTTP ligera en su cuenta de Cloudant.

Sin embargo, si esto funciona como más o menos solicitudes en general depende de la cantidad de cambios que bajan desde el servidor remoto .

También es importante recordar que el número de llamadas _changes es muy pequeño en relación con el número de otras llamadas involucradas (por ejemplo, obtener el contenido de los cambios por sí mismos y particularmente si hay muchos archivos adjuntos).

Si bien esta pregunta es específica de TouchDB, y menciono comportamientos específicos de esa base de código, esta respuesta trata de las solicitudes involucradas en la replicación entre dos sistemas que hablan el protocolo de replicación de CouchDB [2].

[2] http://www.dataprotocols.org/en/latest/couchdb_replication.html

Tomemos un ejemplo inventado: 1 actualización por ventana de 10 segundos a la base de datos de origen para la replicación, donde una base de datos TouchDB es el objetivo. Tomemos una encuesta de 5 minutos frente a una replicación continua. Para simplificar el conteo de llamadas, eliminemos los archivos adjuntos de la imagen. También asumiremos que el dispositivo tiene una conexión de red constante.

Para el caso continuo, cada 10s TouchDB recibirá una actualización en el feed _changes . Esto hace que se longpoll conexión de la longpoll . TouchDB luego ejecuta los cambios, solicitando las actualizaciones de la base de datos de origen; una o más solicitudes GET en el servidor remoto. Mientras esto sucede, TouchDB debe abrir otra solicitud de _changes para _changes . Entonces, en un período de cinco minutos, terminaría con quizás 30 llamadas a cambios, más todas las llamadas para obtener documentos y registrar puntos de control.

Compare esto con una repetición de un disparo cada cinco minutos. Recibirás una notificación de las 30 actualizaciones en una llamada de feed _changes. TouchDB implementa una optimización [3] mediante la cual llamará _all_docs para obtener documentos actualizados para 1- revoluciones, por lo que podría terminar con una sola llamada para obtener los 30 documentos (no es posible en el caso continuo ya que ha recibido un cambio único) ) Luego tienes los documentos del punto de control para grabar. En el mejor de los casos, menos de 5 llamadas HTTP, a lo sumo aproximadamente un tercio del caso continuo, ya que ha evitado solicitudes adicionales de _changes .

[3] https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm#performance

Se reduce a la frecuencia de las actualizaciones que espera a la base de datos de origen. La replicación de un solo disparo es probable que proporcione una curva de precios más suave ya que tiene un mejor control del número de solicitudes que realiza.

Otra pregunta es con qué frecuencia se desconectarán las conexiones debido a las desconexiones de red que ocurren regularmente con los dispositivos móviles. Las repeticiones continuas de TouchDB se activarán una vez que el usuario se conecte (si se agrega a través de la base de datos _replicator). Esta es una fuente adicional de costos impredecibles.

Sin embargo, los beneficios de una visibilidad más inmediata de los cambios ciertamente pueden valer la incertidumbre.