7

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

+0

Czy przeglądałeś jeszcze BigCouch do replikacji? Nie musiałby robić tego ręcznie. – ryan1234

+0

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ę! –

+0

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

Odpowiedz