Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Салом ба ҳама! Номи ман Сергей Костанбоев, дар Биржа ман системаи савдоро таҳия мекунам.

Вақте ки филмҳои Ҳолливуд Биржаи Ню-Йоркро нишон медиҳанд, он ҳамеша чунин менамояд: издиҳоми одамон, ҳама чизе фарёд мекунанд, коғазҳоро мезананд, бесарусомонии комил ба амал меояд. Ин дар Биржаи Маскав ҳеҷ гоҳ рух надодааст, зеро савдо аз аввал ба таври электронӣ сурат гирифта, дар ду платформаи асосӣ - Spectra (бозори асъор) ва ASTS (биржа, бозори саҳҳомӣ ва пул) асос ёфтааст. Ва имрӯз ман мехоҳам дар бораи таҳаввулоти меъмории системаи савдо ва клиринги ASTS, дар бораи ҳалли гуногун ва бозёфтҳо сӯҳбат кунам. Ҳикоя дароз хоҳад буд, бинобар ин ман маҷбур шудам, ки онро ба ду қисм тақсим кунам.

Мо яке аз чанд биржаҳо дар ҷаҳон ҳастем, ки дороиҳои ҳама синфҳоро савдо мекунад ва маҷмӯи пурраи хидматҳои мубодиларо пешкаш мекунад. Масалан, соли гузашта мо аз руи хачми муомилоти вомбаргхо дар чахон чои дуйум, дар байни хамаи биржахо чои 25-ум, аз руи капитализация дар байни биржахои давлатй чои 13-умро ишгол кардем.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Барои иштирокчиёни касбии савдо, чунин параметрҳо ба монанди вақти вокуниш, устувории тақсимоти вақт (jitter) ва эътимоднокии тамоми комплекс муҳиманд. Ҳоло мо дар як рӯз даҳҳо миллион транзаксияҳоро коркард мекунем. Коркарди ҳар як транзаксия аз ҷониби ядрои система даҳҳо микросонияро мегирад. Албатта, операторони мобилӣ дар шаби Соли нав ва ё худи муҳаррикҳои ҷустуҷӯӣ нисбат ба мо бештар сарбории кор доранд, аммо аз нигоҳи сарбории кор дар баробари хусусиятҳои дар боло зикршуда, ба назари ман, кам касе метавонад бо мо муқоиса кунад. Дар баробари ин барои мо мухим аст, ки система як дакика хам суст нашавад, комилан муътадил кор кунад ва хамаи истифодабарандагон дар заминаи баробар бошанд.

Як каме таърих

Дар соли 1994 системаи ASTS Австралия дар биржаи байнибонкии асъори Маскав (MICEX) ба кор даромад ва аз он лаҳза таърихи тиҷорати электронии Русияро метавон ҳисоб кард. Соли 1998 меъмории биржа бо мақсади ҷорӣ намудани савдои интернетӣ такмил дода шуд. Аз он вақт инҷониб, суръати татбиқи қарорҳои нав ва тағироти меъморӣ дар ҳама системаҳо ва зерсистемаҳо танҳо суръат мегирад.

Дар он солҳо, системаи мубодила дар таҷҳизоти баландсифат кор мекард - серверҳои ултра боэътимоди HP Superdome 9000 (дар асоси PA-RISC), ки дар он комилан ҳама чиз такрор шуда буд: зерсистемаҳои вуруд/барорӣ, шабака, хотираи оперативӣ (дар асл, массиви RAID-и RAM мавҷуд буд), протсессориҳо (хот ивазшаванда). Бе боздоштани мошин ягон ҷузъи серверро иваз кардан мумкин буд. Мо ба ин дастгоҳҳо такя мекардем ва онҳоро амалан бехатар меҳисобем. Системаи оператсионӣ системаи Unix монанд ба HP UX буд.

Аммо аз соли 2010 инҷониб як падидае пайдо шуд, ки савдои басомади баланд (HFT) ё савдои басомади баланд - ба таври оддӣ гӯем, роботҳои биржавӣ ном дорад. Ҳамагӣ дар давоми 2,5 сол, сарбории серверҳои мо 140 маротиба афзуд.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Бо меъморй ва тачхизоти кухна ба чунин бор тоб овардан мумкин набуд. Ба ягон хел мутобик шудан лозим буд.

Оғоз

Дархостҳоро ба системаи мубодила метавон ба ду намуд тақсим кард:

  • Муомилот. Агар шумо хоҳед, ки доллар, саҳмия ё чизи дигар харед, шумо ба системаи савдо муомилот мефиристед ва дар бораи муваффақият посух мегиред.
  • Дархостҳои иттилоотӣ. Агар шумо хоҳед, ки нархи ҷорӣро фаҳмед, китоби фармоиш ё индексҳоро бинед, пас дархостҳои иттилоотиро фиристед.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Схематикӣ, асосии системаро метавон ба се сатҳ тақсим кард:

  • Сатҳи муштарӣ, ки дар он брокерҳо ва мизоҷон кор мекунанд. Ҳамаи онҳо бо серверҳои дастрасӣ ҳамкорӣ мекунанд.
  • Серверҳои Gateway серверҳои кэш мебошанд, ки ҳама дархостҳои иттилоотиро ба таври маҳаллӣ коркард мекунанд. Мехоҳед бидонед, ки саҳмияҳои Сбербанк дар айни замон бо кадом нарх савдо мекунанд? Дархост ба сервери дастрасӣ меравад.
  • Аммо агар шумо хоҳед, ки саҳмияҳоро харед, пас дархост ба сервери марказӣ (Trade Engine) меравад. Барои ҳар як намуди бозор як чунин сервер вуҷуд дорад, онҳо нақши муҳим доранд, мо барои онҳо ин системаро офаридаем.

Асоси системаи савдо як махзани доно дар хотира мебошад, ки дар он ҳама муомилот амалиёти мубодилавӣ мебошанд. Пойгоҳ дар C навишта шуда буд, ягона вобастагии беруна китобхонаи libc буд ва умуман тақсимоти хотираи динамикӣ вуҷуд надошт. Барои кам кардани вақти коркард, система аз маҷмӯи статикии массивҳо ва ҷойгиршавии статикии додаҳо оғоз меёбад: аввал, ҳама маълумот барои рӯзи ҷорӣ ба хотира бор карда мешавад ва дастрасии минбаъдаи диск иҷро намешавад, ҳама кор танҳо дар хотира анҷом дода мешавад. Вақте ки система оғоз меёбад, ҳама маълумоти истинод аллакай мураттаб карда мешаванд, аз ин рӯ ҷустуҷӯ хеле самаранок кор мекунад ва вақти камро мегирад. Ҳама ҷадвалҳо бо рӯйхатҳои интрузивӣ ва дарахтҳо барои сохторҳои динамикии додаҳо сохта шудаанд, то онҳо дар вақти корӣ тақсимоти хотираро талаб накунанд.

Биёед ба таърихи инкишофи системаи савдо ва клирингиамон мухтасар маълумот дихем.
Нахустин версияи меъмории системаи савдо ва клиринг дар асоси ба истилоҳ мутақобилаи Unix сохта шудааст: хотираи муштарак, семафорҳо ва навбатҳо истифода мешуданд ва ҳар як раванд аз як риштаи ягона иборат буд. Ин равиш дар ибтидои солҳои 1990-ум васеъ паҳн шуд.

Варианти якуми система дорои ду сатҳи Gateway ва сервери марказии системаи савдо буд. Раванди кор чунин буд:

  • Муштарӣ дархост мефиристад, ки он ба дарвоза мерасад. Он дурустии форматро месанҷад (вале худи маълумот нест) ва транзаксияҳои нодурустро рад мекунад.
  • Агар дархости иттилоотӣ фиристода шуда бошад, он ба таври маҳаллӣ иҷро карда мешавад; агар сухан дар бораи транзаксия равад, пас он ба сервери марказӣ равона карда мешавад.
  • Пас аз он муҳаррики савдо транзаксияро коркард мекунад, хотираи маҳаллиро тағир медиҳад ва ба транзаксия ва худи транзаксия барои такрор бо истифода аз муҳаррики алоҳидаи такрорӣ ҷавоб мефиристад.
  • Дарвоза ҷавобро аз гиреҳи марказӣ қабул мекунад ва онро ба муштарӣ мефиристад.
  • Пас аз чанд вақт, Gateway транзаксияро тавассути механизми репликатсия қабул мекунад ва ин дафъа онро ба таври маҳаллӣ иҷро мекунад ва сохтори додаҳои худро тағир медиҳад, то дар дархостҳои иттилоотии навбатӣ маълумоти охирин нишон дода шаванд.

Дар асл, он модели такрориро тавсиф мекунад, ки дар он Gateway амалҳои дар системаи савдо иҷрошударо пурра такрор мекунад. Канали алоҳидаи такрорӣ кафолат дод, ки транзаксияҳо бо як тартиб дар саросари гиреҳҳои дастрасии сершумор иҷро карда шаванд.

Азбаски рамз як ришта буд, барои хидматрасонии бисёре аз муштариён як схемаи классикӣ бо фардҳои раванд истифода мешуд. Бо вуҷуди ин, пора кардани тамоми пойгоҳи додаҳо хеле гарон буд, аз ин рӯ равандҳои хидматрасонии сабуке истифода мешуданд, ки пакетҳоро аз сессияҳои TCP ҷамъоварӣ мекарданд ва онҳоро ба як навбат интиқол медоданд (SystemV Message Queue). Gateway ва Trade Engine танҳо бо ин навбат кор карда, транзаксияҳоро аз он ҷо барои иҷро мегирифтанд. Фиристодани посух ба он дигар имкон надошт, зеро маълум набуд, ки кадом раванди хидматрасонӣ онро бояд хонд. Ҳамин тавр, мо ба як ҳилае муроҷиат кардем: ҳар як раванди форвард барои худ як навбати посухро эҷод мекард ва вақте ки дархост ба навбати воридот ворид мешавад, фавран ба он тег барои навбати посух илова карда шуд.

Доимо нусхабардории миқдори зиёди маълумот аз навбат ба навбат мушкилоти эҷодшуда, махсусан барои дархостҳои иттилоотӣ хос аст. Аз ин рӯ, мо ҳиллаи дигарро истифода бурдем: ба ғайр аз навбати посух, ҳар як раванд инчунин хотираи муштаракро (SystemV Shared Memory) эҷод кард. Дар он худи бастаҳо гузошта шуда буданд ва танҳо тег дар навбат нигоҳ дошта мешуд, ки ба кас имкон медиҳад бастаи аслиро пайдо кунад. Ин барои нигоҳ доштани маълумот дар кэши протсессор кӯмак кард.

SystemV IPC дорои утилитаҳо барои дидани ҳолати навбат, хотира ва объектҳои семафор мебошад. Мо инро барои фаҳмидани он ки дар як лаҳза дар система чӣ рӯй дода истодааст, дар куҷо бастаҳо ҷамъ шудаанд, чӣ баста шудааст ва ғайра фаъолона истифода бурдем.

Модернизатсияи аввалин

Пеш аз ҳама, мо аз Gateway-и якраванд халос шудем. Камбудии назарраси он дар он буд, ки он метавонад як амалиёти такрорӣ ё як дархости иттилоотиро аз муштарӣ иҷро кунад. Ва бо зиёд шудани сарборӣ, Gateway коркарди дархостҳо вақти зиёдтар мегирад ва ҷараёни такрориро коркард карда наметавонад. Илова бар ин, агар муштарӣ транзаксия фиристода бошад, пас шумо танҳо лозим аст, ки эътибори онро тафтиш кунед ва онро минбаъд интиқол диҳед. Аз ин рӯ, мо раванди ягонаи Gateway-ро бо ҷузъҳои сершумор иваз кардем, ки метавонанд дар як вақт кор кунанд: иттилооти бисёрсоҳавӣ ва равандҳои транзаксия, ки новобаста аз ҳамдигар дар майдони хотираи муштарак бо истифода аз қулфи RW кор мекунанд. Ва дар айни замон мо равандҳои фиристодан ва такрориро ҷорӣ кардем.

Таъсири савдои басомади баланд

Варианти болоии меъморӣ то соли 2010 вуҷуд дошт. Дар ҳамин ҳол, мо дигар аз кори серверҳои HP Superdome қаноатманд набудем. Илова бар ин, меъмории PA-RISC амалан мурда буд; фурӯшанда ягон навсозии назаррасро пешниҳод накард. Дар натиҷа, мо ба гузаштан аз HP UX/PA RISC ба Linux/x86 шурӯъ кардем. Гузариш бо мутобиқсозии серверҳои дастрасӣ оғоз ёфт.

Чаро мо бояд меъмориро боз дигар кунем? Далели он аст, ки савдои басомади баланд профили сарбориро дар ядрои система ба таври назаррас тағйир додааст.

Фарз мекунем, ки мо як муомилоти хурде дорем, ки боиси тағирёбии назарраси нарх шуд - касе ним миллиард доллар харид. Пас аз чанд миллисония, ҳамаи иштирокчиёни бозор инро пай мебаранд ва ба ислоҳ шурӯъ мекунанд. Табиист, ки дархостҳо дар навбати азим ҷамъ меоянд, ки система барои тоза кардани онҳо вақти зиёдро мегирад.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Дар ин фосилаи 50 мс, суръати миёна тақрибан 16 ҳазор транзаксия дар як сония аст. Агар мо равзанаро то 20 мс кам кунем, мо суръати миёнаи 90 ҳазор транзаксияро дар як сония ба даст меорем ва дар авҷи он 200 ҳазор транзаксия ба даст меорем. Ба ибораи дигар, бори доимӣ нест, бо таркишҳои ногаҳонӣ. Ва навбати дархостҳо бояд ҳамеша зуд коркард карда шаванд.

Аммо чаро умуман навбат меистад? Ҳамин тавр, дар мисоли мо, бисёр корбарон тағирёбии нархро пай бурданд ва мувофиқи он муомилот фиристоданд. Онҳо ба Gateway меоянд, он онҳоро сериал мекунад, тартиби муайян муқаррар мекунад ва онҳоро ба шабака мефиристад. Роутерҳо бастаҳоро омехта мекунанд ва ба онҳо интиқол медиҳанд. Бастаи кӣ аввал омад, он муомила "бурд". Дар натиҷа, муштариёни мубодила пай бурданд, ки агар як транзаксия аз якчанд шлюз фиристода шуда бошад, пас имкони коркарди босуръати он зиёд мешавад. Дере нагузашта, роботҳои мубодила ба бомбаборони Gateway бо дархостҳо шурӯъ карданд ва фаромадани транзаксия ба миён омад.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Даври нави эволютсия

Пас аз санҷиш ва таҳқиқоти васеъ, мо ба ядрои системаи оператсионии вақти воқеӣ гузаштем. Барои ин мо RedHat Enterprise MRG Linux-ро интихоб кардем, ки дар он MRG шабакаи паёмнависии вақти воқеӣ аст. Бартарии часпакҳои вақти воқеӣ дар он аст, ки онҳо системаро барои зудтар иҷро кардани имконпазир оптимизатсия мекунанд: ҳама равандҳо дар навбати FIFO ҷойгир шудаанд, ядроҳоро ҷудо кардан мумкин аст, хориҷшавӣ нест, ҳама транзаксияҳо бо пайдарпаии қатъӣ коркард мешаванд.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1
Сурх - кор бо навбат дар ядрои муқаррарӣ, сабз - кор дар ядрои вақти воқеӣ.

Аммо ноил шудан ба таъхири паст дар серверҳои муқаррарӣ он қадар осон нест:

  • Ҳолати SMI, ки дар меъмории x86 асос барои кор бо таҷҳизоти муҳими периферӣ мебошад, хеле халал мерасонад. Коркарди ҳама гуна рӯйдодҳои сахтафзор ва идоракунии ҷузъҳо ва дастгоҳҳо аз ҷониби нармафзор дар ҳолати ба истилоҳ шаффофи SMI иҷро карда мешавад, ки дар он системаи пардозӣ умуман намебинад, ки нармафзор чӣ кор мекунад. Чун қоида, ҳама фурӯшандагони асосӣ барои серверҳои нармафзор васеъшавии махсусро пешниҳод мекунанд, ки имкон медиҳанд ҳаҷми коркарди SMI-ро кам кунанд.
  • Назорати динамикии басомади протсессор набояд вуҷуд дошта бошад, ин боиси бекористии иловагӣ мегардад.
  • Вақте ки сабти системаи файлӣ тоза карда мешавад, дар ядро ​​​​процессҳои муайяне ба амал меоянд, ки таъхирҳои пешгӯинашавандаро ба вуҷуд меоранд.
  • Шумо бояд ба чизҳое, ба монанди наздикии CPU, наздикии қатъ, NUMA диққат диҳед.

Бояд бигӯям, ки мавзӯи насби сахтафзор ва ядрои Linux барои коркарди вақти воқеӣ сазовори мақолаи алоҳида аст. Мо пеш аз ба даст овардани натиҷаи хуб вақти зиёдро таҷриба ва тадқиқот сарф кардем.

Ҳангоми гузаштан аз серверҳои PA-RISC ба x86, ба мо амалан лозим набуд, ки коди системаро чандон тағир диҳем, мо танҳо онро мутобиқ ва аз нав танзим кардем. Дар баробари ин, мо якчанд хатогиҳоро ислоҳ кардем. Масалан, оқибатҳои он, ки PA RISC системаи Big endian буд ва x86 системаи Little Endian буд, зуд пайдо шуд: масалан, маълумот нодуруст хонда шуд. Хатои trickier он буд, ки PA RISC истифода мебарад пайваста пайваста (Пай дар пай) дастрасии хотира, дар ҳоле ки x86 метавонад амалиёти хонданро аз нав фармоиш диҳад, аз ин рӯ коде, ки дар як платформа комилан эътибор дошт, дар платформаи дигар шикаста шуд.

Пас аз гузаштан ба x86, иҷроиш тақрибан се маротиба афзоиш ёфт, вақти коркарди транзаксия то 60 мкс коҳиш ёфт.

Акнун биёед муфассалтар бубинем, ки ба меъмории система чӣ тағйироти асосӣ ворид карда шудаанд.

Эпосҳои захиравии гарм

Ҳангоми гузаштан ба серверҳои молӣ, мо медонистем, ки онҳо камтар эътимод доранд. Аз ин рӯ, ҳангоми эҷоди як меъмории нав, мо эҳтимолияти нокомии як ё якчанд гиреҳро ба назар гирифтем. Аз ин рӯ, системаи интизории гарм лозим буд, ки метавонад хеле зуд ба мошинҳои эҳтиётӣ гузарад.

Илова бар ин, талаботҳои дигар вуҷуд доштанд:

  • Дар ҳеҷ сурат шумо набояд транзаксияҳои коркардшударо аз даст диҳед.
  • Система бояд барои инфрасохтори мо комилан шаффоф бошад.
  • Мизоҷон набояд пайвастҳои қатъшударо бинанд.
  • Бронкунӣ набояд таъхири назаррасро ҷорӣ кунад, зеро ин омили муҳим барои мубодила аст.

Ҳангоми сохтани системаи интизории гарм, мо чунин сенарияҳоро ба мисли нокомии дукарата баррасӣ намекардем (масалан, шабака дар як сервер аз кор монд ва сервери асосӣ ях кард); эҳтимолияти хатогиҳоро дар нармафзор ба назар нагирифтааст, зеро онҳо ҳангоми санҷиш муайян карда мешаванд; ва кори нодурусти аппаратураро ба назар нагирифтааст.

Дар натиҷа, мо ба нақшаи зерин омадем:

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

  • Сервери асосӣ мустақиман бо серверҳои Gateway ҳамкорӣ мекард.
  • Ҳама транзаксияҳои дар сервери асосӣ гирифташуда фавран ба сервери эҳтиётӣ тавассути канали алоҳида такрор карда шуданд. Ҳакам (губернатор) агар ягон мушкилот ба миён ояд, гузаришро ҳамоҳанг мекард.

    Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

  • Сервери асосӣ ҳар як транзаксияро коркард карда, аз сервери эҳтиётӣ тасдиқро интизор буд. Барои то ҳадди ақал нигоҳ доштани таъхир, мо аз интизории анҷоми транзаксия дар сервери эҳтиётӣ худдорӣ кардем. Азбаски вақти сафар барои транзаксия дар саросари шабака бо вақти иҷро муқоисашаванда буд, ҳеҷ гуна таъхири иловагӣ илова карда нашуд.
  • Мо танҳо метавонистем ҳолати коркарди серверҳои асосӣ ва эҳтиётиро барои транзаксияи қаблӣ тафтиш кунем ва ҳолати коркарди транзаксияи ҷорӣ номаълум буд. Азбаски мо то ҳол равандҳои як риштаро истифода мебурдем, интизори посух аз Backup тамоми ҷараёни коркардро суст мекард, аз ин рӯ мо як созиши оқилона кардем: мо натиҷаи муомилоти қаблиро тафтиш кардем.

Эволюцияи меъмории системаи савдо ва клиринги биржаи Москва. Қисми 1

Схема ба таври зерин кор мекард.

Фарз мекунем, ки сервери асосӣ ҷавоб намедиҳад, аммо Шлюзҳо муоширатро идома медиҳанд. Дар сервери эҳтиётӣ мӯҳлат ба амал меояд, он бо Губернатор тамос мегирад, ки ба он нақши сервери асосиро таъин мекунад ва ҳамаи шлюзҳо ба сервери асосии нав мегузаранд.

Агар сервери асосӣ дубора ба шабака баргардад, он инчунин вақти фарогирии дохилиро ба вуҷуд меорад, зеро дар муддати муайян аз Шлюз ба сервер занг зада нашудааст. Он гоҳ ӯ низ ба Ҳоким муроҷиат мекунад ва ӯро аз нақша хориҷ мекунад. Дар натиҷа, мубодила бо як сервер то охири давраи савдо кор мекунад. Азбаски эҳтимолияти корношоямии сервер хеле паст аст, ин схема комилан қобили қабул ҳисобида мешуд, он мантиқи мураккабро дар бар намегирифт ва озмоишаш осон буд.

Идома дода шавад.

Манбаъ: will.com

Илова Эзоҳ