āĻĒāĻžāĻāĻ āĻŦāĻāĻ° āĻāĻā§ āĻāĻŽāĻŋ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻāĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋ āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°ā§āĻ¨āĻŋāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻāĻ¯āĻŧā§āĻŦāĻŋāĻ¨āĻžāĻ° āĻ āĻ¨ā§āĻˇā§āĻ āĻŋāĻ¤ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ Hadoop āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ MapReduce āĻāĻžāĻ āĻāĻ°ā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻĨāĻž āĻŦāĻ˛ā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¤āĻžāĻ°āĻž āĻāĻŽāĻžāĻā§ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻ°ā§āĻāĻŋāĻ˛: "āĻā§āĻ¨ āĻāĻ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž?"
āĻā§āĻ¤ā§āĻšāĻ˛ āĻĨā§āĻā§, āĻāĻŽāĻŋ āĻāĻāĻŋāĻ¤ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ¸āĻ°ā§āĻŦāĻļā§āĻˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻāĻŋ - āĻāĻŦāĻ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻŽāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°ā§āĻāĻŋāĨ¤ āĻāĻāĻ¨ āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻĻā§āĻāĻžāĻŦ āĻāĻŋāĻāĻžāĻŦā§ Tarantool āĻ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻ˛ā§āĻĄ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻ¤ āĻ¸āĻšāĻ āĻāĻŦāĻ āĻļā§āĻ¤āĻ˛āĨ¤
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻāĻŋ
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻ¨āĻŋāĻā§āĻā§ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋ-āĻĻā§āĻ°ā§āĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻā§āĻ¨ āĻ¤āĻĨā§āĻ¯ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ°āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ, āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§āĻ¨, āĻļāĻžāĻ°ā§āĻĄ - āĻ āĻ°ā§āĻĨāĻžā§, āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻĄāĻŧā§ āĻŦāĻŋāĻĒā§āĻ˛ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻž āĻŦāĻŋāĻāĻā§āĻ¤ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻĨā§āĻā§ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻ¨ - āĻ¤ā§āĻ°ā§āĻāĻŋ-āĻ¸āĻšāĻ¨āĻļā§āĻ˛ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°-āĻŽāĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸āĻāĻ¯ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨āĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻ¤, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻĄā§āĻāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ āĻ¨ā§āĻ¸āĻžāĻ°ā§ āĻĒāĻāĻā§āĻŽāĻŋāĻ¤ā§ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻ°ā§āĻāĻ°ā§āĻĄāĻā§āĻ˛āĻŋ āĻŽā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻžāĻ¯āĻŧ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻāĻāĻāĻŋ Http āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯āĻž āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻŦā§: āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĻāĻŋāĻ¨, āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨āĻ¤ā§āĻ¨ āĻĄā§āĻāĻž āĻ˛āĻŋāĻā§āĻ¨ āĻāĻŦāĻ āĻŽāĻžāĻ¸ā§āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻāĻŋ āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¨āĨ¤
āĻā§āĻ˛ā§āĻ°āĻž āĻā§āĻāĻžāĻŦā§ 300 āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸āĻžāĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻā§ āĻ¸ā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŽāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ āĻĒāĻĄāĻŧā§āĻāĻŋ, āĻ¯āĻž āĻā§āĻŦāĻ˛ āĻĢā§āĻā§ āĻ¯āĻžāĻā§āĻā§ āĻāĻŦāĻ āĻ¤āĻžāĻĄāĻŧāĻžāĻšā§āĻĄāĻŧā§ āĻāĻ°āĻā§ - āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ 20 āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻ¸āĻ°ā§āĻŦāĻ¨āĻŋāĻŽā§āĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻā§āĻˇāĻŽāĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻ āĻā§āĻ°ā§ āĻāĻ¸āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻŦāĻĄāĻŧ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āĻ¸ā§āĻāĻā§āĻ°ā§āĻ¸ā§āĻ° āĻŽāĻ¤ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻāĻŽāĻŋ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§ āĻāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻŽāĻ¤ āĻāĻŋāĻā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŦ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻšāĻāĨ¤
āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻŋ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ āĻŽā§āĻļāĻŋāĻ¨ āĻļā§āĻ°ā§ āĻāĻ°ā§āĻāĻŋ - āĻāĻāĻāĻŋ 20 āĻāĻŋāĻŦāĻŋ āĻšāĻžāĻ°ā§āĻĄ āĻĄā§āĻ°āĻžāĻāĻ, āĻāĻŦā§āĻ¨ā§āĻā§ 18.04āĨ¤ 2 āĻāĻžāĻ°ā§āĻā§āĻ¯āĻŧāĻžāĻ˛ CPU āĻāĻŦāĻ 4 āĻāĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĨ¤
āĻāĻŽāĻ°āĻž Tarantool āĻāĻ¨ā§āĻ¸āĻāĻ˛ āĻāĻ°āĻŋ - āĻŦā§āĻ¯āĻžāĻļ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ āĻŦāĻž āĻāĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻāĻŋāĻāĻ°āĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ Tarantool āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§āĻ° āĻ˛āĻŋāĻā§āĻ - (curl -L
tarantoolctl â āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻž āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄāĨ¤
/etc/tarantool - āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨āĨ¤
var/log/tarantool - āĻāĻāĻžāĻ¨ā§ āĻ˛āĻ āĻāĻā§.
var/lib/tarantool â āĻĄā§āĻāĻž āĻāĻāĻžāĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋ āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ā§ āĻŦāĻŋāĻāĻā§āĻ¤āĨ¤
āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸-āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸-āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĢā§āĻ˛ā§āĻĄāĻžāĻ° āĻ°āĻ¯āĻŧā§āĻā§ - āĻāĻ¤ā§ āĻā§ āĻ˛āĻā§āĻ āĻāĻ°āĻž āĻšāĻŦā§ - āĻ˛ā§āĻ¯āĻŧāĻž āĻā§āĻĄ āĻ¸āĻš āĻāĻāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛, āĻ¯āĻž āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻŋ āĻā§āĻ¨ āĻĒā§āĻ°ā§āĻā§ āĻļā§āĻ¨ā§, āĻāĻ¤ā§ āĻā§āĻ¨ āĻŽā§āĻŽāĻ°āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻāĻŋāĻ¨āĻžāĻāĻ˛ āĻāĻā§āĻāĻŋāĻ¨ āĻ¸ā§āĻāĻŋāĻāĻ¸, āĻā§āĻĄ āĻ¯āĻž āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻāĻĒā§ āĻāĻ˛ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, āĻļāĻžāĻ°ā§āĻĄāĻŋāĻ, āĻ¸āĻžāĻ°āĻŋ, āĻ āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻĄā§āĻāĻž āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻāĻŦāĻ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ āĻāĻŋāĻā§āĨ¤
āĻāĻĻāĻžāĻšāĻ°āĻŖ PostgreS āĻāĻ° āĻŽāĻ¤ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻĒāĻŋ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻāĻžāĻ¨ āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§ āĻšā§āĻ¯āĻžāĻ āĻšāĻ¯āĻŧāĨ¤ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻ¯ā§ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻĒā§āĻ°ā§āĻā§ āĻā§āĻ˛ā§ āĻāĻā§āĨ¤ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻāĻŋāĻāĻ¸ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ - āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻāĻāĻŋ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ - āĻ āĻ¨ā§āĻ¯āĻāĻŋāĨ¤
āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ tarantoolctl āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻž āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, tarantoolctl check example āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻŦāĻ˛āĻŦā§ - āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻ āĻŋāĻ āĻāĻā§ āĻ¯āĻĻāĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻā§āĻ¨ āĻ¸āĻŋāĻ¨āĻā§āĻ¯āĻžāĻā§āĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ - tarantoolctl āĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖāĨ¤ āĻāĻāĻāĻāĻžāĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻāĻžāĻ°ā§āĻ, āĻ¸ā§āĻāĻĒ, āĻ°āĻŋāĻ¸ā§āĻāĻžāĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻŦāĻžāĻ° āĻāĻ¨ā§āĻ¸āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻāĻžāĻ˛ā§ āĻšāĻ˛ā§, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
1. āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨āĻŋāĻ āĻāĻ¨āĻ¸ā§āĻ˛
āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, Tarantool āĻāĻāĻāĻŋ āĻ¸āĻā§āĻ āĻā§āĻ˛ā§, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ ASCII āĻĒāĻžāĻ ā§āĻ¯ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ Tarantool āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻ¨āĻ¸ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻā§, āĻā§āĻ¨ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¨ā§āĻ, āĻ¤āĻžāĻ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻāĻ¨āĻ¸ā§āĻ˛ āĻĒā§āĻ°ā§āĻāĻā§ āĻŦāĻžāĻšā§āĻ¯āĻŋāĻ āĻāĻ°āĻžāĻ° āĻĻāĻ°āĻāĻžāĻ° āĻ¨ā§āĻāĨ¤
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ Tarantoolctl āĻāĻ¨ā§āĻāĻžāĻ° āĻāĻ¨āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ¨āĻžāĻŽ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻ¨āĻ¸ā§āĻ˛ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻĄāĻŽāĻŋāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻāĻ¨āĻ āĻāĻ¨āĻ¸ā§āĻ˛ āĻĒā§āĻ°ā§āĻāĻāĻŋāĻā§ āĻŦāĻžāĻāĻ°ā§āĻ° āĻĻāĻŋāĻā§ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž - āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻāĻ¨āĻŋāĻ āĻ¸āĻā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻĄāĻŧā§ āĻĻā§āĻāĻ¯āĻŧāĻž āĻāĻžāĻ˛āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻžāĻĻā§āĻ° āĻ¸āĻā§āĻā§ āĻ˛ā§āĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§ āĻ¤āĻžāĻ°āĻžāĻ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĨ¤
āĻāĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ¨āĻŋāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻĄā§āĻāĻž āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻžāĻ āĻāĻ°āĻ¤ā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨ - āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛āĨ¤
2. āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ āĻāĻāĻāĻŋ āĻļā§āĻ¨āĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻāĻž āĻ°āĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻ¯ā§āĻāĻžāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻ āĻā§āĻ˛ā§āĨ¤ āĻāĻ āĻĒā§āĻ°ā§āĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻ āĻ¸āĻāĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻĒā§āĻ°ā§āĻ āĻ¨āĻŽā§āĻŦāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ tarantoolctl āĻ¸āĻāĻ¯ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻĄā§āĻāĻž āĻ°ā§āĻāĻ°ā§āĻĄāĻŋāĻ āĻāĻŦāĻ āĻŦāĻā§āĻ¸ āĻŽāĻĄāĻŋāĻāĻ˛
āĻ¯ā§āĻšā§āĻ¤ā§ Tarantool āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻāĻ¯āĻŧāĻ, āĻāĻ¤ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻŽāĻ°āĻž āĻŦāĻā§āĻ¸ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻāĻā§āĻ°āĻšā§ - āĻāĻāĻŋ āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻŦāĻžāĻā§āĻ¸ā§ āĻāĻŋāĻā§ āĻ˛ā§āĻā§āĻ¨, āĻ¤āĻāĻ¨ Tarantool āĻĄāĻžāĻāĻž āĻĄāĻŋāĻ¸ā§āĻā§ āĻ˛āĻŋāĻā§, āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§ āĻŦāĻž āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻ°ā§āĨ¤
āĻ¨āĻĨāĻŋ
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻ°āĻž āĻŦāĻā§āĻ¸ āĻŽāĻĄāĻŋāĻāĻ˛ā§ āĻ¯āĻžāĻ āĻāĻŦāĻ box.once āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻ˛ āĻāĻ°āĻŋāĨ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛ā§ āĻšāĻ˛ā§ āĻāĻāĻŋ Tarantool āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻĄ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻāĻ°āĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
local function bootstrap()
local space = box.schema.create_space('example')
space:create_index('primary')
box.schema.user.grant('guest', 'read,write,execute', 'universe')
-- Keep things safe by default
-- box.schema.user.create('example', { password = 'secret' })
-- box.schema.user.grant('example', 'replication')
-- box.schema.user.grant('example', 'read,write,execute', 'space', 'example')
end
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ - āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ - āĻ¯āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŽāĻ°āĻž āĻĄā§āĻāĻž āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻĄāĻŋāĻĢāĻ˛ā§āĻāĻ°ā§āĻĒā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻ¨ā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¨āĻž āĻāĻ°āĻ˛ā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ āĻ¤āĻŋāĻĨāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻĻāĻžāĻ¨ āĻĻāĻŋāĻ, āĻ¯āĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻāĻŽāĻ°āĻž āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻŋāĨ¤ āĻāĻŽāĻ°āĻž āĻĒā§āĻ°ā§ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻā§āĻĄāĻŧā§ āĻĒāĻĄāĻŧāĻž, āĻ˛ā§āĻāĻž āĻāĻŦāĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻāĨ¤
āĻĒā§āĻ°āĻāĻ˛āĻŋāĻ¤ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ, āĻāĻāĻžāĻ¨ā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦā§āĻļ āĻ¸āĻšāĻāĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻā§ - āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻāĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄā§āĻāĻž āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ°ā§āĻāĻ°ā§āĻĄāĻā§ āĻāĻāĻāĻŋ āĻāĻŋāĻĒāĻ˛ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŽā§āĻ¸ā§āĻāĻĒā§āĻ¯āĻžāĻā§ āĻĒā§āĻ¯āĻžāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻĻāĻžāĻ¨ā§āĻ¤ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ - āĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŽ āĻāĻžāĻ¯āĻŧāĻāĻž āĻ¨ā§āĻ¯āĻŧ - 18 āĻŦāĻžāĻāĻ āĻŦāĻ¨āĻžāĻŽ 27āĨ¤
āĻ¤āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻž āĻŦā§āĻļ āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻāĨ¤ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ˛āĻžāĻāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĄā§āĻāĻž āĻ°ā§āĻāĻ°ā§āĻĄā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻ˛āĻžāĻŽ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž Box.space āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻĒā§āĻ¸ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§, box.space āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ˛āĻŋāĻā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ¨āĨ¤
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ā§ āĻĻā§āĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤ āĻāĻā§āĻāĻŋāĻ¨ āĻ°āĻ¯āĻŧā§āĻā§: āĻŽā§āĻŽāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŋāĻ¨āĻžāĻāĻ˛āĨ¤ āĻŽā§āĻŽāĻ°āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĄā§āĻāĻž āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĨ¤ āĻ āĻ¤āĻāĻŦ, āĻ¸āĻŦāĻāĻŋāĻā§ āĻ¸āĻšāĻāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻ¤ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻĄā§āĻāĻž āĻĄāĻŋāĻ¸ā§āĻā§ āĻĄāĻžāĻŽā§āĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ˛ā§āĻāĻžāĻ° āĻāĻāĻžāĻŽ āĻ˛āĻ āĻŽā§āĻāĻžāĻ¨āĻŋāĻāĻŽāĻ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻā§āĻ°ā§āĻ¯āĻžāĻļ āĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻŋāĻā§āĻ āĻšāĻžāĻ°āĻžāĻŦā§ āĻ¨āĻžāĨ¤
āĻāĻŋāĻ¨āĻžāĻāĻ˛ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻāĻ°āĻ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻĢāĻ°ā§āĻŽā§ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°ā§ - āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻŽā§āĻŽāĻ°āĻŋāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻĄā§āĻāĻž āĻ¸āĻā§āĻāĻ¯āĻŧ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻž āĻāĻāĻŋ āĻĄāĻŋāĻ¸ā§āĻ āĻĨā§āĻā§ āĻĒāĻĄāĻŧāĻŦā§āĨ¤
āĻāĻĒāĻžāĻ¤āĻ¤ āĻāĻŽāĻ°āĻž āĻŽā§āĻŽāĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
unix/:/var/run/tarantool/example.control> box.space.example
---
- engine: memtx
before_replace: 'function: 0x41eb02c8'
on_replace: 'function: 0x41eb0568'
ck_constraint: []
field_count: 0
temporary: false
index:
0: &0
unique: true
parts:
- type: unsigned
is_nullable: false
fieldno: 1
id: 0
space_id: 512
type: TREE
name: primary
primary: *0
is_local: false
enabled: true
name: example
id: 512
...
unix/:/var/run/tarantool/example.control>
āĻ¸ā§āĻāĻ:
āĻ¯ā§āĻā§āĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ āĻāĻžāĻĄāĻŧāĻž āĻāĻŋāĻā§āĻ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¨āĻžāĨ¤ āĻ¯ā§āĻā§āĻ¨ā§ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻŽāĻ¤ā§, āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ - āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻāĻĄāĻŋāĨ¤
āĻāĻ°ā§āĻā§āĻ¨ā§āĻāĻŋāĻ¨āĻž:
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻāĻ āĻā§ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ āĻāĻļ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤ - āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋ āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨ āĻāĻžāĻāĻĒā§āĻ° - āĻāĻāĻāĻŋ āĻ§āĻ¨āĻžāĻ¤ā§āĻŽāĻ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĨ¤ āĻ¯āĻ¤āĻĻā§āĻ° āĻāĻŽāĻŋ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĨā§āĻā§ āĻŽāĻ¨ā§ āĻāĻ°āĻŋ, āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§ 18 āĻā§āĻāĻ¨ā§āĻāĻŋāĻ˛āĻŋāĻ¯āĻŧāĻ¨āĨ¤ āĻāĻāĻžāĻ āĻ āĻ¨ā§āĻ.
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž insert āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
unix/:/var/run/tarantool/example.control> box.space.example:insert{1, 'test1', 'test2'}
---
- [1, 'test1', 'test2']
...
unix/:/var/run/tarantool/example.control> box.space.example:insert{2, 'test2', 'test3', 'test4'}
---
- [2, 'test2', 'test3', 'test4']
...
unix/:/var/run/tarantool/example.control> box.space.example:insert{3, 'test3'}
---
- [3, 'test3']
...
unix/:/var/run/tarantool/example.control> box.space.example:insert{4, 'test4'}
---
- [4, 'test4']
...
unix/:/var/run/tarantool/example.control>
āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻˇā§āĻ¤ā§āĻ°āĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ āĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻ˛āĻžāĻŽā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻ¨āĻ, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¯āĻ¤āĻāĻž āĻāĻžāĻ āĻ¤āĻ¤ āĻĄā§āĻāĻž āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻŽā§āĻ¸ā§āĻāĻĒā§āĻ¯āĻžāĻ āĻĢāĻ°ā§āĻŽā§āĻ¯āĻžāĻā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻž āĻāĻŽāĻŋ āĻāĻĒāĻ°ā§ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§āĻāĻŋāĨ¤
āĻĄā§āĻāĻž āĻāĻāĻāĻĒā§āĻ
āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄā§āĻāĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋāĨ¤
{1} āĻā§ āĻĻāĻŋāĻ¯āĻŧā§ Box.example.select āĻāĻžāĻā§āĻāĻŋāĻ¤ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻāĻžāĻŦāĻŋāĻāĻŋ āĻāĻŽ āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻĨāĻžāĻāĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ°ā§āĻāĻ°ā§āĻĄ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦāĨ¤ āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻ˛āĻžāĻŽā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻĒā§āĻĨāĻ, āĻ¤āĻŦā§ āĻāĻāĻžāĻ¨ā§, āĻ¨ā§āĻ¤āĻŋāĻāĻ¤āĻāĻžāĻŦā§, āĻāĻ˛āĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻā§āĻ¨āĻ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨ā§āĻ - āĻā§āĻˇā§āĻ¤ā§āĻ° āĻ¨āĻŽā§āĻŦāĻ° āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻā§āĻŦāĻžāĻ°ā§ āĻ¯ā§ āĻā§āĻ¨ā§ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻĄā§āĻāĻž āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻŦāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ¤ā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤āĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŽāĻžāĻ§ā§āĻ¯āĻŽāĻŋāĻ āĻ¸ā§āĻāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤
box.space.example:create_index( âsecondaryâ, { type = âTREEâ, unique = false, parts = {{field = 2, type =âstringâ} }})
āĻāĻŽāĻ°āĻž Create_index āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŋāĨ¤
āĻāĻā§ āĻ¸ā§āĻā§āĻ¨ā§āĻĄāĻžāĻ°āĻŋ āĻŦāĻ˛āĻŋāĨ¤
āĻāĻ° āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¸ā§āĻāĻā§āĻ° āĻ§āĻ°āĻ¨ āĻšāĻ˛ TREEāĨ¤ āĻāĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻ¯ āĻ¨āĻžāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻ āĻ āĻ¨āĻ¨ā§āĻ¯ = āĻŽāĻŋāĻĨā§āĻ¯āĻž āĻ˛āĻŋāĻā§āĻ¨āĨ¤
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŋ āĻāĻŽāĻžāĻĻā§āĻ° āĻ¸ā§āĻāĻ āĻā§āĻ¨ āĻ āĻāĻļ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤āĨ¤ āĻĢāĻŋāĻ˛ā§āĻĄ āĻšāĻ˛ āĻ¸ā§āĻ āĻĢāĻŋāĻ˛ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻ¨āĻĄā§āĻā§āĻ¸ āĻŦāĻžāĻāĻ§āĻžāĻ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻžāĻāĻĒ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻŋāĨ¤ āĻāĻŦāĻ āĻ¤āĻžāĻ āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
unix/:/var/run/tarantool/example.control> box.space.example:create_index('secondary', { type = 'TREE', unique = false, parts = {{field = 2, type = 'string'}}})
---
- unique: false
parts:
- type: string
is_nullable: false
fieldno: 2
id: 1
space_id: 512
type: TREE
name: secondary
...
unix/:/var/run/tarantool/example.control>
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ:
unix/:/var/run/tarantool/example.control> box.space.example.index.secondary:select('test1')
---
- - [1, 'test1', 'test2']
...
āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ
āĻ¯āĻĻāĻŋ āĻāĻŽāĻ°āĻž āĻĻā§āĻˇā§āĻāĻžāĻ¨ā§āĻ¤āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻŦāĻžāĻ° āĻĄā§āĻāĻž āĻāĻ˛ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ, āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦ āĻ¯ā§ āĻāĻāĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨ā§āĻ - āĻ¸āĻŦāĻāĻŋāĻā§ āĻāĻžāĻ˛āĻŋāĨ¤ āĻāĻāĻŋ āĻāĻā§ āĻāĻžāĻ°āĻŖ āĻāĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§ āĻāĻŦāĻ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¯āĻĻāĻŋ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻ°āĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻāĻžāĻ āĻāĻ°āĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻŋ āĻ¤āĻŦā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ˛āĻžāĻĒ āĻšāĻžāĻ°āĻžāĻŦā§ - āĻāĻžāĻ°āĻŖ āĻāĻŽāĻ°āĻž āĻļā§āĻˇ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻŦ, āĻ¯ā§āĻāĻŋ āĻāĻŋāĻ˛, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻĻā§āĻ āĻāĻ¨ā§āĻāĻž āĻāĻā§āĨ¤
āĻāĻāĻŋ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§āĻ āĻāĻžāĻ āĻāĻ°āĻŦā§ āĻ¨āĻž, āĻāĻžāĻ°āĻŖ āĻā§āĻ°āĻŽāĻžāĻāĻ¤ 20 āĻāĻŋāĻŦāĻŋ āĻĄāĻŋāĻ¸ā§āĻā§ āĻĄāĻžāĻŽā§āĻĒ āĻāĻ°āĻž āĻāĻžāĻ˛ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨āĻ¯āĻŧāĨ¤
āĻāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§, āĻ˛ā§āĻāĻž-āĻāĻāĻžāĻŽā§ āĻ˛āĻā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻāĻĻā§āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻŦāĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤ āĻāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ā§, āĻĄā§āĻāĻžāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻāĻŋ āĻā§āĻ āĻ˛ā§āĻāĻž-āĻāĻāĻžāĻŽā§ āĻ˛āĻ āĻĢāĻžāĻāĻ˛ā§ āĻāĻāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻ°āĻŋ - āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, 64 āĻāĻŽāĻŦāĻŋāĨ¤ āĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖ āĻšāĻ˛ā§, āĻ°ā§āĻāĻ°ā§āĻĄāĻŋāĻ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ā§ āĻ¯ā§āĻ¤ā§ āĻļā§āĻ°ā§ āĻāĻ°ā§āĨ¤ āĻāĻŦāĻ āĻĒā§āĻ¨āĻāĻ¸ā§āĻāĻ¨āĻž āĻāĻ°āĻžāĻ° āĻĒāĻ°ā§, āĻāĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻļā§āĻˇ āĻā§āĻāĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĨā§āĻā§ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻāĻŋ āĻŦāĻ¨ā§āĻ§ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ˛ā§āĻ¨āĻĻā§āĻ¨āĻā§āĻ˛āĻŋ āĻ°ā§āĻ˛ āĻāĻ°ā§āĨ¤
āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ°ā§āĻāĻ°ā§āĻĄāĻŋāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ box.cfg āĻ¸ā§āĻāĻŋāĻāĻ¸ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (example.lua āĻĢāĻžāĻāĻ˛ā§):
wal_mode = âwriteâ;
āĻ¤āĻĨā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°
āĻāĻŽāĻ°āĻž āĻāĻāĻ¨ āĻ¯āĻž āĻ˛āĻŋāĻā§āĻāĻŋ āĻ¤āĻž āĻĻāĻŋāĻ¯āĻŧā§, āĻāĻĒāĻ¨āĻŋ āĻĄā§āĻāĻž āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°āĻ¤ā§ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻāĻžāĻ āĻāĻ°āĻŦā§āĨ¤ āĻāĻŦāĻ āĻāĻāĻ¨ āĻā§āĻā§āĻ° āĻāĻĒāĻ° āĻāĻāĻ¸āĻŋāĻ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻŋ āĻ¸āĻŦ āĻāĻŋ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨.
āĻāĻāĻāĻŋ āĻāĻŦā§āĻĻāĻ¨ āĻ˛ā§āĻāĻž
āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ¸ā§āĻ¨ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨āĻāĻŋ āĻ˛āĻŋāĻāĻŋ
āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻā§āĻā§āĻ¨
box.cfg {
listen = '0.0.0.0:3301';
io_collect_interval = nil;
readahead = 16320;
memtx_memory = 128 * 1024 * 1024; -- 128Mb
memtx_min_tuple_size = 16;
memtx_max_tuple_size = 128 * 1024 * 1024; -- 128Mb
vinyl_memory = 128 * 1024 * 1024; -- 128Mb
vinyl_cache = 128 * 1024 * 1024; -- 128Mb
vinyl_max_tuple_size = 128 * 1024 * 1024; -- 128Mb
vinyl_write_threads = 2;
wal_mode = "write";
wal_max_size = 256 * 1024 * 1024;
checkpoint_interval = 60 * 60; -- one hour
checkpoint_count = 6;
force_recovery = true;
log_level = 5;
log_nonblock = false;
too_long_threshold = 0.5;
read_only = false
}
local function bootstrap()
local space = box.schema.create_space('example')
space:create_index('primary')
box.schema.user.create('example', { password = 'secret' })
box.schema.user.grant('example', 'read,write,execute', 'space', 'example')
box.schema.user.create('repl', { password = 'replication' })
box.schema.user.grant('repl', 'replication')
end
-- for first run create a space and add set up grants
box.once('replica', bootstrap)
-- enabling console access
console = require('console')
console.listen('127.0.0.1:3302')
-- http config
local charset = {} do -- [0-9a-zA-Z]
for c = 48, 57 do table.insert(charset, string.char(c)) end
for c = 65, 90 do table.insert(charset, string.char(c)) end
for c = 97, 122 do table.insert(charset, string.char(c)) end
end
local function randomString(length)
if not length or length <= 0 then return '' end
math.randomseed(os.clock()^5)
return randomString(length - 1) .. charset[math.random(1, #charset)]
end
local http_router = require('http.router')
local http_server = require('http.server')
local json = require('json')
local httpd = http_server.new('0.0.0.0', 8080, {
log_requests = true,
log_errors = true
})
local router = http_router.new()
local function get_count()
local cnt = box.space.example:len()
return cnt
end
router:route({method = 'GET', path = '/count'}, function()
return {status = 200, body = json.encode({count = get_count()})}
end)
router:route({method = 'GET', path = '/token'}, function()
local token = randomString(32)
local last = box.space.example:len()
box.space.example:insert{ last + 1, token }
return {status = 200, body = json.encode({token = token})}
end)
prometheus = require('prometheus')
fiber = require('fiber')
tokens_count = prometheus.gauge("tarantool_tokens_count",
"API Tokens Count")
function monitor_tokens_count()
while true do
tokens_count:set(get_count())
fiber.sleep(5)
end
end
fiber.create(monitor_tokens_count)
router:route( { method = 'GET', path = '/metrics' }, prometheus.collect_http)
httpd:set_router(router)
httpd:start()
āĻāĻŽāĻ°āĻž āĻ˛ā§āĻ¯āĻŧāĻžāĻ¤ā§ āĻāĻŋāĻā§ āĻā§āĻŦāĻŋāĻ˛ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻŋ āĻ¯āĻž āĻ āĻā§āĻˇāĻ°āĻā§āĻ˛āĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§āĨ¤ āĻāĻ āĻĒā§āĻ˛ā§āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
local charset = {} do -- [0-9a-zA-Z]
for c = 48, 57 do table.insert(charset, string.char(c)) end
for c = 65, 90 do table.insert(charset, string.char(c)) end
for c = 97, 122 do table.insert(charset, string.char(c)) end
end
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻŋ - randomString āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§āĻ¨ā§āĻ¤ā§ āĻĻā§āĻ°ā§āĻā§āĻ¯ā§āĻ° āĻŽāĻžāĻ¨ āĻĻāĻŋāĻ¨āĨ¤
local function randomString(length)
if not length or length <= 0 then return '' end
math.randomseed(os.clock()^5)
return randomString(length - 1) .. charset[math.random(1, #charset)]
end
āĻ¤āĻžāĻ°āĻĒāĻ°ā§ āĻāĻŽāĻ°āĻž http āĻ°āĻžāĻāĻāĻžāĻ° āĻāĻŦāĻ http āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° Tarantula āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°, JSON āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŋ, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻāĻā§ āĻĒāĻžāĻ āĻžāĻŦāĨ¤
local http_router = require('http.router')
local http_server = require('http.server')
local json = require('json')
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ HTTP āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ā§ āĻĒā§āĻ°ā§āĻ 8080 āĻļā§āĻ°ā§ āĻāĻ°āĻŋ, āĻ¯āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻ˛āĻ āĻāĻ°āĻŦā§āĨ¤
local httpd = http_server.new('0.0.0.0', 8080, {
log_requests = true,
log_errors = true
})
āĻāĻ° āĻĒāĻ°ā§, āĻāĻŽāĻ°āĻž āĻ°ā§āĻ āĻā§āĻˇāĻŖāĻž āĻāĻ°āĻŋ, āĻ¯āĻžāĻ¤ā§ āĻ¯āĻĻāĻŋ GET āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°ā§āĻ 8080 /count āĻ āĻāĻ¸ā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ āĻĨā§āĻā§ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻŋāĨ¤ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ - 200, 404, 403 āĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻŋāĨ¤
router:route({method = 'GET', path = '/count'}, function()
return {status = 200, body = json.encode({count = get_count()})}
end)
āĻŦāĻĄāĻŋāĻ¤ā§ āĻāĻŽāĻ°āĻž json.encode āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻāĻ°āĻŋ, āĻāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻŖāĻ¨āĻž āĻāĻŦāĻ getcount āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻŋ, āĻ¯āĻžāĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻ°ā§āĻāĻ°ā§āĻĄā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤
āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
router:route({method = 'GET', path = '/token'}, function()
local token = randomString(32)
local last = box.space.example:len()
box.space.example:insert{ last + 1, token }
return {status = 200, body = json.encode({token = token})}
end)
āĻ˛āĻžāĻāĻ¨ā§ āĻā§āĻĨāĻžāĻ¯āĻŧ āĻ°āĻžāĻāĻāĻžāĻ°: āĻ°ā§āĻ({āĻĒāĻĻā§āĻ§āĻ¤āĻŋ = 'āĻā§āĻ', āĻĒāĻĨ = '/āĻā§āĻā§āĻ¨'}, āĻĢāĻžāĻāĻļāĻ¨() āĻāĻŽāĻ°āĻž āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋāĻā§ āĻāĻ˛ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¨ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋāĨ¤
āĻ˛āĻžāĻāĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻā§āĻ¨ = āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻ(32) 32āĻāĻŋ āĻ
āĻā§āĻˇāĻ°ā§āĻ° āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻŽā§āĻ˛ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĨ¤
āĻ¸āĻā§āĻāĻ¤āĻŋāĻĒā§āĻ°ā§āĻŖāĻāĻžāĻŦā§ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻļā§āĻˇ = box.space.example:len() āĻāĻŽāĻ°āĻž āĻļā§āĻˇ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻŦā§āĻ° āĻāĻ°āĻŋāĨ¤
āĻāĻ° āĻ˛āĻžāĻāĻ¨ā§ box.space.example:insert{ last + 1, token } āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻĄā§āĻāĻž āĻ˛āĻŋāĻāĻŋ, āĻ
āĻ°ā§āĻĨāĻžā§, āĻāĻŽāĻ°āĻž āĻā§āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° 1 āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻĄāĻŋ āĻŦāĻžāĻĄāĻŧāĻžāĻāĨ¤ āĻāĻāĻŋ āĻā§āĻŦāĻ˛ āĻāĻ āĻāĻ¨āĻžāĻĄāĻŧāĻŋ āĻāĻĒāĻžāĻ¯āĻŧā§ āĻ¨āĻ¯āĻŧāĨ¤ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻžāĻ¯āĻŧ āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻā§āĻ¯āĻŧā§āĻ¨ā§āĻ¸ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻŽāĻ°āĻž āĻ¸ā§āĻāĻžāĻ¨ā§ āĻā§āĻā§āĻ¨ āĻ˛āĻŋāĻāĻŋāĨ¤
āĻāĻāĻāĻžāĻŦā§, āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§ āĻāĻŦā§āĻĻāĻ¨ āĻ˛āĻŋāĻā§āĻāĻŋāĻ˛āĻžāĻŽāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻĄā§āĻāĻž āĻŽā§āĻ¯āĻžāĻ¨āĻŋāĻĒā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻŦāĻā§āĻ¸ āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¨ā§āĻāĻ°āĻž āĻāĻžāĻ āĻāĻ°āĻŦā§āĨ¤
āĻāĻāĻŋ HTTP āĻļā§āĻ¨ā§ āĻāĻŦāĻ āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§, āĻ¸āĻŦāĻāĻŋāĻā§āĻ āĻāĻāĻāĻŋ āĻāĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§ - āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻĄā§āĻāĻž āĻāĻāĻ¯āĻŧāĻāĨ¤ āĻ āĻ¤āĻāĻŦ, āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦā§āĻļ āĻĻā§āĻ°ā§āĻ¤ āĻāĻā§āĨ¤
āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻ°āĻž http āĻŽāĻĄāĻŋāĻāĻ˛ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻŋ:
āĻāĻŽāĻ°āĻž āĻāĻŋāĻāĻžāĻŦā§ āĻāĻāĻŋ āĻāĻ°āĻ¤ā§, āĻ¸ā§āĻĒāĻ¯āĻŧāĻ˛āĻžāĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ¤āĻžāĻāĻžāĻ¨
root@test2:/# tarantoolctl rocks install http
Installing http://rocks.tarantool.org/http-scm-1.src.rock
Missing dependencies for http scm-1:
checks >= 3.0.1 (not installed)
http scm-1 depends on checks >= 3.0.1 (not installed)
Installing http://rocks.tarantool.org/checks-3.0.1-1.rockspec
Cloning into 'checks'...
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 28 (delta 1), reused 16 (delta 1), pack-reused 0
Receiving objects: 100% (28/28), 12.69 KiB | 12.69 MiB/s, done.
Resolving deltas: 100% (1/1), done.
Note: checking out '580388773ef11085015b5a06fe52d61acf16b201'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
No existing manifest. Attempting to rebuild...
checks 3.0.1-1 is now installed in /.rocks (license: BSD)
-- The C compiler identification is GNU 7.5.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Found TARANTOOL: /usr/include (found version "2.4.2-80-g18f2bc82d")
-- Tarantool LUADIR is /.rocks/share/tarantool/rocks/http/scm-1/lua
-- Tarantool LIBDIR is /.rocks/share/tarantool/rocks/http/scm-1/lib
-- Configuring done
-- Generating done
CMake Warning:
Manually-specified variables were not used by the project:
version
-- Build files have been written to: /tmp/luarocks_http-scm-1-V4P9SM/http/build.luarocks
Scanning dependencies of target httpd
[ 50%] Building C object http/CMakeFiles/httpd.dir/lib.c.o
In file included from /tmp/luarocks_http-scm-1-V4P9SM/http/http/lib.c:32:0:
/tmp/luarocks_http-scm-1-V4P9SM/http/http/lib.c: In function âtpl_termâ:
/usr/include/tarantool/lauxlib.h:144:15: warning: this statement may fall through [-Wimplicit-fallthrough=]
(*(B)->p++ = (char)(c)))
~~~~~~~~~~~^~~~~~~~~~~~
/tmp/luarocks_http-scm-1-V4P9SM/http/http/lib.c:62:7: note: in expansion of macro âluaL_addcharâ
luaL_addchar(b, '\');
^~~~~~~~~~~~
/tmp/luarocks_http-scm-1-V4P9SM/http/http/lib.c:63:6: note: here
default:
^~~~~~~
In file included from /tmp/luarocks_http-scm-1-V4P9SM/http/http/lib.c:39:0:
/tmp/luarocks_http-scm-1-V4P9SM/http/http/tpleval.h: In function âtpe_parseâ:
/tmp/luarocks_http-scm-1-V4P9SM/http/http/tpleval.h:147:9: warning: this statement may fall through [-Wimplicit-fallthrough=]
type = TPE_TEXT;
~~~~~^~~~~~~~~~
/tmp/luarocks_http-scm-1-V4P9SM/http/http/tpleval.h:149:3: note: here
case TPE_LINECODE:
^~~~
In file included from /tmp/luarocks_http-scm-1-V4P9SM/http/http/lib.c:40:0:
/tmp/luarocks_http-scm-1-V4P9SM/http/http/httpfast.h: In function âhttpfast_parseâ:
/tmp/luarocks_http-scm-1-V4P9SM/http/http/httpfast.h:372:22: warning: this statement may fall through [-Wimplicit-fallthrough=]
code = 0;
~~~~~^~~
/tmp/luarocks_http-scm-1-V4P9SM/http/http/httpfast.h:374:13: note: here
case status:
^~~~
/tmp/luarocks_http-scm-1-V4P9SM/http/http/httpfast.h:393:23: warning: this statement may fall through [-Wimplicit-fallthrough=]
state = message;
~~~~~~^~~~~~~~~
/tmp/luarocks_http-scm-1-V4P9SM/http/http/httpfast.h:395:13: note: here
case message:
^~~~
[100%] Linking C shared library lib.so
[100%] Built target httpd
[100%] Built target httpd
Install the project...
-- Install configuration: "Debug"
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/VERSION.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lib/http/lib.so
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/server/init.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/server/tsgi_adapter.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/nginx_server/init.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/router/init.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/router/fs.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/router/matching.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/router/middleware.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/router/request.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/router/response.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/tsgi.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/utils.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/mime_types.lua
-- Installing: /.rocks/share/tarantool/rocks/http/scm-1/lua/http/codes.lua
http scm-1 is now installed in /.rocks (license: BSD)
root@test2:/#
āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻŽāĻŋāĻĨāĻŋāĻāĻ¸ā§āĻ°āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨:
root@test2:/# tarantoolctl rocks install prometheus
Installing http://rocks.tarantool.org/prometheus-scm-1.rockspec
Cloning into 'prometheus'...
remote: Enumerating objects: 19, done.
remote: Counting objects: 100% (19/19), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 19 (delta 2), reused 5 (delta 0), pack-reused 0
Receiving objects: 100% (19/19), 10.73 KiB | 10.73 MiB/s, done.
Resolving deltas: 100% (2/2), done.
prometheus scm-1 is now installed in /.rocks (license: BSD)
root@test2:/#
āĻāĻŽāĻ°āĻž āĻ˛āĻā§āĻ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻŽāĻĄāĻŋāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ
root@test2:/# curl -D - -s http://127.0.0.1:8080/token
HTTP/1.1 200 Ok
Content-length: 44
Server: Tarantool http (tarantool v2.4.2-80-g18f2bc82d)
Connection: keep-alive
{"token":"e2tPq9l5Z3QZrewRf6uuoJUl3lJgSLOI"}
root@test2:/# curl -D - -s http://127.0.0.1:8080/token
HTTP/1.1 200 Ok
Content-length: 44
Server: Tarantool http (tarantool v2.4.2-80-g18f2bc82d)
Connection: keep-alive
{"token":"fR5aCA84gj9eZI3gJcV0LEDl9XZAG2Iu"}
root@test2:/# curl -D - -s http://127.0.0.1:8080/count
HTTP/1.1 200 Ok
Content-length: 11
Server: Tarantool http (tarantool v2.4.2-80-g18f2bc82d)
Connection: keep-alive
{"count":2}root@test2:/#
/count āĻāĻŽāĻžāĻĻā§āĻ° 200 āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻĻā§āĻ¯āĻŧāĨ¤
/token āĻāĻāĻāĻŋ āĻā§āĻā§āĻ¨ āĻāĻ¸ā§āĻ¯ā§ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻ āĻā§āĻā§āĻ¨āĻāĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ˛āĻŋāĻā§āĨ¤
āĻāĻ¤āĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻāĻ¸ā§āĻ¨ 50 āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ˛āĻžāĻāĨ¤ 000 āĻĒā§āĻ°āĻ¤āĻŋāĻ¯ā§āĻā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĨāĻžāĻāĻŦā§āĨ¤
root@test2:/# ab -c 500 -n 50000 http://127.0.0.1:8080/token
This is ApacheBench, Version 2.3 <$Revision: 1807734 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 127.0.0.1 (be patient)
Completed 5000 requests
Completed 10000 requests
Completed 15000 requests
Completed 20000 requests
Completed 25000 requests
Completed 30000 requests
Completed 35000 requests
Completed 40000 requests
Completed 45000 requests
Completed 50000 requests
Finished 50000 requests
Server Software: Tarantool
Server Hostname: 127.0.0.1
Server Port: 8080
Document Path: /token
Document Length: 44 bytes
Concurrency Level: 500
Time taken for tests: 14.578 seconds
Complete requests: 50000
Failed requests: 0
Total transferred: 7950000 bytes
HTML transferred: 2200000 bytes
Requests per second: 3429.87 [#/sec] (mean)
Time per request: 145.778 [ms] (mean)
Time per request: 0.292 [ms] (mean, across all concurrent requests)
Transfer rate: 532.57 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 10 103.2 0 3048
Processing: 12 69 685.1 15 13538
Waiting: 12 69 685.1 15 13538
Total: 12 78 768.2 15 14573
Percentage of the requests served within a certain time (ms)
50% 15
66% 15
75% 16
80% 16
90% 16
95% 16
98% 21
99% 42
100% 14573 (longest request)
root@test2:/#
āĻā§āĻā§āĻ¨ āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻā§āĻ°āĻŽāĻžāĻāĻ¤ āĻĄā§āĻāĻž āĻ°ā§āĻāĻ°ā§āĻĄ āĻāĻ°āĻāĻŋāĨ¤ 99% āĻ āĻ¨ā§āĻ°ā§āĻ§ 42 āĻŽāĻŋāĻ˛āĻŋāĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¤āĻĻāĻ¨ā§āĻ¸āĻžāĻ°ā§, āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ 3500 āĻā§āĻ° āĻāĻŦāĻ 2 āĻāĻŋāĻāĻžāĻŦāĻžāĻāĻ āĻŽā§āĻŽāĻ°āĻŋ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻ āĻŽā§āĻļāĻŋāĻ¨ā§ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 4āĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧ 50000 āĻā§āĻā§āĻ¨ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻ° āĻŽāĻžāĻ¨ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° http āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻāĻĒāĻ¨āĻžāĻ° āĻĄā§āĻāĻž āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°ā§ āĻāĻŽāĻ¨ āĻŦā§āĻ¯āĻžāĻāĻā§āĻ°āĻžāĻāĻ¨ā§āĻĄ āĻĢāĻžāĻāĻļāĻ¨āĻ āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨āĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŋāĻāĻžāĻ° āĻāĻā§. āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻĒāĻ¨āĻŋ āĻāĻĒāĻĄā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŋāĻā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨ - āĻ¸āĻ āĻŋāĻ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°āĻžāĻ¸āĻ°āĻŋ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻāĻŦāĻ āĻā§āĻ¨ā§ āĻāĻŋāĻā§āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻĨāĻžāĻāĻŦā§āĻ¨ āĻ¨āĻž, āĻ¯ā§āĻā§āĻ¨ā§ āĻŽāĻĄāĻŋāĻāĻ˛ āĻ¸āĻāĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻ¨ā§ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤
āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻŦāĻšāĻŋāĻ°āĻžāĻāĻ¤ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻĄā§āĻāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻāĻŋāĻ° āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ āĻĄāĻžāĻāĻžāĻŦā§āĻ¸ā§āĻ° āĻĄā§āĻāĻž āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻŦā§āĨ¤
āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛āĻž āĻ¨āĻŋāĻā§āĻ āĻāĻāĻŋ āĻāĻ°āĻŦā§ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻ˛āĻžāĻĻāĻž āĻāĻŦā§āĻĻāĻ¨ āĻ˛āĻŋāĻāĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻžāĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ° āĻāĻ¨
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻāĻžāĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻāĻļ āĻŽāĻžāĻ¤ā§āĻ°āĨ¤ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻā§āĻŦ āĻļā§āĻā§āĻ°āĻ Mail.ru āĻā§āĻ°ā§āĻĒ āĻŦā§āĻ˛āĻā§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻŽāĻ°āĻž āĻ āĻŦāĻļā§āĻ¯āĻ āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ¤ā§ āĻāĻāĻŋāĻ° āĻāĻāĻāĻŋ āĻ˛āĻŋāĻā§āĻ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°āĻŦāĨ¤
āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¯ā§āĻāĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻāĻā§āĻ°āĻšā§ āĻšāĻ¨ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ
āĻ¨āĻ˛āĻžāĻāĻ¨ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ āĻāĻŦāĻ āĻ°āĻŋāĻ¯āĻŧā§āĻ˛ āĻāĻžāĻāĻŽā§ āĻĒā§āĻ°āĻļā§āĻ¨ āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻ¤ā§, āĻāĻŋāĻāĻ¨ āĻāĻ¨ āĻāĻ°ā§āĻ¨ā§ˇ
āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄā§ āĻ¯ā§āĻ¤ā§ āĻšāĻ¯āĻŧ āĻŦāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻ
āĻŦāĻāĻžāĻ āĻžāĻŽā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻĒā§āĻ°āĻļā§āĻ¨ āĻĨāĻžāĻā§,
PS āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋ āĻŽāĻžāĻ¸ā§ 2āĻāĻŋ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ
āĻĄāĻŋāĻ āĻāĻā§, āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ āĻšāĻŦā§āĨ¤
āĻāĻ¤ā§āĻ¸: www.habr.com