PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Как бекендът за съхранение влияе на Datomic?

Изисквания към услугите за съхранение

Услугите за съхранение на Datomic обикновено трябва да отговарят на 3 изисквания:

  1. Прилагане на семантика на магазина ключ-стойност :ефективен достъп за четене/запис, използвайки стойности на индексирани ключове
  2. Поддръжка на последователни четения . напр. четете вашите собствени писания. В идеалния случай четене без конкуренция/без заключване.
  3. Поддръжка на условни путове . напр. оптимистично заключване + изолиране на моментна снимка.

Datomic използва услуги за съхранение, за да съхранява блокове от сортирани, компресирани данни, подобно на начина, по който традиционните системи за бази данни използват файлови системи и изискванията по-горе са до голяма степен API между основната услуга за съхранение и Datomic. Така чеизборът в услугите за съхранение зависи от колко добре поддържат тези три изисквания .

Мащабируемост на писане

Datomic обикновено не оказва голям натиск върху основната услуга за съхранение, тъй като има само един компонент, който пише към нея, Transactor. Освен това Datomic използва задание за фоново индексиране, за да интегрира новостите в хранилището, след като се натрупа достатъчно от тях (по подразбиране ~32 MB, но може да се конфигурира), което допълнително намалява постоянното натоварване при запис. Единственото нещо, което Datomic записва веднага, е регистърът на транзакциите.

Прочетете мащабируемостта

Datomic използва множество слоеве на кеширане, т.е. memcached и peer кеш, така че при идеални обстоятелства, т.е. когато работният набор се побира в паметта, системите също няма да оказват голям натиск при четене.

Зареждане на системата

Ако вашата система не изисква огромни скалируемост на запис и данните на вашето приложение са склонни да се поберат в паметта, тогава изборът на конкретна услуга за съхранение е без значение с изключение, разбира се, на техните оперативни възможности (резервни копия, административни инструменти и т.н.), които нямат нищо общо с Datomic.

Ако, от друга страна, вашата система изисква огромни мащабируемост на писане или имате голям брой партньори, всеки от които работи с повече данни, отколкото може да се побере в паметта им (принуждавайки много сегменти от данни да бъдат пренесени от хранилището), ще ви е необходима система за съхранение, която може да мащабира хоризонтално, напр. DynamoDB. Както бе споменато в един от коментарите, ако имате нужда от скалируемост на произволен запис, Datomic така или иначе не е правилната система за вас.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Нулевата стойност на Spring Data JPA в колона xxx нарушава ограничението за не-нула на серийна колона с postgresql

  2. Свържете postgreSQL+postGIS докер контейнер от моята локална мрежа

  3. Как да промените сортирането на колони postgresql

  4. PostgreSQL Получаване на произволна дата/час между две дата/час

  5. Защо получавам невалиден синтаксис на въвеждане за тип integer в postgresql при импортиране на CSV?