Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π’ΠΎΠ²Π° Π΅ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° дълга история Π·Π° нашия Ρ‚Ρ€ΡŠΠ½Π»ΠΈΠ² ΠΏΡŠΡ‚ към ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΡ‰Π½Π° систСма с високо Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅, която осигурява Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° борсата. ΠŸΡŠΡ€Π²Π°Ρ‚Π° част Π΅ Ρ‚ΡƒΠΊ: habr.com/en/post/444300

ΠœΠΈΡΡ‚Π΅Ρ€ΠΈΠΎΠ·Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°

Π‘Π»Π΅Π΄ ΠΌΠ½ΠΎΠ³ΠΎΠ±Ρ€ΠΎΠΉΠ½ΠΈ тСстовС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π°Ρ‚Π° систСма Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ бСшС пусната Π² Сксплоатация ΠΈ сС Π½Π°Ρ‚ΡŠΠΊΠ½Π°Ρ…ΠΌΠ΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°, Π·Π° която ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° напишСм дСтСктивско-мистична история.

Малко слСд стартиранСто Π½Π° главния ΡΡŠΡ€Π²ΡŠΡ€, Π΅Π΄Π½Π° ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ бСшС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° с Π³Ρ€Π΅ΡˆΠΊΠ°. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° всичко бСшС Π½Π°Ρ€Π΅Π΄ Π½Π° рСзСрвния ΡΡŠΡ€Π²ΡŠΡ€. Оказа сС, Ρ‡Π΅ проста матСматичСска опСрация Π·Π° изчисляванС Π½Π° стСпСнта Π½Π° главния ΡΡŠΡ€Π²ΡŠΡ€ Π΄Π°Π²Π° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ ΠΎΡ‚ рСалния Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚! ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈ Π² Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° SSE2 ΠΎΡ‚ΠΊΡ€ΠΈΡ…ΠΌΠ΅ Ρ€Π°Π·Π»ΠΈΠΊΠ° Π² Π΅Π΄ΠΈΠ½ Π±ΠΈΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ отговаря Π·Π° Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ²Π°Π½Π΅Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π° с числа с ΠΏΠ»Π°Π²Π°Ρ‰Π° запСтая.

НаписахмС проста тСстова ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ° Π·Π° изчисляванС Π½Π° СкспонСнтата с Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π±ΠΈΡ‚ΠΎΠ²Π΅ Π·Π° Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ²Π°Π½Π΅. Оказа сС, Ρ‡Π΅ във вСрсията Π½Π° RedHat Linux, която ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅, имашС Π³Ρ€Π΅ΡˆΠΊΠ° Π² Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с матСматичСската функция, ΠΊΠΎΠ³Π°Ρ‚ΠΎ бСшС Π²ΠΌΡŠΠΊΠ½Π°Ρ‚ злополучният Π±ΠΈΡ‚. Π”ΠΎΠΊΠ»Π°Π΄Π²Π°Ρ…ΠΌΠ΅ Ρ‚ΠΎΠ²Π° Π½Π° RedHat, слСд извСстно Π²Ρ€Π΅ΠΌΠ΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ корСкция ΠΎΡ‚ тях ΠΈ я пуснахмС. Π“Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π²Π΅Ρ‡Π΅ Π½Π΅ сС появявашС, Π½ΠΎ Π½Π΅ бСшС ясно ΠΎΡ‚ΠΊΡŠΠ΄Π΅ ΠΈΠ΄Π²Π° Ρ‚ΠΎΠ·ΠΈ Π±ΠΈΡ‚? Ѐункцията ΠΎΡ‚Π³ΠΎΠ²Π°Ρ€ΡΡˆΠ΅ Π·Π° Ρ‚ΠΎΠ²Π° fesetround ΠΎΡ‚ Π΅Π·ΠΈΠΊΠ° C. Π’Π½ΠΈΠΌΠ°Ρ‚Π΅Π»Π½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ нашия ΠΊΠΎΠ΄ Π² Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠ°Ρ‚Π° Π³Ρ€Π΅ΡˆΠΊΠ°: ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ…ΠΌΠ΅ всички възмоТни ситуации; Ρ€Π°Π·Π³Π»Π΅Π΄Π° всички Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ²Π°Π½Π΅; сС ΠΎΠΏΠΈΡ‚Π° Π΄Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½Π° сСсия; ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ с Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠΏΡ†ΠΈΠΈ; Използвани са статичСн ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅Π½ Π°Π½Π°Π»ΠΈΠ·.

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС Π½Π°ΠΌΠ΅Ρ€Π΅Π½Π°.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π°: ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈΡ…Π° тСстовС Π·Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° процСсоритС; ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈ RAM; Π”ΠΎΡ€ΠΈ ΠΏΡ€ΠΎΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ тСстовС Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ вСроятния сцСнарий Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠ±ΠΈΡ‚ΠΎΠ²Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π² Π΅Π΄Π½Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ°. Π‘Π΅Π·Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π½ΠΎ.

Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка сС спряхмС Π½Π° тСория ΠΎΡ‚ свСта Π½Π° Ρ„ΠΈΠ·ΠΈΠΊΠ°Ρ‚Π° Π½Π° високитС Π΅Π½Π΅Ρ€Π³ΠΈΠΈ: някаква високоСнСргийна частица влСтя Π² нашия Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΏΡ€ΠΎΠ±ΠΈ стСната Π½Π° корпуса, ΡƒΠ΄Π°Ρ€ΠΈ процСсора ΠΈ Π½Π°ΠΊΠ°Ρ€Π° ΠΊΠ»ΡŽΡ‡Π°Π»ΠΊΠ°Ρ‚Π° Π΄Π° сС Π·Π°Π±ΠΈΠ΅ Ρ‚ΠΎΡ‡Π½ΠΎ Π² Ρ‚ΠΎΠ²Π° ΠΏΠ°Ρ€Ρ‡Π΅. Π’Π°Π·ΠΈ абсурдна тСория бСшС Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° β€žΠ½Π΅ΡƒΡ‚Ρ€ΠΈΠ½ΠΎβ€œ. Ако стС Π΄Π°Π»Π΅Ρ‡ ΠΎΡ‚ Ρ„ΠΈΠ·ΠΈΠΊΠ°Ρ‚Π° Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ€Π½ΠΈΡ‚Π΅ частици: Π½Π΅ΡƒΡ‚Ρ€ΠΈΠ½ΠΎΡ‚ΠΎ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ взаимодСйстват с външния свят ΠΈ със сигурност Π½Π΅ са Π² ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ Π΄Π° повлияят Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° процСсора.

Въй ΠΊΠ°Ρ‚ΠΎ Π½Π΅ бСшС възмоТно Π΄Π° сС ΠΎΡ‚ΠΊΡ€ΠΈΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° ΠΏΠΎΠ²Ρ€Π΅Π΄Π°Ρ‚Π°, ΡΡŠΡ€Π²ΡŠΡ€ΡŠΡ‚ β€žΠ½Π°Ρ€ΡƒΡˆΠΈΡ‚Π΅Π»β€œ бСшС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ ΠΎΡ‚ Ρ€Π°Π±ΠΎΡ‚Π° Π·Π° всСки случай.

Π‘Π»Π΅Π΄ извСстно Π²Ρ€Π΅ΠΌΠ΅ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° подобрявамС систСмата Π·Π° Π³ΠΎΡ€Π΅Ρ‰ΠΎ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅: Π²ΡŠΠ²Π΅Π΄ΠΎΡ…ΠΌΠ΅ Ρ‚Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ β€žΡ‚ΠΎΠΏΠ»ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈβ€œ (Ρ‚ΠΎΠΏΠ»ΠΈ) - асинхронни Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ. Π’Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…Π° ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ…Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ†Π΅Π½Ρ‚Ρ€ΠΎΠ²Π΅ Π·Π° Π΄Π°Π½Π½ΠΈ, Π½ΠΎ затоплянията Π½Π΅ взаимодСйстваха Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΈ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π—Π°Ρ‰ΠΎ бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ Ρ‚ΠΎΠ²Π°? Ако рСзСрвният ΡΡŠΡ€Π²ΡŠΡ€ сС ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ, Ρ‚ΠΎΠΏΡŠΠ», ΡΠ²ΡŠΡ€Π·Π°Π½ към основния ΡΡŠΡ€Π²ΡŠΡ€, става новият Ρ€Π΅Π·Π΅Ρ€Π²Π΅Π½. ВоСст слСд ΠΏΠΎΠ²Ρ€Π΅Π΄Π° систСмата Π½Π΅ остава с Π΅Π΄ΠΈΠ½ основСн ΡΡŠΡ€Π²ΡŠΡ€ Π΄ΠΎ края Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠ°Ρ‚Π° сСсия.

И ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΎΠ²Π°Ρ‚Π° вСрсия Π½Π° систСмата бСшС тСствана ΠΈ въвСдСна Π² Сксплоатация, ΠΎΡ‚Π½ΠΎΠ²ΠΎ сС появи Π±ΠΈΡ‚ΠΎΠ²Π°Ρ‚Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π·Π° Π·Π°ΠΊΡ€ΡŠΠ³Π»ΡΠ½Π΅. ОсвСн Ρ‚ΠΎΠ²Π° с ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° броя Π½Π° Ρ‚ΠΎΠΏΠ»ΠΈΡ‚Π΅ ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π½Π° Π΄Π° сС появява ΠΏΠΎ-чСсто. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€ΠΎΠ΄Π°Π²Π°Ρ‡ΡŠΡ‚ нямашС ΠΊΠ°ΠΊΠ²ΠΎ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ΅, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ нямашС ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΈ доказатСлства.

ΠŸΡ€ΠΈ порСдния Π°Π½Π°Π»ΠΈΠ· Π½Π° ситуацията сС появи тСория, Ρ‡Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ ΡΠ²ΡŠΡ€Π·Π°Π½ с ОБ. НаписахмС проста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°, която ΠΈΠ·Π²ΠΈΠΊΠ²Π° функция Π² Π±Π΅Π·ΠΊΡ€Π°Π΅Π½ Ρ†ΠΈΠΊΡŠΠ» fesetround, запомня Ρ‚Π΅ΠΊΡƒΡ‰ΠΎΡ‚ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅ ΠΈ Π³ΠΎ провСрява Ρ‡Ρ€Π΅Π· заспиванС ΠΈ Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π°Π²ΠΈ Π² ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΈ нишки. Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° заспиванС ΠΈ броя Π½Π° Π½ΠΈΡˆΠΊΠΈΡ‚Π΅, Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ послСдоватСлно Π΄Π° Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΠΏΠΎΠ²Ρ€Π΅Π΄Π°Ρ‚Π° Π½Π° Π±ΠΈΡ‚Π° слСд ΠΎΠΊΠΎΠ»ΠΎ 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ стартиранС Π½Π° ΠΏΠΎΠΌΠΎΡ‰Π½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°. ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° Red Hat ΠΎΠ±Π°Ρ‡Π΅ Π½Π΅ успя Π΄Π° Π³ΠΎ Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅. ВСстванСто Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ наши ΡΡŠΡ€Π²ΡŠΡ€ΠΈ ΠΏΠΎΠΊΠ°Π·Π°, Ρ‡Π΅ само Ρ‚Π΅Π·ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ процСсори са ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ²ΠΈ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅Ρ‚ΠΎ към Π½ΠΎΠ²ΠΎ ядро β€‹β€‹Ρ€Π΅ΡˆΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка просто смСнихмС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΈ истинската ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π° Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° остана нСясна.

И извСднъТ ΠΌΠΈΠ½Π°Π»Π°Ρ‚Π° Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° Π₯Π°Π±Ρ€Π΅ бСшС ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° статия β€œΠšΠ°ΠΊ Π½Π°ΠΌΠ΅Ρ€ΠΈΡ… Π³Ρ€Π΅ΡˆΠΊΠ° Π² процСсоритС Intel Skylake" Битуацията, описана Π² Π½Π΅Π³ΠΎ, бСшС ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° Π½Π°ΡˆΠ°Ρ‚Π°, Π½ΠΎ Π°Π²Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ разслСдванСто ΠΈ ΠΈΠ·Π»ΠΎΠΆΠΈ тСория, Ρ‡Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π° Π΅ Π² ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π°. И ΠΊΠΎΠ³Π°Ρ‚ΠΎ Linux ядрата сС Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚, ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΡΡŠΡ‰ΠΎ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π°.

По-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ Π½Π° систСмата

Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ сС ΠΎΡ‚ΡŠΡ€Π²Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠ°Ρ‚Π°, Ρ‚Π°Π·ΠΈ история Π½ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈ Π΄Π° ΠΏΡ€Π΅Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ систСмната Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π’ края Π½Π° ΠΊΡ€Π°ΠΈΡ‰Π°Ρ‚Π° Π½Π΅ бяхмС Π·Π°Ρ‰ΠΈΡ‚Π΅Π½ΠΈ ΠΎΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π³Ρ€Π΅ΡˆΠΊΠΈ.

Π‘Π»Π΅Π΄Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈ са Π² основата Π½Π° слСдващитС подобрСния Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма:

  • НС моТСш Π΄Π° сС Π΄ΠΎΠ²Π΅Ρ€ΠΈΡˆ Π½Π° Π½ΠΈΠΊΠΎΠ³ΠΎ. Π‘ΡŠΡ€Π²ΡŠΡ€ΠΈΡ‚Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Ρ‚ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ.
  • РСзСрвация Π½Π° мнозинството.
  • ΠžΡΠΈΠ³ΡƒΡ€ΡΠ²Π°Π½Π΅ Π½Π° консСнсус. ΠšΠ°Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ допълнСниС към Ρ€Π΅Π·Π΅Ρ€Π²Π° Π½Π° мнозинството.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΈ са Π΄Π²ΠΎΠΉΠ½ΠΈ ΠΏΡ€ΠΎΠ²Π°Π»ΠΈ.
  • ЖизнСност. Новата схСма Π·Π° Π³ΠΎΡ€Π΅Ρ‰ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° готовност Π½Π΅ трябва Π΄Π° Π΅ ΠΏΠΎ-лоша ΠΎΡ‚ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π°. Π’ΡŠΡ€Π³ΠΎΠ²ΠΈΡΡ‚Π° трябва Π΄Π° ΠΏΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠΈ Π±Π΅Π· ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½Π΅ Π΄ΠΎ послСдния ΡΡŠΡ€Π²ΡŠΡ€.
  • Π›Π΅ΠΊΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° латСнтността. ВсСки прСстой Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΈ финансови Π·Π°Π³ΡƒΠ±ΠΈ.
  • Минимално взаимодСйствиС с ΠΌΡ€Π΅ΠΆΠ°Ρ‚Π°, Π·Π° Π΄Π° сС Π·Π°ΠΏΠ°Π·ΠΈ забавянСто възмоТно Π½Π°ΠΉ-ниско.
  • Π˜Π·Π±ΠΎΡ€ Π½Π° Π½ΠΎΠ² Π³Π»Π°Π²Π΅Π½ ΡΡŠΡ€Π²ΡŠΡ€ Π·Π° сСкунди.

Нито Π΅Π΄Π½ΠΎ ΠΎΡ‚ Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π½Π° ΠΏΠ°Π·Π°Ρ€Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π΅ Π½ΠΈ ΠΏΠΎΠ΄Ρ…ΠΎΠΆΠ΄Π°ΡˆΠ΅, Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΡŠΡ‚ Raft бСшС ΠΎΡ‰Π΅ Π² Π½Π°Ρ‡Π°Π»Π΅Π½ стадий, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ собствСно Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π Π°Π±ΠΎΡ‚Π° Π² ΠΌΡ€Π΅ΠΆΠ°

Π’ допълнСниС към систСмата Π·Π° Ρ€Π΅Π·Π΅Ρ€Π²Π°Ρ†ΠΈΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΌΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€Π°ΠΌΠ΅ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎΡ‚ΠΎ взаимодСйствиС. I/O подсистСмата сС ΡΡŠΡΡ‚ΠΎΠ΅ΡˆΠ΅ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ процСси, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ…Π° Π½Π°ΠΉ-лошо Π²ΡŠΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΈΠ΅ Π²ΡŠΡ€Ρ…Ρƒ Ρ‚Ρ€Π΅ΠΏΡ‚Π΅Π½Π΅Ρ‚ΠΎ ΠΈ латСнтността. Бъс стотици процСси, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ TCP Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π½ΠΈΠ΅ бяхмС ΠΏΡ€ΠΈΠ½ΡƒΠ΄Π΅Π½ΠΈ постоянно Π΄Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ тях ΠΈ Π² ΠΌΠ°Ρ‰Π°Π± Π½Π° микросСкунди Ρ‚ΠΎΠ²Π° Π΅ доста Π²Ρ€Π΅ΠΌΠ΅Π΅ΠΌΠΊΠ° опСрация. Но Π½Π°ΠΉ-Π»ΠΎΡˆΠΎΡ‚ΠΎ Π΅, Ρ‡Π΅ ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΄Π°Π΄Π΅Π½ процСс ΠΏΠΎΠ»ΡƒΡ‡ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Ρ‚ΠΎΠΉ Π³ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ Π΄ΠΎ Π΅Π΄Π½Π° SystemV опашка ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·Ρ‡Π°ΠΊΠ° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° SystemV опашка. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ ΠΈΠΌΠ° голям Π±Ρ€ΠΎΠΉ възли, пристиганСто Π½Π° Π½ΠΎΠ² TCP ΠΏΠ°ΠΊΠ΅Ρ‚ Π² Π΅Π΄ΠΈΠ½ процСс ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈ Π² ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π² Π΄Ρ€ΡƒΠ³ прСдставляват Π΄Π²Π΅ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€Π°Ρ‰ΠΈ сС ΡΡŠΠ±ΠΈΡ‚ΠΈΡ Π·Π° ОБ. Π’ Ρ‚ΠΎΠ·ΠΈ случай, Π°ΠΊΠΎ няма Π½Π°Π»ΠΈΡ‡Π½ΠΈ физичСски процСсори ΠΈ Π·Π° Π΄Π²Π΅Ρ‚Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π΅Π΄Π½Π°Ρ‚Π° Ρ‰Π΅ бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π°, Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Ρ‰Π΅ бъдС поставСна Π² Ρ‡Π°ΠΊΠ°Ρ‰Π° опашка. НСвъзмоТно Π΅ Π΄Π° сС прСдвидят послСдствията.

Π’ Ρ‚Π°ΠΊΠΈΠ²Π° ситуации ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π΅Π½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π½Π° ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π½Π° процСса, Π½ΠΎ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ изисква ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° рСсурсоСмки систСмни повиквания. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ към Π΅Π΄Π½Π° нишка, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ класичСския epoll, ΠΊΠΎΠ΅Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ скоростта ΠΈ Π½Π°ΠΌΠ°Π»ΠΈ Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° транзакцията. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° сС ΠΎΡ‚ΡŠΡ€Π²Π°Ρ…ΠΌΠ΅ ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ процСси ΠΈ комуникацията Ρ‡Ρ€Π΅Π· SystemV, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½Π°ΠΌΠ°Π»ΠΈΡ…ΠΌΠ΅ броя Π½Π° систСмнитС повиквания ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΈΡ‚Π΅ Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈΡ‚Π΅. Π‘Π°ΠΌΠΎ Π½Π° I/O подсистСмата бСшС възмоТно Π΄Π° сС спСстят ΠΎΠΊΠΎΠ»ΠΎ 8-17 микросСкунди, Π² зависимост ΠΎΡ‚ сцСнария. Π’Π°Π·ΠΈ Сднонишкова схСма сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π½Π΅ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Π½Π° ΠΎΡ‚Ρ‚ΠΎΠ³Π°Π²Π°; Π΅Π΄Π½Π° epoll нишка с Ρ€Π΅Π·Π΅Ρ€Π² Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π°, Π·Π° Π΄Π° обслуТи всички Π²Ρ€ΡŠΠ·ΠΊΠΈ.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° транзакция

Нарастващото Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° систСма Π½Π°Π»ΠΎΠΆΠΈ Π½Π°Π΄Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΏΠΎΡ‡Ρ‚ΠΈ всички Π½Π΅ΠΉΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Но, Π·Π° съТалСниС, стагнацията Π² растСТа Π½Π° Ρ‚Π°ΠΊΡ‚ΠΎΠ²ΠΈΡ‚Π΅ чСстоти Π½Π° процСсора ΠΏΡ€Π΅Π· послСднитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ Π²Π΅Ρ‡Π΅ Π½Π΅ позволява Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° процСситС. Π—Π°Ρ‚ΠΎΠ²Π° Ρ€Π΅ΡˆΠΈΡ…ΠΌΠ΅ Π΄Π° Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ процСса Π½Π° Engine Π½Π° Ρ‚Ρ€ΠΈ Π½ΠΈΠ²Π°, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΉ-Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π΅Π½ΠΎΡ‚ΠΎ ΠΎΡ‚ тях Π΅ систСмата Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° риска, която оцСнява наличността Π½Π° срСдства Π² смСткитС ΠΈ създава самитС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Но ΠΏΠ°Ρ€ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π°Π»ΡƒΡ‚ΠΈ ΠΈ бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Ρ€Π°Π·Π±Π΅Ρ€Π΅ Π½Π° ΠΊΠ°ΠΊΠ²Π° Π±Π°Π·Π° трябва Π΄Π° сС Ρ€Π°Π·Π΄Π΅Π»ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° заявкитС.

Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎΡ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΅ Π΄Π° Π³ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΠΌ ΠΏΠΎ Π²Π°Π»ΡƒΡ‚ΠΈ: Π΅Π΄ΠΈΠ½ ΡΡŠΡ€Π²ΡŠΡ€ Ρ‚ΡŠΡ€Π³ΡƒΠ²Π° Π² Π΄ΠΎΠ»Π°Ρ€ΠΈ, Π΄Ρ€ΡƒΠ³ Π² Π»ΠΈΡ€ΠΈ, Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ Π² Π΅Π²Ρ€ΠΎ. Но Π°ΠΊΠΎ с Ρ‚Π°ΠΊΠ°Π²Π° схСма сС изпратят Π΄Π²Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π·Π° Π·Π°ΠΊΡƒΠΏΡƒΠ²Π°Π½Π΅ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π²Π°Π»ΡƒΡ‚ΠΈ, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ възникнС ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ с дСсинхронизиранСто Π½Π° ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»Π°. Но синхронизиранСто Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ ΠΈ скъпо. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»Π½ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ Π΄Π° ΡˆΠ°Ρ€Π΄ΠΈΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΏΠΎ ΠΏΠΎΡ€Ρ‚Ρ„Π΅ΠΉΠ»ΠΈ ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΏΠΎ инструмСнти. ΠœΠ΅ΠΆΠ΄Ρƒ Π΄Ρ€ΡƒΠ³ΠΎΡ‚ΠΎ, ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ Π·Π°ΠΏΠ°Π΄Π½ΠΈ борси нямат Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π΄Π° провСряват рисковСтС Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° остро, ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π½ΠΈΠ΅, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π°ΠΉ-чСсто Ρ‚ΠΎΠ²Π° сС ΠΏΡ€Π°Π²ΠΈ ΠΎΡ„Π»Π°ΠΉΠ½. Π’Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΠΌ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°.

НСка обясним с ΠΏΡ€ΠΈΠΌΠ΅Ρ€. Π’ΡŠΡ€Π³ΠΎΠ²Π΅Ρ† иска Π΄Π° ΠΊΡƒΠΏΠΈ $30 ΠΈ заявката ΠΎΡ‚ΠΈΠ²Π° Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ Π½Π° транзакцията: Π½ΠΈΠ΅ провСрявамС Π΄Π°Π»ΠΈ Ρ‚ΠΎΠ·ΠΈ Ρ‚ΡŠΡ€Π³ΠΎΠ²Π΅Ρ† ΠΈΠΌΠ° ΠΏΡ€Π°Π²ΠΎ Π½Π° Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ Π΄Π°Π»ΠΈ ΠΈΠΌΠ° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π°. Ако всичко Π΅ Π½Π°Ρ€Π΅Π΄, заявката ΠΎΡ‚ΠΈΠ²Π° към систСмата Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° риска, Ρ‚.Π΅. Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ срСдства Π·Π° ΡΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° сдСлка. Има Π·Π°Π±Π΅Π»Π΅ΠΆΠΊΠ°, Ρ‡Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° сума Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π΅ Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π°. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° заявката сС ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‰Π° към систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ, която одобрява ΠΈΠ»ΠΈ ΠΎΡ‚Ρ…Π²ΡŠΡ€Π»Ρ транзакцията. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ транзакцията Π΅ ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° - Ρ‚ΠΎΠ³Π°Π²Π° систСмата Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° риска отбСлязва, Ρ‡Π΅ ΠΏΠ°Ρ€ΠΈΡ‚Π΅ са Π΄Π΅Π±Π»ΠΎΠΊΠΈΡ€Π°Π½ΠΈ ΠΈ Ρ€ΡƒΠ±Π»ΠΈΡ‚Π΅ сС ΠΏΡ€Π΅Π²Ρ€ΡŠΡ‰Π°Ρ‚ Π² Π΄ΠΎΠ»Π°Ρ€ΠΈ.

ΠšΠ°Ρ‚ΠΎ цяло систСмата Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° риска ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° слоТни Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ ΠΈ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° голямо количСство ΠΌΠ½ΠΎΠ³ΠΎ рСсурсоСмки изчислСния, Π° Π½Π΅ просто провСрява β€žΡΠ°Π»Π΄ΠΎΡ‚ΠΎ ΠΏΠΎ ΡΠΌΠ΅Ρ‚ΠΊΠ°Ρ‚Π°β€œ, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Π½Π° ΠΏΡ€ΡŠΠ² ΠΏΠΎΠ³Π»Π΅Π΄.

ΠšΠΎΠ³Π°Ρ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° раздСлямС процСса Π½Π° Engine Π½Π° Π½ΠΈΠ²Π°, сС Π½Π°Ρ‚ΡŠΠΊΠ½Π°Ρ…ΠΌΠ΅ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΠΊΠΎΠ΄ΡŠΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ бСшС Π½Π°Π»ΠΈΡ‡Π΅Π½ ΠΏΠΎ Ρ‚ΠΎΠ²Π° Π²Ρ€Π΅ΠΌΠ΅, Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ използвашС ΡΡŠΡ‰ΠΈΡ масив ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π½Π° Π΅Ρ‚Π°ΠΏΠΈΡ‚Π΅ Π½Π° Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ изисквашС прСнаписванС Π½Π° цялата ΠΊΠΎΠ΄ΠΎΠ²Π° Π±Π°Π·Π°. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° заимствахмС Ρ‚Π΅Ρ…Π½ΠΈΠΊΠ° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° инструкции ΠΎΡ‚ ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ процСсори: всяка ΠΎΡ‚ тях Π΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° ΠΌΠ°Π»ΠΊΠΈ Π΅Ρ‚Π°ΠΏΠΈ ΠΈ няколко дСйствия сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ Π² Π΅Π΄ΠΈΠ½ Ρ†ΠΈΠΊΡŠΠ».

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π‘Π»Π΅Π΄ ΠΌΠ°Π»ΠΊΠ° адаптация Π½Π° ΠΊΠΎΠ΄Π° ΡΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ Π·Π° ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π² ΠΊΠΎΠΉΡ‚ΠΎ транзакцията бСшС Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π° Π½Π° 4 Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°: ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΎ взаимодСйствиС, Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅, изпълнСниС ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Π΅Π΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€. ИмамС Π΄Π²Π΅ систСми Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, сСрийна ΠΈ ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π°. ΠŸΡŠΡ€Π²Π°Ρ‚Π° транзакция пристига ΠΈ сС ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° Π·Π° Π²Π°Π»ΠΈΠ΄ΠΈΡ€Π°Π½Π΅ ΠΈ Π² Π΄Π²Π΅Ρ‚Π΅ систСми. Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° транзакция пристига Π²Π΅Π΄Π½Π°Π³Π°: Π² ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½Π° систСма тя Π½Π΅Π·Π°Π±Π°Π²Π½ΠΎ сС ΠΏΡ€ΠΈΠ΅ΠΌΠ° Π·Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π° Π² послСдоватСлна систСма сС поставя Π½Π° опашка, Ρ‡Π°ΠΊΠ°Ρ‰Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° транзакция Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΠΏΡ€Π΅Π· тСкущия Π΅Ρ‚Π°ΠΏ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. ВоСст, основното прСдимство Π½Π° ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π½Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅, Ρ‡Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°ΠΌΠ΅ ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΎ.

Π•Ρ‚ΠΎ ΠΊΠ°ΠΊ измислихмС систСмата ASTS+.

Вярно Π΅, Ρ‡Π΅ ΠΈ с ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€ΠΈΡ‚Π΅ Π½Π΅ всичко Π΅ Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° Π³Π»Π°Π΄ΠΊΠΎ. Π”Π° ΠΊΠ°ΠΆΠ΅ΠΌ, Ρ‡Π΅ ΠΈΠΌΠ°ΠΌΠ΅ транзакция, която засяга масиви ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π² съсСдна транзакция; Ρ‚ΠΎΠ²Π° Π΅ Ρ‚ΠΈΠΏΠΈΡ‡Π½Π° ситуация Π·Π° ΠΎΠ±ΠΌΠ΅Π½. Π’Π°ΠΊΠ°Π²Π° транзакция Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС изпълнСна Π² ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€, Π·Π°Ρ‰ΠΎΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° засСгнС Π΄Ρ€ΡƒΠ³ΠΈ. Π’Π°Π·ΠΈ ситуация сС Π½Π°Ρ€ΠΈΡ‡Π° опасност ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΈ Ρ‚Π°ΠΊΠΈΠ²Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ просто сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ: ΠΊΠΎΠ³Π°Ρ‚ΠΎ β€žΠ±ΡŠΡ€Π·ΠΈΡ‚Π΅β€œ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° ΡΠ²ΡŠΡ€ΡˆΠ°Ρ‚, Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΡŠΡ‚ спира, систСмата ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° β€žΠ±Π°Π²Π½Π°Ρ‚Π°β€œ транзакция ΠΈ слСд Ρ‚ΠΎΠ²Π° стартира Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄Π° ΠΎΡ‚Π½ΠΎΠ²ΠΎ. Π—Π° щастиС Π΄Π΅Π»ΡŠΡ‚ Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² общия ΠΏΠΎΡ‚ΠΎΠΊ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ малък, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Ρ‚Ρ€ΡŠΠ±ΠΎΠΏΡ€ΠΎΠ²ΠΎΠ΄ΡŠΡ‚ спира Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° рядко, Ρ‡Π΅ Π½Π΅ засяга цялостната производитСлност.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° Ρ€Π΅ΡˆΠ°Π²Π°ΠΌΠ΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° със синхронизиранСто Π½Π° Ρ‚Ρ€ΠΈ нишки Π½Π° изпълнСниС. Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ бСшС систСма, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΠΏΡ€ΡŠΡΡ‚Π΅Π½ΠΎΠ²ΠΈΠ΄Π΅Π½ Π±ΡƒΡ„Π΅Ρ€ с ΠΊΠ»Π΅Ρ‚ΠΊΠΈ с фиксиран Ρ€Π°Π·ΠΌΠ΅Ρ€. Π’ Ρ‚Π°Π·ΠΈ систСма всичко зависи ΠΎΡ‚ скоростта Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π½Π΅ сС ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚.

  • Всички входящи ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π²Π»ΠΈΠ·Π°Ρ‚ Π² Π΅Ρ‚Π°ΠΏΠ° Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅.
  • ΠŸΠΎΡΡ‚Π°Π²ΡΠΌΠ΅ Π³ΠΈ Π² масив ΠΈ Π³ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ°Ρ‚ΠΎ Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π·Π° Π΅Ρ‚Π°ΠΏ #1.
  • ΠŸΡ€ΠΈΡΡ‚ΠΈΠ³Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° транзакция, тя ΠΎΡ‚Π½ΠΎΠ²ΠΎ Π΅ Π½Π°Π»ΠΈΡ‡Π½Π° Π·Π° Π΅Ρ‚Π°ΠΏ β„–1.
  • ΠŸΡŠΡ€Π²Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰Π° нишка Π²ΠΈΠΆΠ΄Π° Π½Π°Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° Π³ΠΈ ΠΈ Π³ΠΈ прСмСства към слСдващия Π΅Ρ‚Π°ΠΏ Π½Π° Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰Π° нишка.
  • Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° транзакция ΠΈ ΠΌΠ°Ρ€ΠΊΠΈΡ€Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½Π°Ρ‚Π° ΠΊΠ»Π΅Ρ‚ΠΊΠ° deleted β€” Π²Π΅Ρ‡Π΅ Π΅ Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° Π½ΠΎΠ²Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°.

По Ρ‚ΠΎΠ·ΠΈ Π½Π°Ρ‡ΠΈΠ½ сС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° цялата опашка.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° всСки Π΅Ρ‚Π°ΠΏ ΠΎΡ‚Π½Π΅ΠΌΠ° Π΅Π΄ΠΈΠ½ΠΈΡ†ΠΈ ΠΈΠ»ΠΈ дСсСтки микросСкунди. И Π°ΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ стандартни схСми Π·Π° синхронизация Π½Π° ОБ, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‰Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠΌ ΠΏΠΎΠ²Π΅Ρ‡Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° самата синхронизация. Π•Ρ‚ΠΎ Π·Π°Ρ‰ΠΎ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ spinlock. Π’ΠΎΠ²Π° ΠΎΠ±Π°Ρ‡Π΅ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ лоша Ρ„ΠΎΡ€ΠΌΠ° Π² систСма Π² Ρ€Π΅Π°Π»Π½ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΈ RedHat ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ‡Π½ΠΎ Π½Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° сС ΠΏΡ€Π°Π²ΠΈ Ρ‚ΠΎΠ²Π°, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»Π°Π³Π°ΠΌΠ΅ спинлок Π·Π° 100 ms ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π°ΠΌΠ΅ към сСмафорСн Ρ€Π΅ΠΆΠΈΠΌ, Π·Π° Π΄Π° Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π°ΠΌΠ΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π±Π»ΠΎΠΊΠΈΡ€Π°Π½Π΅.

Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° постигнахмС производитСлност ΠΎΡ‚ ΠΎΠΊΠΎΠ»ΠΎ 8 ΠΌΠΈΠ»ΠΈΠΎΠ½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда. И Π±ΡƒΠΊΠ²Π°Π»Π½ΠΎ Π΄Π²Π° мСсСца ΠΏΠΎ-късно Π² Бтатия относно LMAX Disruptor видяхмС описаниС Π½Π° Π²Π΅Ρ€ΠΈΠ³Π° със ΡΡŠΡ‰Π°Ρ‚Π° функционалност.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π‘Π΅Π³Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° няколко нишки Π½Π° изпълнСниС Π½Π° Π΅Π΄ΠΈΠ½ Π΅Ρ‚Π°ΠΏ. Всички Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ бяха ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈ Π΅Π΄Π½Π° ΠΏΠΎ Π΅Π΄Π½Π°, Π² Ρ€Π΅Π΄Π°, Π² ΠΊΠΎΠΉΡ‚ΠΎ бяха ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈ. Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΠΈΠΊΠΎΠ²Π°Ρ‚Π° производитСлност сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΎΡ‚ 18 хиляди Π½Π° 50 хиляди Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда.

БистСма Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° борсовия риск

Няма ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π·Π° ΡΡŠΠ²ΡŠΡ€ΡˆΠ΅Π½ΡΡ‚Π²ΠΎΡ‚ΠΎ ΠΈ скоро Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ ΠΎΡ‚Π½ΠΎΠ²ΠΎ модСрнизация: Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° ASTS+ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Π΄Π° прСмСствамС систСмитС Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° риска ΠΈ ΡΠ΅Ρ‚ΡŠΠ»ΠΌΠ΅Π½Ρ‚ Π² Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ. Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΈΡ…ΠΌΠ΅ гъвкава ΠΌΠΎΠ΄Π΅Ρ€Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΈ Π½ΠΎΠ² ΠΉΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π΅Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° риска ΠΈ сС ΠΎΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ класа, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ възмоТно fixed_point вмСсто double.

Но Π²Π΅Π΄Π½Π°Π³Π° възникна ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ: ΠΊΠ°ΠΊ Π΄Π° синхронизиратС цялата бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°, която Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΎΡ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, ΠΈ Π΄Π° я ΠΏΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΠΈΡ‚Π΅ Π² Π½ΠΎΠ²Π°Ρ‚Π° систСма? Π’ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ Π½Π° Ρ‚ΠΎΠ²Π° ΠΏΡŠΡ€Π²Π°Ρ‚Π° вСрсия Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Π½Π° Π½ΠΎΠ²Π°Ρ‚Π° систСма Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° бъдС изоставСна. Π’Ρ‚ΠΎΡ€Π°Ρ‚Π° вСрсия, която Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² производство, сС основава Π½Π° ΡΡŠΡ‰ΠΈΡ ΠΊΠΎΠ΄, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Ρ‚ΡŠΡ€Π³ΠΎΠ²ΡΠΊΠ°Ρ‚Π°, Ρ‚Π°ΠΊΠ° ΠΈ Π² рисковата част. По Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π°ΠΉ-Ρ‚Ρ€ΡƒΠ΄Π½ΠΎΡ‚ΠΎ Π½Π΅Ρ‰ΠΎ бСшС git merge ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π΅ вСрсии. ΠΠ°ΡˆΠΈΡΡ‚ ΠΊΠΎΠ»Π΅Π³Π° Π•Π²Π³Π΅Π½ΠΈΠΉ ΠœΠ°Π·ΡƒΡ€Π΅Π½ΠΎΠΊ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°ΡˆΠ΅ Ρ‚Π°Π·ΠΈ опСрация всяка сСдмица ΠΈ всСки ΠΏΡŠΡ‚ Ρ€ΡƒΠ³Π°Π΅ΡˆΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ дълго Π²Ρ€Π΅ΠΌΠ΅.

ΠŸΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° Π½ΠΎΠ²Π° систСма Π²Π΅Π΄Π½Π°Π³Π° Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Ρ€Π΅ΡˆΠΈΠΌ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с взаимодСйствиСто. ΠŸΡ€ΠΈ ΠΈΠ·Π±ΠΎΡ€Π° Π½Π° шина Π·Π° Π΄Π°Π½Π½ΠΈ бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС осигури стабилно Ρ‚Ρ€Π΅ΠΏΡ‚Π΅Π½Π΅ ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½Π° латСнтност. ΠœΡ€Π΅ΠΆΠ°Ρ‚Π° InfiniBand RDMA бСшС Π½Π°ΠΉ-подходяща Π·Π° Ρ‚ΠΎΠ²Π°: срСдното Π²Ρ€Π΅ΠΌΠ΅ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΅ 4 ΠΏΡŠΡ‚ΠΈ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² 10 G Ethernet ΠΌΡ€Π΅ΠΆΠΈ. Но Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ наистина Π½ΠΈ ΠΏΠ»Π΅Π½ΠΈ, Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ°Ρ‚Π° Π² ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΈΠ»ΠΈΡ‚Π΅ - 99 ΠΈ 99,9.

Π Π°Π·Π±ΠΈΡ€Π° сС, InfiniBand ΠΈΠΌΠ° своитС прСдизвикатСлства. ΠŸΡŠΡ€Π²ΠΎ, Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ API - ibverbs вмСсто сокСти. Π’Ρ‚ΠΎΡ€ΠΎ, ΠΏΠΎΡ‡Ρ‚ΠΈ няма ΡˆΠΈΡ€ΠΎΠΊΠΎ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄. ΠžΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ сС Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ собствСн ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏ, Π½ΠΎ сС ΠΎΠΊΠ°Π·Π° ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, Π·Π°Ρ‚ΠΎΠ²Π° ΠΈΠ·Π±Ρ€Π°Ρ…ΠΌΠ΅ комСрсиално Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ - Confinity Low Latency Messaging (бивш IBM MQ LLM).

Π’ΠΎΠ³Π°Π²Π° възникна Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎΡ‚ΠΎ раздСлянС Π½Π° рисковата систСма. Ако просто ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π΅Ρ‚Π΅ Risk Engine ΠΈ Π½Π΅ ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ възСл, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ Π΄Π²Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ смСсСни.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

Π’Π°ΠΊΠ° Π½Π°Ρ€Π΅Ρ‡Π΅Π½ΠΈΡ‚Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ с ΡƒΠ»Ρ‚Ρ€Π° ниска латСнтност ΠΈΠΌΠ°Ρ‚ Ρ€Π΅ΠΆΠΈΠΌ Π½Π° ΠΏΡ€Π΅Π½Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅: Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ Π΄Π²Π° ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΠΎΠ΄Ρ€Π΅Π΄Π΅Π½ΠΈ Π² нСобходимия Ρ€Π΅Π΄ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅; Ρ‚ΠΎΠ²Π° сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»Π΅Π½ ΠΊΠ°Π½Π°Π» Π·Π° ΠΎΠ±ΠΌΠ΅Π½ Π½Π° информация Π·Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠ°Ρ‚Π°. Но Π½ΠΈΠ΅ всС ΠΎΡ‰Π΅ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ Ρ€Π΅ΠΆΠΈΠΌ: Ρ‚ΠΎΠΉ услоТнява цСлия процСс ΠΈ Π² Ρ€Π΅Π΄ΠΈΡ†Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΎΠ±Ρ‰ΠΎ Π½Π΅ сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°. ОсвСн Ρ‚ΠΎΠ²Π° Π½Π° всяка транзакция Ρ‰Π΅ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ присвоСни ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚ΡŠΡ†ΠΈ, Π° Π² Π½Π°ΡˆΠ°Ρ‚Π° схСма Ρ‚ΠΎΠ·ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΡŠΠΌ Π΅ ΠΌΠ½ΠΎΠ³ΠΎ Ρ‚Ρ€ΡƒΠ΄Π΅Π½ Π·Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅. Π—Π°Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ класичСската схСма с Π±Ρ€ΠΎΠΊΠ΅Ρ€ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, тоСст с диспСчСр, ΠΊΠΎΠΉΡ‚ΠΎ разпрСдСля ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Risk Engine.

Вторият ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ бСшС ΡΠ²ΡŠΡ€Π·Π°Π½ с Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°: Π°ΠΊΠΎ ΠΈΠΌΠ° няколко шлюза Π·Π° риск, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΡŠΡ‚ трябва Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅ с всСки ΠΎΡ‚ тях ΠΈ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ изисква ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² клиСнтския слой. Π˜ΡΠΊΠ°Ρ…ΠΌΠ΅ Π΄Π° избягамС ΠΎΡ‚ Ρ‚ΠΎΠ²Π° Π½Π° Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ настоящият Π΄ΠΈΠ·Π°ΠΉΠ½ Π½Π° Risk Gateway ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° цСлия ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. Π’ΠΎΠ²Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° максималната производитСлност, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ опростява систСмната интСграция.

Π”ΡƒΠ±Π»ΠΈΡ€Π°Π½Π΅

ΠΠ°ΡˆΠ°Ρ‚Π° систСма Π½Π΅ трябва Π΄Π° ΠΈΠΌΠ° Π½ΠΈΡ‚ΠΎ Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° Π½Π° ΠΎΡ‚ΠΊΠ°Π·, тоСст всички ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½ΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€Π° Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ. Π Π΅ΡˆΠΈΡ…ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° систСмата CLLM: тя ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° RCMS ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€, Π² ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π²Π°ΠΌΠ° диспСчСри ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° работят Π² Ρ€Π΅ΠΆΠΈΠΌ master-slave ΠΈ ΠΊΠΎΠ³Π°Ρ‚ΠΎ Сдиният сС ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ, систСмата Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΏΡ€Π΅Π²ΠΊΠ»ΡŽΡ‡Π²Π° към другия.

Π Π°Π±ΠΎΡ‚Π° с Ρ€Π΅Π·Π΅Ρ€Π²Π΅Π½ Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ

InfiniBand Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° ΠΊΠ°Ρ‚ΠΎ Π»ΠΎΠΊΠ°Π»Π½Π° ΠΌΡ€Π΅ΠΆΠ°, Ρ‚.Π΅. Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅, ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π² стСлаТ, ΠΈ InfiniBand ΠΌΡ€Π΅ΠΆΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π²Π° гСографски Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ†Π΅Π½Ρ‚ΡŠΡ€Π° Π·Π° Π΄Π°Π½Π½ΠΈ. Π—Π°Ρ‚ΠΎΠ²Π° Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ мост/диспСчСр, ΠΊΠΎΠΉΡ‚ΠΎ сС ΡΠ²ΡŠΡ€Π·Π²Π° към Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Ρ‡Ρ€Π΅Π· ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Ethernet ΠΌΡ€Π΅ΠΆΠΈ ΠΈ ΠΏΡ€Π΅ΠΏΡ€Π΅Π΄Π°Π²Π° всички Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ към Π²Ρ‚ΠΎΡ€Π° IB ΠΌΡ€Π΅ΠΆΠ°. ΠšΠΎΠ³Π°Ρ‚ΠΎ трябва Π΄Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€Π°ΠΌΠ΅ ΠΎΡ‚ Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ с ΠΊΠΎΠΉ Ρ†Π΅Π½Ρ‚ΡŠΡ€ Π·Π° Π΄Π°Π½Π½ΠΈ Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ сСга.

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈ ΠΎΡ‚

Всичко ΠΏΠΎ-Π³ΠΎΡ€Π΅ Π½Π΅ бСшС Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ навСднъТ; бяха Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ няколко повторСния Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π‘ΡŠΠ·Π΄Π°Π΄ΠΎΡ…ΠΌΠ΅ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠ° Π·Π° мСсСц, Π½ΠΎ ΠΎΡ‚Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ Π΄Π²Π΅ Π³ΠΎΠ΄ΠΈΠ½ΠΈ, Π·Π° Π΄Π° Π³ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π² Ρ€Π°Π±ΠΎΡ‚Π½ΠΎ ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅. ΠžΠΏΠΈΡ‚Π°Ρ…ΠΌΠ΅ сС Π΄Π° постигнСм Π½Π°ΠΉ-добрия компромис ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° надСТдността Π½Π° систСмата.

Въй ΠΊΠ°Ρ‚ΠΎ систСмата бСшС сСриозно Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π°, Π²Π½Π΅Π΄Ρ€ΠΈΡ…ΠΌΠ΅ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ‚ Π΄Π²Π° нСзависими ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊΠ°. Ако Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅Ρ‚ΠΎ Π·Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ Π½Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ ΠΏΠΎ някаква ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈΡ‚Π΅ ΠΎΡ‚ Π²Ρ‚ΠΎΡ€ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ - ΠΎΡ‚ Risk Engine. Π’ΠΎΠ·ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ сС спазва Π² цялата систСма.

ОсвСн всичко Π΄Ρ€ΡƒΠ³ΠΎ, успяхмС Π΄Π° Π·Π°ΠΏΠ°Π·ΠΈΠΌ клиСнтския API, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½ΠΈΡ‚ΠΎ Π±Ρ€ΠΎΠΊΠ΅Ρ€ΠΈΡ‚Π΅, Π½ΠΈΡ‚ΠΎ някой Π΄Ρ€ΡƒΠ³ Π΄Π° изисква Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π·Π° Π½ΠΎΠ²Π°Ρ‚Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. Π’Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΠΌ някои интСрфСйси, Π½ΠΎ нямашС Π½ΡƒΠΆΠ΄Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² опСрационния ΠΌΠΎΠ΄Π΅Π».

НарСкохмС Ρ‚Π΅ΠΊΡƒΡ‰Π°Ρ‚Π° вСрсия Π½Π° Π½Π°ΡˆΠ°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Rebus - ΠΊΠ°Ρ‚ΠΎ ΡΡŠΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π·Π° Π΄Π²Π΅Ρ‚Π΅ Π½Π°ΠΉ-Π·Π°Π±Π΅Π»Π΅ΠΆΠΈΠΌΠΈ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Risk Engine ΠΈ BUS.

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

ΠŸΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ искахмС Π΄Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠΌ само ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ΠΎΠ²Π°Ρ‚Π° част, Π½ΠΎ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ бСшС ΠΎΠ³Ρ€ΠΎΠΌΠ½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° систСма. ΠšΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅ Π²Π΅Ρ‡Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° взаимодСйстват с Trade Gateway, Clearing Gateway ΠΈΠ»ΠΈ ΠΈ с Π΄Π²Π΅Ρ‚Π΅.

Какво Π² ΠΊΡ€Π°ΠΉΠ½Π° смСтка постигнахмС:

Π Π°Π·Π²ΠΈΡ‚ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° систСмата Π·Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ ΠΈ ΠΊΠ»ΠΈΡ€ΠΈΠ½Π³ Π½Π° ΠœΠΎΡΠΊΠΎΠ²ΡΠΊΠ°Ρ‚Π° борса. Част 2

НамалСно Π½ΠΈΠ²ΠΎ Π½Π° латСнтност. ΠŸΡ€ΠΈ малък ΠΎΠ±Π΅ΠΌ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ систСмата Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ ΡΡŠΡ‰ΠΈΡ Π½Π°Ρ‡ΠΈΠ½ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½Π°Ρ‚Π° вСрсия, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π΄ΡŠΡ€ΠΆΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-голямо Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅.

ΠŸΠΈΠΊΠΎΠ²Π°Ρ‚Π° производитСлност сС ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΎΡ‚ 50 хиляди Π½Π° 180 хиляди Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π² сСкунда. По-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎΡ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΅ Π²ΡŠΠ·ΠΏΡ€Π΅ΠΏΡΡ‚ΡΡ‚Π²Π°Π½ΠΎ ΠΎΡ‚ СдинствСния ΠΏΠΎΡ‚ΠΎΠΊ ΠΎΡ‚ съвпадСниС Π½Π° ΠΏΠΎΡ€ΡŠΡ‡ΠΊΠΈ.

Има Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π° Π·Π° ΠΏΠΎ-Π½Π°Ρ‚Π°Ρ‚ΡŠΡˆΠ½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅: ΠΏΠ°Ρ€Π°Π»Π΅Π»Π½ΠΎ ΡΡŠΠΏΠΎΡΡ‚Π°Π²ΡΠ½Π΅ ΠΈ промяна Π½Π° Π½Π°Ρ‡ΠΈΠ½Π°, ΠΏΠΎ ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ с Gateway. Π‘Π΅Π³Π° всички Gateways работят ΠΏΠΎ схСма Π·Π° рСпликация, която ΠΏΡ€ΠΈ Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π°Ρ‚ΠΎΠ²Π°Ρ€Π²Π°Π½Π΅ прСстава Π΄Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π° Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ.

И накрая, ΠΌΠΎΠ³Π° Π΄Π° Π΄Π°ΠΌ някои ΡΡŠΠ²Π΅Ρ‚ΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Ρ„ΠΈΠ½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΈ систСми:

  • Π‘ΡŠΠ΄Π΅Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Π·Π° Π½Π°ΠΉ-Π»ΠΎΡˆΠΎΡ‚ΠΎ ΠΏΠΎ всяко Π²Ρ€Π΅ΠΌΠ΅. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈΡ‚Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π²ΡŠΠ·Π½ΠΈΠΊΠ²Π°Ρ‚ Π½Π΅ΠΎΡ‡Π°ΠΊΠ²Π°Π½ΠΎ.
  • ОбикновСно Π΅ нСвъзмоТно Π±ΡŠΡ€Π·ΠΎ Π΄Π° сС ΠΏΡ€Π΅Ρ€Π°Π±ΠΎΡ‚ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°. ОсобСно Π°ΠΊΠΎ трябва Π΄Π° постигнСтС максимална надСТдност ΠΏΠΎ мноТСство ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. ΠšΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Ρ‡Π΅ възли, Ρ‚ΠΎΠ»ΠΊΠΎΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅ рСсурси са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ Π·Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.
  • Всички пСрсонализирани ΠΈ частни Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρ‰Π΅ изискват Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ рСсурси Π·Π° ΠΏΡ€ΠΎΡƒΡ‡Π²Π°Π½Π΅, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°.
  • НС ΠΎΡ‚Π»Π°Π³Π°ΠΉΡ‚Π΅ Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с надСТдността Π½Π° систСмата ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅Ρ‚ΠΎ слСд ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ; Π²Π·Π΅ΠΌΠ΅Ρ‚Π΅ Π³ΠΈ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ Π² началния Π΅Ρ‚Π°ΠΏ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π΅.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€