Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™

เปƒเบ™เบ„เบงเบฒเบกเบ„เบฒเบ”เบซเบงเบฑเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบญเบ‡เบเบฒเบ™เป„เบซเบผเปƒเบซเบกเปˆเปƒเบ™เบญเบฑเบ”เบ•เบฒ เบงเบดเบชเบฐเบงเบฐเบเบญเบ™เบ‚เปเป‰เบกเบนเบ™ เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบฐเบเบฝเบกเบเบฒเบ™เปเบ›เบžเบฒเบชเบฒเบ‚เบญเบ‡เป€เบญเบเบฐเบชเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ.

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™

เบžเบฒเบšเบฅเบงเบก

เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเปƒเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ—เบตเปˆเป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบ, เบšเปˆเบญเบ™เบ—เบตเปˆเปเบ•เปˆเบฅเบฐเบฎเป‰เบฒเบ™เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบฎเบนเบšเปเบšเบš canonical เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™ (MySQL, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบ„เบปเป‰เบ™เบซเบฒเปเบšเบšเบžเบดเป€เบชเบ” (ElasticSearch, etc.) .), caching (Memcached, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เปเบฅเบฐเบญเบทเปˆเบ™เป†. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เป€เบกเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบ, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบ™เบฑเป‰เบ™เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบฎเป‰เบฒเบ™เบ•เบปเป‰เบ™เบ•เปเปเบฅเบฐเบšเปˆเบญเบ™เบญเบทเปˆเบ™เป€เบ›เบฑเบ™เบฎเป‰เบฒเบ™เบญเบฐเบ™เบธเบžเบฑเบ™. เบšเบฑเบ™เบซเบฒเบžเบฝเบ‡เปเบ•เปˆเปเบกเปˆเบ™เบงเบดเบ—เบตเบเบฒเบ™ synchronize เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบšเบดเปˆเบ‡เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบžเบฐเบเบฒเบเบฒเบกเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™ synchronizing เบซเบผเบฒเบเบฎเป‰เบฒเบ™, เป€เบŠเบฑเปˆเบ™: double writes, เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบˆเบเบขเบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบงเบดเบ—เบตเบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบŠเบตเบงเบดเบ”เบˆเบดเบ‡, เบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท, เปเบฅเบฐเบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒ. เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเบเบฒเบ™ synchronization เบ‚เปเป‰เบกเบนเบ™, เบšเบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบเบฑเบ‡เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเบเบฒเบ™เป‚เบ—เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเบ™เบญเบ.

Delta เป„เบ”เป‰เบ–เบทเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰. เปƒเบ™เบ—เบตเปˆเบชเบธเบ” Delta เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบญเบ”เบ„เปˆเบญเบ‡, เป€เบงเบ—เบตเบเบฒเบ™เบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป€เบซเบ”เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ synchronization เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบเบฒเบ™เป€เบชเบตเบกเบชเป‰เบฒเบ‡.

เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบกเบตเบขเบนเปˆ

เป€เบ‚เบปเป‰เบฒเบ„เบนเปˆ

เป€เบžเบทเปˆเบญเบฎเบฑเบเบชเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบชเบญเบ‡เบขเปˆเบฒเบ‡เปƒเบซเป‰เบŠเบดเป‰เบ‡เบเบฑเบ™, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ‚เบฝเบ™เบ„เบนเปˆ, เป€เบŠเบดเปˆเบ‡เบ‚เบฝเบ™เปƒเบชเปˆเบฎเป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ‚เบฝเบ™เป„เบ›เบซเบฒเบญเบตเบเบฎเป‰เบฒเบ™เบซเบ™เบถเปˆเบ‡เบ—เบฑเบ™เบ—เบต. เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเบฅเบญเบ‡เปƒเบซเบกเปˆเปเบฅเบฐเบ—เบตเบชเบญเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเบปเบเป€เบฅเบตเบเป„เบ”เป‰เบ–เป‰เบฒเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบฅเบปเป‰เบกเป€เบซเบฅเบงเบซเบผเบฑเบ‡เบˆเบฒเบเบˆเปเบฒเบ™เบงเบ™เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเบซเบกเบปเบ”เปเบฅเป‰เบง. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ—เบฑเบ‡เบชเบญเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบญเบฒเบ”เบˆเบฐเบญเบญเบเบˆเบฒเบเบเบฒเบ™เบŠเบดเป‰เบ‡เบเบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบเบฒเบ™เบ‚เบฝเบ™เป„เบ›เบซเบฒเบฎเป‰เบฒเบ™เบ—เบตเบชเบญเบ‡เบฅเบปเป‰เบกเป€เบซเบฅเบง. เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบ–เบทเบเปเบเป‰เป„เบ‚เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเป‚เบ”เบเบเบฒเบ™เบชเป‰เบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบ—เปเบฒเบญเบดเบ”เป„เบ›เบซเบฒเบšเปˆเบญเบ™เบ—เบตเบชเบญเบ‡, เบซเบผเบทเป€เบฎเบฑเบ”เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เบ‚เปเป‰เบกเบนเบ™.

เบšเบฑเบ™เบซเบฒ:

เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเป€เบ›เบฑเบ™เบงเบฝเบเบชเบฐเป€เบžเบฒเบฐเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเบกเบฒเปƒเบŠเป‰เบ„เบทเบ™เป„เบ”เป‰. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ‚เปเป‰เบกเบนเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เบเบฑเบ‡เบšเปเปˆเบกเบตเบเบฒเบ™เบŠเบดเบ‡เบ„เปŒเบˆเบปเบ™เบเปˆเบงเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเป€เบเบตเบ”เบ‚เบถเป‰เบ™. เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบˆเบฐโ€‹เบเบฒเบโ€‹เป€เบ›เบฑเบ™โ€‹เบชเบฐโ€‹เบฅเบฑเบšโ€‹เบชเบฑเบšโ€‹เบŠเป‰เบญเบ™โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเบผเบฒเบโ€‹เบโ€‹เปˆโ€‹เบงเบฒโ€‹เบชเบญเบ‡โ€‹เบฎเป‰เบฒเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹. เบชเบธเบ”เบ—เป‰เบฒเบ, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบชเบฒเบกเบฒเบ”เป€เบžเบตเปˆเบกเบเบฒเบ™เป‚เบซเบผเบ”เบเบฑเบšเปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš.

เบ›เปˆเบฝเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบšเบฑเบ™เบ—เบถเบ

เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเบฑเบšเบŠเบธเบ”เบ‚เบญเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡ (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เปƒเบชเปˆ, เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡, เปเบฅเบฐเบฅเบถเบšเบšเบฑเบ™เบ—เบถเบ), เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฐเบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบšเบฑเบ™เบ—เบถเบเป€เบ›เบฑเบ™เบชเปˆเบงเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ”เบฝเบงเบเบฑเบ™. เบเบฐเบ—เบนเป‰เบญเบทเปˆเบ™เบซเบผเบทเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เป€เบซเบ”เบเบฒเบ™เบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเบ‚เบฝเบ™เบžเบงเบเบกเบฑเบ™เป„เบ›เบซเบฒเบฎเป‰เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เบซเบผเบทเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™, เบ–เบญเบ™เป€เบซเบ”เบเบฒเบ™เบญเบญเบเบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบšเบฑเบ™เบ—เบถเบเบซเบผเบฑเบ‡เบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเป„เบ”เป‰เบ–เบทเบเบขเบทเบ™เบขเบฑเบ™เป‚เบ”เบเบฎเป‰เบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบšเบฑเบ™เบซเบฒ:

เบฎเบนเบšเปเบšเบšเบ™เบตเป‰เบ„เบงเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ›เบฑเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”, เปเบฅเบฐเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเปƒเบŠเป‰เบกเบฑเบ™. เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก polyglot, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ„เบงเบ™เบˆเบฐเบกเบตเบขเบนเปˆเปƒเบ™เบžเบฒเบชเบฒเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เปเบ•เปˆเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบžเบถเบ”เบ•เบดเบเปเบฒเปƒเบ™เบ—เบปเปˆเบงเบžเบฒเบชเบฒเปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบซเบเบธเป‰เบ‡เบเบฒเบเบซเบผเบฒเบ.

เบšเบฑเบ™เบซเบฒเบญเบทเปˆเบ™เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ schema เปƒเบ™เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบšเปเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ schema เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ [1][2], เป€เบŠเบฑเปˆเบ™ MySQL. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡ schema) เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบชเบฐเป€เบซเบกเบต.

เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเปเบˆเบเบขเบฒเบ

เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเปเบˆเบเบขเบฒเบเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเปเบšเปˆเบ‡เบ›เบฑเบ™เบ—เบธเบฅเบฐเบเปเบฒเปƒเบ™เบ—เบปเปˆเบงเบฎเป‰เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบซเบผเบฒเบเป€เบžเบทเปˆเบญเปƒเบซเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบกเปˆเบ™เบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบเบฑเบšเบ—เบธเบเบฎเป‰เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปƒเบŠเป‰, เบซเบผเบทเบšเปเปˆเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเปƒเบ”เป†.

เบšเบฑเบ™เบซเบฒ:

เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเปเบˆเบเบขเบฒเบเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบšเบฑเบ™เบซเบฒเปƒเบซเบเปˆเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป‚เบ”เบเบ—เปเบฒเบกเบฐเบŠเบฒเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบญเบตเบ‡เปƒเบชเปˆเบ•เบปเบงเบซเบฒเบ™เบ—เบปเปˆเบงเป„เบ›เบ•เปˆเปเบฒเบชเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ XA เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ–เป‰เบฒเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบฅเบปเป‰เบกเป€เบซเบฅเบงเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบเบฐเบเบฝเบก. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, XA เบšเปเปˆเป„เบ”เป‰เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบเบงเบ”เบžเบปเบšเบเบฒเบ™เบ›เบดเบ”เบ—เป‰เบฒเบเบซเบผเบทเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ„เบ‡เบเบฒเบ™เบ„เบงเบšเบ„เบธเบก concurrency optimistic. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบšเบฒเบ‡เบฅเบฐเบšเบปเบšเป€เบŠเบฑเปˆเบ™ ElasticSearch เบšเปเปˆเบฎเบญเบ‡เบฎเบฑเบš XA เบซเบผเบทเบฎเบนเบšเปเบšเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบ‚เบฝเบ™เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปƒเบ™เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบขเบตเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ•เปˆเบฒเบ‡เป†เบเบฑเบ‡เบ„เบปเบ‡เป€เบ›เบฑเบ™เบงเบฝเบเบ—เบตเปˆเบ—เป‰เบฒเบ—เบฒเบเบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ [3].

Delta

Delta เป„เบ”เป‰เบ–เบทเบเบญเบญเบเปเบšเบšเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚เบเบฒเบ™เบŠเบดเบ‡เป‚เบ„เบฃเป„เบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบฅเบฐเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบเบฒเบ™เบšเบดเบ™เป„เบ”เป‰. เป€เบ›เบปเป‰เบฒเบซเบกเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญ abstract เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบขเบนเปˆเบซเปˆเบฒเบ‡เบˆเบฒเบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบžเบทเปˆเบญเปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบชเบธเบกเปƒเบชเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™. เบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบ "เบเบฒเบ™เบŠเบญเบเบซเบฒเบฎเบนเบšเป€เบ‡เบปเบฒ", เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ•เบปเบงเบˆเบดเบ‡เบชเปเบฒเบฅเบฑเบš Netflix's Delta.

Netflix เปƒเบŠเป‰เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเบณเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡, เปเบฅเบฐเปเบ•เปˆเบฅเบฐเบšเปเบฅเบดเบเบฒเบ™เบˆเบธเบฅเบฐเบžเบฒเบเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเป€เบžเบ”เบ”เบฝเบง. เบ‚เปเป‰เบกเบนเบ™เบžเบทเป‰เบ™เบ–เบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเป€เบ‡เบปเบฒเปเบกเปˆเบ™เบšเบฑเบ™เบˆเบธเบขเบนเปˆเปƒเบ™ microservice เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Movie Service, เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เป€เบŠเบฑเปˆเบ™: เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เบœเบฐเบฅเบดเบ”, เบ™เบฑเบเบชเบฐเปเบ”เบ‡, เบœเบนเป‰เบ‚เบฒเบ, เปเบฅเบฐเบญเบทเปˆเบ™เป†เปเบกเปˆเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เป‚เบ”เบ microservices เบญเบทเปˆเบ™เป†เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡ (เบ„เบท Deal Service, Talent Service เปเบฅเบฐ Vendor Service).
เบœเบนเป‰เปƒเบŠเป‰เบ—เบธเบฅเบฐเบเบดเบ”เบขเบนเปˆ Netflix Studios เบกเบฑเบเบˆเบฐเบ•เป‰เบญเบ‡เบ„เบปเป‰เบ™เบซเบฒเบœเปˆเบฒเบ™เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ‚เบญเบ‡เบฎเบนเบšเป€เบ‡เบปเบฒเบ•เปˆเบฒเบ‡เป†, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบ‚เบปเบฒเบ—เบตเปˆเบˆเบฐเบชเบฒเบกเบฒเบ”เบ„เบปเป‰เบ™เบซเบฒเปƒเบ™เบ—เบธเบเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบฎเบนเบšเป€เบ‡เบปเบฒ.

เบเปˆเบญเบ™ Delta, เบ—เบตเบกเบ‡เบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบฎเบนเบšเป€เบ‡เบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ”เบถเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเบฒเบ microservices เบซเบผเบฒเบเบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบ”เบฑเบ”เบชเบฐเบ™เบตเบ‚เปเป‰เบกเบนเบ™เบฎเบนเบšเป€เบ‡เบปเบฒ. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบ—เบตเบกเบ‡เบฒเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบฐเบšเบปเบšเบ—เบตเปˆเบˆเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ”เบฑเบ”เบชเบฐเบ™เบตเบ„เบปเป‰เบ™เบซเบฒเปเบ•เปˆเบฅเบฐเป„เบฅเบเบฐเป‚เบ”เบเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบˆเบฒเบ microservices เบญเบทเปˆเบ™เป†, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ”เป†. เบฅเบฐเบšเบปเบšเบ™เบตเป‰เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบ„เบงเบฒเบกเบชเบฑเบšเบชเบปเบ™เบขเปˆเบฒเบ‡เป„เบงเบงเบฒเปเบฅเบฐเบเบฒเบเบ—เบตเปˆเบˆเบฐเบฎเบฑเบเบชเบฒ.

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™
เบฎเบนเบšเบ—เบต 1. เบฅเบฐเบšเบปเบšเบเบฒเบ™เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เป„เบ›เบซเบฒเป€เบ‚เบ”เปเบ”เบ™
เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ Delta, เบฅเบฐเบšเบปเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เบ›เบฑเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป€เบซเบ”เบเบฒเบ™เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰. เป€เบซเบ”เบเบฒเบ™ CDC (Change-Data-Capture) เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบซเบปเบงเบ‚เปเป‰ Keystone Kafka เป‚เบ”เบเปƒเบŠเป‰ Delta-Connector. เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™ Delta เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เป‚เบ”เบเปƒเบŠเป‰ Delta Stream Processing Framework (เบญเบตเบ‡เปƒเบชเปˆ Flink) เป„เบ”เป‰เบฎเบฑเบšเป€เบซเบ”เบเบฒเบ™ CDC เบˆเบฒเบเบซเบปเบงเบ‚เปเป‰เปƒเบ”เบซเบ™เบถเปˆเบ‡, เป€เบฎเบฑเบ”เปƒเบซเป‰เบžเบงเบเป€เบ‚เบปเบฒเบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เป‚เบ”เบเบเบฒเบ™เป‚เบ—เบซเบฒ microservices เบญเบทเปˆเบ™เป†, เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเบˆเบฐเบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เป„เบ›เบซเบฒเบ”เบฑเบ”เบชเบฐเบ™เบตเบ„เบปเป‰เบ™เบซเบฒเปƒเบ™ Elasticsearch. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เป€เบเบทเบญเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบ—เบฑเบ™เบ—เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เบ„เบฑเบ‡เบ‚เปเป‰เบกเบนเบ™, เบ”เบฑเบ”เบชเบฐเบ™เบตเบ„เบปเป‰เบ™เบซเบฒเป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡.

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™
เบฎเบนเบšเบ—เบต 2. เบ—เปเปˆเบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ Delta
เปƒเบ™เบžเบฒเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡ Delta-Connector, เป€เบŠเบดเปˆเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™เปเบฅเบฐเป€เบœเบตเบเปเบœเปˆเป€เบซเบ”เบเบฒเบ™ CDC เป„เบ›เบซเบฒเบŠเบฑเป‰เบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เบ—เบตเปˆเบ™เปเบฒเบ—เบฒเบ‡เป€เบซเบ”เบเบฒเบ™ CDC เป„เบ›เบซเบฒเบซเบปเบงเบ‚เปเป‰ Kafka. เปเบฅเบฐเปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบญเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™ Delta stream, เป€เบŠเบดเปˆเบ‡เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบš.

CDC (เบ›เปˆเบฝเบ™-เบ‚เปเป‰เบกเบนเบ™-เบˆเบฑเบšเบžเบฒเบš)

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบšเปเบฅเบดเบเบฒเบ™ CDC เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Delta-Connector, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบˆเบฒเบเบšเปˆเบญเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡เปเบฅเบฐเบ‚เบฝเบ™เบžเบงเบเบกเบฑเบ™เบฅเบปเบ‡เปƒเบ™เบเบฐเปเบช. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡เปเบกเปˆเบ™เป€เบญเบปเบฒเบกเบฒเบˆเบฒเบเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบฅเบฐเบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญ. เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบ–เบทเบเปƒเบŠเป‰เป€เบžเบฒเบฐเบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ›เบปเบเบเบฐเบ•เบดเบˆเบฐเบšเปเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ›เบฐเบซเบงเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”. เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบงเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เปเบกเปˆเบ™เบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเป€เบ›เบฑเบ™เป€เบซเบ”เบเบฒเบ™ Delta, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบœเบนเป‰เบฎเบฑเบšเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบกเบฒเบˆเบฒเบเปƒเบช.

Delta-Connector เบฎเบญเบ‡เบฎเบฑเบšเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบซเบผเบฒเบเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™:

  • เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบกเบนเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰ Kafka.
  • เบ„เบงเบฒเบกโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบเบฐโ€‹เบ•เบธเป‰เบ™โ€‹เบเบฒเบ™ dumps เบ„เบนเปˆโ€‹เบกเบทโ€‹เปƒเบ™โ€‹เบ—เบธเบโ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹, เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹เปƒเบ”โ€‹เบซเบ™เบถเปˆเบ‡โ€‹, เบซเบผเบทโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฐโ€‹เปเบˆโ€‹เบซเบผเบฑเบโ€‹เบชเบฐโ€‹เป€เบžเบฒเบฐโ€‹.
  • เบเบฒเบ™เบ–เบดเป‰เบกเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบชเบฒเบกเบฒเบ”เบ–เบทเบเบ”เบถเบ‡เบญเบญเบเบกเบฒเป€เบ›เบฑเบ™เบ•เปˆเบญเบ™, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบง.
  • เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบงเบฒเบ‡ locks เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบซเบผเบฒเบเป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบ‚เบฝเบ™เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบšเปเปˆเป€เบ„เบตเบเบ–เบทเบเบชเบฐเบเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ.
  • เบกเบตเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบŠเปเป‰เบฒเบŠเป‰เบญเบ™เบขเบนเปˆเปƒเบ™เป€เบ‚เบ”เบ—เบตเปˆเบกเบต AWS.

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ MySQL เปเบฅเบฐ Postgres, เบฅเบงเบกเบ—เบฑเบ‡เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™ AWS RDS เปเบฅเบฐ Aurora. เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ Cassandra (multi-master). เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบŠเบญเบเบซเบฒเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบš Delta-Connector เบ—เบตเปˆเบ™เบตเป‰ blog post.

Kafka เปเบฅเบฐเบŠเบฑเป‰เบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡

เบŠเบฑเป‰เบ™เบเบฒเบ™เบ‚เบปเบ™เบชเบปเปˆเบ‡เป€เบซเบ”เบเบฒเบ™เบ‚เบญเบ‡ Delta เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบปเปˆเบ‡เบ‚เปเป‰เบ„เบงเบฒเบกเบ‚เบญเบ‡เป€เบงเบ—เบต Keystone.

เปƒเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”, เบเบฒเบ™เบ›เบฐเบเบฒเบ”เปƒเบ™ Netflix เป„เบ”เป‰เบ–เบทเบเบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเป‰เป€เบซเบกเบฒเบฐเบชเบปเบกเบเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบกเบตเบญเบฒเบเบธเบเบทเบ™ (เป€เบšเบดเปˆเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰). เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ). เบเบฒเบ™เบŠเบทเป‰-เบ‚เบฒเบเปเบกเปˆเบ™เบ„เบงเบฒเบกเบšเปเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ™เบฒเบเบซเบ™เป‰เบฒเปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ‚เบญเบšเบ•เปˆเบฒเบ‡เป†. เบเบปเบโ€‹เบ•เบปเบงโ€‹เบขเปˆเบฒเบ‡, เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฑเป‰เบ‡เบœเบนเป‰เบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ•เปเปˆเบœเบนเป‰เบฎเบฑเบšเบ—เบตเปˆเบญเบฒเบ”เบกเบตเป€เบซเบ”เบเบฒเบ™เบŠเปเป‰เบฒเบเบฑเบ™ เบซเบผเบทเป€เบชเบเป„เบ›.

เบ”เป‰เบงเบ Delta, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ—เบตเปˆเปเบ‚เบ‡เปเบฎเบ‡เบเบงเปˆเบฒเป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เป€เบซเบ”เบเบฒเบ™ CDC เป„เบ›เบซเบฒเบฎเป‰เบฒเบ™เบ„เป‰เบฒเบ—เบตเปˆเบกเบฒเบˆเบฒเบ. เบชเปเบฒเบฅเบฑเบšเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบชเบฐเป€เบซเบ™เบตเบเบธเปˆเบก Kafka เบ—เบตเปˆเบ–เบทเบเบญเบญเบเปเบšเบšเบžเบดเป€เบชเบ”เป€เบ›เบฑเบ™เบงเบฑเบ”เบ–เบธเบŠเบฑเป‰เบ™เบ—เปเบฒเบญเบดเบ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เปƒเบ™เบšเบฒเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ™เบฒเบเบซเบ™เป‰เบฒเปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰:

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™

เปƒเบ™เบเบธเปˆเบก Keystone Kafka, เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฑเป‰เบ‡เบœเบนเป‰เบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบˆเบฐเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡เบœเบนเป‰เป€เบœเบตเบเปเบœเปˆ. เบญเบฑเบ™เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เปƒเบซเป‰เบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบชเบนเบ™เป€เบชเบเป„เบ› เบ–เป‰เบฒเบ•เบปเบงเปเบšเบšเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบŠเบดเบ‡เป‚เบ„เบฃเป„เบ™เบ–เบทเบเป€เบฅเบทเบญเบเป€เบ›เบฑเบ™เบœเบนเป‰เบ™เปเบฒ. เบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก Kafka เบ—เบตเปˆเบกเบตเปƒเบซเบกเปˆเบชเบนเบ‡, เบ—เบฒเบ‡เป€เบฅเบทเบญเบ เบเบฒเบ™เป€เบฅเบทเบญเบเบ•เบฑเป‰เบ‡เบœเบนเป‰เบ™เปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฐเบญเบฒเบ” เบ›เบดเบ”เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบก.

เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™ เบ›เบฑเบ”เป„เบˆเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡ เบˆเบฒเบ 2 เบซเบฒ 3 เปเบฅเบฐ insync replicas เบ•เปเบฒเปˆเบชเบธเบ”เบ—เบตเปˆ 1 เบซเบฒ 2. เบœเบนเป‰เบžเบดเบกเบ‚เบฝเบ™เปƒเบชเปˆเบเบธเปˆเบกเบ™เบตเป‰เบ•เป‰เบญเบ‡เบเบฒเบ™ acks เบˆเบฒเบเบœเบนเป‰เบญเบทเปˆเบ™เบ—เบฑเบ‡เปเบปเบ”, เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒ 2 เปƒเบ™ 3 replicas เบกเบตเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบœเบนเป‰เป€เบœเบตเบเปเบœเปˆเบชเบปเปˆเบ‡เบกเบฒ.

เป€เบกเบทเปˆเบญเบ•เบปเบงเบขเปˆเบฒเบ‡เบ™เบฒเบเบซเบ™เป‰เบฒเบขเบธเบ”เป€เบŠเบปเบฒ, เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบซเบกเปˆเบˆเบฐเปเบ—เบ™เบ—เบตเปˆเป€เบเบปเปˆเบฒ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบ™เบฒเบเบซเบ™เป‰เบฒเปƒเบซเบกเปˆเบˆเบฐเบ•เป‰เบญเบ‡เป„เบ”เป‰เบˆเบฑเบšเบเบฑเบš replicas unsynchronized, เป€เบŠเบดเปˆเบ‡เบญเบฒเบ”เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบŠเบปเปˆเบงเป‚เบกเบ‡. เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเปƒเบŠเป‰เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบšเบฅเบฑเบญเบ (Amazon Elastic Block Store) เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เปเบœเปˆเบ™เบ‚เบญเบ‡เบ™เบฒเบเบซเบ™เป‰เบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™. เป€เบกเบทเปˆเบญเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบซเบกเปˆเบ›เปˆเบฝเบ™เปเบ—เบ™เบ™เบฒเบเบซเบ™เป‰เบฒเบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบ, เบกเบฑเบ™เบ•เบดเบ”เบเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™ EBS เบ—เบตเปˆเบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ–เบทเบเบเบปเบเป€เบฅเบตเบเบกเบตเปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ•เบดเบ”เบ•เบฒเบกเบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบซเบกเปˆ. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ™เบตเป‰เบŠเปˆเบงเบเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบเบฒเบ™เป€เบเบฑเบšเบเบนเป‰เบ‚เปเป‰เบกเบนเบ™เบ„เบทเบ™เบˆเบฒเบเบŠเบปเปˆเบงเป‚เบกเบ‡เป€เบ›เบฑเบ™เบ™เบฒเบ—เบตเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบซเบกเปˆเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบŠเป‰เปเบฒเบญเบตเบเบˆเบฒเบเบชเบฐเบ–เบฒเบ™เบฐเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ. เป‚เบ”เบเบฅเบงเบกเปเบฅเป‰เบง, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเปเบฅเบฐเบงเบปเบ‡เบˆเบญเบ™เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบ™เบฒเบเบซเบ™เป‰เบฒเบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเบœเบปเบ™เบเบฐเบ—เบปเบšเบ‚เบญเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เบ™เบฒเบเบซเบ™เป‰เบฒ.

เป€เบžเบทเปˆเบญเป€เบžเบตเปˆเบกเบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เบˆเบฑเบ”เบชเบปเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰ เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เปเป‰เบ„เบงเบฒเบก เป€เบžเบทเปˆเบญเบเบงเบ”เบซเบฒเบเบฒเบ™เบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบ„เบงเบฒเบกเปƒเบ”เป†เบžเบฒเบเปƒเบ•เป‰เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ—เบตเปˆเบฎเบธเบ™เปเบฎเบ‡ (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, desynchronization เป‚เบกเบ‡เปƒเบ™เบœเบนเป‰เบ™เปเบฒเบžเบฒเบ—เบดเบŠเบฑเบ™).

Stream Processing Framework

เบŠเบฑเป‰เบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบ‚เบญเบ‡ Delta เปเบกเปˆเบ™เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เป€เบงเบ—เบต Netflix SPaaS, เป€เบŠเบดเปˆเบ‡เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ Apache Flink เบเบฑเบšเบฅเบฐเบšเบปเบšเบ™เบดเป€เบงเบ” Netflix. เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบงเบฝเบ Flink เปเบฅเบฐเบเบฒเบ™เบˆเบฑเบ”เบงเบฒเบ‡เบเบธเปˆเบก Flink เบขเบนเปˆเป€เบ—เบดเบ‡เบชเบธเบ”เบ‚เบญเบ‡เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบเบฒเบ™เบˆเบฑเบ”เบเบฒเบ™เบ•เบนเป‰เบ„เบญเบ™เป€เบ—เบ™เป€เบ™เบต Titus เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบเบฑเบ‡เบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบงเบฝเบเปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เป€เบฎเบฑเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบšเบšเป€เบ„เบทเปˆเบญเบ™เป„เบซเบงเป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฅเบงเบšเบฅเบงเบกเบงเบฝเบ Flink.

Delta เบชเบฐเปœเบญเบ‡เบเบญเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบเบฐเปเบชเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Flink เปเบฅเบฐ SPaaS เบ—เบตเปˆเปƒเบŠเป‰ เบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ DSL (เบžเบฒเบชเบฒเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡เป‚เบ”เป€เบกเบ™) เป€เบžเบทเปˆเบญเบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ”เป‰เบฒเบ™เบงเบดเบŠเบฒเบเบฒเบ™เบ—เบตเปˆเบšเปเปˆเบกเบตเบ•เบปเบงเบ•เบปเบ™. เบ•เบปเบงเบขเปˆเบฒเบ‡, เป€เบžเบทเปˆเบญเบเปเบฒเบ™เบปเบ”เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเป€เบซเบ”เบเบฒเบ™เบˆเบฐเบญเบธเบ”เบปเบกเบชเบปเบกเบšเบนเบ™เป‚เบ”เบเบเบฒเบ™เป‚เบ—เบซเบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเบ™เบญเบ, เบœเบนเป‰เปƒเบŠเป‰เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ‚เบฝเบ™ DSL เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เปเบฅเบฐเบเบญเบšเบˆเบฐเบชเป‰เบฒเบ‡เบ•เบปเบงเปเบšเบšเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆเบกเบฑเบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ”เบ Flink.

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™
เบฎเบนเบš 3. เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เป€เบชเบตเบกเบชเป‰เบฒเบ‡ DSL เปƒเบ™ Delta

เบเบญเบšเบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบชเบฑเป‰เบ™เป‚เบ„เป‰เบ‡เบเบฒเบ™เบฎเบฝเบ™เบฎเบนเป‰, เปเบ•เปˆเบเบฑเบ‡เบชเบฐเบซเบ™เบญเบ‡เบฅเบฑเบเบชเบฐเบ™เบฐเบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ™เป‰เปเบฒเบ—เบปเปˆเบงเป„เบ›เป€เบŠเบฑเปˆเบ™: deduplication, schematization, เปเบฅเบฐเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบขเบทเบ”เบขเบธเปˆเบ™เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบปเปˆเบงเป„เบ›.

Delta Stream Processing Framework เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบญเบ‡เป‚เบกเบ”เบนเบ™เบซเบผเบฑเบ, เป‚เบกเบ”เบนเบ™ DSL & API เปเบฅเบฐเป‚เบกเบ”เบนเบ™ Runtime. เป‚เบกเบ”เบนเบ™ DSL & API เบชเบฐเบซเบ™เบญเบ‡ DSL เปเบฅเบฐ UDF (User-Defined-Function) APIs เป€เบžเบทเปˆเบญเปƒเบซเป‰เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป€เบซเบ”เบœเบปเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡ (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เบเบฑเปˆเบ™เบ•เบญเบ‡เบซเบผเบทเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡). เป‚เบกเบ”เบนเบ™ Runtime เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบงเบดเป€เบ„เบฒเบฐ DSL เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ•เบปเบงเปเบ—เบ™เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบ›เบธเบ‡เปเบ•เปˆเบ‡เปƒเบ™เบฎเบนเบšเปเบšเบš DAG. เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ•เบตเบ„เบงเบฒเบกเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡ DAG เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ„เปเบฒเบ–เบฐเปเบซเบผเบ‡เบเบฒเบ™ Flink เบ•เบปเบงเบˆเบดเบ‡เปเบฅเบฐเบชเบธเบ”เบ—เป‰เบฒเบเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Flink. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ‚เบญเบ‡เบเบญเบšเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰.

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™
เบฎเบนเบšเบ—เบต 4. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒ Delta Stream Processing Framework

เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบกเบตเบ‚เปเป‰เบ”เบตเบซเบผเบฒเบ:

  • เบœเบนเป‰เปƒเบŠเป‰เบชเบฒเบกเบฒเบ”เบชเบธเบกเปƒเบชเปˆเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ—เบธเบฅเบฐเบเบดเบ”เบ‚เบญเบ‡เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบˆเบฒเบฐเป€เบฅเบดเบเบชเบฐเป€เบžเบฒเบฐเบ‚เบญเบ‡ Flink เบซเบผเบทเป‚เบ„เบ‡เบชเป‰เบฒเบ‡ SPaaS.
  • เบเบฒเบ™เป€เบžเบตเปˆเบกเบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปƒเบ™เปเบšเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเป‚เบ›เปˆเบ‡เปƒเบชเบ•เปเปˆเบœเบนเป‰เปƒเบŠเป‰, เปเบฅเบฐเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เบชเบฒเบกเบฒเบ”เบ–เบทเบเปเบเป‰เป„เบ‚เป„เบ”เป‰เป‚เบ”เบเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบฅเบฐเบซเบฑเบ”เบœเบนเป‰เปƒเบŠเป‰ (UDF).
  • เบ›เบฐเบชเบปเบšเบเบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Delta เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เป€เบžเบฒเบฐเบงเปˆเบฒเปเบžเบฅเบฐเบ•เบฐเบŸเบญเบกเบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เปเบฅเบฐเบ„เบงเบฒเบกเบขเบทเบ”เบขเบธเปˆเบ™เบญเบญเบเบˆเบฒเบเบเปˆเบญเบ‡เปเบฅเบฐเป€เบเบฑเบšเบเปเบฒเบ„เบงเบฒเบกเบซเบฅเบฒเบเบซเบฅเบฒเบเบ‚เบญเบ‡ metrics เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบˆเป‰เบ‡เป€เบ•เบทเบญเบ™.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบœเบฐเบฅเบดเบ”

Delta เป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบ›เบตเปเบฅเบฐเบกเบตเบšเบปเบ”เบšเบฒเบ”เบชเปเบฒเบ„เบฑเบ™เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Netflix Studio เบซเบผเบฒเบ. เบ™เบฒเบ‡เป„เบ”เป‰เบŠเปˆเบงเบเบ—เบตเบกเบ‡เบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเปเบฅเบฐเบ™เบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบŠเบฑเปˆเบ™เบเบฒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบตเบ„เบปเป‰เบ™เบซเบฒ, เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™, เปเบฅเบฐเบ‚เบฐเบšเบงเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบ‚เบฑเบšเป€เบ„เบทเปˆเบญเบ™เป‚เบ”เบเป€เบซเบ”เบเบฒเบ™. เบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰เปเบกเปˆเบ™เบžเบฒเบšเบฅเบงเบกเบ‚เบญเบ‡เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบ‚เบญเบ‡เป€เบงเบ—เบต Delta.

Delta: เปเบžเบฅเบฐเบ•เบฐเบŸเบญเบก synchronization เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡เบ‚เปเป‰เบกเบนเบ™
เบฎเบนเบš 5. เบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบฅเบฐเบ”เบฑเบšเบชเบนเบ‡เบ‚เบญเบ‡ Delta.

เบ‚เบญเบšเปƒเบˆ

เบžเบงเบเป€เบฎเบปเบฒเบ‚เปเบ‚เบญเบšเปƒเบˆเบ„เบปเบ™เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบ—เบตเปˆเบกเบตเบชเปˆเบงเบ™เบฎเปˆเบงเบกเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒ Delta เบขเบนเปˆ Netflix: Allen Wang, Charles Zhao, Jaebin Yoon, Josh Snyder, Kasturi Chatterjee, Mark Cho, Olof Johansson, Piyush Goyal, Prashanth Ramdas, Raghuram Onti Srinivasan, Sandeep Gupta, Steven Wu, Tharanga Gamaethige, Yun Wang เปเบฅเบฐ Zhenzhong Xu.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™

  1. dev.mysql.com/doc/refman/5.7/en/implicit-commit.html
  2. dev.mysql.com/doc/refman/5.7/en/cannot-roll-back.html
  3. Martin Kleppmann, Alastair R. Beresford, Boerge Svingen: เบเบฒเบ™เบ›เบฐเบกเบงเบ™เบœเบปเบ™เป€เบซเบ”เบเบฒเบ™เบญเบญเบ™เป„เบฅเบ™เปŒ. เบŠเบธเบกเบŠเบปเบ™. ACM 62(5): 43โ€“49 (2019). DOI: doi.org/10.1145/3312527

เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ webinar เบŸเบฃเบต: "เป€เบ„เบทเปˆเบญเบ‡เบกเบทเบชเป‰เบฒเบ‡เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ Amazon Redshift."

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™