Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

PHP เด‡เด•เตเด•เต‹เดธเดฟเดธเตเดฑเตเดฑเดคเตเดคเดฟเตฝ Tarantool เดธเต†เตผเดตเดฑเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เดจเดฟเดฒเดตเดฟเตฝ เดฐเดฃเตเดŸเต เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เด‰เดฃเตเดŸเต - เด‡เดคเดพเดฃเต เด”เดฆเตเดฏเต‹เด—เดฟเด• PECL เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ tarantool/tarantool-php, เดธเดฟเดฏเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เด’เดชเตเดชเด‚ tarantool-php/client, PHP-เดฏเดฟเตฝ เดŽเดดเตเดคเดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเต เดžเดพเดจเดพเดฃเต.

เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ, เดฐเดฃเตเดŸเต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดชเตเดฐเด•เดŸเดจ เดชเดฐเดฟเดถเต‹เดงเดจเดฏเตเดŸเต† เดซเดฒเด™เตเด™เตพ เดชเด™เตเด•เดฟเดŸเดพเดจเตเด‚ เด•เต‹เดกเดฟเดฒเต† เด•เตเดฑเดžเตเดž เดฎเดพเดฑเตเดฑเด™เตเด™เดณเต‹เดŸเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต 3-5 เดชเตเดฐเด•เดŸเดจ เดตเตผเดฆเตเดงเดจเดตเต เดŽเด™เตเด™เดจเต† เดจเต‡เดŸเดพเดฎเต†เดจเตเดจเต เด•เดพเดฃเดฟเด•เตเด•เดพเดจเตเด‚ เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต (เดธเดฟเดจเตเดคเดฑเตเดฑเดฟเด•เต เดŸเต†เดธเตเดฑเตเดฑเตเด•เดณเดฟเตฝ!).

เดžเด™เตเด™เตพ เดŽเดจเตเดคเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด‚?

เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดžเดต เดžเด™เตเด™เตพ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด‚ เดธเดฟเตปเด•เตเดฐเดฃเดธเต เด…เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฏเตเด‚ เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเตเด‚ เด…เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฏเตเด‚-เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด•เดฃเด•เตเดŸเดฑเตเด•เตพ. ๐Ÿ™‚ เดžเด™เตเด™เตพ เด•เดฃเด•เตเดŸเดฑเตเด•เดณเตเดŸเต† เด•เต‹เดกเต เดธเตเดชเตผเดถเดฟเด•เตเด•เดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. เดจเดฟเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเต‡เดŸเตเดจเตเดจเดคเดฟเดจเต เดจเดฟเดฒเดตเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต:

  • เดธเตเดตเต‚เตพ PHP-เดฏเตโ€Œเด•เตเด•เดพเดฏเตเดณเตเดณ เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเต. เด†เดฒเดฟเดฌเดพเดฌเดฏเตเด‚ เดฌเตˆเดฆเตเดตเตเด‚ เดชเต‹เดฒเตเดณเตเดณ เด‡เดจเตเดฑเตผเดจเต†เดฑเตเดฑเต เดญเต€เดฎเดจเตเดฎเดพเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต. เดชเดคเดฟเดชเตเดชเต 4.1.0 เดฎเตเดคเตฝ เด’เดฐเต เดฎเดพเดœเดฟเด•เต เดฐเต€เดคเดฟ เดชเตเดฐเดคเตเดฏเด•เตเดทเดชเตเดชเต†เดŸเตเดŸเต SwooleRuntime::enableCoroutine(), เด‡เดคเต "เดธเดฟเตปเด•เตเดฐเดฃเดธเต PHP เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเต† เด’เดฐเต เดตเดฐเดฟ เด•เต‹เดกเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เด†เดฏเดฟ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเดพเตป" เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.
  • PHP-เดฏเดฟเดฒเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดตเตผเด•เตเด•เดฟเดจเตเดณเตเดณ เดตเดณเดฐเต† เดชเตเดฐเดคเต€เด•เตเดท เดจเตฝเด•เตเดจเตเดจ เด’เดฐเต เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต Async. เดŽเดจเตเดคเตเด•เตŠเดฃเตเดŸเต เด…เดŸเตเดคเตเดคเดฟเดŸเต† เดตเดฐเต†? เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เดŽเดจเดฟเด•เตเด•เต เด…เดœเตเดžเดพเดคเดฎเดพเดฏ เด’เดฐเต เด•เดพเดฐเดฃเดคเตเดคเดพเตฝ, เดฐเดšเดฏเดฟเดคเดพเดตเต เดถเต‡เด–เดฐเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เดฟ, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดญเดพเดตเดฟ เดตเดฟเดงเดฟ เดตเตเดฏเด•เตเดคเดฎเดฒเตเดฒ. เดŽเดจเดฟเด•เตเด•เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดฐเตเด‚ เด’เดจเตเดจเต เดซเต‹เตผเด•เตเด•เตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต. เดธเตเดตเต‚เดณเดฟเดจเต†เดชเตเดชเต‹เดฒเต†, TCP, TLS เดธเตเดŸเตเดฐเต€เดฎเตเด•เดณเตเดŸเต† เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เด‡เด‚เดชเตเดฒเดฟเดฎเต†เดจเตเดฑเต‡เดทเดจเต† เด…เดตเดฏเตเดŸเต† เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเดคเดฟเดชเตเดชเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเดšเตเดšเต เด…เดธเดฟเตปเด•เตเดฐเดฃเต€เดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เด•เตˆเดคเตเดคเดฃเตเดŸเดฏเดฟเตฝ เด’เดฐเต เดซเตเดฒเดฟเด•เตเด•เดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเดพเดจเตเดฑเต เดŽเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เด“เดฃเดพเด•เตเด•เดพเตป เดˆ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. "" เดŽเดจเตเดจ เด“เดชเตโ€Œเดทเดจเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต.async.tcp = 1".
  • เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ phpdbg, apcu, pthreads, pcov, uopz เดคเตเดŸเด™เตเด™เดฟเดฏ เดฒเตˆเดฌเตเดฐเดฑเดฟเด•เดณเตเดŸเต† เดฐเดšเดฏเดฟเดคเดพเดตเดพเดฏ, เด…เดฑเดฟเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดœเต‹ เดตเดพเดฑเตเดฑเตเด•เดฟเตปเดธเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดคเดฟเด•เดšเตเดšเตเด‚ เดชเตเดคเดฟเดฏ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚. เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ PHP-เดฏเดฟเตฝ เดฎเตพเดŸเตเดŸเดฟเดคเตเดฐเต†เดกเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด’เดฐเต API เดจเตฝเด•เตเดจเตเดจเต, pthreads-เดจเต เดชเด•เดฐเดฎเดพเดฏเดฟ เด‡เดคเต เดธเตเดฅเดพเดชเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. PHP-เดฏเตเดŸเต† ZTS (Zend Thread Safe) เดชเดคเดฟเดชเตเดชเดฟเตฝ เดฎเดพเดคเตเดฐเดฎเต‡ เด‡เดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‚ เดŽเดจเตเดจเดคเดพเดฃเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เด’เดฐเต เดชเตเดฐเดงเดพเดจ เดชเดฐเดฟเดฎเดฟเดคเดฟ.

เดžเด™เตเด™เตพ เดŽเด™เตเด™เดจเต† เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด‚?

เดฑเตˆเดฑเตเดฑเต-เดŽเดนเต†เดกเต เดฒเต‹เด—เดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏ เด’เดฐเต เดŸเดพเดฐเดจเตเดฑเต‚เตพ เด‰เดฆเดพเดนเดฐเดฃเด‚ เดจเดฎเตเด•เตเด•เต เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เดพเด‚ (wal_mode = เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ) เด•เต‚เดŸเดพเดคเต† เดตเตผเดฆเตเดงเดฟเดšเตเดš เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เต เดฌเดซเตผ (เดฑเต€เดกเดนเต†เดกเต = 1 * 1024 * 1024). เด†เดฆเตเดฏ เด“เดชเตเดทเตป เดกเดฟเดธเตเด•เตเดฎเดพเดฏเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเด‚, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต เด“เดชเตเดชเดฑเต‡เดฑเตเดฑเดฟเด‚เด—เต เดธเดฟเดธเตเดฑเตเดฑเด‚ เดฌเดซเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เต‚เดŸเตเดคเตฝ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดตเดพเดฏเดฟเด•เตเด•เดพเดจเตเด‚ เด…เดคเตเดตเดดเดฟ เดธเดฟเดธเตเดฑเตเดฑเด‚ เด•เต‹เดณเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดฏเตเด•เตเด•เดพเดจเตเด‚ เดธเดนเดพเดฏเดฟเด•เตเด•เตเด‚.

เดกเดพเดฑเตเดฑเดฏเตเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ (เด‡เตปเดธเต‡เตผเดทเตป, เดกเดฟเดฒเต€เดทเตป, เดฑเต€เดกเดฟเด‚เด—เต เดฎเตเดคเดฒเดพเดฏเดต), เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เด’เดฐเต memtx เดธเตเดชเต‡เดธเต (เดตเต€เดฃเตเดŸเตเด‚) เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเด‚, เด…เดคเดฟเตฝ เด“เตผเดกเตผ เดšเต†เดฏเตเดค เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เด’เดฐเต เดœเดจเดฑเต‡เดฑเตเดฑเดฑเดพเดฃเต เดชเตเดฐเดพเดฅเดฎเดฟเด• เดธเต‚เดšเดฟเด• เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเต. (เด•เตเดฐเดฎเด‚).
เดธเตเดชเต‡เดธเต เดกเดฟเดกเดฟเดŽเตฝ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

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 เดธเต†เด•เตเด•เตปเดกเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด•เดฎเดพเดฏเดฟ เดจเดฟเตผเดคเตเดคเตเดจเตเดจเต. เด“เดฐเต‹ เด†เดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเด‚ เดฎเตเดฎเตเดชเดพเดฏเดฟ เดฒเตเดตเดฏเตเดŸเต† เดฎเดพเดฒเดฟเดจเตเดฏ เดถเต‡เด–เดฐเดฃเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เดชเต‚เตผเดคเตเดคเดฟเดฏเดพเด•เตเด•เดฟเดฏ เดถเต‡เดทเด‚ เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเตป เดจเดฟเตผเดฌเดจเตเดงเดฟเดคเดจเดพเดตเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต. เด”เดŸเตเดŸเตโ€ŒเดชเตเดŸเตเดŸเต เดฌเดซเดฑเดฟเด‚เด—เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด•เตเดทเดฎเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เด—เดพเตผเดฌเต‡เดœเต เด•เดณเด•เตเดŸเตผ เดชเตเดฐเดตเตผเดคเตเดคเดจเดฐเดนเดฟเดคเดฎเดพเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตโ€Œเดคเตเด•เตŠเดฃเตเดŸเต, เดฌเต†เดžเตเดšเตโ€Œเดฎเดพเตผเด•เตเด•เดฟเดจเต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดคเตเดฐเดฎเต‡ PHP เดชเตเดฐเด•เตเดฐเดฟเดฏ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด•เดฏเตเดณเตเดณเต‚.

* เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เต เด•เตเดฐเดฎเต€เด•เดฐเดฃเด™เตเด™เดณเดฟเตฝ เดตเดฟเดชเตเดฒเดตเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚, เด†เดตเตผเดคเตเดคเดจเด™เตเด™เตพ, เดชเดฟเดถเด•เต เดชเดฐเดฟเดงเดฟ เดŽเดจเตเดจเดฟเดต เดฎเดพเดฑเตเดฑเดพเดจเดพเด•เตเด‚.

เดŸเต†เดธเตเดฑเตเดฑเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ

เดคเดพเดดเต† เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเดšเตเดš เดซเดฒเด™เตเด™เตพ 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-parallel: 1.1.3

* เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด”เดฆเตเดฏเต‹เด—เดฟเด• เด•เดฃเด•เตเดฑเตเดฑเตผ PHP เดชเดคเดฟเดชเตเดชเต > 7.2-เตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ. PHP 7.3-เตฝ เดŽเด•เตเดธเตเดฑเตเดฑเตปเดทเตป เด•เด‚เดชเตˆเตฝ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเดจเตเด‚, เดŽเดจเดฟเด•เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต เดชเดพเดšเตเดšเต.

เดซเดฒเด™เตเด™เตพ

เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดฎเต‹เดกเต

Tarantool เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด’เดฐเต เดฌเตˆเดจเดฑเดฟ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต เดฎเต†เดธเต‡เดœเตเดชเดพเด•เตเด•เต เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดชเดฐเดฎเตเดชเดฐเดฏเดพเด•เตเด•เดพเตป. PECL เด•เดฃเด•เตเดŸเดฑเดฟเตฝ, เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเต‡เดทเตป เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเดŸเต† เด†เดดเดคเตเดคเดฟเตฝ เดฎเดฑเดžเตเดžเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต เด•เต‚เดŸเดพเดคเต† เดฏเต‚เดธเตผเดฒเดพเตปเดกเต เด•เต‹เดกเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเต† เดฌเดพเดงเดฟเด•เตเด•เตเดจเตเดจเต. เดธเดพเดงเตเดฏเดฎเดพเดฃเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเดฟเดฒเตเดฒ. เด’เดฐเต เดถเตเดฆเตเดงเดฎเดพเดฏ PHP เด•เดฃเด•เตเดŸเตผ, เดจเต‡เดฐเต†เดฎเดฑเดฟเดšเตเดšเต, เดธเดพเดงเดพเดฐเดฃ เดŽเตปเด•เต‹เดกเตผ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฟเดšเตเดšเต เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดŽเตปเด•เต‹เดกเดฟเด‚เด—เต เดชเตเดฐเด•เตเดฐเดฟเดฏ เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเต เดจเตฝเด•เตเดจเตเดจเต. เดฌเต‹เด•เตโ€Œเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดฐเดฃเตเดŸเต เดŽเตปเด•เต‹เดกเดฑเตเด•เตพ เดฒเดญเตเดฏเดฎเดพเดฃเต, เด’เดจเตเดจเต เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฃเต msgpack/msgpack-php (เด”เดฆเตเดฏเต‹เด—เดฟเด• MessagePack PECL เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚), เดฎเดฑเตเดฑเตŠเดจเตเดจเต เด“เดฃเดพเดฃเต rybakit/msgpack (เดถเตเดฆเตเดงเดฎเดพเดฏ PHP-เดฏเดฟเตฝ).

เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดฎเตเดชเต, เดชเดฟโ€ŒเดŽเดšเตเดšเตเดชเดฟ เด•เดฃเด•เตเดฑเตเดฑเดฑเดฟเดจเดพเดฏเตเดณเตเดณ เดฎเต†เดธเต‡เดœเตเดชเดพเด•เตเด•เต เดŽเตปโ€Œเด•เต‹เดกเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เดžเด™เตเด™เตพ เด…เดณเด•เตเด•เตเด‚, เด•เต‚เดŸเตเดคเตฝ เดชเดฐเดฟเดถเต‹เดงเดจเด•เดณเดฟเตฝ เดฎเดฟเด•เดšเตเดš เดซเดฒเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจ เด’เดจเตเดจเต เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
PHP เดชเดคเดฟเดชเตเดชเต (Pure) เดตเต‡เด—เดคเดฏเดฟเตฝ PECL เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดคเตเดคเต‡เด•เตเด•เดพเตพ เดคเดพเดดเตเดจเตเดจเดคเดพเดฃเต†เด™เตเด•เดฟเดฒเตเด‚, เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเตเด•เดณเดฟเตฝ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดžเดพเตป เด‡เดชเตเดชเต‹เดดเตเด‚ เดถเตเดชเดพเตผเดถ เดšเต†เดฏเตเดฏเตเดจเตเดจเต rybakit/msgpack, เด•เดพเดฐเดฃเด‚ เด”เดฆเตเดฏเต‹เด—เดฟเด• MessagePack เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเดคเตเดคเดฟเตฝ เดซเต‹เตผเดฎเดพเดฑเตเดฑเต เดธเตเดชเต†เดธเดฟเดซเดฟเด•เตเด•เต‡เดทเตป เดญเดพเด—เดฟเด•เดฎเดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเต‡ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดŸเตเดŸเตเดณเตเดณเต‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดกเดพเดฑเตเดฑ เดคเดฐเด™เตเด™เตพเด•เตเด•เต เดชเดฟเดจเตเดคเตเดฃเดฏเดฟเดฒเตเดฒ, เด…เดคเดฟเดฒเตเดฒเดพเดคเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเต†เดธเดฟเดฎเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ - Tarantool 2.3-เตฝ เด…เดตเดคเดฐเดฟเดชเตเดชเดฟเดšเตเดš เด’เดฐเต เดชเตเดคเดฟเดฏ เดกเดพเดฑเตเดฑ เดคเดฐเด‚) เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เดฎเดฑเตเดฑเตเดณเตเดณเดตเดฐเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดชเตเดฐเดถเตเดจเด™เตเด™เตพ (PHP 7.4-เดจเตเดณเตเดณ เด…เดจเตเดฏเต‹เดœเตเดฏเดค เดชเตเดฐเดถเตเดจเด™เตเด™เตพ เด‰เตพเดชเตเดชเต†เดŸเต†). เดชเตŠเดคเตเดตเต‡, เดชเดฆเตเดงเดคเดฟ เด‰เดชเต‡เด•เตเดทเดฟเดšเตเดšเดคเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดฎเต‹เดกเดฟเตฝ เด•เดฃเด•เตเดฑเตเดฑเดฑเตเด•เดณเตเดŸเต† เดชเตเดฐเด•เดŸเดจเด‚ เด…เดณเด•เตเด•เดพเด‚:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เด—เตเดฐเดพเดซเดฟเตฝ เดจเดฟเดจเตเดจเต เด•เดพเดฃเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเตเดชเต‹เดฒเต†, PHP เด•เดฃเด•เตเดŸเดฑเตเดฎเดพเดฏเดฟ (เด•เตเดฒเดฏเดจเตเดฑเต) เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเตเดฎเตเดชเต‹เตพ PECL เด•เดฃเด•เตเดฑเตเดฑเตผ (Tarantool) เดฎเดฟเด•เดšเตเดš เดชเตเดฐเด•เดŸเดจเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เด‡เดคเต เด†เดถเตเดšเดฐเตเดฏเด•เดฐเดฎเดฒเตเดฒ, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต, เดตเต‡เด—เดค เด•เตเดฑเดžเตเดž เดญเดพเดทเดฏเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเตเดฑเดฎเต‡, เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต: เด“เดฐเต‹ เด•เต‹เดณเดฟเดฒเตเด‚ เด’เดฐเต เดชเตเดคเดฟเดฏ เด’เดฌเตเดœเด•เตเดฑเตเดฑเต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต. เด…เดชเต‡เด•เตเดท ะธ เดชเตเดฐเดคเดฟเด•เดฐเดฃเด‚ (เดธเต†เดฒเด•เตเดŸเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ - เด•เต‚เดŸเดฟ เดฎเดพเดจเดฆเดฃเตเดกเด‚, เด•เต‚เดŸเดพเดคเต† เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต/เด…เดชเตโ€Œเดธเต†เตผเดŸเตเดŸเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ - เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ), เดชเตเดฐเดคเตเดฏเต‡เด• เดธเตเดฅเดพเดชเดจเด™เตเด™เตพ เด•เดฃเด•เตเดทเตป, เดชเดพเด•เตเด•เตผ ะธ เดนเดพเตปเดกเตเดฒเตผ เด…เดตเตผ เด“เดตเตผเดนเต†เดกเตเด‚ เดšเต‡เตผเด•เตเด•เตเดจเตเดจเต. เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚, เดตเดดเด•เตเด•เด‚ เด’เดฐเต เดตเดฟเดฒเดฏเดฟเตฝ เดตเดฐเตเดจเตเดจเต. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเตŠเดคเตเดตเต‡, PHP เดตเตเดฏเดพเด–เตเดฏเดพเดคเดพเดตเต เดจเดฒเตเดฒ เดชเตเดฐเด•เดŸเดจเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เดตเตเดฏเดคเตเดฏเดพเดธเดฎเตเดฃเตเดŸเต†เด™เตเด•เดฟเดฒเตเด‚, เด…เดคเต เดจเดฟเดธเตเดธเดพเดฐเดฎเดพเดฃเต เด•เต‚เดŸเดพเดคเต†, PHP 7.4-เตฝ เดชเตเดฐเต€เดฒเต‹เดกเดฟเด‚เด—เต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, PHP 8-เตฝ JIT เดชเดฐเดพเดฎเตผเดถเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ.

เดจเดฎเตเด•เตเด•เต เดจเต€เด™เตเด™เดพเด‚. Tarantool 2.0 SQL-เดจเต เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต. SQL เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดธเต†เดฒเด•เตเดŸเต, เด‡เตปเดธเต‡เตผเดŸเตเดŸเต, เด…เดชเตเดกเต‡เดฑเตเดฑเต, เดกเดฟเดฒเต€เดฑเตเดฑเต เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เตพ เดจเดŸเดคเตเดคเดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดพเด‚ เด•เต‚เดŸเดพเดคเต† noSQL (เดฌเตˆเดจเดฑเดฟ) เดคเตเดฒเตเดฏเดคเด•เดณเตเดฎเดพเดฏเดฟ เดซเดฒเด™เตเด™เตพ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเตเด•:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
SQL เดซเดฒเด™เตเด™เตพ เดตเดณเดฐเต† เดถเตเดฐเดฆเตเดงเต‡เดฏเดฎเดฒเตเดฒ (เดžเด™เตเด™เตพ เด‡เดชเตเดชเต‹เดดเตเด‚ เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดฎเต‹เดกเต เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เดจเตเดจเต เดžเดพเตป เดจเดฟเด™เตเด™เดณเต† เด“เตผเดฎเตเดฎเดฟเดชเตเดชเดฟเด•เตเด•เดŸเตเดŸเต†). เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดธเดฎเดฏเดคเตเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดžเดพเตป เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด…เดธเตเดตเดธเตเดฅเดจเดพเด•เดฟเดฒเตเดฒ; SQL เดชเดฟเดจเตเดคเตเดฃ เด‡เดชเตเดชเต‹เดดเตเด‚ เดธเดœเต€เดตเดฎเดพเดฏ เดตเดฟเด•เดธเดจเดคเตเดคเดฟเดฒเดพเดฃเต (เดคเดพเดฐเดคเดฎเตเดฏเต‡เดจ เด…เดŸเตเดคเตเดคเดฟเดŸเต†, เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดชเดฟเดจเตเดคเตเดฃ เดšเต‡เตผเดคเตเดคเต เดชเตเดฐเดธเตเดคเดพเดตเดจเด•เตพ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เดฟ) เด•เต‚เดŸเดพเดคเต†, เดชเดŸเตเดŸเดฟเด• เดชเตเดฐเด•เดพเดฐเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดจเตเดจเต เดชเตเดฐเดถเตเดจเด™เตเด™เตพ, SQL เดŽเดžเตเดšเดฟเตป เดญเดพเดตเดฟเดฏเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต‡เดทเดจเตเด•เตพเด•เตเด•เต เดตเดฟเดงเต‡เดฏเดฎเดพเด•เตเด‚.

เด…เดธเดฟเด™เตเด•เต

เดถเดฐเดฟ, เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดซเดฒเด™เตเด™เตพ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป Async เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เดžเด™เตเด™เดณเต† เดŽเด™เตเด™เดจเต† เดธเดนเดพเดฏเดฟเด•เตเด•เตเดฎเต†เดจเตเดจเต เด‡เดชเตเดชเต‹เตพ เดจเต‹เด•เตเด•เดพเด‚. เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเตเด•เตพ เดŽเดดเตเดคเดพเตป, เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เดžเด™เตเด™เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เด•เต‹เดฑเต‚เดŸเตเดŸเดฟเดจเตเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เด’เดฐเต API เดจเตฝเด•เตเดจเตเดจเต. เดจเดฎเตเดฎเตเดŸเต† เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟเด•เตเด•เต เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เด•เตŠเดฑเต‚เดŸเตเดŸเดฟเดจเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ 25 เด†เดฃเต†เดจเตเดจเต เดžเด™เตเด™เตพ เด…เดจเตเดญเดตเดชเดฐเดฎเดพเดฏเดฟ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
10,000 เด•เต‹เดฑเต‚เดŸเตเดŸเดฟเดจเตเด•เดณเดฟเตฝ 25 เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ "เดชเตเดฐเดšเดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเด•", เดŽเดจเตเดคเดพเดฃเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเดคเต†เดจเตเดจเต เด•เดพเดฃเตเด•:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เด“เดฐเต‹ เดธเต†เด•เตเด•เตปเดกเดฟเดฒเตเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ 3 เดฎเดŸเด™เตเด™เต เดตเตผเดฆเตเดงเดฟเดšเตเดšเต tarantool-php/client!

เด–เต‡เดฆเด•เดฐเดฎเต†เดจเตเดจเต เดชเดฑเดฏเดŸเตเดŸเต†, เดชเดฟเด‡เดธเดฟเดŽเตฝ เด•เดฃเด•เตเดฑเตเดฑเตผ เดŽเด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต-เด…เดธเดฟเด™เตเด•เต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด†เดฐเด‚เดญเดฟเดšเตเดšเดฟเดฒเตเดฒ.

SQL-เดจเตเดฑเต† เด•เดพเดฐเตเดฏเดฎเต‹?

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดฎเต‹เดกเดฟเตฝ เดฌเตˆเดจเดฑเดฟ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เดณเตเด‚ SQL เด‰เด‚ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด‚ เดชเดฟเดถเด•เดฟเดจเตเดฑเต† เดฎเดพเตผเดœเดฟเดจเดฟเตฝ เด†เดฏเดฟ.

เดธเตเดตเต‚เตพ

เด‡เดคเตเดคเดตเดฃ เดธเตเดตเต‚เดณเดฟเดจเต เดตเต‡เดฃเตเดŸเดฟเดฏเตเดณเตเดณ เด•เตŠเดฑเต‚เดŸเตเดŸเต€เดจเตเด•เดณเตเดŸเต† เด’เดชเตเดฑเตเดฑเดฟเดฎเตฝ เดŽเดฃเตเดฃเด‚ เดžเด™เตเด™เตพ เดตเต€เดฃเตเดŸเตเด‚ เด•เดฃเตเดŸเต†เดคเตเดคเตเดจเตเดจเต:
Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เดจเดฎเตเด•เตเด•เต 25-เตฝ เดจเดฟเตผเดคเตเดคเดพเด‚. Async เดŽเด•เตเดธเตเดฑเตเดฑเตปเดทเดจเตเดฑเต† เด…เดคเต‡ เดŸเตเดฐเดฟเด•เตเด•เต เดจเดฎเตเด•เตเด•เต เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเด‚ - 10,000 เด•เต‹เตผเดŸเตเดŸเดฟเดจเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ 25 เด“เดชเตเดชเดฑเต‡เดทเดจเตเด•เตพ เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•. เด•เต‚เดŸเดพเดคเต†, เดžเด™เตเด™เตพ เดฎเดฑเตเดฑเตŠเดฐเต เดŸเต†เดธเตเดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เตเด‚, เด…เดคเดฟเตฝ เดžเด™เตเด™เตพ เดŽเดฒเตเดฒเดพ เดœเต‹เดฒเดฟเด•เดณเตเด‚ 2 เดฐเดฃเตเดŸเต เดชเตเดฐเต‹เดธเดธเตเด•เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เตเด‚ (เด…เดคเดพเดฏเดคเต, เด“เดฐเต‹ เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเตเด‚ 5,000 เด•เต‹เดฑเต‚เดŸเตเดŸเดฟเดจเตเด•เดณเดฟเตฝ 25 เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเด‚). เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚ เดธเตเดตเต‚เตพเดชเตเดฐเต‹เดธเดธเต.

เดซเดฒเด‚:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เด’เดฐเต เดชเตเดฐเด•เตเดฐเดฟเดฏเดฏเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, Async-เดจเต† เด…เดชเต‡เด•เตเดทเดฟเดšเตเดšเต เดธเตเดตเต‹เตพ เด•เตเดฑเดšเตเดšเต เด•เตเดฑเดžเตเดž เดซเดฒเด‚ เด•เดพเดฃเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดพเตฝ 2 เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเดฟเตฝ เดšเดฟเดคเตเดฐเด‚ เดจเดพเดŸเด•เต€เดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเตเดจเตเดจเต (เดจเดฎเตเดชเตผ 2 เด†เด•เดธเตเดฎเดฟเด•เดฎเดพเดฏเดฟ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดคเตเดคเดฟเดฒเตเดฒ; เดŽเดจเตเดฑเต† เดฎเต†เดทเต€เดจเดฟเตฝ, เดฎเดฟเด•เดšเตเดš เดซเดฒเด‚ เด•เดพเดฃเดฟเดšเตเดšเดคเต 2 เดชเตเดฐเด•เตเดฐเดฟเดฏเด•เดณเดพเดฃเต).

เดตเดดเดฟเดฏเดฟเตฝ, Async เดŽเด•เตเดธเตเดฑเตเดฑเตปเดทเดจเตเด‚ เดชเตเดฐเต‹เดธเดธเตเดธเตเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เดพเตป เด’เดฐเต API เด‰เดฃเตเดŸเต, เดŽเดจเตเดจเดพเตฝ เด…เดตเดฟเดŸเต† เด’เดจเตเดจเต‹ เด…เดคเดฟเดฒเดงเดฟเด•เดฎเต‹ เดชเตเดฐเต‹เดธเดธเตเดธเตเด•เดณเดฟเตฝ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด’เดฐเต เดตเตเดฏเดคเตเดฏเดพเดธเดตเตเด‚ เดžเดพเตป เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเดฟเดฒเตเดฒ (เดžเดพเตป เดŽเดตเดฟเดŸเต†เดฏเต†เด™เตเด•เดฟเดฒเตเด‚ เด•เตเดดเดชเตเดชเดคเตเดคเดฟเดฒเดพเด•เดพเตป เดธเดพเดงเตเดฏเดคเดฏเตเดฃเตเดŸเต).

SQL vs เดฌเตˆเดจเดฑเดฟ เดชเตเดฐเต‹เดŸเตเดŸเต‹เด•เตเด•เต‹เตพ:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
Async เดชเต‹เดฒเต†, เดฌเตˆเดจเดฑเดฟ, SQL เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด‚ เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดฎเต‹เดกเดฟเตฝ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเต.

เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ

เดธเดฎเดพเดจเตเดคเดฐ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด‚ เด•เต‹เดฑเต‚เดŸเตเดŸเดฟเดจเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดฒเตเดฒ, เดคเตเดฐเต†เดกเตเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเดพเดฏเดคเดฟเดจเดพเตฝ, เดธเดฎเดพเดจเตเดคเดฐ เดคเตเดฐเต†เดกเตเด•เดณเตเดŸเต† เด’เดชเตเดฑเตเดฑเดฟเดฎเตฝ เดŽเดฃเตเดฃเด‚ เดจเดฎเตเด•เตเด•เต เด…เดณเด•เตเด•เดพเด‚:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เดŽเดจเตเดฑเต† เดฎเต†เดทเต€เดจเดฟเตฝ เด‡เดคเต 16 เด†เดฃเต. เดจเดฎเตเด•เตเด•เต 16 เดธเดฎเดพเดจเตเดคเดฐ เดคเตเดฐเต†เดกเตเด•เดณเดฟเตฝ เด•เดฃเด•เตเดฑเตเดฑเตผ เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดซเดฒเด‚ เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดŽเด•เตเดธเตเดฑเตเดฑเตปเดทเดจเตเด•เดณเต‡เด•เตเด•เดพเตพ เดฎเดฟเด•เดšเตเดšเดคเดพเดฃเต (2 เดชเตเดฐเต‹เดธเดธเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เดธเตเดตเต‚เตพ เด•เดฃเด•เตเด•เดพเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ). PECL เด•เดฃเด•เตเดŸเดฑเดฟเดจเต, เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเตเด‚ เด…เดชเตโ€Œเดธเต†เตผเดŸเตเดŸเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเด‚ เดถเต‚เดจเตเดฏเดฎเดพเดฃเต†เดจเตเดจ เด•เดพเดฐเตเดฏเด‚ เดถเตเดฐเดฆเตเดงเดฟเด•เตเด•เตเด•. เดˆ เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เตพ เด’เดฐเต เดชเดฟเดถเด•เต เดฎเต‚เดฒเด‚ เดชเดฐเดพเดœเดฏเดชเตเดชเต†เดŸเตเดŸเดคเดพเดฃเต เด‡เดคเดฟเดจเต เด•เดพเดฐเดฃเด‚ - เด‡เดคเต เดŽเด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต-เดชเดพเดฐเดฒเดฒเดฟเดจเตเดฑเต†เดฏเต‹ เดŽเด•เตโ€Œเดธเตโ€Œเดฑเตเดฑเต-เดŸเดพเดฐเดจเตเดฑเต‹เดฒเดฟเดจเตเดฑเต†เดฏเต‹ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฐเดฃเตเดŸเดฟเดจเตเดฑเต†เดฏเตเด‚ เดคเต†เดฑเตเดฑเดพเดฃเต‹ เดŽเดจเตเดจเต เดŽเดจเดฟเด•เตเด•เดฑเดฟเดฏเดฟเดฒเตเดฒ.

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต SQL เดชเตเดฐเด•เดŸเดจเด‚ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดšเต†เดฏเตเดฏเดพเด‚:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต
เดธเดฟเตปเด•เตเดฐเดฃเดธเต เด†เดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด•เดฃเด•เตเดŸเดฑเตเด•เตพเด•เตเด•เตเดณเตเดณ เด—เตเดฐเดพเดซเตเดฎเดพเดฏเตเดณเตเดณ เดธเดพเดฎเตเดฏเด‚ เดถเตเดฐเดฆเตเดงเดฟเดšเตเดšเต‹?

เด’เดฐเตเดฎเดฟเดšเตเดšเต

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดชเดฐเต€เด•เตเดทเดฟเดšเตเดš เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เดณเตเดŸเต† เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดšเดฟเดคเตเดฐเด‚ เด•เดพเดฃเตเดจเตเดจเดคเดฟเดจเต เด’เดฐเต เด—เตเดฐเดพเดซเดฟเตฝ เดŽเดฒเตเดฒเดพ เดซเดฒเด™เตเด™เดณเตเด‚ เดธเด‚เด—เตเดฐเดนเดฟเด•เตเด•เดพเด‚. เดšเดพเตผเดŸเตเดŸเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดชเตเดคเดฟเดฏ เดŸเต†เดธเตเดฑเตเดฑเต เดšเต‡เตผเด•เตเด•เดพเด‚, เด…เดคเต เด‡เดคเตเดตเดฐเต† เดšเต†เดฏเตเดคเดฟเดŸเตเดŸเดฟเดฒเตเดฒ - เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ Async coroutines เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เดพเด‚*. เดฎเตเด•เดณเดฟเดฒเตเดณเตเดณ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด†เดถเดฏเด‚ เด‡เดคเดฟเดจเด•เด‚ เดคเดจเตเดจเต† เด‰เดฃเตเดŸเต เดšเตผเดšเตเดš เดšเต†เดฏเตเดคเต เดฐเดšเดฏเดฟเดคเดพเด•เตเด•เตพ, เดŽเดจเตเดจเดพเตฝ เดธเดฎเดตเดพเดฏเดคเตเดคเดฟเดฒเต†เดคเตเดคเดฟเดฏเดฟเดฒเตเดฒ, เดจเดฟเด™เตเด™เตพ เด…เดคเต เดธเตเดตเดฏเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚.

* เดธเดฎเดพเดจเตเดคเดฐเดฎเดพเดฏเดฟ เดธเตเดตเต‚เตพ เด•เตŠเดฑเต‚เดŸเตเดŸเต€เดจเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจเดคเต เดธเดพเดงเตเดฏเดฎเดฒเตเดฒ; เดˆ เดตเดฟเดชเตเดฒเต€เด•เดฐเดฃเด™เตเด™เตพ เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดฒเตเดฒเต†เดจเตเดจเต เดคเต‹เดจเตเดจเตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เด…เดจเตเดคเดฟเดฎ เดซเดฒเด™เตเด™เตพ:

Async, Swoole, Parallel เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต Tarantool-เดจเดพเดฏเดฟ PHP เด•เดฃเด•เตเดŸเดฑเตเด•เตพ เดคเตเดตเดฐเดฟเดคเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเต

เดชเด•เดฐเด‚ เด’เดฐเต เดจเดฟเด—เดฎเดจเดคเตเดคเดฟเตฝ เดŽเดจเตเดจ

เดŽเดจเตเดฑเต† เด…เดญเดฟเดชเตเดฐเดพเดฏเดคเตเดคเดฟเตฝ, เดซเดฒเด™เตเด™เตพ เดคเดฟเด•เดšเตเดšเตเด‚ เดฏเต‹เด—เตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ, เดšเดฟเดฒ เด•เดพเดฐเดฃเด™เตเด™เดณเดพเตฝ เด‡เดคเต เดชเดฐเดฟเดงเดฟเดฏเดฒเตเดฒเต†เดจเตเดจเต เดŽเดจเดฟเด•เตเด•เต เด‰เดฑเดชเตเดชเตเดฃเตเดŸเต! เดจเดฟเด™เตเด™เตพเด•เตเด•เดพเดฏเดฟ เดฎเดพเดคเตเดฐเดฎเตเดณเตเดณ เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเตฝ เด‡เดคเต เดคเต€เดฐเตเดฎเดพเดจเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต‹, เด•เตเดฑเดžเตเดž เดชเตเดฐเดฏเดคเตเดจเดคเตเดคเดฟเตฝ เด’เดฐเต เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดŸเดฟเดธเดฟเดชเดฟ เด•เดฃเด•เตเดฑเตเดฑเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดคเตเดฐเดคเตเดคเต‹เดณเด‚ "เดžเต†เด•เตเด•เดฟเดชเตเดชเดฟเดŸเดฟเด•เตเด•เดพเตป" เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเต เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ เดฐเดธเด•เดฐเดฎเดพเดฏ เด’เดฐเต เดชเดฐเต€เด•เตเดทเดฃเดฎเดพเดฏเดฟเดฐเตเดจเตเดจเต เดŽเดจเตเดจเต† เดธเด‚เดฌเดจเตเดงเดฟเดšเตเดšเดฟเดŸเดคเตเดคเต‹เดณเด‚ เด‡เดคเต เดŽเดจเตเดจเต เดžเดพเตป เดชเดฑเดฏเตเด‚. เดฌเต†เดžเตเดšเตเดฎเดพเตผเด•เตเด•เตเด•เตพ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด†เดถเดฏเด™เตเด™เตพ เดจเดฟเด™เตเด™เตพเด•เตเด•เตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เดณเตเดŸเต† เดชเตเตพ เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดชเดฐเดฟเด—เดฃเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดŽเดจเดฟเด•เตเด•เต เดธเดจเตเดคเต‹เดทเดฎเตเดฃเตเดŸเต. เดฒเต‹เดžเตเดšเต เดจเดฟเตผเดฆเตเดฆเต‡เดถเด™เตเด™เดณเตเด‚ เดซเดฒเด™เตเด™เดณเตเดฎเตเดณเตเดณ เดŽเดฒเตเดฒเดพ เด•เต‹เดกเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด•เดฎเดพเดฏเดฟ เดชเตเดฐเดธเดฟเดฆเตเดงเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต เดถเต‡เด–เดฐเด™เตเด™เตพ.

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•