Synchronizacja rozproszonych baz danych w niestabilnej sieci

Stoję przed następującym wyzwaniem:

Mam kilka baz danych w różnych lokalizacjach geograficznych, gdzie sieć może zawieść dużo (używam sieci komórkowej). Muszę synchronizować wszystkie bazy danych, ale nie ma potrzeby być w czasie rzeczywistym. Używam Javy, ale mam swobodę wyboru dowolnej darmowej bazy danych.

Wszelkie sugestie, jak Mogę to osiągnąć.

Dzięki.
Author: Jonas, 2009-09-24

4 answers

Nie jestem świadomy żadnych baz danych, które dadzą ci tę funkcjonalność po wyjęciu z pudełka; jest tu dużo złożoności ze względu na potrzebę ewentualnej spójności i rozwiązywania konfliktów (np. co się stanie, jeśli sieć zostanie podzielona na 2 połówki, a Ty zaktualizujesz coś do wartości 123, podczas gdy ja zaktualizuję to na drugiej połowie do 321, a następnie sieci ponownie się połączą?)

Być może sam będziesz musiał toczyć.

Aby uzyskać kilka pomysłów, jak to zrobić, sprawdź projekt PNUTS Yahoo system: http://research.yahoo.com/node/2304 i Dynamo Amazona: http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html

 9
Author: SquareCog,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 17:45:15

Jest to problem z dość ugruntowanym korpusem badań (których ludzie najwyraźniej nie są świadomi). Sugeruję, aby nie wynaleźć na nowo słabe, wadliwe koło, jeśli nie jest to absolutnie konieczne (takie jak na przykład tak nietypowe wymagania, aby umożliwić trywialne rozwiązanie).

Niektóre słowa kluczowe: replikacja, mobile DBMSs, distributed disconnected DBMSs .

Również te prace badawcze są istotne (jako przykład tych badań pole): {]}

  1. rozproszone rozłączone bazy danych ,

... i tak dalej.

 19
Author: MaD70,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-10-20 17:07:52

Nie znam twoich wymagań ani twoich aplikacji, ale to nie jest pytanie typu szybkiej odpowiedzi. Jestem bardzo ciekawa, co inni mają do powiedzenia. Mam jednak sugestię, która może, ale nie musi, działać dla Ciebie, w zależności od twoich wymagań i sytuacji. w szczególności nie pomoże to, jeśli użytkownicy będą musieli korzystać z aplikacji, nawet gdy sieć jest niedostępna (dostęp offline).

Synchronizacja kilku małych baz danych jest dość skomplikowanym zadaniem do wykonania poprawnie. Czy jest jakakolwiek możliwość posiadania tylko jednej scentralizowanej bazy danych i albo posiadania aplikacji klienckich bezpośrednio z nią połączonych lub (moje preferowane rozwiązanie) napisania niektórych usług internetowych do obsługi dostępu/aktualizacji danych, a nie posiadania kilku baz danych klientów?

Zdaję sobie sprawę, że ogranicza to dostęp offline, ale istnieją różne strategie buforowania, których możesz użyć. (Co oczywiście prowadzi do pierwotnego pytania.)

 0
Author: David,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-24 17:38:33