āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

Mail.ru āĻ—ā§āϰ⧁āĻĒ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āφāϛ⧇ Tarantool - āĻāϟāĻŋ Lua-āĻ āĻāĻ•āϟāĻŋ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϏāĻžāĻ°ā§āĻ­āĻžāϰ, āϝāĻž āĻĄāĻžāϟāĻžāĻŦ⧇āϏ āĻšāĻŋāϏ⧇āĻŦ⧇āĻ“ āĻĻā§āĻŦāĻŋāϗ⧁āĻŖ āĻšāϝāĻŧ (āĻ…āĻĨāĻŦāĻž āĻŦāĻŋāĻĒāϰ⧀āϤ?)āĨ¤ āĻāϟāĻŋ āĻĻā§āϰ⧁āϤ āĻāĻŦāĻ‚ āĻĻ⧁āĻ°ā§āĻĻāĻžāĻ¨ā§āϤ, āϤāĻŦ⧇ āĻāĻ•āϟāĻŋ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇āϰ āĻ•ā§āώāĻŽāϤāĻž āĻāĻ–āύāĻ“ āϏ⧀āĻŽāĻžāĻšā§€āύ āύāϝāĻŧāĨ¤ āωāĻ˛ā§āϞāĻŽā§āĻŦ āĻ¸ā§āϕ⧇āϞāĻŋāĻ‚āĻ“ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāώ⧇āϧāĻ• āύāϝāĻŧ, āϤāĻžāχ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ⧇āϰ āĻ…āύ⧁āĻ­ā§‚āĻŽāĻŋāĻ• āĻ¸ā§āϕ⧇āϞāĻŋāĻ‚-āĻāϰ āϜāĻ¨ā§āϝ āϏāϰāĻžā§āϜāĻžāĻŽ āϰāϝāĻŧ⧇āϛ⧇ - vshard āĻŽāĻĄāĻŋāωāϞ [1]. āĻāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϏāĻžāĻ°ā§āĻ­āĻžāϰ āϜ⧁āĻĄāĻŧ⧇ āĻĄā§‡āϟāĻž āĻļāĻžāĻ°ā§āĻĄ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ, āϤāĻŦ⧇ āĻāϟāĻŋ āϏ⧇āϟ āφāĻĒ āĻ•āϰāϤ⧇ āĻāĻŦāĻ‚ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āϝ⧁āĻ•ā§āϤāĻŋ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āφāĻĒāύāĻžāϕ⧇ āĻāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āϟāĻŋāĻ™ā§āĻ•āĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤

āϏ⧁āϏāĻ‚āĻŦāĻžāĻĻ: āφāĻŽāϰāĻž āĻ•āĻŋāϛ⧁ āĻŦāĻĄāĻŧ āĻļāϟ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇āĻ›āĻŋ (āϝ⧇āĻŽāύ [2], [3]) āĻāĻŦāĻ‚ āĻ…āĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ•āĻžāĻ āĻžāĻŽā§‹ āϤ⧈āϰāĻŋ āĻ•āϰ⧇āϛ⧇ āϝāĻž āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϰ āϏāĻŽāĻžāϧāĻžāύāϟāĻŋāϕ⧇ āωāĻ˛ā§āϞ⧇āĻ–āϝ⧋āĻ—ā§āϝāĻ­āĻžāĻŦ⧇ āϏāϰāϞ āĻ•āϰāĻŦ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āϜāϟāĻŋāϞ āĻŦāĻŋāϤāϰāĻŖ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āωāĻ¨ā§āύāϝāĻŧāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ•āĻžāĻ āĻžāĻŽā§‹. āĻāϟāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻ…āĻŦāĻ•āĻžāĻ āĻžāĻŽā§‹āĻ—āϤ āϏāĻŽāĻ¸ā§āϝāĻž āϏāĻŽāĻžāϧāĻžāύ⧇āϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āϝ⧁āĻ•ā§āϤāĻŋ āϞ⧇āĻ–āĻžāϰ āωāĻĒāϰ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻ•āĻžāĻŸā§‡āϰ āύ⧀āĻšā§‡ āφāĻŽāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻŦāϞāĻŦ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāχ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻ•āĻžāϜ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻĒāϰāĻŋāώ⧇āĻŦāĻžāϗ⧁āϞāĻŋ āϞāĻŋāĻ–āϤ⧇ āĻšāϝāĻŧāĨ¤

āĻāĻŦāĻ‚ āĻ•āĻŋ, āĻ āĻŋāĻ•, āϏāĻŽāĻ¸ā§āϝāĻž?

āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞāĻž āφāϛ⧇, āφāĻŽāĻžāĻĻ⧇āϰ āĻ­āĻŋāĻļāĻžāĻ°ā§āĻĄ āφāϛ⧇ - āφāĻĒāύāĻŋ āφāϰ āĻ•āĻŋ āϚāĻžāύ?

āĻĒā§āϰāĻĨāĻŽāϤ, āĻāϟāĻŋ āϏ⧁āĻŦāĻŋāϧāĻžāϰ āĻŦāĻŋāώāϝāĻŧāĨ¤ vshard āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ Lua āĻŸā§‡āĻŦāĻŋāϞ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āϜāĻ¨ā§āϝ, āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύāϟāĻŋ āϏāĻ°ā§āĻŦāĻ¤ā§āϰ āĻāĻ•āχ āĻšāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϕ⧇āω āĻŽā§āϝāĻžāύ⧁āϝāĻŧāĻžāϞāĻŋ āĻāϟāĻŋ āĻ•āϰāϤ⧇ āϚāĻžāϝāĻŧ āύāĻžāĨ¤ āĻ…āϤāĻāĻŦ, āϏāĻŽāĻ¸ā§āϤ āϧāϰāϪ⧇āϰ āĻ¸ā§āĻ•ā§āϰāĻŋāĻĒā§āϟ, āωāĻ¤ā§āϤāϰāϝ⧋āĻ—ā§āϝ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āύāĻŋāĻœā§‡āχ vshard āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇, āĻāϟāĻŋ āϤāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāϟāĻŋ āĻ•āϰ⧇ āύāĻŋāϜāĻ¸ā§āĻŦ āĻŦāĻŋāϤāϰāĻŖ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ. āĻāϟāĻŋ āĻŽā§‚āϞāϤ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ YAML āĻĢāĻžāχāϞ, āϝāĻžāϰ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ Tarantool āωāĻĻāĻžāĻšāϰāϪ⧇ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϏāϰāϞ⧀āĻ•āϰāĻŖ āĻšāϞ āϝ⧇ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻœā§‡āχ āϤāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āύāĻŋāϰ⧀āĻ•ā§āώāĻŖ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧇ āϝ⧇ āĻāϟāĻŋ āϏāĻ°ā§āĻŦāĻ¤ā§āϰ āĻāĻ•āχāĨ¤

āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧāϤ, āĻāϟāĻž āφāĻŦāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻžāϰ āĻŦāĻŋāώāϝāĻŧāĨ¤ āĻŦā§āϝāĻŦāϏāĻžāϝāĻŧāĻŋāĻ• āϝ⧁āĻ•ā§āϤāĻŋāϰ āĻŦāĻŋāĻ•āĻžāĻļ⧇āϰ āϏāĻžāĻĨ⧇ vshard āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āϕ⧋āύ āϏāĻŽā§āĻĒāĻ°ā§āĻ• āύ⧇āχ āĻāĻŦāĻ‚ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒā§āϰ⧋āĻ—ā§āϰāĻžāĻŽāĻžāϰāϕ⧇ āϤāĻžāϰ āĻ•āĻžāϜ āĻĨ⧇āϕ⧇ āĻŦāĻŋāĻ­ā§āϰāĻžāĻ¨ā§āϤ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ āύāĻŋāϝāĻŧ⧇ āφāϞ⧋āϚāύāĻž āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻĒ⧃āĻĨāĻ• āωāĻĒāĻžāĻĻāĻžāύ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āĻŽāĻŋāĻĨāĻ¸ā§āĻ•ā§āϰāĻŋāϝāĻŧāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ•āĻĨāĻž āĻŦāϞāĻŋāĨ¤ 3āϟāĻŋ āĻĄā§‡āϟāĻž āϏ⧇āĻ¨ā§āϟāĻžāϰ⧇ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āϚāĻŋāĻ¨ā§āϤāĻž āĻ•āϰāĻž āϖ⧁āĻŦ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋāĨ¤

āφāĻŽāϰāĻž āĻāχ āϏāĻŽāĻ¸ā§āϝāĻžāϗ⧁āϞāĻŋ āĻŦāĻžāϰāĻŦāĻžāϰ āϏāĻŽāĻžāϧāĻžāύ āĻ•āϰ⧇āĻ›āĻŋ, āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁ āϏāĻŽāϝāĻŧ⧇ āφāĻŽāϰāĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋāϰ āĻŦāĻŋāĻ•āĻžāĻļ āĻ•āϰāϤ⧇ āĻĒ⧇āϰ⧇āĻ›āĻŋ āϝāĻž āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋāϰ āϏāĻžāĻĨ⧇ āϤāĻžāϰ āϏāĻŽāĻ—ā§āϰ āĻœā§€āĻŦāύāϚāĻ•ā§āϰ āϜ⧁āĻĄāĻŧ⧇ āĻ•āĻžāϜāϕ⧇ āϏāĻšāϜ āĻ•āϰ⧇ āϤ⧋āϞ⧇: āϏ⧃āĻˇā§āϟāĻŋ, āĻŦāĻŋāĻ•āĻžāĻļ, āĻĒāϰ⧀āĻ•ā§āώāĻž, CI/CD, āϰāĻ•ā§āώāĻŖāĻžāĻŦ⧇āĻ•ā§āώāĻŖāĨ¤

āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āϧāĻžāϰāĻŖāĻž āĻĒā§āϰāĻŦāĻ°ā§āϤāύ āĻ•āϰ⧇āĨ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āϧāĻžāϰāĻŖāĻž āϝāĻž āĻāĻ•āϜāύ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀āϕ⧇ āϕ⧋āĻĄ āϞ⧇āĻ–āĻžāϰ āωāĻĒāϰ āĻĢā§‹āĻ•āĻžāϏ āĻ•āϰāϤ⧇ āĻĻ⧇āϝāĻŧāĨ¤ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āωāĻĒāϞāĻŦā§āϧ āϏāĻŽāĻ¸ā§āϤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāĻ•āϟāĻŋ Tarantool āωāĻĻāĻžāĻšāϰāϪ⧇ āϚāĻžāϞāĻžāύ⧋ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻŦāĻ‚ āĻāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻžāϰ āϜāĻ¨ā§āϝ āϝāĻĨ⧇āĻˇā§āϟ āĻšāĻŦ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāĻœā§‡āϰ āĻŽā§‚āϞ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ:

  • āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻ…āĻ°ā§āϕ⧇āĻ¸ā§āĻŸā§āϰ⧇āĻļāύ;
  • āύāϤ⧁āύ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āĻ•āĻžāĻ°ā§āϝāĻ•āĻžāϰāĻŋāϤāĻž āĻĒā§āϰāϏāĻžāϰāĻŋāϤ āĻ•āϰāĻž;
  • āωāĻ¨ā§āύāϝāĻŧāύ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ;
  • āĻ…āĻ¨ā§āϤāĻ°ā§āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚;
  • Luatest āĻŸā§‡āĻ¸ā§āϟāĻŋāĻ‚ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āĻāϕ⧀āĻ•āϰāĻŖ;
  • WebUI āĻāĻŦāĻ‚ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž;
  • āĻĒā§āϝāĻžāϕ⧇āϜāĻŋāĻ‚ āĻāĻŦāĻ‚ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϏāϰāĻžā§āϜāĻžāĻŽāĨ¤

āĻ“āĻšā§‡ āĻŦāĻŋāĻļā§āĻŦ!

āφāĻŽāĻŋ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āύāĻŋāĻœā§‡āχ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āύāĻž, āϤāĻžāχ āφāĻŽāϰāĻž āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ—āĻ˛ā§āĻĒāϟāĻŋ āĻĒāϰ⧇ āϰ⧇āϖ⧇ āĻĻ⧇āĻŦ āĻāĻŦāĻ‚ āϏāĻšāϜ āĻ•āĻŋāϛ⧁ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻ•āϰāĻŦāĨ¤ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āϧāϰ⧇ āύāĻŋāχ āϝ⧇ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āύāĻŋāĻœā§‡āχ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āφāϛ⧇, āϤāĻžāĻšāϞ⧇ āϝāĻž āĻŦāĻžāĻ•āĻŋ āφāϛ⧇ āϤāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇

$ tarantoolctl rocks install cartridge-cli
$ export PATH=$PWD/.rocks/bin/:$PATH

āĻāχ āĻĻ⧁āϟāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āϞāĻžāχāύ āχāωāϟāĻŋāϞāĻŋāϟāĻŋāϗ⧁āϞāĻŋ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āφāĻĒāύāĻžāϕ⧇ āĻŸā§‡āĻŽāĻĒā§āϞ⧇āϟ āĻĨ⧇āϕ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻĨāĻŽ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻŦ⧇:

$ cartridge create --name myapp

āĻāĻŦāĻ‚ āφāĻŽāϰāĻž āϝāĻž āĻĒāĻžāχ āϤāĻž āĻšāϞ:

myapp/
├── .git/
├── .gitignore
├── app/roles/custom.lua
├── deps.sh
├── init.lua
├── myapp-scm-1.rockspec
├── test
│   ├── helper
│   │   ├── integration.lua
│   │   └── unit.lua
│   ├── helper.lua
│   ├── integration/api_test.lua
│   └── unit/sample_test.lua
└── tmp/

āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϰ⧇āĻĄāĻŋāĻŽā§‡āĻĄ "āĻšā§āϝāĻžāϞ⧋, āĻ“āϝāĻŧāĻžāĻ°ā§āĻ˛ā§āĻĄ!" āϏāĻš āĻāĻ•āϟāĻŋ āĻ—āĻŋāϟ āϏāĻ‚āĻ—ā§āϰāĻšāĻ¸ā§āĻĨāϞāĨ¤ āφāĻŦ⧇āĻĻāύ āφāϗ⧇ āύāĻŋāĻ°ā§āĻ­āϰāϤāĻž āχāύāĻ¸ā§āϟāϞ āĻ•āϰ⧇ (āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻœā§‡āχ āϏāĻš): āφāϏ⧁āύ āĻāĻ–āύāχ āĻāϟāĻŋ āϚāĻžāϞāĻžāύ⧋āϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋ:

$ tarantoolctl rocks make
$ ./init.lua --http-port 8080

āϏ⧁āϤāϰāĻžāĻ‚, āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•āϟāĻŋ āύ⧋āĻĄ āĻ­āĻŦāĻŋāĻˇā§āϝāϤ āĻļāĻžāĻ°ā§āĻĄā§‡āĻĄ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āϚāϞāϛ⧇āĨ¤ āĻāĻ•āϜāύ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻŋā§ŽāϏ⧁ āϏāĻžāϧāĻžāϰāĻŖ āĻŽāĻžāύ⧁āώ āĻ…āĻŦāĻŋāϞāĻŽā§āĻŦ⧇ āĻ“āϝāĻŧ⧇āĻŦ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āϖ⧁āϞāϤ⧇ āĻĒāĻžāϰ⧇, āĻŽāĻžāωāϏ āĻĻāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āύ⧋āĻĄā§‡āϰ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻĢāϞāĻžāĻĢāϞāϟāĻŋ āωāĻĒāĻ­ā§‹āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ āφāύāĻ¨ā§āĻĻ āĻ•āϰāĻž āϖ⧁āĻŦ āϤāĻžāĻĄāĻŧāĻžāϤāĻžāĻĄāĻŧāĻŋāĨ¤ āĻāĻ–āύ āĻĒāĻ°ā§āϝāĻ¨ā§āϤ, āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻ•āĻŋāϛ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āϤāĻžāχ āφāĻŽāĻŋ āφāĻĒāύāĻžāϕ⧇ āĻĒāϰ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻŦāĻŋāώāϝāĻŧ⧇ āĻŦāϞāĻŦ, āϤāĻŦ⧇ āĻāĻ–āύ āϕ⧋āĻĄ āϞ⧇āĻ–āĻžāϰ āϏāĻŽāϝāĻŧāĨ¤

āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻĄā§‡āϭ⧇āϞāĻĒāĻŽā§‡āĻ¨ā§āϟ

āĻļ⧁āϧ⧁ āĻ•āĻ˛ā§āĻĒāύāĻž āĻ•āϰ⧁āύ, āφāĻŽāϰāĻž āĻāĻŽāύ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ āĻĄāĻŋāϜāĻžāχāύ āĻ•āϰāĻ›āĻŋ āϝāĻž āĻ…āĻŦāĻļā§āϝāχ āĻĄā§‡āϟāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻŦ⧇, āĻāϟāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāĻŦ⧇ āĻāĻŦāĻ‚ āĻĻāĻŋāύ⧇ āĻāĻ•āĻŦāĻžāϰ āĻāĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāĻŦ⧇āĻĻāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽ āφāρāĻ•āĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻŋ āĻāĻŦāĻ‚ āĻāϟāĻŋāϤ⧇ āϤāĻŋāύāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ āϰāĻžāĻ–āĻŋ: āϗ⧇āϟāĻ“āϝāĻŧ⧇, āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻāĻŦāĻ‚ āϏāĻŽāϝāĻŧāϏ⧂āĻšā§€āĨ¤ āφāĻŽāϰāĻž āφāϰāĻ“ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝ āύāĻŋāϝāĻŧ⧇ āĻ•āĻžāϜ āĻ•āϰāĻ›āĻŋāĨ¤ āϝ⧇āĻšā§‡āϤ⧁ āφāĻŽāϰāĻž āĻ¸ā§āĻŸā§‹āϰ⧇āϜ āĻšāĻŋāϏāĻžāĻŦ⧇ vshard āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āφāĻŽāϰāĻž āĻ¸ā§āĻ•āĻŋāĻŽā§‡ vshard-āϰāĻžāωāϟāĻžāϰ āĻāĻŦāĻ‚ vshard-storage āϝ⧋āĻ— āĻ•āϰāĻŋāĨ¤ āϗ⧇āϟāĻ“āϝāĻŧ⧇ āĻŦāĻž āϏāĻŽāϝāĻŧāϏ⧂āĻšā§€ āωāĻ­āϝāĻŧāχ āϏāĻžā§āϚāϝāĻŧāĻ¸ā§āĻĨāĻžāύ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•āϰāĻŦ⧇ āύāĻž; āϰāĻžāωāϟāĻžāϰāϟāĻŋ āĻāϰ āϜāĻ¨ā§āϝāχ āĻāϟāĻŋ āϤ⧈āϰāĻŋ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āĻ›āĻŋāϞāĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āĻāχ āϚāĻŋāĻ¤ā§āϰāϟāĻŋ āĻāĻ–āύāĻ“ āĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āωāĻĒāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰ⧇ āύāĻž āϝ⧇ āφāĻŽāϰāĻž āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āϕ⧀ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦ āĻ•āĻžāϰāĻŖ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋ āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤ āĻĻ⧇āĻ–āĻžāĻšā§āϛ⧇āĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ–āύāĻ“ āĻĻ⧇āĻ–āϤ⧇ āĻšāĻŦ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻāϟāĻŋ āĻŦāĻžāĻ¸ā§āϤāĻŦ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ⧇ āĻĒā§āϰāĻœā§‡āĻ•ā§āϟ āĻ•āϰāĻž āĻšāĻŦ⧇ - āφāϏ⧁āύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ…āύ⧁āϏāĻžāϰ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āωāĻĒāĻžāĻĻāĻžāύāϗ⧁āϞāĻŋāϕ⧇ āĻ—ā§‹āĻˇā§āĻ ā§€āĻŦāĻĻā§āϧ āĻ•āϰāĻŋāĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āφāϞāĻžāĻĻāĻž āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤ⧇ vshard-āϰāĻžāωāϟāĻžāϰ āĻāĻŦāĻ‚ āϗ⧇āϟāĻ“āϝāĻŧ⧇ āϰāĻžāĻ–āĻžāϰ āϏāĻžāĻŽāĻžāĻ¨ā§āϝ āĻŦāĻŋāĻ¨ā§āĻĻ⧁ āφāϛ⧇āĨ¤ āϕ⧇āύ āφāĻŽāĻžāĻĻ⧇āϰ āφāĻŦāĻžāϰ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϏāĻžāĻ°ā§āĻĢ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝāĻĻāĻŋ āĻāϟāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇āχ āϰāĻžāωāϟāĻžāϰ⧇āϰ āĻĻāĻžāϝāĻŧāĻŋāĻ¤ā§āĻŦ? āϤāĻžāĻĻ⧇āϰ āĻāĻ•āχ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, āϗ⧇āϟāĻ“āϝāĻŧ⧇ āĻāĻŦāĻ‚ vshard.router.cfg āωāĻ­āϝāĻŧāχ āĻāĻ•āϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āĻļ⧁āϰ⧁ āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇ āĻāĻŦāĻ‚ āϤāĻžāĻĻ⧇āϰ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĻāĻŋāύāĨ¤

āύāĻ•āĻļāĻž āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇, āϤāĻŋāύāϟāĻŋ āωāĻĒāĻžāĻĻāĻžāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāĻž āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ• āĻ›āĻŋāϞ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāĻŋ, āĻāĻ•āϜāύ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀ āĻšāĻŋāϏāĻžāĻŦ⧇, āϕ⧋āĻĄāϟāĻŋ āϞ⧇āĻ–āĻžāϰ āϏāĻŽāϝāĻŧ, Tarnatool āĻāϰ āϤāĻŋāύāϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āĻ•āĻĨāĻž āĻ­āĻžāĻŦāϤ⧇ āϚāĻžāχ āύāĻžāĨ¤ āφāĻŽāĻžāϕ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āϚāĻžāϞāĻžāϤ⧇ āĻšāĻŦ⧇ āĻāĻŦāĻ‚ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āφāĻŽāĻŋ āϗ⧇āϟāĻ“āϝāĻŧ⧇ āϏāĻ āĻŋāĻ•āĻ­āĻžāĻŦ⧇ āϞāĻŋāϖ⧇āĻ›āĻŋāĨ¤ āĻ…āĻĨāĻŦāĻž āĻšāϝāĻŧāϤ⧋ āφāĻŽāĻŋ āφāĻŽāĻžāϰ āϏāĻšāĻ•āĻ°ā§āĻŽā§€āĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āĻāĻ•āϟāĻŋ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰāϤ⧇ āϚāĻžāχāĨ¤ āϕ⧇āύ āφāĻŽāĻŋ āϤāĻŋāύāϟāĻŋ āĻ•āĻĒāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇āϰ āĻāĻžāĻŽā§‡āϞāĻžāϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āϝ⧇āϤ⧇ āĻšāĻŦ⧇? āĻāĻ­āĻžāĻŦ⧇āχ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āϧāĻžāϰāĻŖāĻžāϰ āϜāĻ¨ā§āĻŽ āĻšāϝāĻŧāĨ¤ āĻāĻ•āϟāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻšāϞ āĻāĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϞ⧁āϝāĻŧāĻžāĻļ āĻŽāĻĄāĻŋāωāϞ āϝāĻžāϰ āĻœā§€āĻŦāύāϚāĻ•ā§āϰ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻĻā§āĻŦāĻžāϰāĻž āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāχ āωāĻĻāĻžāĻšāϰāϪ⧇ āϤāĻžāĻĻ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϚāĻžāϰāϟāĻŋ āϰāϝāĻŧ⧇āϛ⧇ - āϗ⧇āϟāĻ“āϝāĻŧ⧇, āϰāĻžāωāϟāĻžāϰ, āĻ¸ā§āĻŸā§‹āϰ⧇āϜ, āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰāĨ¤ āĻ…āĻ¨ā§āϝ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇ āφāϰāĻ“ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϏāĻŽāĻ¸ā§āϤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāĻ• āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āϚāĻžāϞāĻžāύ⧋ āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇, āĻāĻŦāĻ‚ āĻāϟāĻŋ āϝāĻĨ⧇āĻˇā§āϟ āĻšāĻŦ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āĻāĻŦāĻ‚ āϝāĻ–āύ āĻ¸ā§āĻŸā§‡āϜāĻŋāĻ‚ āĻŦāĻž āĻ‰ā§ŽāĻĒāĻžāĻĻāύ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āĻ•āĻĨāĻž āφāϏ⧇, āϤāĻ–āύ āφāĻŽāϰāĻž āĻšāĻžāĻ°ā§āĻĄāĻ“āϝāĻŧā§āϝāĻžāϰ āĻ•ā§āώāĻŽāϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϕ⧇ āϤāĻžāϰ āύāĻŋāϜāĻ¸ā§āĻŦ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāĻŦ:

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āϟāĻĒā§‹āϞāϜāĻŋ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āϕ⧋āĻĨāĻžāϝāĻŧ āϕ⧋āύ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āϚāϞāϛ⧇ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻĨā§āϝ āϕ⧋āĻĨāĻžāĻ“ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻŦāĻ‚ āĻāχ "āϕ⧋āĻĨāĻžāĻ“" āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ, āϝāĻž āφāĻŽāĻŋ āχāϤāĻŋāĻŽāĻ§ā§āϝ⧇ āωāĻĒāϰ⧇ āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧇āĻ›āĻŋāĨ¤ āĻāϟāĻŋāϰ āϏāĻŦāĻšā§‡āϝāĻŧ⧇ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώāϝāĻŧ āĻšāϞ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āϟāĻĒā§‹āϞāϜāĻŋāĨ¤ āĻāĻ–āĻžāύ⧇ 3āϟāĻŋ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ 5āϟāĻŋ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻ—ā§āϰ⧁āĻĒ āϰāϝāĻŧ⧇āϛ⧇:

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āφāĻŽāϰāĻž āĻĄā§‡āϟāĻž āĻšāĻžāϰāĻžāϤ⧇ āϚāĻžāχ āύāĻž, āϤāĻžāχ āφāĻŽāϰāĻž āϚāϞāĻŽāĻžāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻĨā§āϝ āϝāĻ¤ā§āύ āϏāĻšāĻ•āĻžāϰ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋāĨ¤ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻĻ⧁āχ-āĻĢ⧇āϜ āĻ•āĻŽāĻŋāϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āĻŸā§āĻ°ā§āϝāĻžāĻ• āϰāĻžāϖ⧇āĨ¤ āĻāĻ•āĻŦāĻžāϰ āφāĻŽāϰāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇ āϚāĻžāχ, āĻāϟāĻŋ āĻĒā§āϰāĻĨāĻŽā§‡ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āϏāĻŽāĻ¸ā§āϤ āĻĻ⧃āĻˇā§āϟāĻžāĻ¨ā§āϤ āωāĻĒāϞāĻŦā§āϧ āĻāĻŦāĻ‚ āύāϤ⧁āύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĨ¤ āĻāϰ āĻĒāϰ⧇, āĻĻā§āĻŦāĻŋāϤ⧀āϝāĻŧ āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāχāĻ­āĻžāĻŦ⧇, āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āĻāĻ•āϟāĻŋ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āϏāĻžāĻŽāϝāĻŧāĻŋāĻ•āĻ­āĻžāĻŦ⧇ āĻ…āύ⧁āĻĒāϞāĻŦā§āϧ āĻšāϤ⧇ āĻĻ⧇āĻ–āĻž āϝāĻžāϝāĻŧ, āĻ–āĻžāϰāĻžāĻĒ āĻ•āĻŋāϛ⧁āχ āϘāϟāĻŦ⧇ āύāĻžāĨ¤ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύāϟāĻŋ āϕ⧇āĻŦāϞ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāĻŦ⧇ āύāĻž āĻāĻŦāĻ‚ āφāĻĒāύāĻŋ āφāϗ⧇ āĻĨ⧇āϕ⧇āχ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻŦ⧇āύāĨ¤

āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“ āϟāĻĒā§‹āϞāϜāĻŋ āĻŦāĻŋāĻ­āĻžāϗ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻ—ā§‹āĻˇā§āĻ ā§€āϰ āύ⧇āϤāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ āϝ⧇āĻŽāύ āĻāĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āύāĻŋāĻ°ā§āĻĻ⧇āĻļāĻŋāϤ āĻšāϝāĻŧāĨ¤ āϏāĻžāϧāĻžāϰāĻŖāϤ āĻāχ āĻ•āĻĒāĻŋ āϰ⧇āĻ•āĻ°ā§āĻĄ āĻ•āϰāĻž āĻšāĻšā§āϛ⧇. āĻŦāĻžāĻ•āĻŋāϗ⧁āϞāĻŋ āĻĒā§āϰāĻžāϝāĻŧāĻļāχ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻĒāĻ āύāϝ⧋āĻ—ā§āϝ, āϝāĻĻāĻŋāĻ“ āĻŦā§āϝāϤāĻŋāĻ•ā§āϰāĻŽ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ•āĻ–āύāĻ“ āĻ•āĻ–āύāĻ“ āϏāĻžāĻšāϏ⧀ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāϰ⧀āϰāĻž āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ⧇āϰ āĻ­āϝāĻŧ āĻĒāĻžāύ āύāĻž āĻāĻŦāĻ‚ āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāĻ­āĻžāĻŦ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϤ⧇ āĻĄā§‡āϟāĻž āϞāĻŋāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āύ, āϤāĻŦ⧇ āĻ•āĻŋāϛ⧁ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āϰāϝāĻŧ⧇āϛ⧇ āϝāĻž āϝāĻžāχ āĻšā§‹āĻ• āύāĻž āϕ⧇āύ, āĻĻ⧁āĻŦāĻžāϰ āĻ•āϰāĻž āωāϚāĻŋāϤ āύāϝāĻŧāĨ¤ āĻ āϜāĻ¨ā§āϝ āύ⧇āϤāĻžāϰ āϚāĻŋāĻšā§āύ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āĻœā§€āĻŦāύ

āĻāχ āϧāϰāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻ¸ā§āĻĨāĻžāĻĒāĻ¤ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻŦāĻŋāĻŽā§‚āĻ°ā§āϤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻĨāĻžāĻ•āĻžāϰ āϜāĻ¨ā§āϝ, āĻ•āĻžāĻ āĻžāĻŽā§‹āϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āϏ⧇āϗ⧁āϞāĻŋāϕ⧇ āϕ⧋āύ⧋ āύāĻž āϕ⧋āύ⧋āĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•āĻ­āĻžāĻŦ⧇āχ, āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĒ⧁āύāϰāĻžāϝāĻŧ āφāϰāĻŽā§āĻ­ āύāĻž āĻ•āϰ⧇āχ āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āϘāĻŸā§‡āĨ¤ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ 4āϟāĻŋ āĻ•āϞāĻŦā§āϝāĻžāĻ• āϰāϝāĻŧ⧇āϛ⧇⧎ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āύāĻŋāĻœā§‡āχ āϤāĻžāĻĻ⧇āϰ āĻ•āϞ āĻ•āϰāĻŦ⧇ āϤāĻžāϰ āĻŦāĻŋāϤāϰāĻŖāĻ•ā§ƒāϤ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇ āϝāĻž āϞ⧇āĻ–āĻž āφāϛ⧇ āϤāĻžāϰ āωāĻĒāϰ āύāĻŋāĻ°ā§āĻ­āϰ āĻ•āϰ⧇, āϝāĻžāϰ āĻĢāϞ⧇ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϗ⧁āϞāĻŋāϤ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāĻŦ⧇āĨ¤

function init()
function validate_config()
function apply_config()
function stop()

āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ āφāϛ⧇ init. āĻāϟāĻŋ āĻāĻ•āĻŦāĻžāϰ āĻŦāϞāĻž āĻšāϝāĻŧ āϝāĻ–āύ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āϏāĻ•ā§āώāĻŽ āĻ•āϰāĻž āĻšāϝāĻŧ āĻŦāĻž āϝāĻ–āύ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒ⧁āύāϰāĻžāϝāĻŧ āϚāĻžāϞ⧁ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āϏ⧇āĻ–āĻžāύ⧇ āϏ⧁āĻŦāĻŋāϧāĻžāϜāύāĻ•, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, box.space.create āĻļ⧁āϰ⧁ āĻ•āϰāĻž, āĻ…āĻĨāĻŦāĻž āĻļāĻŋāĻĄāĻŋāωāϞāĻ•āĻžāϰ⧀ āĻ•āĻŋāϛ⧁ āĻŦā§āϝāĻžāĻ•āĻ—ā§āϰāĻžāωāĻ¨ā§āĻĄ āĻĢāĻžāχāĻŦāĻžāϰ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āϏāĻŽāϝāĻŧ⧇āϰ āĻŦā§āϝāĻŦāϧāĻžāύ⧇ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇āĨ¤

āĻāĻ•āϟāĻŋ āĻĢāĻžāĻ‚āĻļāύ init āϝāĻĨ⧇āĻˇā§āϟ āύāĻžāĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϗ⧁āϞāĻŋāϕ⧇ āĻŦāĻŋāϤāϰāĻŖ āĻ•āϰāĻž āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āϏ⧁āĻŦāĻŋāϧāĻž āύāĻŋāϤ⧇ āĻĻ⧇āϝāĻŧ āϝāĻž āĻāϟāĻŋ āϟāĻĒā§‹āϞāϜāĻŋ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āφāĻŽāϰāĻž āĻāĻ•āχ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻŦāĻŋāĻ­āĻžāĻ— āĻ˜ā§‹āώāĻŖāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋ āĻāĻŦāĻ‚ āĻāϤ⧇ āĻŦā§āϝāĻŦāϏāĻžāϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āĻāĻ•āϟāĻŋ āĻ…āĻ‚āĻļ āϏāĻ‚āϰāĻ•ā§āώāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āφāĻŽāĻžāϰ āωāĻĻāĻžāĻšāϰāϪ⧇, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻĄā§‡āϟāĻž āĻ¸ā§āĻ•āĻŋāĻŽāĻž āĻŦāĻž āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ⧇āϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āϜāĻ¨ā§āϝ āϏāĻŽāϝāĻŧāϏ⧂āĻšā§€ āϏ⧇āϟāĻŋāĻ‚āϏ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻ•āϞ validate_config и apply_config āĻĒā§āϰāϤāĻŋāĻŦāĻžāϰ āĻŦāĻŋāϤāϰāĻŖāĻ•ā§ƒāϤ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϝāĻŧāĨ¤ āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻāĻ•āϟāĻŋ āĻĻā§āĻŦāĻŋ-āĻĒāĻ°ā§āϝāĻžāϝāĻŧ⧇āϰ āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āĻĻā§āĻŦāĻžāϰāĻž āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāĻž āĻšāϝāĻŧ, āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāχ āύāϤ⧁āύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύāϟāĻŋ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ āĻāĻŦāĻ‚ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϕ⧇ āĻāĻ•āϟāĻŋ āĻ¤ā§āϰ⧁āϟāĻŋ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āĨ¤ āϝāĻ–āύ āϏāĻŦāĻžāχ āĻāĻ•āĻŽāϤ āϝ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻ¸ā§āĻŦāĻžāĻ­āĻžāĻŦāĻŋāĻ•, āϤāĻžāϰāĻĒāϰ apply_config.

āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰāĻ“ āĻāĻ•āϟāĻŋ āĻĒāĻĻā§āϧāϤāĻŋ āφāϛ⧇ stop, āϝāĻž āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϰ āφāωāϟāĻĒ⧁āϟ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϝāĻŧā§‹āϜāύāĨ¤ āϝāĻĻāĻŋ āφāĻŽāϰāĻž āĻŦāϞāĻŋ āϝ⧇ āĻāχ āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰ⧇āϰ āφāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχ, āϤāĻŦ⧇ āĻāϟāĻŋ āϏ⧇āχ āĻĢāĻžāχāĻŦāĻžāϰāϗ⧁āϞāĻŋāϕ⧇ āĻĨāĻžāĻŽāĻžāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻž āĻāϟāĻŋ āĻĻāĻŋāϝāĻŧ⧇ āĻļ⧁āϰ⧁ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ init.

āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϝ⧋āĻ—āĻžāϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āφāĻŽāϰāĻž Lua-āϤ⧇ āĻĢāĻžāĻ‚āĻļāύ āĻ•āϞ āϞāĻŋāĻ–āϤ⧇ āĻ…āĻ­ā§āϝāĻ¸ā§āϤ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻž āϘāϟāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āĻĒā§āϰāĻĻāĻ¤ā§āϤ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āύ⧇āχāĨ¤ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āϞ āĻ•āϰāĻžāϰ āϏ⧁āĻŦāĻŋāϧāĻžāĻ°ā§āĻĨ⧇, āφāĻŽāϰāĻž rpc (āϰāĻŋāĻŽā§‹āϟ āĻĒāĻĻā§āϧāϤāĻŋ āĻ•āϞ) āϏāĻšāĻžāϝāĻŧāĻ• āĻŽāĻĄāĻŋāωāϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŋ, āϝāĻž Tarantool-āĻ āύāĻŋāĻ°ā§āĻŽāĻŋāϤ āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āύ⧇āϟāĻŦāĻ•ā§āϏ⧇āϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋāϤ⧇ āϤ⧈āϰāĻŋāĨ¤ āĻāϟāĻŋ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āĻšāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻĻāĻŋ, āωāĻĻāĻžāĻšāϰāĻŖāĻ¸ā§āĻŦāϰ⧂āĻĒ, āφāĻĒāύāĻžāϰ āϗ⧇āϟāĻ“āϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āĻĻāĻŋāύ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āύāĻž āĻ•āϰ⧇ āϏāϰāĻžāϏāϰāĻŋ āĻļāĻŋāĻĄāĻŋāωāϞāĻžāϰāϕ⧇ āĻāĻ–āύāχ āĻ•āĻžāϜāϟāĻŋ āĻ•āϰāϤ⧇ āĻŦāϞāϤ⧇ āϚāĻžāϝāĻŧāĨ¤

āφāϰ⧇āĻ•āϟāĻŋ āϗ⧁āϰ⧁āĻ¤ā§āĻŦāĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻŋāώāϝāĻŧ āĻšāĻšā§āϛ⧇ āĻĻā§‹āώ āϏāĻšāύāĻļā§€āϞāϤāĻž āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰāĻžāĨ¤ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻ¸ā§āĻŦāĻžāĻ¸ā§āĻĨā§āϝ āύāĻŋāϰ⧀āĻ•ā§āώāϪ⧇āϰ āϜāĻ¨ā§āϝ SWIM āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ [4]. āϏāĻ‚āĻ•ā§āώ⧇āĻĒ⧇, āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ UDP-āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ "āϗ⧁āϜāĻŦ" āĻŦāĻŋāύāĻŋāĻŽāϝāĻŧ āĻ•āϰ⧇ - āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϤāĻžāϰ āĻĒā§āϰāϤāĻŋāĻŦ⧇āĻļā§€āĻĻ⧇āϰ āϏāĻ°ā§āĻŦāĻļ⧇āώ āĻ–āĻŦāϰ āϜāĻžāύāĻžāϝāĻŧ āĻāĻŦāĻ‚ āϤāĻžāϰāĻž āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϜāĻžāύāĻžāϝāĻŧāĨ¤ āĻšāĻ āĻžā§Ž āωāĻ¤ā§āϤāϰ āύāĻž āφāϏāϞ⧇, āϤāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āϏāĻ¨ā§āĻĻ⧇āĻš āĻ•āϰāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇ āϝ⧇ āĻ•āĻŋāϛ⧁ āϭ⧁āϞ āĻšāϝāĻŧ⧇āϛ⧇, āĻāĻŦāĻ‚ āĻ•āĻŋāϛ⧁āĻ•ā§āώāĻŖ āĻĒāϰ⧇ āĻāϟāĻŋ āĻŽā§ƒāĻ¤ā§āϝ⧁āϰ āφāĻŦ⧃āĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āφāĻļ⧇āĻĒāĻžāĻļ⧇āϰ āϏāĻŦāĻžāχāϕ⧇ āĻāχ āĻ–āĻŦāϰ āϜāĻžāύāĻžāϤ⧇ āĻļ⧁āϰ⧁ āĻ•āϰ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āĻāχ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇, āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāĻ•āϰāĻŖ āϏāĻ‚āĻ—āĻ āĻŋāϤ āĻ•āϰ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āϤāĻžāϰ āĻĒāϰāĻŋāĻŦ⧇āĻļ āύāĻŋāϰ⧀āĻ•ā§āώāĻŖ āĻ•āϰ⧇, āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āύ⧇āϤāĻž āĻšāĻ āĻžā§Ž āϏāĻžāĻĄāĻŧāĻž āĻĻ⧇āĻ“āϝāĻŧāĻž āĻŦāĻ¨ā§āϧ āĻ•āϰ⧇ āĻĻ⧇āϝāĻŧ, āĻĒā§āϰāϤāĻŋāϰ⧂āĻĒāϟāĻŋ āϤāĻžāϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āϏ⧇āχ āĻ…āύ⧁āϝāĻžāϝāĻŧā§€ āϚāϞāĻŽāĻžāύ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϗ⧁āϞāĻŋ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇āĨ¤

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āφāĻĒāύāĻžāϕ⧇ āĻāĻ–āĻžāύ⧇ āϏāϤāĻ°ā§āĻ•āϤāĻž āĻ…āĻŦāϞāĻŽā§āĻŦāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻ•āĻžāϰāĻŖ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϰ āϏāĻŽāϝāĻŧ āϘāύ āϘāύ āĻ¸ā§āϝ⧁āχāϚ āĻ•āϰāĻžāϰ āĻĢāϞ⧇ āĻĄā§‡āϟāĻž āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻ…āĻŦāĻļā§āϝāχ, āφāĻĒāύāĻžāϰ āĻāϞ⧋āĻŽā§‡āϞ⧋āĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻŦāϝāĻŧāĻ‚āĻ•ā§āϰāĻŋāϝāĻŧ āĻŦā§āϝāĻ°ā§āĻĨāϤāĻž āϏāĻ•ā§āώāĻŽ āĻ•āϰāĻž āωāϚāĻŋāϤ āύāϝāĻŧāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ…āĻŦāĻļā§āϝāχ āĻ¸ā§āĻĒāĻˇā§āϟāĻ­āĻžāĻŦ⧇ āĻŦ⧁āĻāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āϕ⧀ āϘāϟāϛ⧇ āĻāĻŦāĻ‚ āύāĻŋāĻļā§āϚāĻŋāϤ āĻšāϤ⧇ āĻšāĻŦ⧇ āϝ⧇ āύ⧇āϤāĻž āĻĒ⧁āύāϰ⧁āĻĻā§āϧāĻžāϰ āĻ•āϰāĻžāϰ āĻĒāϰ⧇ āĻāĻŦāĻ‚ āĻŽā§āϕ⧁āϟāϟāĻŋ āϤāĻžāϕ⧇ āĻĢāĻŋāϰāĻŋāϝāĻŧ⧇ āĻĻ⧇āĻ“āϝāĻŧāĻžāϰ āĻĒāϰ⧇ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋāϟāĻŋ āϭ⧇āϙ⧇ āϝāĻžāĻŦ⧇ āύāĻžāĨ¤

āĻāχ āϏāĻŽāĻ¸ā§āϤ āĻĨ⧇āϕ⧇, āφāĻĒāύāĻŋ āĻ…āύ⧁āĻ­āĻŦ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ āϝ⧇ āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϗ⧁āϞāĻŋ āĻŽāĻžāχāĻ•ā§āϰ⧋āϏāĻžāĻ°ā§āĻ­āĻŋāϏ⧇āϰ āĻ…āύ⧁āϰ⧂āĻĒāĨ¤ āĻāĻ• āĻ…āĻ°ā§āĻĨ⧇, āϤāĻžāϰāĻž āĻ āĻŋāĻ• āϏ⧇āχ, āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻŽāĻĄāĻŋāωāϞ āĻšāĻŋāϏāĻžāĻŦ⧇āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻŽā§ŒāϞāĻŋāĻ• āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝāĻ“ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻĒā§āϰāĻĨāĻŽāϤ, āϏāĻŽāĻ¸ā§āϤ āĻĒā§āϰāĻ•āĻ˛ā§āĻĒ⧇āϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻāĻ•āχ āϕ⧋āĻĄ āĻŦ⧇āϏ⧇ āĻĨāĻžāĻ•āϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāĻŦāĻ‚ āϏāĻŽāĻ¸ā§āϤ Tarantool āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻāĻ•āχ āϕ⧋āĻĄ āĻŦ⧇āϏ āĻĨ⧇āϕ⧇ āϚāĻžāϞ⧁ āĻ•āϰāĻž āωāϚāĻŋāϤ, āϝāĻžāϤ⧇ āφāĻŽāϰāĻž āϝāĻ–āύ āĻļāĻŋāĻĄāĻŋāϝāĻŧ⧁āϞāĻžāϰāϟāĻŋ āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰāĻŋ āϤāĻ–āύ āϕ⧋āύ āφāĻļā§āϚāĻ°ā§āϝ āύāĻž āĻšāϝāĻŧ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϟāĻŋ āϕ⧇āĻŦāϞ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āύāϝāĻŧāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āφāĻĒāύāĻžāϰ āϕ⧋āĻĄ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ⧇āϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ āύāϝāĻŧ, āĻ•āĻžāϰāĻŖ āĻāχ āϧāϰāύ⧇āϰ āĻĒāϰāĻŋāĻ¸ā§āĻĨāĻŋāϤāĻŋāϤ⧇ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽā§‡āϰ āφāϚāϰāĻŖ āĻ­āĻŦāĻŋāĻˇā§āϝāĻĻā§āĻŦāĻžāĻŖā§€ āĻ•āϰāĻž āĻāĻŦāĻ‚ āĻĄāĻŋāĻŦāĻžāĻ— āĻ•āϰāĻž āϖ⧁āĻŦ āĻ•āĻ āĻŋāύāĨ¤

āĻĄāĻ•āĻžāϰ⧇āϰ āĻŦāĻŋāĻĒāϰ⧀āϤ⧇, āφāĻŽāϰāĻž āϕ⧇āĻŦāϞ āĻāĻ•āϟāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž "āχāĻŽā§‡āϜ" āύāĻŋāϤ⧇ āĻĒāĻžāϰāĻŋ āύāĻž, āĻāϟāĻŋāϕ⧇ āĻ…āĻ¨ā§āϝ āĻŽā§‡āĻļāĻŋāύ⧇ āύāĻŋāϝāĻŧ⧇ āĻ—āĻŋāϝāĻŧ⧇ āϏ⧇āĻ–āĻžāύ⧇ āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āφāĻŽāĻžāĻĻ⧇āϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻĄāĻ•āĻžāϰ āĻ•āĻ¨ā§āĻŸā§‡āχāύāĻžāϰāϗ⧁āϞāĻŋāϰ āĻŽāϤ⧋ āĻŦāĻŋāĻšā§āĻ›āĻŋāĻ¨ā§āύ āύāϝāĻŧāĨ¤ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āφāĻŽāϰāĻž āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāϪ⧇ āĻĻ⧁āϟāĻŋ āĻ…āĻ­āĻŋāĻ¨ā§āύ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āϚāĻžāϞāĻžāϤ⧇ āĻĒāĻžāϰāĻŋ āύāĻžāĨ¤ āĻāĻ•āϟāĻŋ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻšāϝāĻŧ āĻŦāĻŋāĻĻā§āϝāĻŽāĻžāύ āĻŦāĻž āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻ…āĻ°ā§āĻĨ⧇ āύāϝāĻŧ, āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āϏāĻŋāĻ™ā§āĻ—āϞāϟāύāĨ¤ āĻāĻŦāĻ‚ āϤ⧃āϤ⧀āϝāĻŧāϤ, āĻ­ā§‚āĻŽāĻŋāĻ•āĻžāϗ⧁āϞāĻŋ āĻ…āĻŦāĻļā§āϝāχ āϏāĻŽāĻ—ā§āϰ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻ—ā§‹āĻˇā§āĻ ā§€āϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āχ āĻšāϤ⧇ āĻšāĻŦ⧇, āĻ•āĻžāϰāĻŖ āĻ…āĻ¨ā§āϝāĻĨāĻžāϝāĻŧ āĻāϟāĻŋ āĻ…āϝ⧌āĻ•ā§āϤāĻŋāĻ• āĻšāĻŦ⧇ - āĻĄā§‡āϟāĻž āĻāĻ•āχ, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻ­āĻŋāĻ¨ā§āύāĨ¤

āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϰ āϏāϰāĻžā§āϜāĻžāĻŽ

āφāĻŽāĻŋ āĻĻ⧇āĻ–āĻžāύ⧋āϰ āĻĒā§āϰāϤāĻŋāĻļā§āϰ⧁āϤāĻŋ āĻĻāĻŋāϝāĻŧ⧇āĻ›āĻŋāϞāĻžāĻŽ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻ¸ā§āĻĨāĻžāĻĒāύ⧇ āϏāĻžāĻšāĻžāĻ¯ā§āϝ āĻ•āϰ⧇āĨ¤ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āĻœā§€āĻŦāύ āϏāĻšāϜ āĻ•āϰāϤ⧇, āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒā§āϝāĻžāϕ⧇āϜ RPM āĻĒā§āϝāĻžāϕ⧇āϜ:

$ cartridge pack rpm myapp -- ҃ĐŋаĐē҃ĐĩŅ‚ Đ´ĐģŅ ĐŊĐ°Ņ ./myapp-0.1.0-1.rpm
$ sudo yum install ./myapp-0.1.0-1.rpm

āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻĒā§āϝāĻžāϕ⧇āϜāϟāĻŋāϤ⧇ āφāĻĒāύāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āĻĒā§āϰāĻžāϝāĻŧ āϏāĻŦāĻ•āĻŋāϛ⧁āχ āϰāϝāĻŧ⧇āϛ⧇: āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻāĻŦāĻ‚ āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āύāĻŋāĻ°ā§āĻ­āϰāϤāĻž āωāĻ­āϝāĻŧāχāĨ¤ RPM āĻĒā§āϝāĻžāϕ⧇āĻœā§‡āϰ āύāĻŋāĻ°ā§āĻ­āϰāϤāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ Tarantool āϏāĻžāĻ°ā§āĻ­āĻžāϰ⧇ āφāϏāĻŦ⧇ āĻāĻŦāĻ‚ āφāĻŽāĻžāĻĻ⧇āϰ āĻĒāϰāĻŋāώ⧇āĻŦāĻž āϚāĻžāϞ⧁ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤāĨ¤ āĻāϟāĻŋ systemd āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻŦ⧇ āĻĒā§āϰāĻĨāĻŽā§‡ āφāĻĒāύāĻžāϕ⧇ āĻāĻ•āϟ⧁ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āϞāĻŋāĻ–āϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ¨ā§āϝ⧂āύāϤāĻŽ, āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ URI āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰ⧁āύāĨ¤ āωāĻĻāĻžāĻšāϰāĻŖ āĻšāĻŋāϏ⧇āĻŦ⧇ āϤāĻŋāύāϟāĻŋāχ āϝāĻĨ⧇āĻˇā§āϟāĨ¤

$ sudo tee /etc/tarantool/conf.d/demo.yml <<CONFIG
myapp.router: {"advertise_uri": "localhost:3301", "http_port": 8080}
myapp.storage_A: {"advertise_uri": "localhost:3302", "http_enabled": False}
myapp.storage_B: {"advertise_uri": "localhost:3303", "http_enabled": False}
CONFIG

āĻāĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āφāĻ•āĻ°ā§āώāĻŖā§€āϝāĻŧ nuance āφāϛ⧇. āĻļ⧁āϧ⧁ āĻŦāĻžāχāύāĻžāϰāĻŋ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ āĻĒā§‹āĻ°ā§āϟ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰāĻžāϰ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤ⧇, āφāĻŽāϰāĻž āĻšā§‹āĻ¸ā§āϟāύāĻžāĻŽ āϏāĻš āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϟāĻŋāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻĒāĻžāĻŦāϞāĻŋāĻ• āĻ āĻŋāĻ•āĻžāύāĻž āωāĻ˛ā§āϞ⧇āĻ– āĻ•āϰāĻŋāĨ¤ āĻāϟāĻŋ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧ āϝāĻžāϤ⧇ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āύ⧋āĻĄāϗ⧁āϞāĻŋ āĻāϕ⧇ āĻ…āĻĒāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰāϤ⧇ āĻšāϝāĻŧ āϤāĻž āϜāĻžāύ⧇āĨ¤ advertise_uri āĻ āĻŋāĻ•āĻžāύāĻž āĻšāĻŋāϏāĻžāĻŦ⧇ 0.0.0.0 āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻāĻ•āϟāĻŋ āĻ–āĻžāϰāĻžāĻĒ āϧāĻžāϰāĻŖāĻž āĻāϟāĻŋ āĻāĻ•āϟāĻŋ āĻŦāĻšāĻŋāϰāĻžāĻ—āϤ āφāχāĻĒāĻŋ āĻ āĻŋāĻ•āĻžāύāĻž āĻšāĻ“āϝāĻŧāĻž āωāϚāĻŋāϤ, āϏāϕ⧇āϟ āĻŦāĻžāχāĻ¨ā§āĻĄ āύāϝāĻŧāĨ¤ āĻāϟāĻŋ āĻ›āĻžāĻĄāĻŧāĻž, āĻ•āĻŋāϛ⧁āχ āĻ•āĻžāϜ āĻ•āϰāĻŦ⧇ āύāĻž, āϤāĻžāχ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āφāĻĒāύāĻžāϕ⧇ āϭ⧁āϞ advertise_uri āĻĻāĻŋāϝāĻŧ⧇ āĻāĻ•āϟāĻŋ āύ⧋āĻĄ āϚāĻžāϞ⧁ āĻ•āϰāϤ⧇ āĻĻ⧇āĻŦ⧇ āύāĻžāĨ¤

āĻāĻ–āύ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĒā§āϰāĻ¸ā§āϤ⧁āϤ, āφāĻĒāύāĻŋ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύāĨ¤ āϝ⧇āĻšā§‡āϤ⧁ āĻāĻ•āϟāĻŋ āύāĻŋāϝāĻŧāĻŽāĻŋāϤ āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽāĻĄ āχāωāύāĻŋāϟ āĻāĻ•āĻžāϧāĻŋāĻ• āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻļ⧁āϰ⧁ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ āύāĻž, āĻ•āĻžāĻ°ā§āϟāĻŋāĻœā§‡ āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύāϗ⧁āϞāĻŋ āϤāĻĨāĻžāĻ•āĻĨāĻŋāϤ āĻĻā§āĻŦāĻžāϰāĻž āχāύāĻ¸ā§āϟāϞ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āϤāĻžāĻ¤ā§āĻ•ā§āώāĻŖāĻŋāĻ• āχāωāύāĻŋāϟ āϝāĻž āĻāχ āĻŽāϤ āĻ•āĻžāϜ āĻ•āϰ⧇:

$ sudo systemctl start myapp@router
$ sudo systemctl start myapp@storage_A
$ sudo systemctl start myapp@storage_B

āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇, āφāĻŽāϰāĻž HTTP āĻĒā§‹āĻ°ā§āϟ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āϰ⧇āĻ›āĻŋ āϝ⧇āĻ–āĻžāύ⧇ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ āĻ“āϝāĻŧ⧇āĻŦ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ āĻĒāϰāĻŋāĻŦ⧇āĻļāύ āĻ•āϰ⧇ - 8080āĨ¤ āφāϏ⧁āύ āĻāϟāĻŋāϤ⧇ āϝāĻžāύ āĻāĻŦāĻ‚ āĻāĻ•āĻŦāĻžāϰ āĻĻ⧇āϖ⧇ āύ⧇āĻ“āϝāĻŧāĻž āϝāĻžāĻ•:

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āφāĻŽāϰāĻž āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāĻšā§āĻ›āĻŋ āϝ⧇ āϝāĻĻāĻŋāĻ“ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϗ⧁āϞāĻŋ āϚāϞāϛ⧇, āϏ⧇āϗ⧁āϞāĻŋ āĻāĻ–āύāĻ“ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāύāĻŋāĨ¤ āĻ•āĻžāĻ°ā§āϤ⧁āϜ āĻāĻ–āύāĻ“ āϜāĻžāύ⧇ āύāĻž āϕ⧇ āĻ•āĻžāϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāϤāĻŋāϞāĻŋāĻĒāĻŋ āĻ•āϰāĻž āωāϚāĻŋāϤ āĻāĻŦāĻ‚ āύāĻŋāĻœā§‡ āĻĨ⧇āϕ⧇ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ āύāĻŋāϤ⧇ āĻĒāĻžāϰ⧇ āύāĻž, āϤāĻžāχ āĻāϟāĻŋ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻ°ā§āĻŽā§‡āϰ āϜāĻ¨ā§āϝ āĻ…āĻĒ⧇āĻ•ā§āώāĻž āĻ•āϰāϛ⧇āĨ¤ āϤāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻ•āĻžāϛ⧇ āϖ⧁āĻŦ āĻŦ⧇āĻļāĻŋ āĻĒāĻ›āĻ¨ā§āĻĻ āύ⧇āχ: āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇āϰ āĻœā§€āĻŦāύ āĻĒā§āϰāĻĨāĻŽ āύ⧋āĻĄā§‡āϰ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ⧇āϰ āϏāĻžāĻĨ⧇ āĻļ⧁āϰ⧁ āĻšāϝāĻŧāĨ¤ āϤāĻžāϰāĻĒāϰ⧇ āφāĻŽāϰāĻž āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ⧇ āĻ…āĻ¨ā§āϝāĻĻ⧇āϰ āϝ⧋āĻ— āĻ•āϰāĻŦ, āϤāĻžāĻĻ⧇āϰ āĻ­ā§‚āĻŽāĻŋāĻ•āĻž āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻŦ āĻāĻŦāĻ‚ āĻāχ āϏāĻŽāϝāĻŧ⧇ āĻ¸ā§āĻĨāĻžāĻĒāύāĻžāϟāĻŋāϕ⧇ āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻŦāϞ⧇ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϚāϞ⧁āύ āφāĻĒāύāĻžāϰ āĻĒā§āϰāĻŋāϝāĻŧ āĻĒāĻžāύ⧀āϝāĻŧ āĻāĻ• āĻ—ā§āϞāĻžāϏ āĻĸāĻžāϞāĻž āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ āĻĻā§€āĻ°ā§āϘ āĻ•āĻ°ā§āĻŽ āϏāĻĒā§āϤāĻžāĻš āĻĒāϰ⧇ āĻŦāĻŋāĻļā§āϰāĻžāĻŽ. āĻ…ā§āϝāĻžāĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇.

āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ āĻ•āĻžāĻ°ā§āϟāĻŋāϜ: āϤāĻŋāύ āϞāĻžāχāύ⧇ āϞ⧁āϝāĻŧāĻž āĻŦā§āϝāĻžāĻ•āĻāĻ¨ā§āĻĄ āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ‚

āĻĢāϞāĻžāĻĢāϞ

āĻĢāϞāĻžāĻĢāϞ āĻ•āĻŋ? āĻāϟāĻŋ āĻšā§‡āĻˇā§āϟāĻž āĻ•āϰ⧁āύ, āĻāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧁āύ, āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĻāĻŋāύ, Github āĻ āϟāĻŋāĻ•āĻŋāϟ āϤ⧈āϰāĻŋ āĻ•āϰ⧁āύāĨ¤

āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ

[1] Tarantool Âģ 2.2 Âģ āϰ⧇āĻĢāĻžāϰ⧇āĻ¨ā§āϏ Âģ Rocks reference Âģ Module vshard

[2] āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āφāĻŽāϰāĻž Tarantool-āĻāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āφāϞāĻĢāĻž-āĻŦā§āϝāĻžāĻ™ā§āϕ⧇āϰ āĻŦāĻŋāύāĻŋāϝāĻŧā§‹āĻ— āĻŦā§āϝāĻŦāϏāĻžāϰ āĻŽā§‚āϞ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰ⧇āĻ›āĻŋ [3] āύāϤ⧁āύ āĻĒā§āϰāϜāĻ¨ā§āĻŽā§‡āϰ āĻŦāĻŋāϞāĻŋāĻ‚ āφāĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āϚāĻžāϰ: āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ⧇āϰ āϏāĻžāĻĨ⧇ āϰ⧂āĻĒāĻžāĻ¨ā§āϤāϰ [4] SWIM - āĻ•ā§āϞāĻžāĻ¸ā§āϟāĻžāϰ āĻŦāĻŋāĻ˛ā§āĻĄāĻŋāĻ‚ āĻĒā§āϰ⧋āĻŸā§‹āĻ•āϞ [5] āĻ—āĻŋāϟāĻšāĻžāĻŦ - āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ/āĻ•āĻžāĻ°ā§āϟāĻŋāϜ-āĻ•ā§āϞāĻŋ [6] āĻ—āĻŋāϟāĻšāĻžāĻŦ - āĻŸā§āϝāĻžāϰāĻžāĻ¨ā§āϟ⧁āϞ/āĻ•āĻžāϰāϟāĻŋāϜ

āωāĻ¤ā§āϏ: www.habr.com

āĻāĻ•āϟāĻŋ āĻŽāĻ¨ā§āϤāĻŦā§āϝ āϜ⧁āĻĄāĻŧ⧁āύ