Rozproszona baza danych - jak?

0

Witam,

Zastanawiam się nad sposobem zorganizowania bazy danych i dostępu do niej.

Mam 4 równorzędne, oddalone od siebie stanowiska pomiarowe generujące duże ilości danych - każde stanowisko generuje dane tego samego typu. (później może będzie więcej stanowisk - x2, x4, x8? ale nie jest to priorytet)

Dane są złożone - reprezentowane za pomocą relacji (nie zbyt skomplikowane)

Stanowiska dedykowane są do wspólnej pracy ale zakłada się, że będą też pracować niezależnie od siebie, oraz że przez istotną cześć czasu, któreś ze stanowisk będzie niedostępne (będzie wyłączone lub działało bez połączenia)

w skrócie:

na czterech komputerach chciałbym postawić jedną(rozproszona?) bazę danych,
do której mógłbym się podłączyć z dowolnego z tych czterech komputerów (+ z innych komputerów w sieci lokalnej),
moc zapisywać i mieć dostęp do wszystkich danych
(oczywiste że jak stanowisko nie ma połączenia z pozostałymi to dane przez nie wygenerowane nie są na nich dostępne, ale po uzyskaniu połączenia chciałbym, żeby wykonała się jakaś synchronizacja)

Robił ktoś coś podobnego?
Jaka architekturę stosować?
Czego szukać w sieci?
Może są do tego jakieś gotowe rozwiązania? (mogą być płatne)

  • chociaż najchętniej PostgreSQL
0

Rozumiem że szukałeś ale nie znalazłeś?
http://wiki.postgresql.org/wiki/PgCluster
...

0

Klaster dobra sprawa jak pisze @Shalom, ale pytanie trochę inne czy nie prościej jest postawić jedną bazę na jakimś serwerze i wykorzystać do zapisu dodatkowy znacznik (id stanowiska) przy jednoczesnym zapewnieniu dużej przepustowości sieci i dysków?

1

Apache Cassandra jest idealna do takich rzeczy. Stawiasz po jednej instancji na każdym kompie, zapisujesz i odczytujesz dowolne dane z dowolnego kompa. Do tego masz bardzo dobrą odporność na awarię. Jeśli to stanowiska pomiarowe i głównie zapisują dane (time series data), to chyba nie ma bardziej wydajne bazy - Cassandra wymiata w zapisach. No i postawisz to w 2 minuty: http://www.screenr.com/5G6

na czterech komputerach chciałbym postawić jedną(rozproszona?) bazę danych,

tak

do której mógłbym się podłączyć z dowolnego z tych czterech komputerów (+ z innych komputerów w sieci lokalnej),

tak

moc zapisywać i mieć dostęp do wszystkich danych

tak

(oczywiste że jak stanowisko nie ma połączenia z pozostałymi to dane przez nie wygenerowane nie są na nich dostępne, ale po uzyskaniu połączenia chciałbym, żeby wykonała się jakaś synchronizacja)

tak

A nawet więcej - można zrobić nawet tak, że jak Ci się w jednym z tych kompów dysk rozleci, to nie stracisz danych, bo będą replikowane na inne. A jak zabraknie miejsca / wydajności, to dostawiasz po prostu więcej kompów / dysków i system się skaluje liniowo.

Co do pgCluster i innych - mimo że lubię PostgreSQL, to IMHO zupełnie nie do takich zastosowań. Jako scentralizowana baza danych Postgres wymiata, ale jako rozproszona trochę przypomina psa z doczepionymi czterema deskami udającego ośmiornicę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1