Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Mhoroi mose! Zita rangu ndiSergey Kostanbaev, paShanduro ndiri kugadzira musimboti weiyo yekutengesa system.

Apo mafirimu eHollywood anoratidza New York Stock Exchange, inogara ichiita seizvi: mhomho yevanhu, munhu wose ari kudanidzira chimwe chinhu, achizunguza mapepa, mhirizhonga yakakwana iri kuitika. Izvi hazvina kumboitika pano paMoscow Exchange, nokuti kutengeserana kwave kuchiitwa nemagetsi kubva pakutanga uye kunobva pamapuratifomu maviri makuru - Spectra (forex market) uye ASTS (exchange exchange, stock and money market). Uye nhasi ndinoda kutaura nezve shanduko yezvivakwa zveASTS zvekutengesa uye kuchenesa system, nezve akasiyana mhinduro uye zvakawanikwa. Nyaya yacho ichange yakareba, saka ndaifanira kuityora muzvikamu zviviri.

Isu tiri vamwe vevashoma vanotsinhana pasi pano vanotengeserana midziyo yemakirasi ese uye inopa huwandu hwakazara hwekuchinjana masevhisi. Semuenzaniso, gore rapfuura takaisa pechipiri pasi rose maererano nehuwandu hwekutengesa mabhondi, nzvimbo yechi25 pakati pese masheya ekuchinjana, 13th nzvimbo mumari pakati pekutsinhana kwevanhu.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Kune vatori vechikamu vanotengeserana nehunyanzvi, senge nguva yekupindura, kugadzikana kwekugovera nguva (jitter) uye kuvimbika kweiyo yakaoma yakaoma. Isu parizvino tinogadzira makumi emamiriyoni ekutengeserana pazuva. Iko kugadzirisa kwega kwega kutengeserana neiyo system kernel kunotora makumi emamicroseconds. Zvechokwadi, vanofambisa mafoni paEvha Idzva Idzva kana injini dzekutsvaga ivo pachavo vane basa rakakwirira kupfuura redu, asi maererano nebasa rekushanda, pamwe chete nemaitiro ataurwa pamusoro apa, vashomanana vanogona kuenzanisa nesu, zvinoratidzika kwandiri. Panguva imwecheteyo, zvakakosha kwatiri kuti sisitimu hainonoke kwesekondi, inoshanda zvakadzikama, uye vese vashandisi vari padanho rakaenzana.

Nhoroondo shoma

Muna 1994, iyo yeAustralia ASTS system yakatangwa paMoscow Interbank Currency Exchange (MICEX), uye kubva panguva iyoyo nhoroondo yeRussia yekutengeserana kwemagetsi inogona kuverengwa. Muna 1998, dhizaini yekutsinhana yakagadziridzwa kuunza kutengeserana kweInternet. Kubva ipapo, kumhanya kwekuita kwezvigadziriso zvitsva uye shanduko yekuvaka mune ese masisitimu uye subsystems kwave kungowedzera simba.

Mumakore iwayo, iyo yekutsinhana sisitimu yakashanda pane hi-end hardware - yekupedzisira-yakavimbika HP Superdome 9000 maseva (akavakwa pamusoro PA-RISC), umo zvachose zvinhu zvose zvakadhindwa: kuisa / kuburitsa subsystems, network, RAM (chaizvoizvo, pakanga paine RAID array ye RAM), processors (hot-swappable). Zvaikwanisika kuchinja chero chikamu cheseva pasina kumisa muchina. Taivimba nemidziyo iyi uye taiiona seyakakundikana-yakachengeteka. Iyo yekushandisa system yaive Unix-yakafanana neHP UX system.

Asi kubva munenge muna 2010, chiitiko chakabuda chinodaidzwa kuti high-frequency trading (HFT), kana kuti high-frequency trading - kungoisa, stock exchange marobhoti. Mumakore 2,5 chete, mutoro pamaseva edu wakawedzera ka140.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Zvakanga zvisingabviri kumira mutoro wakadaro nemavakirwo ekare nemichina. Zvakanga zvakafanira neimwe nzira kugadzirisa.

Musha

Zvikumbiro zvekuchinjana system zvinogona kukamurwa kuva marudzi maviri:

  • Transactions. Kana iwe uchida kutenga madhora, migove kana chimwe chinhu, iwe unotumira kutengeserana kune iyo yekutengesa system uye unogamuchira mhinduro nezvekubudirira.
  • Zvikumbiro zvemashoko. Kana iwe uchida kuziva mutengo uripo, tarisa bhuku reodha kana indices, wozotumira zvikumbiro zveruzivo.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Schematically, musimboti weiyo system unogona kukamurwa kuita nhanho nhatu:

  • Chiyero chevatengi, panoshanda vatengesi nevatengi. Vese vanodyidzana nemaseva ekuwana.
  • Magedhi maseva maseva ecaching ayo anogadzirisa zvese zvikumbiro zveruzivo munharaunda. Iwe unoda kuziva kuti ndeupi mutengo weSberbank shares pari zvino kutengeserana? Chikumbiro chinoenda kune sevha yekuwana.
  • Asi kana iwe uchida kutenga migove, ipapo chikumbiro chinoenda kune yepakati server (Trade Engine). Kune imwe sevha yakadaro yemhando yega yega yemusika, ivo vanoita basa rakakosha, ndezvavo isu takagadzira iyi system.

Nheyo yehurongwa hwekutengesa ndeye yakangwara mu-memory dhatabhesi umo zvese zvekutengesa ndezvekuchinjana. Nheyo yacho yakanyorwa muC, iyo chete yekunze inotsamira yaive libc raibhurari uye pakanga pasina simba rekugoverwa kwendangariro zvachose. Kuti uderedze nguva yekugadzira, iyo system inotanga neyakagadzika seti yearrays uye ine static data relocation: kutanga, data yese yezuva razvino inotakurwa mundangariro, uye hapana imwe dhisiki yekuwana inoitwa, basa rese rinoitwa mundangariro chete. Kana iyo system yatanga, data rese rereferenzi rakatorongwa, saka kutsvaga kunoshanda zvakanyanya uye kunotora nguva shoma mukumhanya. Matafura ese anogadzirwa ane intrusive rondedzero uye miti yeakasimba data zvimiro kuitira kuti asade ndangariro kugoverwa panguva yekumhanya.

Ngatimbotarisai muchidimbu nhoroondo yekuvandudzwa kwekutengeserana kwedu uye kuchenesa system.
Yekutanga vhezheni yekutengeserana uye yekuchenesa system architecture yakavakirwa pane iyo inonzi Unix kupindirana: yakagovaniswa ndangariro, semaphores uye mitsara yakashandiswa, uye imwe neimwe nzira yaive netambo imwechete. Iyi nzira yakanga yakapararira mukutanga kwema1990.

Yekutanga vhezheni yehurongwa yaive nematanho maviri eGateway uye yepakati server yeiyo yekutengesa system. Basa rekushanda rakaita seizvi:

  • Mutengi anotumira chikumbiro, chinosvika paGadhi. Iyo inotarisa kutendeseka kweiyo fomati (asi kwete iyo data pachayo) uye inoramba zvisirizvo kutengeserana.
  • Kana chikumbiro cheruzivo chakatumirwa, chinoitwa munharaunda; kana tiri kutaura nezve transaction, zvino inotungamirwa kune yepakati server.
  • Injini yekutengesa inobva yagadzirisa kutengeserana, inogadzirisa ndangariro yenzvimbo, uye inotumira mhinduro kune kutengeserana uye kutengeserana pachayo kwekudzokorora uchishandisa yakaparadzana yekudzokorora injini.
  • Iyo Gateway inogamuchira mhinduro kubva pakati node uye inoendesa kune mutengi.
  • Mushure menguva yakati, Gedhi rinogashira kutengeserana kuburikidza nenzira yekudzokorora, uye panguva ino inozviita munharaunda, ichichinja dhizaini yayo kuitira kuti ruzivo runotevera rukumbiro ruratidze data razvino.

Muchokwadi, inotsanangura muenzaniso wekudzokorora umo iyo Gateway yakadzokorora zvachose zviito zvakaitwa muhurongwa hwekutengesa. Imwe nzira yekudzokorora yakaparadzana yakave nechokwadi chekuti kutengeserana kwakaitwa muhurongwa hwakafanana munzvimbo dzakawanda dzekuwana.

Sezvo iyo kodhi yaive imwechete-shinda, chirongwa chekare chine maforogo akashandiswa kushandira vatengi vazhinji. Nekudaro, zvaive zvakadhura kuforoka dhatabhesi rese, saka maitiro akareruka masevhisi akashandiswa akaunganidza mapaketi kubva kumisangano yeTCP ndokuaendesa kune imwe mutsara (SystemV Message Queue). Gateway uye Trade Injini yakashanda chete nemutsara uyu, ichitora matransaction kubva ipapo kuti iitwe. Yakanga isingachakwanisi kutumira mhinduro kwairi, nokuti yakanga isiri pachena kuti ndeipi nzira yebasa inofanira kuiverenga. Saka takatsvaga hunyengeri: yega yega yega yakagadzira mutsara wekupindura, uye kana chikumbiro chakauya mumutsara unouya, tag yemutsara wekupindura yakabva yawedzerwa kwairi.

Kugara tichikopa huwandu hwakawanda hwe data kubva pamutsetse kuenda kumutsara kwakagadzira matambudziko, kunyanya anowanzoitika kune zvikumbiro zveruzivo. Naizvozvo, isu takashandisa humwe hunyengeri: mukuwedzera kune mutsara wekupindura, yega yega maitiro akagadzira yakagovaniswa ndangariro (SystemV Yakagoverwa Memory). Iwo mapakeji pachawo akaiswa mairi, uye chete tag yakachengetwa mumutsetse, ichibvumira munhu kuwana iyo yekutanga package. Izvi zvakabatsira kuchengetedza data mu processor cache.

SystemV IPC inosanganisira zvinoshandiswa pakuona mamiriro emutsetse, ndangariro, uye semaphore zvinhu. Isu takashandisa izvi nekushingairira kuti tinzwisise zvaiitika muhurongwa pane imwe nguva, uko mapaketi akaunganidzwa, chii chakavharwa, nezvimwe.

First modernizations

Chekutanga pane zvese, isu takabvisa iyo imwechete-maitiro Gateway. Yayo yakakosha dhizaini yaive yekuti yaigona kubata imwe yekudzokorora kutengeserana kana imwe ruzivo rwekukumbira kubva kumutengi. Uye sezvo mutoro unowedzera, Gateway inotora nguva yakareba kugadzirisa zvikumbiro uye haizokwanisi kugadzirisa kuyerera kwekudzokorora. Uye zvakare, kana mutengi akatumira kutengeserana, saka iwe unongoda kutarisa chokwadi chayo uye kuiendesa mberi. Naizvozvo, isu takatsiva iyo imwe chete Gateway maitiro neakawanda zvikamu zvinogona kumhanya zvakafanana: akawanda-akarukwa ruzivo uye maitiro ekutengeserana anomhanya akazvimirira ega pane yakagovaniswa ndangariro nzvimbo uchishandisa RW kukiya. Uye panguva imwechete isu takaunza kutumira uye kudzokorora maitiro.

Impact yeHigh Frequency Trading

Iyo iri pamusoro vhezheni yezvivakwa yaivepo kusvika 2010. Zvichakadaro, isu takanga tisisagutsikane nekuita kweHP Superdome maseva. Uye zvakare, iyo PA-RISC yekuvaka yakapotsa yafa; mutengesi haana kupa chero yakakosha kugadzirisa. Nekuda kweizvozvo, takatanga kutama kubva kuHP UX/PA RISC kuenda kuLinux/x86. Shanduko yakatanga nekugadziriswa kwemaseva ekuwana.

Sei taifanira kuchinja dhizaini zvakare? Icho chokwadi ndechekuti yakakwira-frequency yekutengesa yakachinja zvakanyanya iyo mutoro profile pane system musimboti.

Ngatitii tine kutengeserana kudiki kwakakonzera shanduko yakakosha yemutengo - mumwe munhu akatenga hafu yebhirioni yemadhora. Mushure memamilliseconds mashoma, vatori vechikamu vese vemusika vanoona izvi uye vanotanga kugadzirisa. Sezvingatarisirwa, zvikumbiro zvinopinda mumutsara muhombe, iyo iyo sisitimu inotora nguva yakareba kuti ibvise.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Panguva ino ye50 ms interval, avhareji yekumhanya ndeye 16 zviuru zvekutengesa pasekondi. Kana tikaderedza hwindo kusvika ku20 ms, tinowana avhareji yekumhanya ye90 zviuru zvekutengesa pasekondi, ne200 zviuru zvekutengeserana pakakwirira. Mune mamwe mazwi, mutoro wacho hausi wenguva dzose, nekuputika kamwe kamwe. Uye mutsara wezvikumbiro unofanirwa kugara uchigadziriswa nekukurumidza.

Asi nei paine mutsara zvachose? Saka, mumuenzaniso wedu, vashandisi vazhinji vakacherechedza kuchinja kwemutengo uye vakatumira kutengeserana maererano. Vanouya kuGateway, inovaisa serialize, inoisa imwe kurongeka uye inovatumira kune network. Marouters anokwenya mapaketi uye oaendesa mberi. Ndiani pasuru yakasvika pekutanga, iyo kutengeserana "yakakunda". Nekuda kweizvozvo, vatengi vekuchinjana vakatanga kuona kuti kana kutengeserana kwakafanana kwakatumirwa kubva kune akati wandei Gateways, ipapo mikana yekukurumidza kugadzirisa kwayo yakawedzera. Nenguva isipi, marobhoti ekuchinjana akatanga kubhomba Gateway nezvikumbiro, uye avalanche yekutengeserana yakamuka.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Rutsva rutsva rwemhindumupindu

Mushure mekuedza kwakawanda uye kutsvagisa, isu takachinjira kune chaiyo-nguva yekushandisa system kernel. Kune izvi takasarudza RedHat Enterprise MRG Linux, uko MRG inomiririra meseji chaiyo-nguva grid. Kubatsira kwezvimedu-chaiyo-nguva ndezvekuti ivo vanokwiridzira sisitimu yekukurumidza kuuraya inokwanisika: ese maitirwo akaiswa mumutsara weFIFO mutsara, macores anogona kuparadzaniswa, hapana ejections, zvese kutengeserana zvinogadziriswa mukutevedzana kwakasimba.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1
Tsvuku - kushanda nemutsara mune imwe nguva kernel, yakasvibirira - kushanda mune chaiyo-nguva kernel.

Asi kuwana yakaderera latency pamaseva enguva dzose hazvisi nyore:

  • Iyo SMI modhi, iyo mune x86 architecture ndiyo hwaro hwekushanda neakakosha peripherals, inopindira zvakanyanya. Kugadziriswa kwemarudzi ese ezviitiko zvehardware uye manejimendi ezvikamu nemidziyo inoitwa neiyo firmware mune iyo inonzi pachena SMI modhi, umo iyo inoshanda sisitimu haione zviri kuitwa neiyo firmware zvachose. Sezvo mutemo, vese vatengesi vakuru vanopa akakosha ekuwedzera kune firmware maseva anobvumira kudzikisa huwandu hweSMI kugadzirisa.
  • Panofanira kunge pasina simba rekutonga kweiyo processor frequency, izvi zvinotungamira kune imwe nguva yekudzikira.
  • Kana iyo faira system log ikanyungudutswa, mamwe maitiro anoitika mukernel anokonzera kunonoka kusingafungidzirwe.
  • Iwe unofanirwa kutarisisa kune zvinhu zvakaita seCPU Affinity, Kukanganisa kushamwaridzana, NUMA.

Ndinofanira kutaura kuti iyo nyaya yekumisikidza Linux Hardware uye kernel ye realtime processing inokodzera chinyorwa chakasiyana. Takapedza nguva yakawanda tichiyedza nekutsvaga tisati tawana mubairo wakanaka.

Pakufamba kubva kuPA-RISC maseva kuenda kux86, isu taisafanirwa kushandura kodhi system zvakanyanya, isu takangoigadzirisa nekuigadzirisa zvakare. Panguva imwecheteyo, takagadzirisa zvipembenene zvakawanda. Semuenzaniso, mhedzisiro yekuti PA RISC yaive Big endian system, uye x86 yaive Diki endian system, yakakurumidza kubuda: semuenzaniso, data yakaverengwa zvisizvo. Iyo trickier bug yaive iyo PA RISC inoshandisa zvinowirirana (Sequentially inopindirana) Memory access, nepo x86 inogona kurodha mashandiro ekuverenga, saka kodhi yaive inoshanda papuratifomu imwe yakaputsika pane imwe.

Mushure mekuchinja kux86, kuita kwakawedzera zvakapetwa katatu, avhareji yenguva yekutengeserana yakaderera kusvika makumi matanhatu ΞΌs.

Ngatitarisei zvakanyanya kuti ndedzipi shanduko dzakakosha dzakaitwa kune system architecture.

Hot reserve epic

Pakuchinjira kumaseva emidziyo, taiziva kuti aive asina kuvimbika. Naizvozvo, pakugadzira chivakwa chitsva, isu a priori takafunga mukana wekutadza kweimwe kana akawanda node. Naizvozvo, hot standby system yaidiwa iyo yaigona kukurumidza kushandura kumichina yekuchengetedza.

Mukuwedzera, paiva nezvimwe zvaidiwa:

  • Pasina mamiriro ezvinhu iwe unofanirwa kurasikirwa neakagadziridzwa kutengeserana.
  • Iyo sisitimu inofanirwa kuve yakajeka kune yedu zvivakwa.
  • Vatengi havafanirwe kuona kudonha kwakabatana.
  • Kuchengetedzwa hakufanirwe kuunza kunonoka kukuru nekuti ichi chinhu chakakosha chekuchinjana.

Paunenge uchigadzira iyo inopisa yekumira sisitimu, isu hatina kufunga nezvezviitiko zvakadaro sekutadza kaviri (somuenzaniso, network pane imwe server yakamira kushanda uye main server yakamira); havana kufunga nezve mukana wekukanganisa musoftware nekuti vanoonekwa panguva yekuyedzwa; uye haana kufunga nezvekushanda kwakashata kwehardware.

Nekuda kweizvozvo, takasvika kune inotevera chirongwa:

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

  • Iyo huru sevha yakabatana zvakananga neGateway maseva.
  • Zvese zvekutengesa zvakagamuchirwa pane huru server zvakadzokororwa ipapo kune backup server kuburikidza neyakasiyana chiteshi. Iyo arbiter (Gavhuna) akaronga shanduko kana paine matambudziko amuka.

    Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

  • Iyo main server yakagadzirisa kutengeserana kwega kwega uye yakamirira kusimbiswa kubva kune backup server. Kuchengeta latency kusvika kushoma, isu takadzivirira kumirira kuti kutengeserana kupedze pane backup server. Sezvo nguva yaitora kutengeserana kufamba netiweki yaive yakaenzana nenguva yekuuraya, hapana imwe latency yakawedzerwa.
  • Isu taigona kungotarisa mamiriro ekugadzirisa eiyo huru uye maseva ekuchengetedza ekare kutengeserana, uye mamiriro ekugadzirisa echizvino chekutengeserana aisazivikanwa. Sezvo isu takanga tichiri kushandisa maitiro e-single-threaded, kumirira mhinduro kubva kuBackup ingadai yakaderedza kuyerera kwese kwekugadzirisa, saka takaita chibvumirano chakanaka: takatarisa mugumisiro wekutengeserana kwekare.

Evolution yezvivakwa zvekutengesa uye kuchenesa system yeMoscow Exchange. Chikamu 1

Chirongwa chacho chakashanda sezvinotevera.

Ngatitii sevha huru inomira kupindura, asi maGateways anoramba achitaurirana. Nguva yekupera inoitika pane yekuchengetedza sevha, inobata Gavhuna, anoipa basa resevha huru, uye ese maGateways anochinja kune itsva main server.

Kana iyo huru sevha ikadzoka pamhepo, zvakare inokonzeresa yemukati nguva yekubuda, nekuti pakange pasina mafoni kune server kubva kuGedhi kwenguva yakati. Ipapo anotendeukirawo kuna Gavhuna, uye anomubvisa pachirongwa chacho. Somugumisiro, kuchinjana kunoshanda nevhavha imwe chete kusvika pakupera kwenguva yekutengesa. Sezvo mukana wekutadza kweserver wakadzikira, chirongwa ichi chaionekwa sechinogamuchirika; chaive chisina pfungwa dzakaoma uye chaive nyore kuyedza.

Zvichaenderera mberi.

Source: www.habr.com

Voeg