Ji bo Enterprise DBMS belav kirin

Teorema CAP bingeha teoriya pergalên belavbûyî ye. Bê guman, nakokî li dora wê naqede: pênaseyên di wê de ne kanonîkî ne, û delîlek hişk tune... Lêbelê, bi domdarî li ser helwestên aqilê hevbeş ™ rojane radiwestin, em bi têgihiştinê fam dikin ku teorema rast e.

Ji bo Enterprise DBMS belav kirin

Tiştê ku ne diyar e, wateya herfa "P" ye. Dema ku kom tê dabeş kirin, ew biryar dide ku heya ku quorumek çênebe bersivê nede, an daneyên ku hene paşde bide. Bi encamên vê hilbijartinê ve girêdayî, pergal wekî CP an AP-ê tête dabeş kirin. Mînakî, Cassandra dikare bi her awayî tevbigere, ne li gorî mîhengên komê, lê bi pîvanên her daxwazek taybetî ve girêdayî ye. Lê heger sîstem ne “P” be û perçe bibe, wê demê çi?

Bersiva vê pirsê hinekî nediyar e: komek CA nikare parçe bibe.
Ev çi celeb kom e ku nikare parçe bibe?

Taybetmendiyek domdar a komek wusa pergalek hilanîna daneya hevpar e. Di pirraniya bûyeran de, ev tê vê wateyê ku bi SAN ve girêdayî ye, ku karanîna çareseriyên CA-yê ji pargîdaniyên mezin re ku dikarin binesaziyek SAN biparêzin sînordar dike. Ji bo ku gelek server bi heman daneyê re bixebitin, pergala pelê ya komkirî hewce ye. Pergalên pelan ên weha di portfoliyoyên HPE (CFS), Veritas (VxCFS) û IBM (GPFS) de hene.

Oracle RAC

Vebijêrk Cluster Application Real yekem car di 2001 de bi serbestberdana Oracle 9i re xuya bû. Di komikek wusa de, çend mînakên serverê bi heman databasê re dixebitin.
Oracle dikare hem bi pergalek pelê ya komkirî û hem jî bi çareseriya xwe re bixebite - ASM, Rêveberiya Xweseriya Xweser.

Her nusxeyek kovara xwe digire. Danûstandin ji hêla yek nimûne ve tête kirin û pêk tê. Ger mînakek têk biçe, yek ji girêkên komê yên sax (nimûne) têketina xwe dixwîne û daneyên winda vedigerîne - bi vî rengî hebûna peyda dike.

Hemî mînak cacheya xwe diparêzin, û heman rûpel (blok) dikarin di heman demê de di kaşên pirjimaran de bin. Wekî din, heke mînakek hewceyê rûpelek be û ew di cache ya mînakek din de be, ew dikare wê ji cîranê xwe bigire ku li şûna xwendina ji dîskê bi mekanîzmaya fusion cache bikar bîne.

Ji bo Enterprise DBMS belav kirin

Lê heke yek ji mînakan hewce bike ku daneyan biguhezîne çi dibe?

Taybetmendiya Oracle ev e ku ew ne xwedan karûbarek kilîtkirinê ya diyarkirî ye: heke server bixwaze rêzek kilît bike, wê hingê tomara qefilandinê rasterast li ser rûpela bîranînê ya ku rêza girtî lê ye tê danîn. Bi saya vê nêzîkatiyê, Oracle şampiyonê performansê ye di nav databasên monolîtîk de: karûbarê kilîtkirinê qet nabê xelekek. Lê di veavakirinek komê de, mîmariyek wusa dikare bibe sedema seyrûsefera torê ya tund û xitimandin.

Dema ku tomarek were kilîtkirin, mînakek hemî mînakên din agahdar dike ku rûpela ku wê tomarê hilîne xwedan cîhek taybetî ye. Ger mînakek din hewce bike ku tomarek li ser heman rûpelê biguhezîne, divê ew li bendê bimîne heya ku guheztinên rûpelê pêk werin, ango agahdariya guhartinê li kovarek li ser dîskê were nivîsandin (û danûstandin dikare berdewam bike). Di heman demê de dibe ku rûpelek ji hêla çend kopiyan ve bi rêz were guheztin, û dûv re dema ku rûpelê li ser dîskê dinivîse hûn ê fêr bibin ka kî guhertoya heyî ya vê rûpelê hilîne.

Bi rasthatinî nûvekirina heman rûpelan di nav girêkên RAC yên cihêreng de dibe sedem ku performansa databasê bi rengek berbiçav dakeve, heya wê astê ku performansa komê dikare ji ya yek mînakek kêmtir be.

Bikaranîna rast a Oracle RAC ev e ku bi fizîkî daneyan dabeş bike (mînakî, karanîna mekanîzmayek tabloya dabeşkirî) û gihîştina her komek dabeşan bi navgînek veqetandî. Armanca sereke ya RAC ne pîvana horizontî bû, lê misogerkirina tolerasyona xeletiyê bû.

Ger girêkek dev ji bersivdana lêdana dil berde, wê gavê girêka ku ew tespît kiriye yekem prosedurek dengdanê li ser dîskê dest pê dike. Ger girêka wenda li vir neyê destnîşan kirin, wê hingê yek ji girêk berpirsiyariya vegerandina daneyê digire ser xwe:

  • Hemî rûpelên ku di cache ya girêka wenda de bûn "cemidîne";
  • têketinên (ji nû vekirina) girêka wenda dixwîne û guheztinên ku di van têketinê de hatine tomar kirin ji nû ve bicîh tîne, di heman demê de kontrol dike ka girêkên din guhertoyên nû yên rûpelên ku têne guhertin hene yan na;
  • danûstendinên li bendê vedigere.

Ji bo hêsankirina veguheztina di navbera girêkan de, Oracle têgeha karûbarek heye - mînakek virtual. Mînakek dikare gelek karûbaran bike, û karûbarek dikare di navbera girêkan de bimeşe. Mînaka serîlêdanê ku ji beşek diyarkirî ya databasê re xizmet dike (mînak, komek xerîdar) bi karûbarek re dixebite, û karûbarê ku berpirsiyarê vê beşê databasê ye dema ku girêk têk diçe, diçe nodek din.

Pergalên Daneyên Paqij ên IBM ji bo Danûstendinan

Di sala 2009-an de çareseriyek komê ya ji bo DBMS di portfolioya Blue Giant de xuya bû. Ji hêla îdeolojîk ve, ew serketiya koma Parallel Sysplex e, ku li ser alavên "bi rêkûpêk" hatî çêkirin. Di 2009 de, DB2 pureScale wekî pakêtek nermalavê hate berdan, û di sala 2012 de, IBM amûrek bi navê Pergalên Daneyên Paqij ji bo Karûbaran pêşkêş kir. Pêdivî ye ku ew bi Pergalên Daneyên Paqij ji bo Analytics re neyê tevlihev kirin, ku ji Netezza-ya binavkirî pêve ne tiştek din e.

Di nihêrîna pêşîn de, mîmariya pureScale dişibihe Oracle RAC: Bi heman rengî, çend girêk bi pergalek hilanîna daneya hevpar ve têne girêdan, û her nodek mînaka xweya DBMS-ê bi deverên bîranîn û têketinên xwe yên danûstendinê re dimeşîne. Lê, berevajî Oracle, DB2 xwedan karûbarek kilîtkirinê ye ku ji hêla komek pêvajoyên db2LLM * ve tê temsîl kirin. Di veavakirinek komê de, ev karûbar li ser girêkek veqetandî tê danîn, ku jê re sazûmana hevgirtinê (CF) li Sysplex Parallel, û PowerHA di Daneyên Paqij de tê gotin.

PowerHA karûbarên jêrîn peyda dike:

  • gerînendeyê lock;
  • cache tampon gerdûnî;
  • qada danûstendinên navpêvajoyê.

Ji bo veguheztina daneyan ji PowerHA-yê berbi girêkên databasê û paş ve, gihîştina bîranîna dûr tê bikar anîn, ji ber vê yekê pevgirêdana komê divê protokola RDMA piştgirî bike. PureScale dikare hem Infiniband û hem jî RDMA li ser Ethernet bikar bîne.

Ji bo Enterprise DBMS belav kirin

Ger girêkek hewceyê rûpelek be, û ev rûpel ne di cache de be, wê gavê girêk rûpelê di cache-ya gerdûnî de daxwaz dike, û tenê heke ew ne li wir be, wê ji dîskê dixwîne. Berevajî Oracle, daxwaz tenê diçe PowerHA-yê, û ne ji girêkên cîran re.

Ger mînakek rêzek biguhezîne, ew wê di moda taybetî de, û rûpela ku rêz lê ye di moda parvekirî de digire. Hemî qefle di rêvebirê kilîtkirina gerdûnî de têne tomar kirin. Dema ku danûstendin biqede, girêk ji gerînendeyê qefletê re peyamek dişîne, ku ew rûpela hatî guheztin li cache-ya gerdûnî kopî dike, qeflan berdide, û rûpela hatî guherandin di kaşên girêkên din de betal dike.

Ger rûpela ku rêza guhertî tê de ye jixwe kilîtkirî be, wê demê rêvebirê qeflê dê rûpela guhertî ji bîranîna girêka ku guhêrbar kiriye bixwîne, qeflê berde, rûpela hatî guherandin di kaşên girêkên din de betal bike, û kilîtkirina rûpelê bide girêka ku ew daxwaz kiriye.

"Pîsî", ango, hatî guheztin, rûpel dikarin hem ji girêkek birêkûpêk û hem jî ji PowerHA (castout) li ser dîskê werin nivîsandin.

Ger yek ji girêkên pureScale têk biçe, vegerandin tenê bi wan danûstendinên ku hîna di dema têkçûnê de nehatine qedandin tê sînordar kirin: Rûpelên ku ji hêla wê girêkê ve di danûstendinên qedandî de hatine guheztin di cache gerdûnî ya PowerHA de ne. Girêk li ser yek ji pêşkêşkerên di komê de bi veavakirinek kêmkirî ji nû ve dest pê dike, danûstendinên li bendê vedigere û qefleyan vedike.

PowerHA li ser du serveran dimeşe û girêka master bi hevdemî rewşa xwe dubare dike. Ger girêka PowerHA ya bingehîn têk biçe, kom bi girêka hilanînê re xebata xwe didomîne.
Bê guman, heke hûn bi yek girêkek daneyê bigihîjin, performansa giştî ya komê dê bilindtir be. PureScale tewra dikare ferq bike ku deverek daneyê ji hêla yek nodê ve tê pêvajo kirin, û dûv re hemî qefleyên ku bi wê deverê ve girêdayî ne dê ji hêla nodê ve bêyî danûstendina bi PowerHA-yê re li herêmî bêne hilberandin. Lê gava ku serîlêdan hewl dide ku bi rêgezek din ve bigihîje van daneyan, dê pêvajoya kilîtkirina navendî ji nû ve dest pê bike.

Testên hundurîn ên IBM-ê li ser bargiraniyek ji% 90 xwendin û 10% nivîsandin, ku pir dişibihe barkêşên hilberîna cîhana rastîn, hema hema pîvana xêzik heya 128 girêkan nîşan dide. Şert û mercên testê, mixabin, nayên eşkere kirin.

HPE NonStop SQL

Portfoloya Hewlett-Packard Enterprise di heman demê de platforma xweya pir berdest jî heye. Ev platforma NonStop e, ku di sala 1976-an de ji hêla Tandem Computers ve derketiye bazarê. Di 1997-an de, pargîdanî ji hêla Compaq ve hate kirîn, ku di 2002-an de bi Hewlett-Packard re bû yek.

NonStop ji bo avakirina serîlêdanên krîtîk tê bikar anîn - mînakî, pêvajoya HLR an qerta bankê. Platform di forma kompleksek nermalava û hardware (alavek) de tê radest kirin, ku tê de girêkên hesabkirinê, pergalek hilanîna daneyê û alavên ragihandinê vedihewîne. Tora ServerNet (di pergalên nûjen de - Infiniband) hem ji bo danûstendina di navbera nokan de hem jî ji bo gihîştina pergala hilanînê ya daneyê kar dike.

Guhertoyên destpêkê yên pergalê pêvajoyên xwedan ên ku bi hevûdu re hatine hevdem kirin bikar anîn: hemî operasyon ji hêla çend pêvajoyan ve bi hevdemî têne kirin, û gava ku yek ji pêvajoyê xeletiyek çêkir, ew hate girtin, û ya duyemîn xebata xwe domand. Dûv re, pergal veguherî pêvajoyên kevneşopî (pêşîn MIPS, dûv re Itanium û di dawiyê de x86), û mekanîzmayên din ji bo hevdemkirinê dest pê kirin:

  • peyam: her pêvajoyek pergalê xwedan duçikek "siya" ye, ku pêvajoyek çalak bi awayekî periyodîk di derbarê rewşa xwe de peyaman dişîne; heke pêvajoya sereke têk biçe, pêvajoya siyê ji dema ku ji hêla peyama paşîn ve hatî destnîşankirin dest pê dike;
  • dengdan: Pergala hilanînê xwedan hêmanek hardware ya taybetî ye ku gelek gihîştinên yeksan qebûl dike û wan bi tenê heke gihîştinan li hev bikin bi cih tîne; Li şûna hevdemkirina laşî, pêvajoker bi asînkronî dixebitin, û encamên xebata wan tenê di kêliyên I/O de têne berhev kirin.

Ji sala 1987-an vir ve, DBMS-yek pêwendiyê li ser platforma NonStop-ê yekem SQL/MP, û paşê SQL/MX-ê dimeşîne.

Tevahiya databas di beşan de tê dabeş kirin, û her beş ji pêvajoya Gerînendeyê Gihîştina Daneyên xwe (DAM) berpirsiyar e. Ew mekanîzmayên tomarkirina daneyê, caching, û qefilandinê peyda dike. Pêvajoya daneyê ji hêla Pêvajoyên Pêşkêşkara Pêşkêşkar ve tê meşandin ku li ser heman girêkan wekî rêveberên daneya têkildar têne xebitandin. Plansazkera SQL/MX peywiran di nav îcrakar de dabeş dike û encaman berhev dike. Dema ku pêdivî ye ku guhartinên lihevhatî bêne çêkirin, protokola kombûnê ya du-qonaxê ku ji hêla pirtûkxaneya TMF (Tasîleya Rêvebiriya Danûstandinê) ve hatî peyda kirin tê bikar anîn.

Ji bo Enterprise DBMS belav kirin

NonStop SQL dikare pêvajoyan pêşanî bigre da ku pirsên analîtîk ên dirêj di pêkanîna danûstendinê de mudaxele nekin. Lêbelê, armanca wê bi rastî pêvajokirina danûstendinên kurt e, û ne analîtîk. Pêşdebir hebûna komê NonStop di asta pênc "neh" de garantî dike, ango dema domandinê salê tenê 5 hûrdem e.

SAP-HANA

Yekem serbestberdana aram a HANA DBMS (1.0) di Mijdara 2010-an de pêk hat, û pakêta SAP ERP di Gulana 2013-an de li HANA-yê veguherî. Platform li ser teknolojiyên kirî bingeh e: Motora Lêgerînê ya TREX (lêgerîna di hilanîna stûnê de), P * TIME DBMS û MAX DB.

Peyva "HANA" bi xwe kurtenivîsek e, Amûra Analîtîk a Performansa Bilind. Ev DBMS di forma kodê de tête peyda kirin ku dikare li ser her serverek x86 bixebite, lêbelê, sazkirinên pîşesaziyê tenê li ser alavên pejirandî têne destûr kirin. Çareseriyên ji HP, Lenovo, Cisco, Dell, Fujitsu, Hitachi, NEC hene. Hin veavakirinên Lenovo tewra destûr didin xebitandinê bêyî SAN - rola pergala hilanînê ya hevpar ji hêla komek GPFS ve li ser dîskên herêmî tê lîstin.

Berevajî platformên ku li jor hatine destnîşan kirin, HANA DBMS-ya bîranînê ye, ango wêneya daneya seretayî di RAM-ê de tê hilanîn, û tenê têketin û dîmenên periyodîk di dîskê de têne nivîsandin ku di bûyera karesatekê de were hilanîn.

Ji bo Enterprise DBMS belav kirin

Her girêka komê ya HANA ji beşa xwe ya daneyê berpirsiyar e, û nexşeya daneyê di pêkhateyek taybetî de - Name Server, ku li ser girêka koordînatorê ye, tê hilanîn. Daneyên di navbera girêkan de nayên dubare kirin. Agahdariya kilîtkirinê jî li ser her girêkekê tê hilanîn, lê pergalê xwedan detektorek mirinê ya gerdûnî ye.

Dema ku xerîdarek HANA bi komekê ve girêdide, ew topolojiya xwe dadixe û dûv re dikare rasterast bigihîje her nodê, li gorî kîjan daneya ku jê re hewce dike. Ger danûstendinek bandorê li daneyên girêkek yekane bike, wê hingê ew dikare ji hêla wê girêkek herêmî ve were darve kirin, lê heke daneyên çend girêkan biguhezin, girêka destpêker bi girêka koordînatorê re têkil dike, ya ku danûstendina belavkirî vedike û hevrêz dike, û wê bi kar tîne. protokola pêkanîna du-qonaxê xweşbînkirî.

Nodeya koordînatorê dubare ye, ji ber vê yekê heke koordînator têk neçe, girêka paşvekêşanê tavilê digire dest. Lê heke girêk bi daneyan têk biçe, wê hingê yekane riya gihîştina daneyên wê ew e ku girêk ji nû ve dest pê bike. Wekî qaîdeyek, komikên HANA serverek yedek diparêzin da ku bi zûtirîn dem girêkek winda li ser wê ji nû ve bidin destpêkirin.

Source: www.habr.com

Add a comment