Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

In-Memory - bu dasturning operativ xotirasida saqlangan ma'lumotlarni saqlash uchun tushunchalar to'plami va disk zaxiralash uchun ishlatiladi. Klassik yondashuvlarda ma'lumotlar diskda, xotira esa keshda saqlanadi. Misol uchun, ma'lumotlarni qayta ishlash uchun backendli veb-ilova uni saqlashga so'raydi: u uni qabul qiladi, o'zgartiradi va tarmoq orqali ko'plab ma'lumotlar uzatiladi. In-Memory-da hisob-kitoblar ma'lumotlarga - saqlashga yuboriladi, ular qayta ishlanadi va tarmoq kamroq yuklanadi.

O'zining arxitekturasi tufayli In-Memory ma'lumotlarga kirishni bir necha baravar tezlashtiradi, hatto ba'zan kattalikdagi buyurtmalar ham tezroq. Masalan, bank tahlilchilari analitik arizada o'tgan yil davomida berilgan kreditlar bo'yicha hisobotni dinamikada ko'rishni xohlashadi. Bu jarayon klassik DBMSda bir necha daqiqa davom etadi, ammo In-Memory bilan u deyarli darhol paydo bo'ladi. Buning sababi shundaki, yondashuv sizga ko'proq ma'lumotni keshlash imkonini beradi va u "qo'lda" RAMda saqlanadi. Ilova qattiq diskdan ma'lumotlarni so'rashga hojat yo'q, uning mavjudligi tarmoq va disk tezligi bilan cheklangan.

In-Memory bilan yana qanday imkoniyatlar mavjud va bu qanday yondashuv? Vladimir Pligin - GridGain muhandisi. Ushbu ko'rib chiqish materiali In-Memory bilan ishlamagan va sinab ko'rmoqchi bo'lgan yoki dasturiy ta'minotni ishlab chiqish va arxitektura dizaynidagi zamonaviy tendentsiyalarga qiziqqan veb-ilovalar backend ishlab chiquvchilari uchun foydali bo'ladi.

nota. Maqola Vladimirning #GetIT Conf-dagi ma'ruzasi stenogrammasiga asoslangan. O'z-o'zidan izolyatsiyani joriy etishdan oldin biz Moskva va Sankt-Peterburgda ishlab chiqaruvchilar uchun muntazam ravishda uchrashuvlar va konferentsiyalar o'tkazdik: biz tendentsiyalar, rivojlanishning dolzarb muammolari, muammolar va ularning echimlarini muhokama qildik. Hozir konferentsiya o'tkazishning iloji yo'q, lekin o'tmishdagi foydali materiallarni almashish vaqti keldi.

In-Memorydan kim va qanday foydalanadi

In-Memory ko'pincha foydalanuvchining tezkor o'zaro ta'siri yoki katta hajmdagi ma'lumotlarni qayta ishlash talab qilinadigan joylarda qo'llaniladi.

  • banklar Mijozlar ilovalardan foydalanganda kechikishlarni kamaytirish yoki kredit berishdan oldin mijozni tahlil qilish uchun, masalan, In-Memory dan foydalaning.
  • Fintech ma'lumotlarni qayta ishlash va tahlil qilish uchun autsorsingni amalga oshiradigan banklar uchun xizmatlar va ilovalar samaradorligini oshirish uchun In-Memory dasturidan foydalanadi. 
  • Sug'urta kompaniyalari: risklarni hisoblash, masalan, bir necha yil davomida mijozlar ma'lumotlarini tahlil qilish.
  • Logistika kompaniyalari. Ular ko'plab ma'lumotlarni qayta ishlaydilar, masalan, minglab parametrlar bilan yuk va yo'lovchi tashish uchun optimal yo'nalishlarni hisoblash va yuklarning holatini kuzatish.
  • Chakana savdo. In-Memory yechimlari mijozlarga tezroq xizmat ko'rsatish va katta hajmdagi ma'lumotlarni qayta ishlashga yordam beradi: jo'natmalar, hisob-fakturalar, tranzaksiyalar, omborlarda minglab tovarlar mavjudligi va tahliliy hisobotlarni tayyorlash.
  • Π’ suruv In-Memory an'anaviy ma'lumotlar bazalarini almashtiradi.
  • Farmatsevtika kompaniyalar, masalan, dori kompozitsiyalarining kombinatsiyalarini saralash uchun In-Memory dan foydalanadilar. 

Mijozlarimiz In-Memory yechimlaridan qanday foydalanishlari va ularni o'zingiz qanday amalga oshirishingiz mumkinligi haqida bir necha misollar aytib beraman.

In-Memory asosiy xotira sifatida

Mijozlarimizdan biri AQShdan tibbiy ilmiy asbob-uskunalar yetkazib beruvchi yirik yetkazib beruvchi hisoblanadi. Ular asosiy ma'lumotlarni saqlash sifatida In-Memory yechimidan foydalanadilar. Barcha ma'lumotlar diskda saqlanadi va faol foydalaniladigan ma'lumotlarning kichik to'plami operativ xotirada saqlanadi. Saqlash uchun kirish usullari standartdir - GDBC (Umumiy ma'lumotlar bazasi ulagichi) va SQL so'rovlar tili.

Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

Birgalikda bu In-Memory Database (IMDB) yoki Memory-Centric Storage deb ataladi. Ushbu toifadagi echimlar juda ko'p nomlarga ega, bular yagona emas. 

IMDB xususiyatlari:

  • In-Memory-da saqlanadigan va SQL orqali foydalaniladigan ma'lumotlar boshqa yondashuvlar bilan bir xil. Ular sinxronlashtiriladi, faqat taqdimot usuli, ularga murojaat qilish usuli boshqacha. Tranzaksiya ma'lumotlar o'rtasida ishlaydi.

  • IMDB relyatsion ma'lumotlar bazalariga qaraganda tezroq, chunki u RAMdan ma'lumotni diskdan ko'ra tezroq oladi. 
  • Ichki optimallashtirish algoritmlari kamroq ko'rsatmalarga ega.
  • IMDB'lar ilovalardagi ma'lumotlar, hodisalar va tranzaktsiyalarni boshqarish uchun javob beradi.

IMDB qisman ACIDni qo'llab-quvvatlaydi: Atomlik, izchillik va izolyatsiya. Ammo ular "chidamlilik" ni qo'llab-quvvatlamaydi - quvvat o'chirilganda barcha ma'lumotlar yo'qoladi. Muammoni hal qilish uchun siz oniy tasvirlardan foydalanishingiz mumkin - ma'lumotlar bazasining "oniy tasviri", qattiq diskdagi ma'lumotlar bazasi zahirasiga o'xshash yoki qayta ishga tushirilgandan so'ng ma'lumotlarni qayta tiklash uchun tranzaktsiyalarni (jurnallarni) yozib oling.

Xatolarga chidamli ilovalar yaratish uchun

Keling, xatoga chidamli veb-ilovaning klassik arxitekturasini tasavvur qilaylik. Bu shunday ishlaydi: barcha so'rovlar serverlar o'rtasida veb-balanslashtiruvchi tomonidan taqsimlanadi. Ushbu tizim barqaror, chunki serverlar bir-birini takrorlaydi va hodisalar yuz berganda zaxiralanadi.

Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

Balanslashtiruvchi barcha so'rovlarni bir seansdan qat'iy ravishda bitta serverga yo'naltiradi. Bu tayoq seansi mexanizmi: har bir sessiya mahalliy saqlanadi va qayta ishlanadigan server bilan bog'lanadi. 

Serverlardan biri ishlamay qolsa nima bo'ladi?

Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

Xizmatga ta'sir qilmaydi, chunki arxitektura takrorlanadi. Ammo biz o'lik server seanslarining bir qismini yo'qotamiz. Va shu bilan birga, ushbu sessiyalarga bog'langan foydalanuvchilar. Misol uchun, mijoz buyurtma beradi va uni to'satdan ofisdan chiqarib yuboradi. U yana tizimga kirganida va hamma narsani yana qilish kerakligini bilsa, u baxtsiz bo'ladi.

Ko'p sonli foydalanuvchilarni qo'llab-quvvatlash va ular qulay ishlashi uchun sekinlashmaslik uchun veb-ilova talab qilinadi. Ammo rad etilsa, har bir keyingi so'rov bilan seans do'koni bilan bog'lanish vaqti ortadi. Bu boshqa foydalanuvchilar uchun o'rtacha kechikishni oshiradi. Ammo ular odatdagidan ko'proq kutishni xohlamaydilar.

Bu muammoni bizning boshqa mijozimiz, AQShning yirik PASS provayderi kabi hal qilish mumkin. U veb-sessiyalarni klasterlash uchun In-Memory-dan foydalanadi. Buning uchun u ularni mahalliy emas, balki markaziy tarzda - In-Memory klasterida saqlaydi. Bunday holda, seanslar ancha tezroq mavjud, chunki ular allaqachon RAMda.

Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

Server ishdan chiqqanda, muvozanatlashuvchi klassik arxitekturadagi kabi buzilgan serverdan so'rovlarni boshqa serverlarga yuboradi. Ammo muhim farq bor: seanslar In-Memory klasterida saqlanadi va serverlar yiqilgan serverning seanslariga kirish huquqiga ega.

Ushbu arxitektura butun tizimning nosozliklarga chidamliligini oshiradi. Bundan tashqari, tayoq seansi mexanizmidan butunlay voz kechish mumkin.

Gibrid tranzaksiyaviy analitik ishlov berish (HTAP)

Odatda, tranzaktsion va analitik tizimlar alohida saqlanadi. Ular ajratilganda, asosiy tayanch yuk ostida bo'ladi. Analitik ishlov berish uchun ma'lumotlar takroriy nusxaga ko'chiriladi, shunda analitik ishlov berish tranzaksiya jarayonlariga xalaqit bermaydi. Ammo nusxa ko'chirish kechikish bilan sodir bo'ladi - kechikishsiz takrorlash mumkin emas. Agar biz buni sinxron tarzda qilsak, u ham asosiy bazani sekinlashtiradi va biz hech qanday yutuq olmaymiz.

HTAP-da hamma narsa boshqacha ishlaydi - bir xil ma'lumotlar ombori ilovalardan tranzaksiya yuklash uchun va uzoq vaqt bajarilishi mumkin bo'lgan tahliliy so'rovlar uchun ishlatiladi. Ma'lumotlar operativ xotirada bo'lsa, analitik so'rovlar tezroq bajariladi va ma'lumotlar bazasiga ega server kamroq yuklanadi (o'rtacha).

Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

Gibrid yondashuv tranzaktsiyalarni qayta ishlash va tahlil o'rtasidagi devorni buzadi. Agar biz bir xil xotirada tahlilni amalga oshirsak, u holda RAMdan olingan ma'lumotlar bo'yicha analitik so'rovlar ishga tushiriladi. Ular ancha aniqroq, talqin qilinadigan va adekvat.

In-Memory yechimlarining integratsiyasi

(nisbatan) oddiy usul - hamma narsani noldan rivojlantiring. Biz ma'lumotlarni diskda saqlaymiz va issiq ma'lumotlarni xotirada saqlaymiz. Bu serverni qayta ishga tushirish yoki uzilishlardan omon qolishga yordam beradi.

Diskda ma'lumotlar saqlanadigan ikkita asosiy stsenariy mavjud. Birinchisida, biz klaster yoki qismlarning ishdan chiqishi yoki muntazam qayta yuklanishidan omon qolishni istaymiz - biz undan oddiy ma'lumotlar bazasi sifatida foydalanmoqchimiz. Ikkinchi stsenariyda, ma'lumotlar juda ko'p bo'lsa, ularning bir qismi xotirada bo'ladi.

Agar hamma narsani noldan qurishning iloji bo'lmasa, In-Memory-ni allaqachon xotiraga integratsiyalash mumkin. mavjud arxitektura. Lekin barcha In-Memory yechimlari bunga mos kelmaydi. Uchta majburiy shart mavjud. In-Memory yechimi quyidagilarni qo'llab-quvvatlashi kerak:

  • uning ostida joylashgan ma'lumotlar bazasiga ulanishning standart usuli (masalan, MySQL);
  • saqlash bilan o'zaro ta'sir qilish mantig'ini qayta yozmaslik va o'zgartirmaslik uchun standart so'rovlar tili;
  • tranzaksiya - o'zaro ta'sir semantikasini saqlab qolish.

Agar uchta shart bajarilsa, integratsiya mumkin. Biz dastur va ma'lumotlar bazasi o'rtasida In-Memory Data Gridni joylashtiramiz. Endi yozish so'rovlari asosiy ma'lumotlar bazasiga va agar ma'lumotlar keshda bo'lmasa, o'qish so'rovlari asosiy ma'lumotlar bazasiga topshiriladi.

Veb-xizmatlar uchun xotiradagi arxitektura: texnologiya asoslari va tamoyillari

Agar ma'lumotlarga tezkor kirish va uni qayta ishlash siz uchun muhim bo'lsa, masalan, biznes-tahlil uchun siz In-Memory dasturini amalga oshirish haqida o'ylashingiz mumkin. Va amalga oshirish uchun siz yangi arxitekturani loyihalashda ikkala usuldan ham foydalanishingiz mumkin.

Manba: www.habr.com

a Izoh qo'shish