Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Bonjou tout moun! Non mwen se Sergey Kostanbaev, nan Echanj la mwen ap devlope nwayo a nan sistèm komès la.

Lè fim Hollywood yo montre New York Stock Exchange, li toujou sanble ak sa a: foul moun nan moun, tout moun ap rele yon bagay, balanse papye, dezòd konplè ap pase. Sa a pa janm rive isit la sou Echanj Moskou a, paske komès yo te fèt elektwonikman depi nan konmansman an epi li baze sou de platfòm prensipal - Spectra (mache forex) ak ASTS (echanj etranje, stock ak mache lajan). Ak jodi a mwen vle pale sou evolisyon nan achitekti nan sistèm nan komès ak netwaye ASTS, sou solisyon divès kalite ak konklizyon. Istwa a pral long, kidonk mwen te oblije kraze l an de pati.

Nou se youn nan kèk echanj nan mond lan ki fè echanj byen nan tout klas yo epi ki bay yon seri konplè sèvis echanj. Pa egzanp, ane pase nou te klase dezyèm nan mond lan an tèm de volim komès kosyon, 25yèm plas nan mitan tout bous, 13yèm plas nan lèt majiskil nan mitan echanj piblik.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Pou patisipan komès pwofesyonèl yo, paramèt tankou tan repons, estabilite distribisyon tan (jitter) ak fyab nan konplèks la tout antye yo kritik. Kounye a nou trete plizyè dizèn milyon tranzaksyon chak jou. Pwosesis chak tranzaksyon pa du sistèm lan pran dè dizèn de microseconds. Natirèlman, operatè mobil nan lavèy nouvèl ane a oswa motè rechèch tèt yo gen yon kantite travay ki pi wo pase pa nou an, men an tèm de kantite travay, makonnen ak karakteristik ki anwo yo mansyone, kèk ka konpare ak nou, li sanble m '. An menm tan an, li enpòtan pou nou ke sistèm lan pa ralanti pou yon segond, travay absoliman stab, ak tout itilizatè yo sou yon égalité.

Yon ti istwa

Nan lane 1994, sistèm ASTS Ostralyen an te lanse sou Moskou Interbank Currency Exchange (MICEX), ak nan moman sa a istwa Ris la nan komès elektwonik ka konte. An 1998, yo te modènize achitekti echanj la pou prezante komès entènèt. Depi lè sa a, vitès aplikasyon nouvo solisyon ak chanjman achitekti nan tout sistèm ak subsistèm yo te sèlman pran momantòm.

Nan ane sa yo, sistèm echanj la te travay sou pyès ki nan konpitè hi-end - ultra-fyab HP Superdome 9000 sèvè (bati sou PA-RISC), nan ki absoliman tout bagay te double: D'/sortie sous-sistèm, rezo, RAM (an reyalite, te gen yon etalaj RAID RAM), processeurs (cho-swappable). Li te posib chanje nenpòt eleman sèvè san yo pa sispann machin nan. Nou konte sou aparèy sa yo epi nou konsidere yo nòmalman san danje. Sistèm operasyon an se te yon sistèm HP UX tankou Unix.

Men, depi anviwon 2010, gen yon fenomèn ki parèt yo rele gwo-frekans komès (HFT), oswa gwo-frekans komès - tou senpleman mete, stock exchange robo. Nan jis 2,5 ane, chaj la sou sèvè nou yo te ogmante 140 fwa.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Li te enposib kenbe tèt ak tankou yon chaj ak achitekti a fin vye granmoun ak ekipman. Li te nesesè yo yon jan kanmenm adapte.

Kòmanse

Demann nan sistèm echanj la ka divize an de kalite:

  • Tranzaksyon. Si ou vle achte dola, aksyon oswa yon lòt bagay, ou voye yon tranzaksyon nan sistèm komès la epi resevwa yon repons sou siksè.
  • Demann enfòmasyon. Si ou vle konnen pri aktyèl la, gade liv lòd la oswa endis, Lè sa a, voye demann enfòmasyon.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Schématikman, nwayo a nan sistèm lan ka divize an twa nivo:

  • Nivo kliyan an, nan ki koutye ak kliyan travay. Yo tout kominike avèk serveurs aksè.
  • Serveurs Gateway yo se serveurs kachèt ki trete lokalman tout demann enfòmasyon yo. Èske w vle konnen ki pri aksyon Sberbank yo ap komès kounye a? Demann lan ale nan sèvè aksè a.
  • Men, si ou vle achte aksyon, Lè sa a, demann lan ale nan sèvè santral la (Trade Engine). Gen yon sèl sèvè konsa pou chak kalite mache, yo jwe yon wòl enpòtan anpil, se pou yo nou te kreye sistèm sa a.

Nwayo sistèm komès la se yon baz done entelijan nan memwa kote tout tranzaksyon yo se tranzaksyon echanj. Baz la te ekri nan C, sèlman depandans ekstèn yo te bibliyotèk libc la epi pa te gen okenn alokasyon memwa dinamik ditou. Pou diminye tan pwosesis la, sistèm nan kòmanse ak yon seri estatik nan etalaj ak ak demenajman done estatik: premye, tout done pou jounen aktyèl la chaje nan memwa, epi pa gen okenn aksè plis ki gen kapasite fèt, tout travay yo te pote soti sèlman nan memwa. Lè sistèm nan kòmanse, tout done referans yo deja klase, kidonk rechèch la travay trè efikas epi li pran yon ti tan nan ègzekutabl. Tout tab yo fèt ak lis pèsistan ak pye bwa pou estrikti done dinamik pou yo pa mande pou alokasyon memwa nan ègzekutabl.

Ann ale yon ti tan sou istwa devlopman sistèm komès ak clearing nou an.
Premye vèsyon an nan achitekti sistèm komès ak netwaye te bati sou sa yo rele entèraksyon Unix: yo te itilize memwa pataje, semafò ak ke moun kap kriye, epi chak pwosesis fèt nan yon sèl fil. Apwòch sa a te gaye toupatou nan kòmansman ane 1990 yo.

Premye vèsyon sistèm lan genyen de nivo Gateway ak yon sèvè santral sistèm komès la. Flux travay la te tankou sa a:

  • Kliyan an voye yon demann, ki rive nan Gateway la. Li tcheke validite fòma a (men se pa done nan tèt li) epi li rejte tranzaksyon ki pa kòrèk.
  • Si yo te voye yon demann enfòmasyon, li egzekite lokalman; si nou ap pale sou yon tranzaksyon, Lè sa a, li se redireksyon sou sèvè santral la.
  • Lè sa a, motè komès la trete tranzaksyon an, modifye memwa lokal, epi voye yon repons nan tranzaksyon an ak tranzaksyon an tèt li pou replikasyon lè l sèvi avèk yon motè replikasyon separe.
  • Gateway a resevwa repons lan nan men santral la epi voye li bay kliyan an.
  • Apre kèk tan, Gateway la resevwa tranzaksyon an atravè mekanis replikasyon an, epi fwa sa a li egzekite li lokalman, chanje estrikti done li yo pou pwochen demann enfòmasyon yo montre dènye done yo.

An reyalite, li dekri yon modèl replikasyon kote Gateway a konplètman repwodui aksyon yo fèt nan sistèm komès la. Yon kanal replikasyon separe asire ke tranzaksyon yo te egzekite nan menm lòd la atravè plizyè nœuds aksè.

Depi kòd la te yon sèl-threaded, yo te itilize yon konplo klasik ak fouchèt pwosesis pou sèvi anpil kliyan. Sepandan, li te trè chè pou fouchèt baz done a tout antye, kidonk yo te itilize pwosesis sèvis ki lejè ki kolekte pake ki soti nan sesyon TCP epi transfere yo nan yon sèl keu (SystemV Message Queue). Gateway ak Trade Engine te travay sèlman ak keu sa a, pran tranzaksyon nan la pou ekzekisyon. Li pa t posib ankò pou voye yon repons sou li, paske li pa t klè ki pwosesis sèvis yo ta dwe li li. Se konsa, nou te itilize yon Trick: chak pwosesis fouchèt te kreye yon keu repons pou tèt li, epi lè yon demann te antre nan keu la fèk ap rantre, yo te imedyatman ajoute yon tag pou nat repons lan.

Toujou kopye gwo kantite done soti nan keu nan keu kreye pwoblèm, espesyalman tipik pou demann enfòmasyon. Se poutèt sa, nou te itilize yon lòt Trick: anplis keu repons lan, chak pwosesis tou kreye memwa pataje (SystemV Shared Memory). Pakè yo menm yo te mete ladan l, epi sèlman yon tag te estoke nan keu a, ki pèmèt youn jwenn pake orijinal la. Sa a te ede sere done nan kachèt processeur a.

SystemV IPC gen ladan sèvis piblik pou gade eta objè keu, memwa, ak semafò. Nou aktivman itilize sa a pou konprann sa k ap pase nan sistèm nan nan yon moman patikilye, kote pake akimile, sa ki te bloke, elatriye.

Premye modènizasyon yo

Premye a tout, nou te debarase m de Gateway nan yon sèl-pwosesis. Dezavantaj enpòtan li yo te ke li te kapab okipe swa yon tranzaksyon replikasyon oswa yon demann enfòmasyon nan men yon kliyan. Epi kòm chaj la ap ogmante, Gateway pral pran plis tan pou trete demann yo epi yo pa pral kapab trete koule replikasyon an. Anplis de sa, si kliyan an voye yon tranzaksyon, Lè sa a, ou sèlman bezwen tcheke validite li yo epi voye li pi lwen. Se poutèt sa, nou ranplase yon sèl pwosesis Gateway la ak plizyè konpozan ki ka kouri nan paralèl: enfòmasyon milti-threaded ak pwosesis tranzaksyon kouri poukont youn ak lòt sou yon zòn memwa pataje lè l sèvi avèk RW bloke. E an menm tan nou prezante dispatch ak pwosesis replikasyon.

Enpak Komès segondè Frekans

Vèsyon ki pi wo a nan achitekti a te egziste jiska 2010. Pandan se tan, nou pa t satisfè ak pèfòmans serveurs HP Superdome ankò. Anplis de sa, achitekti PA-RISC la te nòmalman mouri; vandè a pa t ofri okenn mizajou enpòtan. Kòm yon rezilta, nou te kòmanse deplase soti nan HP UX/PA RISC nan Linux/x86. Tranzisyon an te kòmanse ak adaptasyon nan sèvè aksè.

Poukisa nou te oblije chanje achitekti a ankò? Reyalite a se ke komès segondè-frekans te siyifikativman chanje pwofil la chaj sou nwayo sistèm lan.

Ann di nou gen yon ti tranzaksyon ki te lakòz yon chanjman enpòtan nan pri - yon moun te achte yon demi milya dola. Apre yon koup de milisgond, tout patisipan mache yo remake sa epi yo kòmanse fè yon koreksyon. Natirèlman, demann yo aliye nan yon gwo keu, ki sistèm nan pral pran anpil tan pou netwaye.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Nan entèval sa a 50 ms, vitès an mwayèn se sou 16 mil tranzaksyon pou chak segonn. Si nou redwi fenèt la a 20 ms, nou jwenn yon vitès mwayèn de 90 mil tranzaksyon pou chak segonn, ak 200 mil tranzaksyon nan pik la. Nan lòt mo, chaj la se pa konstan, ak pete toudenkou. Ak keu demann lan dwe toujou trete byen vit.

Men, poukisa gen yon keu nan tout? Se konsa, nan egzanp nou an, anpil itilizatè remake chanjman nan pri epi voye tranzaksyon kòmsadwa. Yo vini nan Gateway, li seri yo, mete yon sèten lòd epi voye yo nan rezo a. Routeurs mélange pakè yo epi voye yo sou. Ki pakè ki te rive an premye, tranzaksyon sa a "te genyen". Kòm yon rezilta, kliyan echanj yo te kòmanse remake ke si yo te voye menm tranzaksyon an soti nan plizyè Gateway, Lè sa a, chans yo nan pwosesis rapid li yo te ogmante. Byento, robo echanj yo te kòmanse bonbade Gateway ak demann, ak yon lavalas nan tranzaksyon leve.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Yon nouvo wonn nan evolisyon

Apre anpil tès ak rechèch, nou chanje nan nwayo sistèm operasyon an tan reyèl. Pou sa nou te chwazi RedHat Enterprise MRG Linux, kote MRG vle di kadriyaj messagerie an tan reyèl. Avantaj nan plak an tan reyèl se ke yo optimize sistèm nan pou ekzekisyon ki pi rapid posib: tout pwosesis yo aliyen nan yon keu FIFO, nwayo yo ka izole, pa gen okenn ekspilsyon, tout tranzaksyon yo trete nan sekans strik.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1
Wouj - k ap travay ak yon keu nan yon nwayo regilye, vèt - k ap travay nan yon nwayo an tan reyèl.

Men, reyalize latansi ki ba sou sèvè regilye se pa tèlman fasil:

  • Mòd SMI a, ki nan achitekti x86 la se baz pou travay ak periferik enpòtan, anpil entèfere. Pwosesis tout kalite evènman pyès ki nan konpitè ak jesyon konpozan ak aparèy yo fèt pa firmwèr la nan sa yo rele mòd SMI transparan, nan ki sistèm operasyon an pa wè sa firmwèr la ap fè ditou. Kòm yon règ, tout gwo machann ofri ekstansyon espesyal pou sèvè firmwèr ki pèmèt diminye kantite lajan an nan pwosesis SMI.
  • Pa ta dwe gen okenn kontwòl dinamik nan frekans nan processeur, sa a mennen nan plis D '.
  • Lè yo vide boutèy demi lit sistèm fichye a, sèten pwosesis rive nan nwayo a ki lakòz reta enprevizib.
  • Ou bezwen peye atansyon sou bagay tankou CPU Affinity, Interrupt afinity, NUMA.

Mwen dwe di ke sijè a nan mete kanpe Linux kenkayri ak nwayo pou pwosesis an tan reyèl merite yon atik separe. Nou te pase anpil tan fè eksperyans ak rechèch anvan nou reyalize yon bon rezilta.

Lè nou t ap deplase soti nan sèvè PA-RISC nan x86, nou pratikman pa t 'gen chanje kòd sistèm lan anpil, nou jis adapte ak rkonfigirasyon li. An menm tan an, nou ranje plizyè pinèz. Pou egzanp, konsekans yo nan lefèt ke PA RISC te yon sistèm Big endian, ak x86 se te yon sistèm Little endian, byen vit sifas: pou egzanp, done yo te li mal. Pinèz ki pi difisil la te ke PA RISC itilize toujou konsistan (Sekans konsistan) aksè memwa, tandiske x86 ka rekòmande operasyon lekti, kidonk kòd ki te absoliman valab sou yon platfòm te vin kraze sou yon lòt.

Apre chanje nan x86, pèfòmans ogmante prèske twa fwa, tan an mwayèn pwosesis tranzaksyon diminye a 60 μs.

Koulye a, ann gade pi pre ki chanjman kle yo te fè nan achitekti sistèm lan.

Sezon cho rezève

Lè chanje nan sèvè komodite, nou te konnen ke yo te mwens serye. Se poutèt sa, lè kreye yon nouvo achitekti, nou a priori sipoze posiblite pou echèk youn oswa plis nœuds. Se poutèt sa, yon sistèm sibstiti cho te bezwen ki ta ka trè byen vit chanje nan machin backup.

Anplis de sa, te gen lòt kondisyon:

  • Nan okenn sikonstans ou ta dwe pèdi tranzaksyon trete.
  • Sistèm nan dwe absoliman transparan pou enfrastrikti nou an.
  • Kliyan pa ta dwe wè koneksyon tonbe.
  • Rezèvasyon pa ta dwe prezante reta enpòtan paske sa a se yon faktè kritik pou echanj la.

Lè nou kreye yon sistèm sibstiti cho, nou pa t konsidere senaryo sa yo kòm echèk doub (pa egzanp, rezo a sou yon sèl sèvè sispann travay ak sèvè prensipal la te jele); pa t konsidere posiblite pou erè nan lojisyèl an paske yo idantifye yo pandan tès la; epi yo pa t 'konsidere operasyon an kòrèk nan pyès ki nan konpitè.

Kòm yon rezilta, nou rive nan konplo sa a:

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

  • Sèvè prensipal la kominike dirèkteman ak serveurs Gateway yo.
  • Tout tranzaksyon yo te resevwa sou sèvè prensipal la te imedyatman repwodui nan sèvè backup la atravè yon chanèl separe. Abit la (Gouvènè) kowòdone chanjman an si nenpòt pwoblèm te parèt.

    Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

  • Sèvè prensipal la trete chak tranzaksyon epi tann konfimasyon nan men sèvè backup la. Pou kenbe latansi nan yon minimòm, nou evite tann pou tranzaksyon an fini sou sèvè backup la. Depi tan li te pran pou yon tranzaksyon vwayaje atravè rezo a te konparab ak tan an ekzekisyon, pa gen okenn latansi adisyonèl yo te ajoute.
  • Nou te kapab sèlman tcheke estati pwosesis la nan serveurs prensipal yo ak backup pou tranzaksyon anvan an, ak estati pwosesis tranzaksyon aktyèl la te enkoni. Piske nou te toujou itilize pwosesis yon sèl-threaded, ap tann pou yon repons soti nan Sovgad ta ralanti koule nan pwosesis antye, kidonk nou te fè yon konpwomi rezonab: nou tcheke rezilta a nan tranzaksyon anvan an.

Evolisyon nan achitekti nan sistèm nan komès ak netwaye nan Moskou Echanj la. Pati 1

Konplo a te travay jan sa a.

Ann di sèvè prensipal la sispann reponn, men Gateways yo kontinye kominike. Yon timeout rive sou sèvè backup la, li kontakte Gouvènè a, ki bay li wòl sèvè prensipal la, epi tout Gateway yo chanje nan nouvo sèvè prensipal la.

Si sèvè prensipal la tounen sou entènèt, li tou deklanche yon delè entèn, paske pa gen okenn apèl sou sèvè a soti nan Gateway la pou yon sèten tan. Apre sa, li tou tounen vin jwenn Gouvènè a, epi li eskli l 'nan konplo a. Kòm yon rezilta, echanj la ap travay ak yon sèl sèvè jouk nan fen peryòd komès la. Piske pwobabilite pou yon echèk sèvè se byen ba, konplo sa a te konsidere kòm byen akseptab; li pa t gen lojik konplèks e li te fasil pou teste.

Yo dwe kontinye.

Sous: www.habr.com

Add nouvo kòmantè