Tarantool เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเฉเจชเจฐ-เจซเจพเจธเจŸ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจ•เจฐเจจเจพ เจ•เจฟเฉฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ

เจชเฉฐเจœ เจธเจพเจฒ เจชเจนเจฟเจฒเจพเจ‚ เจฎเฉˆเจ‚ เจคเจฐเจจเจŸเฉ‚เจฒ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€, เจชเจฐ เจซเจฟเจฐ เจ‡เจน เจฎเฉ‡เจฐเฉ‡ เจฒเจˆ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเจพเฅค เจชเจฐ เจนเจพเจฒ เจนเฉ€ เจตเจฟเฉฑเจš เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจตเฉˆเจฌเจฟเจจเจพเจฐ เจฆเจพ เจ†เจฏเฉ‹เจœเจจ เจ•เฉ€เจคเจพ เจœเจฟเฉฑเจฅเฉ‡ เจฎเฉˆเจ‚ เจนเฉˆเจกเฉ‚เจช เจฌเจพเจฐเฉ‡ เจ—เฉฑเจฒ เจ•เฉ€เจคเฉ€, เจ‡เจธ เจฌเจพเจฐเฉ‡ เจ•เจฟ MapReduce เจ•เจฟเจตเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจ‰เฉฑเจฅเฉ‡ เจฎเฉˆเจจเฉ‚เฉฐ เจธเจตเจพเจฒ เจชเฉเฉฑเจ›เจฟเจ† เจ—เจฟเจ† - "เจ‡เจธ เจ•เฉฐเจฎ เจฒเจˆ เจคเจฐเจจเจŸเฉ‚เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฟเจ‰เจ‚ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€?"

เจ‰เจคเจธเฉเจ•เจคเจพ เจฆเฉ€ เจ–เจผเจพเจคเจฐ, เจฎเฉˆเจ‚ เจ‡เจธ 'เจคเฉ‡ เจตเจพเจชเจธ เจœเจพเจฃ เจฆเจพ เจซเฉˆเจธเจฒเจพ เจ•เฉ€เจคเจพ, เจจเจตเฉ€เจจเจคเจฎ เจธเฉฐเจธเจ•เจฐเจฃ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เฉ€เจคเฉ€ - เจ…เจคเฉ‡ เจ‡เจธ เจตเจพเจฐ เจฎเฉˆเจจเฉ‚เฉฐ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจชเจธเฉฐเจฆ เจ†เจ‡เจ†. เจนเฉเจฃ เจฎเฉˆเจ‚ เจฆเจฟเจ–เจพเจตเจพเจ‚เจ—เจพ เจ•เจฟ เจคเจฐเจจเจŸเฉ‚เจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเจงเจพเจฐเจจ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจ•เจฟเจตเฉ‡เจ‚ เจฒเจฟเจ–เจฃเฉ€ เจนเฉˆ, เจ‡เจธเจจเฉ‚เฉฐ เจฒเฉ‹เจก เจ•เจฐเฉ‹ เจ…เจคเฉ‡ เจชเฉเจฐเจฆเจฐเจธเจผเจจ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‹, เจ…เจคเฉ‡ เจคเฉเจธเฉ€เจ‚ เจฆเฉ‡เจ–เฉ‹เจ—เฉ‡ เจ•เจฟ เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจ•เฉเจ เจ•เจฟเฉฐเจจเจพ เจ†เจธเจพเจจ เจ…เจคเฉ‡ เจ เฉฐเจกเจพ เจนเฉˆเฅค

Tarantool เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเฉเจชเจฐ-เจซเจพเจธเจŸ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจ•เจฐเจจเจพ เจ•เจฟเฉฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ

เจคเจฐเจจเจŸเฉ‚เจฒ เจ•เฉ€ เจนเฉˆ

เจŸเจพเจฐเจจเจŸเฉ‚เจฒ เจ†เจชเจฃเฉ‡ เจ†เจช เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ…เจคเจฟ-เจคเฉ‡เจœเจผ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเจพ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจ•เฉ‹เจˆ เจตเฉ€ เจกเจพเจŸเจพ เจชเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจคเฉเจธเฉ€เจ‚ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹เฅค เจจเจพเจฒ เจนเฉ€, เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจจเจ•เจฒ เจ•เจฐเฉ‹, เจธเจผเจพเจฐเจก - เจ…เจฐเจฅเจพเจค, เจ•เจˆ เจธเจฐเจตเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฑเจกเฉ€ เจฎเจพเจคเจฐเจพ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจตเฉฐเจกเฉ‹ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจคเฉ‹เจ‚ เจจเจคเฉ€เจœเจฟเจ†เจ‚ เจจเฉ‚เฉฐ เจœเฉ‹เฉœเฉ‹ - เจจเฉเจ•เจธ-เจธเจนเจฟเจฃเจธเจผเฉ€เจฒ เจฎเจพเจธเจŸเจฐ-เจฎเจพเจธเจŸเจฐ เจฒเจฟเฉฐเจ• เจฌเจฃเจพเจ“เฅค

เจฆเฉ‚เจœเจพ, เจ‡เจน เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจฐเจตเจฐ เจนเฉˆเฅค เจคเฉเจธเฉ€เจ‚ เจ‡เจธ 'เจคเฉ‡ เจ†เจชเจฃเฉ€เจ†เจ‚ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจเจพเจ‚ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจกเฉ‡เจŸเจพ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ‰เจฆเจพเจนเจฐเจฃ เจตเจœเฉ‹เจ‚, เจ•เฉเจ เจจเจฟเจฏเจฎเจพเจ‚ เจฆเฉ‡ เจ…เจจเฉเจธเจพเจฐ เจฌเฉˆเจ•เจ—เฉเจฐเจพเจ‰เจ‚เจก เจตเจฟเฉฑเจš เจชเฉเจฐเจพเจฃเฉ€เจ†เจ‚ เจเจ‚เจŸเจฐเฉ€เจ†เจ‚ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• Http เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจธเจฟเฉฑเจงเจพ Tarantula เจตเจฟเฉฑเจš เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพ: เจ‰เจนเจจเจพเจ‚ เจฆเจพ เจจเฉฐเจฌเจฐ เจฆเจฟเจ“, เจ‰เฉฑเจฅเฉ‡ เจจเจตเจพเจ‚ เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เฉ‹ เจ…เจคเฉ‡ เจ‡เจน เจธเจญ เจ‡เฉฑเจ• เจฎเจพเจธเจŸเจฐ เจจเฉ‚เฉฐ เจ˜เจŸเจพเจ“เฅค

เจฎเฉˆเจ‚ เจ‡เฉฑเจ• เจฒเฉ‡เจ– เจชเฉœเฉเจนเจฟเจ† เจ•เจฟ เจ•เจฟเจตเฉ‡เจ‚ เจฎเฉเฉฐเจกเจฟเจ†เจ‚ เจจเฉ‡ เจ‡เฉฑเจ• 300-เจฒเจพเจˆเจจ เจธเฉฐเจฆเฉ‡เจธเจผ เจ•เจคเจพเจฐ เจฌเจฃเจพเจˆ, เจœเฉ‹ เจธเจฟเจฐเจซ เจนเฉฐเจเฉ‚เจ†เจ‚ เจ…เจคเฉ‡ เจฅเจฐเฉˆเจธเจผ เจ•เจฐเจฆเจพ เจนเฉˆ - เจ‰เจนเจจเจพเจ‚ เจ•เฉ‹เจฒ เจชเฉเจฐเจคเฉ€ เจธเจ•เจฟเฉฐเจŸ 20 เจธเฉเจจเฉ‡เจนเจฟเจ†เจ‚ เจฆเฉ€ เจ˜เฉฑเจŸเฉ‹ เจ˜เฉฑเจŸ เจ•เจพเจฐเจ—เฉเจœเจผเจพเจฐเฉ€ เจนเฉˆ. เจ‡เฉฑเจฅเฉ‡ เจคเฉเจธเฉ€เจ‚ เจ…เจธเจฒ เจตเจฟเฉฑเจš เจ˜เฉเฉฐเจฎ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจฌเจนเฉเจค เจตเฉฑเจกเฉ€ เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจฟเจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจ‡เจน เจธเจŸเฉ‹เจฐ เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ‡ เจœเจพเจฃเจ—เฉ‡, เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ PostgreS เจตเจฟเฉฑเจšเฅค

เจฒเจ—เจญเจ— เจ…เจœเจฟเจนเฉ‡ เจ‡เฉฑเจ• เจธเจฐเจตเจฐ, เจธเจฟเจฐเจซ เจธเจงเจพเจฐเจจ, เจฎเฉˆเจ‚ เจ‡เจธ เจฒเฉ‡เจ– เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เจฐเจจ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เจฐเจพเจ‚เจ—เจพ.

เจธเฉˆเจŸเจฟเฉฐเจ—

เจŸเฉˆเจธเจŸ เจฒเจˆ, เจฎเฉˆเจ‚ เจคเจฟเฉฐเจจ เจธเจŸเฉˆเจ‚เจกเจฐเจก เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจธเจผเฉเจฐเฉ‚ เจ•เฉ€เจคเฉ€เจ†เจ‚ - เจ‡เฉฑเจ• 20 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจนเจพเจฐเจก เจกเจฐเจพเจˆเจต, เจ‰เจฌเฉฐเจŸเฉ‚ 18.04เฅค 2 เจตเจฐเจšเฉเจ…เจฒ CPU เจ…เจคเฉ‡ 4 เจ—เฉ€เจ—เจพเจฌเจพเจˆเจŸ เจฎเฉˆเจฎเฉ‹เจฐเฉ€เฅค

เจ…เจธเฉ€เจ‚ เจŸเจพเจฐเจจเจŸเฉ‚เจฒ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ - เจ‡เฉฑเจ• เจฌเฉˆเจธเจผ เจธเจ•เฉเจฐเจฟเจชเจŸ เจšเจฒเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจœเจพเจ‚ เจ‡เฉฑเจ• เจฐเจฟเจชเฉ‹เจœเจผเจŸเจฐเฉ€ เจœเฉ‹เฉœเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจŸเจพเจฐเจจเจŸเฉ‚เจฒ เจจเฉ‚เฉฐ เจธเจฅเจพเจชเจฟเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจธเจ•เฉเจฐเจฟเจชเจŸ เจจเจพเจฒ เจฒเจฟเฉฐเจ• - (เจ•เจฐเจฒ -เจเจฒ https://tarantool.io/installer.sh | VER=2.4 sudo -E bash)เฅค เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ•เจฎเจพเจ‚เจกเจพเจ‚ เจนเจจ เจœเจฟเจตเฉ‡เจ‚ เจ•เจฟ:

tarantoolctl เจŸเจพเจฐเฉˆเจ‚เจŸเฉเจฒเจพ เจฎเฉŒเจ•เจฟเจ†เจ‚ เจฆเฉ‡ เจชเฉเจฐเจฌเฉฐเจงเจจ เจฒเจˆ เจฎเฉเฉฑเจ– เจ•เจฎเจพเจ‚เจก เจนเฉˆเฅค
/etc/tarantool - เจ‡เฉฑเจฅเฉ‡ เจชเฉ‚เจฐเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจนเฉˆ.
var/log/tarantool - เจ‡เฉฑเจฅเฉ‡ เจฒเฉŒเจ— เจนเจจเฅค
var/lib/tarantool - เจ‡เฉฑเจฅเฉ‡ เจกเฉ‡เจŸเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ เจตเจฟเฉฑเจš เจตเฉฐเจกเจฟเจ† เจ—เจฟเจ† เจนเฉˆเฅค

เจ‡เฉฐเจธเจŸเฉˆเจ‚เจธ-เจ‰เจชเจฒเจฌเจง เจ…เจคเฉ‡ เจ‡เฉฐเจธเจŸเฉˆเจ‚เจธ-เจธเจฎเจฐเฉฑเจฅ เจซเฉ‹เจฒเจกเจฐ เจนเจจ - เจ‡เจธ เจตเจฟเฉฑเจš เจ•เฉ€ เจฒเจพเจ‚เจš เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ - เจฒเฉ‚เจ† เจ•เฉ‹เจก เจตเจพเจฒเฉ€ เจ‡เฉฐเจธเจŸเฉˆเจ‚เจธ เจ•เฉŒเจ‚เจซเจฟเจ—เจฐเฉ‡เจธเจผเจจ เจซเจพเจˆเจฒ, เจœเฉ‹ เจฆเฉฑเจธเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจ•เจฟเจนเฉœเฉ€เจ†เจ‚ เจชเฉ‹เจฐเจŸเจพเจ‚ 'เจคเฉ‡ เจธเฉเจฃเจฆเจพ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจ•เจฟเจนเฉœเฉ€ เจฎเฉˆเจฎเฉ‹เจฐเฉ€ เจ‰เจชเจฒเจฌเจง เจนเฉˆ, เจตเจฟเจจเจพเจ‡เจฒ เจ‡เฉฐเจœเจฃ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚, เจ•เฉ‹เจก เจœเฉ‹ เจธเจผเฉเจฐเฉ‚เจ†เจคเฉ€ เจธเจฎเฉ‡เจ‚ เจ•เฉฐเจฎ เจ•เจฐเจฆเจพ เจนเฉˆ เจธเจฐเจตเจฐ, เจธเจผเจพเจฐเจกเจฟเฉฐเจ—, เจ•เจคเจพเจฐเจพเจ‚, เจชเฉเจฐเจพเจฃเฉ‡ เจกเฉ‡เจŸเจพ เจจเฉ‚เฉฐ เจฎเจฟเจŸเจพเจ‰เจฃเจพ, เจ†เจฆเจฟเฅค

เจ‰เจฆเจพเจนเจฐเจฃเจพเจ‚ PostgreS เจตเจพเจ‚เจ— เจ•เฉฐเจฎ เจ•เจฐเจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ€เจ†เจ‚ เจ•เจˆ เจ•เจพเจชเฉ€เจ†เจ‚ เจšเจฒเจพเจ‰เจฃเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจœเฉ‹ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉ‹เจฐเจŸเจพเจ‚ 'เจคเฉ‡ เจนเฉˆเจ‚เจ— เจนเฉเฉฐเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจชเจคเจพ เจšเจฒเจฆเจพ เจนเฉˆ เจ•เจฟ เจ‡เฉฑเจ• เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ•เจˆ เจกเจพเจŸเจพเจฌเฉ‡เจธ เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฒเจพเจ‚เจš เจ•เฉ€เจคเฉ€เจ†เจ‚ เจœเจพเจ‚เจฆเฉ€เจ†เจ‚ เจนเจจ, เจœเฉ‹ เจ•เจฟ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเฉ‹เจฐเจŸเจพเจ‚ 'เจคเฉ‡ เจฒเจŸเจ•เจฆเฉ€เจ†เจ‚ เจนเจจเฅค เจ‰เจนเจจเจพเจ‚ เจฆเฉ€เจ†เจ‚ เจชเฉ‚เจฐเฉ€ เจคเจฐเฉเจนเจพเจ‚ เจตเฉฑเจ–เจฐเฉ€เจ†เจ‚ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจนเฉ‹ เจธเจ•เจฆเฉ€เจ†เจ‚ เจนเจจ - เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจฃ เจ‡เฉฑเจ• เจคเจฐเจ• เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเฉ€ เจนเฉˆ, เจฆเฉ‚เจœเฉ€ - เจฆเฉ‚เจœเฉ€เฅค

เจ‰เจฆเจพเจนเจฐเจฃ เจชเฉเจฐเจฌเฉฐเจงเจจ

เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ tarantoolctl เจ•เจฎเจพเจ‚เจก เจนเฉˆ เจœเฉ‹ เจธเจพเจจเฉ‚เฉฐ Tarantula เจ‰เจฆเจพเจนเจฐเจจเจพเจ‚ เจฆเจพ เจชเฉเจฐเจฌเฉฐเจงเจจ เจ•เจฐเจจ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ€ เจนเฉˆเฅค เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, tarantoolctl เจšเฉˆเฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจธเฉฐเจฐเจšเจจเจพ เจซเจพเจˆเจฒ เจฆเฉ€ เจœเจพเจ‚เจš เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจ•เจนเฉ‡เจ—เฉ€ เจ•เจฟ เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจธเฉฐเจŸเฉˆเจ•เจธ เจ—เจฒเจคเฉ€เจ†เจ‚ เจจเจนเฉ€เจ‚ เจนเจจ เจคเจพเจ‚ เจซเจพเจˆเจฒ เจ เฉ€เจ• เจนเฉˆเฅค

เจคเฉเจธเฉ€เจ‚ เจ‰เจฆเจพเจนเจฐเจฃ เจฆเฉ€ เจธเจฅเจฟเจคเฉ€ เจฆเฉ‡เจ– เจธเจ•เจฆเฉ‡ เจนเฉ‹ - tarantoolctl status example. เจ‡เจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚, เจคเฉเจธเฉ€เจ‚ เจธเจผเฉเจฐเฉ‚, เจฌเฉฐเจฆ, เจฎเฉเฉœ เจšเจพเจฒเฉ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹.

เจ‡เฉฑเจ• เจตเจพเจฐ เจ‡เฉฑเจ• เจ‰เจฆเจพเจนเจฐเจจ เจšเฉฑเจฒ เจฐเจนเฉ€ เจนเฉˆ, เจ‡เจธ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ‡ เจฆเฉ‹ เจคเจฐเฉ€เจ•เฉ‡ เจนเจจเฅค

1. เจชเฉเจฐเจฌเฉฐเจงเจ•เฉ€ เจ•เฉฐเจธเฉ‹เจฒ

เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, Tarantool เจ‡เฉฑเจ• เจธเจพเจ•เจŸ เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ Tarantula เจจเฉ‚เฉฐ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจ•เจฐเจจ เจฒเจˆ เจธเจงเจพเจฐเจจ ASCII เจŸเฉˆเจ•เจธเจŸ เจญเฉ‡เจœเจฆเจพ เจนเฉˆเฅค เจ•เฉฐเจธเฉ‹เจฒ เจจเจพเจฒ เจ•เจจเฉˆเจ•เจธเจผเจจ เจนเจฎเฉ‡เจธเจผเจพ เจเจกเจฎเจฟเจจ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจ…เจงเฉ€เจจ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ•เฉ‹เจˆ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ, เจ‡เจธ เจฒเจˆ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจŸเจพเจฐเฉˆเจ‚เจŸเฉเจฒเจพ เจจเฉ‚เฉฐ เจฌเจพเจนเจฐเฉ‹เจ‚ เจ•เฉฐเจŸเจฐเฉ‹เจฒ เจ•เจฐเจจ เจฒเจˆ เจ•เฉฐเจธเฉ‹เจฒ เจชเฉ‹เจฐเจŸ เจจเฉ‚เฉฐ เจฌเจพเจนเจฐ เจ•เฉฑเจขเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจจเจนเฉ€เจ‚ เจนเฉˆเฅค

เจ‡เจธ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ Tarantoolctl เจเจ‚เจŸเจฐ เจ‡เฉฐเจธเจŸเฉˆเจ‚เจธ เจจเจพเจฎ เจฆเจฐเจœ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจ•เจฎเจพเจ‚เจก เจ•เฉฐเจธเฉ‹เจฒ เจจเฉ‚เฉฐ เจฒเจพเจ‚เจš เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ เจเจกเจฎเจฟเจจ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจฆเฉ‡ เจคเฉŒเจฐ 'เจคเฉ‡ เจœเฉเฉœ เจœเจพเจตเฉ‡เจ—เฉ€เฅค เจ•เฉฐเจธเฉ‹เจฒ เจชเฉ‹เจฐเจŸ เจจเฉ‚เฉฐ เจ•เจฆเฉ‡ เจตเฉ€ เจฌเจพเจนเจฐ เจจเจพ เจ•เฉฑเจขเฉ‹ - เจ‡เจธ เจจเฉ‚เฉฐ เจฏเฉ‚เจจเจฟเจŸ เจธเจพเจ•เจŸ เจฆเฉ‡ เจคเฉŒเจฐ เจคเฉ‡ เจ›เฉฑเจกเจฃเจพ เจฌเจฟเจนเจคเจฐ เจนเฉˆ. เจซเจฟเจฐ เจธเจฟเจฐเจซ เจ‰เจน เจฒเฉ‹เจ• เจœเจฟเจจเฉเจนเจพเจ‚ เจ•เฉ‹เจฒ เจธเจพเจ•เจŸ เจคเฉฑเจ• เจฒเจฟเจ–เจฃ เจฆเฉ€ เจชเจนเฉเฉฐเจš เจนเฉˆ, เจ‰เจน เจŸเจฐเจพเจ‚เจŸเฉเจฒเจพ เจจเจพเจฒ เจœเฉเฉœเจจ เจฆเฉ‡ เจฏเฉ‹เจ— เจนเฉ‹เจฃเจ—เฉ‡.

เจชเฉเจฐเจฌเฉฐเจงเจ•เฉ€ เจ•เฉฐเจฎเจพเจ‚ เจฒเจˆ เจ‡เจธ เจตเจฟเจงเฉ€ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆเฅค เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ, เจฆเฉ‚เจœเฉ€ เจตเจฟเจงเฉ€ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเฉ‹ - เจฌเจพเจˆเจจเจฐเฉ€ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ.

2. เจ‡เฉฑเจ• เจ–เจพเจธ เจชเฉ‹เจฐเจŸ เจจเจพเจฒ เจœเฉเฉœเจจ เจฒเจˆ เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจจเจพ

เจธเฉฐเจฐเจšเจจเจพ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจธเฉเจฃเจจ เจฆเจพ เจจเจฟเจฐเจฆเฉ‡เจธเจผ เจนเฉˆ, เจœเฉ‹ เจฌเจพเจนเจฐเฉ€ เจธเฉฐเจšเจพเจฐ เจฒเจˆ เจชเฉ‹เจฐเจŸ เจ–เฉ‹เจฒเฉเจนเจฆเจพ เจนเฉˆเฅค เจ‡เจน เจชเฉ‹เจฐเจŸ เจฌเจพเจˆเจจเจฐเฉ€ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจจเจพเจฒ เจตเจฐเจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจชเฉเจฐเจฎเจพเจฃเจฟเจ•เจคเจพ เจ‰เฉฑเจฅเฉ‡ เจฏเฉ‹เจ— เจนเฉเฉฐเจฆเฉ€ เจนเฉˆเฅค

เจ‡เจธ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจฒเจˆ, เจชเฉ‹เจฐเจŸ เจจเฉฐเจฌเจฐ เจจเจพเจฒ tarantoolctl connect เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆเฅค เจ‡เจธ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡, เจคเฉเจธเฉ€เจ‚ เจฐเจฟเจฎเฉ‹เจŸ เจธเจฐเจตเจฐเจพเจ‚ เจจเจพเจฒ เจœเฉเฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจชเฉเจฐเจฎเจพเจฃเฉ€เจ•เจฐเจจ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹ เจ…เจคเฉ‡ เจตเฉฑเจ–-เจตเฉฑเจ– เจชเจนเฉเฉฐเจš เจ…เจงเจฟเจ•เจพเจฐ เจฆเฉ‡ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค

เจกเจพเจŸเจพ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจ…เจคเฉ‡ เจฌเจพเจ•เจธ เจฎเฉ‹เจกเฉ€เจŠเจฒ

เจ•เจฟเจ‰เจ‚เจ•เจฟ เจŸเจพเจฐเจจเจŸเฉ‚เจฒ เจ‡เฉฑเจ• เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจธเจฐเจตเจฐ เจฆเฉ‹เจจเฉ‹เจ‚ เจนเฉˆ, เจ‡เจธ เจตเจฟเฉฑเจš เจ•เจˆ เจฎเจพเจกเจฟเจŠเจฒ เจนเจจเฅค เจ…เจธเฉ€เจ‚ เจฌเจพเจ•เจธ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเจพเจ‚ - เจ‡เจน เจกเฉ‡เจŸเจพ เจฆเฉ‡ เจจเจพเจฒ เจ•เฉฐเจฎ เจจเฉ‚เฉฐ เจฒเจพเจ—เฉ‚ เจ•เจฐเจฆเจพ เจนเฉˆเฅค เจœเจฆเฉ‹เจ‚ เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจ•เจธเฉ‡ เจตเจฟเฉฑเจš เจ•เฉเจ เจฒเจฟเจ–เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ 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

เจ‰เจธ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจชเฉเจฐเจพเจ‡เจฎเจฐเฉ€ เจ‡เฉฐเจกเฉˆเจ•เจธ - เจชเฉเจฐเจพเจ‡เจฎเจฐเฉ€ - เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจœเจฟเจธ เจฆเฉเจ†เจฐเจพ เจ…เจธเฉ€เจ‚ เจกเฉ‡เจŸเจพ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚. เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš, เจœเฉ‡เจ•เจฐ เจ•เฉ‹เจˆ เจฎเจพเจชเจฆเฉฐเจก เจจเจฟเจฐเจงเจพเจฐเจค เจจเจนเฉ€เจ‚ เจ•เฉ€เจคเฉ‡ เจ—เจ เจนเจจ, เจคเจพเจ‚ เจชเฉเจฐเจพเจˆเจฎเจฐ เจ‡เฉฐเจกเฉˆเจ•เจธ เจฒเจˆ เจนเจฐเฉ‡เจ• เจเจ‚เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจชเจนเจฟเจฒเจพ เจ–เฉ‡เจคเจฐ เจตเจฐเจคเจฟเจ† เจœเจพเจตเฉ‡เจ—เจพเฅค

เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจฎเจนเจฟเจฎเจพเจจ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจจเฉ‚เฉฐ เจ‡เฉฑเจ• เจ—เฉเจฐเจพเจ‚เจŸ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจœเจฟเจธ เจฆเฉ‡ เจคเจนเจฟเจค เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจฌเจพเจˆเจจเจฐเฉ€ เจชเฉเจฐเฉ‹เจŸเฉ‹เจ•เฉ‹เจฒ เจฐเจพเจนเฉ€เจ‚ เจœเฉเฉœเจฆเฉ‡ เจนเจพเจ‚เฅค เจ…เจธเฉ€เจ‚ เจชเฉ‚เจฐเฉ€ เจธเจฅเจฟเจคเฉ€ เจตเจฟเฉฑเจš เจชเฉœเฉเจนเจจ, เจฒเจฟเจ–เจฃ เจ…เจคเฉ‡ เจšเจฒเจพเจ‰เจฃ เจฆเฉ€ เจ‡เจœเจพเจœเจผเจค เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจฐเจตเจพเจ‡เจคเฉ€ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจฆเฉ‡ เจฎเฉเจ•เจพเจฌเจฒเฉ‡, เจ‡เฉฑเจฅเฉ‡ เจธเจญ เจ•เฉเจ เจ•เจพเจซเจผเฉ€ เจธเจงเจพเจฐเจจ เจนเฉˆ. เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจธเจชเฉ‡เจธ เจนเฉˆ - เจ‡เฉฑเจ• เจ…เจœเจฟเจนเจพ เจ–เฉ‡เจคเจฐ เจœเจฟเจธ เจตเจฟเฉฑเจš เจธเจพเจกเจพ เจกเฉ‡เจŸเจพ เจฌเจธ เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจนเจฐเฉ‡เจ• เจเจ‚เจŸเจฐเฉ€ เจจเฉ‚เฉฐ เจŸเฉ‚เจชเจฒ เจ•เจฟเจนเจพ เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค เจ‡เจน เจ‡เฉฑเจ• MessagePack เจตเจฟเฉฑเจš เจชเฉˆเจ• เจ•เฉ€เจคเจพ เจ—เจฟเจ† เจนเฉˆเฅค เจ‡เจน เจ‡เฉฑเจ• เจฌเจนเฉเจค เจตเจงเฉ€เจ† เจซเจพเจฐเจฎเฉˆเจŸ เจนเฉˆ - เจ‡เจน เจฌเจพเจˆเจจเจฐเฉ€ เจนเฉˆ เจ…เจคเฉ‡ เจ˜เฉฑเจŸ เจฅเจพเจ‚ เจฒเฉˆเจ‚เจฆเจพ เจนเฉˆ - 18 เจฌเจพเจ‡เจŸ เจฌเจจเจพเจฎ 27เฅค

Tarantool เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเฉเจชเจฐ-เจซเจพเจธเจŸ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจ•เจฐเจจเจพ เจ•เจฟเฉฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ

เจ‰เจธ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจ•เจพเจซเจผเฉ€ เจธเฉเจตเจฟเจงเจพเจœเจจเจ• เจนเฉˆ. เจฒเจ—เจญเจ— เจนเจฐ เจฒเจพเจˆเจจ, เจนเจฐ เจกเฉ‡เจŸเจพ เจเจ‚เจŸเจฐเฉ€ เจตเจฟเฉฑเจš เจฌเจฟเจฒเจ•เฉเจฒ เจตเฉฑเจ–เจฐเฉ‡ เจ•เจพเจฒเจฎ เจนเฉ‹ เจธเจ•เจฆเฉ‡ เจนเจจเฅค

เจ…เจธเฉ€เจ‚ 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>

เจชเจนเจฟเจฒเฉ‡ เจ–เฉ‡เจคเจฐ เจจเฉ‚เฉฐ เจชเฉเจฐเจพเจ‡เจฎเจฐเฉ€ เจ•เฉเฉฐเจœเฉ€ เจตเจœเฉ‹เจ‚ เจตเจฐเจคเจฟเจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจ‡เจธเจฒเจˆ เจ‡เจน เจตเจฟเจฒเฉฑเจ–เจฃ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆเฅค เจ…เจธเฉ€เจ‚ เจ•เจพเจฒเจฎเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจฆเฉเจ†เจฐเจพ เจธเฉ€เจฎเจฟเจค เจจเจนเฉ€เจ‚ เจนเจพเจ‚, เจ‡เจธเจฒเจˆ เจ…เจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจœเจฟเฉฐเจจเจพ เจšเจพเจนเฉ‹ เจกเฉ‡เจŸเจพ เจชเจพ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค เจ‰เจน MessagePack เจซเจพเจฐเจฎเฉˆเจŸ เจตเจฟเฉฑเจš เจฆเจฐเจธเจพเจ เจ—เจ เจนเจจ, เจœเจฟเจธเจฆเจพ เจฎเฉˆเจ‚ เจ‰เฉฑเจชเจฐ เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจนเฉˆเฅค

เจกเจพเจŸเจพ เจ†เจ‰เจŸเจชเฉเฉฑเจŸ

เจซเจฟเจฐ เจ…เจธเฉ€เจ‚ เจธเจฟเจฒเฉˆเจ•เจŸ เจ•เจฎเจพเจ‚เจก เจจเจพเจฒ เจกเจพเจŸเจพ เจกเจฟเจธเจชเจฒเฉ‡ เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเจพเจ‚เฅค

เจ•เฉเฉฐเจœเฉ€ เจจเจพเจฒ Box.example.select {1} เจฒเฉ‹เฉœเฉ€เจฆเฉ€ เจเจ‚เจŸเจฐเฉ€ เจชเฉเจฐเจฆเจฐเจธเจผเจฟเจค เจ•เจฐเฉ‡เจ—เจพเฅค เจœเฉ‡เจ•เจฐ เจ…เจธเฉ€เจ‚ เจ•เฉเฉฐเจœเฉ€ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚, เจคเจพเจ‚ เจ…เจธเฉ€เจ‚ เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจฎเฉŒเจœเฉ‚เจฆ เจธเจพเจฐเฉ‡ เจฐเจฟเจ•เจพเจฐเจก เจฆเฉ‡เจ–เจพเจ‚เจ—เฉ‡เฅค เจ‰เจน เจธเจพเจฐเฉ‡ เจ•เจพเจฒเจฎเจพเจ‚ เจฆเฉ€ เจธเฉฐเจ–เจฟเจ† เจตเจฟเฉฑเจš เจตเฉฑเจ–เจฐเฉ‡ เจนเจจ, เจชเจฐ เจ‡เฉฑเจฅเฉ‡, เจธเจฟเจงเจพเจ‚เจค เจตเจฟเฉฑเจš, เจ•เจพเจฒเจฎเจพเจ‚ เจฆเฉ€ เจ•เฉ‹เจˆ เจงเจพเจฐเจจเจพ เจจเจนเฉ€เจ‚ เจนเฉˆ - เจซเฉ€เจฒเจก เจจเฉฐเจฌเจฐ เจนเจจ.

เจคเฉเจธเฉ€เจ‚ เจœเจฟเฉฐเจจเจพ เจšเจพเจนเฉเฉฐเจฆเฉ‡ เจนเฉ‹ เจ“เจจเจพ เจนเฉ€ เจกเจพเจŸเจพ เจนเฉ‹ เจธเจ•เจฆเจพ เจนเฉˆเฅค เจ…เจคเฉ‡ เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจธเจพเจจเฉ‚เฉฐ เจฆเฉ‚เจœเฉ‡ เจ–เฉ‡เจคเจฐ เจตเจฟเฉฑเจš เจ‰เจนเจจเจพเจ‚ เจฆเฉ€ เจ–เฉ‹เจœ เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ. เจ…เจœเจฟเจนเจพ เจ•เจฐเจจ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจจเจตเจพเจ‚ เจธเฉˆเจ•เฉฐเจกเจฐเฉ€ เจ‡เฉฐเจกเฉˆเจ•เจธ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚.


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 GB เจจเฉ‚เฉฐ เจกเจฟเจธเจ• 'เจคเฉ‡ เจกเฉฐเจช เจ•เจฐเจจเจพ เจ‡เฉฑเจ• เจ…เจœเจฟเจนเจพ เจตเจฟเจšเจพเจฐ เจนเฉˆเฅค

เจ‡เจธเจฆเฉ‡ เจฒเจˆ, เจฒเจฟเจ–เจฃ-เจ…เฉฑเจ—เฉ‡ เจฒเฉŒเจ— เจฆเฉ€ เจงเจพเจฐเจจเจพ เจฆเฉ€ เจ•เจพเจข เจ•เฉฑเจขเฉ€ เจ—เจˆ เจ…เจคเฉ‡ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ€ เจ—เจˆเฅค เจ‡เจธเจฆเฉ€ เจฎเจฆเจฆ เจจเจพเจฒ, เจกเฉ‡เจŸเจพ เจตเจฟเฉฑเจš เจนเจฐ เจ‡เฉฑเจ• เจคเจฌเจฆเฉ€เจฒเฉ€ เจฒเจˆ, เจ‡เฉฑเจ• เจ›เฉ‹เจŸเฉ€ เจฒเจฟเจ–เจค-เจ…เฉฑเจ—เฉ‡ เจฒเฉŒเจ— เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจฐเจฟเจ•เจพเจฐเจก เจฌเจฃเจพเจ‡เจ† เจœเจพเจ‚เจฆเจพ เจนเฉˆเฅค

เจšเฉˆเจ•เจชเฉเจ†เจ‡เฉฐเจŸ เจคเฉฑเจ• เจนเจฐเฉ‡เจ• เจเจ‚เจŸเจฐเฉ€ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจš เจธเจŸเฉ‹เจฐ เจ•เฉ€เจคเฉ€ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ. เจ‡เจนเจจเจพเจ‚ เจซเจพเจˆเจฒเจพเจ‚ เจฒเจˆ, เจ…เจธเฉ€เจ‚ เจ†เจ•เจพเจฐ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ - เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, 64 mb. เจœเจฆเฉ‹เจ‚ เจ‡เจน เจญเจฐ เจœเจพเจ‚เจฆเจพ เจนเฉˆ, เจคเจพเจ‚ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจฆเฉ‚เจœเฉ€ เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจœเจพเจฃเฉ€ เจธเจผเฉเจฐเฉ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเฉ€ เจนเฉˆ. เจ…เจคเฉ‡ เจฐเฉ€เจธเจŸเจพเจฐเจŸ เจนเฉ‹เจฃ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, Tarantool เจ†เจ–เจฐเฉ€ เจšเฉˆเจ•เจชเฉเจ†เจ‡เฉฐเจŸ เจคเฉ‹เจ‚ เจ เฉ€เจ• เจนเฉ‹ เจœเจพเจ‚เจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ เจซเจฟเจฐ เจฌเจพเจ…เจฆ เจฆเฉ‡ เจธเจพเจฐเฉ‡ เจŸเฉเจฐเจพเจ‚เจœเฉˆเจ•เจธเจผเจจเจพเจ‚ เจจเฉ‚เฉฐ เจฐเฉ‹เจฒ เจ•เจฐเจฆเจพ เจนเฉˆ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‡เจน เจฌเฉฐเจฆ เจจเจนเฉ€เจ‚ เจนเฉ‹ เจœเจพเจ‚เจฆเจพเฅค

Tarantool เจตเจฟเฉฑเจš, เจคเฉเจธเฉ€เจ‚ เจ‡เฉฑเจ• เจธเฉเจชเจฐ-เจซเจพเจธเจŸ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจ…เจคเฉ‡ เจ‰เจนเจจเจพเจ‚ เจจเจพเจฒ เจ•เฉฐเจฎ เจ•เจฐเจจ เจฒเจˆ เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจจเฉ‚เฉฐ เจœเฉ‹เฉœ เจธเจ•เจฆเฉ‡ เจนเฉ‹เฅค เจ‡เฉฑเจฅเฉ‡ เจ‡เจน เจ•เจฐเจจเจพ เจ•เจฟเฉฐเจจเจพ เจ†เจธเจพเจจ เจนเฉˆ

เจ…เจœเจฟเจนเฉ€ เจฐเจฟเจ•เจพเจฐเจกเจฟเฉฐเจ— เจ•เจฐเจจ เจฒเจˆ, เจคเฉเจนเจพเจจเฉ‚เฉฐ 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 เจธเจฐเจตเจฐ เจจเฉ‚เฉฐ เจธเจพเจกเฉ‡ เจŸเจพเจฐเฉˆเจ‚เจŸเฉเจฒเจพ เจธเจฐเจตเจฐ, 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)

เจœเจฟเฉฑเจฅเฉ‡ เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš เจฐเจพเจŠเจŸเจฐ:เจฐเฉ‚เจŸ({เจตเจฟเจงเจพ = 'GET', เจฎเจพเจฐเจ— = '/เจŸเฉ‹เจ•เจจ'}, เจซเฉฐเจ•เจธเจผเจจ() เจ…เจธเฉ€เจ‚ เจซเฉฐเจ•เจธเจผเจจ เจจเฉ‚เฉฐ เจ•เจพเจฒ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ‡เฉฑเจ• เจŸเฉ‹เจ•เจจ เจคเจฟเจ†เจฐ เจ•เจฐเจฆเฉ‡ เจนเจพเจ‚เฅค

เจฒเจพเจˆเจจ เจธเจฅเจพเจจเจ• เจŸเฉ‹เจ•เจจ = เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจธเจŸเฉเจฐเจฟเฉฐเจ— (32) 32 เจ…เฉฑเจ–เจฐเจพเจ‚ เจฆเฉ€ เจ‡เฉฑเจ• เจฌเฉ‡เจคเจฐเจคเฉ€เจฌ เจธเจคเจฐ เจนเฉˆเฅค
เจ‡เจจ เจฒเจพเจ‡เจจ เจธเจฅเจพเจจเจ• เจ†เจ–เจฐเฉ€ = box.space.example:len() เจ…เจธเฉ€เจ‚ เจ†เจ–เจฐเฉ€ เจคเฉฑเจค เจจเฉ‚เฉฐ เจฌเจพเจนเจฐ เจ•เฉฑเจขเจฆเฉ‡ เจนเจพเจ‚เฅค
เจ…เจคเฉ‡ เจฒเจพเจˆเจจ เจตเจฟเฉฑเจš box.space.example: insert{ last + 1, เจŸเฉ‹เจ•เจจ } เจ…เจธเฉ€เจ‚ เจ†เจชเจฃเฉ‡ เจกเฉ‡เจŸเจพเจฌเฉ‡เจธ เจตเจฟเฉฑเจš เจกเฉ‡เจŸเจพ เจฒเจฟเจ–เจฆเฉ‡ เจนเจพเจ‚, เจฏเจพเจจเฉ€ เจ•เจฟ, เจ…เจธเฉ€เจ‚ เจธเจฟเจฐเจซเจผ ID เจจเฉ‚เฉฐ 1 เจฆเฉเจ†เจฐเจพ เจตเจงเจพ เจฆเจฟเฉฐเจฆเฉ‡ เจนเจพเจ‚เฅค เจ‡เจน เจจเจพ เจธเจฟเจฐเจซเจผ เจ…เจœเจฟเจนเฉ‡ เจฌเฉ‡เจขเฉฐเจ—เฉ‡ เจคเจฐเฉ€เจ•เฉ‡ เจจเจพเจฒ เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆเฅค Tarantula เจฆเฉ‡ เจ‡เจธ เจ•เฉ‡เจธ เจฒเจˆ เจ•เฉเจฐเจฎ เจนเจจ.

เจ…เจธเฉ€เจ‚ เจ‰เฉฑเจฅเฉ‡ เจŸเฉ‹เจ•เจจ เจฒเจฟเจ–เจฆเฉ‡ เจนเจพเจ‚เฅค

เจ‡เจธ เจคเจฐเฉเจนเจพเจ‚, เจ…เจธเฉ€เจ‚ เจ‡เฉฑเจ• เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจเจชเจฒเฉ€เจ•เฉ‡เจธเจผเจจ เจฒเจฟเจ–เฉ€. เจคเฉเจธเฉ€เจ‚ เจคเฉเจฐเฉฐเจค เจกเฉ‡เจŸเจพ เจคเฉฑเจ• เจชเจนเฉเฉฐเจš เจ•เจฐ เจธเจ•เจฆเฉ‡ เจนเฉ‹, เจ…เจคเฉ‡ เจฌเจพเจ•เจธ เจฎเฉ‹เจกเฉ€เจŠเจฒ เจคเฉเจนเจพเจกเฉ‡ เจฒเจˆ เจธเจพเจฐเฉ‡ เจ—เฉฐเจฆเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเฉ‡เจ—เจพเฅค

เจ‡เจน 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 เจธเจฎเฉ‚เจน เจฌเจฒเฉŒเจ— 'เจคเฉ‡ เจชเฉเจฐเจ•เจพเจธเจผเจฟเจค เจ•เฉ€เจคเจพ เจœเจพเจตเฉ‡เจ—เจพ, เจ…เจคเฉ‡ เจ…เจธเฉ€เจ‚ เจจเจฟเจธเจผเจšเจค เจคเฉŒเจฐ 'เจคเฉ‡ เจ‡เจธ เจธเจฎเฉฑเจ—เจฐเฉ€ เจตเจฟเฉฑเจš เจ‡เจธเจฆเจพ เจ‡เฉฑเจ• เจฒเจฟเฉฐเจ• เจธเจผเจพเจฎเจฒ เจ•เจฐเจพเจ‚เจ—เฉ‡เฅค

เจœเฉ‡เจ•เจฐ เจคเฉเจธเฉ€เจ‚ เจ‰เจนเจจเจพเจ‚ เจธเจฎเจพเจ—เจฎเจพเจ‚ เจตเจฟเฉฑเจš เจธเจผเจพเจฎเจฒ เจนเฉ‹เจฃ เจตเจฟเฉฑเจš เจฆเจฟเจฒเจšเจธเจชเฉ€ เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹ เจœเจฟเฉฑเจฅเฉ‡ เจ…เจธเฉ€เจ‚ เจ‡เจนเจจเจพเจ‚ เจšเฉ€เจœเจผเจพเจ‚ เจจเฉ‚เฉฐ เจ”เจจเจฒเจพเจˆเจจ เจฌเจฃเจพเจ‰เจ‚เจฆเฉ‡ เจนเจพเจ‚ เจ…เจคเฉ‡ เจ…เจธเจฒ เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฑเจš เจธเจตเจพเจฒ เจชเฉเฉฑเจ›เจฆเฉ‡ เจนเฉ‹, เจคเจพเจ‚ เจ‡เจธ เจจเจพเจฒ เจœเฉเฉœเฉ‹ REBRAIN เจšเฉˆเจจเจฒ เจฆเฉเจ†เจฐเจพ DevOps.

เจœเฉ‡เจ•เจฐ เจคเฉเจนเจพเจจเฉ‚เฉฐ เจ•เจฒเจพเจ‰เจก 'เจคเฉ‡ เจœเจพเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจœเจพเจ‚ เจคเฉเจนเจพเจกเฉ‡ เจฌเฉเจจเจฟเจ†เจฆเฉ€ เจขเจพเจ‚เจšเฉ‡ เจฌเจพเจฐเฉ‡ เจธเจตเจพเจฒ เจนเจจ, เจ‡เฉฑเจ• เจฌเฉ‡เจจเจคเฉ€ เจฆเจฐเจœ เจ•เจฐเจจ เจฒเจˆ เจฎเฉเจซเจผเจค เจฎเจนเจฟเจธเฉ‚เจธ เจ•เจฐเฉ‹.

PS เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจชเฉเจฐเจคเฉ€ เจฎเจนเฉ€เจจเจพ 2 เจฎเฉเจซเจค เจ†เจกเจฟเจŸ เจนเจจ, เจธเจผเจพเจ‡เจฆ เจคเฉเจนเจพเจกเจพ เจชเฉเจฐเฉ‹เจœเฉˆเจ•เจŸ เจ‰เจนเจจเจพเจ‚ เจตเจฟเฉฑเจšเฉ‹เจ‚ เจ‡เฉฑเจ• เจนเฉ‹เจตเฉ‡เจ—เจพเฅค

เจธเจฐเฉ‹เจค: www.habr.com

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹