Ho più server CouchDB che desidero mantenere sincronizzati tra loro e utilizzo questi server per condividere file di grandi dimensioni (ad esempio> 100 MB). Per mantenerli sincronizzati, ogni istanza CouchDB esegue una replica di pull continuo da ogni altra istanza.Replicazione parallela/ridondante nel CouchDB
Ecco un esempio: io ho tre server CouchDB A, B, & C, che hanno tutti repliche estraibili continui gli uni dagli altri, come così:
------- <------------- -------
| A | -------------> | B |
------- -------
^| |^
| | | |
| V | |
------- <---------------- |
| C | -------------------
-------
Qualcuno carica un documento al server A con un Allegato 500 MB. B e C sia iniziare replicare il documento da A e B termina la replica prima di C fa:
------- doc -------
| A |--------------->| B |
------- -------
|
| doc
V
-------
| C |
-------
La mia domanda è, sarà C quindi avviare replicare lo stesso documento da B (dal C ha anche una continua estrarre la replica da B), mentre sta ancora trasferendo il documento da A?
------- -------
| A | | B |
------- -------
| doc |
doc| |------------------
| |
V V
-------
| C |
-------
direi che sarebbe successo, dal momento che per quanto ne so, la replica CouchDB in realtà non memorizzare i documenti replicati al target (utilizzando i _bulk_docs API) fino a quando i documenti (compresi gli allegati) sono stati completamente prelevato dalla fonte [1]. Sono preoccupato che questo accada poiché sarebbe ridondante e un grande spreco di larghezza di banda.
[1] https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm
Hai già guardato BigCouch per la replica? Non dovrei farlo manualmente. – ryan1234
Ho guardato BigCouch, tuttavia sto creando reti mobili ad-hoc con dispositivi che vanno e vengono. AFAIK, per BigCouch, devi impostare tutto staticamente per il clustering e la replica. Ma grazie per il suggerimento! –
Sto lavorando a un progetto con BigCouch e dispositivi mobili in grado di connettersi a un cluster e funziona benissimo. L'idea è di mettere Couchbase Mobile (o TouchDB) sul dispositivo mobile e di avere un cluster di macchine BigCouch dietro un sistema di bilanciamento del carico. I dispositivi si connettono e fanno riferimento a un database e i dati vengono replicati verso il basso. Ma forse il tuo caso d'uso è un po 'diverso. – ryan1234