αα
ααααΆα 2017 ααΎαααΆαααααααΆαααααα½ααααααααα½αααΎααααΈα’αα·ααααααααΌαααααα·ααααα·ααΆαααα’αΆααΈααααααα·αα·ααααααα Alfa-Bank α αΎαααΆαα
αΆααααααΎαααΆαααΆα (αα
HighLoad++ 2018 ααΆαα½αααΉααααΆαααΆαααααααΈααΈααααΌαααα’αΆααΈααααααα·αα·ααα
αααα»αα’αα‘α»ααααααααααΎαααΆαα’αα·αααααα ααααααααααΆααα·αααααα αα·αααα½αααΆααα»αααΆα α αΎααα
α
ααα»α
αα½αα
ααα½α ααΎαααΆαααΉαααΆααΎααααα»αααααΎααααΈααααΆααα’αααΈαα½α ααΎαααΈαααααα·ααΈαααααα·ααΈαααααααΌαααΆααααααΎαα‘αΎα ααΎααααΈαααααααΆααα·α
αα
ααΆααααααΆαααααααααΆαααΉααααΉαα ααΎαααΆαααα½ααααααα ααααααααβαααααΆααβαααααΎαβαααααα·ααΈβα
ααα
αΆαβαααβααΆαβααΆαβαααα»αβααΆααβαα αΌα. αααα·ααααααααααΎαααα½αααΆαααΆααααααΎαααΌαααααΆαααααα·αααααααΈ -
αααα»αα
αααα·ααΆαα’αααΈααααΆαααααααα TDG αα·ααααααααααΆααααααΎαααΆααααααα»αα’αα‘α»ααααααααΎαααΆαα’αα·αααααα ααααΆαα’αααα’αααΈαα»αααΆαα
αααα αα·ααααα αΆαααΈαααααααααα·αααααααααΎαα’αΆα
ααααΆαααΆααΌαααααΆααααααΆααααΆααααΆααααααααααΆαααααααα
ααΆαααααΆαααααααα ααΎαααΆααααα
αααααααααααα
ααΆααΆα
ααααα‘αα αα½ααΆααΈαααααΈαα½ααααα½ααα»αααααΌααααα»αααΆααααααααΆααααα αΆαα½αα
ααα½αα αααααα·ααΈαααααααΎαααΆααααα½αα’αα»αααααααααααα½ααΆααΈαα½α α¬α
αααΎαα ααΆα’αΆα
ααΆααα½ααΆααΈααΆα
αααΎαααααααααααΌα
ααααΆαα
αααα»αα
αααααα
α§αααααααααΆαα
α§αααααααααΆααααα½ααα»αααααΌαα ααααααΆαααααΆααααααααΆαα½ααα·ααααΆααααα ; ααΆααα·α αα ααααααΆααΊααΎααααΈααα½αααααααΎ αααααΆ α αΎαααααα·αααΎααΆαααααα αααααΆααααααααΎαα·αααααααααααΆααααααΎαααΆααα processor αααα αΌαα ααΎαααΆαααααααααα HTTP, SOAP, Kafka, FIX α ααααΆααααααααα’αα»ααααΆαα±ααα’αααααααΆααααααααααααΆαααΆαααααααααΆααααααααααααΈ ααΆαα½αααΉαααΆαααΆαααααααααΆαα IBM MQ ααΉαααααααααα»ααααααΆααααααα ααααα·αααΎααΆααααααααΎααΆααααΆααα α§αααααααααΆααααΉααααα‘ααααα α»αα ααΎαα·αααΌα αααααα ααΆααΉαααααΎαααααΆααααΎααααΌαααΆαααααΎαααΆαααααααααα αααααΈααΆααΆαααα α»αααΎαα‘αΎααααα»αα’αα‘α»ααααααααΎαααΆαααααααααααΆαααααα αααααααΌαααΆαααααΎααΆαα·αααααΎααααΈααααΎααΆαααΆαα½αααααααααααααα·αααΉαααΈααααααααΎααααΎααααααα - α¬αααα»ααα αα·αααααΎααΆαααααααΆαααααα½ααααα ααΎααααΈαα»αα±ααααΆααααααα·αααααα αα½ααα½ααα»αααααΌαααΆαααααΎααααΆααα ααααα»αααα αΌααα αααα»αααΆααΆαα»ααα·α α αΎααααααΆααααΈααααΎαααΆααααααααααααααΌαααΆαααα ααααΈααΆα α’ααααααααααααα’αΆα ααα½αααΆαααΆαααΌαααααΉαα’αααΈααααα»ααααα αααααααααα»ααα½ααα½ααα»α α αΎααααααΆααααΈαα»αααααΆαααααα αΆαααααααα α¬αααα αΆαααααααΉα ααΌαααααΆααΆααααααααα
α§αααααααααΎαααΆααααα αΌα
α’αααααααΎαααΆααααα αΌαα αΆααααααΆαααα·αααααααααααα½αααΆααααααααα ααΆααααααααααααα αα·αα α ααααΎαααΆααααααααααα α§ααααααααααααΆαααΊααΆαααααΌα Lua αααααααΎαααΆααααα»ααααα’ααααααΆα α ααΌα αααααα½αααΆαα·αα’αΆα αααααΆαααααααααΎαααΆαααααααααααααΆαααα αα ααααΆααααΆαααα αα·ααααααα’αΆα ααααΌαααΆαααΆααααααααα ααΆαααααααααααααΌαααΆα α αΎαααααα·αααΎα αΆαααΆα α α ααα½ααα·α αα ααΆααααααααΆαα’αΆα ααααΌαααΆαα αΆααααααΎααααα’αΆα α’αα»αααααααααα·ααααΆα αΆαααΆα αα α§ααΆα ααα αα αααα»αααα·ααα MDM (Master Data Management) ααααααααΎαα‘αΎααα ααΎ Tarantool Data Grid αα αααααααααα’αααααααΎααααΆααααααΈ ααΎααααΈαα»αα±ααααααΎαααΆαααααΎαααΊα ααΎαα αΆααααααΎααααααΎααααααααααΆααΆαααΆαα·α αα ααΆαααΆα ααααα‘αααα½αα αααα’ααααααΆα αααΆααααααααΎαααααΆααααΆαα’αΆα ααααΆααααααΌα αα·ααααααααα·αααααα α’αα»ααααΆαα±ααα’αααα’αα»αααααα»αααΆααα½αα ααα½αααΎαα½ααΆααΈααΆααα’ααααααααααααΆααααα»α αα·αααΆααααααΌααααα»ααααααα (αααααΈ/ααΆααααααα)α
α’ααααααααααΆαα’αΆα ααααΌαααΆααα·αααααΆαα αααα»αα―αααΆαα
sum.lua
local x, y = unpack(...)
return x + y
α αΎααααααΆααααααΆααααααΆααα αααα»αααΆαααααα:
functions:
sum: { __file: sum.lua }
α ααα»α’αααΈααΆαααΆααΌ? ααΌααΊααΆααΆααΆααΆααααααΆααα αααααα’ααααΎαααα·αααααααααααΎα ααΈαααΈαααααααααΆααααΈααααΆααααΆ ααα»αααα αΆααααααΎααααααααΌαααααααααααΆααααα αΆαααααα½αααα α αΎαααΆααααααα·αααααΉαααααΆα’αααα’αα·αααααααααααΆαααααΆααα·ααααΆααΈααααα»αααααααααα»ααααααΆα§ααΆα αααα’ααααα·ααΆαα ααΎαααΈαααααα ααΌαα’ααα»αααα jit compiler Lua ααααΎαααΆααααΆαααΏαα
α§ααααααααα»α
ααααΆαααααα»ααα·ααααααααΆααααΆααα αα»αααααααααΆαα»α αα·ααααααααααΌαααΆαααααΎα±ααααΆααα»ααααΆααααααΆααααΉααααααααΆααααα·ααααααα ααΎααααΈαααααΆα’αααΈααααααΈ ααΎαααααΎαααααααααααΈα
{
"name": "User",
"type": "record",
"logicalType": "Aggregate",
"fields": [
{ "name": "id", "type": "string"},
{"name": "first_name", "type": "string"},
{"name": "last_name", "type": "string"}
],
"indexes": ["id"]
}
αααααα’ααααΎααΆααα·αααααΆααα DDL (ααΆααΆαα·ααααααα·αααααα) ααααΌαααΆααααααΎααααααααααααααααα·αααααΆαα Tarantula DBMS αα·α
ααΆαα αααααα·ααααααα’ααααΆαααααΌαααΆαααΆαααα (ααΆααααααααααααααα½ααααααααΎααααΆααααα)α
ααααΎαααΆαααααΎαααΆα
αααααααααΆα αΆαααΆα αααΎααααΈααΌαααααΉααααα’αααααααΎααααΆααααΆααααα α’αααΈααΆαααααααααα·ααααααααααΈ αααααΆααααααααααααααΆααα½ααΆααΈααααΎαααΆα Output α αααααΆααααΈαααααΆαα»ααα·αααααα ααΆα’αΆα ααααΌαααΆααααααΌααα α’ααααααααααΆαααααααααα (α§ααΆα ααα ααΎααααΈααΆαααΆαα ααααααααααααααΌααααα’αααααααΎααααΆαα) - α αΎααααααΆαααααααααΌααα α§αααααααααΆαααααααΆααααΆαααααΎα αα½ααα½ααα»αααααααΌαααΆαααααΎαα ααΈααααααααα ααααα·αααΎααααΆαααααΆααααΆααααα½αααααααα»αα α’ααααααααααααα’αΆα ααααΆααΆαααααααααα ααααααααα
ααΆαααααΎααΆαααααααΆα
αα½ααΆααΈααααα§αααααααααΆαα ααααΎαααΆααααα
αΌα αα·ααα»αααΆαααααΎαααΆαααααααααΊααααΆααααα αααα’αα»ααααΆαα±ααααΎαααααΎααΆαααααααΆααααααααααααααααααααααααΆααααααααααα§ααΆα ααααααααα·ααΈααααΈααΆαα½αααΉααααααααα½ααΆααΈαααα
ααααΆαα ααΆααααα»αααααΌαααΆαααααΎαααααΆααααΆαααααΎααΆαααααααΆαααααα
αααααααααααααα·αα·αααααα
ααααα»α’αΆα ααΆαααα ααα αα·αααΆαααααα»ααααααααα ααΎαααΆααΆααΌαα’αΆααΌαα·αααααΆααααααα αα·αααααΎαα αα α»ααααααααΆααα·ααααααααααααααΆαα»αααααα»αα½ααααααΆαααΆαα’αΆαααααααΆααα’αααα αααα»ααα»ααα·αααα·ααα½αα ααΆααΆααΆααααααα»αα·αα±αα "ααΈαααΆαααΆα" αα ααΌααΆαααααΆαααΈαααα
ααααααααΌαααΆαααΆααααα ααΆαα’αΆαααααααΈαα½ααααααααα»αααααΎαααααααααΈ α αΎαααΎααααααα’αΆα α αααΆααααααααα·α α αΎαααΎαααΈααααααααα·αααααααΎααα ααααααα αααααΆαααα·ααααααααααα·αααααΌαααΆααααααααα·ααΌα ααΎαα’αΆα αααααα ααα½ααααα α¬ααΌααααΈαααααααΆαα»ααααα½α - ααααα α»αααααααααα»α - αααααΊαα·αααααΎαααΆααααααααααΆααααααααααΆααααΆαααα½αα α’αααααα’αΆα ααααααααααααα·ααΆααααααααΆαααααα α§ααΆα ααα αα»αααααα»ααΆααα’ααααααααααααΆααααΆαααααα αΆααααΆα 1 ααααΆαα ααΆααααααΆαα»αα―αααΆαααααααΌαααΆαααΆαααααααααα ααΎαα’αΆα αααα»αααααα»α αΆααααΆααααααααΆαααααΆααααααΆαα ααααααααΎαααα αααααααα αααα»αα αααααα
ααΆααα·α αα
αααα»αβα ααααβααααααβαα·αααβαα½αβα±ααβα αΆααβα’αΆαααααα ααΆβαα½αβα±ααβαααβαααααΆααβααΈβαααααααΆαβαααα»αβααΆαβα αΆααβααααΎαβαα·α αα ααΆαβααΆαβααΆααα·ααΆα ααΆαβααΆαβααααΎβαα»αβααααβα’αααβααααΎ α¬βααΆαβαααααα·ααΈβααΈβαααα’ααβααααΆα αα
αα
ααΈαααααΎαααΎααα½ααΆααΈαα½αααα - α’ααααααα αα½ααΆααΈαααααΊααααΆααααα α αΎαα§ααΆα ααααααααα·ααΈαααααααααααΆααα½ααΆααΈαααα’αΆα
ααααΌαααΆααααααααα
αααα»αααΆααααααΌαααΆαα αααα½ααα»αααααΌαααααα’αααααααααααΆααααΊααΎααααΈαααααααΆααα·α
αα
α ααΌα
αααααΆααααααΆαα ααΆα’αΆα
αααααΎααα·α
αα
ααΆαααααΈααΈαααα’ααααααΆα
αα αα½αααΆααααΌαααΆααααααΆαα»ααααα»ααα½ααα½ααα
ααΎααΆααααα»αα αΎααααααΆααααααααα·ααααα·ααΎα’ααααααα ααΆαααΆααααααααααααααΌαααΆαααα α
ααΆααΆαααΆαα ααΎαααααΆααααααααα·α
αα
ααΆααααα α
ααΆ Task - ααΆαααααααΊααΆαα·α
αα
ααΆαααααααααα’αααααααΎααααΆαααααααααΎαααΆαααΆαααΆααα·ααΆα (αααααααΎααΆααααααααααα cron) α¬ααΆααααααΌαααΆαα ααΎααααΈα
αΆααααααΎα αα·αααΆαααΆααα·α
αα
ααΆααααααα ααΎαααΆααααααα·ααΈαααααααααααΆααα·α
αα
ααααΆααααα½ααα½αα ααΎααααΈα±αααα»αααΆααααα’αΆα
ααααΎααΆα α’αααααααΌαααααΎααα½ααΆααΈαααααα·ααΈααααααααα αα½ααΆααΈαααααΆααααα ααΌα
ααααααΆαα·αααααΎααΆαααααααΆα ααααααααΆαααΆαααΆ αα·αααααΌαααΆαααΆαααΆαα αααα»ααααααΆαα½αααααΆ ααΌα
ααΆαα½ααΆααΈααααααααααΆααα’αα ααΆα’αΆα
ααΆαααΆαα
αααααααα
αΆααααααΎαααααΎαααΆα ααααα·αααΎααααα·αααααααΆααα
α’αααααΆααααΎ
αα½ααΆααΈαα½ααααααααΌαααΆαααα α ααΆα’αααααΆααααΎα ααΆαααααΌααααααα ααα»ααΈαααΆαα·αααΆααα’ααααα ααααα α αΎααααααα ααα»α αααααΆαααααααΆααααΆααααα»αα‘αΎα αα·αααΎααα½αααΆααΆααααα ααα»α αααααΆααααα αααααα
ααααΆαααα
ααΆααΆααααααα·ααΆαααΆαααααααααααααααΎα±ααααΆααΆααααα½ααααα»αααΆααααααΎαααααΆααααα αα αααα»αα―αααΆαααααααα ααΆαααααααα α’αααα’αΆα αααααΆααααααΎααΆαα½ααααααααΌαααΆαααααΎαα α’ααααααααααΆααααααααααααα’αααααααΎααααΆαααααααααΎαααΆααααα»ααααα’ααααααΆα αα ααΆα§ααΆα ααα αα αααα»αα§ααααααααααααΆαααα α’αααα’αΆα ααααΎαααΆααααα½ααα·ααΆααα½αα ααα½α α αΎααααα‘αααααααααα·αα
ααααΆααααααααΌαααΆααα·αααααΆαα αααα»αα―αααΆαααααααα ααΆααααααααα
services:
sum:
doc: "adds two numbers"
function: sum
return_type: int
args:
x: int
y: int
GraphQL API ααααΌαβααΆαβαααααΎαβαααβαααααβαααααααα· α αΎαβααααΆααααβα’αΆα βααααΎβααΆαβαααααΆααβααΆαβα α βααΌαααααα
query {
sum(x: 1, y: 2)
}
ααΆααΉαα α
α’ααααααααααΆα sum
αααααΉααααα‘ααααααααα
3
ααααααααα½α αα·ααααααα
ααΎααααΈααααααααα’αααΈααααα·ααααα·ααΆααααααααααα αα·αααααΎαααααΎααααααα ααΎαααΆαα’αα»ααααααΆαααΆαααααααααΆαααα·ααΈααΆα OpenTracing α ααααααααα’αΆα ααααΎααααααΆαα’αααΈαααααΌαααΆααα ααΆααα§ααααααααααΆαααααα·ααΈααΆαααα ααΌα ααΆ Zipkin αααααΉαα’αα»ααααΆαα±ααα’ααααααααΈαααααααααααΎααααΌαααΆαααααα·ααααα·α
ααΆαααααααΆαα· αααααααααααααααΌαααααααααΆααααα»ααααα’αΆα
αααααΌαααΆααααααααΎ Prometheus αα·αααΎαααΎααααααααΎ Grafana α
ααΆαααααααΆα
Tarantool Data Grid α’αΆα
βααααΌαβααΆαβααβααΆααβαααααΆαβααΈβαααα
αα RPM α¬βααααααΆα αααβααααΎβα§αααααβααααΎααααΆααβααΈβααΆαβα
ααα
αΆα α¬ Ansible ααβααΆαβααΆαβααΆααααβαααααΆαα Kubernetes (
αααααα·ααΈαααα’αα»αααααααααα·ααααΆα’αΆααΈααααα (ααΆαααααααα ααΆαααααααα α’ααααααααααΆα) ααααΌαααΆααααα»ααα αααα»αα ααααα Tarantool Data Grid αααααααΌαααΆαααΆαααααααΆααααα»αααααααααΆααααααΆαααΆαααα UI α¬αααααααΎααααααΈαααΆαααα API ααααααααααααα½αααΎαα
αααααα·ααΈααααΌ
ααΎαααααα·ααΈα’αααΈααααα’αΆα ααααΌαααΆααααααΎααααααααΎ Tarantool Data Grid? ααΆααΆααα·α αα·α αα ααΆαα’αΆααΈαααααααΆαα αααΎαααΆααααααΉαααααΎαααΆα αααααΆαα»α αα·αα αΌαααααΎαααΆααα·ααααααα ααΌα ααααα αΎα ααααα·αααΎα’αααααΆααα·ααααααααααααΈααα αααααααΌαααΆααααααΆαα»α αα·αα αΌαααααΎααααα»ααααα·ααΆα αααααα·αααααααααΎαα’αΆα αα½αα’αααααΆαα αααΎααααα»αααΆαα’αα·αααααα αα·ααααααααΎαααααα·ααααΆα’αΆααΈαααααααααα’αααα
α§ααΆα ααα ααΎαα αααααααΌαααααααΆαα’αααΈααΈααααΆαα’α αααααααα ααΌα αααααα αααα’ααΆαα ααΆα§ααΆα ααα ααΎαααΉαααΆαααααααΆαα’αααΈααΆααααααααΌαααααα’αααα»αα αααα»αααααΈααα ααΎαααΉαααΎααααα·α αα ααΆαααΆααααααα
- ααα»αααααααααααααααΌαααααααΆαααΈαααααααΎαα αα ααΉαααααΆαααΆααααααα·ααααααααααααΎαα α’αααα’αΆα αααααααΆααααα αΆααααααααααΎαααααααααΆααααααααααα½α ααΆααααα α¬αααααααΌαααΆααΆααΆααΆαα½αα
- αααααΆαααα Tarantool Data Grid ααΉαααα½ααα αα·ααααααΆαα»ααα·ααααααα ααααα·αααΎαααααααααΆααα·ααααααααΈααααααααααααααΆ αααα’αααα’αΆα αααααααΌααα αααα»α Lua αααααΉαααααΎααΆαααααααααα ααΆαααααααααα½αα α§ααΆα ααα αα ααααΆααααΆααα»αααααΎαααΆα α’αααααααΉαα’αΆα ααααααΆααααααααΌααααα½α α¬ααααΎαα αα α»ααααααααΆαααααααΆαααααααα’αααΈααααΆααααΆααααααααΎααΆααα αααα»αααΈααααΆααααα»αααΌαααααΆααα·ααααααα
- α₯α‘αΌαααα α’αααααΆααααααααααΆααααα’αΆα ααααΎααΆαααααααΆαααΆααα½α α αΎααα αααα»αα ααααααααα’αΆα ααααΌαααΆααααααααααα·αααααα αα·αααααΎααΆαααααΎαααΎααα·ααααααα αααααΆααααα’αααα’αΆα α’αα»αααααα»αααΆαααααΈ α§ααΆα ααα αααααααααΆαααααααααΉαααααΎααΆαααααΎαα»ααα·αααααα αα·ααααααα’αααααααααααα αααΎααααα»ααααα»ααα½ααααα - ααΆααΉαααααΌαααΆααααααΆααααΈαααΈαα αααα»αα―αααΆαααααααα ααΆαααααααα αα·ααααααΌα Lua αα·α αα½α α
ααΎααΆαα’αααΈααΆαααααΆαα?
α’αΆαα·ααΆαααααααΎαααΊααααΎα±αααααααΎαα‘αΎαααΌαααΆαααΆααααα½αααααΆαα’αα·αααααααααααααΎ
ααΎαααααα
α·ααααα»αααΆαααααΆαααααΆααα
αααααααα αΆαα»ααααα·ααΆααααααα α₯α‘αΌαααα ααΎααααα»αααα½αααΆααα·ααααΆαααααααααα FSTEC αααααααααα»αααααΈ ααΎααααΈαααααΆααααΈααααα·αααααααααα»ααααα·ααΆα αα·ααααααααΆααααααΌαααΆααααααΆαααα·ααααΆαααααααααα·ααααααααα·ααΈαααααααΎαααα»αααααααααααααααΆαααααΆαααααα½α αα·αααααααααααααααΆααααααααααΆαα·ααΆαα
ααααα: www.habr.com