DBMS iliyosambazwa kwa Biashara

Nadharia ya CAP ndio msingi wa nadharia ya mifumo iliyosambazwa. Bila shaka, utata unaoizunguka haupungui: ufafanuzi ndani yake si wa kisheria, na hakuna uthibitisho mkali... Hata hivyo, tukisimama kwa uthabiti kwenye misimamo ya akili ya kawaida ya kila siku™, tunaelewa kwa intuitively kwamba nadharia hiyo ni ya kweli.

DBMS iliyosambazwa kwa Biashara

Kitu pekee ambacho sio dhahiri ni maana ya barua "P". Kikundi kinapogawanywa, huamua kama kutojibu hadi akidi ifikiwe, au kurudisha data inayopatikana. Kulingana na matokeo ya chaguo hili, mfumo umeainishwa kama CP au AP. Cassandra, kwa mfano, inaweza kuishi kwa njia yoyote, kutegemea hata mipangilio ya nguzo, lakini kwa vigezo vya kila ombi maalum. Lakini ikiwa mfumo sio "P" na unagawanyika, basi ni nini?

Jibu la swali hili halijatarajiwa: nguzo ya CA haiwezi kugawanyika.
Hii ni nguzo ya aina gani ambayo haiwezi kugawanyika?

Sifa ya lazima ya kundi kama hilo ni mfumo wa uhifadhi wa data ulioshirikiwa. Katika idadi kubwa ya matukio, hii inamaanisha kuunganisha juu ya SAN, ambayo inazuia matumizi ya ufumbuzi wa CA kwa makampuni makubwa yenye uwezo wa kudumisha miundombinu ya SAN. Ili seva nyingi zifanye kazi na data sawa, mfumo wa faili uliojumuishwa unahitajika. Mifumo hiyo ya faili inapatikana katika mifumo ya HPE (CFS), Veritas (VxCFS) na IBM (GPFS).

Oracle RAC

Chaguo la Kundi la Maombi Halisi lilionekana kwa mara ya kwanza mnamo 2001 na kutolewa kwa Oracle 9i. Katika kundi kama hilo, visa vingi vya seva hufanya kazi na hifadhidata sawa.
Oracle inaweza kufanya kazi na mfumo wa faili uliojumuishwa na suluhisho lake - ASM, Usimamizi wa Uhifadhi wa Kiotomatiki.

Kila nakala huweka jarida lake. Shughuli hiyo inatekelezwa na kufanywa na tukio moja. Ikiwa mfano hautafaulu, moja ya nodi za nguzo zilizobaki (matukio) husoma logi yake na kurejesha data iliyopotea - na hivyo kuhakikisha kupatikana.

Matukio yote yanahifadhi kashe yao wenyewe, na kurasa sawa (vitalu) zinaweza kuwa katika kache za matukio mengi kwa wakati mmoja. Kwa kuongezea, ikiwa mfano mmoja unahitaji ukurasa na uko kwenye kashe ya mfano mwingine, inaweza kuipata kutoka kwa jirani yake kwa kutumia utaratibu wa uchanganyaji wa kashe badala ya kusoma kutoka kwa diski.

DBMS iliyosambazwa kwa Biashara

Lakini ni nini hufanyika ikiwa moja ya matukio yanahitaji kubadilisha data?

Upekee wa Oracle ni kwamba haina huduma ya kufunga iliyojitolea: ikiwa seva inataka kufunga safu, basi rekodi ya kufuli imewekwa moja kwa moja kwenye ukurasa wa kumbukumbu ambapo safu iliyofungwa iko. Shukrani kwa mbinu hii, Oracle ndiye bingwa wa utendaji kati ya hifadhidata za monolithic: huduma ya kufunga haiwi kizuizi kamwe. Lakini katika usanidi wa nguzo, usanifu kama huo unaweza kusababisha trafiki kubwa ya mtandao na kufuli.

Rekodi inapofungwa, mfano huarifu matukio mengine yote kwamba ukurasa unaohifadhi rekodi hiyo una umiliki wa kipekee. Ikiwa mfano mwingine unahitaji kubadilisha rekodi kwenye ukurasa huo huo, ni lazima kusubiri mpaka mabadiliko kwenye ukurasa yamefanywa, yaani, habari ya mabadiliko imeandikwa kwenye jarida kwenye diski (na shughuli inaweza kuendelea). Inaweza pia kutokea kwamba ukurasa utabadilishwa kwa mlolongo na nakala kadhaa, na kisha wakati wa kuandika ukurasa kwenye diski itabidi ujue ni nani anayehifadhi toleo la sasa la ukurasa huu.

Kusasisha kurasa zile zile mara kwa mara kwenye nodi tofauti za RAC husababisha utendaji wa hifadhidata kushuka sana, hadi kufikia hatua ambapo utendaji wa nguzo unaweza kuwa mdogo kuliko ule wa mfano mmoja.

Matumizi sahihi ya Oracle RAC ni kugawanya data kimwili (kwa mfano, kwa kutumia utaratibu wa jedwali lililogawanywa) na kufikia kila seti ya kizigeu kupitia nodi maalum. Kusudi kuu la RAC halikuwa kuongeza usawa, lakini kuhakikisha uvumilivu wa makosa.

Ikiwa nodi itaacha kujibu mapigo ya moyo, basi nodi iliyoigundua kwanza huanza utaratibu wa kupiga kura kwenye diski. Ikiwa nodi inayokosekana haijabainishwa hapa, basi moja ya nodi inachukua jukumu la urejeshaji data:

  • "hufungia" kurasa zote zilizokuwa kwenye kashe ya nodi iliyokosekana;
  • husoma kumbukumbu (Rudia) za nodi iliyokosekana na kutumia tena mabadiliko yaliyorekodiwa katika kumbukumbu hizi, wakati huo huo kuangalia ikiwa nodi zingine zina matoleo ya hivi majuzi zaidi ya kurasa zinazobadilishwa;
  • inarejesha shughuli zinazosubiri.

Ili kurahisisha ubadilishaji kati ya nodi, Oracle ina dhana ya huduma - mfano wa kawaida. Mfano unaweza kutumika huduma nyingi, na huduma inaweza kusonga kati ya nodi. Mfano wa programu inayohudumia sehemu fulani ya hifadhidata (kwa mfano, kikundi cha wateja) hufanya kazi na huduma moja, na huduma inayohusika na sehemu hii ya hifadhidata huhamia nodi nyingine wakati nodi itashindwa.

Mifumo Safi ya Data ya IBM kwa Miamala

Suluhisho la nguzo la DBMS lilionekana kwenye jalada la Blue Giant mnamo 2009. Kiitikadi, ni mrithi wa nguzo ya Parallel Sysplex, iliyojengwa kwenye vifaa vya "kawaida". Mnamo mwaka wa 2009, DB2 pureScale ilitolewa kama kifurushi cha programu, na mwaka wa 2012, IBM ilitoa kifaa kinachoitwa Mifumo Safi ya Data kwa Miamala. Haipaswi kuchanganyikiwa na Mifumo Safi ya Data ya Uchanganuzi, ambayo si chochote zaidi ya Netezza iliyopewa jina jipya.

Kwa mtazamo wa kwanza, usanifu wa pureScale ni sawa na Oracle RAC: kwa njia hiyo hiyo, nodes kadhaa zimeunganishwa kwenye mfumo wa kawaida wa kuhifadhi data, na kila node inaendesha mfano wake wa DBMS na maeneo yake ya kumbukumbu na magogo ya shughuli. Lakini, tofauti na Oracle, DB2 ina huduma ya kufunga iliyojitolea inayowakilishwa na seti ya michakato ya db2LLM*. Katika usanidi wa nguzo, huduma hii imewekwa kwenye nodi tofauti, ambayo inaitwa kituo cha kuunganisha (CF) katika Parallel Sysplex, na PowerHA katika Data Safi.

PowerHA hutoa huduma zifuatazo:

  • meneja wa kufuli;
  • kashe ya kimataifa ya buffer;
  • eneo la mawasiliano ya mwingiliano.

Ili kuhamisha data kutoka PowerHA hadi nodi za hifadhidata na nyuma, ufikiaji wa kumbukumbu ya mbali hutumiwa, kwa hivyo muunganisho wa nguzo lazima uunge mkono itifaki ya RDMA. PureScale inaweza kutumia Infiniband na RDMA kupitia Ethaneti.

DBMS iliyosambazwa kwa Biashara

Ikiwa node inahitaji ukurasa, na ukurasa huu hauko kwenye cache, basi node inaomba ukurasa kwenye cache ya kimataifa, na tu ikiwa haipo, inaisoma kutoka kwa diski. Tofauti na Oracle, ombi huenda tu kwa PowerHA, na sio kwa nodi za jirani.

Ikiwa mfano utabadilisha safu, itaifunga kwa hali ya kipekee, na ukurasa ambao safu iko katika hali ya pamoja. Kufuli zote zimesajiliwa katika kidhibiti cha kufuli cha kimataifa. Shughuli inapokamilika, nodi hutuma ujumbe kwa msimamizi wa kufuli, ambayo inakili ukurasa uliorekebishwa kwenye kashe ya kimataifa, inatoa kufuli, na kubatilisha ukurasa uliorekebishwa katika kache za nodi nyingine.

Ikiwa ukurasa ambao safu iliyorekebishwa iko tayari imefungwa, basi msimamizi wa kufuli atasoma ukurasa uliorekebishwa kutoka kwa kumbukumbu ya nodi iliyofanya mabadiliko, kutolewa kufuli, kubatilisha ukurasa uliobadilishwa kwenye kashe za nodi zingine, na. toa kifuli cha ukurasa kwa nodi iliyoiomba.

"Mchafu", yaani, kubadilishwa, kurasa zinaweza kuandikwa kwa diski zote mbili kutoka kwa nodi ya kawaida na kutoka kwa PowerHA (castout).

Ikiwa moja ya nodi pureScale itashindwa, urejeshaji ni mdogo kwa shughuli zile tu ambazo hazijakamilika wakati wa kutofaulu: kurasa zilizorekebishwa na nodi hiyo katika miamala iliyokamilika ziko kwenye akiba ya kimataifa kwenye PowerHA. Nodi huanza tena katika usanidi uliopunguzwa kwenye mojawapo ya seva kwenye nguzo, inarudisha nyuma shughuli zinazosubiri na kutoa kufuli.

PowerHA huendesha kwenye seva mbili na nodi kuu huiga hali yake kwa usawazishaji. Ikiwa nodi ya msingi ya PowerHA itashindwa, nguzo inaendelea kufanya kazi na nodi ya chelezo.
Bila shaka, ikiwa unapata data iliyowekwa kupitia nodi moja, utendaji wa jumla wa nguzo utakuwa wa juu zaidi. PureScale inaweza hata kugundua kuwa eneo fulani la data linachakatwa na nodi moja, na kisha kufuli zote zinazohusiana na eneo hilo zitachakatwa ndani na nodi bila kuwasiliana na PowerHA. Lakini mara tu programu inapojaribu kufikia data hii kupitia nodi nyingine, uchakataji wa kufuli wa kati utaanza tena.

Majaribio ya ndani ya IBM juu ya mzigo wa kazi wa 90% kusoma na 10% kuandika, ambayo ni sawa na mzigo wa kazi wa uzalishaji wa ulimwengu halisi, huonyesha karibu mstari wa kuongeza hadi nodi 128. Masharti ya mtihani, kwa bahati mbaya, hayajafichuliwa.

HPE NonStop SQL

Kwingineko ya Biashara ya Hewlett-Packard pia ina jukwaa lake linalopatikana sana. Hili ni jukwaa la NonStop, lililotolewa sokoni mwaka wa 1976 na Tandem Computers. Mnamo 1997, kampuni hiyo ilinunuliwa na Compaq, ambayo nayo iliunganishwa na Hewlett-Packard mnamo 2002.

NonStop hutumiwa kuunda programu muhimu - kwa mfano, HLR au usindikaji wa kadi ya benki. Jukwaa hutolewa kwa namna ya programu na vifaa vya vifaa (kifaa), ambacho kinajumuisha nodes za kompyuta, mfumo wa kuhifadhi data na vifaa vya mawasiliano. Mtandao wa ServerNet (katika mifumo ya kisasa - Infiniband) hutumikia wote kwa kubadilishana kati ya nodes na kwa upatikanaji wa mfumo wa kuhifadhi data.

Matoleo ya awali ya mfumo yalitumia wasindikaji wa wamiliki ambao walisawazishwa na kila mmoja: shughuli zote zilifanyika kwa usawa na wasindikaji kadhaa, na mara tu mmoja wa wasindikaji alifanya makosa, ilizimwa, na ya pili iliendelea kufanya kazi. Baadaye, mfumo ulibadilishwa kuwa wasindikaji wa kawaida (MPS ya kwanza, kisha Itanium na hatimaye x86), na mifumo mingine ilianza kutumika kwa maingiliano:

  • ujumbe: kila mchakato wa mfumo una pacha "kivuli", ambayo mchakato wa kazi mara kwa mara hutuma ujumbe kuhusu hali yake; ikiwa mchakato kuu unashindwa, mchakato wa kivuli huanza kufanya kazi kutoka wakati uliowekwa na ujumbe wa mwisho;
  • upigaji kura: mfumo wa kuhifadhi una sehemu maalum ya maunzi ambayo inakubali ufikiaji mwingi unaofanana na kutekelezwa ikiwa tu ufikiaji unalingana; Badala ya maingiliano ya kimwili, wasindikaji hufanya kazi kwa usawa, na matokeo ya kazi yao yanalinganishwa tu kwa wakati wa I / O.

Tangu 1987, DBMS ya uhusiano imekuwa ikifanya kazi kwenye jukwaa la NonStop - kwanza SQL/MP, na baadaye SQL/MX.

Hifadhidata nzima imegawanywa katika sehemu, na kila sehemu inawajibika kwa mchakato wake wa Kidhibiti cha Ufikiaji Data (DAM). Inatoa njia za kurekodi, kuhifadhi na kufunga data. Usindikaji wa data unafanywa na Michakato ya Seva ya Mtekelezaji inayoendeshwa kwenye nodi sawa na wasimamizi wa data husika. Kipanga ratiba cha SQL/MX hugawanya kazi kati ya watekelezaji na kujumlisha matokeo. Inapohitajika kufanya mabadiliko yaliyokubaliwa, itifaki ya ahadi ya awamu mbili iliyotolewa na maktaba ya TMF (Transaction Management Facility) inatumiwa.

DBMS iliyosambazwa kwa Biashara

NonStop SQL inaweza kutanguliza michakato ili hoja ndefu za uchanganuzi zisiingiliane na utekelezaji wa muamala. Walakini, kusudi lake ni usindikaji wa shughuli fupi, na sio uchanganuzi. Msanidi anahakikisha upatikanaji wa kikundi cha NonStop katika kiwango cha "tisa" tano, yaani, muda wa kupumzika ni dakika 5 tu kwa mwaka.

SAP-HANA

Toleo la kwanza thabiti la HANA DBMS (1.0) lilifanyika mnamo Novemba 2010, na kifurushi cha SAP ERP kilibadilishwa hadi HANA mnamo Mei 2013. Jukwaa linatokana na teknolojia zilizonunuliwa: Injini ya Utafutaji ya TREX (tafuta katika hifadhi ya safu), P*TIME DBMS na MAX DB.

Neno "HANA" lenyewe ni kifupi, Kifaa cha Uchanganuzi cha utendaji wa juu. DBMS hii hutolewa kwa njia ya msimbo ambayo inaweza kutumika kwenye seva zozote za x86, hata hivyo, usakinishaji wa viwandani unaruhusiwa tu kwenye vifaa vilivyoidhinishwa. Suluhisho zinapatikana kutoka HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC. Mipangilio mingine ya Lenovo hata kuruhusu uendeshaji bila SAN - jukumu la mfumo wa uhifadhi wa kawaida unachezwa na nguzo ya GPFS kwenye diski za ndani.

Tofauti na majukwaa yaliyoorodheshwa hapo juu, HANA ni DBMS ya kumbukumbu, yaani, picha ya msingi ya data huhifadhiwa kwenye RAM, na ni kumbukumbu tu na vijipicha vya mara kwa mara huandikwa kwenye diski kwa ajili ya uokoaji iwapo kutatokea maafa.

DBMS iliyosambazwa kwa Biashara

Kila nodi ya nguzo ya HANA inawajibika kwa sehemu yake ya data, na ramani ya data huhifadhiwa katika sehemu maalum - Seva ya Jina, iliyoko kwenye nodi ya mratibu. Data haijarudiwa kati ya nodi. Maelezo ya kufunga pia huhifadhiwa kwenye kila nodi, lakini mfumo una kigunduzi cha kufuli cha kimataifa.

Wakati mteja wa HANA anapounganishwa kwenye kundi, hupakua topolojia yake na kisha anaweza kufikia nodi yoyote moja kwa moja, kulingana na data anayohitaji. Ikiwa shughuli itaathiri data ya nodi moja, basi inaweza kutekelezwa ndani ya nchi na nodi hiyo, lakini ikiwa data ya nodi kadhaa inabadilika, nodi ya kuanzisha inawasiliana na nodi ya mratibu, ambayo inafungua na kuratibu shughuli iliyosambazwa, kuifanya kwa kutumia itifaki ya ahadi ya awamu mbili iliyoboreshwa.

Nodi ya mratibu inarudiwa, kwa hivyo ikiwa mratibu atashindwa, nodi ya chelezo inachukua nafasi mara moja. Lakini ikiwa nodi iliyo na data inashindwa, basi njia pekee ya kufikia data yake ni kuanzisha upya nodi. Kama sheria, nguzo za HANA hudumisha seva ya ziada ili kuanzisha upya nodi iliyopotea juu yake haraka iwezekanavyo.

Chanzo: mapenzi.com

Kuongeza maoni