āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻāĻā§āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻāĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§ - āĻāĻāĻŋ āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ PECL āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨
āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§, āĻāĻŽāĻŋ āĻāĻāĻ¯āĻŧ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻļā§āĻ¯āĻŧāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻāĻŦāĻ āĻĻā§āĻāĻžāĻ¤ā§ āĻāĻžāĻ āĻāĻŋāĻāĻžāĻŦā§, āĻā§āĻĄā§ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§, āĻāĻĒāĻ¨āĻŋ 3-5 āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻŦā§āĻĻā§āĻ§āĻŋ āĻĒā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ (āĻ¸āĻŋāĻ¨ā§āĻĨā§āĻāĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ!).
āĻāĻŽāĻ°āĻž āĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦ?
āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤āĻĻā§āĻ° āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻ¸āĻāĻ¯ā§āĻāĻāĻā§āĻ˛āĻŋ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻāĻžāĻŦā§, āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛āĻāĻžāĻŦā§ āĻāĻŦāĻ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸-āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§ āĻāĻ˛āĻā§āĨ¤ đ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻā§āĻ°āĻžāĻ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻā§āĻĄ āĻ¸ā§āĻĒāĻ°ā§āĻļ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ āĻ¨āĻžāĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻž āĻāĻžāĻ¨ āĻ¤āĻž āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ā§ āĻŦā§āĻļ āĻāĻ¯āĻŧā§āĻāĻāĻŋ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻ°āĻ¯āĻŧā§āĻā§:
āĻ¸ā§āĻ˛ā§ - PHP-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻā§āĻ-āĻĒāĻžāĻ°āĻĢāĻ°āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻĢā§āĻ°ā§āĻŽāĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĨ¤ Alibaba āĻāĻŦāĻ Baidu āĻāĻ° āĻŽāĻ¤ā§ āĻāĻ¨ā§āĻāĻžāĻ°āĻ¨ā§āĻ āĻāĻžāĻ¯āĻŧāĻžāĻ¨ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ā§ˇ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 4.1.0 āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻžāĻĻā§ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§ SwooleRuntime::enableCoroutine(), āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ "āĻā§āĻĄā§āĻ° āĻāĻāĻāĻŋ āĻ˛āĻžāĻāĻ¨ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ PHP āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻā§āĻ˛āĻŋāĻā§ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻ°ā§āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°āĻ¤ā§" āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧā§ˇ- Async āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ-āĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻāĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻā§āĻŦ āĻĒā§āĻ°āĻ¤āĻŋāĻļā§āĻ°ā§āĻ¤āĻŋāĻļā§āĻ˛ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻŋāĻ˛āĨ¤ āĻā§āĻ¨ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤? āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ āĻ
āĻāĻžāĻ¨āĻž āĻāĻžāĻ°āĻŖā§, āĻ˛ā§āĻāĻ āĻ¸āĻāĻā§āĻ°āĻšāĻ¸ā§āĻĨāĻ˛āĻāĻŋ āĻŽā§āĻā§ āĻĻāĻŋāĻ¯āĻŧā§āĻā§āĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§āĻ° āĻāĻŦāĻŋāĻˇā§āĻ¯āĻ¤ āĻāĻžāĻā§āĻ¯ āĻ
āĻ¸ā§āĻĒāĻˇā§āĻāĨ¤ āĻāĻŽāĻŋ āĻāĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻāĻžāĻāĻāĻž āĻĨā§āĻā§ Swoole-āĻāĻ° āĻŽāĻ¤ā§, āĻāĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻāĻŋ TCP āĻāĻŦāĻ TLS āĻ¸ā§āĻā§āĻ°āĻŋāĻŽāĻā§āĻ˛āĻŋāĻ° āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻŋ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻŦā§āĻāĻŋāĻ° āĻāĻžāĻāĻā§āĻ¨āĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¸āĻšāĻā§āĻ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ¯āĻžāĻ¨ā§āĻ āĻāĻžāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧāĨ¤ āĻāĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ "async.tcp = 1"āĨ¤ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ - phpdbg, apcu, pthreads, pcov, uopz-āĻāĻ° āĻŽāĻ¤ā§ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ˛ā§āĻāĻ āĻ¸ā§āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻā§ āĻāĻ¯āĻŧāĻžāĻāĻāĻŋāĻ¨āĻ¸ā§āĻ° āĻāĻžāĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĨ¤ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻāĻŋ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ-āĻ¤ā§ āĻŽāĻžāĻ˛ā§āĻāĻŋāĻĨā§āĻ°ā§āĻĄāĻŋāĻāĻ¯āĻŧā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ API āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§ āĻāĻŦāĻ pthreads-āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻšāĻ˛ āĻāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° PHP-āĻāĻ° ZTS (Zend Thread Safe) āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻŋāĻāĻžāĻŦā§ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦ?
āĻāĻ¸ā§āĻ¨ āĻ˛āĻŋāĻāĻ¤ā§-āĻāĻā§ āĻ˛āĻāĻŋāĻ āĻ āĻā§āĻˇāĻŽ āĻāĻ°ā§ āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻāĻžāĻ˛ā§ āĻāĻ°āĻŋ (wal_mode = āĻā§āĻ¨āĻāĻŋ āĻ¨āĻ¯āĻŧ) āĻāĻŦāĻ āĻŦāĻ°ā§āĻ§āĻŋāĻ¤ āĻ¨ā§āĻāĻāĻ¯āĻŧāĻžāĻ°ā§āĻ āĻŦāĻžāĻĢāĻžāĻ° (readahead = 1 * 1024 * 1024) āĻĒā§āĻ°āĻĨāĻŽ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻĄāĻŋāĻ¸ā§āĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻŦāĻžāĻĻ āĻĻā§āĻŦā§, āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧāĻāĻŋ āĻ āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻŦāĻžāĻĢāĻžāĻ° āĻĨā§āĻā§ āĻāĻ°āĻ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧāĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻ°ā§ āĻ¤ā§āĻ˛āĻŦā§ āĻāĻŦāĻ āĻāĻ° āĻĢāĻ˛ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŽāĻŋāĻ¯āĻŧā§ āĻāĻ¨āĻŦā§āĨ¤
āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯ā§āĻā§āĻ˛āĻŋ āĻĄā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§ (āĻ¸āĻ¨ā§āĻ¨āĻŋāĻŦā§āĻļ, āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž, āĻĒāĻĄāĻŧāĻž āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ), āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻāĻāĻŋ memtx āĻ¸ā§āĻĨāĻžāĻ¨ (āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ) āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ¸ā§āĻāĻ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ
āĻ°ā§āĻĄāĻžāĻ°āĻā§āĻ¤ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻŽāĻžāĻ¨ā§āĻ° āĻāĻāĻāĻŋ āĻā§āĻ¨āĻžāĻ°ā§āĻāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ (āĻā§āĻ°āĻŽ)āĨ¤
āĻ¸ā§āĻĒā§āĻ¸ DDL āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
space = box.schema.space.create(config.space_name, {id = config.space_id, temporary = true})
space:create_index('primary', {type = 'tree', parts = {1, 'unsigned'}, sequence = true})
space:format({{name = 'id', type = 'unsigned'}, {name = 'name', type = 'string', is_nullable = false}})
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ¯āĻŧ, āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻā§, āĻ¸ā§āĻĨāĻžāĻ¨āĻāĻŋ āĻĢāĻ°ā§āĻŽā§āĻ° 10,000 āĻāĻŋāĻĒāĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
{id, "tuplĐĩ_<id>"}
āĻāĻāĻāĻŋ āĻ°ā§āĻ¯āĻžāĻ¨ā§āĻĄāĻŽ āĻā§ āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ Tuples āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻ¨āĻŋāĻā§āĻ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻāĻāĻŋ āĻāĻāĻ āĻ āĻ¨ā§āĻ°ā§āĻ§, āĻ¯āĻž 10,000 āĻŦāĻžāĻ° (āĻŦāĻŋāĻĒā§āĻ˛āĻŦ) āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻž, āĻā§āĻ°ā§, āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ¤ā§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ 5āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻŦāĻŋāĻā§āĻ¯ā§āĻ¤āĻŋ 3%* āĻāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻšāĻŖāĻ¯ā§āĻā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¨āĻž āĻšāĻāĻ¯āĻŧāĻž āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻĒāĻ°ā§, āĻāĻĄāĻŧ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ°āĻā§ āĻĨā§āĻ°āĻāĻ˛āĻŋāĻ āĻĨā§āĻā§ āĻāĻāĻāĻžāĻ¤ā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ 1 āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§āĻ° āĻŦāĻŋāĻ°āĻ¤āĻŋ āĻ°āĻ¯āĻŧā§āĻā§āĨ¤ āĻ˛ā§āĻ¯āĻŧāĻžāĻ° āĻāĻŦāĻ°ā§āĻāĻ¨āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋāĻ° āĻāĻā§ āĻ āĻā§āĻˇāĻŽ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§ āĻļā§āĻ°ā§ āĻāĻ°āĻ¤ā§ āĻŦāĻžāĻ§ā§āĻ¯ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻāĻĒā§āĻ āĻŦāĻžāĻĢāĻžāĻ°āĻŋāĻ āĻ¸āĻā§āĻˇāĻŽ āĻāĻŦāĻ āĻāĻŦāĻ°ā§āĻāĻ¨āĻž āĻ¸āĻāĻā§āĻ°āĻšāĻāĻžāĻ°ā§ āĻ¨āĻŋāĻˇā§āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĨāĻžāĻā§āĨ¤
* āĻŦāĻŋāĻĒā§āĻ˛āĻŦā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž, āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĨā§āĻ°ā§āĻļāĻšā§āĻ˛ā§āĻĄ āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻ¸ā§āĻāĻŋāĻāĻ¸ā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļ
āĻ¨ā§āĻā§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ MacBookPro (2015), āĻ
āĻĒāĻžāĻ°ā§āĻāĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ - Fedora 30 (āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 5.3.8-200.fc30.x86_64) āĻ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻā§āĻ¯āĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻš āĻĄāĻāĻžāĻ°ā§ āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ "--network host"
.
āĻĒā§āĻ¯āĻžāĻā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ:
Tarantool: 2.3.0-115-g5ba5ed37e
āĻĄāĻāĻžāĻ°: 19.03.3, āĻŦāĻŋāĻ˛ā§āĻĄ a872fc2f86
PHP: 7.3.11 (cli) (āĻ¨āĻŋāĻ°ā§āĻŽāĻŋāĻ¤: 22 āĻ
āĻā§āĻā§āĻŦāĻ° 2019 08:11:04)
āĻāĻžāĻ°āĻžāĻ¨ā§āĻā§āĻ˛/āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ: 0.6.0
rybakit/msgpack: 0.6.1
ext-tarantool: 0.3.2 (+ 7.3 āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ¯āĻžāĻ)*
ext-msgpack: 2.0.3
ext-async: 0.3.0-8c1da46
ext-swoole: 4.4.12
ext-āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛: 1.1.3
* āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻ
āĻĢāĻŋāĻ¸āĻŋāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ > 7.2 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ PHP 7.3 āĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻāĻŋ āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻŦāĻ āĻāĻžāĻ˛āĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻžāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
Đ ĐĩСŅĐģŅŅĐ°ŅŅ
āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻŽā§āĻĄ
Tarantool āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻāĻāĻŋ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻā§, āĻāĻŽāĻ°āĻž āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ¸ā§āĻāĻĒā§āĻ¯āĻžāĻ āĻāĻ¨āĻā§āĻĄāĻžāĻ°āĻā§āĻ˛āĻŋāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻŦ āĻāĻŦāĻ āĻāĻ°āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ¯āĻŧ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻ¯āĻž āĻ¸ā§āĻ°āĻž āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ:
āĻ¯āĻĻāĻŋāĻ āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ (āĻŦāĻŋāĻļā§āĻĻā§āĻ§) āĻāĻ¤āĻŋāĻ¤ā§ PECL āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻ¨āĻŋāĻā§āĻˇā§āĻ, āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻŽāĻŋ āĻāĻāĻ¨āĻ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻŦ
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ¸ā§āĻ¨ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻŽā§āĻĄā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻ¯āĻžāĻ:
āĻā§āĻ°āĻžāĻĢ āĻĨā§āĻā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻ¯āĻŧ, PECL āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ (Tarantool) PHP āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° (āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ) āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻžāĻ˛ā§ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻĻā§āĻāĻžāĻ¯āĻŧāĨ¤ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻļā§āĻāĻ°ā§āĻ¯ā§āĻ° āĻāĻŋāĻā§ āĻ¨āĻ¯āĻŧ, āĻ¯ā§ āĻĒāĻ°ā§āĻ°āĻāĻŋ, āĻāĻāĻāĻŋ āĻ§ā§āĻ° āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻāĻžāĻĄāĻŧāĻžāĻ, āĻāĻ¸āĻ˛ā§ āĻāĻ°āĻ āĻāĻžāĻ āĻāĻ°ā§: āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦāĻ¸ā§āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ
āĻ¨ā§āĻ°ā§āĻ§ и āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž (āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ - āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ¨āĻŋāĻ°ā§āĻŖāĻžāĻ¯āĻŧāĻ, āĻāĻŦāĻ āĻāĻĒāĻĄā§āĻ/āĻāĻĒāĻ¸āĻžāĻ°ā§āĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ - āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻ¸), āĻĒā§āĻĨāĻ āĻ¸āĻ¤ā§āĻ¤āĻž āĻ¸āĻāĻ¯ā§āĻ, āĻāĻ°āĻ и āĻā§āĻ°ā§āĻĄāĻŧāĻžāĻļāĻŋāĻā§āĻˇāĻ āĻ¤āĻžāĻ°āĻž āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨. āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻ, āĻ¨āĻŽāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻāĻāĻāĻŋ āĻŽā§āĻ˛ā§āĻ¯ā§ āĻāĻ¸ā§āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ āĻāĻ¨ā§āĻāĻžāĻ°āĻĒā§āĻ°ā§āĻāĻžāĻ° āĻāĻžāĻ˛ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°āĻŋāĻ¤āĻž āĻĻā§āĻāĻžāĻ¯āĻŧ, āĻ¯āĻĻāĻŋāĻ āĻāĻāĻāĻŋ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻāĻā§, āĻāĻāĻŋ āĻ¨āĻāĻŖā§āĻ¯ āĻāĻŦāĻ, āĻ¸āĻŽā§āĻāĻŦāĻ¤, āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ 7.4 āĻ āĻĒā§āĻ°āĻŋāĻ˛ā§āĻĄāĻŋāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ°āĻ āĻāĻŽ āĻšāĻŦā§, āĻĒāĻŋāĻāĻāĻāĻĒāĻŋ 8 āĻ āĻā§āĻāĻāĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻ¨āĻž āĻāĻ°āĻžāĨ¤
āĻāĻ˛ āĻāĻā§āĻ. Tarantool 2.0 SQL āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°ā§āĻā§āĨ¤ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŋāĻ˛ā§āĻā§āĻ, āĻāĻ¨āĻ¸āĻžāĻ°ā§āĻ, āĻāĻĒāĻĄā§āĻ āĻāĻŦāĻ āĻĄāĻŋāĻ˛āĻŋāĻ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻŋ āĻāĻŦāĻ noSQL (āĻŦāĻžāĻāĻ¨āĻžāĻ°ā§) āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻŋ:
āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻā§āĻŦ āĻāĻŋāĻ¤ā§āĻ¤āĻžāĻāĻ°ā§āĻˇāĻ āĻ¨āĻ¯āĻŧ (āĻāĻŽāĻžāĻā§ āĻŽāĻ¨ā§ āĻāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ āĻ¯ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻŽā§āĻĄ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻāĻŋ)āĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻŽāĻŋ āĻ¸āĻŽāĻ¯āĻŧā§āĻ° āĻāĻā§ āĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻšāĻŦ āĻ¨āĻž; SQL āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻāĻāĻ¨āĻ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻŦāĻŋāĻāĻžāĻļā§āĻ° āĻ
āĻ§ā§āĻ¨ā§ āĻ°āĻ¯āĻŧā§āĻā§ (āĻ¤ā§āĻ˛āĻ¨āĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻ¸āĻŽā§āĻĒā§āĻ°āĻ¤āĻŋ, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛
āĻāĻ¸āĻŋāĻā§āĻ
āĻāĻā§āĻāĻž, āĻāĻāĻ¨ āĻĻā§āĻāĻž āĻ¯āĻžāĻ āĻāĻŋāĻāĻžāĻŦā§ Async āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻĒāĻ°ā§āĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻā§āĻ°ā§āĻāĻŋāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§ āĻāĻāĻāĻŋ API āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻŽā§āĻ˛āĻāĻāĻžāĻŦā§ āĻā§āĻāĻā§ āĻĒāĻžāĻ āĻ¯ā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻŦā§āĻļā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ¸āĻāĻā§āĻ¯āĻž 25 āĻšāĻ˛:
10,000āĻāĻŋ āĻā§āĻ°ā§āĻāĻŋāĻ¨ āĻā§āĻĄāĻŧā§ 25āĻāĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ "āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°ā§āĻ¨" āĻāĻŦāĻ āĻĻā§āĻā§āĻ¨ āĻāĻŋ āĻšāĻ¯āĻŧ:
āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸ā§āĻā§āĻ¨ā§āĻĄā§ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻž 3 āĻā§āĻŖā§āĻ° āĻŦā§āĻļāĻŋ āĻŦā§āĻĄāĻŧā§āĻā§
āĻĻā§āĻāĻā§āĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧ, PECL āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ ext-async āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤
āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋ?
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻ
ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻŽā§āĻĄā§ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛ āĻāĻŦāĻ SQL āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŽāĻžāĻ°ā§āĻāĻŋāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻšāĻ¯āĻŧā§ āĻā§āĻā§āĨ¤
āĻ¸ā§āĻ˛ā§
āĻāĻŦāĻžāĻ° āĻāĻŽāĻ°āĻž āĻā§āĻ°ā§āĻāĻŋāĻ¨ā§āĻ° āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻŋ, āĻāĻŦāĻžāĻ° Swoole-āĻāĻ° āĻāĻ¨ā§āĻ¯:
āĻāĻ¸ā§āĻ¨ 25 āĻ āĻĨāĻžāĻŽāĻŋāĨ¤ āĻāĻ¸ā§āĻ¨ Async āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻŽāĻ¤ā§ āĻāĻāĻ āĻā§āĻļāĻ˛āĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻ°āĻŋ - 10,000āĻāĻŋ āĻā§āĻ°ā§āĻāĻŋāĻ¨ā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ 25āĻāĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻŦāĻŋāĻ¤āĻ°āĻŖ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻ°ā§āĻāĻāĻŋ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¯ā§āĻ āĻāĻ°āĻŦ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻāĻžāĻāĻā§ 2āĻāĻŋ āĻĻā§āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¯āĻŧ āĻāĻžāĻ āĻāĻ°āĻŦ (āĻ
āĻ°ā§āĻĨāĻžā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž 5,000āĻāĻŋ āĻā§āĻ°ā§āĻāĻŋāĻ¨ā§ 25āĻāĻŋ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻāĻ°āĻŦā§)āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒā§āĻ°āĻ¸ā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§ SwooleProcess.
āĻĢāĻ˛āĻžāĻĢāĻ˛:
Swole āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ˛āĻžāĻāĻžāĻ˛ā§āĻ¨ Async-āĻāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻŋāĻā§āĻāĻž āĻāĻŽ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ, āĻāĻŋāĻ¨ā§āĻ¤ā§ 2āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻ¨āĻžāĻāĻā§āĻ¯āĻŧāĻāĻžāĻŦā§ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻšāĻ¯āĻŧ (2 āĻ¨āĻŽā§āĻŦāĻ°āĻāĻŋ āĻ¸ā§āĻ¯ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻŋāĻ¤ āĻšāĻ¯āĻŧāĻ¨āĻŋ; āĻāĻŽāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§, āĻāĻāĻŋ 2āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻŋāĻ˛ āĻ¯āĻž āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĻā§āĻāĻžāĻ¯āĻŧ)āĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¸ā§āĻ¸āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻĒāĻŋāĻāĻāĻ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻ¸ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻŋ āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¸ā§ āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻĨā§āĻā§ āĻā§āĻ¨āĻ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°āĻŋāĻ¨āĻŋ (āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦ āĻ¯ā§ āĻāĻŽāĻŋ āĻā§āĻĨāĻžāĻ āĻāĻ¨ā§āĻĄāĻā§āĻ˛ āĻāĻ°ā§āĻāĻŋ)āĨ¤
āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻŦāĻ¨āĻžāĻŽ āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻĒā§āĻ°ā§āĻā§āĻāĻ˛:
āĻ
ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ° āĻŽāĻ¤ā§, āĻŦāĻžāĻāĻ¨āĻžāĻ°āĻŋ āĻāĻŦāĻ SQL āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ
ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻŽā§āĻĄā§ āĻŽā§āĻā§ āĻĢā§āĻ˛āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛
āĻ¯ā§āĻšā§āĻ¤ā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻā§āĻ°ā§āĻāĻŋāĻ¨ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻĨā§āĻ°ā§āĻĄ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§, āĻāĻ¸ā§āĻ¨ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĨā§āĻ°ā§āĻĄā§āĻ° āĻ¸āĻ°ā§āĻŦā§āĻ¤ā§āĻ¤āĻŽ āĻ¸āĻāĻā§āĻ¯āĻž āĻĒāĻ°āĻŋāĻŽāĻžāĻĒ āĻāĻ°āĻž āĻ¯āĻžāĻ:
āĻāĻāĻž āĻāĻŽāĻžāĻ° āĻŽā§āĻļāĻŋāĻ¨ā§ 16. āĻāĻ¸ā§āĻ¨ 16āĻāĻŋ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻĨā§āĻ°ā§āĻĄā§ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻ āĻāĻžāĻ˛āĻžāĻ:
āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻāĻŋ āĻ
ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻāĻ°āĻ āĻāĻžāĻ˛ (2āĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ¤ā§ āĻāĻ˛āĻŽāĻžāĻ¨ Swoole āĻāĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¨āĻž)āĨ¤ āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ PECL āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻĄā§āĻ āĻāĻŦāĻ āĻāĻĒāĻ¸āĻžāĻ°ā§āĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻžāĻ˛āĻŋāĨ¤ āĻāĻāĻŋ āĻāĻ āĻāĻžāĻ°āĻŖā§ āĻ¯ā§ āĻāĻ āĻ
āĻĒāĻžāĻ°ā§āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§ - āĻāĻŽāĻŋ āĻāĻžāĻ¨āĻŋ āĻ¨āĻž āĻāĻāĻŋ ext-āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛, ext-tarantool āĻŦāĻž āĻāĻāĻ¯āĻŧā§āĻ° āĻĻā§āĻˇ āĻāĻŋāĻ˛ āĻāĻŋāĻ¨āĻžāĨ¤
āĻāĻāĻ¨ āĻāĻ¸āĻāĻŋāĻāĻāĻ˛ āĻāĻ°ā§āĻŽāĻā§āĻˇāĻŽāĻ¤āĻž āĻ¤ā§āĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻ¯āĻžāĻ:
āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻāĻžāĻŦā§ āĻāĻ˛āĻŽāĻžāĻ¨ āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°āĻžāĻĢā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨?
āĻāĻāĻ¸āĻžāĻĨā§
āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻļā§āĻˇā§, āĻĒāĻ°ā§āĻā§āĻˇāĻŋāĻ¤ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻŽāĻā§āĻ°āĻŋāĻ āĻāĻŋāĻ¤ā§āĻ° āĻĻā§āĻāĻ¤ā§ āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻĢā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ā§āĻ° āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤āĻ¸āĻžāĻ° āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤ āĻāĻžāĻ°ā§āĻā§ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¯ā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻāĻāĻ¨āĻ āĻāĻ°āĻŋāĻ¨āĻŋ - āĻāĻ¸ā§āĻ¨ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛* āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ā§ Async coroutines āĻāĻžāĻ˛āĻžāĻāĨ¤ āĻāĻĒāĻ°ā§āĻ° āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻāĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ°āĻ¯āĻŧā§āĻā§
* āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻš Swoole coroutines āĻāĻžāĻ˛ā§ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŋāĻ˛ āĻ¨āĻž; āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻāĻ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨āĻā§āĻ˛āĻŋ āĻŦā§āĻŽāĻžāĻ¨āĻžāĻ¨āĨ¤
āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛:
āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°ā§āĻ°
āĻāĻŽāĻžāĻ° āĻŽāĻ¤ā§, āĻĢāĻ˛āĻžāĻĢāĻ˛āĻā§āĻ˛āĻŋ āĻŦā§āĻļ āĻ¯ā§āĻā§āĻ¯ āĻŦāĻ˛ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻŦāĻ āĻāĻŋāĻā§ āĻāĻžāĻ°āĻŖā§ āĻāĻŽāĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻ¯ā§ āĻāĻāĻŋ āĻ¸ā§āĻŽāĻž āĻ¨āĻ¯āĻŧ! āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒā§ āĻāĻāĻŋ āĻ¸āĻŋāĻĻā§āĻ§āĻžāĻ¨ā§āĻ¤ āĻ¨āĻŋāĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž, āĻāĻŽāĻŋ āĻā§āĻŦāĻ˛ āĻŦāĻ˛āĻŦ āĻ¯ā§ āĻāĻāĻŋ āĻāĻŽāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŋāĻ˛ āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŽā§āĻ˛ā§āĻ¯āĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ¨ā§āĻ¯ā§āĻ¨āĻ¤āĻŽ āĻĒā§āĻ°āĻā§āĻˇā§āĻāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸ TCP āĻ¸āĻāĻ¯ā§āĻāĻāĻžāĻ°ā§ āĻĨā§āĻā§ āĻāĻ¤āĻāĻž "āĻāĻāĻ" āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĨ¤ āĻŦā§āĻā§āĻāĻŽāĻžāĻ°ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¨āĻ¤āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻ¯āĻĻāĻŋ āĻ§āĻžāĻ°āĻ¨āĻž āĻĨāĻžāĻā§, āĻāĻŽāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ˛ āĻ
āĻ¨ā§āĻ°ā§āĻ§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§ āĻā§āĻļāĻŋ āĻšāĻŦāĨ¤ āĻ˛āĻā§āĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻāĻŦāĻ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻ¸āĻš āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻā§āĻĄ āĻāĻ˛āĻžāĻĻāĻžāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻāĻžāĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧ
āĻāĻ¤ā§āĻ¸: www.habr.com