АрхитСктура ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Tarantool Data Grid

АрхитСктура ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Tarantool Data Grid

ΠŸΡ€Π΅Π· 2017 Π³. спСчСлихмС конкурса Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎ ядро Π½Π° инвСстиционния бизнСс Π½Π° ΠΠ»ΡŒΡ„Π°-Π‘Π°Π½ΠΊ ΠΈ Π·Π°ΠΏΠΎΡ‡Π½Π°Ρ…ΠΌΠ΅ Ρ€Π°Π±ΠΎΡ‚Π° (Π½Π° HighLoad++ 2018 с Π΄ΠΎΠΊΠ»Π°Π΄ Π·Π° ядрото Π½Π° инвСстиционния бизнСс изнасяшС Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”Ρ€Ρ‹Π½ΠΊΠΈΠ½, Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚Π΅Π» Π½Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΎΠ½Π½ΠΎ ядро Π½Π° инвСстиционния бизнСс Π½Π° ΠΠ»ΡŒΡ„Π°-Π±Π°Π½ΠΊ). Π’Π°Π·ΠΈ систСма Ρ‚Ρ€ΡΠ±Π²Π°ΡˆΠ΅ Π΄Π° Π°Π³Ρ€Π΅Ρ€ΠΈΡ€Π° Π΄Π°Π½Π½ΠΈ Π·Π° сдСлки ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π² Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, Π΄Π° ΠΏΡ€ΠΈΠ²Π΅Π΄e Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² ΡƒΠ½ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ Π²ΠΈΠ΄, Π΄Π° Π³ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° ΠΈ Π΄Π° прСдоставя Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ тях.

Π’ процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° систСмата Π΅Π²ΠΎΠ»ΡŽΠΈΡ€Π° ΠΈ обогатява Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»Π° си, ΠΈ Π² някой ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΎΡΡŠΠ·Π½Π°Ρ…ΠΌΠ΅, Ρ‡Π΅ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°ΠΌΠ΅ Π½Π΅Ρ‰ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-голямо ΠΎΡ‚ просто ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ софтуСр, създадСн Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° строго ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΡ€ΡŠΠ³ Π·Π°Π΄Π°Ρ‡ΠΈ: ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ…ΠΌΠ΅ систСма Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ прилоТСния с пСрсистСнтно Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡΡ‚ ΠΎΡ‚ нас ΠΎΠΏΠΈΡ‚ Π»Π΅Π³Π½Π° Π² основата Π½Π° Π½ΠΎΠ² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ β€” Tarantool Data Grid (TDG).

Искам Π΄Π° Π²ΠΈ Ρ€Π°Π·ΠΊΠ°ΠΆΠ° Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° TDG ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ‚Π°, Π΄ΠΎ ΠΊΠΎΠΈΡ‚ΠΎ стигнахмС Π² процСса Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°, Π΄Π° Π²ΠΈ запозная с основния Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» ΠΈ Π΄Π° ΠΏΠΎΠΊΠ°ΠΆΠ° ΠΊΠ°ΠΊ Π½Π°ΡˆΠΈΡΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° станС основа Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π°Π²ΡŠΡ€ΡˆΠ΅Π½ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

АрхитСктурно Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ…ΠΌΠ΅ систСмата Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈ Ρ€ΠΎΠ»ΠΈ, всяка ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π½Π° Π·Π° Ρ€Π΅ΡˆΠ°Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ ΠΊΡ€ΡŠΠ³ Π·Π°Π΄Π°Ρ‡ΠΈ. Π•Π΄ΠΈΠ½ стартиран СкзСмпляр Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ няколко Ρ‚ΠΈΠΏΠ° Ρ€ΠΎΠ»ΠΈ. Π’ ΠΊΠ»ΡŠΡΡ‚ΡŠΡ€Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΠΈΠΌΠ° няколко Ρ€ΠΎΠ»ΠΈ ΠΎΡ‚ Π΅Π΄ΠΈΠ½ Ρ‚ΠΈΠΏ:

АрхитСктура ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Tarantool Data Grid

Connector

ΠšΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€ΡŠΡ‚ отговаря Π·Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π° с външния свят; Π·Π°Π΄Π°Ρ‡Π°Ρ‚Π° ΠΌΡƒ Π΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ заявка, Π΄Π° я Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΈ Π°ΠΊΠΎ Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½Π°, Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‚ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² входния процСсор. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°ΠΌΠ΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ HTTP, SOAP, Kafka, FIX. АрхитСктурата позволява лСсно добавянС Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π½ΠΎΠ²ΠΈ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ, скоро Ρ‰Π΅ ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° ΠΈ Π·Π° IBM MQ. Ако Ρ€Π°Π·Π±ΠΎΡ€ΡŠΡ‚ Π½Π° заявката Π·Π°Π²ΡŠΡ€ΡˆΠΈ с Π³Ρ€Π΅ΡˆΠΊΠ°, ΠΊΠΎΠ½Π΅ΠΊΡ‚ΠΎΡ€ΡŠΡ‚ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ Π³Ρ€Π΅ΡˆΠΊΠ°; Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай Ρ‚ΠΎΠΉ Ρ‰Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ, Ρ‡Π΅ заявката Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π΄ΠΎΡ€ΠΈ Π°ΠΊΠΎ Π΅ възникнала Π³Ρ€Π΅ΡˆΠΊΠ° ΠΏΡ€ΠΈ послСдващата ѝ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°. Π’ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡ€Π°Π²Π΅Π½ΠΎ спСциално, Π·Π° Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ с систСми, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° повтарят заявки β€” ΠΈΠ»ΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ, правят Π³ΠΎ ΠΏΡ€Π΅ΠΊΠ°Π»Π΅Π½ΠΎ настоятСлно. Π—Π° Π΄Π° Π½Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠΌ Π΄Π°Π½Π½ΠΈ, сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π΅ΠΌΠΎΠ½Ρ‚Π½Π° опашка: ΠΎΠ±Π΅ΠΊΡ‚ΡŠΡ‚ ΠΏΡŠΡ€Π²ΠΎ ΠΏΠΎΠΏΠ°Π΄Π° Π² нСя ΠΈ само слСд ΡƒΡΠΏΠ΅ΡˆΠ½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сС ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π° ΠΎΡ‚ нСя. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π° извСстия Π·Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅, останали Π² Ρ€Π΅ΠΌΠΎΠ½Ρ‚Π½Π°Ρ‚Π° опашка, Π° слСд отстраняванС Π½Π° софтуСрна Π³Ρ€Π΅ΡˆΠΊΠ° ΠΈΠ»ΠΈ Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π΅Π½ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Π° ΠΎΠΏΠΈΡ‚.

Π’Ρ…ΠΎΠ΄Π΅Π½ процСсор

Входният процСсор класифицира ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ спорСд Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π½ΠΈΡ‚Π΅ Π±Π΅Π»Π΅Π·ΠΈ ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π° подходящитС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ са ΠΊΠΎΠ΄ Π½Π° Π΅Π·ΠΈΠΊ Lua, изпълняван Π² пСсачница, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ Π½Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° влияят Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° систСмата. На Ρ‚ΠΎΠ·ΠΈ Π΅Ρ‚Π°ΠΏ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ΠΈ Π² нСобходимия Π²ΠΈΠ΄, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€ΠΈ Π½ΡƒΠΆΠ΄Π° Π΄Π° сС стартират ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π±Ρ€ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ°Ρ‚Π° Π»ΠΎΠ³ΠΈΠΊΠ°. НапримСр, Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° MDM (Master Data Management), ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ Π½Π° Tarantool Data Grid, ΠΏΡ€ΠΈ добавянС Π½Π° Π½ΠΎΠ² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π», Π·Π° Π΄Π° Π½Π΅ Π·Π°Π±Π°Π²ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° заявката, ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π·Π»Π°Ρ‚Π½Π°Ρ‚Π° записка стартирамС ΠΊΠ°Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»Π½Π° Π·Π°Π΄Π°Ρ‡Π°. ΠŸΠ΅ΡΠ°Ρ‡Π½ΠΈΡ†Π°Ρ‚Π° ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° заявки Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΈ добавянС Π½Π° Π΄Π°Π½Π½ΠΈ, позволява изпълнСниС Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° функция Π½Π° всички Ρ€ΠΎΠ»ΠΈ Ρ‚ΠΈΠΏΠ° storage ΠΈ агрСгация Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° (map/reduce).

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ описани Π² Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅:

sum.lua

local x, y = unpack(...)
return x + y

И слСд Ρ‚ΠΎΠ²Π°, обявСни Π² конфигурацията:

Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
  sum: { __file: sum.lua }

Π—Π°Ρ‰ΠΎ Lua? Lua Π΅ ΠΌΠ½ΠΎΠ³ΠΎ прост Π΅Π·ΠΈΠΊ. На Π±Π°Π·Π°Ρ‚Π° Π½Π° нашия ΠΎΠΏΠΈΡ‚, слСд няколко часа Π·Π°ΠΏΠΎΠ·Π½Π°Π²Π°Π½Π΅ с Π½Π΅Π³ΠΎ, Ρ…ΠΎΡ€Π°Ρ‚Π° Π·Π°ΠΏΠΎΡ‡Π²Π°Ρ‚ Π΄Π° ΠΏΠΈΡˆΠ°Ρ‚ ΠΊΠΎΠ΄, Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ тСхния ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ. И Ρ‚ΠΎΠ²Π° Π½Π΅ са само профСсионални Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, Π° Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π½ΠΈ. ОсвСн Ρ‚ΠΎΠ²Π°, Π±Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, Lua Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΌΠ½ΠΎΠ³ΠΎ Π±ΡŠΡ€Π·ΠΎ.

Π₯Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅

Storage ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° пСрсистСнтни Π΄Π°Π½Π½ΠΈ. ΠŸΡ€Π΅Π΄ΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°Ρ‚ валидация Π·Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ със схСмата Π½Π° Π΄Π°Π½Π½ΠΈ. Π—Π° описаниС Π½Π° схСмата ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Apache Avro. ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

{
    "name": "User",
    "type": "record",
    "logicalType": "Aggregate",
    "fields": [ 
        { "name": "id", "type": "string"}, 
        {"name": "first_name", "type": "string"}, 
        {"name": "last_name", "type": "string"} 
    ], 
    "indexes": ["id"] 
}

На Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚ΠΎΠ²Π° описаниС Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° DDL (Data Definition Language) Π·Π° Π‘Π£Π‘Π” Π’Π°Ρ€Π°Π½Ρ‚ΡƒΠ» ΠΈ GraphQL схСма Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅.

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС асинхронна рСпликация Π½Π° Π΄Π°Π½Π½ΠΈ (Π² ΠΏΠ»Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ Π΅ добавянС Π½Π° синхронна).

Output processor

Понякога Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° ΡƒΠ²Π΅Π΄ΠΎΠΌΠΈΠΌ външни ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ Π·Π° ΠΏΠΎΡΡ‚ΡŠΠΏΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°Ρ‚ΠΎΠ²Π° ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° роля Output processor. Π‘Π»Π΅Π΄ Π·Π°ΠΏΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, Ρ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΈΡ ΠΈΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΠΎ Π½Π°Ρ‡ΠΈΠ½, изискан ΠΎΡ‚ потрСбитСля) β€” ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΏΡ€Π΅Π΄Π°Π΄Π΅Π½ΠΈ Π½Π° connector Π·Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅. Π’ΡƒΠΊ ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Ρ€Π΅Π½ΠΎΠ²Π°Ρ†ΠΈΠΎΠ½Π½Π° опашка: Π°ΠΊΠΎ ΠΎΠ±Π΅ΠΊΡ‚ΡŠΡ‚ Π½Π΅ бъдС ΠΏΠΎΠ΅Ρ‚, Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€ΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈ ΠΎΠΏΠΈΡ‚Π° ΠΏΠΎ-късно.

ΠœΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅

Π ΠΎΠ»ΠΈΡ‚Π΅ connector, input processor ΠΈ output processor нямат ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈ позволява Π΄Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°ΠΌΠ΅ систСмата Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ, просто добавяйки Π½ΠΎΠ²ΠΈ СкзСмпляри Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π° роля ΠΎΡ‚ нСобходимия Ρ‚ΠΈΠΏ. Π—Π° Ρ…ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅, storage ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ към организацията Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ. Π‘Π»Π΅Π΄ добавянСто Π½Π° Π½ΠΎΠ² ΡΡŠΡ€Π²ΡŠΡ€ част ΠΎΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΡ‚Π΅ ΠΎΡ‚ старитС ΡΡŠΡ€Π²ΡŠΡ€ΠΈ Π½Π° Ρ„ΠΎΠ½ΠΎΠ² Ρ€Π΅ΠΆΠΈΠΌ сС прСмСстват Π½Π° новия ΡΡŠΡ€Π²ΡŠΡ€; Ρ‚ΠΎΠ²Π° сС случва ΠΏΡ€ΠΎΠ·Ρ€Π°Ρ‡Π½ΠΎ Π·Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ ΠΈ Π½Π΅ влияС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° цялата систСма.

Бвойства Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅

ΠžΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΈ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. ΠžΡΠΈΠ³ΡƒΡ€ΡΠ²Π°ΠΌΠ΅ атомарност ΠΏΡ€ΠΈ добавянС ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΠΎΠ±Π΅ΠΊΡ‚Π° с всички зависимости Π² Π΅Π΄ΠΈΠ½ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€. Π’Π°ΠΊΠ° сС избягва "разпиляванС" Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° ΠΏΠΎ няколко физичСски ΡΡŠΡ€Π²ΡŠΡ€Π°.

ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС вСрсионност: всяко ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° създава Π½ΠΎΠ²Π° вСрсия ΠΈ Π½ΠΈΠ΅ Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π²ΠΈ срСз ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΊΠ°ΠΊ Π΅ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Π» ΡΠ²Π΅Ρ‚ΡŠΡ‚ Ρ‚ΠΎΠ³Π°Π²Π°. Π—Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ сС нуТдаят ΠΎΡ‚ дълга история, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ броя Π½Π° вСрсиитС ΠΈΠ»ΠΈ Π΄ΠΎΡ€ΠΈ Π΄Π° ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°ΠΌΠ΅ само Π΅Π΄Π½Π° β€” послСдната, тоСст фактичСски Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ вСрсиониранСто Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ. МоТС ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΄Π° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠΌ историята ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅: Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° ΠΈΠ·Ρ‚Ρ€ΠΈΠ²Π°ΠΌΠ΅ всички ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΎΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Ρ‚ΠΈΠΏ, ΠΏΠΎ-стари ΠΎΡ‚ 1 Π³ΠΎΠ΄ΠΈΠ½Π°. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС ΠΈ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€Π°Π½Π΅: ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° СкспортирамС ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΏΠΎ-стари ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅, освобоТдавайки място Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°.

Π—Π°Π΄Π°Ρ‡ΠΈ

ΠžΡ‚ интСрСснитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ заслуТава Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° стартиранС Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊ, ΠΏΠΎ исканС Π½Π° потрСбитСля ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΎ ΠΎΡ‚ ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊΠ°:

АрхитСктура ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Tarantool Data Grid

Π’ΡƒΠΊ Π²ΠΈΠΆΠ΄Π°ΠΌΠ΅ ΠΎΡ‰Π΅ Π΅Π΄Π½Π° роля β€” runner. Π’Π°Π·ΠΈ роля няма ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, ΠΈ ΠΏΡ€ΠΈ нСобходимост Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС добавят Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ СкзСмпляри Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ с Ρ‚Π°Π·ΠΈ роля. ΠžΡ‚Π³ΠΎΠ²ΠΎΡ€Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° runner Π΅ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅. ΠšΠ°ΠΊΡ‚ΠΎ сС ΠΊΠ°Π·Π²Π°, ΠΎΡ‚ ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊΠ° Π΅ възмоТно Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΎΠ²ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ; Ρ‚Π΅ сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π°Ρ‚ Π² ΠΎΠΏΠ°ΡˆΠΊΠ°Ρ‚Π° Π½Π° storage ΠΈ слСд Ρ‚ΠΎΠ²Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΎΡ‚ runner. Π’ΠΎΠ·ΠΈ Ρ‚ΠΈΠΏ Π·Π°Π΄Π°Ρ‡ΠΈ сС Π½Π°Ρ€ΠΈΡ‡Π° Job. ИмамС ΠΈ Ρ‚ΠΈΠΏ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½Π°Ρ€Π΅Ρ‡Π΅Π½ Task β€” Ρ‚ΠΎΠ²Π° са Π·Π°Π΄Π°Ρ‡ΠΈ, опрСдСляни ΠΎΡ‚ потрСбитСля ΠΈ стартирани ΠΏΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊ (ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сС синтаксиса cron) ΠΈΠ»ΠΈ ΠΏΠΎ исканС. Π—Π° стартиранС ΠΈ слСдСнС Π½Π° Ρ‚Π°ΠΊΠΈΠ²Π° Π·Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°ΠΌΠ΅ с ΡƒΠ΄ΠΎΠ±Π΅Π½ диспСчСр Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ. Π—Π° Π΄Π° бъдС Π½Π°Π»ΠΈΡ‡Π΅Π½ Ρ‚ΠΎΠ·ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π», Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π²ΠΊΠ»ΡŽΡ‡ΠΈΠΌ роля scheduler; Ρ‚Π°Π·ΠΈ роля ΠΈΠΌΠ° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅, Π·Π°Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΈ Π½Π΅ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ; тя, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ всички останали Ρ€ΠΎΠ»ΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°, която Π·Π°ΠΏΠΎΡ‡Π²Π° Ρ€Π°Π±ΠΎΡ‚Π°, Π°ΠΊΠΎ ΠΌΠ°ΡΡ‚Π΅Ρ€ΡŠΡ‚ случайно Π½Π΅ успСС.

Logger

ΠžΡ‰Π΅ Π΅Π΄Π½Π° роля сС Π½Π°Ρ€ΠΈΡ‡Π° logger. Вя ΡΡŠΠ±ΠΈΡ€Π° Π»ΠΎΠ³ΠΎΠ²Π΅ ΠΎΡ‚ всички Ρ‡Π»Π΅Π½ΠΎΠ²Π΅ Π½Π° ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π° ΠΈ прСдоставя интСрфСйс Π·Π° тяхното СкспортиранС ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ ΠΏΡ€Π΅Π· ΡƒΠ΅Π± интСрфСйса.

Услуги

ЗаслуТава Π΄Π° сС спомСнС, Ρ‡Π΅ систСмата позволява лСсно създаванС Π½Π° услуги. Π’ конфигурационния Ρ„Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅ Π΄Π° сС посочи, ΠΊΠ°ΠΊΠ²ΠΈ заявки Π΄Π° сС насочват към написания ΠΎΡ‚ потрСбитСля ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ, изпълняван Π² ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊΠ°. Π’ Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° изпълним някакъв Π°Π½Π°Π»ΠΈΡ‚ΠΈΡ‡Π΅Π½ Π·Π°ΠΏΠΈΡ‚ ΠΈ Π΄Π° Π²ΡŠΡ€Π½Π΅ΠΌ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°.

Услугата сС описва Π² конфигурационния Ρ„Π°ΠΉΠ»:

services:
   sum:
      doc: "добавя Π΄Π²Π΅ числа"
      function: sum
      return_type: int
      args:
         x: int
         y: int

GraphQL API сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΈ услугата става Π΄ΠΎΡΡ‚ΡŠΠΏΠ½Π° Π·Π° ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅:

query {
   sum(x: 1, y: 2) 
}

Π’ΠΎΠ²Π° Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° sum, ΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π°:

3

ΠŸΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° запитвания ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ

Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚ΠΈ систСмата ΠΈ Π΄Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°ΠΌΠ΅ запитвания, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ…ΠΌΠ΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° OpenTracing. БистСмата ΠΌΠΎΠΆΠ΅ ΠΏΡ€ΠΈ Π½ΡƒΠΆΠ΄Π° Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° информация Π½Π° инструмСнти, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Ρ‰ΠΈ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ», Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Zipkin, Π·Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ ΠΊΠ°ΠΊ Π΅ ΠΏΡ€ΠΎΡ‚Π΅ΠΊΠ»ΠΎ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ:

АрхитСктура ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Tarantool Data Grid

Π Π°Π·Π±ΠΈΡ€Π° сС, систСмата прСдоставя Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ½ΠΈ ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΡΡŠΠ±ΠΈΡ€Π°Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Prometheus ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Grafana.

Π”Π΅ΠΏΠ»ΠΎΠΉ

Tarantool Data Grid ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС инсталиран ΠΎΡ‚ RPM ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΈΠ»ΠΈ Π°Ρ€Ρ…ΠΈΠ², с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° прСдоставСната ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° ΠΈΠ»ΠΈ Ansible, ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΈΠΌΠ° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Kubernetes (Tarantool Kubernetes Operator).

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‰ΠΎ бизнСс Π»ΠΎΠ³ΠΈΠΊΠ° (конфигурация, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ), сС Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π² разполоТСния ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€ Tarantool Data Grid ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π°Ρ€Ρ…ΠΈΠ² ΠΏΡ€Π΅Π· UI ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° скрипт, Ρ‡Ρ€Π΅Π· прСдоставСното ΠΎΡ‚ нас API.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π·Π° прилоТСния

Какви прилоТСния ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΡΡŠΠ·Π΄Π°Π΄Π°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Tarantool Data Grid? Π’ΡΡŠΡ‰Π½ΠΎΡΡ‚ ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ бизнСс Π·Π°Π΄Π°Ρ‡ΠΈ ΠΏΠΎ Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ Π½Π°Ρ‡ΠΈΠ½ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΏΠΎΡ‚ΠΎΠΊΠ° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, тяхното ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ тях. Π—Π°Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ Ρ€Π°Π·ΠΏΠΎΠ»Π°Π³Π°Ρ‚Π΅ с Π³ΠΎΠ»Π΅ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ трябва Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ, Π½Π°ΡˆΠΈΡΡ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° спСсти ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈ Π΄Π° сС фокусиратС Π²ΡŠΡ€Ρ…Ρƒ своята бизнСс Π»ΠΎΠ³ΠΈΠΊΠ°.

НапримСр, ΠΆΠ΅Π»Π°Π΅ΠΌ Π΄Π° ΡΡŠΠ±ΠΈΡ€Π°ΠΌΠ΅ информация Π·Π° ΠΏΠ°Π·Π°Ρ€Π° Π½Π° Π½Π΅Π΄Π²ΠΈΠΆΠΈΠΌΠΈ ΠΈΠΌΠΎΡ‚ΠΈ, Π·Π° Π΄Π° ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π°ΠΌΠ΅ впослСдствиС информация Π·Π° Π½Π°ΠΉ-ΠΈΠ·Π³ΠΎΠ΄Π½ΠΈΡ‚Π΅ прСдлоТСния. Π’ Ρ‚ΠΎΠ·ΠΈ случай ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°ΠΌΠ΅ слСднитС Π·Π°Π΄Π°Ρ‡ΠΈ:

  1. Π ΠΎΠ±ΠΎΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΠ±ΠΈΡ€Π°Ρ‚ информация ΠΎΡ‚ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ β€” Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ Π½Π°ΡˆΠΈΡ‚Π΅ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ Π½Π° Π΄Π°Π½Π½ΠΈ. Π’Π°Π·ΠΈ Π·Π°Π΄Π°Ρ‡Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π΅ΡˆΠΈΡ‚Π΅, ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ написвайки ΠΊΠΎΠ΄ Π½Π° ΠΊΠΎΠΉΡ‚ΠΎ ΠΈ Π΄Π° Π΅ Π΅Π·ΠΈΠΊ.
  2. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Tarantool Data Grid Ρ‰Π΅ ΠΏΡ€ΠΈΠ΅ΠΌΠ΅ ΠΈ ΡΡŠΡ…Ρ€Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈΡ‚Π΅. Ако Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΡ‚Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΎΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°Ρ‚, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ ΠΊΠΎΠ΄ Π½Π° Lua, ΠΊΠΎΠΉΡ‚ΠΎ Π΄Π° трансформира Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² Π΅Π΄ΠΈΠ½Π΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. На Π΅Ρ‚Π°ΠΏΠ° Π½Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Ρ‰Π΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Ρ‚Π΅ Π΄ΡƒΠ±Π»ΠΈΡ€Π°Π½ΠΈ прСдлоТСния ΠΈΠ»ΠΈ Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π° Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ информацията Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ Π·Π° Π°Π³Π΅Π½Ρ‚ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π½Π° ΠΏΠ°Π·Π°Ρ€Π°.
  3. Π‘Π΅Π³Π° ΠΈΠΌΠ°Ρ‚Π΅ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ»ΡŠΡΡ‚Π΅Ρ€Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Ρ‚Π΅ с Π΄Π°Π½Π½ΠΈ ΠΈ Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Ρ‚Π΅ заявки Π·Π° Π΄Π°Π½Π½ΠΈ. Π’ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚Π΅ Π½ΠΎΠ²ΠΈ функционалности, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΄Π° Π½Π°ΠΏΠΈΡˆΠ΅Ρ‚Π΅ услуга, която Π΄Π° Π½Π°ΠΏΡ€Π°Π²ΠΈ Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ към Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈ Π΄Π° прСдостави Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΎΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π½Π΅ Π·Π° 24 часа β€” Ρ‚ΠΎΠ²Π° Ρ‰Π΅ изисква няколко Ρ€Π΅Π΄Π° Π² конфигурационния Ρ„Π°ΠΉΠ» ΠΈ ΠΌΠ°Π»ΠΊΠΎ ΠΊΠΎΠ΄ Π½Π° Lua.

Какво слСдва?

ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ Π·Π° нас Π΅ ΠΏΠΎΠ²ΠΈΡˆΠ°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° удобството ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Ρ‡Ρ€Π΅Π· Tarantool Data Grid. НапримСр, IDE с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΏΡ€ΠΎΡ„ΠΈΠ»ΠΈΡ€Π°Π½Π΅ ΠΈ дСбъгванС Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ Π² ΠΏΡΡΡŠΡ‡Π½ΠΈΠΊ.

Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ°, Π½ΠΈΠ΅ отдСлямС голямо Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π²ΡŠΠΏΡ€ΠΎΡΠΈΡ‚Π΅ Π·Π° бСзопасността. Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π°Π²Π°ΠΌΠ΅ сСртификация ΠΎΡ‚ Π€Π‘Π’Π•Πš Π½Π° Русия, Π·Π° Π΄Π° ΠΏΠΎΡ‚Π²ΡŠΡ€Π΄ΠΈΠΌ високото Π½ΠΈΠ²ΠΎ Π½Π° бСзопасност ΠΈ Π΄Π° ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Π½Π° изискванията Π·Π° сСртификация Π½Π° софтуСрнитС ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈΡ‚Π΅ систСми Π½Π° Π»ΠΈΡ‡Π½ΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π΄ΡŠΡ€ΠΆΠ°Π²Π½ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми.

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

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster