Tarantool DBMS-เตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต

เดนเดฒเต‹, เดžเดพเตป DBMS-เดจเดพเดฏเดฟ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต เดŸเดพเดฐเดจเตเดฑเต‚เตพ Mail.ru เด—เตเดฐเต‚เดชเตเดชเต เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดš เด’เดฐเต เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดพเดฃเต, เด…เดคเต เด‰เดฏเตผเดจเตเดจ เดชเตเดฐเด•เดŸเดจเดฎเตเดณเตเดณ DBMS เด‰เด‚ Lua เดญเดพเดทเดฏเดฟเดฒเตเดณเตเดณ เด’เดฐเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดธเต†เตผเดตเดฑเตเด‚ เดธเด‚เดฏเต‹เดœเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดจเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณ เดชเดฐเดฟเดนเดพเดฐเด™เตเด™เดณเตเดŸเต† เด‰เดฏเตผเดจเตเดจ เดตเต‡เด—เดค เด•เตˆเดตเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเตเด‚, DBMS-เดจเตเดฑเต† เด‡เตป-เดฎเต†เดฎเตเดฎเดฑเดฟ เดฎเต‹เดกเดฟเดจเตเดณเตเดณ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด‚ เดกเดพเดฑเตเดฑเดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เด’เดฐเตŠเดฑเตเดฑ เดตเดฟเดฒเดพเดธ เดธเตเดฅเดฒเดคเตเดคเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฌเดฟเดธเดฟเดจเดธเต เดฒเต‹เดœเดฟเด•เต เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเดจเตเดณเตเดณ เด•เดดเดฟเดตเตเด‚ เด•เดพเดฐเดฃเด‚. เด…เดคเต‡ เดธเดฎเดฏเด‚, ACID เด‡เดŸเดชเดพเดŸเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเดพเดฑเตเดฑ เดธเตเดฅเดฟเดฐเดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เตเดจเตเดจเต (เดกเดฟเดธเตเด•เดฟเตฝ เด’เดฐเต WAL เดฒเต‹เด—เต เดชเดฐเดฟเดชเดพเดฒเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดจเตเดจเต). เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดจเต เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด‚ เดทเดพเตผเดกเดฟเด‚เด—เดฟเดจเตเด‚ เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดชเดฟเดจเตเดคเตเดฃเดฏเตเดฃเตเดŸเต. เดชเดคเดฟเดชเตเดชเต 2.1 เดฎเตเดคเตฝ, SQL เดญเดพเดทเดฏเดฟเดฒเตเดณเตเดณ เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เดŸเดพเดฐเดจเตเดฑเต‚เตพ เด“เดชเตเดชเตบ เดธเต‹เดดเตโ€Œเดธเดพเดฃเต, เดฒเดณเดฟเดคเดฎเดพเด•เตเด•เดฟเดฏ เดฌเดฟเดŽเดธเตโ€Œเดกเดฟ เดฒเตˆเดธเตปเดธเดฟเดจเต เด•เต€เดดเดฟเตฝ เดฒเตˆเดธเตปเดธเตเดณเตเดณเดคเดพเดฃเต. เด’เดฐเต เดตเดพเดฃเดฟเดœเตเดฏ เดŽเดจเตเดฑเตผเดชเตเดฐเตˆเดธเต เดชเดคเดฟเดชเตเดชเตเด‚ เด‰เดฃเตเดŸเต.

Tarantool DBMS-เตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต
เดถเด•เตเดคเดฟ เด…เดจเตเดญเดตเดฟเด•เตเด•เตเด•! (...เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดชเตเดฐเด•เดŸเดจเด‚ เด†เดธเตเดตเดฆเดฟเด•เตเด•เตเด•)

เดฎเตเด•เดณเดฟเตฝ เดชเดฑเดžเตเดžเดตเดฏเต†เดฒเตเดฒเดพเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เดณเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด‰เดฏเตผเดจเตเดจ เดฒเต‹เดกเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด†เด•เตผเดทเด•เดฎเดพเดฏ เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเดพเดฏเดฟ เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดจเต† เดฎเดพเดฑเตเดฑเตเดจเตเดจเต. เด…เดคเตเดคเดฐเด‚ เดชเตเดฐเดฏเต‹เด—เด™เตเด™เดณเดฟเตฝ, เดชเดฒเดชเตเดชเต‹เดดเตเด‚ เดกเดพเดฑเตเดฑ เดชเด•เตผเดชเตเดชเต†เดŸเตเด•เตเด•เตฝ เด†เดตเดถเตเดฏเดฎเดพเดฃเต.

เดฎเตเด•เดณเดฟเตฝ เดธเต‚เดšเดฟเดชเตเดชเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดจเต เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดกเดพเดฑเตเดฑ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด‰เดฃเตเดŸเต. เดฎเดพเดธเตเดฑเตเดฑเตผ เดฒเต‹เด—เดฟเตฝ (WAL) เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดŽเดฒเตเดฒเดพ เด‡เดŸเดชเดพเดŸเตเด•เดณเตเด‚ เดชเด•เตผเดชเตเดชเตเด•เดณเดฟเตฝ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต เด…เดคเดฟเดจเตเดฑเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดคเดคเตเดตเด‚. เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด…เดคเตเดคเดฐเด‚ เดชเด•เตผเดชเตเดชเตเด•เตพ (เดžเด™เตเด™เตพ เด…เดคเดฟเดจเต† เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดณเดฟเด•เตเด•เตเด‚ เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒ) เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดคเต†เดฑเตเดฑเต เดธเดนเดฟเดทเตเดฃเตเดค เด‰เดฑเดชเตเดชเดพเด•เตเด•เดพเดจเตเด‚ เด•เต‚เดŸเดพเดคเต†/เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด•เตเดฒเดธเตเดฑเตเดฑเตผ เดจเต‹เดกเตเด•เตพเด•เตเด•เดฟเดŸเดฏเดฟเตฝ เดฑเต€เดกเดฟเด‚เด—เต เดฒเต‹เดกเต เดตเดฟเดคเดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดพเดจเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต.

Tarantool DBMS-เตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต
เด…เดฐเดฟ. 1. เด’เดฐเต เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเดจเตเดณเตเดณเดฟเดฒเต† เดชเด•เตผเดชเตเดชเต

เด’เดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเตฝ เดธเตƒเดทเตเดŸเดฟเดšเตเดš เดกเดพเดฑเตเดฑ เดฎเดฑเตเดฑเตŠเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดฒเต‡เด•เตเด•เต เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด‚ เดจเดฟเดฐเต€เด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฎเดพเดฏเดฟ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดพเดฃเต เด‡เดคเดฐ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเดจเตเดฑเต† เด‰เดฆเดพเดนเดฐเดฃเด‚. เดชเดฟเดจเตเดจเต€เดŸเตเดณเตเดณ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เด’เดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚ เด‰เดฏเตผเดจเตเดจ เดคเดฒเด‚ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป - เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฌเดฟเดธเดฟเดจเดธเต เดฒเต‹เดœเดฟเด•เต เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป. เด†. เดžเด™เตเด™เตพ DBMS-เตฝ เดจเดฟเตผเดฎเตเดฎเดฟเดšเตเดš เด’เดฐเต เดฑเต†เดกเดฟเดฎเต†เดฏเตเดกเต เดธเตŠเดฒเตเดฏเต‚เดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดžเด™เตเด™เตพ เดตเดฟเด•เดธเดฟเดชเตเดชเดฟเดšเตเดšเต†เดŸเตเด•เตเด•เตเดจเตเดจ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดธเตเดตเดจเตเดคเด‚ เดชเด•เตผเดชเตเดชเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•. เดˆ เดธเดฎเต€เดชเดจเดคเตเดคเดฟเดจเต เด—เตเดฃเด™เตเด™เดณเตเด‚ เดฆเต‹เดทเด™เตเด™เดณเตเดฎเตเดฃเตเดŸเต. เดจเดฎเตเด•เตเด•เต เดจเต‡เดŸเตเดŸเด™เตเด™เตพ เดชเดŸเตเดŸเดฟเด•เดชเตเดชเต†เดŸเตเดคเตเดคเดพเด‚.

1. เดŸเตเดฐเดพเดซเดฟเด•เต เดธเต‡เดตเดฟเด‚เด—เตเดธเต:

  • เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŽเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด‚ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ, เดชเด•เตเดทเต‡ เด…เดคเดฟเดจเตเดฑเต† เด’เดฐเต เดญเดพเด—เด‚ เดฎเดพเดคเตเดฐเด‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดšเดฟเดฒ เดชเดŸเตเดŸเดฟเด•เด•เตพ, เด…เดตเดฏเตเดŸเต† เดšเดฟเดฒ เดจเดฟเดฐเด•เตพ เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด’เดฐเต เดจเดฟเดถเตเดšเดฟเดค เดฎเดพเดจเดฆเดฃเตเดกเด‚ เดชเดพเดฒเดฟเด•เตเด•เตเดจเตเดจ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดŽเดจเตเดจเดฟเดต เดฎเดพเดคเตเดฐเดฎเต‡ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเต‚);
  • เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต (เดŸเดฐเดจเตเดฑเต‚เดณเดฟเดจเตเดฑเต† เดจเดฟเดฒเดตเดฟเดฒเต† เดชเดคเดฟเดชเตเดชเต - 1.10-เตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต) เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดธเดฟเตปเด•เตเดฐเดฃเดธเต (เดŸเดฐเดจเตเดฑเต‚เดณเดฟเดจเตเดฑเต† เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเตฝ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป) เดฎเต‹เดกเดฟเตฝ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เดจเดŸเดคเตเดคเตเดจเตเดจ เดฒเต‹-เดฒเต†เดตเตฝ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดธเต†เดทเดจเตเด•เดณเดฟเตฝ เด‰เดฏเตผเดจเตเดจ เดฒเต†เดตเตฝ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดจเดŸเดคเตเดคเดพเด‚ (เด…เดคเดพเดฏเดคเต, เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เด†เดฆเตเดฏเด‚ เดกเดพเดฑเตเดฑเดฏเต† เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต - เด’เดฐเต เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเต†เดทเตป เดกเดพเดฑเตเดฑ, เดคเตเดŸเตผเดจเตเดจเต เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เด’เดฐเต เดคเดพเตฝเด•เตเด•เดพเดฒเดฟเด• เดตเดฟเดฐเดพเดฎเดฎเตเดฃเตเดŸเต, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เด…เดŸเตเดคเตเดค เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเต†เดทเตป เดธเด‚เดญเดตเดฟเด•เตเด•เตเดจเตเดจเต, เดฎเตเดคเดฒเดพเดฏเดต);
  • เด’เดฐเต เดฑเต†เด•เตเด•เต‹เตผเดกเต เดจเดฟเดฐเดตเดงเดฟ เดคเดตเดฃ เดฎเดพเดฑเดฟเดฏเดฟเดŸเตเดŸเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต† เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเต เดฎเดพเดคเตเดฐเดฎเต‡ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเต‚ (เดฒเต‹-เดฒเต†เดตเตฝ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เดฎเดพเดธเตเดฑเตเดฑเดฑเดฟเตฝ เดตเดฐเตเดคเตเดคเดฟเดฏ เดŽเดฒเตเดฒเดพ เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตเด‚ เดชเด•เตผเดชเตเดชเตเด•เดณเดฟเตฝ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เดชเตเดฒเต‡ เดšเต†เดฏเตเดฏเตเด‚).

2. เดตเดฟเดฆเต‚เดฐ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเตเด•เตพ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจ HTTP เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเตฝ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเด•เตพ เด’เดจเตเดจเตเดฎเดฟเดฒเตเดฒ.

Tarantool DBMS-เตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต
เด…เดฐเดฟ. 2. HTTP-เดฏเดฟเดฒเต‚เดŸเต†เดฏเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต

3. เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เด˜เดŸเดจเด•เตพ เด’เดจเตเดจเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเดฎเต†เดจเตเดจเดฟเดฒเตเดฒ (เด•เต‚เดŸเดพเดคเต†, เดชเตŠเดคเตเดตเดพเดฏ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดตเตเดฏเดคเตเดฏเดธเตเดค DBMS-เด•เตพ, เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เดญเดพเดทเด•เตพ, เดชเตเดฒเดพเดฑเตเดฑเตโ€Œเดซเต‹เดฎเตเด•เตพ เดฎเตเดคเดฒเดพเดฏเดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเตป เดชเต‹เดฒเตเด‚ เดธเดพเดงเดฟเด•เตเด•เตเด‚).

Tarantool DBMS-เตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต
เด…เดฐเดฟ. 3. เดตเตˆเดตเดฟเดงเตเดฏเดฎเดพเตผเดจเตเดจ เดธเด‚เดตเดฟเดงเดพเดจเด™เตเด™เดณเดฟเดฒเต† เด…เดจเตเด•เดฐเดฃเด‚

เดชเต‹เดฐเดพเดฏเตเดฎ เดŽเดจเตเดคเต†เดจเตเดจเดพเตฝ, เดถเดฐเดพเดถเดฐเดฟ, เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเด‚เด—เต เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเต‡เด•เตเด•เดพเตพ เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเดพเดฃเต / เดšเต†เดฒเดตเต‡เดฑเดฟเดฏเดคเดพเดฃเต, เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด‡เดทเตเดŸเดพเดจเตเดธเตƒเดคเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚, เดจเดฟเด™เตเด™เดณเตเดŸเต‡เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดฐเตเด‚.

เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ เดฎเต‡เตฝเดชเตเดชเดฑเดžเตเดž เด—เตเดฃเด™เตเด™เตพ เดจเดฟเตผเดฃเดพเดฏเด•เดฎเดพเดฃเต†เด™เตเด•เดฟเตฝ (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เด…เดตเดถเตเดฏเดฎเดพเดฏ เด’เดฐเต เดตเตเดฏเดตเดธเตเดฅเดฏเดพเดฃเต), เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด…เตผเดคเตเดฅเดฎเดพเด•เตเด•เตเดจเตเดจเต. Tarantool DBMS-เตฝ เดนเตˆ-เดฒเต†เดตเตฝ เดกเดพเดฑเตเดฑ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดจเดฟเดฐเดตเดงเดฟ เดตเดดเดฟเด•เตพ เดจเต‹เด•เตเด•เดพเด‚.

เดŸเตเดฐเดพเดซเดฟเด•เต เด•เตเดฑเดฏเตเด•เตเด•เตฝ

เด…เดคเดฟเดจเดพเตฝ, เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เด—เตเดฃเด™เตเด™เดณเดฟเดฒเตŠเดจเตเดจเต เดŸเตเดฐเดพเดซเดฟเด•เต เดฒเดพเดญเดฎเดพเดฃเต. เดˆ เดจเต‡เดŸเตเดŸเด‚ เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏเดฟ เดธเดพเด•เตเดทเดพเดคเตเด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เด“เดฐเต‹ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเต†เดทเดจเดฟเดฒเตเด‚ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต เด•เตเดฑเดฏเตเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚, เดธเต†เดทเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚, เดกเดพเดฑเตเดฑ เดฑเดฟเดธเต€เดตเตผ เด‰เดฑเดตเดฟเดŸเดตเตเดฎเดพเดฏเดฟ เดธเดฎเดจเตเดตเดฏเดฟเดชเตเดชเดฟเด•เตเด•เดฃเด‚ (เด•เตเดฑเดžเตเดžเดคเต เดชเด•เตผเดชเตเดชเต†เดŸเตเด•เตเด•เดฒเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด† เดญเดพเด—เดคเตเดคเดฟเดจเต†เด™เตเด•เดฟเดฒเตเด‚) เดŽเดจเตเดจเดคเต เดจเดพเด‚ เดฎเดฑเด•เตเด•เดฐเตเดคเต.

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

เดจเดŸเดชเตเดชเดพเด•เตเด•เดฒเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เดฎเดฑเตเดฑเตŠเดฐเต เดชเดฐเดฟเดนเดพเดฐเด‚, เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดฐเดธเต€เดคเต เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เตเด• เดŽเดจเตเดจเดคเดพเดฃเต. เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เด“เดฐเต‹ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเต†เดทเดจเดฟเดฒเตเด‚, เดŽเดฒเตเดฒเดพ เดกเดพเดฑเตเดฑเดฏเตเด‚ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต, เด…เดคเดฟเดจเตเดฑเต† เดฐเดธเต€เดคเต เดธเตเดตเต€เด•เตผเดคเตเดคเดพเดตเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ. เด‡เดคเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป, เดจเดฟเด™เตเด™เตพ เด‰เดฑเดตเดฟเดŸ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต เดฌเต‚เดณเดฟเดฏเตป เด•เต‹เดณเด‚ เดšเต‡เตผเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, is_transferred). เดฑเดฟเดธเต€เดตเตผ เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดจเตเดฑเต† เดฐเดธเต€เดคเต เด…เด‚เด—เต€เด•เดฐเดฟเด•เตเด•เตเด•เดฏเดพเดฃเต†เด™เตเด•เดฟเตฝ, เด…เดจเตเดฌเดจเตเดง เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต true, เด…เดคเดฟเดจเตเดถเต‡เดทเด‚ เดชเตเดฐเดตเต‡เดถเดจเด‚ เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเตเด•เดณเดฟเตฝ เด‰เตพเดชเตเดชเต†เดŸเตเดจเตเดจเดฟเดฒเตเดฒ. เดˆ เดจเดŸเดชเตเดชเดพเด•เตเด•เตฝ เด“เดชเตเดทเดจเต เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฆเต‹เดทเด™เตเด™เดณเตเดฎเตเดฃเตเดŸเต. เด†เดฆเตเดฏเด‚, เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เด“เดฐเต‹ เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดจเตเด‚, เด’เดฐเต เด…เด‚เด—เต€เด•เดพเดฐเด‚ เดœเดจเดฑเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดตเต‡เดฃเด‚. เดเด•เดฆเต‡เดถเด‚ เดชเดฑเดžเตเดžเดพเตฝ, เด‡เดคเต เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต เด‡เดฐเดŸเตเดŸเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเดคเตเด‚ เดฑเต—เดฃเตเดŸเต เดŸเตเดฐเดฟเดชเตเดชเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด‡เดฐเดŸเตเดŸเดฟเดฏเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‡เด•เตเด•เต เดจเดฏเดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเดชเตเดชเต†เดŸเตเดคเตเดคเดพเดตเตเดจเตเดจเดคเดพเดฃเต. เดฐเดฃเตเดŸเดพเดฎเดคเดพเดฏเดฟ, เด’เดฐเต‡ เดฑเต†เด•เตเด•เต‹เตผเดกเต เดจเดฟเดฐเดตเดงเดฟ เดฑเดฟเดธเต€เดตเดฑเตเด•เตพเด•เตเด•เต เด…เดฏเดฏเตโ€Œเด•เตเด•เดพเดจเตเดณเตเดณ เดธเดพเดงเตเดฏเดคเดฏเดฟเดฒเตเดฒ (เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เด†เดฆเตเดฏ เดฑเดฟเดธเต€เดตเตผ เดคเดจเดฟเด•เตเด•เตเด‚ เดฎเดฑเตเดฑเตเดณเตเดณเดตเตผเด•เตเด•เตเด‚ เดฐเดธเต€เดคเต เดธเตเดฅเดฟเดฐเต€เด•เดฐเดฟเด•เตเด•เตเด‚).

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

เดฎเตเดฎเตเดชเดคเตเดคเต† เดธเดฎเต€เดชเดจเด‚ เดšเต†เดฑเตเดคเดพเดฏเดฟ เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดฑเดคเตเดคเดฟเดจเตเดฑเต† เด•เดพเดฐเตเดฏเด•เตเดทเดฎเดค เดฎเต†เดšเตเดšเดชเตเดชเต†เดŸเตเดคเตเดคเดพเตป เด•เดดเดฟเดฏเตเด‚. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดŸเตเดฐเดพเด•เตเด•เตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดณเด‚ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดพเดฏเดฟ เดžเด™เตเด™เตพ เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏ เดคเดฐเด‚ (เดจเต€เดฃเตเดŸ เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏ) เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚. เด•เต‹เดณเดคเตเดคเดฟเดจเต เดชเต‡เดฐเดฟเดŸเดพเด‚ row_ver. เด“เดฐเต‹ เดคเดตเดฃ เดฑเต†เด•เตเด•เต‹เตผเดกเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดฎเตเดชเต‹เดดเตเด‚/เดชเดฐเดฟเดทเตโ€Œเด•เตเด•เดฐเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดฎเตเดชเต‹เดดเตเด‚ เดˆ เด•เต‹เดณเดคเตเดคเดฟเดจเตเดฑเต† เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚ เดธเดœเตเดœเต€เด•เดฐเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เดฃเด‚/เด…เดชเตโ€Œเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเดฃเด‚. เดŽเดจเตเดจเดพเตฝ เดˆ เดธเดพเดนเดšเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดซเต€เตฝเดกเดฟเดจเต เดจเดฟเดฒเดตเดฟเดฒเต† เดคเต€เดฏเดคเดฟ-เดธเดฎเดฏเด‚ เดจเตฝเด•เดฟเดฒเตเดฒ, เดŽเดจเตเดจเดพเตฝ เดšเดฟเดฒ เด•เต—เดฃเตเดŸเดฑเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚ เด’เดจเตเดจเดพเดฏเดฟ เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเดšเตเดšเต. เดคเดคเตเดซเดฒเดฎเดพเดฏเดฟ, เด•เต‹เดณเด‚ row_ver เด…เดฆเตเดตเดฟเดคเต€เดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ เด•เต‚เดŸเดพเดคเต† "เดกเต†เตฝเดฑเตเดฑ" เดกเดพเดฑเตเดฑ เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ (เดฎเตเดฎเตเดชเดคเตเดคเต† เดŽเด•เตโ€Œเดธเตโ€Œเดšเต‡เดžเตเดšเต เดธเต†เดทเดจเตเดฑเต† เด…เดตเดธเดพเดจเด‚ เดฎเตเดคเตฝ เดกเดพเดฑเตเดฑ เดšเต‡เตผเดคเตเดคเดคเต/เดฎเดพเดฑเตเดฑเดฟเดฏเดคเต) เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เด…เดคเดฟเดจเต† เดฒเดณเดฟเดคเดฎเดพเดฏเตเด‚ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏเตเด‚ เดชเต‡เดœเตเด•เดณเดพเดฏเดฟ เดตเดฟเดญเดœเดฟเด•เตเด•เดพเดจเตเด‚ เด‡เดคเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚.

เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เด†เดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดจเตเดฑเต† เดšเดŸเตเดŸเด•เตเด•เต‚เดŸเดฟเดจเตเดณเตเดณเดฟเตฝ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ เดจเดฟเตผเดฆเตเดฆเต‡เดถเดฟเดšเตเดš เดฐเต€เดคเดฟ เดŽเดจเดฟเด•เตเด•เต เดเดฑเตเดฑเดตเตเด‚ เด…เดจเตเดฏเต‹เดœเตเดฏเดตเตเด‚ เดธเดพเตผเดตเดคเตเดฐเดฟเด•เดตเตเดฎเดพเดฏเดฟ เดคเต‹เดจเตเดจเตเดจเตเดจเต. เดจเดฎเตเด•เตเด•เต เด…เดคเต เด•เต‚เดŸเตเดคเตฝ เดตเดฟเดถเดฆเดฎเดพเดฏเดฟ เดจเต‹เด•เตเด•เดพเด‚.

เด’เดฐเต เดฑเต‹ เดชเดคเดฟเดชเตเดชเต เด•เต—เดฃเตเดŸเตผ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเตเดจเตเดจเต

เดธเต†เตผเดตเตผ/เดฎเดพเดธเตเดฑเตเดฑเตผ เดญเดพเด—เด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ

MS SQL เดธเต†เตผเดตเดฑเดฟเตฝ, เดˆ เดธเดฎเต€เดชเดจเด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด’เดฐเต เดชเตเดฐเดคเตเดฏเต‡เด• เด•เต‹เดณเด‚ เดคเดฐเด‚ เด‰เดฃเตเดŸเต - rowversion. เด“เดฐเต‹ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเดฟเดจเตเด‚ เด’เดฐเต เด•เต—เดฃเตเดŸเตผ เด‰เดฃเตเดŸเต, เด“เดฐเต‹ เดคเดตเดฃเดฏเตเด‚ เด’เดฐเต เดฑเต†เด•เตเด•เต‹เตผเดกเต เดšเต‡เตผเด•เตเด•เตเดฎเตเดชเต‹เตพ/เดฎเดพเดฑเตเดฑเตเดฎเตเดชเต‹เตพ เด…เดคเต เดชเต‹เดฒเต† เด’เดฐเต เด•เต‹เดณเด‚ เด‰เดณเตเดณ เดชเดŸเตเดŸเดฟเด•เดฏเดฟเตฝ rowversion. เดˆ เด•เต—เดฃเตเดŸเดฑเดฟเดจเตเดฑเต† เดฎเต‚เดฒเตเดฏเด‚, เดšเต‡เตผเดคเตเดค/เดฎเดพเดฑเตเดฑเดชเตเดชเต†เดŸเตเดŸ เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดฒเต† เดˆ เด•เต‹เดณเดคเตเดคเดฟเดจเตเดฑเต† เดซเต€เตฝเดกเดฟเดฒเต‡เด•เตเด•เต เดธเตเดตเดฏเดฎเต‡เดต เด…เดธเตˆเตป เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเด‚. Tarantool DBMS-เดจเต เดธเดฎเดพเดจเดฎเดพเดฏ เด’เดฐเต เดฌเดฟเตฝเดฑเตเดฑเต-เด‡เตป เดฎเต†เด•เตเด•เดพเดจเดฟเดธเด‚ เด‡เดฒเตเดฒ. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดŸเดพเดฐเดจเตเดคเต‚เดณเดฟเตฝ เด‡เดคเต เดธเตเดตเดฎเต‡เดงเดฏเดพ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเต เดฌเตเดฆเตเดงเดฟเดฎเตเดŸเตเดŸเตเดณเตเดณ เด•เดพเดฐเตเดฏเดฎเดฒเตเดฒ. เด‡เดคเต เดŽเด™เตเด™เดจเต† เดšเต†เดฏเตเดฏเตเดจเตเดจเตเดตเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚.

เด†เดฆเตเดฏเด‚, เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดชเดฆเดพเดตเดฒเดฟ: เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดฒเต† เดชเดŸเตเดŸเดฟเด•เด•เดณเต† เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดŽเดจเตเดจเตเด‚ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เดณเต† เดŸเตเดฏเต‚เดชเตเดชเดฟเตพเดธเต เดŽเดจเตเดจเตเด‚ เดตเดฟเดณเดฟเด•เตเด•เตเดจเตเดจเต. Tarantool เตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเต€เด•เตเดตเตปเดธเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เด•เตเดฐเดฎเต€เด•เดฐเดฟเดšเตเดš เดชเต‚เตผเดฃเตเดฃเดธเด‚เด–เตเดฏ เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เดชเต‡เดฐเตเดณเตเดณ เดœเดจเดฑเต‡เดฑเตเดฑเดฑเตเด•เดณเดฒเตเดฒเดพเดคเต† เดฎเดฑเตเดฑเตŠเดจเตเดจเตเดฎเดฒเตเดฒ เดธเต€เด•เตเดตเตปเดธเตเด•เตพ. เด†. เด‡เดคเดพเดฃเต เดžเด™เตเด™เดณเตเดŸเต† เด†เดตเดถเตเดฏเด™เตเด™เตพเด•เตเด•เต เดตเต‡เดฃเตเดŸเดคเต. เดšเตเดตเดŸเต† เดžเด™เตเด™เตพ เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เดถเตเดฐเต‡เดฃเดฟ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเด‚.

Tarantool-เตฝ เดเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เดจเดŸเดคเตเดคเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เดจเดฟเด™เตเด™เตพ เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เด•เดฎเดพเตปเดกเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต:

box.cfg{}

เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดจเดฟเดฒเดตเดฟเดฒเต† เดกเดฏเดฑเด•เตโ€ŒเดŸเดฑเดฟเดฏเดฟเดฒเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑเดพเดฌเต‡เดธเต เดธเตโ€Œเดจเดพเดชเตเดชเตโ€Œเดทเต‹เดŸเตเดŸเตเด•เดณเตเด‚ เด‡เดŸเดชเดพเดŸเต เดฒเต‹เด—เตเด•เดณเตเด‚ เดŸเดพเดฐเดจเตเดฑเต‚เตพ เดŽเดดเตเดคเดพเตป เดคเตเดŸเด™เตเด™เตเด‚.

เดจเดฎเตเด•เตเด•เต เด’เดฐเต เด•เตเดฐเดฎเด‚ เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚ row_version:

box.schema.sequence.create('row_version',
    { if_not_exists = true })

เด“เดชเตเดทเตป if_not_exists เดธเตƒเดทเตโ€ŒเดŸเดฟ เดธเตโ€Œเด•เตเดฐเดฟเดชเตโ€Œเดฑเตเดฑเต เด’เดจเตเดจเดฟเดฒเดงเดฟเด•เด‚ เดคเดตเดฃ เดŽเด•เตโ€Œเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเตป เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต: เด’เดฌเตโ€Œเดœเด•เตเดฑเตเดฑเต เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, Tarantool เด…เดคเต เดตเต€เดฃเตเดŸเตเด‚ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป เดถเตเดฐเดฎเดฟเด•เตเด•เดฟเดฒเตเดฒ. เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดŽเดฒเตเดฒเดพ DDL เด•เดฎเดพเตปเดกเตเด•เดณเดฟเดฒเตเด‚ เดˆ เด“เดชเตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เด‰เดฆเดพเดนเดฐเดฃเดฎเดพเดฏเดฟ เด’เดฐเต เดธเตเดชเต‡เดธเต เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚.

box.schema.space.create('goods', {
    format = {
        {
            name = 'id',
            type = 'unsigned'

        },
        {
            name = 'name',
            type = 'string'

        },
        {
            name = 'code',
            type = 'unsigned'

        },
        {
            name = 'row_ver',
            type = 'unsigned'

        }
    },
    if_not_exists = true
})

เด‡เดตเดฟเดŸเต† เดจเดฎเตเดฎเตพ เดธเตเดฅเดฒเดคเตเดคเดฟเดจเตเดฑเต† เดชเต‡เดฐเต เดธเดœเตเดœเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเต (goods), เดซเต€เตฝเดกเต เดจเดพเดฎเด™เตเด™เดณเตเด‚ เด…เดตเดฏเตเดŸเต† เดคเดฐเด™เตเด™เดณเตเด‚.

เดŸเดฐเดจเตเดฑเต‚เดณเดฟเดฒเต† เด“เดŸเตเดŸเต‹-เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเดฟเด‚เด—เต เดซเต€เตฝเดกเตเด•เดณเตเด‚ เดธเต€เด•เตเดตเตปเดธเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดพเดฃเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต. เดซเต€เตฝเดกเต เดชเตเดฐเด•เดพเดฐเด‚ เดธเตเดตเดฏเดฎเต‡เดต เดตเตผเดฆเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดชเตเดฐเดพเดฅเดฎเดฟเด• เด•เต€ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚ id:

box.schema.sequence.create('goods_id',
    { if_not_exists = true })
box.space.goods:create_index('primary', {
    parts = { 'id' },
    sequence = 'goods_id',
    unique = true,
    type = 'HASH',
    if_not_exists = true
})

Tarantool เดชเดฒ เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเต‚เดšเดฟเด•เด•เดณเต† เดชเดฟเดจเตเดคเตเดฃเดฏเตเด•เตเด•เตเดจเตเดจเต. เดเดฑเตเดฑเดตเตเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจ เดธเต‚เดšเดฟเด•เด•เตพ TREE, HASH เดคเดฐเด™เตเด™เดณเดพเดฃเต, เด…เดต เดชเต‡เดฐเดฟเดจเต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏ เด˜เดŸเดจเด•เดณเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเด•เตเด•เดฟเดฏเตเดณเตเดณเดคเดพเดฃเต. เดเดฑเตเดฑเดตเตเด‚ เดตเตˆเดตเดฟเดงเตเดฏเดฎเดพเตผเดจเตเดจ เดธเต‚เดšเดฟเด• เดคเดฐเด‚ TREE เด†เดฃเต. เดธเด‚เด˜เดŸเดฟเดค เดฐเต€เดคเดฟเดฏเดฟเตฝ เดกเดพเดฑเตเดฑ เดตเต€เดฃเตเดŸเต†เดŸเตเด•เตเด•เดพเตป เด‡เดคเต เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดจเดพเตฝ เดธเดฎเดคเตเดต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเดฟเดจเต, HASH เด†เดฃเต เด•เต‚เดŸเตเดคเตฝ เด…เดจเตเดฏเต‹เดœเตเดฏเด‚. เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เดชเตเดฐเดพเดฅเดฎเดฟเด• เด•เต€เดฏเตเด•เตเด•เดพเดฏเดฟ HASH เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เดจเดฒเตเดฒเดคเดพเดฃเต (เด…เดคเดพเดฃเต เดžเด™เตเด™เตพ เดšเต†เดฏเตเดคเดคเต).

เด•เต‹เดณเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต row_ver เดฎเดพเดฑเตเดฑเดฟเดฏ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเดพเตป, เดˆ เดจเดฟเดฐเดฏเตเดŸเต† เดซเต€เตฝเดกเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดจเดฟเด™เตเด™เตพ เดธเต€เด•เตเดตเตปเดธเต เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต row_ver. เดŽเดจเตเดจเดพเตฝ เดชเตเดฐเดพเดฅเดฎเดฟเด• เด•เต€เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ, เด•เต‹เดณเด‚ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚ row_ver เดชเตเดคเดฟเดฏ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดšเต‡เตผเด•เตเด•เตเดฎเตเดชเต‹เตพ เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดต เดฎเดพเดฑเตเดฑเตเดฎเตเดชเต‹เดดเตเด‚ เด’เดจเตเดจเดพเดฏเดฟ เดตเตผเดฆเตเดงเดฟเด•เตเด•เดฃเด‚. เด‡เดคเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดจเต เดฐเดฃเตเดŸเต เดคเดฐเด‚ เดธเตเดชเต‡เดธเต เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เด‰เดฃเตเดŸเต: before_replace ะธ on_replace. เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต† เดกเดพเดฑเตเดฑ เดฎเดพเดฑเตเดฎเตเดชเต‹เดดเต†เดฒเตเดฒเดพเด‚ เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เดซเดฏเตผ เดšเต†เดฏเตเดฏเดชเตเดชเต†เดŸเตเดจเตเดจเต (เดฎเดพเดฑเตเดฑเด™เตเด™เดณเดพเตฝ เดฌเดพเดงเดฟเด•เตเด•เตเดจเตเดจ เด“เดฐเต‹ เดŸเตเดฏเต‚เดชเตเดชเดฟเดณเดฟเดจเตเด‚, เด’เดฐเต เดŸเตเดฐเดฟเด—เตผ เดซเด‚เด—เตโ€Œเดทเตป เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด‚). เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟ on_replace, before_replaceเดŸเตเดฐเดฟเด—เตผ เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดค เดŸเตเดฏเต‚เดชเตเดชเดฟเดณเดฟเดจเตเดฑเต† เดกเดพเดฑเตเดฑ เดชเดฐเดฟเดทเตเด•เดฐเดฟเด•เตเด•เดพเตป -เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต. เด…เดคเดจเตเดธเดฐเดฟเดšเตเดšเต, เด…เดตเดธเดพเดจ เดคเดฐเด‚ เดŸเตเดฐเดฟเด—เดฑเตเด•เตพ เดจเดฎเตเด•เตเด•เต เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฃเต.

box.space.goods:before_replace(function(old, new)
    return box.tuple.new({new[1], new[2], new[3],
        box.sequence.row_version:next()})
end)

เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดŸเตเดฐเดฟเด—เตผ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเดจเตเดจเต row_ver เด•เตเดฐเดฎเดคเตเดคเดฟเดจเตเดฑเต† เด…เดŸเตเดคเตเดค เดฎเต‚เดฒเตเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เดŸเตเดฏเต‚เดชเตเดชเดฟเตพ เดธเด‚เดญเดฐเดฟเดšเตเดšเต row_version.

เดฌเดนเดฟเดฐเดพเด•เดพเดถเดคเตเดคเต เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต goods เด•เต‹เดณเด‚ เดตเดดเดฟ row_ver, เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดธเต‚เดšเดฟเด• เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚:

box.space.goods:create_index('row_ver', {
    parts = { 'row_ver' },
    unique = true,
    type = 'TREE',
    if_not_exists = true
})

เดธเต‚เดšเดฟเด• เดคเดฐเด‚ - เดฎเดฐเด‚ (TREE), เด•เดพเดฐเดฃเด‚ เด•เต‹เดณเดคเตเดคเดฟเดฒเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเตเดŸเต† เด†เดฐเต‹เดนเดฃ เด•เตเดฐเดฎเดคเตเดคเดฟเตฝ เดžเด™เตเด™เตพ เดกเดพเดฑเตเดฑ เดŽเด•เตโ€Œเดธเตโ€ŒเดŸเตเดฐเดพเด•เตโ€Œเดฑเตเดฑเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเตเดฃเตเดŸเต row_ver.

เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เด•เตเดฑเดšเตเดšเต เดกเดพเดฑเตเดฑ เดšเต‡เตผเด•เตเด•เดพเด‚:

box.space.goods:insert{nil, 'pen', 123}
box.space.goods:insert{nil, 'pencil', 321}
box.space.goods:insert{nil, 'brush', 100}
box.space.goods:insert{nil, 'watercolour', 456}
box.space.goods:insert{nil, 'album', 101}
box.space.goods:insert{nil, 'notebook', 800}
box.space.goods:insert{nil, 'rubber', 531}
box.space.goods:insert{nil, 'ruler', 135}

เด•เดพเดฐเดฃเด‚ เด†เดฆเตเดฏ เดซเต€เตฝเดกเต เด’เดฐเต เด“เดŸเตเดŸเต‹-เด‡เตปเด•เตเดฐเดฟเดฎเต†เดจเตเดฑเดฟเด‚เด—เต เด•เต—เดฃเตเดŸเดฑเดพเดฃเต; เดชเด•เดฐเด‚ เดžเด™เตเด™เตพ nil เด•เดŸเดจเตเดจเตเดชเต‹เด•เตเดจเตเดจเต. เด…เดŸเตเดคเตเดค เดฎเต‚เดฒเตเดฏเด‚ เดŸเดพเดฐเดจเตเดฑเต‚เตพ เดธเตเดตเดฏเดฎเต‡เดต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เตเด‚. เด…เดคเตเดชเต‹เดฒเต†, เด•เต‹เดณเด‚ เดซเต€เตฝเดกเตเด•เดณเตเดŸเต† เดฎเต‚เดฒเตเดฏเด‚ เดชเต‹เดฒเต† row_ver เดจเดฟเด™เตเด™เตพเด•เตเด•เต nil เด•เดŸเดจเตเดจเตเดชเต‹เด•เดพเด‚ - เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดฎเต‚เดฒเตเดฏเด‚ เดตเตเดฏเด•เตเดคเดฎเดพเด•เตเด•เดฐเตเดคเต, เด•เดพเดฐเดฃเด‚ เดˆ เด•เต‹เดณเด‚ เดฌเดนเดฟเดฐเดพเด•เดพเดถเดคเตเดคเดฟเดฒเต† เด…เดตเดธเดพเดจ เดธเตเดฅเดพเดจเดคเตเดคเดพเดฃเต.

เด‰เตพเดชเตเดชเต†เดŸเตเดคเตเดคเตฝ เดซเดฒเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เดพเด‚:

tarantool> box.space.goods:select()
---
- - [1, 'pen', 123, 1]
  - [2, 'pencil', 321, 2]
  - [3, 'brush', 100, 3]
  - [4, 'watercolour', 456, 4]
  - [5, 'album', 101, 5]
  - [6, 'notebook', 800, 6]
  - [7, 'rubber', 531, 7]
  - [8, 'ruler', 135, 8]
...

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เด†เดฆเตเดฏเดคเตเดคเต‡เดฏเตเด‚ เด…เดตเดธเดพเดจเดคเตเดคเต‡เดฏเตเด‚ เดซเต€เตฝเดกเตเด•เตพ เดธเตเดตเดฏเดฎเต‡เดต เดชเต‚เดฐเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเต. เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดฎเดพเดฑเตเดฑเด™เตเด™เดณเตเดŸเต† เดชเต‡เดœเต-เดฌเตˆ-เดชเต‡เดœเต เด…เดชเตโ€Œเดฒเต‹เดกเดฟเด‚เด—เดฟเดจเดพเดฏเดฟ เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเตป เดŽเดดเตเดคเตเดจเตเดจเดคเต เด‡เดชเตเดชเต‹เตพ เดŽเดณเตเดชเตเดชเดฎเดพเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ goods:

local page_size = 5
local function get_goods(row_ver)
    local index = box.space.goods.index.row_ver
    local goods = {}
    local counter = 0
    for _, tuple in index:pairs(row_ver, {
        iterator = 'GT' }) do
        local obj = tuple:tomap({ names_only = true })
        table.insert(goods, obj)
        counter = counter + 1
        if counter >= page_size then
            break
        end
    end
    return goods
end

เดซเด‚เด—เตเดทเตป เดฎเต‚เดฒเตเดฏเดคเตเดคเต† เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดพเดฏเดฟ เดŽเดŸเตเด•เตเด•เตเดจเตเดจเต row_ver, เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เด…เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดฐเด‚เดญเดฟเดšเตเดšเต, เดฎเดพเดฑเตเดฑเดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด’เดฐเต เดญเดพเด—เด‚ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเต.

เดŸเดพเดฐเดจเตเดฑเต‚เดณเดฟเดฒเต† เดกเดพเดฑเตเดฑ เดธเดพเดฎเตเดชเดฟเตพ เด‡เตปเดกเต†เด•เตเดธเตเด•เดณเดฟเดฒเต‚เดŸเต†เดฏเดพเดฃเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเต. เดซเด‚เด—เตเดทเตป get_goods เดธเต‚เดšเดฟเด• เดชเตเดฐเด•เดพเดฐเด‚ เด’เดฐเต เด‡เดฑเตเดฑเดฑเต‡เดฑเตเดฑเตผ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต row_ver เดฎเดพเดฑเดฟเดฏ เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป. เด‡เดฑเตเดฑเดฑเต‡เดฑเตเดฑเตผ เดคเดฐเด‚ GT เด†เดฃเต (เด—เตเดฐเต‡เดฑเตเดฑเตผ เด…เดงเดฟเด•เด‚, เดตเดฒเดฟเดฏเดคเดฟเดจเต‡เด•เตเด•เดพเตพ). เดชเดพเดธเดพเด•เตเด•เดฟเดฏ เด•เต€เดฏเดฟเตฝ เดจเดฟเดจเตเดจเต (เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚) เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดจเตเดจ เดธเต‚เดšเดฟเด• เดฎเต‚เดฒเตเดฏเด™เตเด™เดณเดฟเตฝ เด‡เดฑเตเดฑเดฑเต‡เดฑเตเดฑเตผ เดคเตเดŸเตผเดšเตเดšเดฏเดพเดฏเดฟ เดธเดžเตเดšเดฐเดฟเด•เตเด•เตเด‚ เดŽเดจเตเดจเดพเดฃเต เด‡เดคเดฟเดจเตผเดคเตเดฅเด‚. row_ver).

เด‡เดฑเตเดฑเดฑเต‡เดฑเตเดฑเตผ เดŸเตเดฏเต‚เดชเตเดชเดฟเตพเดธเต เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เตเดจเตเดจเต. เดชเดฟเดจเตเดจเต€เดŸเต HTTP เดตเดดเดฟ เดกเดพเดฑเตเดฑ เด•เตˆเดฎเดพเดฑเดพเตป เด•เดดเดฟเดฏเตเดจเตเดจเดคเดฟเดจเต, เดคเตเดŸเตผเดจเตเดจเตเดณเตเดณ เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเต‡เดทเดจเต เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เด’เดฐเต เด˜เดŸเดจเดฏเดฟเดฒเต‡เด•เตเด•เต tuples เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด‚ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‰เดฆเดพเดนเดฐเดฃเด‚ เด‡เดคเดฟเดจเดพเดฏเดฟ เดธเตเดฑเตเดฑเดพเตปเดกเต‡เตผเดกเต เดซเด‚เด—เตเดทเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต tomap. เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดชเด•เดฐเด‚ tomap เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเดฟเด™เตเด™เดณเตเดŸเต† เดธเตเดตเดจเตเดคเด‚ เดซเด‚เด—เตเดทเตป เดŽเดดเตเดคเดพเด‚. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, เด’เดฐเต เดซเต€เตฝเดกเต เดชเตเดจเตผเดจเดพเดฎเด•เดฐเดฃเด‚ เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เด†เด—เตเดฐเดนเดฟเดšเตเดšเต‡เด•เตเด•เดพเด‚ name, เดซเต€เตฝเดกเต เด•เดŸเดจเตเดจเตเดชเต‹เด•เดฐเตเดคเต code เด’เดฐเต เดซเต€เตฝเดกเต เดšเต‡เตผเด•เตเด•เตเด• comment:

local function unflatten_goods(tuple)
    local obj = {}
    obj.id = tuple.id
    obj.goods_name = tuple.name
    obj.comment = 'some comment'
    obj.row_ver = tuple.row_ver
    return obj
end

เด”เดŸเตเดŸเตเดชเตเดŸเตเดŸเต เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดชเต‡เดœเต เดตเดฒเตเดชเตเดชเด‚ (เด’เดฐเต เดญเดพเด—เดคเตเดคเต† เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚) เดตเต‡เดฐเดฟเดฏเดฌเดฟเตพ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เตเดจเตเดจเต page_size. เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเตฝ เดฎเต‚เดฒเตเดฏเด‚ page_size เด†เดฃเต 5. เด’เดฐเต เดฏเดฅเดพเตผเดคเตเดฅ เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเตฝ, เดชเต‡เดœเดฟเดจเตเดฑเต† เดตเดฒเตเดชเตเดชเด‚ เดธเดพเดงเดพเดฐเดฃเดฏเดพเดฏเดฟ เด•เต‚เดŸเตเดคเตฝ เดชเตเดฐเดงเดพเดจเดฎเดพเดฃเต. เด‡เดคเต เดธเตเดชเต‡เดธเต เดŸเตเดฏเต‚เดชเตเดชเดฟเดณเดฟเดจเตเดฑเต† เดถเดฐเดพเดถเดฐเดฟ เดตเดฒเตเดชเตเดชเดคเตเดคเต† เด†เดถเตเดฐเดฏเดฟเดšเตเดšเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เดกเดพเดฑเตเดฑเดพ เด•เตˆเดฎเดพเดฑเตเดฑ เดธเดฎเดฏเด‚ เด…เดณเด•เตเด•เตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต† เด’เดชเตเดฑเตเดฑเดฟเดฎเตฝ เดชเต‡เดœเต เดตเดฒเตเดชเตเดชเด‚ เด…เดจเตเดญเดตเดชเดฐเดฎเดพเดฏเดฟ เดจเดฟเตผเดฃเตเดฃเดฏเดฟเด•เตเด•เดพเดจเดพเด•เตเด‚. เดชเต‡เดœเต เดตเดฒเตเดชเตเดชเด‚ เด•เต‚เดŸเตเดจเตเดคเต‹เดฑเตเด‚ เด…เดฏเดฏเตโ€Œเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ เด‡เดŸเดฏเดฟเดฒเตเดณเตเดณ เดฑเต—เดฃเตเดŸเตโ€ŒเดŸเตเดฐเดฟเดชเตเดชเตเด•เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดฏเตเด‚. เด‡เดคเตเดตเดดเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดฎเตŠเดคเตเดคเดคเตเดคเดฟเดฒเตเดณเตเดณ เดธเดฎเดฏเด‚ เด•เตเดฑเดฏเตเด•เตเด•เดพเดจเดพเด•เตเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดชเต‡เดœเต เดตเดฒเตเดชเตเดชเด‚ เดตเดณเดฐเต† เดตเดฒเตเดคเดพเดฃเต†เด™เตเด•เดฟเตฝ, เดธเดพเดฎเตเดชเดฟเตพ เดธเต€เดฐเดฟเดฏเดฒเตˆเดธเต เดšเต†เดฏเตเดฏเดพเตป เดžเด™เตเด™เตพ เดธเต†เตผเดตเดฑเดฟเตฝ เด•เต‚เดŸเตเดคเตฝ เดธเดฎเดฏเด‚ เดšเต†เดฒเดตเดดเดฟเด•เตเด•เตเด‚. เดคเตฝเดซเดฒเดฎเดพเดฏเดฟ, เดธเต†เตผเดตเดฑเดฟเดฒเต‡เด•เตเด•เต เดตเดฐเตเดจเตเดจ เดฎเดฑเตเดฑเต เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เดชเตเดฐเต‹เดธเดธเตเดธเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด•เดพเดฒเดคเดพเดฎเดธเด‚ เด‰เดฃเตเดŸเดพเดฏเต‡เด•เตเด•เดพเด‚. เดชเดฐเดพเดฎเต€เดฑเตเดฑเตผ page_size เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเด‚. เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดค เด“เดฐเต‹ เดธเตเดฅเดฒเดคเตเดคเดฟเดจเตเด‚, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด…เดคเดฟเดจเตเดฑเต‡เดคเดพเดฏ เดฎเต‚เดฒเตเดฏเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚. เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดฎเดฟเด•เตเด• เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเดฟเดฒเตเด‚ เดกเดฟเดซเต‹เตพเดŸเตเดŸเต เดฎเต‚เดฒเตเดฏเด‚ (เด‰เดฆเดพเดนเดฐเดฃเดคเตเดคเดฟเดจเต, 100) เด…เดจเตเดฏเต‹เดœเตเดฏเดฎเดพเดฏเต‡เด•เตเด•เดพเด‚.

เดจเดฎเตเด•เตเด•เต เดซเด‚เด—เตเดทเตป เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดฏเดพเด‚ get_goods:

tarantool> get_goods(0)

---
- - row_ver: 1
    code: 123
    name: pen
    id: 1
  - row_ver: 2
    code: 321
    name: pencil
    id: 2
  - row_ver: 3
    code: 100
    name: brush
    id: 3
  - row_ver: 4
    code: 456
    name: watercolour
    id: 4
  - row_ver: 5
    code: 101
    name: album
    id: 5
...

เดจเดฎเตเด•เตเด•เต เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚ เดŽเดŸเตเด•เตเด•เดพเด‚ row_ver เด…เดตเดธเดพเดจ เดตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดตเต€เดฃเตเดŸเตเด‚ เดซเด‚เด—เตเดทเตป เดตเดฟเดณเดฟเด•เตเด•เตเด•:

tarantool> get_goods(5)

---
- - row_ver: 6
    code: 800
    name: notebook
    id: 6
  - row_ver: 7
    code: 531
    name: rubber
    id: 7
  - row_ver: 8
    code: 135
    name: ruler
    id: 8
...

เด’เดฐเดฟเด•เตเด•เตฝ เด•เต‚เดŸเดฟ:

tarantool> get_goods(8)
---
- []
...

เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด•เดพเดฃเดพเดจเดพเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต†, เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ, เดซเด‚เด—เตเดทเตป เดŽเดฒเตเดฒเดพ เดธเตเดชเต‡เดธเต เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เดณเตเด‚ เดชเต‡เดœเต เดคเต‹เดฑเตเด‚ เดจเตฝเด•เตเดจเตเดจเต goods. เด…เดตเดธเดพเดจ เดชเต‡เดœเดฟเดจเต เดถเต‡เดทเด‚ เด’เดฐเต เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดคเดฟเดฐเดžเตเดžเต†เดŸเตเดชเตเดชเต เดตเดฐเตเดจเตเดจเต.

เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเตฝ เดฎเดพเดฑเตเดฑเด™เตเด™เตพ เดตเดฐเตเดคเตเดคเดพเด‚:

box.space.goods:update(4, {{'=', 6, 'copybook'}})
box.space.goods:insert{nil, 'clip', 234}
box.space.goods:insert{nil, 'folder', 432}

เดžเด™เตเด™เตพ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚ เดฎเดพเดฑเตเดฑเดฟ name เด’เดฐเต เดŽเตปเดŸเตเดฐเดฟเด•เตเด•เต เดฐเดฃเตเดŸเต เดชเตเดคเดฟเดฏ เดŽเตปเดŸเตเดฐเดฟเด•เตพ เดšเต‡เตผเดคเตเดคเต.

เด…เดตเดธเดพเดจ เดซเด‚เด—เตเดทเตป เด•เต‹เตพ เด†เดตเตผเดคเตเดคเดฟเด•เตเด•เดพเด‚:

tarantool> get_goods(8)
---



- - row_ver: 9
    code: 800
    name: copybook
    id: 6
  - row_ver: 10
    code: 234
    name: clip
    id: 9
  - row_ver: 11
    code: 432
    name: folder
    id: 10
...

เดซเด‚เด—เตโ€Œเดทเตป เดฎเดพเดฑเตเดฑเดฟเดฏเดคเตเด‚ เดšเต‡เตผเดคเตเดคเดคเตเดฎเดพเดฏ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดคเดฟเดฐเดฟเด•เต† เดจเตฝเด•เดฟ. เด…เดคเดฟเดจเดพเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ get_goods เด…เดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจ เด•เต‹เดณเดฟเดจเต เดถเต‡เดทเด‚ เดฎเดพเดฑเดฟเดฏ เดกเดพเดฑเตเดฑ เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เดพเตป เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต, เด‡เดคเต เดชเดฐเดฟเด—เดฃเดจเดฏเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเต†เดŸเตเด•เตเด•เตฝ เดฐเต€เดคเดฟเดฏเตเดŸเต† เด…เดŸเดฟเดธเตเดฅเดพเดจเดฎเดพเดฃเต.

JSON เดŽเดจเตเดจ เดฐเต‚เดชเดคเตเดคเดฟเตฝ HTTP เดตเดดเดฟเดฏเตเดณเตเดณ เดซเดฒเด™เตเด™เตพ เดˆ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดชเดฐเดฟเดงเดฟเด•เตเด•เต เดชเตเดฑเดคเตเดคเต เดžเด™เตเด™เตพ เดตเดฟเดŸเตเด‚. เด‡เดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดตเดฟเดŸเต† เดตเดพเดฏเดฟเด•เตเด•เดพเด‚: https://habr.com/ru/company/mailru/blog/272141/

เด•เตเดฒเดฏเดจเตเดฑเต/เดธเตเดฒเต‡เดตเต เดญเดพเด—เด‚ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ

เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เดญเดพเด—เดคเตเดคเดฟเดจเตเดฑเต† เดจเดŸเดชเตเดชเดพเด•เตเด•เตฝ เดŽเด™เตเด™เดจเต†เดฏเตเดฃเตเดŸเต†เดจเตเดจเต เดจเต‹เด•เตเด•เดพเด‚. เดกเต—เตบเดฒเต‹เดกเต เดšเต†เดฏเตโ€Œเดค เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดธเตเดตเต€เด•เดฐเดฟเด•เตเด•เตเดจเตเดจ เดญเดพเด—เดคเตเดคเต เด’เดฐเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเด‚:

box.schema.space.create('goods', {
    format = {
        {
            name = 'id',
            type = 'unsigned'

        },
        {
            name = 'name',
            type = 'string'

        },
        {
            name = 'code',
            type = 'unsigned'

        }
    },
    if_not_exists = true
})

box.space.goods:create_index('primary', {
    parts = { 'id' },
    sequence = 'goods_id',
    unique = true,
    type = 'HASH',
    if_not_exists = true
})

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

เด•เต‚เดŸเดพเดคเต†, เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เดพเตป เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด‡เดŸเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต row_ver:

box.schema.space.create('row_ver', {
    format = {
        {
            name = 'space_name',
            type = 'string'

        },
        {
            name = 'value',
            type = 'string'

        }
    },
    if_not_exists = true
})

box.space.row_ver:create_index('primary', {
    parts = { 'space_name' },
    unique = true,
    type = 'HASH',
    if_not_exists = true
})

เดฒเต‹เดกเต เดšเต†เดฏเตเดค เด“เดฐเต‹ เดธเตเดฅเดฒเดคเตเดคเดฟเดจเตเด‚ (เดซเต€เตฝเดกเต space_name) เด…เดตเดธเดพเดจเด‚ เดฒเต‹เดกเต เดšเต†เดฏเตเดค เดฎเต‚เดฒเตเดฏเด‚ เดžเด™เตเด™เตพ เด‡เดตเดฟเดŸเต† เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด‚ row_ver (เดซเต€เตฝเดกเต value). เด•เต‹เดณเด‚ เดชเตเดฐเดพเดฅเดฎเดฟเด• เด•เต€ เด†เดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต space_name.

เดธเตโ€Œเดชเต‡เดธเต เดกเดพเดฑเตเดฑ เดฒเต‹เดกเต เดšเต†เดฏเตเดฏเดพเตป เดจเดฎเตเด•เตเด•เต เด’เดฐเต เดซเด‚เด—เตโ€Œเดทเตป เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเด‚ goods HTTP เดตเดดเดฟ. เด‡เดคเต เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต HTTP เด•เตเดฒเดฏเดจเตเดฑเต เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเตˆเดฌเตเดฐเดฑเดฟ เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดตเดฐเดฟ เดฒเตˆเดฌเตเดฐเดฑเดฟ เดฒเต‹เดกเตเดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ HTTP เด•เตเดฒเดฏเดจเตเดฑเดฟเดจเต† เดคเตฝเด•เตเดทเดฃเด‚ เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต:

local http_client = require('http.client').new()

json เดกเต€เดฐเดฟเดฏเดฒเตˆเดธเต‡เดทเดจเดพเดฏเดฟ เดžเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เดฒเตˆเดฌเตเดฐเดฑเดฟเดฏเตเด‚ เด†เดตเดถเตเดฏเดฎเดพเดฃเต:

local json = require('json')

เด’เดฐเต เดกเดพเดฑเตเดฑ เดฒเต‹เดกเดฟเด‚เด—เต เดซเด‚เด—เตเดทเตป เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เด‡เดคเต เดฎเดคเดฟเดฏเดพเด•เตเด‚:

local function load_data(url, row_ver)
    local url = ('%s?rowVer=%s'):format(url,
        tostring(row_ver))
    local body = nil
    local data = http_client:request('GET', url, body, {
        keepalive_idle =  1,
        keepalive_interval = 1
    })
    return json.decode(data.body)
end

เดซเด‚เด—เตเดทเตป url เดตเดฟเดฒเดพเดธเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด’เดฐเต HTTP เด…เดญเตเดฏเตผเดคเตเดฅเดจ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตเด•เดฏเตเด‚ เด…เดคเต เด…เดฏเดฏเตเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต row_ver เด’เดฐเต เดชเดพเดฐเดพเดฎเต€เดฑเตเดฑเดฑเดพเดฏเดฟ เด…เดญเตเดฏเตผเดคเตเดฅเดจเดฏเตเดŸเต† เดกเต€เดธเดฟเดฏเดฒเตˆเดธเต เดšเต†เดฏเตเดค เดซเดฒเด‚ เดจเตฝเด•เตเดจเตเดจเต.

เดฒเดญเดฟเดšเตเดš เดกเดพเดฑเตเดฑ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดจเตเดจเต:

local function save_goods(goods)
    local n = #goods
    box.atomic(function()
        for i = 1, n do
            local obj = goods[i]
            box.space.goods:put(
                obj.id, obj.name, obj.code)
        end
    end)
end

เดฌเดนเดฟเดฐเดพเด•เดพเดถเดคเตเดคเต‡เด•เตเด•เต เดกเดพเดฑเตเดฑ เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดฑเต† เดšเด•เตเดฐเด‚ goods เด’เดฐเต เด‡เดŸเดชเดพเดŸเดฟเตฝ เดธเตเดฅเดพเดชเดฟเดšเตเดšเต (เดซเด‚เด—เตเดทเตป เด‡เดคเดฟเดจเดพเดฏเดฟ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต box.atomic) เดกเดฟเดธเตเด•เต เดชเตเดฐเดตเตผเดคเตเดคเดจเด™เตเด™เดณเตเดŸเต† เดŽเดฃเตเดฃเด‚ เด•เตเดฑเดฏเตเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต.

เด…เดตเดธเดพเดจเดฎเดพเดฏเดฟ, เดฒเต‹เด•เตเด•เตฝ เดธเตเดชเต‡เดธเต เดธเดฟเตปเด•เตเดฐเตŠเดฃเตˆเดธเต‡เดทเตป เดซเด‚เด—เตเดทเตป goods เด’เดฐเต เด‰เดฑเดตเดฟเดŸเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‡เดคเต เด‡เดคเตเดชเต‹เดฒเต† เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เดพเตป เด•เดดเดฟเดฏเตเด‚:

local function sync_goods()
    local tuple = box.space.row_ver:get('goods')
    local row_ver = tuple and tuple.value or 0

    โ€”โ€” set your url here:
    local url = 'http://127.0.0.1:81/test/goods/list'

    while true do
        local goods = load_goods(url, row_ver)

        local count = #goods
        if count == 0 then
            return
        end

        save_goods(goods)

        row_ver = goods[count].rowVer
        box.space.row_ver:put({'goods', row_ver})
    end
end

เด†เดฆเตเดฏเด‚ เดจเดฎเตเดฎเตพ เดฎเตเดฎเตเดชเต เดธเด‚เดฐเด•เตเดทเดฟเดšเตเดš เดฎเต‚เดฒเตเดฏเด‚ เดตเดพเดฏเดฟเด•เตเด•เตเดจเตเดจเต row_ver เดธเตเดฅเดฒเดคเตเดคเดฟเดจเดพเดฏเดฟ goods. เด…เดคเต เดจเดทเตโ€ŒเดŸเดฎเดพเดฏเดพเตฝ (เด†เดฆเตเดฏเดคเตเดคเต† เดŽเด•เตโ€Œเดธเตโ€Œเดšเต‡เดžเตเดšเต เดธเต†เดทเตป), เดžเด™เตเด™เตพ เด…เดคเดฟเดจเต† เด‡เดคเตเดชเต‹เดฒเต† เดŽเดŸเตเด•เตเด•เตเด‚ row_ver เดชเต‚เดœเตเดฏเด‚. เดธเตˆเด•เตเด•เดฟเดณเดฟเตฝ เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดจเดฟเตผเดฆเตเดฆเดฟเดทเตเดŸ url-เตฝ เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดฑเตเดฑเดฟเดฏ เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เดชเต‡เดœเต-เดฌเตˆ-เดชเต‡เดœเต เดกเต—เตบเดฒเต‹เดกเต เดžเด™เตเด™เตพ เดจเดŸเดคเตเดคเตเดจเตเดจเต. เด“เดฐเต‹ เด†เดตเตผเดคเตเดคเดจเดคเตเดคเดฟเดฒเตเด‚, เดžเด™เตเด™เตพ เดธเตเดตเต€เด•เดฐเดฟเดšเตเดš เดกเดพเดฑเตเดฑ เด‰เดšเดฟเดคเดฎเดพเดฏ เดชเตเดฐเดพเดฆเต‡เดถเดฟเด• เดธเตเดฅเดฒเดคเตเดคเต‡เด•เตเด•เต เดธเด‚เดฐเด•เตเดทเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดฎเต‚เดฒเตเดฏเด‚ เด…เดชเตเดกเต‡เดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต row_ver (เดฌเดนเดฟเดฐเดพเด•เดพเดถเดคเตเดคเต row_ver เดตเต‡เดฐเดฟเดฏเดฌเดฟเดณเดฟเดฒเตเด‚ row_ver) - เดฎเต‚เดฒเตเดฏเด‚ เดŽเดŸเตเด•เตเด•เตเด• row_ver เดฒเต‹เดกเต เดšเต†เดฏเตเดค เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดตเดธเดพเดจ เดตเดฐเดฟเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต.

เด†เด•เดธเตเดฎเดฟเด•เดฎเดพเดฏ เดฒเต‚เดชเตเดชเดฟเด‚เด—เดฟเตฝ เดจเดฟเดจเตเดจเต เดชเดฐเดฟเดฐเด•เตเดทเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต (เดชเตเดฐเต‹เด—เตเดฐเดพเดฎเดฟเตฝ เด’เดฐเต เดชเดฟเดถเด•เตเดฃเตเดŸเดพเดฏเดพเตฝ), เดฒเต‚เดชเตเดชเต while เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดฎเดพเดฑเตเดฑเดฟเดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเด‚ for:

for _ = 1, max_req do ...

เดซเด‚เด—เตเดทเตป เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดŸเตเดŸเต เดšเต†เดฏเตเดคเดคเดฟเดจเตเดฑเต† เดซเดฒเดฎเดพเดฏเดฟ sync_goods เดธเตเดฅเดฒเด‚ goods เดฑเดฟเดธเต€เดตเดฑเดฟเตฝ เดŽเดฒเตเดฒเดพ เดธเตเดชเต‡เดธเต เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เดณเตเดŸเต†เดฏเตเด‚ เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดชเดคเดฟเดชเตเดชเตเด•เตพ เด…เดŸเด™เตเด™เดฟเดฏเดฟเดฐเดฟเด•เตเด•เตเด‚ goods เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ.

เดตเตเดฏเด•เตเดคเดฎเดพเดฏเตเด‚, เดกเดพเดฑเตเดฑ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตฝ เดˆ เดฐเต€เดคเดฟเดฏเดฟเตฝ เดชเตเดฐเด•เตเดทเต‡เดชเดฃเด‚ เดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเดฟเดฒเตเดฒ. เด…เดคเตเดคเดฐเดฎเตŠเดฐเต เด†เดตเดถเตเดฏเด‚ เดจเดฟเดฒเดตเดฟเดฒเตเดฃเตเดŸเต†เด™เตเด•เดฟเตฝ, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด’เดฐเต เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตฝ เด…เดŸเดฏเดพเดณเด‚ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚. เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดฒเต‡เด•เตเด•เต เดšเต‡เตผเด•เตเด•เตเด• goods เดฌเต‚เดณเดฟเดฏเตป เดซเต€เตฝเดกเต is_deleted เด’เดฐเต เดฑเต†เด•เตเด•เต‹เตผเดกเต เดญเต—เดคเดฟเด•เดฎเดพเดฏเดฟ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดชเด•เดฐเด‚, เดžเด™เตเด™เตพ เดฒเต‹เดœเดฟเด•เตเด•เตฝ เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต - เดžเด™เตเด™เตพ เดซเต€เตฝเดกเต เดฎเต‚เดฒเตเดฏเด‚ เดธเดœเตเดœเดฎเดพเด•เตเด•เตเดจเตเดจเต is_deleted เด…เตผเดคเตเดฅเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต true. เดšเดฟเดฒเดชเตเดชเต‹เตพ เด’เดฐเต เดฌเต‚เดณเดฟเดฏเตป เดซเต€เตฝเดกเดฟเดจเต เดชเด•เดฐเด‚ is_deleted เดซเต€เตฝเดกเต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเต เด•เต‚เดŸเตเดคเตฝ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฃเต deleted, เด‡เดคเต เดฑเต†เด•เตเด•เต‹เตผเดกเดฟเดจเตเดฑเต† เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดกเดฟเดฒเต€เดฑเตเดฑเดฟเดจเตเดฑเต† เดคเต€เดฏเดคเดฟ-เดธเดฎเดฏเด‚ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเต. เด’เดฐเต เดฒเต‹เดœเดฟเด•เตเด•เตฝ เดกเดฟเดฒเต€เดฑเตเดฑเต เดšเต†เดฏเตเดคเดคเดฟเดจเต เดถเต‡เดทเด‚, เด‡เดฒเตเดฒเดพเดคเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เด…เดŸเดฏเดพเดณเดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏ เดฑเต†เด•เตเด•เต‹เตผเดกเต เด‰เดฑเดตเดฟเดŸเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเด•เตเดทเตเดฏเดธเตเดฅเดพเดจเดคเตเดคเต‡เด•เตเด•เต เดฎเดพเดฑเตเดฑเตเด‚ (เดฎเตเด•เดณเดฟเตฝ เดšเตผเดšเตเดš เดšเต†เดฏเตเดค เดฒเต‹เดœเดฟเด•เตเด•เต เด…เดจเตเดธเดฐเดฟเดšเตเดšเต).

เด…เดจเตเด•เตเดฐเดฎเด‚ row_ver เดฎเดฑเตเดฑเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดฑเตเดฑเต เดšเต†เดฏเตเดฏเดพเตป เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เดพเด‚: เด“เดฐเต‹ เดŸเตเดฐเดพเตปเดธเตเดฎเดฟเดฑเตเดฑเต เดธเตโ€Œเดชเต†เดฏเตโ€Œเดธเดฟเดจเตเด‚ เดชเตเดฐเดคเตเดฏเต‡เด• เดธเต€เด•เตเดตเตปเดธเต เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเดฟเดฒเตเดฒ.

Tarantool DBMS เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเตเดณเตเดณ เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดชเด•เตผเดคเตเดคเดพเดจเตเดณเตเดณ เดซเดฒเดชเตเดฐเดฆเดฎเดพเดฏ เดฎเดพเตผเด—เด‚ เดžเด™เตเด™เตพ เดชเดฐเดฟเดถเต‹เดงเดฟเดšเตเดšเต.

เด•เดฃเตเดŸเต†เดคเตเดคเดฒเตเด•เตพ

  1. เด‰เดฏเตผเดจเตเดจ เดฒเต‹เดกเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเดณเตเดณ เด†เด•เตผเดทเด•เดฎเดพเดฏ, เดตเดพเด—เตเดฆเดพเดจเดฎเดพเดฏ เด‰เตฝเดชเตเดชเดจเตเดจเดฎเดพเดฃเต Tarantool DBMS.
  2. เดคเดพเดดเตเดจเตเดจ เดจเดฟเดฒเดฏเดฟเดฒเตเดณเตเดณ เดชเด•เตผเดชเตเดชเตเด•เดณเต‡เด•เตเด•เดพเตพ เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเต เดจเดฟเดฐเดตเดงเดฟ เด—เตเดฃเด™เตเด™เดณเตเดฃเตเดŸเต.
  3. เด•เดดเดฟเดžเตเดž เดŽเด•เตเดธเตเดšเต‡เดžเตเดšเต เดธเต†เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดพเดฑเดฟเดฏ เดฑเต†เด•เตเด•เต‹เตผเดกเตเด•เตพ เดฎเดพเดคเตเดฐเด‚ เด•เตˆเดฎเดพเดฑเตเดฑเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเดคเดฟเดฒเต‚เดŸเต†, เดŸเตเดฐเดพเตปเดธเตเดซเตผ เดšเต†เดฏเตเดค เดกเดพเดฑเตเดฑเดฏเตเดŸเต† เด…เดณเดตเต เด•เตเดฑเดฏเตเด•เตเด•เดพเตป เดฒเต‡เด–เดจเดคเตเดคเดฟเตฝ เดšเตผเดšเตเดš เดšเต†เดฏเตเดค เด‰เดฏเตผเดจเตเดจ เดคเดฒเดคเตเดคเดฟเดฒเตเดณเตเดณ เดฑเต†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเตป เดฐเต€เดคเดฟ เดจเดฟเด™เตเด™เดณเต† เด…เดจเตเดตเดฆเดฟเด•เตเด•เตเดจเตเดจเต.

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

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