Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Ing-Memori punika pesawat saka konsep kanggo nyimpen data nalika disimpen ing RAM aplikasi, lan disk digunakake kanggo serep. Ing pendekatan klasik, data disimpen ing disk lan memori disimpen ing cache. Contone, aplikasi web kanthi backend kanggo ngolah data njaluk menyang panyimpenan: nampa, ngowahi, lan akeh data ditransfer liwat jaringan. Ing In-Memory, pitungan dikirim menyang data - menyang panyimpenan, ing ngendi lagi diproses lan jaringan kurang dimuat.

Thanks kanggo arsitektur sawijining, In-Memory nyepetake akses data kaping pirang-pirang, lan kadhangkala malah pesenan gedhene, luwih cepet. Contone, analis bank pengin ndeleng ing aplikasi analitis laporan babagan utangan sing ditanggepi sajrone taun kepungkur kanthi dinamika saben dina. Proses iki bakal njupuk sawetara menit ing DBMS klasik, nanging karo In-Memory bakal katon meh langsung. Iki amarga pendekatan ngidini sampeyan nyimpen informasi luwih akeh lan disimpen ing RAM "ing tangan". Aplikasi ora perlu njaluk data saka hard drive, kasedhiyan diwatesi dening jaringan lan kacepetan disk.

Apa kemungkinan liyane sing kasedhiya karo In-Memory lan pendekatan apa iki? Vladimir Pligin - engineer ing GridGain. Materi review iki bakal migunani kanggo pangembang backend aplikasi web sing durung kerjo karo In-Memory lan pengin nyoba, utawa kasengsem ing tren modern ing pangembangan piranti lunak lan desain arsitektur.

komentar. Artikel kasebut adhedhasar transkrip laporan Vladimir ing #GetIT Conf. Sadurunge ngenalake awake dhewe, kita ajeg nganakake rapat lan konferensi kanggo pangembang ing Moskow lan St. Petersburg: kita ngrembug babagan tren, masalah pembangunan saiki, masalah lan solusi. Sampeyan ora bisa nganakake konferensi saiki, nanging wektune kanggo nuduhake materi sing migunani saka sing kepungkur.

Sapa sing nggunakake In-Memory lan carane

Ing-Memori paling asring digunakake ing ngendi interaksi pangguna cepet utawa pangolahan data sing akeh dibutuhake.

  • Banks nggunakake In-Memory, contone, kanggo nyuda wektu tundha nalika klien nggunakake aplikasi utawa kanggo njelasno klien sadurunge nerbitake silihan.
  • Fintech nggunakake In-Memory kanggo nambah kinerja layanan lan aplikasi kanggo bank-bank sing outsource Processing data lan analisis. 
  • Perusahaan asuransi: kanggo ngetung risiko, contone, dening nganalisa data customer liwat sawetara taun.
  • Perusahaan logistik. Dheweke ngolah akeh data, contone, kanggo ngetung rute optimal kanggo transportasi barang lan penumpang kanthi ewonan paramΓ¨ter, lan nglacak status kiriman.
  • Toko. Solusi In-Memory mbantu nglayani pelanggan kanthi luwih cepet lan ngolah informasi kanthi volume gedhe: kiriman, invoice, transaksi, ananΓ© ewu barang ing gudang, lan nyiapake laporan analitis.
  • Π’ IoT Ing-Memori ngganti basis data tradisional.
  • Farmasi perusahaan nggunakake Ing-Memori, contone, kanggo Ngurutake liwat kombinasi saka komposisi tamba. 

Aku bakal pitutur marang kowe sawetara conto carane klien kita nggunakake solusi Ing-Memori lan carane sampeyan bisa ngleksanakake dhewe.

Ing-Memori minangka panyimpenan utama

Salah sawijining klien kita yaiku pemasok peralatan ilmiah medis saka AS. Dheweke nggunakake solusi In-Memory minangka panyimpenan data utama. Kabeh data disimpen ing disk, lan subset data sing aktif digunakake disimpen ing RAM. Cara akses panyimpenan standar - GDBC (Generic Database Connector) lan basa query SQL.

Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Secara kolektif iki diarani In-Memory Database (IMDB) utawa Memory-Centric Storage. Kelas solusi iki duwe akeh jeneng, iki ora mung siji-sijine. 

Fitur IMDB:

  • Data sing disimpen ing In-Memory lan diakses liwat SQL padha karo pendekatan liyane. Padha disinkronake, mung cara presentasi, cara ngatasi dheweke beda. Transaksionalitas dianggo antarane data.

  • IMDB luwih cepet tinimbang database relasional amarga luwih cepet njupuk informasi saka RAM tinimbang saka disk. 
  • Algoritma optimasi internal duwe instruksi sing luwih sithik.
  • IMDB cocok kanggo ngatur data, acara lan transaksi ing aplikasi.

IMDB sebagian ndhukung ACID: Atomisitas, Konsistensi, lan Isolasi. Nanging dheweke ora ndhukung "daya tahan" - nalika daya dipateni, kabeh data ilang. Kanggo ngatasi masalah, sampeyan bisa nggunakake snapshots - "snapshot" saka database, analog kanggo serep database ing hard drive, utawa ngrekam transaksi (log) kanggo mulihake data sawise urip maneh.

Kanggo nggawe aplikasi fault-tolerant

Ayo bayangake arsitektur klasik saka aplikasi web sing tahan kesalahan. Kerjane kaya iki: kabeh panjalukan disebarake dening penyeimbang web antarane server. Sistem iki stabil amarga server duplikat saben liyane lan gawe serep yen ana kedadeyan.

Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Balancer ngarahake kabeh panjalukan saka siji sesi kanthi ketat menyang siji server. Iki minangka mekanisme sesi kelet: saben sesi digandhengake karo server sing disimpen lan diproses sacara lokal. 

Apa sing kedadeyan nalika salah sawijining server gagal?

Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Layanan ora bakal kena pengaruh amarga arsitektur wis diduplikasi. Nanging kita bakal kelangan subset saka sesi server mati. Lan ing wektu sing padha, pangguna sing diikat karo sesi kasebut. Contone, klien nggawe pesenan lan dumadakan mbuwang dheweke metu saka kantor. Dheweke bakal ora seneng nalika mlebu maneh lan nemokake kabeh kudu ditindakake maneh.

Aplikasi web dibutuhake kanggo ndhukung akeh pangguna lan ora alon-alon supaya bisa kerja kanthi nyaman. Nanging yen ora gelem, karo saben panjalukan sakteruse wektu iku njupuk kanggo komunikasi karo nyimpen sesi bakal nambah. Iki nambah latensi rata-rata kanggo pangguna liyane. Nanging dheweke ora pengin ngenteni luwih suwe tinimbang biasane.

Masalah iki bisa ditanggulangi kaya klien liyane, panyedhiya PASS gedhe saka AS. Iki nggunakake In-Memory kanggo nglumpukake sesi web. Kanggo nindakake iki, ora disimpen sacara lokal, nanging ing tengah - ing kluster In-Memory. Ing kasus iki, sesi kasedhiya luwih cepet amarga wis ana ing RAM.

Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Nalika server crash, balancer ngirim panjalukan saka server tabrakan menyang server liyane, kaya ing arsitektur klasik. Nanging ana prabΓ©dan penting: sesi disimpen ing kluster In-Memory lan server duwe akses menyang sesi server sing tiba.

Arsitektur iki nambah toleransi kesalahan kabeh sistem. Kajaba iku, iku bisa kanggo ninggalake mekanisme sesi kelet kabeh.

Hybrid Transactional Analytical Processing (HTAP)

Biasane, sistem transaksional lan analitis dipisahake. Nalika dipisahake, dhasar utama bakal dimuat. Kanggo pangolahan analitik, data disalin menyang replika supaya pangolahan analitis ora ngganggu proses transaksional. Nanging nyalin dumadi kanthi lag-ora mungkin kanggo niru tanpa lag. Yen kita nindakake iki synchronously, iku uga bakal alon mudhun basa utama lan kita ora bakal entuk winnings sembarang.

Ing HTAP, kabeh bisa beda-beda - nyimpen data sing padha digunakake kanggo mbukak transaksi saka aplikasi, lan kanggo pitakon analitis sing bisa njupuk wektu suwe kanggo ngrampungake. Nalika data ing RAM, pitakonan analitis kaleksanan luwih cepet, lan server karo database kurang dimuat (rata-rata).

Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Pendekatan hibrida ngrusak tembok antarane pangolahan transaksi lan analytics. Yen kita nindakake analytics ing panyimpenan sing padha, pitakon analitis diluncurake ing data saka RAM. Dheweke luwih akurat, luwih bisa diinterpretasikake lan nyukupi.

Integrasi solusi Ing-Memori

Cara (relatif) prasaja - ngembangake kabeh saka awal. Kita nyimpen data ing disk lan nyimpen data panas ing memori. Iki mbantu urip maneh server utawa mati.

Ana rong skenario utama sing digunakake ing kene nalika data disimpen ing disk. Kaping pisanan, kita pengin slamet saka kacilakan utawa reboot reguler saka kluster utawa bagean - kita pengin nggunakake minangka database prasaja. Ing skenario kapindho, nalika ana kakehan data, sawetara iku ing memori.

Yen ora bisa kanggo mbangun kabeh saka ngeruk, iku bisa kanggo nggabungake Ing-Memori menyang wis arsitektur ana. Nanging ora kabeh solusi In-Memory cocok kanggo iki. Ana telung syarat wajib. Solusi In-Memory kudu ndhukung:

  • cara standar kanggo nyambung menyang database sing bakal ana ing ngisor (contone, MySQL);
  • basa pitakon standar, supaya ora nulis ulang lan ngganti logika interaksi karo panyimpenan;
  • transactional - ngreksa semantik interaksi.

Yen kabeh telung syarat kasebut kapenuhan, mula integrasi bisa ditindakake. We nyeleh ing-Memori Data Grid antarane aplikasi lan database. Saiki panjalukan nulis bakal didelegasikan menyang basis data dhasar, lan panjalukan sing diwaca bakal didelegasikan menyang basis data dhasar yen data ora ana ing cache.

Arsitektur ing memori kanggo layanan web: dhasar lan prinsip teknologi

Yen akses cepet menyang data lan pangolahan penting kanggo sampeyan, contone, kanggo analytics bisnis, sampeyan bisa mikir babagan ngleksanakake In-Memory. Lan kanggo implementasine, sampeyan bisa nggunakake loro cara nalika ngrancang arsitektur anyar.

Source: www.habr.com

Add a comment