Canonical Mengumumkan Versi 1.0 dari Dqlite, sebuah Perpustakaan C untuk SQL

Canonical

Minggu lepas Canonical mengumumkan pelancaran versi utama projek Dqlite 1.0, anda sedang membangunkan enjin SQL SQLite terbina dalam yang menyokong replikasi data, pemulihan bencana automatik, dan toleransi kesalahan dengan merangkumi beberapa nod.

Dqlite adalah perpustakaan C Ini menerapkan mesin pangkalan data SQL yang direplikasi dengan ketersediaan tinggi dan failover automatik. Akronim "dqlite" bermaksud "Distribusi SQLite", yang bermaksud bahawa dqlite memperluas SQLite dengan protokol rangkaian yang dapat menghubungkan beberapa contoh aplikasi anda dan menjadikannya bertindak sebagai kelompok yang sangat tersedia, tanpa bergantung pada pangkalan data luaran.

Seperti yang dinyatakan DBMS dilaksanakan dalam bentuk perpustakaan C yang dilampirkan pada aplikasi dan diedarkan di bawah lesen Apache 2.0 (SQLite asli disediakan dalam domain awam). Perpustakaan adalah plugin berdasarkan kod SQLite yang ada, yang menambahkan sokongan protokol rangkaian untuk menghubungkan beberapa contoh aplikasi yang berjalan di host yang berbeza.

Aplikasi yang dibina dengan Dqlite dapat berfungsi sebagai gugus failover oleh kesalahan autonomi, bebas daripada DBMS luaran.

Dalam latihan, Canonical menggunakan Dqlite dalam sistem pengurusan kontena LXD. Di antara bidang aplikasi perpustakaan, penciptaan peranti dan pemproses Internet of Things yang toleran terhadap kesalahan dalam sistem pengkomputeran Edge juga disebutkan.

Untuk memastikan konsistensi dalam replikasi data, digunakan kaedah konsensus berdasarkan algoritma Raft, yang digunakan dalam projek seperti etcd, RethinkDB, CockroachDB, dan OpenDaylight. Dqlite menggunakan pelaksanaan C-rakit asinkronnya sendiri, yang ditulis dalam C.

Untuk melipatgandakan pemprosesan sambungan dan mengatur pelancaran coroutine, perpustakaan yang disediakan libuv dan libco digunakan.

Berbanding dengan projek rqlite yang serupa, Dqlite memberikan sokongan transaksi penuh, dapat berkomunikasi dengan mana-mana projek C, memungkinkan Anda menggunakan fungsi waktu (), dan menggunakan replikasi berdasarkan bingkai dan bukan replikasi berdasarkan terjemahan ekspresi SQL.

Antara ciri yang boleh diketengahkan dalam Dqlite adalah seperti berikut:

  • Lakukan semua operasi cakera dan rangkaian dalam mod tidak segerak
  • Kehadiran satu set ujian untuk mengesahkan ketepatan data
  • Penggunaan memori yang rendah dan pertukaran data yang cekap melalui rangkaian
  • Storan cakera pangkalan data tetap dan log transaksi (dengan keupayaan cache dalam memori)
  • Pemulihan cepat setelah mengalami kegagalan
  • Pelanggan CLI yang stabil dalam bahasa Go, yang dapat digunakan untuk menginisialisasi pangkalan data, mengkonfigurasi replikasi dan menyambung / memutuskan sambungan
  • Sokongan untuk seni bina ARM, X86, POWER, dan IBM Z
  • Pelaksanaan algoritma Raft dioptimumkan untuk meminimumkan kependaman transaksi.
  • Pelaksanaan threaded tak segerak menggunakan libuv sebagai gelung peristiwa.
  • Protokol wayar khusus dioptimumkan untuk primitif SQLite dan jenis data.
  • Replikasi data berdasarkan algoritma Raft dan pelaksanaannya yang cekap dalam C-raft.

Bagaimana cara memasang Dqlite di Ubuntu dan derivatif?

Canonical memberikan maklumat mengenai bagaimana anda dapat membina klien untuk berinteraksi dengan Dqlite, anda boleh merujuknya Dalam pautan berikut.

Sekarang untuk memasang perpustakaan pada sistem, Ini boleh dipasang dengan dua cara bagi mereka yang merupakan pengguna Ubuntu atau sebarang turunan lain daripadanya. Canonical menyediakan PPA dari mana ia dapat diperoleh dengan cara yang cukup mudah.

PPA ini dapat ditambahkan dari terminal dan menjalankan perintah berikut di dalamnya:

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

Kaedah lain untuk memasang perpustakaan ini adalah dengan menyusun ini pada sistem jadi ini adalah kaedah yang lebih umum untuk pengedaran Ubuntu dan Linux yang lain.

Untuk melakukan ini, mereka hanya perlu membuka terminal dan melaksanakan perintah berikut:

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 ..

Setelah semua perpustakaan yang diperlukan dipasang, untuk membina pustaka bersama dqlite, anda boleh menjalankan:

autoreconf -i
./configure
make
sudo make install

Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab atas data: Miguel Ángel Gatón
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.