Mam wiele serwerów CouchDB Chcę być zsynchronizowany ze sobą i używam tych serwerów do udostępniania dużych plików (np.> 100 MB). Aby zachować synchronizację, każda instancja CouchDB wykonuje ciągłą replikację ciągnącą z każdej innej instancji.Równoległa/nadmiarowa replikacja w CouchDB
Oto przykład: Mam trzy CouchDB serwery A, B, & C, z których wszystkie mają ciągłej replikacji ściąganej od siebie, a więc:
------- <------------- -------
| A | -------------> | B |
------- -------
^| |^
| | | |
| V | |
------- <---------------- |
| C | -------------------
-------
Ktoś przesyła dokument do serwera A z Załącznik 500 MB. B i C zarówno rozpoczęcie replikacji dokument z A i B kończy replikacji przed C robi:
------- doc -------
| A |--------------->| B |
------- -------
|
| doc
V
-------
| C |
-------
Moje pytanie brzmi, będzie C następnie rozpocząć replikację ten sam dokument z B (od C ma również ciągły pull replikacja z B), , podczas gdy nadal przesyła dokument z A?
------- -------
| A | | B |
------- -------
| doc |
doc| |------------------
| |
V V
-------
| C |
-------
Przypuszczam, że to się stanie, ponieważ AFAIK, CouchDB replikacja faktycznie nie przechowywać dokumenty replikowane do celu (wykorzystując _bulk_docs API), aż dokumentów (wraz z załącznikami) były w pełni pobrane z źródło [1]. Obawiam się, że tak się stanie, ponieważ byłoby to zbyteczne i duże marnowanie przepustowości.
[1] https://github.com/couchbaselabs/TouchDB-iOS/wiki/Replication-Algorithm
Czy przeglądałeś jeszcze BigCouch do replikacji? Nie musiałby robić tego ręcznie. – ryan1234
Spojrzałem na BigCouch, jednak tworzę mobilne sieci ad-hoc z urządzeniami, które przychodzą i odchodzą. AFAIK, dla BigCouch, musisz ustawić wszystko statycznie dla klastrowania i replikacji. Ale dzięki za sugestię! –
Pracuję nad projektem z BigCouch i urządzeniami mobilnymi, które mogą łączyć się z klastrem i działa świetnie. Chodzi o to, że umieszczasz Couchbase Mobile (lub TouchDB) na urządzeniu mobilnym, a następnie masz klaster maszyn BigCouch za równoważnikiem obciążenia. Urządzenia łączą się i odwołują do bazy danych, a dane są powielane w dół. Ale może twój przypadek użycia jest trochę inny. – ryan1234