I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Molweni nonke! Igama lam nguSergey Kostanbaev, kwi-Exchange ndiphuhlisa ingundoqo yenkqubo yokurhweba.

Xa iifilimu zaseHollywood zibonisa iNew York Stock Exchange, ihlala ibonakala ngolu hlobo: izihlwele zabantu, wonke umntu ukhwaza into ethile, amaphepha ashukumisayo, isiphithiphithi esipheleleyo siyenzeka. Oku akuzange kwenzeke apha kwi-Moscow Exchange, kuba urhwebo luye lwaqhutywa nge-elektroniki kwasekuqaleni kwaye lusekelwe kumaqonga amabini aphambili - i-Spectra (imarike ye-forex) kunye ne-ASTS (utshintshiselwano lwangaphandle, i-stock kunye ne-market market). Kwaye namhlanje ndifuna ukuthetha malunga nokuguquguquka koyilo lwe-ASTS yokuthengisa kunye nenkqubo yokucoca, malunga nezisombululo ezahlukeneyo kunye neziphumo. Ibali liya kuba lide, ngoko ke kwafuneka ndiliqhekeze libe ngamacandelo amabini.

Singomnye wotshintshiselwano olumbalwa ehlabathini olurhweba nge-asethi yazo zonke iiklasi kwaye lubonelela ngoluhlu olupheleleyo lweenkonzo zotshintshiselwano. Ngokomzekelo, kulo nyaka uphelileyo sibeke kwindawo yesibini kwihlabathi malunga nomthamo wokurhweba ngebhondi, indawo ye-25 phakathi kwazo zonke ii-stock exchanges, indawo ye-13 kwi-capitalisation phakathi kotshintshiselwano lukawonkewonke.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Kubathathi-nxaxheba beengcali zokurhweba, iiparameters ezifana nexesha lokuphendula, ukuzinza kwexesha lokusabalalisa (i-jitter) kunye nokuthembeka kwayo yonke into ebalulekileyo. Ngoku siqhuba amashumi ezigidi zentengiselwano ngosuku. Ukusetyenzwa kwentengiselwano nganye yi-kernel yesistim kuthatha amashumi ee-microseconds. Ngokuqinisekileyo, abaqhubi beselula ngo-Eva kaNcibijane okanye ii-injini zokukhangela ngokwabo banomthwalo ophezulu womsebenzi kunezethu, kodwa ngokwemiqathango yomsebenzi, kunye neempawu ezikhankanywe ngasentla, bambalwa banokuthelekisa nathi, kubonakala ngathi. Kwangaxeshanye, kubalulekile kuthi ukuba inkqubo ayinciphisi okwesibini, isebenza ngokuzinzileyo, kwaye bonke abasebenzisi bakwinqanaba elilinganayo.

Imbali encinci

Kwi-1994, inkqubo ye-ASTS yase-Australia yasungulwa kwi-Moscow Interbank Currency Exchange (MICEX), kwaye ukususela ngelo xesha imbali yaseRashiya yokuthengisa nge-elektroniki ingabalwa. Kwi-1998, i-architecture yotshintshiselwano yaphuculwa ukuba yazise ukurhweba kwi-Intanethi. Ukususela ngoko, isantya sokuphunyezwa kwezisombululo ezitsha kunye notshintsho lwezakhiwo kuzo zonke iinkqubo kunye ne-subsystems ziye zafumana amandla.

Ngaloo minyaka, inkqubo yokutshintshiselana yayisebenza kwi-hardware ye-hi-end - i-ultra-reliable HP Superdome 9000 servers (eyakhelwe phezu I-PA-RISC), apho yonke into iphindwe kabini: i-input/output subsystems, inethiwekhi, i-RAM (enyanisweni, kwakukho uluhlu lwe-RAID lwe-RAM), iiprosesa (ezishushu-swappable). Bekunokwenzeka ukutshintsha naliphi na ilungu lomncedisi ngaphandle kokumisa umatshini. Besithembele kwezi zixhobo kwaye sizigqala njengezingaphumeleliyo. Inkqubo yokusebenza yayiyinkqubo ye-Unix efana ne-HP UX.

Kodwa ukusukela malunga ne-2010, kuye kwavela into ebizwa ngokuba yi-high-frequency trading (HFT), okanye ukurhweba ngesantya esiphezulu-ukubeka nje, iirobhothi zokutshintshiselana ngesitokhwe. Kwiminyaka nje eyi-2,5, umthwalo kwiiseva zethu uye wanda amaxesha angama-140.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Kwakungenakwenzeka ukujamelana nomthwalo onjalo kunye nezakhiwo zakudala kunye nezixhobo. Kwakuyimfuneko ngandlela ithile ukuziqhelanisa.

Ukuqala

Izicelo kwinkqubo yotshintshiselwano zinokwahlulwa zibe ziindidi ezimbini:

  • Iintengiselwano. Ukuba ufuna ukuthenga iidola, izabelo okanye enye into, uthumela ukuthengiselana kwinkqubo yokurhweba kwaye ufumane impendulo malunga nempumelelo.
  • Izicelo zolwazi. Ukuba ufuna ukufumana ixabiso langoku, jonga incwadi yoku-odola okanye i-indices, emva koko uthumele izicelo zolwazi.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Ngokwezicwangciso, undoqo wenkqubo unokwahlulwa ube ngamanqanaba amathathu:

  • Inqanaba lomxhasi, apho abathengisi kunye nabathengi basebenza khona. Zonke zinxibelelana neeseva zofikelelo.
  • Iiseva zesango ziiseva ze-caching eziqhuba zonke izicelo zolwazi ekuhlaleni. Ngaba uyafuna ukwazi ukuba yeyiphi ixabiso izabelo zeSberbank ezirhweba ngalo ngoku? Isicelo siya kwiseva yofikelelo.
  • Kodwa ukuba ufuna ukuthenga izabelo, ke isicelo siya kumncedisi ophakathi (i-Trade Engine). Kukho umncedisi onjalo kuhlobo ngalunye lwemarike, badlala indima ebalulekileyo, kungenxa yabo ukuba senze le nkqubo.

Ingundoqo yenkqubo yokurhweba yi-database ehlakaniphile kwimemori apho zonke iintengiselwano zitshintshiselwano. Isiseko sabhalwa ngo-C, kuphela ukuxhomekeka kwangaphandle yayiyilayibrari ye-libc kwaye kwakungekho lwabiwo lwememori eguqukayo konke konke. Ukunciphisa ixesha lokucubungula, inkqubo iqala nge-static set of arrays kunye ne-static data relocation: okokuqala, yonke idatha yosuku lwangoku ilayishwe kwimemori, kwaye akukho kufikelela kwidisk eyongezelelweyo eyenziwayo, wonke umsebenzi uqhutyelwa kuphela kwimemori. Xa inkqubo iqala, yonke idatha yereferensi sele ilungisiwe, ngoko ke uphendlo lusebenza kakuhle kakhulu kwaye luthatha ixesha elincinci ngexesha lokusebenza. Zonke iitheyibhile zenziwe ngoluhlu oluphazamisayo kunye nemithi yezakhiwo zedatha eziguquguqukayo ukuze zingadingi ulwabiwo lwememori ngexesha lokuqhuba.

Makhe sithi gqabagqaba ngembali yophuhliso lwenkqubo yethu yorhwebo kunye nokucoca.
Inguqu yokuqala yoyilo lwenkqubo yokurhweba kunye nokucoca yakhiwe kwinto ebizwa ngokuba yintsebenziswano ye-Unix: imemori ekwabelwana ngayo, i-semaphores kunye nemigca isetyenzisiwe, kwaye inkqubo nganye yayiquka intambo enye. Le ndlela yokusebenza yayixhaphakile ekuqaleni kweminyaka yee-1990.

Inguqulelo yokuqala yenkqubo iqulethe amanqanaba amabini eGateway kunye neseva ephakathi yenkqubo yokurhweba. Ukuhamba komsebenzi kwaba ngolu hlobo:

  • Umxhasi uthumela isicelo, esifikelela kwiSango. Ihlola ukunyaniseka kwefomathi (kodwa kungekhona idatha ngokwayo) kwaye iyala ukuthengiselana okungalunganga.
  • Ukuba isicelo solwazi sithunyelwe, senziwe kwindawo; ukuba sithetha ngentengiselwano, emva koko iqondiswe kumncedisi ophakathi.
  • Injini yokurhweba emva koko iqhuba ukuthengiselana, iguqula imemori yendawo, kwaye ithumele impendulo kwintengiselwano kunye nokuthengiselana ngokwayo ukuphindaphinda usebenzisa i-injini yokuphindaphinda eyahlukileyo.
  • I-Gateway ifumana impendulo kwi-node ephakathi kwaye iyithumele kumxhasi.
  • Emva kwexesha elithile, i-Gateway ifumana intengiselwano ngokusebenzisa indlela yokuphindaphinda, kwaye ngeli xesha iyenza kwindawo, iguqula izakhiwo zayo zedatha ukwenzela ukuba ulwazi olulandelayo lucele lubonise idatha yamva nje.

Enyanisweni, ichaza imodeli yokuphindaphinda apho i-Gateway iphindaphinda ngokupheleleyo izenzo ezenziwe kwinkqubo yokurhweba. Umjelo wokuphindaphinda owahlukileyo waqinisekisa ukuba utshintshiselwano lwenziwa ngendlela efanayo kwiindawo ezininzi zofikelelo.

Ekubeni ikhowudi yayinomsonto omnye, i-classic scheme enefoloko zenkqubo yayisetyenziselwa ukukhonza abaninzi abathengi. Nangona kunjalo, kwakubiza kakhulu ukufohla yonke i-database, ngoko ke iinkqubo zenkonzo ezilula zisetyenzisiweyo eziqokelele iipakethi kwiiseshoni ze-TCP kwaye zidluliselwe kumgca omnye (i-SystemV Message Queue). I-Gateway kunye neNjini yoRhwebo yasebenza kuphela ngalo mgca, ithatha intengiselwano ukusuka apho ukuze iqhutywe. Kwakungasenakwenzeka ukuthumela impendulo kuyo, kuba kwakungacacanga ukuba yeyiphi inkqubo yenkonzo ekufuneka ifundwe. Ngoko siye sabhenela kwiqhinga: inkqubo nganye yefolokhwe yazenzela umgca wokuphendula, kwaye xa isicelo singena kumgca ongenayo, ithegi yomgca wokuphendula yongezwa ngokukhawuleza kuyo.

Ukukopa rhoqo izixa ezikhulu zedatha ukusuka emgceni ukuya emgceni kudale iingxaki, ngakumbi eziqhelekileyo kwizicelo zolwazi. Ke ngoko, sasebenzisa elinye iqhinga: ukongeza kumgca wokuphendula, inkqubo nganye nayo yakha inkumbulo ekwabelwana ngayo (iMemori ekwabelwana ngayo yeSystemV). Iiphakheji ngokwazo zafakwa kuyo, kwaye kuphela ithegi yayigcinwe kumgca, evumela umntu ukuba afumane iphakheji yokuqala. Oku kuncede ukugcina idatha kwi-cache yeprosesa.

I-SystemV IPC ibandakanya izinto eziluncedo zokujonga imeko yomgca, inkumbulo, kunye nezinto ze-semaphore. Sisebenzise oku ngokusebenzayo ukuqonda okwenzekayo kwinkqubo ngexesha elithile, apho iipakethi zaqokelelwa khona, yintoni ebivaliwe, njl.

Uphuculo lokuqala

Okokuqala, sayilahla i-Gateway yenkqubo enye. I-drawback yayo ebalulekileyo yayikukuba inokusingatha enye intengiselwano yophindaphindo okanye isicelo esinye solwazi kumxhasi. Kwaye njengoko umthwalo usanda, i-Gateway iya kuthatha ixesha elide ukucubungula izicelo kwaye ayiyi kukwazi ukujongana nokuphindaphinda ukuhamba. Ukongeza, ukuba umxhasi uthumele intengiselwano, ke kufuneka ujonge ukunyaniseka kwayo kwaye uyithumele phambili. Ngoko ke, sitshintshe inkqubo ye-Gateway enye kunye namacandelo amaninzi anokuthi asebenze ngokufanayo: ulwazi olunemisonto emininzi kunye neenkqubo zokuthengiselana ezisebenza ngokuzimeleyo kwenye indawo yememori ekwabelwana ngayo usebenzisa i-RW yokuvala. Kwaye kwangaxeshanye sazisa iinkqubo zokuthumela kunye nokuphindaphinda.

Impembelelo yoRhwebo oluPhakamileyo

Le nguqulelo ingentla yolwakhiwo ibikho kude kube ngo-2010. Okwangoku, asisanelisekanga ngokusebenza kweeseva ze-HP Superdome. Ukongeza, uyilo lwe-PA-RISC lwaluphantse lwafa; umthengisi akazange abonelele ngohlaziyo olubalulekileyo. Ngenxa yoko, saqala ukusuka kwi-HP UX/PA RISC ukuya kwiLinux/x86. Utshintsho lwaqala ngokuhlengahlengiswa kweeseva zokufikelela.

Kwakutheni ukuze kufuneke sitshintshe i-architecture kwakhona? Inyani yeyokuba ukurhweba okuphezulu-frequency kutshintshe kakhulu iprofayili yomthwalo kumbindi wenkqubo.

Masithi sinentengiselwano encinci ebangele utshintsho olubalulekileyo lwexabiso - umntu uthenge isiqingatha sebhiliyoni yeedola. Emva kwee-milliseconds ezimbalwa, bonke abathathi-nxaxheba beemarike bayayibona le nto kwaye baqale ukwenza ulungiso. Ngokwemvelo, izicelo zilandelelana kumgca omkhulu, apho inkqubo iya kuthatha ixesha elide ukuyisusa.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Ngeli xesha le-50 ms, isantya esiphakathi simalunga nama-16 amawaka entengiselwano ngomzuzwana. Ukuba sinciphisa ifestile ukuya kwi-20 ms, sifumana isantya esiphakathi kwe-90 lamawaka eentengiselwano ngesibini, kunye ne-200 amawaka eentengiselwano kwi-peak. Ngamanye amazwi, umthwalo awutshintshi, ngokugqabhuka ngokukhawuleza. Kwaye umgca wezicelo kufuneka usoloko uqwalaselwe ngokukhawuleza.

Kodwa kutheni kukho umgca kwaphela? Ngoko, kumzekelo wethu, abaninzi abasebenzisi baqaphele utshintsho lwexabiso kwaye bathumela ukuthengiselana ngokufanelekileyo. Beza kwi-Gateway, iyazicwangcisa, ibeka iodolo ethile kwaye ibathumele kwinethiwekhi. Iirutha zishixisa iipakethi kwaye zizigqithisele phambili. Iphakheji kabani efike kuqala, loo ntengiselwano "iphumelele". Ngenxa yoko, abathengi botshintshiselwano baqala ukuqaphela ukuba ukuba ukuthengiselana okufanayo kuthunyelwe kwiiGateways ezininzi, ngoko ke amathuba okusebenza kwayo ngokukhawuleza anda. Kungekudala, iirobhothi zotshintshiselwano zaqala ukubetha i-Gateway ngezicelo, kwaye kwabakho i-avalanche yentengiselwano.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Umjikelo omtsha wendaleko

Emva kovavanyo olubanzi kunye nophando, satshintshela kwi-kernel yenkqubo yokusebenza yexesha langempela. Kule nto sikhethe iRedHat Enterprise MRG Linux, apho i-MRG imele ukuthumela imiyalezo ngexesha lokwenyani. Inzuzo yeepetshi zexesha langempela kukuba baphucula inkqubo yokuphunyezwa ngokukhawuleza: zonke iinkqubo zifakwe kumgca we-FIFO, ii-cores ziyakwazi ukuhlukaniswa, akukho kukhutshwa, zonke iintengiselwano zicutshungulwa ngokulandelelana okungqongqo.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1
Ubomvu - ukusebenza kunye nomgca kwi-kernel eqhelekileyo, eluhlaza - ukusebenza kwi-kernel yexesha langempela.

Kodwa ukufumana i-latency ephantsi kwiiseva eziqhelekileyo akulula kangako:

  • Imodi ye-SMI, ekwi-architecture ye-x86 isiseko sokusebenza kunye neeperipherals ezibalulekileyo, iphazamisa kakhulu. Ukucutshungulwa kwazo zonke iintlobo zeziganeko ze-hardware kunye nokulawulwa kwamacandelo kunye nezixhobo zenziwa yi-firmware kwindlela ebizwa ngokuba yi-SMI ecacileyo, apho inkqubo yokusebenza ayiboni ukuba yintoni i-firmware eyenza konke. Njengomthetho, bonke abathengisi abakhulu banikezela ngezongezo ezikhethekileyo kwiiseva ze-firmware ezivumela ukunciphisa inani le-SMI processing.
  • Akufuneki kubekho ulawulo oluguquguqukayo lwe-frequency processor, oku kukhokelela kwixesha elongezelelweyo lokunciphisa.
  • Xa ushicilelo lwenkqubo yefayile lugungxulwa, iinkqubo ezithile zenzeka kwi kernel ezibangela ulibaziseko olungalindelekanga.
  • Kuya kufuneka ubeke ingqalelo kwizinto ezinje nge-CPU Affinity, ukuphazamisa ubudlelwane, i-NUMA.

Ndimele nditsho ukuba isihloko sokuseta i-Linux hardware kunye ne-kernel ye-realtime processing ifanelwe inqaku elahlukileyo. Sichithe ixesha elininzi sizama kwaye siphanda ngaphambi kokuba sifumane iziphumo ezilungileyo.

Xa usuka kwiiseva ze-PA-RISC ukuya kwi-x86, khange kufuneke siyitshintshe kakhulu ikhowudi yenkqubo, siyihlengahlengise kwaye siyihlengahlengise kwakhona. Kwangaxeshanye, salungisa iziphene ezininzi. Ngokomzekelo, imiphumo yokuba i-PA RISC yayiyinkqubo ye-Big endian, kwaye i-x86 yayiyinkqubo encinci ye-endian, ngokukhawuleza yavela: umzekelo, idatha yayifundwa ngokungalunganga. I-trickier bug kukuba i-PA RISC isebenzisa ngokungaguquguqukiyo (Iyahambelana ngokulandelelana) ufikelelo kwimemori, ngelixa i-x86 inokuphinda iodole imisebenzi yokufunda, ngoko ke ikhowudi ebisebenza ngokupheleleyo kwelinye iqonga iye yaphuka kwelinye.

Emva kokutshintshela kwi-x86, ukusebenza kunyuke phantse ngokuphindwe kathathu, ixesha lokusetyenzwa kwentengiselwano lehla ukuya kuma-60 ΞΌs.

Ngoku makhe sijonge ngakumbi ukuba loluphi utshintsho oluphambili olwenziwe kuyilo lwenkqubo.

Hot reserve epic

Xa sitshintshela kwiiseva zempahla, sasisazi ukuba azithembekanga kangako. Ke ngoko, xa usenza ulwakhiwo olutsha, thina i-priori sicingela ukusilela kwendawo enye okanye ngaphezulu. Ke ngoko, inkqubo yokulinda eshushu ibifuneka enokuthi itshintshe ngokukhawuleza koomatshini bokugcina.

Ukongeza, kwakukho ezinye iimfuno:

  • Naphantsi kwazo naziphi na iimeko kufuneka uphulukane neentengiselwano ezicwangcisiweyo.
  • Inkqubo kufuneka icace ngokupheleleyo kwiziseko zophuhliso zethu.
  • Abathengi akufuneki babone uqhagamshelo oluhlileyo.
  • Ugcino akufuneki luzise ukulibaziseka okubalulekileyo kuba lo ngumba obalulekileyo kutshintshiselwano.

Xa usenza inkqubo yokulinda eshushu, asizange siqwalasele iimeko ezinjalo njengokusilela okuphindwe kabini (umzekelo, inethiwekhi kwiseva enye yayeka ukusebenza kwaye umncedisi oyintloko waqina); akazange acinge ukuba kunokwenzeka iimpazamo kwisoftware kuba zichongiwe ngexesha lovavanyo; kwaye akazange aqwalasele ukusebenza okungalunganga kwe-hardware.

Ngenxa yoko, sifike kwisicwangciso esilandelayo:

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

  • Umncedisi oyintloko unxibelelane ngokuthe ngqo neeseva zeGateway.
  • Zonke iintengiselwano ezifunyenwe kwiseva ephambili zaphinda zaphindwa ngokukhawuleza kwiseva yogcino ngetshaneli eyahlukileyo. Umlamli (uRhuluneli) ulungelelanise ukutshintshwa ukuba kukho iingxaki ezivele.

    I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

  • Umncedisi oyintloko uqhubekisele phambili utshintshiselwano ngalunye kwaye walinda ukuqinisekiswa kwi-server yokugcina. Ukugcina i-latency incinci, sikunqande ukulinda ukuba intengiselwano igqitywe kwiseva yokugcina. Ekubeni ixesha elithathiweyo lokuthengiselana ukuhamba kwinethiwekhi lifaniswa nexesha lokubulawa, akukho latency eyongezelelweyo yongezwa.
  • Singajonga kuphela ubume bokuqhubekeka beyona nto iphambili kunye neeseva ezigcinayo kwintengiselwano yangaphambili, kwaye ubume bokuqhubekeka bentengiselwano yangoku bebungaziwa. Ekubeni sisasebenzisa iinkqubo ezinemisonto enye, ukulinda impendulo evela kwi-Backup bekuya kunciphisa yonke inkqubo yokuqhuba, ngoko ke senze ukulungelelaniswa okufanelekileyo: sihlolisise umphumo wentengiselwano yangaphambili.

I-Evolution yoyilo lwenkqubo yokurhweba kunye nokucoca ye-Moscow Exchange. Icandelo loku-1

Isicwangciso sasebenza ngolu hlobo lulandelayo.

Masithi umncedisi oyintloko uyayeka ukuphendula, kodwa iiGateways ziyaqhubeka nokunxibelelana. Ukuphuma kwexesha kwenzeka kwiseva yogcino, iqhagamshelana neRhuluneli, eyinika indima yomncedisi oyintloko, kwaye zonke iiGateways zitshintshela kumncedisi oyintloko omtsha.

Ukuba umncedisi oyintloko ubuyela kwi-intanethi, iphinda ibangele ixesha langaphakathi, kuba akuzange kubekho iifowuni kumncedisi ukusuka kwiSango ixesha elithile. Wandula ke aphethukele kwiRhuluneli, ize imkhuphele ecaleni kweli cebo. Ngenxa yoko, utshintshiselwano lusebenza kunye nomncedisi omnye de kube sekupheleni kwexesha lokurhweba. Ukusukela ukuba kunokwenzeka ukuba ukusilela komncedisi kusezantsi kakhulu, olu dweliso lujongwe lwamkelekile; belungenayo ingqiqo entsonkothileyo kwaye kulula ukuyivavanya.

Ukuqhubeka.

umthombo: www.habr.com

Yongeza izimvo