Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Hi omnes! Nomen meum est Sergey Kostanbaev, in Exchange quam nucleum explicans systematis negotiandi.

Cum membrana Hollywood New York Stock Exchange ostendunt, semper hoc simile spectat: concursus hominum, quisque aliquid clamant, chartas agitantes, chaos completum obvenit. Hoc numquam in Moscuae Exchange factum est, quia negotiatio ab initio electronice gesta est et duobus suggestis principalibus - Spectra (forex forex) et ASTS (commutatio aliena, copia et mercatus pecuniae). Hodieque loqui volo de evolutione architecturae ASTS systematis negotiandi et purgandi, de variis solutionibus et inventionibus. Longum erit, ut in duas partes frangam.

Ex paucis commutationibus sumus in mundo, qui bona omnium generum artium et plenas commutationes servitiorum praebet. Exempli causa, anno superiore secundo in mundo secundum volumen negotiationis servitutis, 25 locum inter omnes commercii stirps, 13 locum in capitalizatione inter publicas commutationes collocavimus.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Ad professionales mercaturae participes, tales parametri, ut tempus responsionis, stabilitas temporis distributio (jitter) et commendatio totius complexi criticae sunt. Nos hodie decem miliones negotiorum per diem processimus. Processus uniuscuiusque negotii in systemate nuclei decem microseconds accipit. Utique, operarii mobiles in Novo Anno Evae vel ipsae inquisitionis tormenta altiorem inposuit quam nostra habent, sed in iniuncta, cum notis memoratis iuncta, pauci nobiscum comparare possunt, ut mihi videtur. Eodem tempore, interest nobis ut ratio secunda non retardet, omnino stabiliter operatur, et omnes usores ex aequo sunt.

Paulo historia

Anno 1994, systema Australiae ASTS in Moscuae Interbank Currency Exchange (MICEX), et ex eo tempore historia electronic mercaturae Russicae numerari potest. In 1998, architectura commutatio modernisata est ad mercaturam interretialem introducendam. Ex illo tempore, celeritas exsecutionis novarum solutionum et mutationum architecturae in omnibus systematibus et subsystematibus tantum momentum assecutus est.

In his annis, systema commutationis operatum est in hardware-finem - ultra-fidum HP Superdome 9000 servientium (aedificatum in PA-RISC), in quo absolute omnia duplicata sunt: ​​input/output subsystems, reticulum, RAM (re vera ordinata RAM), processors (calidi-swappable). Fieri potuit ut machinam aliquam mutaret componentium ministrantium sine intermissione. His nos artibus confisi sumus et eas paene deficiunt. Systema operandi erat systema Unix sicut HP UX.

Cum autem circa annum 2010, phaenomenon emersit appellatum altum frequentiam mercaturae (HFT), vel summus frequentiae mercaturae - simpliciter positae, copia robots commutationis. Iustus 2,5 annis, onus servientibus nostris centum 140 temporibus crevit.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Tale onus cum architectura et apparatu veteri impossibile erat sustinere. Necessarium est aliquo modo accommodare.

Начало

Petitionum ratio commutationum in duo genera dividi potest:

  • Gesta. Si dollaria emere voles, portiones vel aliquid aliud, negotium ad systema negotiandi mittis et responsionem de fructu accipias.
  • Informationes petitiones. Si pretium currentem invenire vis, ordinem libri vel indices considera, informationes postulationum mitte.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Schematically, nucleus systematis in tres gradus dividi potest;

  • Herennius cliens, in quo sectores et clientes laborant. Omnes servientes penitus obvius.
  • Ministri portae sunt captivos servientes localiter cunctas petitiones informationes processus. Visne scire quanti Sberbank partes nunc negotiantur? Petitio accedit ad accessum servo.
  • Sed si partes emere vis, petitio ad centralem servitorem accedit (Trade Engine). Talis est unus quisque generis fori servientes, partes vitalis ludunt, pro his nos hanc rationem creavimus.

Medium systematis negotiandi est callidus in-memoriae datorum in quo omnes operationes rerum commutationum sunt. Basis scripta erat in C, sola dependentia externa erant in bibliotheca libc et nulla omnino dynamica memoria destinatio. Ad processum temporis reducendum, ratio incipit cum stabulo vestium et cum notitia relocationis statice: primum, omnia notitia hodiernae in memoriam onusta est, nec accessus ultra orbis peragitur, omne opus solum in memoria exercetur. Cum systema incipit, omnia indicia referentia iam digesta sunt, percontatio efficacissime operatur et modicum tempus in runtime accipit. Omnes tabulae fiunt cum instrumentis praepotentibus et arboribus pro structurarum notitiarum dynamicarum, quae ad destinationem temporis currentis memoriam non requirunt.

Breviter transeamus historiam evolutionis nostrae systematis mercaturae et purgandae.
Prima versio negotiandi et purgandi systematis architecturae in commercio Unix sic dicto aedificatum est: memoria communis, semaphores et queues usi sunt, et unaquaeque processus ex uno filo constabat. Hic aditus in primis 1990s divulgatus est.

Prima versio systematis duos gradus portae continet et systematis negotiandi centralem ministratorem. Fluxus operis talis erat;

  • Cliens petitionem mittit, quae portam attingit. Validitatem formae sistit (non autem ipsa notitia) et transactions falsas respuit.
  • Si petitio informationis missa est, fit localiter; si de transactione loquimur, tunc ad ministrum centralem dirigitur.
  • Instrumentum negotiationis tunc in negotio processit, memoriam localem mutat, et responsionem ad transactionem et ipsam transactionem mittit ad replicationem utens replicationem separatum.
  • Porta nodo media responsionem accipit et eam clienti promovet.
  • Post aliquod tempus, porta rem per replicationem mechanismum accipit, et hoc tempore localiter efficit, mutatis eius structuris ut notitias proximae petitiones recentissimas notitias ostendant.

Reapse describit exemplar replicationis in quo porta plene replicatur actiones quae in negotiatione systemate fiunt. Replicatio separata canalis separatus procuravit transactiones in eodem ordine per plures nodos accessus exsecutos esse.

Cum codice uno filo esset, ordo classicus cum tridente usus est ad serviendum multis clientibus. Nihilominus, valde carus fuit ad furcam totius datorum, tam leves processus officii usus, qui ex sessionibus TCP fasciculis collectae sunt et eas ad unam queue transtulerunt (SystemV Nuntius Queue). Porta et Engine Trade tantum cum hac queue operati sunt, transactions inde ad supplicium sumentes. Responsum ei mittere non potuit amplius, quia non liquet quod processus muneris leget. Sic fraudem aggressi sumus: singuli processus bifurcam responsionem queue sibi fecerunt, et cum petitio in venientem queue venit, pro elemento responsionis queue ei statim additur.

Constanter describens magnas copiarum notitiarum a queue ad problemata queue creata, praesertim ad postulationes informationes typicas. Ergo alia stropha adhibita sumus: praeter responsionem queue, processus quoque communis memoriae quemque creatum est (SystemV Memoria Communes). Fasciculi ipsi in eo collocabantur et solum tag in queue repositum erat, permittens sarcinam originalem invenire. Hoc adiuvit ut notitias thesaurizare in cella processus.

SystemV IPC utilitates includit ad statum queue, memoriam, et res semaphorum spectandas. Hoc active usi sumus ad intelligendum ea quae fiebant in systemate certo momento, ubi cumulata facis, quid impeditum, etc.

Primo modernisations

Ante omnia portam unicam processum solvimus. Incommodum significans eius fuit quod vel unam replicationem transactionis vel informationis unius clientis postulationis tractare posset. Et sicut onus augetur, porta longius ad petitiones processuum capiet et replicationem fluere non poterit. Praeterea, si client transactionem misit, tunc tantum opus est eius validitatem reprimere et ulterius ulterius progredi. Ergo processum portae unicam posuimus cum pluribus componentibus quae in parallelis currere possunt: ​​multi- plicarum informationum et transactionis processus independenter ab invicem currentes in area memoriae communi utens RW densis. Et simul processum et replicationem introduximus.

Impulsum High Frequency Trading

Praedicta versio architecturae usque ad 2010 exstitit. Interim non amplius contenti essemus in observantia servientium HP Superdome. Insuper architectura PA-RISC paene mortua est, venditor notas aliquas notas praebet. Quam ob rem ab HP UX/PA RISC ad Linux/x86. Transitus incepit adaptationem accessuum ministrantium.

Cur architecturam denuo mutare debemus? Ita est, quod summus frequentia negotiandi signanter profile onus systematis nucleum mutavit.

Dicamus nos parvam rem habere quae mutationis pretium insignem effecit - aliquis dimidium miliardum dollariorum emit. Post duorum millium secundorum, omnes mercatus participes hoc animadvertunt et correctionem facere incipiunt. Naturaliter petit aciem queue ingens, quod ratio purgare longum erit.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Hoc interuallo 50 ms, mediocris celeritas circiter 16 milium secundorum negotiorum est. Si fenestram ad 20 ms reducimus, mediocris celeritas 90 milium negotiorum secundo cum 200 milibus negotiorum in summo accipitur. Id est, non constanti onus, repentino impetu. Queue petitionum semper cito discursum est.

Sed quid omnino queue? Itaque, in exemplo nostro, multi utentes notaverunt pretium mutationis et transactions miserunt. Ad portam veniunt, eas serializet, certum ordinem ponit et ad retiaculum mittit. Itinerum versas facis et transmittunt eos. Cuius sarcina primum pervenit, negotium illud "vici". Quam ob rem notare clientes commutationem coeperunt, si idem negotium ab pluribus portis missum est, casus processus celeritatis augeri. Mox, permutatio robotorum portae postulationum bombardarum incepit, et NIVIS transactionum orta est.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Novum per evolutionis

Post multam probationem et inquisitionem, ad nucleum systematis operandi real-time mutavimus. Hoc enim elegimus RedHat Enterprise MRG Linux, ubi MRG significat necessitatem temporis realis nuntiandi. Commodum reale temporis inaequalis est ut optimize systema quam celerrime exsequatur: omnes processus in FIFO queue instruxit, nuclei segregari possunt, nullae eiectiones, omnes operationes stricte ordine procedentes.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I
Rubra - queue in nucleo regulari, viridi operando in nucleo reali temporis.

Sed in servientibus regularibus non ita facile assequi humilitatem latency;

  • Modus SMI, qui in architectura x86 fundamentum est operandi magnis periphericis, multum impedit. Processus omnium generum ferramentorum eventuum et administratione componentium et machinarum a firmware sic dicto SMI modo perspicuo peragitur, in quo ratio operativa quid firmware agat omnino non videt. Pro regula, omnes maiores venditores speciales extensiones offerunt pro servientibus firmware qui moles SMI processus minuere permittunt.
  • Nulla dynamica potestas fiat frequentiae processus, hoc addito downtime ducit.
  • Cum tabella ratio stipes rubens est, quidam processus fiunt in nucleo qui moras vagus causant.
  • Rebus similibus CPU affinitatis operam dare debes, affinitatem interpelle, NUMA.

Dicendum est thema constituendi hardware Linux et nucleum pro processu reali meretur articulum separatum. Multum temporis expertos et investigabiles consumpsimus antequam bonum effectum consecuti sumus.

Cum a servientibus PA-RISC usque ad x86 movemur, paene non multum mutandi codicem systematis habuimus, id modo adaptatum et refiguratum est. Eodem tempore cimices aliquot constituimus. Pro exemplo, consequentia quod PA RISC ratio magna erat endian, et x86 ratio erat Parva endian, cito exsurrexerunt: exempli gratia, data male legebatur. Cimex fallacior fuit, qui PA RISC utitur constanter consistent (Consequenter consistent) memoria accessum, cum x86 legere operationes potest reordinare, ita codicem, qui in uno suggestu absolute validum erat, in altero fractum est.

Post commutationem ad x86, effectus prope triplex auctus, mediocris transactionis processus temporis ad 60 ΞΌs decrevit.

Nunc propius inspiciamus quid clavis mutationum ad systema architecturae factae sint.

Hot subsidiis epic

Cum servientibus mercimonia commutandis, sciebamus nos minus fideles fuisse. Cum igitur novam architecturam creando, a priori facultatem deficiendi unius vel plurium nodis supposuimus. Ergo ratio standby calida opus erat quae celerrime ad machinas tergum flectendas potuit.

Erant praeterea alia requisita;

  • Nullatenus te discursum rerum perdis.
  • Omnino perspicua est ratio nostrae infrastructurae.
  • Clientes hospites omissa videre non debent.
  • Exceptiones notabiles moras inducere non debent, quia hoc momentum est criticum ad commutationem.

Cum ratio standi calidum creando, tam missiones quam duplices defectiones non consideravimus (exempli gratia, retis in uno servo cessavit laborans et praecipuus ministrator adligat); possibilitatem errorum in programmate non consideravit quia in probatione identificantur; nec bene operandi odio.

Quam ob rem ad sequentia schema devenimus;

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

  • Servus principalis directe interacted cum ministris portae.
  • Omnes operationes quae in servo principali receptae sunt statim ad tergum servo replicantur per alveum separatum. Arbiter (Governor) mutandi si aliqua problemata orta sunt.

    Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

  • Praecipuus server discursum utriusque negotii et confirmationem expectavit a servo tergum. Ut latentiam ad minimum custodiremus, vitavimus transactionem exspectantes ut in servo tergum perficiat. Cum tempus sumpsit ad transactionem ut per retiaculum iter faciendum compararetur ad tempus exsecutionis, nulla latebra addita est.
  • Non potuimus modo reprimere statum processus praecipui et tergum servientibus pro negotio praecedenti, et status processus processus in re praesenti ignota erat. Cum adhuc usi sumus processibus simplicibus utentes, responsum ab Tergum exspectantes totius processus processus retardarimus, sic compromissum rationabilem fecimus: eventum rei praecedentis repressimus.

Evolutio architecturae negotiandi et purgandi systema Moscuae Exchange. Pars I

Consilium functus est ut sequitur.

Dicamus principale server cessat respondere, portae autem communicare pergunt. Tempus timeout in tergum servo occurs, Gubernatorem tangit, qui ei munus principalis servi assignat, et omnes Gateways ad novum ministerium principale flectendum.

Si principalis ministrator online revertitur, etiam tempus internum triggera est, quia nullae vocati sunt servo a porta per aliquod tempus. Deinde etiam ad Praefectum se convertit, et eum a ratione excludit. Quam ob rem commutatio cum uno servo usque ad finem temporis negotiationis operatur. Cum probabilitas servilis defectus sit admodum humilis, schema hoc satis acceptum habebatur, logicam implicatam non continebat et facile erat examinis.

Tertia pars sequetur.

Source: www.habr.com