Osadzona baza danych z zapisem do pliku i redundantnoscia

Osadzona baza danych z zapisem do pliku i redundantnoscia
M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Znacie jakąś baze danych embedded dla javy (zapisujaca dane na dysku), z mozliwoscia clustrowania (replikacja tych samych danych na kazdym wezle aplikacji javy).

Przykladowo mamy 4 wezly aplikacji z osadzona baza. Kazdy z nich robi odczyty i zapisy. Kazdy zapis/modyfikacja danych musi byc jak najszybciej odzwierciedlona na pozostalych wezlach.

KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 767
2

Kojarzy mi się to z Hazelcast.

S4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1268
2

A jakieś konkretne dane chcesz trzymać? Co rozumiesz przez embedded?

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2385
4

Cos tu śmierdzi, embedded (czyli działa w przestrzeni adresowej procesu aplikacji?), jednocześnie rozproszona i z multi master replication. I pewnie jak node będzie umierać od replikacji, to aplkacja ma być responsywna?

I jaka baza? Relacyjna czy nie?

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
2
maniek41 napisał(a):

Znacie jakąś baze danych embedded dla javy (zapisujaca dane na dysku), z mozliwoscia clustrowania (replikacja tych samych danych na kazdym wezle aplikacji javy).

Przykladowo mamy 4 wezly aplikacji z osadzona baza. Kazdy z nich robi odczyty i zapisy. Kazdy zapis/modyfikacja danych musi byc jak najszybciej odzwierciedlona na pozostalych wezlach.

Na jednym oddechu rzuciłeś "embedded" i cechy z tym słowem sprzeczne bezpośrednio, lub bardzo źle sie z ideą łączące.
Baza embedded to (wg mnie) nade wszystko skrajnei prosta konfuguracja (lub jej brak). SIłą rzeczy, taki postulat kieruje nas do pracy lokalnej.

Reszta twojej wypowiedzi oznacza ogrom konfiguracji, czy "in-process" hipotetycznie gdyby tak było, czy out-of-proces jak porty na firewalach

"pewnie" jedyne co się ostoi z idei bazy embedded (zgaduję), to że JAR jest zawarty w wiekszym produkcie

yarel napisał(a):

Cos tu śmierdzi, embedded (czyli działa w przestrzeni adresowej procesu aplikacji?), jednocześnie rozproszona i z multi master replication. I pewnie jak node będzie umierać od replikacji, to aplkacja ma być responsywna?

W 200% sie zgadzam

S4t napisał(a):

Co rozumiesz przez embedded?

Obiawiam się, że nie to samo co reszta świata

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Danych bedzie bardzo malo, ale maja byc trwale/odporne na restart. Dodatkowo te same dane maja byc widoczne dla wszystkich wezlow. Typ bazy nie jest wazny.
Poczatkowo aplikacja bedzie dzialac sama taki jest koncept pierwotny ale moze sie pojawic potrzeba w przyszlosci uruchomienia drugiej instancji. Wiem ze zewnetrzna baza byla by najlepsza odseparowana od aplikacji ale na razie potrzebuje czegos wbudowanego.

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2385
0

A gdzie ta aplikacja ma byc uruchamiana? Na serwerze dedykowanym, na desktopie, w cloudzie?

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
1
maniek41 napisał(a):

Dodatkowo te same dane maja byc widoczne dla wszystkich wezlow.

Przeczytałeś na pewno podkład teoretyczny ?
Tego nie da się 100% gwarantować w czasie i przestrzeni

Ukrywanie o co naprawdę chodzi budzi we mnie dziwne przewidywania, łącznie z humorystycznymi

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Tak, wiem o tym ze zawsze jest jakies opoznienie z w replikacji

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Aplikacja uruchamia wewnatrz instancje bazy do ktorej sie laczy

S4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1268
3

Cały ten pomysł wydaje się tak skomplikowany, że już dwa razy bym postawił redisa i się do niego połączył.

KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 767
1

Hej OP, widzę że zatwierdziłeś moją odpowiedź. Tak strzeliłem z pamięci z hz - bo kiedyś w jednym projekcie tego deweloperzy używali, ale zastanów się, czy na pewno chcesz mieć replikację na wszystkie maszyny. Było mnóstwo problemów, zwłaszcza na Kubernetesie - np. żeby wyczyścić bazę, trzeba było położyć cały system i synchronicznie upewnić się, że wszystko się zamknęło, albo jeśli nie ten serwis startował przed innymi, to split brain był gwarantowany i niezłe jaja wychodziły. Trzeba dobrze rozkminić topologię sieci, co łączy się z czym itp. ale dobrze wykorzystane jest podobno fajne :)

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Ok dzieki wezme to pod uwage :) hazelcast wydaje sie dobry do tego. Tylko z tego co widze funkcja zapisu na dysk jest chyba tylko dostępna w wersji platnej?

KE
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 767
0

Tego niestety nie wiem. Używałem tylko w ramie.

ZD
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2310
0

Ilość danych "mała",,. start od jednej instancji.
Jedna baza typu centralnego plus lokalne cache do tego ?

YA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2385
3

@maniek41: jaki konkretnie problem rozwiązujesz przez wybranie bazy embedded? Ciekawi mnie to niezmiernie, zwłaszcza, że wskazałeś, że nie ma dla Ciebie znaczenia, czy baza relacyjna, czy nierelacyjna (a te się dobiera pod rozwiązanie problemu, a nie żeby wygenerować nowy problem). Dlaczego nie może to być instancja dedykowana? Skąd to ograniczenie?

M4
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 50
0

Bedzie postawiona osobna instancja hazelcasta ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.