Wpis z mikrobloga

@pyroxar: Istnieją różne sposoby na napisanie rozproszonej bazy danych, ale nie ma łatwego sposobu, który sprawdzi się w każdej sytuacji. W zależności od tego, jakie potrzeby masz i jakie masz do dyspozycji zasoby, mogą istnieć różne opcje.

Jeśli nie masz serwera i wszystkie komputery są z systemem Linux, jedną opcją byłoby skorzystanie z bazy danych CouchDB. Jest to baza danych oparta na systemie rozproszonym, która pozwala na przechowywanie i replikowanie danych
  • Odpowiedz
@matiJ: Ale ty chcesz NAPISAĆ serwer do rozproszonej bazy danych?

No to najpierw musisz ogarnąć ogólnie, jak pisze się bazy danych. Następnie zrozumieć teorię CAP.

No a tak na szybko to HashRing + HashStorage, jakieś ZeroMQ albo gRPC do wymiany danych S2S no i jeszcze jakiś frontendowe API przydałoby się ogarnąć. Oczywiście BASE, bo po co komu ACID.
  • Odpowiedz
@pyroxar: Zobacz post wyżej, zawołałem nie tą osobę.

Ale jak chcesz tylko stworzyć taką bazę a pewnie jeszcze SQLową to na szybko znalazłem dla postgresqla, coś, co się nazywa PgBouncer, a obecnie PgCat.
Chociaż zazwyczaj to takie bazy są NoSQL i nie są ACID tylko BASE.
  • Odpowiedz
@matiJ: CouchDB bardzo dobry przykład, korzystałem i do pierdół nadaje się idealnie, szczególnie wbudowany model Map+Reduce uczy myśleć o rozwiązaniach optymalnego przetwarzania w takich bazach danych.

Produkcyjnie jednak ma wady, jak problem z konsolidacją i niezbyt stabilnym działaniem przy dużym obciążeniu spowodowały, że ją porzuciłem.

Takich baz obsługujących sharding można wymieniać na pęczki. No i też kwestia co kto potrzebuje od takiej bazy danych, jakie są schematy użycia.
  • Odpowiedz