PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Chương trình phụ trợ lưu trữ ảnh hưởng đến Datomic như thế nào?

Yêu cầu đối với dịch vụ lưu trữ

Các dịch vụ lưu trữ của Datomic thường phải đáp ứng 3 yêu cầu:

  1. Triển khai ngữ nghĩa cửa hàng khóa-giá trị :quyền truy cập đọc / ghi hiệu quả bằng cách sử dụng các giá trị của khóa được lập chỉ mục
  2. Hỗ trợ số lần đọc nhất quán . ví dụ. đọc các bài viết của riêng bạn. Lý tưởng nhất là đọc không có tranh chấp / không bị khóa.
  3. Hỗ trợ đặt có điều kiện . ví dụ. khóa lạc quan + cách ly ảnh chụp nhanh.

Datomic sử dụng các dịch vụ lưu trữ để lưu trữ các khối dữ liệu nén, được sắp xếp, tương tự như cách hệ thống cơ sở dữ liệu truyền thống sử dụng hệ thống tệp và các yêu cầu ở trên là khá nhiều API giữa dịch vụ lưu trữ cơ bản và Datomic. Vì vậy, sự lựa chọn trong các dịch vụ lưu trữ phụ thuộc vào mức độ chúng hỗ trợ ba yêu cầu đó tốt như thế nào .

Viết khả năng mở rộng

Datomic thường không gây nhiều áp lực ghi lên dịch vụ lưu trữ cơ bản vì chỉ có một thành phần ghi vào nó, Giao dịch viên. Ngoài ra, Datomic sử dụng công việc lập chỉ mục nền để tích hợp tính mới vào bộ nhớ sau khi đã tích lũy đủ số lượng nó (theo mặc định là ~ 32MB nhưng có thể được định cấu hình), điều này giúp giảm tải liên tục ghi. Điều duy nhất Datomic ghi ngay lập tức là nhật ký giao dịch.

Đọc khả năng mở rộng

Datomic sử dụng nhiều lớp bộ nhớ đệm, tức là bộ nhớ đệm memcached và bộ đệm ngang hàng, vì vậy trong những trường hợp lý tưởng, tức là khi bộ làm việc phù hợp với bộ nhớ, hệ thống cũng sẽ không đặt nhiều áp lực đọc.

Tải hệ thống

Nếu hệ thống của bạn không yêu cầu khổng lồ khả năng mở rộng ghi và dữ liệu ứng dụng của bạn có xu hướng vừa với bộ nhớ, khi đó việc lựa chọn một dịch vụ lưu trữ cụ thể là không liên quan tất nhiên là ngoại trừ khả năng hoạt động của chúng (sao lưu, công cụ quản trị, v.v.) không liên quan gì đến Datomic.

Mặt khác, nếu hệ thống của bạn yêu cầu rất lớn ghi khả năng mở rộng hoặc bạn có một số lượng lớn các đồng nghiệp, mỗi người trong số họ làm việc với nhiều dữ liệu hơn mức có thể vừa trong bộ nhớ của họ (buộc nhiều phân đoạn dữ liệu phải được đưa từ bộ nhớ), bạn sẽ yêu cầu một hệ thống lưu trữ có thể mở rộng theo chiều ngang, ví dụ:DynamoDB. Như đã đề cập trong một trong các nhận xét, nếu bạn cần khả năng mở rộng viết tùy ý, Datomic dù sao cũng không phải là hệ thống phù hợp với bạn.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách giải quyết Phương pháp org.postgresql.jdbc.PgConnection.createBlob () chưa được triển khai

  2. Trở thành siêu người dùng cơ sở dữ liệu - Engineyard

  3. PostgreSQL:Làm cách nào để đặt search_path ở cấp người dùng?

  4. Đặt SQLAlchemy để sử dụng PostgreSQL SERIAL để tạo danh tính

  5. Django / Python:Cập nhật mối quan hệ với điểm tại cài đặt.AUTH_USER_MODEL