PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Bagaimana backend penyimpanan memengaruhi Datomic?

Persyaratan Layanan Penyimpanan

Layanan penyimpanan Datomic umumnya harus memenuhi 3 persyaratan:

  1. Terapkan semantik penyimpanan nilai kunci :akses baca/tulis yang efisien menggunakan nilai kunci yang diindeks
  2. Mendukung pembacaan yang konsisten . misalnya membaca tulisan Anda sendiri. Idealnya, bacaan tanpa pertengkaran/bebas kunci.
  3. Mendukung penempatan bersyarat . misalnya penguncian optimis + isolasi snapshot.

Datomic menggunakan layanan penyimpanan untuk menyimpan blok datom yang diurutkan dan dikompresi, mirip dengan cara sistem basis data tradisional menggunakan sistem file dan persyaratan di atas cukup banyak merupakan API antara layanan penyimpanan yang mendasarinya dan Datomic. Jadi pilihan dalam layanan penyimpanan bergantung pada seberapa baik layanan tersebut mendukung ketiga persyaratan tersebut .

Menulis Skalabilitas

Datomic biasanya tidak memberikan banyak tekanan tulis pada layanan penyimpanan yang mendasarinya karena hanya ada satu komponen yang menulisnya, Transactor. Selain itu, Datomic menggunakan pekerjaan pengindeksan latar belakang untuk mengintegrasikan kebaruan ke dalam penyimpanan setelah cukup banyak terakumulasi (secara default ~32MB tetapi dapat dikonfigurasi) yang selanjutnya mengurangi beban tulis konstan. Satu-satunya hal yang segera ditulis oleh Datomic adalah log transaksi.

Baca Skalabilitas

Datomic menggunakan beberapa lapisan caching yaitu memcached dan peer cache sehingga dalam keadaan ideal yaitu ketika working set cocok di memori, sistem juga tidak akan memberikan banyak tekanan baca.

Pemuatan Sistem

Jika sistem Anda tidak memerlukan besar skalabilitas tulis dan data aplikasi Anda cenderung muat di memori, maka pilihan layanan penyimpanan tertentu tidak relevan kecuali, tentu saja, untuk kemampuan operasionalnya (cadangan, alat admin, dll.) yang tidak ada hubungannya dengan Datomic.

Jika, di sisi lain, sistem Anda memang membutuhkan besar menulis skalabilitas atau Anda memiliki banyak rekan, masing-masing bekerja dengan lebih banyak data daripada yang dapat ditampung dalam memori mereka (memaksa banyak segmen data dibawa dari penyimpanan), Anda akan memerlukan sistem penyimpanan yang dapat menskalakan secara horizontal mis. DinamoDB. Seperti yang disebutkan di salah satu komentar, jika Anda membutuhkan skalabilitas penulisan yang berubah-ubah, Datomic bukanlah sistem yang tepat untuk Anda.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ruby on Rails:Bagaimana saya bisa mengedit database.yml untuk postgresql?

  2. Kesalahan penginstalan saat mencoba menginstal aplikasi gis menggunakan geodjango?

  3. SELECT COUNT(*) - kembalikan 0 bersama dengan bidang yang dikelompokkan jika tidak ada baris yang cocok

  4. Ubah jenis kolom dan atur bukan null

  5. Tetapkan id yang sama ke baris dengan kombinasi data yang sama