ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

He hoʻomau kēia o kahi moʻolelo lōʻihi e pili ana i kā mākou ala ʻoi aku ka hana ʻana i kahi ʻōnaehana ikaika a kiʻekiʻe e hōʻoia i ka hana o ka Exchange. Eia ka hapa mua: habr.com/en/post/444300

Kupa pohihihi

Ma hope o nā hoʻāʻo he nui, ua hoʻokomo ʻia ka ʻōnaehana kālepa hou a me ka hoʻomaʻemaʻe ʻana, a ua loaʻa iā mākou kahi pōpoki e hiki ai iā mākou ke kākau i kahi moʻolelo detective-mystical.

Ma hope koke iho o ka hoʻokuʻu ʻana ma ka kikowaena nui, ua hana ʻia kekahi o nā hana me kahi hewa. Eia naʻe, ua maikaʻi nā mea a pau ma ke kikowaena waihona. Ua hoʻololi ʻia kahi hana makemakika maʻalahi o ka helu ʻana i ka exponent ma ke kikowaena nui i hāʻawi i kahi hopena maikaʻi ʻole mai ka hoʻopaʻapaʻa maoli! Ua hoʻomau mākou i kā mākou noiʻi, a ma ka papa inoa SSE2 ua ʻike mākou i kahi ʻokoʻa i hoʻokahi wahi, nona ke kuleana no ka hoʻopuni ʻana i ka wā e hana ai me nā helu lana.

Ua kākau mākou i kahi mea ho'āʻo maʻalahi no ka helu ʻana i ka exponent me ka hoʻonohonoho bit puni. Ua hoʻololi ʻia ma ka mana o RedHat Linux a mākou i hoʻohana ai, aia kahi pahu i ka hana ʻana me ka hana makemakika i ka wā i hoʻokomo ʻia ai ka bit ill-fated. Ua hōʻike mākou i kēia i RedHat, ma hope o kekahi manawa ua loaʻa iā mākou kahi pākuʻi mai lākou a ʻōwili ʻia. ʻAʻole i puka hou ka hewa, akā ʻaʻole maopopo i hea mai kēia wahi? ʻO ia ke kuleana o ka hana fesetround mai ka ʻōlelo C. Ua nānā pono mākou i kā mākou code no ka ʻimi ʻana i ka hewa i manaʻo ʻia: ua nānā mākou i nā kūlana āpau; nānā i nā hana a pau i hoʻohana i ka pōʻai; hoʻāʻo e hana hou i kahi kau i hāʻule ʻole; hoʻohana i nā mea hoʻohui like ʻole me nā koho like ʻole; Ua hoʻohana ʻia ka loiloi static a me ka dynamic.

ʻAʻole i ʻike ʻia ke kumu o ka hewa.

A laila hoʻomaka lākou e nānā i ka ʻenehana: hoʻokō lākou i ka hoʻāʻo ʻana o nā mea hana; nānā i ka RAM; Ua holo mākou i nā ho'āʻo no ka hiʻohiʻona ʻike ʻole o kahi hewa multi-bit i hoʻokahi cell. ʻAʻohe pono.

I ka hopena, ua hoʻoholo mākou i kahi kumumanaʻo mai ka honua o ka physics kiʻekiʻe: ua lele kekahi mau mea ikaika nui i loko o kā mākou kikowaena ʻikepili, hou i ka paia o ka hihia, paʻi i ka mea hana a hoʻopaʻa i ka latch kiʻekiʻe i kēlā wahi. Ua kapa ʻia kēia manaʻo lapuwale ʻo "neutrino." Inā mamao ʻoe mai ka physics particle: aneane ʻaʻole e launa pū nā neutrinos me ka honua o waho, a ʻaʻole hiki ke hoʻopilikia i ka hana o ka mea hana.

No ka mea ʻaʻole hiki ke ʻike i ke kumu o ka hāʻule ʻana, ua hoʻoneʻe ʻia ke kikowaena "hewa" mai ka hana ʻana i ka hihia.

Ma hope o kekahi manawa, hoʻomaka mākou e hoʻomaikaʻi i ka ʻōnaehana hoʻihoʻi wela: ua hoʻolauna mākou i ka mea i kapa ʻia ʻo "warm reserves" (warm) - asynchronous replicas. Ua loaʻa iā lākou kahi kahawai o nā kālepa i hiki ke loaʻa i nā kikowaena data like ʻole, akā ʻaʻole i launa pū nā mehana me nā kikowaena ʻē aʻe.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

No ke aha i hana ʻia ai kēia? Inā hāʻule ke kikowaena hoʻihoʻi, a laila ua nakinaki ʻia ka pumehana i ke kikowaena nui e lilo i mea hoʻihoʻi hou. ʻO ia hoʻi, ma hope o ka hāʻule ʻole, ʻaʻole noho ka ʻōnaehana me hoʻokahi kikowaena nui a hiki i ka hopena o ke kau kālepa.

A i ka wā i hoʻāʻo ʻia ai ka mana hou o ka ʻōnaehana a hoʻokomo ʻia i ka hana, ua ʻike hou ʻia ka hewa pōʻai. Eia kekahi, me ka hoʻonui ʻana i ka helu o nā kikowaena mahana, ua hoʻomaka ka hewa e ʻike pinepine ʻia. I ka manawa like, ʻaʻohe mea e hōʻike ai ka mea kūʻai aku, no ka mea ʻaʻohe mea hōʻike paʻa.

I ka wā o ka loiloi hou ʻana o ke kūlana, ua kū mai kahi manaʻo e pili ana ka pilikia i ka OS. Ua kākau mākou i kahi papahana maʻalahi e kāhea ana i kahi hana ma kahi loop pau ʻole fesetround, hoʻomanaʻo i ke kūlana o kēia manawa a nānā iā ia ma ka hiamoe, a ua hana ʻia kēia ma nā pae hoʻokūkū he nui. Ke koho ʻana i nā ʻāpana no ka hiamoe a me ka helu o nā kaula, ua hoʻomaka mākou e hana mau i ka hemahema ma hope o 5 mau minuke o ka holo ʻana i ka pono. Eia naʻe, ʻaʻole hiki i ke kākoʻo ʻo Red Hat ke hana hou. ʻO ka hoʻāʻo ʻana i kā mākou mau kikowaena ʻē aʻe ua hōʻike ʻia ʻo ka poʻe wale nō me kekahi mau kaʻina hana e maʻalahi i ka hewa. I ka manawa like, ua hoʻopau ka pilikia i ka hoʻololi ʻana i kahi kernel hou. I ka hopena, ua hoʻololi wale mākou i ka OS, a ʻaʻole maopopo ke kumu maoli o ka bug.

A i ka makahiki i hala, ua paʻi ʻia kahi ʻatikala ma Habré "Pehea wau i ʻike ai i kahi pōpoki ma nā kaʻina hana Intel Skylake" ʻO ke kūlana i hōʻike ʻia i loko ua like loa me kā mākou, akā ua lawe ka mea kākau i ka hoʻokolokolo a waiho i mua i kahi manaʻo aia ka hewa i ka microcode. A i ka wā e hoʻonui ʻia ai nā kernels Linux, hoʻomaikaʻi hou nā mea hana i ka microcode.

Hoʻomohala hou aku o ka ʻōnaehana

ʻOiai ua hoʻopau mākou i ka hewa, ua koi kēia moʻolelo iā mākou e noʻonoʻo hou i ka ʻōnaehana ʻōnaehana. Ma hope o nā mea a pau, ʻaʻole mākou i pale ʻia mai ka hana hou ʻana o ia mau pōpoki.

ʻO nā kumu i hoʻokumu ʻia i kumu no ka hoʻomaikaʻi hou ʻana i ka ʻōnaehana mālama.

  • ʻAʻole hiki iā ʻoe ke hilinaʻi i kekahi. ʻAʻole hiki ke hana pono nā kikowaena.
  • Hoʻopaʻa ʻia ka hapa nui.
  • E hōʻoia ana i ka ʻaelike. Ma ke ʻano he hoʻohui kūpono i ka mālama ʻana i ka hapa nui.
  • Hiki ke hāʻule ʻelua.
  • olaola. ʻAʻole ʻoi aku ka maikaʻi o ka hoʻolālā standby wela hou ma mua o ka mua. Pono e hoʻomau ke kālepa me ka pau ʻole a hiki i ke kikowaena hope.
  • Hoʻonui iki i ka latency. ʻO kēlā me kēia downtime e komo i nā poho kālā nui.
  • ʻO ka launa pūnaewele liʻiliʻi e mālama i ka latency me ka haʻahaʻa.
  • Ke koho ʻana i kahi kikowaena haku hou i kekona.

ʻAʻohe o nā hoʻonā i loaʻa ma ka mākeke i kūpono iā mākou, a aia ka protocol Raft i kona wā kamaliʻi, no laila ua hana mākou i kā mākou hopena ponoʻī.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

Hoʻopili pūnaewele

Ma waho aʻe o ka ʻōnaehana hoʻopaʻa ʻana, ua hoʻomaka mākou e hoʻololi i ka launa pūnaewele. He nui nā kaʻina hana i loko o ka subsystem I/O, nona ka hopena maikaʻi loa i ka jitter a me ka latency. Me nā haneli o nā kaʻina hana e lawelawe ana i nā pilina TCP, ua koi ʻia mākou e hoʻololi mau i waena o lākou, a ma ka microsecond scale he hana hoʻopau manawa kēia. Akā ʻo ka hapa ʻino loa i ka wā i loaʻa ai kahi ʻeke no ka hoʻoponopono ʻana, ua hoʻouna ʻia i kahi laina SystemV a laila kali i kahi hanana mai kahi laina SystemV ʻē aʻe. Eia nō naʻe, i ka nui o nā nodes, ʻo ka hōʻea ʻana mai o kahi ʻeke TCP hou i hoʻokahi kaʻina hana a me ka loaʻa ʻana o ka ʻikepili i ka pila ma kahi ʻē aʻe e hōʻike ana i ʻelua mau hanana hoʻokūkū no ka OS. I kēia hihia, inā ʻaʻohe mea hana kino i loaʻa no nā hana ʻelua, e hoʻoponopono ʻia kekahi, a e waiho ʻia ka lua i kahi laina kali. ʻAʻole hiki ke wānana i ka hopena.

Ma ia ʻano kūlana, hiki ke hoʻohana ʻia ke kaʻina hana koʻikoʻi, akā pono kēia i ka hoʻohana ʻana i nā kelepona ʻōnaehana kumu waiwai. ʻO ka hopena, ua hoʻololi mākou i hoʻokahi kaula me ka hoʻohana ʻana i ka epoll maʻamau, ua hoʻonui nui kēia i ka wikiwiki a hoʻemi i ka manawa kaʻina hana. Hoʻopau pū mākou i nā kaʻina kamaʻilio pūnaewele ʻokoʻa a me ka kamaʻilio ma o SystemV, hoʻemi nui i ka helu o nā kelepona ʻōnaehana a hoʻomaka e hoʻomalu i nā mea nui o nā hana. Ma ka subsystem I/O wale nō, hiki ke mālama ʻia ma kahi o 8-17 microseconds, ma muli o ke ʻano. Ua hoʻohana ʻia kēia hoʻolālā hoʻokahi-threaded me ka loli ʻole mai ia manawa; ua lawa ka pae epoll me kahi palena e lawelawe i nā pili āpau.

Ka Hana Hana

ʻO ka hoʻonui nui ʻana o kā mākou ʻōnaehana pono e hoʻomaikaʻi i nā mea āpau. Akā naʻe, ʻaʻole hiki i ka stagnation i ka ulu ʻana o ka wikiwiki o ka uaki i nā makahiki i hala iho nei ʻaʻole hiki ke hoʻonui i nā kaʻina hana. No laila, ua hoʻoholo mākou e hoʻokaʻawale i ke kaʻina hana Engine i ʻekolu mau pae, ʻo ka ʻoi loa o lākou ka ʻōnaehana nānā pilikia, e loiloi ana i ka loaʻa o nā kālā i loko o nā moʻokāki a hana i nā kālepa iā lākou iho. Akā hiki ke kālā i nā kālā like ʻole, a pono e noʻonoʻo i ke kumu e hoʻokaʻawale ʻia ai ka hana ʻana o nā noi.

ʻO ka hoʻonā kūpono ʻo ka puʻunaue ʻana iā ia ma ke kālā: kūʻai kekahi kikowaena i nā kālā, ʻo kekahi ma nā paona, a ʻo ka hapakolu i ka euro. Akā inā, me kēlā ʻano hoʻolālā, hoʻouna ʻia ʻelua mau kālepa e kūʻai i nā kālā like ʻole, a laila e kū mai ka pilikia o ka desynchronization o ka putele. Akā paʻakikī a pipiʻi ka synchronization. No laila, pono e hoʻokaʻawale ʻia e nā ʻeke a me nā mea hana. Ma ke ala, ʻaʻole i loaʻa i ka hapa nui o ka hoʻololi ʻana o ke Komohana ka hana o ka nānā ʻana i nā pilikia e like me kā mākou e hana nei, no laila ke hana pinepine ʻia nei ma waho. Pono mākou e hoʻokō i ka hōʻoia pūnaewele.

E wehewehe kākou me kekahi laʻana. Makemake kahi mea kālepa e kūʻai i $30, a hele ka noi i ka hōʻoia ʻana i ke kālepa: nānā mākou inā ʻae ʻia kēia mea kālepa i kēia ʻano kālepa a inā loaʻa iā ia nā kuleana kūpono. Inā pololei nā mea a pau, hele ka noi i ka ʻōnaehana hōʻoia pilikia, i.e. e nānā i ka lawa o nā kālā e hoʻopau i kahi hana. Aia kahi memo e pāpā ʻia ka nui i koi ʻia i kēia manawa. Hoʻouna ʻia ka noi i ka ʻōnaehana kālepa, nāna e ʻae a ʻae ʻole i ke kālepa. E ʻōlelo mākou ua ʻae ʻia ke kālepa - a laila hōʻailona ka ʻōnaehana hōʻoia i ka wehe ʻana o ke kālā, a lilo nā rubles i mau kālā.

Ma keʻano laulā, loaʻa i ka ʻōnaehana hōʻoia pilikia nā algorithms paʻakikī a hana i kahi helu nui o nā kumu waiwai-nui loa, a ʻaʻole nānā wale i ka "kaulike moʻokāki", e like me ka mea i ʻike mua ʻia.

I ka wā i hoʻomaka ai mākou e hoʻokaʻawale i ke kaʻina hana Engine i nā pae, ua loaʻa iā mākou kahi pilikia: ʻo ke code i loaʻa i kēlā manawa ua hoʻohana ikaika i ka ʻikepili like ʻole ma nā pae hōʻoia a me ka hōʻoia, pono e kākau hou i ka waihona code holoʻokoʻa. ʻO ka hopena, ua hōʻaiʻē mākou i kahi ʻenehana no ka hoʻoponopono ʻana i nā ʻōlelo aʻoaʻo mai nā kaʻina hana hou: ua māhele ʻia kēlā me kēia o lākou i nā ʻāpana liʻiliʻi a hana ʻia nā hana he nui i hoʻokahi pōʻai.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

Ma hope o kahi liʻiliʻi liʻiliʻi o ke code, ua hana mākou i kahi pipeline no ka hoʻoili ʻana i ke kālepa like, kahi i hoʻokaʻawale ʻia ai ke kālepa i nā pae 4 o ka pipeline: ka pilina pūnaewele, ka hōʻoia, ka hoʻokō a me ka hoʻolaha ʻana i ka hopena.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

E nānā kākou i kekahi laʻana. Loaʻa iā mākou ʻelua ʻōnaehana hana, serial a me parallel. Hiki mai ka hana mua a hoʻouna ʻia no ka hōʻoia ʻana ma nā ʻōnaehana ʻelua. Hiki koke mai ka lua o ka hana: ma kahi ʻōnaehana like e lawe koke ʻia i ka hana, a ma kahi ʻōnaehana sequential e hoʻokomo ʻia i loko o kahi queue e kali ana i ka hana mua e hele i ke kaʻina hana o kēia manawa. ʻO ia hoʻi, ʻo ka pono nui o ka hoʻoili ʻana i ka pipeline ʻo ia ka wikiwiki o ka hana ʻana i ka queue transaction.

ʻO kēia ke ʻano o kā mākou hana ʻana i ka ʻōnaehana ASTS +.

ʻOiaʻiʻo, ʻaʻole maʻalahi nā mea a pau me nā conveyors. E ʻōlelo mākou he hana kā mākou e pili ana i nā ʻikepili ʻikepili i kahi kālepa pili; he kūlana maʻamau kēia no kahi hoʻololi. ʻAʻole hiki ke hoʻokō ʻia kēlā hana i loko o kahi pipeline no ka mea hiki ke hoʻopilikia i nā poʻe ʻē aʻe. Ua kapa ʻia kēia kūlana he hazard data, a ua hoʻokaʻawale wale ʻia kēlā mau hana: i ka pau ʻana o nā hana "wikiwiki" i ka pila, pau ka pipeline, hoʻomaka ka ʻōnaehana i ka hana "lohi", a laila hoʻomaka hou i ka pipeline. ʻO ka mea pōmaikaʻi, ʻaʻole liʻiliʻi ka hapa o ia mau hana i ka holo holoʻokoʻa, no laila ua paʻa ka pipeline i ʻole e pili i ka hana holoʻokoʻa.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

A laila hoʻomaka mākou e hoʻoponopono i ka pilikia o ka synchronizing ʻekolu mau kaula o ka hoʻokō. ʻO ka hopena he ʻōnaehana i hoʻokumu ʻia ma luna o kahi pahu apo me nā cell paʻa-nui. Ma kēia ʻōnaehana, pili nā mea āpau i ka wikiwiki o ka hoʻoili ʻana; ʻaʻole kope ʻia ka ʻikepili.

  • Hoʻokomo nā ʻeke pūnaewele komo a pau i ka pae hoʻokaʻawale.
  • Hoʻonoho mākou iā lākou i kahi ʻāpana a kaha iā lākou i loaʻa no ka pae #1.
  • Ua hiki mai ka lua o ka hana, ua loaa hou no ke kahua No.
  • ʻIke ka pae hana mua i nā hana i loaʻa, kaʻina hana, a hoʻoneʻe iā lākou i ka pae aʻe o ka pae hana ʻelua.
  • A laila kaʻina i ka hana mua a hoʻopaʻa i ke kelepona pili deleted - hiki i kēia manawa no ka hoʻohana hou.

Hana ʻia ka pila holoʻokoʻa ma kēia ʻano.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

Lawe ʻia ka hana ʻana o kēlā me kēia pae i nā ʻāpana a i ʻole ʻumi microseconds. A inā mākou e hoʻohana i nā ʻōnaehana hoʻonohonoho OS maʻamau, a laila e nalowale mākou i ka manawa hou ma ka synchronization ponoʻī. ʻO ia ke kumu i hoʻomaka ai mākou e hoʻohana i ka spinlock. Eia nō naʻe, he ʻano maikaʻi ʻole kēia i kahi ʻōnaehana manawa maoli, a ʻaʻole ʻōlelo ʻo RedHat e hana i kēia, no laila e hoʻopili mākou i kahi spinlock no 100 ms, a laila hoʻololi i ke ʻano semaphore e hoʻopau i ka hiki ke make.

ʻO ka hopena, ua loaʻa iā mākou kahi hana ma kahi o 8 miliona mau hana i kēlā me kēia kekona. A i ʻelua mahina ma hope 'ōlelo e pili ana iā LMAX Disruptor ua ʻike mākou i kahi wehewehe o kahi kaapuni me ka hana like.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

I kēia manawa hiki ke loaʻa i kekahi mau loina o ka hoʻokō ʻana i ka pae hoʻokahi. Hoʻopili ʻia nā hana a pau i kēlā me kēia, ma ke kauoha i loaʻa iā lākou. ʻO ka hopena, ua hoʻonui ʻia ka hana kiʻekiʻe mai 18 tausani a 50 tausani mau hana i kēlā me kēia kekona.

Pūnaehana hoʻokele pilikia hoʻololi

ʻAʻohe palena o ka hemolele, a ʻaʻole koke mākou i hoʻomaka hou i ka hoʻololi hou ʻana: i loko o ke kāʻei o ASTS+, hoʻomaka mākou e hoʻoneʻe i nā ʻōnaehana hoʻokele pilikia a me nā ʻōnaehana hoʻoponopono i nā ʻāpana kūʻokoʻa. Ua hoʻomohala mākou i kahi hoʻolālā hoʻolālā hou a me kahi kumu hoʻohālikelike hierarchical hou, a hoʻāʻo e hoʻohana i ka papa ma nā wahi āpau e hiki ai fixed_point ma kahi o double.

Akā ua puka koke mai kahi pilikia: pehea e hoʻonohonoho ai i nā loiloi ʻoihana āpau e hana nei no nā makahiki he nui a hoʻololi iā ia i ka ʻōnaehana hou? ʻO ka hopena, ua haʻalele ʻia ka mana mua o ka prototype o ka ʻōnaehana hou. ʻO ka lua o ka mana, e hana nei i kēia manawa i ka hana ʻana, ua hoʻokumu ʻia ma ke code like, e hana ana ma nā ʻāpana kalepa a me nā ʻāpana pilikia. I ka wā o ka hoʻomohala ʻana, ʻo ka mea paʻakikī loa e hana ʻo git merge ma waena o nā mana ʻelua. Ua hana ko mākou hoa hana ʻo Evgeniy Mazurenok i kēia hana i kēlā me kēia pule a i kēlā me kēia manawa ua hōʻino ʻo ia no ka manawa lōʻihi loa.

Ke koho ʻana i kahi ʻōnaehana hou, pono mākou e hoʻoponopono koke i ka pilikia o ka pilina. Ke koho ʻana i kahi kaʻa ʻikepili, pono e hōʻoia i ka jitter paʻa a me ka latency liʻiliʻi. Ua kūpono loa ka InfiniBand RDMA pūnaewele no kēia: ʻo ka awelika o ka manawa kaʻina hana he 4 mau manawa liʻiliʻi ma mua o nā pūnaewele 10 G Ethernet. Akā ʻo ka mea i hoʻohauʻoli loa iā mākou ʻo ka ʻokoʻa o nā pākēneka - 99 a me 99,9.

ʻOiaʻiʻo, loaʻa iā InfiniBand kāna mau pilikia. ʻO ka mea mua, he API ʻē aʻe - ibverbs ma kahi o nā kumu. ʻO ka lua, ʻaneʻane ʻaʻohe loaʻa ākea ākea nā haʻina memo memo. Ua hoʻāʻo mākou e hana i kā mākou prototype ponoʻī, akā ua lilo ia i mea paʻakikī loa, no laila ua koho mākou i kahi hopena pāʻoihana - Confinity Low Latency Messaging (IBM MQ LLM ma mua).

A laila ua ala mai ka hana o ka mahele pono ʻana i ka ʻōnaehana pilikia. Inā wehe wale ʻoe i ka Risk Engine a ʻaʻole hana i kahi node waena, a laila hiki ke hoʻohui ʻia nā kālepa mai nā kumu ʻelua.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

ʻO nā mea i kapa ʻia ʻo Ultra Low Latency solutions he mode reordering: hiki ke hoʻonohonoho ʻia nā kālepa mai nā kumu ʻelua i ke kauoha i koi ʻia ma ka loaʻa ʻana; ua hoʻokō ʻia kēia me ka hoʻohana ʻana i kahi ala kaʻawale no ka hoʻololi ʻana i ka ʻike e pili ana i ke kauoha. Akā ʻaʻole mākou e hoʻohana i kēia ʻano: hoʻopiʻi ia i ke kaʻina holoʻokoʻa, a i kekahi mau hoʻonā ʻaʻole i kākoʻo ʻia. Eia kekahi, pono e hāʻawi ʻia kēlā me kēia kālepa i nā manawa kūpono, a ma kā mākou papahana he paʻakikī loa kēia hana e hoʻokō pololei. No laila, ua hoʻohana mākou i ka papahana maʻamau me kahi mea hoʻolaha leka, ʻo ia hoʻi, me kahi mea hoʻouna e hoʻolaha i nā leka ma waena o ka Risk Engine.

ʻO ka pilikia ʻelua e pili ana i ke komo ʻana o ka mea kūʻai aku: inā he nui nā Risk Gateways, pono ka mea kūʻai aku e hoʻopili i kēlā me kēia o lākou, a pono kēia i nā loli i ka papa o ka mea kūʻai aku. Makemake mākou e haʻalele i kēia i kēia manawa, no laila ke hoʻolālā nei ka Risk Gateway i kēia manawa i ke kahawai ʻikepili holoʻokoʻa. ʻO kēia ka palena nui o ka throughput, akā maʻalahi loa ka hoʻohui pūnaewele.

Hoʻopili hou

ʻAʻole pono i kā mākou ʻōnaehana hoʻokahi wahi o ka hāʻule ʻole, ʻo ia hoʻi, pono e kope kope ʻia nā ʻāpana āpau, me ka mea hoʻolaha leka. Ua hoʻoponopono mākou i kēia pilikia me ka hoʻohana ʻana i ka ʻōnaehana CLLM: aia kahi pūʻulu RCMS kahi e hiki ai i nā mea hoʻouna ʻelua ke hana ma ke ʻano master-slave, a i ka wā e hāʻule ai kekahi, e hoʻololi koke ka ʻōnaehana i kekahi.

Ke hana nei me kahi kikowaena data backup

Hoʻoikaika maikaʻi ʻia ʻo InfiniBand no ka hana ʻana ma ke ʻano he pūnaewele kūloko, ʻo ia hoʻi, no ka hoʻopili ʻana i nā mea hana rack-mount, a ʻaʻole hiki ke waiho ʻia kahi pūnaewele InfiniBand ma waena o ʻelua mau kikowaena ʻikepili i māhele ʻia. No laila, ua hoʻokō mākou i kahi alahaka / dispatcher, kahi e hoʻopili ai i ka mālama ʻana i nā memo ma o nā pūnaewele Ethernet maʻamau a hoʻokuʻu i nā hana āpau i kahi pūnaewele IB lua. Ke pono mākou e neʻe mai kahi kikowaena data, hiki iā mākou ke koho i kahi kikowaena data e hana pū me kēia manawa.

Nā hopena

ʻAʻole i hana ʻia nā mea a pau i luna i ka manawa hoʻokahi; ua lawe ʻia i kekahi mau mea hou o ka hoʻomohala ʻana i kahi hoʻolālā hou. Ua hana mākou i ka prototype i loko o hoʻokahi mahina, akā ʻoi aku ma mua o ʻelua mau makahiki e hoʻokomo iā ia i ke kūlana hana. Ua hoʻāʻo mākou e hoʻokō i ka ʻae maikaʻi loa ma waena o ka hoʻonui ʻana i ka manawa hoʻoili kālepa a me ka hoʻonui ʻana i ka hilinaʻi o ka ʻōnaehana.

No ka mea i hoʻonui nui ʻia ka ʻōnaehana, ua hoʻokō mākou i ka hoʻihoʻi ʻana i ka ʻikepili mai ʻelua kumu kūʻokoʻa. Inā ʻaʻole holo pololei ka hale kūʻai memo no kekahi kumu, hiki iā ʻoe ke lawe i ka log transaction mai kahi kumu lua - mai ka Risk Engine. Mālama ʻia kēia kumumanaʻo a puni ka ʻōnaehana.

Ma waena o nā mea ʻē aʻe, ua hiki iā mākou ke mālama i ka API o ka mea kūʻai aku i ʻole e koi ʻia nā mea kūʻai aku a me nā mea ʻē aʻe e hana hou i ka hana hou. Pono mākou e hoʻololi i kekahi mau kikowaena, akā ʻaʻohe pono e hana i nā hoʻololi koʻikoʻi i ke ʻano hana.

Ua kapa mākou i ka mana o kēia manawa o kā mākou kahua ʻo Rebus - ma ke ʻano he pōkole no nā mea hou ʻelua i ʻike ʻia i ka hoʻolālā, Risk Engine a me BUS.

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

I ka wā mua, makemake mākou e hoʻokaʻawale i ka ʻāpana hoʻomaʻemaʻe wale nō, akā ʻo ka hopena he ʻōnaehana puʻupuʻu nui. Hiki i nā mea kūʻai ke launa pū me ka Trade Gateway, ka Clearing Gateway, a i ʻole nā ​​mea ʻelua.

ʻO ka mea i loaʻa iā mākou:

ʻO ka hoʻomohala ʻana o ka hoʻolālā ʻana o ke kālepa a me ka hoʻomaʻemaʻe ʻana o ka Moscow Exchange. Mahele 2

Ua ho'ēmi i ka pae latency. Me ka liʻiliʻi liʻiliʻi o nā kālepa, hana like ka ʻōnaehana e like me ka mana o mua, akā i ka manawa like hiki ke pale i kahi ukana kiʻekiʻe.

Ua hoʻonui ʻia ka hana kiʻekiʻe mai 50 tausani a 180 tausani mau hana i kēlā me kēia kekona. Hoʻopili ʻia ka hoʻonui hou ʻana e ke kahawai hoʻokahi o ka hoʻonohonoho ʻana i ke kauoha.

ʻElua ala no ka hoʻomaikaʻi hou ʻana: hoʻohālikelike i ka hoʻohālikelike ʻana a me ka hoʻololi ʻana i ke ala e hana ai me Gateway. I kēia manawa, holo nā Gateways a pau e like me ka hoʻopiʻi ʻana, kahi, ma lalo o ia ukana, pau ka hana maʻamau.

ʻO ka hope, hiki iaʻu ke hāʻawi i kekahi mau ʻōlelo aʻo i ka poʻe e hoʻopau nei i nā ʻōnaehana ʻoihana:

  • E hoʻomākaukau no ka pōʻino i nā manawa a pau. Piʻi mau nā pilikia me ka manaʻo ʻole.
  • ʻAʻole hiki ke hana hou i ka hale kiʻi. ʻOi loa inā pono ʻoe e hoʻokō i ka hilinaʻi kiʻekiʻe ma waena o nā hōʻailona he nui. ʻO ka nui o nā nodes, ʻoi aku ka nui o nā kumuwaiwai e pono ai no ke kākoʻo.
  • Pono nā haʻina hana maʻamau a me nā waiwai i nā kumuwaiwai hou aʻe no ka noiʻi, kākoʻo a mālama.
  • Mai haʻalele i ka hoʻoponopono ʻana i nā pilikia o ka hilinaʻi o ka ʻōnaehana a me ka hoʻihoʻi ʻana ma hope o ka hāʻule ʻana; e noʻonoʻo iā lākou i ka pae hoʻolālā mua.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka