Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Din hija kontinwazzjoni ta 'storja twila dwar it-triq tax-xewk tagħna biex noħolqu sistema qawwija u ta' tagħbija għolja li tiżgura t-tħaddim tal-Iskambju. L-ewwel parti tinsab hawn: habr.com/en/post/444300

Żball misterjuż

Wara bosta testijiet, is-sistema aġġornata tal-kummerċ u l-ikklerjar bdiet topera, u ltqajna ma 'bug li dwaru nistgħu niktbu storja mistika-detective.

Ftit wara t-tnedija fuq is-server prinċipali, waħda mit-tranżazzjonijiet ġiet ipproċessata bi żball. Madankollu, kollox kien tajjeb fuq is-server tal-backup. Irriżulta li operazzjoni matematika sempliċi ta 'kalkolu tal-esponent fuq is-server prinċipali tat riżultat negattiv mill-argument reali! Komplejna r-riċerka tagħna, u fir-reġistru SSE2 sibna differenza f'bit wieħed, li hija responsabbli għall-arrotondament meta naħdmu b'numri floating point.

Aħna ktibna utilità tat-test sempliċi biex tikkalkula l-esponent bis-sett tal-bit arrotondament. Irriżulta li fil-verżjoni ta 'RedHat Linux li użajna, kien hemm bug fil-ħidma mal-funzjoni matematika meta ddaħħal il-bit ill-fated. Irrappurtajna dan lil RedHat, wara xi żmien irċevejna garża mingħandhom u ħarġajna. L-iżball ma seħħx aktar, iżda ma kienx ċar minn fejn anke ġie dan il-bit? Il-funzjoni kienet responsabbli għaliha fesetround mil-lingwa C. Aħna analizzajna bir-reqqa l-kodiċi tagħna fit-tfittxija tal-iżball suppost: iċċekkajna s-sitwazzjonijiet kollha possibbli; ħares lejn il-funzjonijiet kollha li użaw l-arrotondament; ipprova jirriproduċi sessjoni falluta; uża kompilaturi differenti b'għażliet differenti; Intużaw analiżi statika u dinamika.

Il-kawża tal-iżball ma setgħetx tinstab.

Imbagħad bdew jiċċekkjaw il-ħardwer: wettqu ttestjar tat-tagħbija tal-proċessuri; iċċekkja r-RAM; Saħansitra għamilna testijiet għax-xenarju improbabbli ħafna ta 'żball b'ħafna bit f'ċellula waħda. Għalxejn.

Fl-aħħar, aħna stabbilixxew fuq teorija mid-dinja tal-fiżika ta 'enerġija għolja: xi partiċelli ta' enerġija għolja tellgħu fiċ-ċentru tad-dejta tagħna, imtaqqba il-ħajt tal-każ, laqat il-proċessur u kkawża li l-lukkett tal-grillu jeħel f'dak il-ftit ħafna. Din it-teorija assurda kienet tissejjaħ in-“newtrino.” Jekk inti 'l bogħod mill-fiżika tal-partiċelli: newtrinos kważi ma jinteraġixxux mad-dinja ta' barra, u ċertament mhumiex kapaċi jaffettwaw l-operat tal-proċessur.

Peress li ma kienx possibbli li tinstab il-kawża tan-nuqqas, is-server "offendenti" tneħħa mill-operat biss fil-każ.

Wara xi żmien, bdejna ntejbu s-sistema ta 'backup sħun: introduċejna l-hekk imsejħa "riżervi sħan" (sħun) - repliki asinkroniċi. Huma rċevew fluss ta 'tranżazzjonijiet li setgħu jinsabu f'ċentri tad-dejta differenti, iżda warms ma jinteraġixxux b'mod attiv ma' servers oħra.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Għaliex sar dan? Jekk is-server tal-backup jonqos, allura sħun marbut mas-server prinċipali jsir il-backup ġdid. Jiġifieri, wara falliment, is-sistema ma tibqax b'server prinċipali wieħed sat-tmiem tas-sessjoni tal-kummerċ.

U meta l-verżjoni l-ġdida tas-sistema ġiet ittestjata u bdiet titħaddem, l-iżball tal-bit tal-arrotondament reġa' seħħ. Barra minn hekk, biż-żieda fin-numru ta 'servers sħun, l-iżball beda jidher aktar spiss. Fl-istess ħin, il-bejjiegħ ma kellu xejn x'juri, peress li ma kien hemm l-ebda evidenza konkreta.

Matul l-analiżi li jmiss tas-sitwazzjoni, qamet teorija li l-problema tista 'tkun relatata mal-OS. Aħna ktibna programm sempliċi li jsejjaħ funzjoni f'linja bla tarf fesetround, jiftakar l-istat attwali u jiċċekkjah permezz ta 'rqad, u dan isir f'ħafna ħjut li jikkompetu. Wara li għażilt il-parametri għall-irqad u n-numru ta 'ħjut, bdejna nirriproduċu b'mod konsistenti l-falliment tal-bit wara madwar 5 minuti ta' tħaddim tal-utilità. Madankollu, l-appoġġ ta' Red Hat ma setax jirriproduċih. L-ittestjar tas-servers l-oħra tagħna wera li dawk biss b'ċerti proċessuri huma suxxettibbli għall-iżball. Fl-istess ħin, il-bidla għal qalba ġdida solviet il-problema. Fl-aħħar, aħna sempliċement biddel l-OS, u l-kawża vera tal-bug baqgħet mhux ċara.

U f'daqqa waħda s-sena l-oħra ġie ppubblikat artiklu fuq Habré "Kif sibt bug fil-proċessuri Intel Skylake" Is-sitwazzjoni deskritta fiha kienet simili ħafna għal tagħna, iżda l-awtur mexxa l-investigazzjoni aktar u ressaq teorija li l-iżball kien fil-mikrokodiċi. U meta l-kernels tal-Linux jiġu aġġornati, il-manifatturi jaġġornaw ukoll il-mikrokodiċi.

Żvilupp ulterjuri tas-sistema

Għalkemm neħles mill-iżball, din l-istorja ġiegħlitna nikkunsidraw mill-ġdid l-arkitettura tas-sistema. Wara kollox, aħna ma kinux protetti mir-ripetizzjoni ta 'bugs bħal dawn.

Il-prinċipji li ġejjin iffurmaw il-bażi għat-titjib li jmiss għas-sistema ta’ riservazzjoni:

  • Ma tistax tafda lil ħadd. Is-servers jistgħu ma jaħdmux sew.
  • Riżerva tal-maġġoranza.
  • L-iżgurar tal-kunsens. Bħala żieda loġika għar-riżerva tal-maġġoranza.
  • Fallimenti doppji huma possibbli.
  • Vitalità. L-iskema l-ġdida ta 'hot standby m'għandhiex tkun agħar minn dik ta' qabel. Il-kummerċ għandu jipproċedi mingħajr interruzzjoni sal-aħħar server.
  • Żieda żgħira fil-latency. Kull waqfien jinvolvi telf finanzjarju kbir.
  • Interazzjoni minima tan-netwerk biex iżżomm il-latenza baxx kemm jista' jkun.
  • Għażla ta' server ewlieni ġdid f'sekondi.

L-ebda waħda mis-soluzzjonijiet disponibbli fis-suq ma kienet adattata għalina, u l-protokoll Raft kien għadu fil-bidu tiegħu, għalhekk ħloqna s-soluzzjoni tagħna stess.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Netwerking

Minbarra s-sistema ta’ riservazzjoni, bdejna nimmodernizzaw l-interazzjoni tan-netwerk. Is-subsistema I/O kienet tikkonsisti f'ħafna proċessi, li kellhom l-agħar impatt fuq il-jitter u l-latency. B'mijiet ta 'proċessi li jimmaniġġjaw konnessjonijiet TCP, konna mġiegħla naqlbu kontinwament bejniethom, u fuq skala ta' mikrosekonda din hija operazzjoni pjuttost li tieħu ħafna ħin. Iżda l-agħar parti hija li meta proċess irċieva pakkett għall-ipproċessar, bagħtu lil kju SystemV wieħed u mbagħad stenna għal avveniment minn kju SystemV ieħor. Madankollu, meta jkun hemm numru kbir ta 'nodi, il-wasla ta' pakkett TCP ġdid fi proċess wieħed u r-riċevuta ta 'data fil-kju f'ieħor jirrappreżentaw żewġ avvenimenti li jikkompetu għall-OS. F'dan il-każ, jekk ma jkunx hemm proċessuri fiżiċi disponibbli għaż-żewġ kompiti, wieħed jiġi pproċessat, u t-tieni jitqiegħed fi kju ta 'stennija. Huwa impossibbli li wieħed ibassar il-konsegwenzi.

F'sitwazzjonijiet bħal dawn, jista 'jintuża kontroll tal-prijorità tal-proċess dinamiku, iżda dan ikun jeħtieġ l-użu ta' sejħiet tas-sistema li jużaw ħafna riżorsi. Bħala riżultat, aħna qalbu għal ħajt wieħed bl-użu ta 'epoll klassika, dan żied ħafna l-veloċità u naqqas il-ħin tal-ipproċessar tat-tranżazzjoni. Aħna wkoll neħles minn proċessi separati ta 'komunikazzjoni tan-netwerk u komunikazzjoni permezz ta' SystemV, naqqas b'mod sinifikanti n-numru ta 'sejħiet tas-sistema u bdejna nikkontrollaw il-prijoritajiet tal-operazzjonijiet. Fuq is-subsistema I/O biss, kien possibbli li tiffranka madwar 8-17-il mikrosekonda, skont ix-xenarju. Din l-iskema b'ħajt wieħed intużat mhux mibdula minn dakinhar; ħajt epoll wieħed b'marġni huwa biżżejjed biex isservi l-konnessjonijiet kollha.

Ipproċessar ta' Transazzjoni

It-tagħbija dejjem tikber fis-sistema tagħna kienet teħtieġ titjib kważi tal-komponenti kollha tagħha. Iżda, sfortunatament, l-istaġnar fit-tkabbir tal-veloċitajiet tal-arloġġ tal-proċessur f'dawn l-aħħar snin m'għadux jagħmilha possibbli li l-proċessi jiġu skalati minn quddiem. Għalhekk, iddeċidejna li naqsmu l-proċess tal-Magna fi tliet livelli, bl-aktar traffikużi minnhom tkun is-sistema tal-kontroll tar-riskju, li tevalwa d-disponibbiltà tal-fondi fil-kontijiet u toħloq it-tranżazzjonijiet infushom. Iżda l-flus jistgħu jkunu f'muniti differenti, u kien meħtieġ li wieħed jifhem fuq liema bażi l-ipproċessar tat-talbiet għandu jinqasam.

Is-soluzzjoni loġika hija li taqsamha bil-munita: server wieħed jinnegozja f'dollari, ieħor f'liri, u terz f'euro. Imma jekk, bi skema bħal din, jintbagħtu żewġ tranżazzjonijiet biex jixtru muniti differenti, allura tqum il-problema tad-desinkronizzazzjoni tal-kartiera. Iżda s-sinkronizzazzjoni hija diffiċli u għalja. Għalhekk, ikun korrett li shard separatament minn kartieri u separatament minn strumenti. Mill-mod, il-biċċa l-kbira tal-iskambji tal-Punent m'għandhomx il-kompitu li jiċċekkjaw ir-riskji b'mod akut daqs kemm nagħmlu aħna, għalhekk ħafna drabi dan isir offline. Kellna nimplimentaw il-verifika onlajn.

Ejja nispjegaw b'eżempju. Negozjant irid jixtri $ 30, u t-talba tmur għall-validazzjoni tat-tranżazzjoni: aħna niċċekkjaw jekk dan il-kummerċjant huwiex permess għal dan il-mod ta 'kummerċ u jekk għandux id-drittijiet meħtieġa. Jekk kollox ikun fl-ordni, it-talba tmur għas-sistema ta’ verifika tar-riskju, i.e. biex tiċċekkja s-suffiċjenza tal-fondi biex tikkonkludi tranżazzjoni. Hemm nota li l-ammont meħtieġ bħalissa huwa mblukkat. It-talba mbagħad tintbagħat lis-sistema tal-kummerċ, li tapprova jew ma tapprovax it-tranżazzjoni. Ejja ngħidu li t-tranżazzjoni hija approvata - allura s-sistema ta 'verifika tar-riskju timmarka li l-flus huma żblukkati, u r-rubli jinbidlu f'dollari.

B'mod ġenerali, is-sistema tal-iċċekkjar tar-riskju fiha algoritmi kumplessi u twettaq ammont kbir ta 'kalkoli li jużaw ħafna riżorsi, u mhux sempliċement tiċċekkja l-"bilanċ tal-kont", kif jista' jidher mal-ewwel daqqa t'għajn.

Meta bdejna naqsmu l-proċess tal-Magna f'livelli, iltqajna ma 'problema: il-kodiċi li kien disponibbli dak iż-żmien uża b'mod attiv l-istess firxa ta' dejta fl-istadji ta 'validazzjoni u verifika, li kienet teħtieġ kitba mill-ġdid tal-bażi tal-kodiċi kollha. Bħala riżultat, aħna ssellefna teknika għall-ipproċessar ta 'struzzjonijiet minn proċessuri moderni: kull wieħed minnhom huwa maqsum fi stadji żgħar u bosta azzjonijiet jitwettqu b'mod parallel f'ċiklu wieħed.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Wara adattament żgħir tal-kodiċi, ħloqna pipeline għall-ipproċessar tat-tranżazzjonijiet paralleli, li fih it-tranżazzjoni kienet maqsuma f'4 stadji tal-pipeline: interazzjoni tan-netwerk, validazzjoni, eżekuzzjoni u pubblikazzjoni tar-riżultat

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Ejja nħarsu lejn eżempju. Għandna żewġ sistemi ta 'proċessar, serjali u paralleli. L-ewwel tranżazzjoni tasal u tintbagħat għall-validazzjoni fiż-żewġ sistemi. It-tieni tranżazzjoni immedjatament tasal: f'sistema parallela tittieħed immedjatament biex taħdem, u f'sistema sekwenzjali titqiegħed fil-kju tistenna li l-ewwel tranżazzjoni tgħaddi mill-istadju tal-ipproċessar attwali. Jiġifieri, il-vantaġġ ewlieni tal-ipproċessar tal-pipeline huwa li nipproċessaw il-kju tat-tranżazzjonijiet aktar malajr.

Hekk ħriġna bis-sistema ASTS+.

Veru, mhux kollox huwa daqshekk bla xkiel ma 'conveyors lanqas. Ejja ngħidu li għandna tranżazzjoni li taffettwa l-arrays tad-dejta fi tranżazzjoni ġirien; din hija sitwazzjoni tipika għal skambju. Tranżazzjoni bħal din ma tistax tiġi eżegwita f'pipeline minħabba li tista' taffettwa lil oħrajn. Din is-sitwazzjoni tissejjaħ periklu tad-dejta, u tranżazzjonijiet bħal dawn huma sempliċement ipproċessati separatament: meta t-tranżazzjonijiet "veloċi" fil-kju jispiċċaw, il-pipeline jieqaf, is-sistema tipproċessa t-tranżazzjoni "bil-mod", u mbagħad terġa 'tibda l-pipeline. Fortunatament, il-proporzjon ta 'tranżazzjonijiet bħal dawn fil-fluss ġenerali huwa żgħir ħafna, għalhekk il-pipeline jieqaf tant rari li ma jaffettwax il-prestazzjoni ġenerali.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Imbagħad bdejna nsolvu l-problema tas-sinkronizzazzjoni ta 'tliet ħjut ta' eżekuzzjoni. Ir-riżultat kien sistema bbażata fuq ring buffer b'ċelluli ta' daqs fiss. F'din is-sistema, kollox huwa suġġett għall-veloċità tal-ipproċessar; id-dejta mhix ikkupjata.

  • Il-pakketti kollha tan-netwerk deħlin jidħlu fl-istadju tal-allokazzjoni.
  • Aħna npoġġuhom f'firxa u nimmarkawhom bħala disponibbli għall-istadju #1.
  • It-tieni tranżazzjoni waslet, hija għal darb'oħra disponibbli għall-istadju Nru 1.
  • L-ewwel ħajt tal-ipproċessar jara t-tranżazzjonijiet disponibbli, jipproċessahom, u jmexxihom għall-istadju li jmiss tat-tieni ħajt tal-ipproċessar.
  • Imbagħad tipproċessa l-ewwel tranżazzjoni u timmarka ċ-ċellula korrispondenti deleted — issa hija disponibbli għal użu ġdid.

Il-kju kollu jiġi pproċessat b'dan il-mod.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

L-ipproċessar ta 'kull stadju jieħu unitajiet jew għexieren ta' mikrosekondi. U jekk nużaw skemi standard ta 'sinkronizzazzjoni tal-OS, allura nitilfu aktar ħin fuq is-sinkronizzazzjoni nnifisha. Huwa għalhekk li bdejna nużaw spinlock. Madankollu, din hija forma ħażina ħafna f'sistema f'ħin reali, u RedHat strettament ma jirrakkomandax li tagħmel dan, għalhekk aħna napplikaw spinlock għal 100 ms, u mbagħad naqilbu għall-mod semaphore biex neliminaw il-possibbiltà ta 'deadlock.

Bħala riżultat, ksibna prestazzjoni ta 'madwar 8 miljun tranżazzjoni kull sekonda. U litteralment xahrejn wara artikolu dwar LMAX Disruptor rajna deskrizzjoni ta 'ċirkwit bl-istess funzjonalità.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Issa jista 'jkun hemm diversi ħjut ta' eżekuzzjoni fi stadju wieħed. It-tranżazzjonijiet kollha ġew ipproċessati waħda waħda, fl-ordni li ġew riċevuti. Bħala riżultat, l-ogħla prestazzjoni żdiedet minn 18 elf għal 50 elf tranżazzjoni kull sekonda.

Sistema ta 'ġestjoni tar-riskju tal-kambju

M'hemm l-ebda limitu għall-perfezzjoni, u dalwaqt bdejna l-modernizzazzjoni mill-ġdid: fi ħdan il-qafas ta 'ASTS+, bdejna nċaqalqu sistemi ta' ġestjoni tar-riskju u operazzjonijiet ta 'saldu f'komponenti awtonomi. Aħna żviluppajna arkitettura moderna flessibbli u mudell ġdid ta 'riskju ġerarkiku, u ppruvajna nużaw il-klassi kull fejn possibbli fixed_point minflok double.

Iżda immedjatament qamet problema: kif tissinkronizza l-loġika tan-negozju kollha li ilha taħdem għal ħafna snin u tittrasferiha għas-sistema l-ġdida? Bħala riżultat, l-ewwel verżjoni tal-prototip tas-sistema l-ġdida kellha tiġi abbandunata. It-tieni verżjoni, li bħalissa qed taħdem fil-produzzjoni, hija bbażata fuq l-istess kodiċi, li jaħdem kemm fil-partijiet tal-kummerċ kif ukoll tar-riskju. Matul l-iżvilupp, l-iktar ħaġa diffiċli li tagħmel kienet li git merge bejn żewġ verżjonijiet. Il-kollega tagħna Evgeniy Mazurenok wettaq din l-operazzjoni kull ġimgħa u kull darba misħut għal żmien twil ħafna.

Meta tagħżel sistema ġdida, kellna immedjatament insolvu l-problema tal-interazzjoni. Meta tagħżel xarabank tad-dejta, kien meħtieġ li jiġi żgurat jitter stabbli u latenza minima. In-netwerk InfiniBand RDMA kien l-aktar adattat għal dan: il-ħin medju tal-ipproċessar huwa 4 darbiet inqas minn netwerks 10 G Ethernet. Imma dak li verament ħasadna kienet id-differenza fil-perċentili - 99 u 99,9.

Naturalment, InfiniBand għandha l-isfidi tagħha. L-ewwelnett, API differenti - ibverbs minflok sockets. It-tieni, kważi m'hemm l-ebda soluzzjonijiet ta 'messaġġi b'sors miftuħ disponibbli b'mod wiesa'. Ippruvajna nagħmlu l-prototip tagħna stess, iżda rriżulta li kien diffiċli ħafna, għalhekk għażilna soluzzjoni kummerċjali - Confinity Low Latency Messaging (qabel IBM MQ LLM).

Imbagħad qamet il-kompitu li s-sistema tar-riskju tiddividi sew. Jekk sempliċement tneħħi r-Risk Engine u ma toħloqx node intermedju, allura tranżazzjonijiet minn żewġ sorsi jistgħu jitħalltu.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

L-hekk imsejħa soluzzjonijiet ta 'Latenza Ultra Baxxa għandhom mod ta' ordni mill-ġdid: tranżazzjonijiet minn żewġ sorsi jistgħu jiġu rranġati fl-ordni meħtieġ mal-wasla; dan huwa implimentat permezz ta 'kanal separat għall-iskambju ta' informazzjoni dwar l-ordni. Iżda għadna ma nużawx din il-modalità: tikkomplika l-proċess kollu, u f'numru ta 'soluzzjonijiet ma hija appoġġjata xejn. Barra minn hekk, kull tranżazzjoni jkollha tiġi assenjata timestamps korrispondenti, u fl-iskema tagħna dan il-mekkaniżmu huwa diffiċli ħafna biex jiġi implimentat b'mod korrett. Għalhekk, użajna l-iskema klassika ma 'sensar tal-messaġġi, jiġifieri, b'dispatcher li jqassam messaġġi bejn ir-Risk Engine.

It-tieni problema kienet relatata mal-aċċess tal-klijent: jekk hemm diversi Risk Gateways, il-klijent jeħtieġ li jgħaqqad ma 'kull wieħed minnhom, u dan ikun jeħtieġ bidliet fis-saff tal-klijent. Ridna noqogħdu 'l bogħod minn dan f'dan l-istadju, għalhekk id-disinn attwali tar-Risk Gateway jipproċessa l-fluss tad-dejta kollu. Dan jillimita ħafna l-fluss massimu, iżda jissimplifika ħafna l-integrazzjoni tas-sistema.

Duplikazzjoni

Is-sistema tagħna m'għandux ikollha punt wieħed ta 'falliment, jiġifieri, il-komponenti kollha għandhom jiġu duplikati, inkluż is-sensar tal-messaġġi. Aħna solvejna din il-problema bl-użu tas-sistema CLLM: fiha cluster RCMS li fih żewġ dispatchers jistgħu jaħdmu fil-modalità master-slave, u meta wieħed ifalli, is-sistema awtomatikament taqleb għall-oħra.

Ħidma ma 'ċentru tad-data backup

InfiniBand huwa ottimizzat għall-operat bħala netwerk lokali, jiġifieri, għall-konnessjoni ta 'tagħmir ta' mmuntar fuq rack, u netwerk InfiniBand ma jistax jitqiegħed bejn żewġ ċentri tad-dejta distribwiti ġeografikament. Għalhekk, implimentajna pont/dispatcher, li jgħaqqad mal-ħażna tal-messaġġi permezz ta' netwerks Ethernet regolari u jibgħat it-tranżazzjonijiet kollha għat-tieni netwerk IB. Meta jkollna bżonn nimigraw minn ċentru tad-dejta, nistgħu nagħżlu liema ċentru tad-dejta naħdmu miegħu issa.

Riżultati ta '

Dan kollu ta 'hawn fuq ma sarx f'daqqa; ħadu diversi iterazzjonijiet għall-iżvilupp ta' arkitettura ġdida. Ħloqna l-prototip f'xahar, iżda ħadet aktar minn sentejn biex tidħol f'kundizzjoni tax-xogħol. Aħna ppruvajna niksbu l-aħjar kompromess bejn iż-żieda fil-ħin tal-ipproċessar tat-tranżazzjonijiet u ż-żieda fl-affidabilità tas-sistema.

Peress li s-sistema ġiet aġġornata ħafna, implimentajna l-irkupru tad-dejta minn żewġ sorsi indipendenti. Jekk il-maħżen tal-messaġġi mhux qed jaħdem b'mod korrett għal xi raġuni, tista 'tieħu r-reġistru tat-tranżazzjonijiet mit-tieni sors - mir-Risk Engine. Dan il-prinċipju huwa osservat fis-sistema kollha.

Fost affarijiet oħra, stajna nippreservaw l-API tal-klijent sabiex la s-sensara u lanqas ħaddieħor ma jkun jeħtieġ xogħol mill-ġdid sinifikanti għall-arkitettura l-ġdida. Kellna nibdlu xi interfaces, iżda ma kienx hemm bżonn li nagħmlu bidliet sinifikanti fil-mudell operattiv.

Aħna sejjaħ il-verżjoni attwali tal-pjattaforma tagħna Rebus - bħala abbrevjazzjoni għaż-żewġ innovazzjonijiet l-aktar notevoli fl-arkitettura, Risk Engine u BUS.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Inizjalment, ridna nallokaw biss il-parti tal-ikklerjar, iżda r-riżultat kien sistema mqassma enormi. Il-klijenti issa jistgħu jinteraġixxu jew mal-Tradeway tal-Kummerċ, mal-Clearing Gateway, jew mat-tnejn.

Dak li fl-aħħar mill-aħħar ksibna:

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 2

Naqqas il-livell ta 'latency. B'volum żgħir ta 'tranżazzjonijiet, is-sistema taħdem l-istess bħall-verżjoni preċedenti, iżda fl-istess ħin tista' tiflaħ tagħbija ferm ogħla.

L-ogħla prestazzjoni żdiedet minn 50 elf għal 180 elf tranżazzjoni kull sekonda. Żieda oħra hija mfixkla mill-uniku fluss ta' tqabbil tal-ordnijiet.

Hemm żewġ modi għal aktar titjib: il-parallelizzazzjoni tat-tqabbil u l-bidla tal-mod kif taħdem ma 'Gateway. Issa l-Biebijiet kollha joperaw skont skema ta’ replikazzjoni, li, taħt tagħbija bħal din, ma tibqax taħdem b’mod normali.

Fl-aħħar nett, nista' nagħti xi pariri lil dawk li qed jiffinalizzaw sistemi ta' intrapriżi:

  • Kun ippreparat għall-agħar f'kull ħin. Il-problemi dejjem jinqalgħu bla mistenni.
  • Ġeneralment huwa impossibbli li terġa 'titneħħa malajr l-arkitettura. Speċjalment jekk għandek bżonn tikseb affidabilità massima fuq indikaturi multipli. Aktar ma jkun hemm nodi, aktar riżorsi meħtieġa għall-appoġġ.
  • Is-soluzzjonijiet kollha tad-dwana u proprjetarji se jeħtieġu riżorsi addizzjonali għar-riċerka, l-appoġġ u l-manutenzjoni.
  • Twarrabx is-soluzzjoni ta' kwistjonijiet ta' affidabbiltà u rkupru tas-sistema wara fallimenti; ħudhom f'kunsiderazzjoni fl-istadju inizjali tad-disinn.

Sors: www.habr.com

Żid kumment