Canonical thông báo phiên bản 1.0 của Dqlite, một Thư viện C dành cho SQL

Canonical

Tuần trước Canonical thông báo phát hành phiên bản chính của dự án Dqlite 1.0, bạn đang phát triển một công cụ SQL Tuân thủ SQLite tích hợp hỗ trợ sao chép dữ liệu, khôi phục thảm họa tự động và khả năng chịu lỗi bằng cách mở rộng nhiều nút.

Dqlite là một thư viện C Nó triển khai một công cụ cơ sở dữ liệu SQL và được sao chép với tính khả dụng cao và tự động chuyển đổi dự phòng. Từ viết tắt "dqlite" là viết tắt của "SQLite phân tán", điều đó có nghĩa là dqlite mở rộng SQLite với một giao thức mạng có thể kết nối nhiều phiên bản ứng dụng của bạn và làm cho chúng hoạt động như một cụm khả dụng cao, mà không phụ thuộc vào cơ sở dữ liệu bên ngoài.

Như đã đề cập DBMS được triển khai dưới dạng thư viện C gắn với các ứng dụng và được phân phối theo giấy phép Apache 2.0 (SQLite gốc được cung cấp trong miền công cộng). Thư viện là một plugin trên cơ sở mã SQLite hiện có, bổ sung hỗ trợ giao thức mạng để liên kết nhiều phiên bản của ứng dụng đang chạy trên các máy chủ khác nhau.

Một ứng dụng được xây dựng bằng Dqlite có thể hoạt động như một cụm chuyển đổi dự phòng do sai lầm tự chủ, độc lập với DBMS bên ngoài.

Trong thực tế, Canonical sử dụng Dqlite trong hệ thống quản lý container LXD. Trong số các lĩnh vực ứng dụng của thư viện, việc tạo ra các thiết bị và bộ xử lý Internet of Things có khả năng chịu lỗi trong hệ thống điện toán Edge cũng được đề cập đến.

Để đảm bảo tính nhất quán trong sao chép dữ liệu, một phương pháp đồng thuận dựa trên thuật toán Raft được sử dụng, được sử dụng trong các dự án như etcd, RethinkDB, CockroachDB và OpenDaylight. Dqlite sử dụng triển khai C -fting không đồng bộ của riêng nó, được viết bằng C.

Để ghép kênh xử lý kết nối và tổ chức khởi chạy các coroutines, các thư viện đã chuẩn bị sẵn libuv và libco được sử dụng.

So với một dự án rqlite tương tự, Dqlite cung cấp hỗ trợ giao dịch đầy đủ, nó có thể giao tiếp với bất kỳ dự án C nào, cho phép bạn sử dụng hàm time () và sử dụng sao chép dựa trên khung thay vì sao chép dựa trên bản dịch biểu thức SQL.

Trong số các tính năng có thể được đánh dấu trong Dqlite là:

  • Thực hiện tất cả các hoạt động của đĩa và mạng ở chế độ không đồng bộ
  • Sự hiện diện của một tập hợp các bài kiểm tra để xác nhận tính chính xác của dữ liệu
  • Tiêu thụ bộ nhớ thấp và trao đổi dữ liệu hiệu quả qua mạng
  • Lưu trữ đĩa cơ sở dữ liệu vĩnh viễn và nhật ký giao dịch (với khả năng lưu vào bộ nhớ đệm trong bộ nhớ)
  • Phục hồi nhanh chóng sau những thất bại
  • Ứng dụng khách CLI ổn định bằng ngôn ngữ Go, có thể được sử dụng để khởi tạo cơ sở dữ liệu, định cấu hình sao chép và kết nối / ngắt kết nối các nút
  • Hỗ trợ kiến ​​trúc ARM, X86, POWER và IBM Z
  • Việc triển khai thuật toán Raft được tối ưu hóa để giảm thiểu độ trễ giao dịch.
  • Triển khai luồng đơn không đồng bộ bằng cách sử dụng libuv làm vòng lặp sự kiện.
  • Giao thức dây tùy chỉnh được tối ưu hóa cho các kiểu dữ liệu và nguyên thủy SQLite.
  • Sao chép dữ liệu dựa trên thuật toán Raft và triển khai hiệu quả của nó trong C -fting.

Làm thế nào để cài đặt Dqlite trên Ubuntu và các dẫn xuất?

Canonical cung cấp thông tin về cách bạn có thể xây dựng khách hàng để tương tác với Dqlite, bạn có thể tham khảo Trong liên kết sau đây.

Bây giờ, đối với việc cài đặt thư viện trên hệ thống, Điều này có thể được cài đặt theo hai cách cho những ai là người dùng Ubuntu hoặc bất kỳ dẫn xuất nào khác của nó. Canonical cung cấp PPA từ đó nó có thể được lấy một cách khá đơn giản.

PPA này có thể được thêm vào từ một thiết bị đầu cuối và thực hiện các lệnh sau trong đó:

sudo add-apt-repository ppa:dqlite/v1
sudo apt-get update
sudo apt-get install libdqlite-dev

Phương pháp khác để cài đặt thư viện này là biên dịch của điều này trên hệ thống, vì vậy đây là một phương pháp chung hơn cho cả Ubuntu và các bản phân phối Linux khác.

Để làm điều này, họ chỉ phải mở một thiết bị đầu cuối và thực hiện các lệnh sau:

git clone --depth 100 https://github.com/canonical/sqlite.git
cd sqlite
./configure --enable-replication
make
sudo make install
cd ..
git clone https://github.com/canonical/libco.git
cd libco
make
sudo make install
cd ..
git clone https://github.com/canonical/raft.git
cd raft
autoreconf -i
./configure
make
sudo make install
cd ..

Khi tất cả các thư viện cần thiết được cài đặt, để xây dựng thư viện chia sẻ dqlite, bạn có thể chạy:

autoreconf -i
./configure
make
sudo make install

Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.