PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

W jaki sposób zaplecze pamięci masowej wpływa na Datomic?

Wymagania dotyczące usług pamięci masowej

Usługi przechowywania danych firmy Datomic powinny zasadniczo spełniać 3 wymagania:

  1. Zaimplementuj semantykę sklepu typu klucz-wartość :wydajny dostęp do odczytu/zapisu przy użyciu indeksowanych wartości kluczy
  2. Obsługuj spójne odczyty . np. czytaj własne pisma. Idealnie, odczyty bez kontrowersji/bez blokad.
  3. Obsługa warunkowych miejsc . np. optymistyczne blokowanie + izolacja migawki.

Datomic używa usług magazynów do przechowywania bloków posortowanych, skompresowanych danych, podobnie jak tradycyjne systemy baz danych używają systemów plików, a powyższe wymagania są w zasadzie interfejsem API między podstawową usługą magazynu a Datomic. Więc wybór w usługach pamięci masowej zależą od jak dobrze obsługują te trzy wymagania .

Skalowalność zapisu

Datomic zwykle nie wywiera dużego nacisku na zapis w podstawowej usłudze pamięci masowej, ponieważ zapisuje w niej tylko jeden komponent, Transactor. Ponadto Datomic wykorzystuje zadanie indeksowania w tle, aby zintegrować nowości z pamięcią masową po zgromadzeniu wystarczającej ich ilości (domyślnie ~32 MB, ale można to skonfigurować), co dodatkowo zmniejsza stałe obciążenie zapisu. Jedyną rzeczą, którą Datomic natychmiast zapisuje, jest dziennik transakcji.

Skalowalność odczytu

Datomic używa wielu warstw pamięci podręcznej, tj. pamięci podręcznej memcached i pamięci równorzędnej, więc w idealnych okolicznościach, tj. gdy zestaw roboczy mieści się w pamięci, systemy również nie będą wywierały dużego nacisku na odczyt.

Obciążenie systemu

Jeśli Twój system nie wymaga wielkiego skalowalność zapisu, a dane aplikacji zwykle mieszczą się w pamięci, wtedy wybór konkretnej usługi pamięci masowej jest nieistotny z wyjątkiem, oczywiście, ich możliwości operacyjnych (kopie zapasowe, narzędzia administracyjne itp.), które nie mają nic wspólnego z Datomic.

Z drugiej strony, jeśli Twój system wymaga wielkiego skalowalność zapisu lub masz dużą liczbę peerów, z których każdy pracuje z większą ilością danych, niż może zmieścić się w jego pamięci (wymusza to wyniesienie wielu segmentów danych z pamięci), będziesz potrzebować systemu pamięci masowej, który może skalować w poziomie, np. DynamoDB. Jak wspomniano w jednym z komentarzy, jeśli potrzebujesz dowolnej skalowalności zapisu, Datomic i tak nie jest odpowiednim systemem dla Ciebie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak się dowiedzieć, która partycja będzie używana w partycjonowaniu mieszającym Postgresa?

  2. Najlepsze narzędzia Open Source do migracji PostgreSQL

  3. unikalne ograniczenie typu danych Bytea na Postgresql

  4. uwierzytelnianie hasła nie powiodło się dla użytkownika ebroot elastic beanstalk

  5. Problemy z zapytaniem upsert PostgreSQL