SQLite ishlab chiquvchilari parallel yozishni qo'llab-quvvatlagan holda HC-tree backend-ni ishlab chiqadilar

SQLite loyihasini ishlab chiquvchilari qator darajasida qulflashni qo'llab-quvvatlaydigan va so'rovlarni qayta ishlashda yuqori darajadagi parallelizatsiyani ta'minlaydigan eksperimental HCtree backendini sinovdan o'tkazishni boshladilar. Yangi backend ma'lumotlar bazasiga bir vaqtning o'zida ko'p sonli yozish so'rovlarini qayta ishlashga majbur bo'lgan mijoz-server tizimlarida SQLite-dan foydalanish samaradorligini oshirishga qaratilgan.

SQLite-da ma'lumotlarni saqlash uchun mahalliy ravishda ishlatiladigan b-daraxt tuzilmalari ushbu turdagi yuk uchun mo'ljallanmagan, bu SQLite-ni faqat bitta ipga yozishni cheklaydi. Tajriba sifatida ishlab chiquvchilar yozish operatsiyalarini parallellashtirish uchun ko'proq mos keladigan saqlash uchun HC-daraxt tuzilmalaridan foydalanadigan muqobil yechimni ishlab chiqishni boshladilar.

Bir vaqtning o'zida bir nechta operatsiyalarni bajarishga ruxsat berish uchun HCtree yozuvi sahifalar darajasida blokirovkadan foydalanadigan va MVCC (Ko'p versiyali parallellikni boshqarish) ga o'xshash tranzaktsiyalarni bo'lish mexanizmidan foydalanadi, lekin sahifalar to'plami o'rniga kalitlar va kalit diapazonlariga asoslangan tranzaksiya tekshiruvlaridan foydalanadi. O'qish va yozish operatsiyalari ma'lumotlar bazasi oniy tasviri bilan bog'liq holda amalga oshiriladi, unga kiritilgan o'zgarishlar tranzaksiya tugagandan keyingina asosiy ma'lumotlar bazasida ko'rinadi.

Mijozlar uchta ochiq tranzaksiya operatsiyalaridan foydalanishlari mumkin:

  • "BEGIN" - tranzaktsiyalar boshqa mijozlarning kirish ma'lumotlarini hisobga olmaydi. Agar tranzaksiya doirasida yozish operatsiyalari bajarilsa, uni bajarish paytida ma'lumotlar bazasida boshqa yozish operatsiyalari bo'lmagan taqdirdagina tranzaktsiya amalga oshirilishi mumkin.
  • "BEGIN CONCURRENT" - tranzaktsiyalar boshqa mijozlarning kirishiga oid ma'lumotlarni to'playdi. Agar tranzaksiya doirasida yozish operatsiyalari amalga oshirilsa, oniy tasvir yaratilgandan beri ma'lumotlar bazasida boshqa tranzaktsiyalar amalga oshirilgan bo'lsa, tranzaktsiya amalga oshirilishi mumkin.
  • β€œEXCLUSIVE BOSHLASH” – tranzaksiya ochilgandan soβ€˜ng, u tugallanmaguncha boshqa tranzaktsiyalardan operatsiyalarni bloklaydi.

HCtree master-slave replikatsiyasini qo'llab-quvvatlaydi, bu sizga tranzaktsiyalarni boshqa ma'lumotlar bazasiga ko'chirish va ikkilamchi ma'lumotlar bazalarini asosiy ma'lumotlar bazasi bilan sinxronlashtirish imkonini beradi. HCtree shuningdek, ma'lumotlar bazasi hajmi bo'yicha cheklovni olib tashlaydi - 32-bitli ma'lumotlar sahifasi identifikatorlari o'rniga, HCtree 48-bitli identifikatorlardan foydalanadi, bu esa ma'lumotlar bazasining maksimal hajmini 16 tebibaytdan 1 eksbibaytgacha (million tebibayt) oshiradi. HCtree backend bilan SQLite unumdorligi klassik bitta tarmoqli backenddan past bo'lmasligi kutilmoqda. HCtree-ni qo'llab-quvvatlaydigan SQLite mijozlari HC daraxtiga asoslangan ma'lumotlar bazalariga ham, eski SQLite ma'lumotlar bazalariga ham kirishlari mumkin bo'ladi.

Manba: opennet.ru

a Izoh qo'shish