Rilis rqlite 7.0, DBMS toleransi kesalahan sing disebarake adhedhasar SQLite

Rilis DBMS rqlite 7.0 sing disebarake, sing nggunakake SQLite minangka mesin panyimpenan lan ngidini sampeyan ngatur karya kluster saka panyimpenan sing disinkronake. Salah siji fitur saka rqlite iku ease saka instalasi, penyebaran lan pangopènan panyimpenan fault-tolerant mbagekke, Luwih padha etcd lan Konsul, nanging nggunakake model data hubungan tinimbang tombol / format Nilai. Kode proyek ditulis ing Go lan disebarake miturut lisensi MIT.

Kanggo njaga kabeh simpul ing negara sing disinkronake, algoritma konsensus Raft digunakake. Rqlite nggunakake perpustakaan SQLite asli lan driver go-sqlite3, ing ndhuwur lapisan dibukak sing ngolah panjaluk klien, nindakake replikasi menyang kelenjar liyane, lan ngawasi prestasi konsensus babagan pilihan node sing unggul.

Owah-owahan ing database mung bisa digawe dening simpul sing dipilih minangka pimpinan, nanging sambungan karo operasi nulis uga bisa dikirim menyang kelenjar liyane ing kluster, kang bakal bali alamat pimpinan kanggo mbaleni request (ing versi sabanjuré padha janji nambahake panjalukan otomatis menyang pimpinan). Penekanan utama yaiku toleransi kesalahan, mula skala DBMS mung nganggo operasi maca, lan operasi nulis minangka bottleneck. Sampeyan bisa mbukak kluster rqlite saka simpul siji lan solusi iki bisa digunakake kanggo nyedhiyakake akses menyang SQLite liwat HTTP tanpa menehi toleransi kesalahan.

Data SQLite ing saben simpul ora disimpen ing file, nanging ing memori. Ing tingkat lapisan kanthi implementasine protokol Raft, log kabeh perintah SQLite sing nyebabake owah-owahan ing basis data disimpen. Log iki digunakake sajrone replikasi (replikasi ing tingkat panyuwunan reproduksi ing simpul liyane), nalika miwiti simpul anyar, utawa kanggo pulih saka kelangan konektivitas. Kanggo nyuda ukuran log, packing otomatis digunakake, sing diwiwiti sawise sawetara owah-owahan sing ditemtokake lan ndadékaké fiksasi snapshot, sing ana hubungane karo log anyar wiwit dijaga (kahanan database ing memori yaiku identik karo gambar asline + log pangowahan akumulasi).

Fitur rqlite:

  • Gampang masang kluster, tanpa mbutuhake instalasi SQLite sing kapisah.
  • Kemampuan kanggo entuk panyimpenan SQL kanthi cepet.
  • Siap digunakake ing proyek produksi (production-grade).
  • Ing ngarsane HTTP (S) API sing ngijini sampeyan kanggo nganyari data ing mode kumpulan lan nemtokake simpul anjog saka kluster. Antarmuka baris perintah lan perpustakaan klien kanggo macem-macem basa pamrograman uga kasedhiya.
  • Kasedhiyan layanan kanggo ngenali simpul liyane, ngidini sampeyan nggawe klompok kanthi dinamis.
  • Dhukungan kanggo enkripsi ijol-ijolan data ing antarane simpul.
  • Kemampuan kanggo ngatur tingkat mriksa relevansi lan konsistensi data nalika maca.
  • Kemampuan opsional kanggo nyambungake kelenjar ing mode mung diwaca, sing ora melu nemtokake konsensus lan digunakake kanggo nambah skalabilitas kluster kanggo operasi maca.
  • Dhukungan kanggo wangun transaksi dhewe adhedhasar gabungan printah ing siji panjalukan (transaksi adhedhasar BEGIN, COMMIT, ROLLBACK, SAVEPOINT lan RELEASE ora didhukung).
  • Dhukungan kanggo nggawe serep panas.

Ing release anyar:

  • Added support kanggo clustering rqlite otomatis nggunakake layanan deteksi simpul anyar sing bisa ing basis saka Konsul lan etcd panyimpenan mbagekke. Layanan kasebut ngidini simpul rqlite bisa nemokake saben liyane kanthi otomatis - administrator mung kudu mbukak sawetara simpul ing server sing beda-beda, nemtokake alamat kluster Konsul utawa etcd umum (contone, "example.com:8500"), lan simpul kasebut bakal kanthi otomatis. digabung dadi kluster. Simpul anjog kanthi periodik nganyari informasi babagan alamat ing panyimpenan Konsul utawa etcd, sing ngidini sampeyan ngganti pimpinan tanpa kudu ngatur maneh kelenjar liyane, uga nambah simpul anyar sanajan ganti pimpinan. Layanan mode Discovery warisan sing mlaku ing AWS Lambda wis mandheg.
  • Antarmuka CLI ngidini nemtokake sawetara host bebarengan - yen simpul pisanan ora kasedhiya, host sabanjure bakal dikontak.
  • Kode kanggo parsing argumen baris perintah rqlited wis digarap maneh.
  • Paket protobuf sing ora digunakake wis mandheg.
  • Panyimpenan BoltDB digunakake ing implementasine saka protokol Raft wis diganti dening bbolt, garpu saka project etcd.

Source: opennet.ru

Add a comment