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

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

Hi kollha! Jisimni Sergey Kostanbaev, fl-Iskambju qed niżviluppa l-qalba tas-sistema tal-kummerċ.

Meta l-films ta 'Hollywood juru l-Borża ta' New York, dejjem tidher hekk: folol ta 'nies, kulħadd qed jgħajjat ​​xi ħaġa, ixejjer karti, kaos sħiħ qed jiġri. Dan qatt ma ġara hawn fuq il-Borża ta 'Moska, minħabba li l-kummerċ sar b'mod elettroniku mill-bidu nett u huwa bbażat fuq żewġ pjattaformi ewlenin - Spectra (suq forex) u ASTS (suq tal-kambju, istokk u flus). U llum irrid nitkellem dwar l-evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u l-ikklerjar tal-ASTS, dwar diversi soluzzjonijiet u sejbiet. L-istorja se tkun twila, għalhekk kelli nkissirha f'żewġ partijiet.

Aħna wieħed mill-ftit skambji fid-dinja li jinnegozjaw assi tal-klassijiet kollha u nipprovdu firxa sħiħa ta 'servizzi ta' skambju. Pereżempju, is-sena l-oħra kklassifikajna fit-tieni post fid-dinja f'termini ta 'volum ta' kummerċ tal-bonds, il-25 post fost il-boroż kollha, it-13-il post fil-kapitalizzazzjoni fost l-iskambji pubbliċi.

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

Għal parteċipanti kummerċjali professjonali, parametri bħall-ħin tar-rispons, l-istabbiltà tad-distribuzzjoni tal-ħin (jitter) u l-affidabbiltà tal-kumpless kollu huma kritiċi. Bħalissa qed nipproċessaw għexieren ta’ miljuni ta’ tranżazzjonijiet kuljum. L-ipproċessar ta 'kull transazzjoni mill-qalba tas-sistema jieħu għexieren ta' mikrosekondi. Naturalment, l-operaturi tal-mowbajl lejlet l-Ewwel tas-Sena jew il-magni tat-tiftix nfushom għandhom ammont ta 'xogħol ogħla minn tagħna, iżda f'termini ta' xogħol, flimkien mal-karatteristiċi imsemmija hawn fuq, ftit jistgħu jqabblu magħna, jidhirli. Fl-istess ħin, huwa importanti għalina li s-sistema ma tonqosx għal sekonda, taħdem b'mod assolut b'mod stabbli, u l-utenti kollha jkunu fuq l-istess livell.

Ftit storja

Fl-1994, is-sistema Awstraljana ASTS ġiet imnedija fuq il-Moska Interbank Currency Exchange (MICEX), u minn dak il-mument tista 'tingħadd l-istorja Russa tal-kummerċ elettroniku. Fl-1998, l-arkitettura tal-iskambju ġiet modernizzata biex tintroduċi l-kummerċ bl-Internet. Minn dak iż-żmien 'l hawn, il-veloċità tal-implimentazzjoni ta' soluzzjonijiet ġodda u bidliet arkitettoniċi fis-sistemi u s-sottosistemi kollha ilha biss qed tikseb momentum.

F'dawk is-snin, is-sistema ta 'skambju ħadmet fuq ħardwer hi-end - servers HP Superdome 9000 ultra-affidabbli (mibnija fuq il- PA-RISC), li fiha assolutament kollox kien duplikat: sottosistemi ta 'input/output, netwerk, RAM (fil-fatt, kien hemm firxa RAID ta' RAM), proċessuri (hot-swappable). Kien possibbli li tinbidel kwalunkwe komponent tas-server mingħajr ma titwaqqaf il-magna. Aħna qagħdu fuq dawn l-apparati u kkunsidrawhom prattikament mingħajr periklu. Is-sistema operattiva kienet sistema HP UX bħal Unix.

Iżda minn madwar l-2010, tfaċċa fenomenu msejjaħ kummerċ ta 'frekwenza għolja (HFT), jew kummerċ ta' frekwenza għolja - fi kliem sempliċi, robots tal-borża. F'2,5 snin biss, it-tagħbija fuq is-servers tagħna żdiedet 140 darba.

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

Kien impossibbli li tiflaħ tagħbija bħal din bl-arkitettura u t-tagħmir l-antik. Kien meħtieġ li b'xi mod tadatta.

Bidu

It-talbiet lis-sistema tal-iskambju jistgħu jinqasmu f'żewġ tipi:

  • Transazzjonijiet. Jekk trid tixtri dollari, ishma jew xi ħaġa oħra, tibgħat transazzjoni lis-sistema tal-kummerċ u tirċievi tweġiba dwar is-suċċess.
  • Talbiet ta' informazzjoni. Jekk trid issir taf il-prezz kurrenti, ara l-ktieb tal-ordnijiet jew l-indiċi, imbagħad ibgħat talbiet għall-informazzjoni.

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

Skematikament, il-qalba tas-sistema tista 'tinqasam fi tliet livelli:

  • Il-livell tal-klijent, li fih jaħdmu s-sensara u l-klijenti. Kollha jinteraġixxu ma' servers ta' aċċess.
  • Servers Gateway huma servers caching li lokalment jipproċessaw it-talbiet kollha għall-informazzjoni. Trid tkun taf bi liema prezz qed jinnegozjaw bħalissa l-ishma ta’ Sberbank? It-talba tmur lis-server tal-aċċess.
  • Imma jekk trid tixtri ishma, allura t-talba tmur lis-server ċentrali (Trade Engine). Hemm server wieħed bħal dan għal kull tip ta 'suq, għandhom rwol vitali, huwa għalihom li ħloqna din is-sistema.

Il-qalba tas-sistema tal-kummerċ hija database għaqlija fil-memorja li fiha t-tranżazzjonijiet kollha huma tranżazzjonijiet ta 'skambju. Il-bażi kienet miktuba f'C, l-uniċi dipendenzi esterni kienu l-librerija libc u ma kien hemm l-ebda allokazzjoni ta 'memorja dinamika. Biex tnaqqas il-ħin tal-ipproċessar, is-sistema tibda b'sett statiku ta 'arrays u b'rilokazzjoni statika tad-dejta: l-ewwel, id-dejta kollha għall-ġurnata kurrenti titgħabba fil-memorja, u ma jitwettaq l-ebda aċċess għad-diska, ix-xogħol kollu jitwettaq biss fil-memorja. Meta s-sistema tibda, id-data ta 'referenza kollha hija diġà magħżula, għalhekk it-tfittxija taħdem b'mod effiċjenti ħafna u tieħu ftit ħin fir-runtime. It-tabelli kollha huma magħmula b'listi u siġar intrużivi għal strutturi dinamiċi tad-dejta sabiex ma jeħtiġux allokazzjoni tal-memorja waqt ir-runtime.

Ejja ngħaddu fil-qosor fuq l-istorja tal-iżvilupp tas-sistema tal-kummerċ u tal-ikklerjar tagħna.
L-ewwel verżjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar kienet mibnija fuq l-hekk imsejħa interazzjoni Unix: intużaw memorja, semafori u kjuwijiet kondiviżi, u kull proċess kien jikkonsisti f'ħajt wieħed. Dan l-approċċ kien mifrux fil-bidu tad-disgħinijiet.

L-ewwel verżjoni tas-sistema kien fiha żewġ livelli ta 'Gateway u server ċentrali tas-sistema tal-kummerċ. Il-fluss tax-xogħol kien bħal dan:

  • Il-klijent jibgħat talba, li tilħaq il-Gateway. Tiċċekkja l-validità tal-format (iżda mhux id-dejta nnifisha) u tirrifjuta tranżazzjonijiet mhux korretti.
  • Jekk tkun intbagħtet talba għall-informazzjoni, din tiġi eżegwita lokalment; jekk qed nitkellmu dwar tranżazzjoni, allura hija ridiretta lejn is-server ċentrali.
  • Il-magna tal-kummerċ imbagħad tipproċessa t-tranżazzjoni, timmodifika l-memorja lokali, u tibgħat tweġiba għat-tranżazzjoni u t-tranżazzjoni nnifisha għar-replikazzjoni bl-użu ta 'magna ta' replikazzjoni separata.
  • Il-Gateway jirċievi r-rispons min-nodu ċentrali u jibgħatha lill-klijent.
  • Wara xi żmien, il-Gateway jirċievi t-tranżazzjoni permezz tal-mekkaniżmu ta 'replikazzjoni, u din id-darba jesegwixxiha lokalment, u jibdel l-istrutturi tad-dejta tiegħu sabiex it-talbiet għall-informazzjoni li jmiss juru l-aħħar data.

Fil-fatt, jiddeskrivi mudell ta 'replikazzjoni li fih il-Gateway irreplika kompletament l-azzjonijiet imwettqa fis-sistema tal-kummerċ. Kanal ta 'replikazzjoni separata żgurat li t-tranżazzjonijiet kienu esegwiti fl-istess ordni fuq nodi ta' aċċess multipli.

Peress li l-kodiċi kien b'ħajt wieħed, intużat skema klassika bi frieket tal-proċess biex taqdi ħafna klijenti. Madankollu, kien jiswa ħafna flus biex id-database kollha kemm hi, għalhekk intużaw proċessi ta 'servizz ħfief li ġabru pakketti minn sessjonijiet TCP u ttrasferihom għal kju wieħed (SystemV Message Queue). Gateway u Trade Engine ħadmu biss ma 'dan il-kju, u ħadu tranżazzjonijiet minn hemm għall-eżekuzzjoni. Ma kienx aktar possibbli li tintbagħat tweġiba għaliha, għax ma kienx ċar liema proċess tas-servizz kellu jaqrah. Allura aħna rrikorrejna għal trick: kull proċess forked ħoloq kju ta 'rispons għalih innifsu, u meta talba daħlet fil-kju deħlin, tikketta għall-kju ta' rispons ġiet miżjuda immedjatament magħha.

L-ikkupjar kostanti ta' ammonti kbar ta' dejta minn kju għal kju ħoloq problemi, speċjalment tipiċi għal talbiet għal informazzjoni. Għalhekk, użajna trick ieħor: minbarra l-kju tar-rispons, kull proċess ħoloq ukoll memorja kondiviża (SystemV Shared Memory). Il-pakketti nfushom tpoġġew fiha, u tikketta biss kienet maħżuna fil-kju, li tippermetti li wieħed isib il-pakkett oriġinali. Dan għen biex tinħażen id-dejta fil-cache tal-proċessur.

SystemV IPC jinkludi utilitajiet biex tara l-istat tal-kju, il-memorja u l-oġġetti tas-semafori. Użajna dan b'mod attiv biex nifhmu x'kien qed jiġri fis-sistema f'mument partikolari, fejn akkumulaw il-pakketti, x'kien imblukkat, eċċ.

L-ewwel modernizzazzjonijiet

L-ewwelnett, neħles mill-Bieb ta 'proċess wieħed. L-iżvantaġġ sinifikanti tagħha kien li setgħet tieħu ħsieb jew tranżazzjoni ta' replikazzjoni waħda jew talba waħda ta' informazzjoni minn klijent. U hekk kif it-tagħbija tiżdied, Gateway se jieħu aktar żmien biex jipproċessa t-talbiet u mhux se jkun jista 'jipproċessa l-fluss ta' replikazzjoni. Barra minn hekk, jekk il-klijent bagħat tranżazzjoni, allura għandek bżonn biss li tiċċekkja l-validità tagħha u tibgħatha aktar. Għalhekk, sostitwijna l-proċess Gateway wieħed b'komponenti multipli li jistgħu jaħdmu b'mod parallel: informazzjoni b'ħafna ħajt u proċessi ta 'tranżazzjoni li jaħdmu b'mod indipendenti minn xulxin fuq żona ta' memorja kondiviża bl-użu ta 'qfil RW. U fl-istess ħin daħħalna proċessi ta’ dispaċċ u replikazzjoni.

Impatt tal-Kummerċ ta' Frekwenza Għolja

Il-verżjoni ta 'hawn fuq tal-arkitettura kienet teżisti sal-2010. Sadanittant, ma konna aktar sodisfatti bil-prestazzjoni tas-servers HP Superdome. Barra minn hekk, l-arkitettura PA-RISC kienet prattikament mejta; il-bejjiegħ ma offra l-ebda aġġornament sinifikanti. Bħala riżultat, bdejna nimxu minn HP UX/PA RISC għal Linux/x86. It-tranżizzjoni bdiet bl-adattament tas-servers ta 'aċċess.

Għaliex kellna nerġgħu nbiddlu l-arkitettura? Il-fatt hu li l-kummerċ ta 'frekwenza għolja biddel b'mod sinifikanti l-profil tat-tagħbija fuq il-qalba tas-sistema.

Ejja ngħidu li għandna tranżazzjoni żgħira li kkawżat bidla sinifikanti fil-prezz - xi ħadd xtara nofs biljun dollaru. Wara ftit millisekondi, il-parteċipanti kollha tas-suq jinnutaw dan u jibdew jagħmlu korrezzjoni. Naturalment, it-talbiet jingħaqdu fi kju enormi, li s-sistema se tieħu ħafna żmien biex tikklerja.

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

F'dan l-intervall ta '50 ms, il-veloċità medja hija ta' madwar 16-il elf transazzjoni kull sekonda. Jekk innaqqsu t-tieqa għal 20 ms, niksbu veloċità medja ta '90 elf tranżazzjoni kull sekonda, b'200 elf tranżazzjoni fil-quċċata. Fi kliem ieħor, it-tagħbija mhix kostanti, b'tifqigħ f'daqqa. U l-kju tat-talbiet għandu dejjem jiġi pproċessat malajr.

Imma għaliex hemm kju għal kollox? Għalhekk, fl-eżempju tagħna, ħafna utenti nnotaw il-bidla fil-prezz u bagħtu tranżazzjonijiet kif xieraq. Jaslu għand Gateway, jisserializzahom, jistabbilixxi ċertu ordni u jibgħathom lin-netwerk. Ir-routers iħaffu l-pakketti u jgħadduhom. Li l-pakkett tiegħu wasal l-ewwel, dik it-tranżazzjoni "rebħet". Bħala riżultat, il-klijenti tal-kambju bdew jinnutaw li jekk l-istess tranżazzjoni ntbagħtet minn diversi Gateways, allura ċ-ċansijiet tal-ipproċessar rapidu tagħha żdiedu. Dalwaqt, robots tal-iskambju bdew jibbumbardjaw Gateway b'talbiet, u qamet valanga ta 'tranżazzjonijiet.

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

Rawnd ġdid ta 'evoluzzjoni

Wara testijiet u riċerka estensivi, aħna qalbu għall-qalba tas-sistema operattiva f'ħin reali. Għal dan għażilna RedHat Enterprise MRG Linux, fejn MRG tfisser grid ta' messaġġi f'ħin reali. Il-vantaġġ tal-irqajja f'ħin reali huwa li jottimizzaw is-sistema għall-eżekuzzjoni l-aktar mgħaġġla possibbli: il-proċessi kollha huma allinjati fi kju FIFO, il-qlub jistgħu jiġu iżolati, l-ebda ejections, it-tranżazzjonijiet kollha huma pproċessati f'sekwenza stretta.

Evoluzzjoni tal-arkitettura tas-sistema tal-kummerċ u tal-ikklerjar tal-Iskambju ta 'Moska. Parti 1
Aħmar - taħdem bi kju f'qalba regolari, aħdar - taħdem f'qalba f'ħin reali.

Iżda l-kisba ta' latenza baxxa fuq servers regolari mhix daqshekk faċli:

  • Il-mod SMI, li fl-arkitettura x86 hija l-bażi biex taħdem ma 'periferali importanti, tinterferixxi ħafna. L-ipproċessar ta 'kull tip ta' avvenimenti ta 'hardware u l-ġestjoni ta' komponenti u apparati jitwettaq mill-firmware fl-hekk imsejjaħ mod trasparenti SMI, li fih is-sistema operattiva ma tarax x'qed jagħmel il-firmware xejn. Bħala regola, il-bejjiegħa ewlenin kollha joffru estensjonijiet speċjali għal servers tal-firmware li jippermettu li jitnaqqas l-ammont ta 'proċessar SMI.
  • M'għandux ikun hemm kontroll dinamiku tal-frekwenza tal-proċessur, dan iwassal għal ħin ta 'waqfien addizzjonali.
  • Meta r-reġistru tas-sistema tal-fajl jitlaħlaħ, ċerti proċessi jseħħu fil-qalba li jikkawżaw dewmien imprevedibbli.
  • Trid tagħti attenzjoni għal affarijiet bħal CPU Affinity, Interrupt affinity, NUMA.

Irrid ngħid li s-suġġett tat-twaqqif ta 'hardware u kernel Linux għall-ipproċessar f'ħin reali jistħoqqlu artikolu separat. Għaddejna ħafna ħin nesperimentaw u nirriċerkaw qabel ma ksibna riżultat tajjeb.

Meta nimxu minn servers PA-RISC għal x86, prattikament ma kellniex għalfejn nibdlu ħafna l-kodiċi tas-sistema, aħna biss addattajna u kkonfigurajna mill-ġdid. Fl-istess ħin, irranġajna diversi bugs. Pereżempju, il-konsegwenzi tal-fatt li PA RISC kienet sistema Big endian, u x86 kienet sistema Little endian, ħarġu malajr: pereżempju, id-dejta nqrat ħażin. Il-bug aktar diffiċli kien li PA RISC juża konsistenti konsistenti (Sekwenzjali konsistenti) aċċess għall-memorja, filwaqt li x86 jista 'jerġa' jordna l-operazzjonijiet tal-qari, għalhekk kodiċi li kien assolutament validu fuq pjattaforma waħda tkisser fuq oħra.

Wara li qalbet għal x86, il-prestazzjoni żdiedet kważi tliet darbiet, il-ħin medju tal-ipproċessar tat-tranżazzjonijiet naqas għal 60 μs.

Ejja issa nagħtu ħarsa aktar mill-qrib lejn liema bidliet ewlenin saru fl-arkitettura tas-sistema.

Riżerva epika sħuna

Meta qlib għal servers tal-komoditajiet, konna konxji li kienu inqas affidabbli. Għalhekk, meta ħoloq arkitettura ġdida, aħna a priori assumejna l-possibbiltà ta 'falliment ta' nodu wieħed jew aktar. Għalhekk, kienet meħtieġa sistema ta 'standby sħuna li tista' taqleb malajr ħafna għal magni tal-backup.

Barra minn hekk, kien hemm rekwiżiti oħra:

  • Taħt l-ebda ċirkostanza m'għandek titlef tranżazzjonijiet ipproċessati.
  • Is-sistema trid tkun assolutament trasparenti għall-infrastruttura tagħna.
  • Il-klijenti m'għandhomx jaraw konnessjonijiet waqgħu.
  • Ir-riżervi m'għandhomx jintroduċu dewmien sinifikanti minħabba li dan huwa fattur kritiku għall-iskambju.

Meta ħloqna sistema ta 'standby sħuna, aħna ma kkunsidrawx xenarji bħal dawn bħala fallimenti doppji (per eżempju, in-netwerk fuq server wieħed waqaf jaħdem u s-server prinċipali ffriżat); ma kkunsidrax il-possibbiltà ta' żbalji fis-softwer minħabba li huma identifikati waqt l-ittestjar; u ma kkunsidrax l-operat ħażin tal-ħardwer.

Bħala riżultat, wasalna għall-iskema li ġejja:

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

  • Is-server prinċipali interaġixxa direttament mas-servers tal-Gateway.
  • It-tranżazzjonijiet kollha riċevuti fuq is-server prinċipali ġew istantanjament replikati fis-server backup permezz ta 'kanal separat. L-arbitru (Gvernatur) ikkoordina l-bidla jekk inqalgħu xi problemi.

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

  • Is-server prinċipali pproċessa kull tranżazzjoni u stenna konferma mis-server tal-backup. Biex iżżomm il-latenza għal minimu, evitajna li nistennew it-tranżazzjoni biex titlesta fuq is-server tal-backup. Peress li ż-żmien li damet biex tranżazzjoni tivvjaġġa tul in-netwerk kien komparabbli mal-ħin tal-eżekuzzjoni, ma ġiet miżjuda l-ebda latenza addizzjonali.
  • Aħna nistgħu niċċekkjaw biss l-istatus tal-ipproċessar tas-servers prinċipali u ta 'backup għat-tranżazzjoni preċedenti, u l-istatus tal-ipproċessar tat-tranżazzjoni attwali ma kienx magħruf. Peress li konna għadna nużaw proċessi b'ħajt wieħed, l-istennija għal rispons minn Backup kien inaqqas il-fluss kollu tal-ipproċessar, għalhekk għamilna kompromess raġonevoli: ivverifikajna r-riżultat tat-tranżazzjoni preċedenti.

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

L-iskema ħadmet kif ġej.

Ejja ngħidu li s-server ewlieni jieqaf jirrispondi, iżda l-Biebijiet ikomplu jikkomunikaw. Isseħħ timeout fuq is-server tal-backup, jikkuntattja lill-Gvernatur, li jassenjah ir-rwol tas-server prinċipali, u l-Biebijiet kollha jaqilbu għas-server prinċipali ġdid.

Jekk is-server prinċipali jerġa 'jiġi onlajn, iqajjem ukoll timeout intern, minħabba li ma kien hemm l-ebda sejħiet lis-server mill-Gateway għal ċertu żmien. Imbagħad idur ukoll lejn il-Gvernatur, u jeskludih mill-iskema. Bħala riżultat, l-iskambju jaħdem ma 'server wieħed sa tmiem il-perjodu tal-kummerċ. Peress li l-probabbiltà ta' falliment tas-server hija pjuttost baxxa, din l-iskema kienet ikkunsidrata pjuttost aċċettabbli; ma kienx fiha loġika kumplessa u kienet faċli biex tiġi ttestjata.

Għandha titkompla.

Sors: www.habr.com

Żid kumment