Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Kumusta tanan! Ang akong ngalan mao si Sergey Kostanbaev, sa Exchange akong gipalambo ang kinauyokan sa sistema sa pamatigayon.

Kung gipakita sa mga pelikula sa Hollywood ang New York Stock Exchange, kini kanunay nga hitsura: daghang mga tawo, ang tanan nagsinggit, nagwarawara sa mga papel, hingpit nga kagubot ang nahitabo. Wala pa kini mahitabo dinhi sa Moscow Exchange, tungod kay ang trading gihimo sa elektronik nga paagi gikan sa sinugdanan ug gibase sa duha ka nag-unang plataporma - Spectra (forex market) ug ASTS (foreign exchange, stock ug money market). Ug karon gusto kong maghisgot bahin sa ebolusyon sa arkitektura sa ASTS trading ug clearing system, bahin sa lainlaing mga solusyon ug mga nahibal-an. Taas ang istorya, mao nga gibahin nako kini sa duha ka bahin.

Usa kami sa pipila nga mga pagbinayloay sa kalibutan nga nagbaligya sa mga kabtangan sa tanan nga mga klase ug naghatag usa ka tibuuk nga serbisyo sa pagbinayloay. Pananglitan, sa miaging tuig kami nag-ranggo sa ikaduha sa kalibutan sa mga termino sa gidaghanon sa pagbaligya sa bono, ika-25 nga dapit sa tanang stock exchange, ika-13 nga dapit sa capitalization sa mga pampublikong pagbayloay.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Alang sa propesyonal nga mga partisipante sa trading, ang mga parameter sama sa oras sa pagtubag, kalig-on sa pag-apod-apod sa oras (jitter) ug kasaligan sa tibuuk nga komplikado hinungdanon. Nagproseso kami karon sa napulo ka milyon nga mga transaksyon kada adlaw. Ang pagproseso sa matag transaksyon pinaagi sa kernel sa sistema nagkinahanglan og napulo ka microseconds. Siyempre, ang mga mobile operator sa Bisperas sa Bag-ong Tuig o ang mga search engine mismo adunay mas taas nga workload kaysa sa atoa, apan sa mga termino sa workload, inubanan sa nahisgutan sa ibabaw nga mga kinaiya, gamay ra ang mahimong itandi sa amon, ingon nako. Sa parehas nga oras, hinungdanon alang kanamo nga ang sistema dili mohinay sa usa ka segundo, molihok nga lig-on, ug ang tanan nga mga tiggamit naa sa parehas nga sukaranan.

Usa ka gamay nga kasaysayan

Sa 1994, ang sistema sa Australian ASTS gilunsad sa Moscow Interbank Currency Exchange (MICEX), ug gikan nianang higayuna ang kasaysayan sa Russia sa electronic trading mahimong maihap. Sa 1998, ang arkitektura sa pagbinayloay gi-moderno aron ipaila ang pamatigayon sa Internet. Sukad niadto, ang katulin sa pagpatuman sa mga bag-ong solusyon ug pagbag-o sa arkitektura sa tanan nga mga sistema ug mga subsystem nagkakusog.

Niadtong mga tuiga, ang sistema sa pagbinayloay nagtrabaho sa hi-end nga hardware - ultra-kasaligan nga mga server sa HP Superdome 9000 (gitukod sa PA-RISC), diin hingpit nga gidoble ang tanan: mga subsystem sa input/output, network, RAM (sa tinuud, adunay usa ka RAID array sa RAM), mga processor (mainit-swappable). Posible nga usbon ang bisan unsang sangkap sa server nga dili mohunong ang makina. Nagsalig kami sa kini nga mga aparato ug giisip kini nga halos dili luwas. Ang operating system usa ka Unix nga sama sa HP UX nga sistema.

Apan sukad sa mga 2010, usa ka panghitabo ang mitumaw nga gitawag ug high-frequency trading (HFT), o high-frequency trading - sa yanong pagkasulti, stock exchange robots. Sa 2,5 lang ka tuig, ang load sa among mga server mitaas ug 140 ka beses.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Imposible nga maagwanta ang ingon nga lulan sa daan nga arkitektura ug kagamitan. Kinahanglan nga sa usa ka paagi ipahiangay.

Начало

Ang mga hangyo sa exchange system mahimong bahinon sa duha ka matang:

  • Mga transaksyon. Kung gusto ka mopalit og dolyar, share o uban pa, magpadala ka og transaksyon sa trading system ug makadawat og tubag mahitungod sa kalampusan.
  • Mga hangyo sa impormasyon. Kung gusto nimo mahibal-an ang karon nga presyo, tan-awa ang order book o mga indeks, dayon ipadala ang mga hangyo sa impormasyon.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Sa eskematiko, ang kinauyokan sa sistema mahimong bahinon sa tulo ka lebel:

  • Ang lebel sa kliyente, diin nagtrabaho ang mga broker ug kliyente. Silang tanan nakig-uban sa mga server sa pag-access.
  • Ang mga server sa Gateway mao ang mga server sa pag-cache nga lokal nga nagproseso sa tanan nga mga hangyo sa impormasyon. Gusto ba nimong mahibal-an kung unsang presyo ang gibaligya karon sa mga bahin sa Sberbank? Ang hangyo moadto sa access server.
  • Apan kung gusto nimo mopalit mga bahin, nan ang hangyo moadto sa sentral nga server (Trade Engine). Adunay usa sa ingon nga server alang sa matag matang sa merkado, sila adunay hinungdanon nga papel, kini alang kanila nga among gibuhat kini nga sistema.

Ang kinauyokan sa sistema sa pamatigayon usa ka maalamon nga database sa memorya diin ang tanan nga mga transaksyon mga transaksyon sa pagbinayloay. Ang base gisulat sa C, ang bugtong eksternal nga dependency mao ang libc library ug wala'y dinamikong alokasyon sa memorya. Aron makunhuran ang oras sa pagproseso, ang sistema magsugod sa usa ka static nga set sa mga arrays ug uban ang static nga relokasyon sa datos: una, ang tanan nga datos alang sa karon nga adlaw gikarga sa panumduman, ug wala’y dugang nga pag-access sa disk nga gihimo, ang tanan nga trabaho gihimo lamang sa panumduman. Kung magsugod na ang sistema, ang tanan nga datos sa pakisayran nahan-ay na, mao nga ang pagpangita molihok nga episyente kaayo ug gamay ra ang oras sa pagdagan. Ang tanan nga mga lamesa gihimo nga adunay mga intrusive nga lista ug mga punoan alang sa dinamikong istruktura sa datos aron dili sila magkinahanglan nga alokasyon sa memorya sa oras sa pagdagan.

Atong hisgotan sa makadiyot ang kasaysayan sa kalamboan sa atong trading ug clearing system.
Ang unang bersyon sa trading ug clearing system architecture gitukod sa gitawag nga Unix interaction: shared memory, semaphores ug queues gigamit, ug ang matag proseso naglangkob sa usa ka thread. Kini nga pamaagi kaylap sa sayong bahin sa 1990s.

Ang unang bersyon sa sistema adunay duha ka lebel sa Gateway ug usa ka sentral nga server sa sistema sa trading. Ang dagan sa trabaho ingon niini:

  • Ang kliyente nagpadala usa ka hangyo, nga nakaabot sa Gateway. Gisusi niini ang kabalido sa format (apan dili ang datos mismo) ug gisalikway ang dili husto nga mga transaksyon.
  • Kung ang usa ka hangyo sa kasayuran gipadala, kini gipatuman sa lokal; kung naghisgot kami bahin sa usa ka transaksyon, nan kini gi-redirect sa sentral nga server.
  • Giproseso dayon sa makina sa pamatigayon ang transaksyon, gibag-o ang lokal nga panumduman, ug nagpadala usa ka tubag sa transaksyon ug ang transaksyon mismo alang sa pagkopya gamit ang usa ka lahi nga makina sa pagkopya.
  • Ang Gateway makadawat sa tubag gikan sa sentral nga node ug ipadala kini sa kliyente.
  • Paglabay sa pipila ka panahon, ang Gateway makadawat sa transaksyon pinaagi sa mekanismo sa pagkopya, ug niining higayona gipatuman kini sa lokal, pag-usab sa mga istruktura sa datos niini aron ang sunod nga mga hangyo sa impormasyon magpakita sa pinakabag-o nga datos.

Sa tinuud, kini naghulagway sa usa ka modelo sa pagkopya diin ang Gateway hingpit nga gisundog ang mga aksyon nga gihimo sa sistema sa pamatigayon. Ang usa ka bulag nga channel sa pagkopya nagsiguro nga ang mga transaksyon gihimo sa parehas nga pagkasunud sa daghang mga node sa pag-access.

Tungod kay ang code single-threaded, usa ka klasiko nga laraw nga adunay mga tinidor sa proseso ang gigamit sa pagserbisyo sa daghang mga kliyente. Bisan pa, mahal kaayo ang pag-fork sa tibuuk nga database, busa gigamit ang gaan nga mga proseso sa serbisyo nga nagkolekta mga pakete gikan sa mga sesyon sa TCP ug gibalhin kini sa usa ka pila (SystemV Message Queue). Ang Gateway ug Trade Engine nagtrabaho lamang sa kini nga pila, nga nagkuha sa mga transaksyon gikan didto aron ipatuman. Dili na posible nga magpadala usa ka tubag niini, tungod kay dili klaro kung unsang proseso sa serbisyo ang kinahanglan nga basahon kini. Mao nga midangop kami sa usa ka limbong: ang matag usa ka proseso nga nagsanga naghimo usa ka tubag nga pila para sa iyang kaugalingon, ug kung ang usa ka hangyo moabut sa umaabot nga pila, usa ka tag alang sa tubag nga pila gidugang dayon niini.

Ang kanunay nga pagkopya sa daghang mga datos gikan sa pila hangtod sa pila nakamugna og mga problema, labi na kasagaran alang sa mga hangyo sa kasayuran. Busa, migamit kami og laing limbong: dugang sa tubag nga pila, ang matag proseso naghimo usab og shared memory (SystemV Shared Memory). Ang mga pakete mismo ang gibutang niini, ug usa ra ka tag ang gitipigan sa pila, nga gitugotan ang usa nga makit-an ang orihinal nga pakete. Nakatabang kini sa pagtipig sa datos sa cache sa processor.

Ang SystemV IPC naglakip sa mga utilities alang sa pagtan-aw sa kahimtang sa pila, memorya, ug semaphore nga mga butang. Aktibo namong gigamit kini aron masabtan kung unsa ang nahitabo sa sistema sa usa ka partikular nga higayon, diin ang mga pakete natipon, unsa ang gibabagan, ug uban pa.

Unang mga modernisasyon

Una sa tanan, gitangtang namo ang usa ka proseso nga Gateway. Ang mahinungdanong disbentaha niini mao nga kini makadumala sa bisan usa ka transaksyon sa pagkopya o usa ka hangyo sa impormasyon gikan sa usa ka kliyente. Ug samtang motaas ang load, magdugay ang Gateway sa pagproseso sa mga hangyo ug dili na maproseso ang dagan sa replikasyon. Dugang pa, kung ang kliyente nagpadala usa ka transaksyon, kinahanglan nimo nga susihon ang pagkabalido niini ug ipadayon kini. Busa, gipulihan namo ang usa ka proseso sa Gateway nga adunay daghang mga sangkap nga mahimong magkaparehas: multi-threaded nga impormasyon ug mga proseso sa transaksyon nga nagdagan nga independente sa usag usa sa usa ka shared memory area gamit ang RW locking. Ug sa samang higayon gipaila namo ang mga proseso sa pagpadala ug pagkopya.

Epekto sa High Frequency Trading

Ang labaw nga bersyon sa arkitektura naglungtad hangtod sa 2010. Samtang, wala na kami matagbaw sa pasundayag sa mga server sa HP Superdome. Dugang pa, ang arkitektura sa PA-RISC halos patay na; ang tigbaligya wala maghatag bisan unsang hinungdanon nga pag-update. Ingon nga resulta, nagsugod kami sa pagbalhin gikan sa HP UX/PA RISC ngadto sa Linux/x86. Ang transisyon nagsugod sa pagpahiangay sa mga access server.

Ngano nga kinahanglan naton usbon pag-usab ang arkitektura? Ang kamatuoran mao nga ang high-frequency trading dakog kausaban sa load profile sa system core.

Ingnon ta nga kita adunay gamay nga transaksyon nga hinungdan sa usa ka hinungdanon nga pagbag-o sa presyo - adunay mipalit og tunga sa bilyon nga dolyar. Pagkahuman sa pipila ka mga millisecond, ang tanan nga mga partisipante sa merkado nakamatikod niini ug nagsugod sa paghimo sa usa ka pagtul-id. Siyempre, ang mga hangyo naglinya sa usa ka dako nga pila, nga ang sistema magdugay sa paghawan.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Niini nga 50 ms interval, ang kasagaran nga tulin mao ang mahitungod sa 16 ka libo nga mga transaksyon kada segundo. Kung among pakunhuran ang bintana sa 20 ms, makakuha kami usa ka average nga tulin nga 90 ka libo nga mga transaksyon matag segundo, nga adunay 200 ka libo nga mga transaksyon sa peak. Sa laing pagkasulti, ang karga dili kanunay, nga adunay kalit nga pagbuto. Ug ang pila sa mga hangyo kinahanglan kanunay nga maproseso dayon.

Pero nganong naa man gyuy pila? Mao nga, sa among pananglitan, daghang mga tiggamit ang nakamatikod sa pagbag-o sa presyo ug nagpadala mga transaksyon sumala niana. Miabut sila sa Gateway, gi-serialize kini, nagtakda usa ka piho nga order ug gipadala sila sa network. Gi-shuffle sa mga router ang mga pakete ug ipadayon kini. Kang kinsang pakete ang unang niabot, ang maong transaksiyon β€œnagdaog”. Ingon usa ka sangputanan, ang mga kliyente sa pagbinayloay nagsugod nga makamatikod nga kung ang parehas nga transaksyon gipadala gikan sa daghang mga Gateway, nan ang mga higayon sa paspas nga pagproseso niini nagdugang. Sa wala madugay, ang mga robot sa pagbinayloay nagsugod sa pagbomba sa Gateway sa mga hangyo, ug mitungha ang usa ka pagdahili sa mga transaksyon.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Usa ka bag-ong hugna sa ebolusyon

Pagkahuman sa daghang pagsulay ug panukiduki, mibalhin kami sa tinuod nga oras nga operating system kernel. Alang niini among gipili ang RedHat Enterprise MRG Linux, diin ang MRG nagbarog alang sa pagmemensahe sa real-time nga grid. Ang bentaha sa real-time nga mga patch mao nga ilang ma-optimize ang sistema alang sa labing paspas nga posible nga pagpatuman: ang tanan nga mga proseso gilinya sa usa ka FIFO queue, ang mga cores mahimong ilain, walay ejections, ang tanan nga mga transaksyon giproseso sa estrikto nga pagkasunod-sunod.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1
Pula - nagtrabaho sa usa ka pila sa usa ka regular nga kernel, berde - nagtrabaho sa usa ka tinuod nga oras nga kernel.

Apan ang pagkab-ot sa ubos nga latency sa regular nga mga server dili kaayo sayon:

  • Ang SMI mode, nga sa x86 nga arkitektura mao ang basehan sa pagtrabaho uban sa importante nga mga peripheral, dako nga makabalda. Ang pagproseso sa tanan nga mga matang sa mga panghitabo sa hardware ug pagdumala sa mga sangkap ug mga aparato gihimo sa firmware sa gitawag nga transparent SMI mode, diin ang operating system wala makakita kung unsa ang gibuhat sa firmware. Ingon sa usa ka lagda, ang tanan nga dagkong mga tigbaligya nagtanyag mga espesyal nga extension alang sa mga server sa firmware nga nagtugot sa pagkunhod sa kantidad sa pagproseso sa SMI.
  • Kinahanglan nga walay dinamikong pagkontrol sa frequency sa processor, kini mosangpot sa dugang nga downtime.
  • Kung ang file system log na-flush, adunay mga proseso nga mahitabo sa kernel nga hinungdan sa dili matag-an nga mga paglangan.
  • Kinahanglan nimong hatagan ug pagtagad ang mga butang sama sa CPU Affinity, Interrupt affinity, NUMA.

Kinahanglan kong isulti nga ang hilisgutan sa pag-set up sa Linux hardware ug kernel alang sa realtime nga pagproseso angayan sa usa ka bulag nga artikulo. Kami migugol ug daghang panahon sa pag-eksperimento ug pagpanukiduki sa wala pa namo makab-ot ang maayong resulta.

Kung mobalhin gikan sa mga server sa PA-RISC hangtod sa x86, halos dili na namon kinahanglan nga usbon ang code sa sistema, gipahiangay ra namon ug gi-reconfigure kini. Sa parehas nga oras, giayo namon ang daghang mga bug. Pananglitan, ang mga sangputanan sa kamatuoran nga ang PA RISC usa ka Dako nga sistema sa endian, ug ang x86 usa ka Gamay nga sistema sa endian, dali nga mitumaw: pananglitan, ang datos nabasa nga dili husto. Ang labi ka malimbungon nga bug mao ang gigamit sa PA RISC makanunayon nga makanunayon (Sunod-sunod nga makanunayon) ang pag-access sa memorya, samtang ang x86 mahimong mag-order pag-usab sa mga operasyon sa pagbasa, mao nga ang code nga hingpit nga balido sa usa ka plataporma nabungkag sa lain.

Human sa pagbalhin ngadto sa x86, ang pasundayag miuswag halos tulo ka pilo, ang kasagaran nga oras sa pagproseso sa transaksyon mikunhod ngadto sa 60 ΞΌs.

Atong tan-awon pag-ayo kung unsa nga hinungdanon nga mga pagbag-o ang nahimo sa arkitektura sa sistema.

Mainit nga reserba nga epiko

Kung nagbalhin sa mga server sa produkto, nahibal-an namon nga dili kaayo sila kasaligan. Busa, sa paghimo sa usa ka bag-o nga arkitektura, kita sa usa ka priori naghunahuna sa posibilidad sa kapakyasan sa usa o labaw pa nodes. Busa, gikinahanglan ang init nga standby nga sistema nga dali kaayong makabalhin ngadto sa mga backup machine.

Dugang pa, adunay ubang mga kinahanglanon:

  • Sa bisan unsa nga kahimtang kinahanglan nga mawad-an ka sa giproseso nga mga transaksyon.
  • Ang sistema kinahanglan nga hingpit nga transparent sa atong imprastraktura.
  • Dili kinahanglan nga makita sa mga kliyente ang mga nahulog nga koneksyon.
  • Ang mga reserbasyon kinahanglan dili magpaila sa hinungdanon nga paglangan tungod kay kini usa ka kritikal nga hinungdan sa pagbinayloay.

Kung maghimo usa ka mainit nga standby system, wala namon gikonsiderar ang ingon nga mga senaryo sama sa doble nga mga kapakyasan (pananglitan, ang network sa usa ka server mihunong sa pagtrabaho ug ang panguna nga server nagyelo); wala maghunahuna sa posibilidad sa mga kasaypanan sa software tungod kay sila giila sa panahon sa pagsulay; ug wala maghunahuna sa sayop nga operasyon sa hardware.

Ingon usa ka sangputanan, nakaabut kami sa mosunod nga laraw:

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

  • Ang nag-unang server direktang nakig-interact sa mga Gateway server.
  • Ang tanan nga mga transaksyon nga nadawat sa nag-unang server gisubli dayon sa backup nga server pinaagi sa usa ka lahi nga channel. Ang arbiter (Gobernador) nag-coordinate sa switching kung adunay mga problema nga motumaw.

    Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

  • Ang nag-unang server nagproseso sa matag transaksyon ug naghulat sa kumpirmasyon gikan sa backup server. Aron mapabilin ang latency sa minimum, gilikayan namo ang paghulat nga makompleto ang transaksyon sa backup server. Tungod kay ang oras nga gikuha alang sa usa ka transaksyon sa pagbiyahe sa tibuuk nga network ikatandi sa oras sa pagpatuman, wala’y dugang nga latency nga gidugang.
  • Mahimo ra namon susihon ang kahimtang sa pagproseso sa panguna ug backup nga mga server alang sa miaging transaksyon, ug ang kahimtang sa pagproseso sa karon nga transaksyon wala mahibal-an. Tungod kay naggamit pa kami og single-threaded nga mga proseso, ang paghulat sa tubag gikan sa Backup makapahinay unta sa tibuok nga dagan sa pagproseso, mao nga naghimo kami og makatarunganon nga pagkompromiso: among gisusi ang resulta sa miaging transaksyon.

Ang ebolusyon sa arkitektura sa trading ug clearing system sa Moscow Exchange. Bahin 1

Ang laraw nagtrabaho ingon sa mosunod.

Ingnon ta nga ang nag-unang server mihunong sa pagtubag, apan ang mga Gateway nagpadayon sa pagpakigsulti. Ang usa ka timeout mahitabo sa backup server, kini nakigkontak sa Gobernador, nga nag-assign niini sa papel sa main server, ug ang tanan nga mga Gateway mobalhin sa bag-ong main server.

Kung ang nag-unang server mobalik online, kini usab nag-aghat sa usa ka internal nga timeout, tungod kay wala’y mga tawag sa server gikan sa Gateway sa usa ka piho nga oras. Unya midangop usab siya sa Gobernador, ug wala niya iapil sa laraw. Ingon usa ka sangputanan, ang pagbinayloay nagtrabaho sa usa ka server hangtod sa katapusan sa panahon sa pamatigayon. Tungod kay gamay ra ang posibilidad sa pagkapakyas sa server, kini nga laraw gikonsiderar nga madawat ra; wala kini komplikado nga lohika ug dali sulayan.

Ang pagpadayon.

Source: www.habr.com

Idugang sa usa ka comment