เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Tarantool Data Grid

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Tarantool Data Grid

เปƒเบ™เบ›เบต 2017, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบŠเบฐเบ™เบฐเบเบฒเบ™เปเบ‚เปˆเบ‡เบ‚เบฑเบ™เป€เบžเบทเปˆเบญเบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฑเบเบ—เบธเบฅเบฐเบเปเบฒเบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบถเบ™เบ‚เบญเบ‡ Alfa-Bank เปเบฅเบฐเป€เบฅเบตเปˆเบกเป€เบฎเบฑเบ”เบงเบฝเบ (เบขเบนเปˆเบ—เบตเปˆ HighLoad++ 2018 เบ”เป‰เบงเบเบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบผเบฑเบเบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบถเบ™. เบ›เบฐเบ•เบดเบšเบฑเบ” Vladimir Drynkin, เบซเบปเบงเบซเบ™เป‰เบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบซเบผเบฑเบเบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบเบฒเบ™เบฅเบปเบ‡เบ—เบถเบ™เบ‚เบญเบ‡เบ—เบฐเบ™เบฒเบ„เบฒเบ™ Alfa). เบฅเบฐเบšเบปเบšเบ™เบตเป‰เบ„เบงเบ™เบˆเบฐเบฅเบงเบšเบฅเบงเบกเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบˆเบฒเบเปเบซเบผเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เปƒเบ™เบฎเบนเบšเปเบšเบšเบ•เปˆเบฒเบ‡เป†, เป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบšเบšเบŸเบญเบกเบฅเบงเบก, เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบกเบฑเบ™เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบกเบฑเบ™.

เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบฅเบฐเบšเบปเบšเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เปเบฅเบฐเปƒเบ™เบšเบฒเบ‡เบˆเบธเบ”เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบ„เบดเบ”เป€เบ–เบดเบ‡เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒเบžเบฝเบ‡เปเบ•เปˆเบŠเบญเบšเปเบงเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เบขเปˆเบฒเบ‡เป€เบ‚เบฑเป‰เบกเบ‡เบงเบ”: เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบฅเบฐเบšเบปเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเปเปˆเบชเป‰เบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเปเบˆเบเบขเบฒเบเบ—เบตเปˆเบกเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ„เบปเบ‡เบ—เบตเปˆ. เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบšเป„เบ”เป‰เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบซเบกเปˆ - เบ•เบฒเบ‚เปˆเบฒเบเบ‚เปเป‰เบกเบนเบ™ Tarantool (TDG).

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบขเบฒเบเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ TDG เปเบฅเบฐเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบกเบฒเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เปเบ™เบฐเบ™เปเบฒเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ•เบปเป‰เบ™เบ•เปเปเบฅเบฐเบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบฒเบเป€เบ›เบฑเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบชเบปเบกเบšเบนเบ™.

เปƒเบ™เบ—เบฒเบ‡เบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบšเปˆเบ‡เบฅเบฐเบšเบปเบšเบญเบญเบเป€เบ›เบฑเบ™เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบชเบฐเป€เบžเบฒเบฐเปƒเบ”เบซเบ™เบถเปˆเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ”เบฝเบงเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบ›เบฐเป€เบžเบ”เบšเบปเบ”เบšเบฒเบ”. เบชเบฒเบกเบฒเบ”เบกเบตเบซเบผเบฒเบเบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบ”เบฝเบงเบเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบธเปˆเบก:

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Tarantool Data Grid

Connector

Connector เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบดเบ”เบ•เปเปˆเบชเบทเปˆเบชเบฒเบ™เบเบฑเบšเป‚เบฅเบเบžเบฒเบเบ™เบญเบ; เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, parse เบกเบฑเบ™, เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบ™เบตเป‰เบชเปเบฒเป€เบฅเบฑเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฑเบšเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™. เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ HTTP, SOAP, Kafka, FIX เบฎเบนเบšเปเบšเบš. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบตเปˆเบกเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบฎเบนเบšเปเบšเบšเปƒเบซเบกเปˆ, เป‚เบ”เบเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ IBM MQ เปƒเบ™เป„เบงเป†เบ™เบตเป‰. เบ–เป‰เบฒเบเบฒเบ™เปเบเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”; เบ–เป‰เบฒเบšเปเปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เบˆเบฐเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบงเปˆเบฒเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป„เบ”เป‰เบ–เบทเบเบ”เปเบฒเป€เบ™เบตเบ™เบขเปˆเบฒเบ‡เบชเปเบฒเป€เบฅเบฑเบ”เบœเบปเบ™, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบตเบ‚เปเป‰เบœเบดเบ”เบžเบฒเบ”เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เปเปˆเป„เบ›. เบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเป€เบฎเบฑเบ”เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบšเปเปˆเบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบ„เบทเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป - เบซเบผเบท, เปƒเบ™เบ—เบฒเบ‡เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบก, เป€เบฎเบฑเบ”เบกเบฑเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป€เบเบตเบ™เป„เบ›. เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบชเบนเบ™เป€เบชเบ, เปเบ–เบงเบเบฒเบ™เบชเป‰เบญเบกเปเบ›เบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰: เบงเบฑเบ”เบ–เบธเบ—เปเบฒเบญเบดเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบกเบฑเบ™เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เป„เบ”เป‰เบ–เบทเบเป‚เบเบเบเป‰เบฒเบเบญเบญเบเบˆเบฒเบเบกเบฑเบ™. เบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเบฑเบ”เบ–เบธเบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบขเบนเปˆเปƒเบ™เปเบ–เบงเบเบฒเบ™เบชเป‰เบญเบกเปเบ›เบ‡, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบเปเบฒเบˆเบฑเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบ‚เบญเบ‡เบŠเบญเบšเปเบง เบซเบผเบทเบฎเบฒเบ”เปเบงเบฅเบปเป‰เบกเป€เบซเบผเบง, เบฅเบญเบ‡เบญเบตเบเบ„เบฑเป‰เบ‡.

เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™

เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Input เบˆเบฑเบ”เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบ•เบฒเบกเบฅเบฑเบเบชเบฐเบ™เบฐเบฅเบฑเบเบชเบฐเบ™เบฐเปเบฅเบฐเป‚เบ—เบซเบฒเป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบก. Handlers เปเบกเปˆเบ™เบฅเบฐเบซเบฑเบ” Lua เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ sandbox, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš. เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ™เบตเป‰, เบ‚เปเป‰เบกเบนเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบฅเบฐเบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เบˆเปเบฒเบ™เบงเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบ•เบปเบ™เป€เบญเบ‡เบกเบฑเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบ›เบตเบ”เบ•เบปเบงเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™ MDM (Master Data Management) เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™ Tarantool Data Grid, เป€เบกเบทเปˆเบญเป€เบžเบตเปˆเบกเบœเบนเป‰เปƒเบŠเป‰เปƒเบซเบกเปˆ, เป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบŠเป‰เบฒเบฅเบปเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป€เบ›เบตเบ”เบ•เบปเบงเบเบฒเบ™เบชเป‰เบฒเบ‡เบšเบฑเบ™เบ—เบถเบเบ—เบญเบ‡เป€เบ›เบฑเบ™เบงเบฝเบเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ. sandbox เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเปˆเบฒเบ™, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบฅเบฐเป€เบžเบตเปˆเบกเบ‚เปเป‰เบกเบนเบ™, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบšเบฒเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบ™เบ—เบธเบเบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เบ›เบฐเป€เบžเบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš (เปเบœเบ™เบ—เบตเปˆ / เบซเบผเบธเบ”เบœเปˆเบญเบ™).

Handlers เบชเบฒเบกเบฒเบ”เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเบขเบนเปˆเปƒเบ™เป„เบŸเบฅเปŒ:

sum.lua

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

เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ›เบฐเบเบฒเบ”เปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ:

functions:
  sum: { __file: sum.lua }

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡ Lua? Lua เป€เบ›เบฑเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ. เบญเบตเบ‡เบ•เบฒเบกเบ›เบฐเบชเบปเบšเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบชเบญเบ‡เบชเบฒเบกเบŠเบปเปˆเบงเป‚เบกเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเบฎเบนเป‰เบˆเบฑเบเบกเบฑเบ™, เบ›เบฐเบŠเบฒเบŠเบปเบ™เป€เบฅเบตเปˆเบกเบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เปเบฅเบฐเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบทเบญเบฒเบŠเบตเบš, เปเบ•เปˆ, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบฑเบเบงเบดเป€เบ„เบฒเบฐ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบš jit compiler, Lua เปเบฅเปˆเบ™เป„เบงเบซเบผเบฒเบ.

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ

เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ„เบปเบ‡เบ—เบตเปˆ. เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบšเบฑเบ™เบ—เบถเบ, เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบเบงเบ”เบชเบญเบšเบเบฑเบšเบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™. เป€เบžเบทเปˆเบญเบญเบฐเบ—เบดเบšเบฒเบเบงเบปเบ‡เบˆเบญเบ™เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบ‚เบฐเบซเบเบฒเบ 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) เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบชเปเบฒเบฅเบฑเบš Tarantula DBMS เปเบฅเบฐ เบเบฃเบฒเบŸQL schema เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เปเป‰เบกเบนเบ™.

เบเบฒเบ™โ€‹เบˆเปเบฒโ€‹เบฅเบญเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™ Asynchronous เปเบกเปˆเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบฑเบšโ€‹เบชเบฐโ€‹เบซเบ™เบนเบ™ (เบกเบตโ€‹เปเบœเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบžเบตเปˆเบก synchronous เบซเบ™เบถเปˆเบ‡โ€‹)โ€‹.

เป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”

เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปเบˆเป‰เบ‡เบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบเบžเบฒเบเบ™เบญเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบกเบฒเบฎเบญเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบซเบกเปˆ; เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰, เบกเบตเบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต Output. เบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบชเบญเบ”เบ„เป‰เบญเบ‡เบเบฑเบ™ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบ™เปเบฒเบกเบฑเบ™เป„เบ›เบซเบฒเปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป‚เบ”เบเบœเบนเป‰เบšเปเบฅเบดเป‚เบžเบ) - เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเบปเปˆเบ‡. เปเบ–เบงเบเบฒเบ™เบชเป‰เบญเบกเปเบ›เบ‡เบเบฑเบ‡เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰: เบ–เป‰เบฒเบšเปเปˆเบกเบตเปƒเบœเบเบญเบกเบฎเบฑเบšเบงเบฑเบ”เบ–เบธ, เบœเบนเป‰เบšเปเบฅเบดเบซเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบญเบ‡เบญเบตเบเบ„เบฑเป‰เบ‡เปƒเบ™เบžเบฒเบเบซเบผเบฑเบ‡.

เบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเปœเบฒเบ”

เบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เบ•เบปเบงเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เป‚เบ›เป€เบŠเบ”เป€เบŠเบตเบ›เป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเป‚เบฎเบ‡เบ‡เบฒเบ™เบœเบฐเบฅเบดเบ”เบœเบปเบ™เบœเบฐเบฅเบดเบ”เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบฅเบฑเบ”, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ‚เบฐเบซเบเบฒเบเบฅเบฐเบšเบปเบšเบ•เบฒเบกเบฅเบงเบ‡เบ™เบญเบ™เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบขเปˆเบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบซเบกเปˆเบ—เบตเปˆเบกเบตเบ›เบฐเป€เบžเบ”เบšเบปเบ”เบšเบฒเบ”เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™. เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบกเปˆเบ™เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เบ•เบฒเบกเปเบ™เบงเบ™เบญเบ™ เบงเบดเบ—เบตเบเบฒเบ™ เบเบฒเบ™เบˆเบฑเบ”เบเบธเปˆเบกเป‚เบ”เบเปƒเบŠเป‰ buckets virtual. เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบžเบตเปˆเบกเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบซเบกเปˆ, เบšเบฒเบ‡เบ–เบฑเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเป€เบเบปเปˆเบฒเบ–เบทเบเบเป‰เบฒเบเป„เบ›เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบซเบกเปˆเปƒเบ™เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡; เบญเบฑเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เป‚เบ›เปˆเบ‡เปƒเบชเบ•เปเปˆเบœเบนเป‰เปƒเบŠเป‰ เปเบฅเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เปเบปเบ”.

เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ‚เปเป‰เบกเบนเบ™

เบงเบฑเบ”เบ–เบธเบชเบฒเบกเบฒเบ”เบกเบตเบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบซเบผเบฒเบเปเบฅเบฐเบกเบตเบงเบฑเบ”เบ–เบธเบญเบทเปˆเบ™เป†. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบฎเบฑเบšโ€‹เบ›เบฐโ€‹เบเบฑเบ™โ€‹เบ›เบฐโ€‹เบฅเปเบฒโ€‹เบกเบฐโ€‹เบ™เบนโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เป€เบžเบตเปˆเบกโ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบงเบฑเบ”โ€‹เบ–เบธโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เบ—เบตเปˆโ€‹เป€เบžเบดเปˆเบ‡โ€‹เบžเบฒโ€‹เบญเบฒโ€‹เป„เบชโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เบ–เบฑเบ‡ virtualโ€‹. เบ™เบตเป‰เบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบงเบฑเบ”เบ–เบธเบ–เบทเบ "เปเบœเปˆเบ‚เบฐเบซเบเบฒเบ" เปƒเบ™เบ—เบปเปˆเบงเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบซเบผเบฒเบ.

เบฎเบธเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™: เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เบญเบ‡เบงเบฑเบ”เบ–เบธเบˆเบฐเบชเป‰เบฒเบ‡เป€เบงเบตเบŠเบฑเบ™เปƒเบซเบกเปˆ, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบงเบฅเบฒเบšเบฒเบ‡เป†เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบงเปˆเบฒเป‚เบฅเบเป€เบšเบดเปˆเบ‡เบ„เบทเปเบ™เบงเปƒเบ”. เบชเปเบฒเบฅเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบ›เบฐเบซเบงเบฑเบ”เบเบฒเบง, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบฐเบšเบฑเบšเบซเบผเบทเปเบกเป‰เบเบฐเบ—เบฑเป‰เบ‡เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡ - เบซเบฅเป‰เบฒเบชเบธเบ” - เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™เบชเบฐเบšเบฑเบšเบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”. เบ™เบญเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”เบˆเปเบฒเบเบฑเบ”เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”เป‚เบ”เบเป€เบงเบฅเบฒ: เบ•เบปเบงเบขเปˆเบฒเบ‡, เบฅเบถเบšเบงเบฑเบ”เบ–เบธเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ—เบตเปˆเป€เบเบปเปˆเบฒเบเบงเปˆเบฒ 1 เบ›เบต. เบเบฒเบ™เบˆเบฑเบ”เป€เบเบฑเบšเบเบฑเบ‡เบ–เบทเบเบฎเบญเบ‡เบฎเบฑเบš: เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป‚เบซเบผเบ”เบงเบฑเบ”เบ–เบธเป€เบเบปเปˆเบฒเบเบงเปˆเบฒเป€เบงเบฅเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบทเป‰เบ™เบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เบขเบนเปˆเปƒเบ™เบเบธเปˆเบก.

เบงเบฝเบเบ‡เบฒเบ™

เปƒเบ™เบšเบฑเบ™เบ”เบฒเบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบชเบฑเบ‡เป€เบเบ”เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบงเบฝเบเบ‡เบฒเบ™เบ•เบฒเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบ•เบฒเบกเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰, เบซเบผเบทเบเบฒเบ™เบ‚เบฝเบ™เป‚เบ›เบผเปเบเบผเบกเบˆเบฒเบ sandbox:

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Tarantool Data Grid

เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเป€เบซเบฑเบ™เบšเบปเบ”เบšเบฒเบ”เบญเบทเปˆเบ™ - runner. เบšเบปเบ”เบšเบฒเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบฅเบฑเบ”, เปเบฅเบฐเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ—เบตเปˆเบกเบตเบšเบปเบ”เบšเบฒเบ”เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบเบธเปˆเบกเป„เบ”เป‰เบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™. เบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ‚เบญเบ‡เบœเบนเป‰เปเบฅเปˆเบ™เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเปเบฒเป€เบฅเบฑเบ”เบงเบฝเบเบ‡เบฒเบ™. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเป„เบ”เป‰เบเปˆเบฒเบงเบกเบฒ, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเป‰เบฒเบ‡เบงเบฝเบเบ‡เบฒเบ™เปƒเบซเบกเปˆเบˆเบฒเบ sandbox; เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เบ„เบดเบงเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™ runner เป„เบ”เป‰. เบ›เบฐเป€เบžเบ”เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบงเบฝเบ. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบกเบตเบ›เบฐเป€เบžเบ”เบงเบฝเบเบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Task - เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เบเปเบฒเบ™เบปเบ”เป€เบญเบ‡เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เบฒเบกเบ•เบฒเบ•เบฐเบฅเบฒเบ‡ (เปƒเบŠเป‰ cron syntax) เบซเบผเบทเบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™. เป€เบžเบทเปˆเบญเป€เบ›เบตเบ”เบ•เบปเบงเปเบฅเบฐเบ•เบดเบ”เบ•เบฒเบกเบงเบฝเบเบ‡เบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบœเบนเป‰เบˆเบฑเบ”เบเบฒเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบชเบฐเบ”เบงเบ. เป€เบžเบทเปˆเบญเปƒเบซเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เป€เบ›เบตเบ”เปƒเบŠเป‰เบซเบ™เป‰เบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒ; เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เบ™เบตเป‰เบกเบตเบฅเบฑเบ”, เบชเบฐเบ™เบฑเป‰เบ™เบกเบฑเบ™เบšเปเปˆเบ‚เบฐเบซเบ™เบฒเบ”, เป€เบŠเบดเปˆเบ‡, เปเบ™เบงเปƒเบ”เบเปเปˆเบ•เบฒเบก, เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡; เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบกเบต replica เบ—เบตเปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเปเบกเปˆเบšเบปเบ”เบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ›เบฐเบ•เบดเป€เบชเบ”.

เบŠเปˆเบฒเบ‡เบ•เบฑเบ”เป„เบกเป‰

เบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ logger. เบกเบฑเบ™เบฅเบงเบšเบฅเบงเบกเบšเบฑเบ™เบ—เบถเบเบˆเบฒเบเบชเบฐเบกเบฒเบŠเบดเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบเบธเปˆเบกเปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบญเบฑเบšเป‚เบซเบฅเบ”เปเบฅเบฐเป€เบšเบดเปˆเบ‡เบžเบงเบเบกเบฑเบ™เบœเปˆเบฒเบ™เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ‚เบญเบ‡เป€เบงเบฑเบš.

เบšเปเบฅเบดเบเบฒเบ™

เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบเปˆเบฒเบงเป€เบ–เบดเบ‡เบงเปˆเบฒเบฅเบฐเบšเบปเบšเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™. เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบ”เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ—เบตเปˆเบ‚เบฝเบ™เป‚เบ”เบเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™ sandbox. เปƒเบ™เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš.

เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰เบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ:

services:
   sum:
      doc: "adds two numbers"
      function: sum
      return_type: int
      args:
         x: int
         y: int

GraphQL API เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ” เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบฐเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป‚เบ—เบซเบฒ:

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

เบ™เบตเป‰เบˆเบฐเป‚เบ—เบซเบฒ handler sumเป€เบŠเบดเปˆเบ‡เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบš:

3

Query Profiling เปเบฅเบฐ Metrics

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป profileing, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš OpenTracing protocol. เบฅเบฐเบšเบปเบšเบชเบฒเบกเบฒเบ”เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เป„เบ›เบซเบฒเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ›เป‚เบ•เบ„เบญเบ™เบ™เบตเป‰, เป€เบŠเบฑเปˆเบ™ Zipkin, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป:

เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเปเบฅเบฐเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ‚เบญเบ‡ Tarantool Data Grid

เบ•เบฒเบกเบ—เปเบฒเบกเบฐเบŠเบฒเบ”, เบฅเบฐเบšเบปเบšเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบงเบฑเบ”เปเบ—เบเบžเบฒเบเปƒเบ™เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบเบฑเบšเบเปเบฒเป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ Prometheus เปเบฅเบฐเบชเบฐเปเบ”เบ‡เบžเบฒเบšเป‚เบ”เบเปƒเบŠเป‰ Grafana.

เบ™เบณเปƒเบŠเป‰

Tarantool Data Grid เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เบณเปƒเบŠเป‰เบˆเบฒเบเปเบžเบฑเบเป€เบเบ” RPM เบซเบผเบทเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™, เป‚เบ”เบเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบˆเบฒเบเบเบฒเบ™เปเบˆเบเบขเบฒเบ เบซเบผเบท Ansible, เบ™เบญเบเบ™เบฑเป‰เบ™เบเบฑเบ‡เบกเบตเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš Kubernetes (เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ Tarantool Kubernetes).

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ” (เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบ•เบปเบงเบˆเบฑเบ”เบเบฒเบ™) เปเบกเปˆเบ™เบ–เบทเบเป‚เบซเบฅเบ”เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบเบธเปˆเบก Tarantool Data Grid เบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบœเปˆเบฒเบ™ UI เบซเบผเบทเปƒเบŠเป‰เบชเบฐเบ„เบดเบšเบœเปˆเบฒเบ™ API เบ—เบตเปˆเบชเบฐเบซเบ™เบญเบ‡เปƒเบซเป‰เป‚เบ”เบเบžเบงเบเป€เบฎเบปเบฒ.

เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ•เบปเบงเบขเปˆเบฒเบ‡

เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰ Tarantool Data Grid? เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบงเบฝเบเบ‡เบฒเบ™เบ—เบธเบฅเบฐเบเบดเบ”เบชเปˆเบงเบ™เปƒเบซเบเปˆเปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เป„เบซเบผเป€เบ‚เบปเป‰เบฒเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบกเบตเบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบขเปˆเบฒเบ‡เบ›เบญเบ”เป„เบž, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ›เบฐเบซเบเบฑเบ”เป€เบงเบฅเบฒเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบซเบผเบฒเบเปเบฅเบฐเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบฐเบซเบผเบฒเบ”เบญเบฐเบชเบฑเบ‡เบซเบฒเบฅเบดเบกเบฐเบชเบฑเบš, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบ•เบปเบงเบขเปˆเบฒเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบชเบฐเป€เบซเบ™เบตเบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบ™เบฑเป‰เบ™เปƒเบชเปˆเบงเบฝเบเบ‡เบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  1. เบซเบธเปˆเบ™เบเบปเบ™เบ—เบตเปˆเป€เบเบฑเบšเบเปเบฒเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”เบˆเบฐเป€เบ›เบฑเบ™เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เป„เบ”เป‰เป‚เบ”เบเปƒเบŠเป‰เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเบซเบผเบทเบเบฒเบ™เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เปƒเบ™เบžเบฒเบชเบฒเปƒเบ”เบเปเปˆเบ•เบฒเบก.
  2. เบ•เปเปˆเป„เบ›, Tarantool Data Grid เบˆเบฐเบเบญเบกเบฎเบฑเบšเปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบ‚เปเป‰เบกเบนเบ™. เบ–เป‰เบฒเบฎเบนเบšเปเบšเบšเบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบเปเบซเบผเปˆเบ‡เบ•เปˆเบฒเบ‡เป†เปเบกเปˆเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบฅเบฐเบซเบฑเบ”เปƒเบ™ Lua เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบ›เบฑเบ™เบฎเบนเบšเปเบšเบšเบ”เบฝเบง. เปƒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบเปˆเบญเบ™, เบ—เปˆเบฒเบ™เบเบฑเบ‡เบชเบฒเบกเบฒเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบ‚เปเป‰เบชเบฐเป€เบซเบ™เบตเบ—เบตเปˆเบŠเป‰เปเบฒเบเบฑเบ™เบซเบผเบทเบเบฑเบ‡เบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ•เบปเบงเปเบ—เบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบ•เบฐเบซเบผเบฒเบ”เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.
  3. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เปˆเบฒเบ™เบกเบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฐเบซเบเบฒเบเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ•เบทเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบชเปˆเปเบฅเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบ‚เปเป‰เบกเบนเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเปƒเบซเบกเปˆ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ‚เบฝเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเปƒเบซเป‰เบ‚เปเป‰เบชเบฐเป€เบซเบ™เบตเบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบ—เบตเปˆเบชเบธเบ”เบ•เปเปˆเบกเบทเป‰ - เบ™เบตเป‰เบˆเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบชเบญเบ‡เบชเบฒเบกเป€เบชเบฑเป‰เบ™เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบฅเบฐเบซเบฑเบ” Lua เป€เบฅเบฑเบเบ™เป‰เบญเบ.

เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบ•เปเปˆเป„เบ›?

เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบ›เบฑเบšเบ›เบธเบ‡เบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ เบ•เบฒเบ‚เปˆเบฒเบเบ‚เปเป‰เบกเบนเบ™ Tarantool. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบ™เบตเป‰เปเบกเปˆเบ™ IDE เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบš profileing เปเบฅเบฐ debugging handlers เปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™ sandbox.

เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบขเปˆเบฒเบ‡เปƒเบซเบเปˆเบซเบผเบงเบ‡เบ•เปเปˆเบšเบฑเบ™เบซเบฒเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบž. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เป‚เบ”เบ FSTEC เบ‚เบญเบ‡เบฅเบฑเบ”เป€เบŠเบเป€เบžเบทเปˆเบญเบขเบทเบ™เบขเบฑเบ™เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบชเบนเบ‡เปเบฅเบฐเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เบŠเบญเบšเปเบงเบ—เบตเปˆเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เปเบฅเบฐเบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฐเบšเบฒเบ™.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™