rqlite 7.0 ning chiqarilishi, SQLite asosidagi taqsimlangan, xatolarga chidamli DBMS.

rqlite 7.0 tarqatilgan DBMS chiqarildi. U saqlash mexanizmi sifatida SQLite-dan foydalanadi va sinxronlashtirilgan saqlash tizimlarini klasterlash imkonini beradi. rqlite-ning asosiy xususiyatlari orasida etcd va Consul-ga biroz o'xshash, lekin kalit/qiymat formati o'rniga relyatsion ma'lumotlar modelidan foydalangan holda taqsimlangan, nosozliklarga chidamli saqlash tizimini o'rnatish, joylashtirish va texnik xizmat ko'rsatish qulayligi kiradi. Loyiha kodi Go'da yozilgan va MIT litsenziyasi ostida tarqatiladi.

Raft konsensus algoritmi barcha tugunlarni sinxronlashtirish uchun ishlatiladi. Rqlite asl SQLite kutubxonasi va go-sqlite3 drayveridan foydalanadi, uning ustida mijoz so'rovlarini qayta ishlaydigan, boshqa tugunlarga takrorlanadigan va yetakchi saylovi bo'yicha konsensusni kuzatuvchi qatlam ishlaydi.

Ma'lumotlar bazasiga o'zgartirishlar faqat etakchi sifatida tanlangan tugun tomonidan amalga oshirilishi mumkin, lekin yozish ulanishlari boshqa klaster tugunlariga yo'naltirilishi mumkin, bu so'rovni qayta ko'rish uchun rahbarning manzilini qaytaradi (keyingi versiyada etakchiga avtomatik yo'naltirish va'da qilinadi). Asosiy e'tibor xatolarga tolerantlikka qaratilgan, shuning uchun DBMS faqat o'qish operatsiyalari uchun o'lchaydi, yozish operatsiyalari esa qiyinchilik tug'diradi. Bitta tugundan rqlite klasterini ishga tushirish mumkin va bu yechim nosozlikka chidamlilikni ta'minlamasdan HTTP orqali SQLite-ga kirishni ta'minlash uchun ishlatilishi mumkin.

Har bir tugundagi SQLite ma'lumotlari faylda emas, xotirada saqlanadi. Ma'lumotlar bazasini o'zgartiradigan barcha SQLite buyruqlari jurnali Raft protokoli qatlamida saqlanadi. Ushbu jurnal replikatsiya uchun (boshqa tugunlarda so'rovlarni takrorlash darajasida replikatsiya), yangi tugunni ishga tushirishda yoki ulanish yo'qolganidan keyin tiklash uchun ishlatiladi. Jurnal hajmini kamaytirish uchun avtomatik qadoqlash qo'llaniladi. Bu ma'lum miqdordagi o'zgarishlardan so'ng ishga tushiriladi va natijada yangi jurnal boshlanadi (xotiradagi ma'lumotlar bazasi holati oniy tasvir va to'plangan o'zgarishlar jurnali bilan bir xil).

rqlite xususiyatlari:

  • SQLite-ni alohida o'rnatishni talab qilmasdan, klasterni joylashtirish oson.
  • Replikatsiya qilingan SQL xotirasini tezda olish imkoniyati.
  • Ishlab chiqarish loyihalarida foydalanishga tayyor (ishlab chiqarish darajasi).
  • HTTP(S) API maʼlumotlarning ommaviy yangilanishi va klaster yetakchisini aniqlash imkonini beradi. Turli xil dasturlash tillari uchun buyruq qatori interfeysi va mijoz kutubxonalari ham taqdim etilgan.
  • Klasterlarni dinamik ravishda yaratish imkonini beruvchi boshqa tugunlarni aniqlash xizmatining mavjudligi.
  • Tugunlar o'rtasida ma'lumotlar almashinuvini shifrlashni qo'llab-quvvatlash.
  • O'qish paytida ma'lumotlarning dolzarbligi va izchilligini tekshirish darajasini sozlash qobiliyati.
  • Konsensusni aniqlashda ishtirok etmaydigan va o'qish operatsiyalari uchun klasterning masshtabliligini oshirish uchun foydalaniladigan tugunlarni faqat o'qish rejimida ulashning ixtiyoriy imkoniyati.
  • Bitta so'rovda buyruqlarni birlashtirishga asoslangan tranzaktsiyalarning shaxsiy shaklini qo'llab-quvvatlash (BEGIN, COMMIT, ROLLBACK, SAVEPOINT va RELEASE asosidagi operatsiyalar qo'llab-quvvatlanmaydi).
  • Issiq zaxira nusxalarini yaratishni qo'llab-quvvatlash.

Yangi nashrda:

  • Consul va boshqalar kabi taqsimlangan xotirada ishlay oladigan yangi tugunlarni aniqlash xizmatidan foydalangan holda avtomatik rqlite klasterlash uchun qo'llab-quvvatlash qo'shildi. Ushbu xizmat rqlite tugunlariga bir-birini avtomatik ravishda topish imkonini beradi — administrator faqat turli serverlarda bir nechta tugunlarni ishga tushirishi kerak. serverlar, Consul yoki etcd klasterining umumiy manzilini (masalan, "example.com:8500") ko'rsatib, tugunlar avtomatik ravishda klasterga qo'shiladi. Yetakchi tugun vaqti-vaqti bilan Consul yoki etcd xotirasidagi manzil ma'lumotlarini yangilab turadi, bu sizga keyinchalik boshqa tugunlarni qayta konfiguratsiya qilmasdan yetakchini o'zgartirish, shuningdek, yetakchi o'zgarganidan keyin ham yangi tugunlarni qo'shish imkonini beradi. AWS Lambda tomonidan qo'llab-quvvatlanadigan eski tugunni topish xizmati (Discovery mode) ni qo'llab-quvvatlash to'xtatildi.
  • CLI interfeysi bir vaqtning o'zida bir nechta xostlarni belgilash imkonini beradi; agar birinchi tugun mavjud bo'lmasa, keyingi xostlar bilan bog'lanadi.
  • Qlitli buyruq qatori argumentlarini tahlil qilish uchun kod qayta ishlangan.
  • Eskirgan protobuf paketi eskirgan.
  • Raft protokolini amalga oshirishda foydalanilgan BoltDB xotirasi etcd loyihasining vilkasi bbolt bilan almashtirildi.

Manba: opennet.ru

DDoS himoyasi, VPS VDS serverlari bo'lgan saytlar uchun ishonchli hosting sotib oling 🔥 DDoS himoyasi, VPS VDS serverlari bilan ishonchli veb-sayt xostingini sotib oling | ProHoster