HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบเบญเบ‡เบ›เบฐเบŠเบธเบก HighLoad++ เบ•เปเปˆเป„เบ›เบˆเบฐเบˆเบฑเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบงเบฑเบ™เบ—เบต 6 เปเบฅเบฐ 7 เป€เบกเบชเบฒ 2020 เบ—เบตเปˆ St.
เบฅเบฒเบเบฅเบฐเบญเบฝเบ” เปเบฅเบฐเบ›เบตเป‰ เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. HighLoad++ Siberia 2019. Hall "Krasnoyarsk". เบงเบฑเบ™เบ—เบต 25 เบกเบดเบ–เบธเบ™เบฒ, 12:00 เป‚เบกเบ‡. เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹ เบเบฒเบ™ เบ™เบณ เบชเบฐ เป€เปœเบต.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

Mikhail Tyulenev (เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ MT): โ€“ เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡ Causal - เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™ MongoDB. เบ‚เป‰เบญเบเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบเบธเปˆเบกเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปเบˆเบเบขเบฒเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบกเบฑเบ™เบ›เบฐเบกเบฒเบ™เบชเบญเบ‡เบ›เบตเบเปˆเบญเบ™.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

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

เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”. เปƒเบซเป‰เบเปเบฒเบ™เบปเบ”เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”

เป€เบžเบทเปˆเบญเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ, เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบงเบปเป‰เบฒเปƒเบ™เบ„เปเบฒเบชเบฑเบšเบ—เบปเปˆเบงเป„เบ›เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ Causal เปเบกเปˆเบ™เบซเบเบฑเบ‡. เบกเบตเบชเบญเบ‡เบ•เบปเบงเบฅเบฐเบ„เบญเบ™ - Leonard เปเบฅเบฐ Penny (เบŠเบธเบ”เป‚เบ—เบฅเบฐเบ—เบฑเบ” "The Big Bang Theory"):

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒ Penny เบขเบนเปˆเปƒเบ™เป€เบญเบตเบฃเบปเบšเปเบฅเบฐ Leonard เบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบ™เบฒเบ‡เป€เบ›เบฑเบ™เบ‡เบฒเบ™เบฅเป‰เบฝเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบ›เบฐเบซเบฅเบฒเบ”เปƒเบˆ. เปเบฅเบฐเบฅเบฒเบงเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบดเบ”เบซเบเบฑเบ‡เบ”เบตเป„เบ›เบเบงเปˆเบฒเบเบฒเบ™เบ–เบดเป‰เบกเบ™เบฒเบ‡เบญเบญเบเบˆเบฒเบเบฅเบฒเบเบŠเบทเปˆเปเบนเปˆเบ‚เบญเบ‡เบฅเบฒเบง, เบชเบปเปˆเบ‡เบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เปƒเบซเป‰เปเบนเปˆเบ‚เบญเบ‡เบฅเบฒเบงเบ—เบฑเบ‡เปเบปเบ”เปƒเบ™เบŸเบตเบ”เบงเปˆเบฒ: โ€œเบ‚เปเปƒเบซเป‰เป€เบžเบ™เบ™เบตเบกเบตเบ„เบงเบฒเบกเบชเบธเบ!โ€ (เบ™เบฒเบ‡เบขเบนเปˆเปƒเบ™เป€เบญเบตเบฃเบปเบš, เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบ™เบฒเบ‡เบ™เบญเบ™, เบ™เบฒเบ‡เบšเปเปˆเป€เบซเบฑเบ™เบชเบดเปˆเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เปเบฅเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เบกเบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเบ™เบฒเบ‡เบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™). เปƒเบ™เบ—เบตเปˆเบชเบธเบ”, เบ™เบฒเบ‡เป„เบ”เป‰เบฅเบถเบšเป‚เบžเบชเบ™เบตเป‰, เบฅเบถเบšเบกเบฑเบ™เบญเบญเบเบˆเบฒเบเบŸเบตเบ” เปเบฅเบฐ เบเบนเป‰เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบทเบ™เบกเบฒเป€เบžเบทเปˆเบญเบšเปเปˆเปƒเบซเป‰เบ™เบฒเบ‡เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบซเบเบฑเบ‡ เปเบฅเบฐเบšเปเปˆเบกเบตเป€เบฅเบทเปˆเบญเบ‡เบซเบเบฒเบšเบ„เบฒเบ.
เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบ”เบตเปเบฅเบฐเบ”เบต, เปเบ•เปˆเปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบฅเบฐเบšเบปเบšเป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเปเบฅเบฐเบชเบดเปˆเบ‡เบ—เบตเปˆเบœเบดเบ”เบžเบฒเบ”เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบกเบฑเบ™เบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡ Penny เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบเบฒเบ”เบ™เบตเป‰เบ›เบฒเบเบปเบ”, เบ–เป‰เบฒเป€เบซเบ”เบเบฒเบ™เบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบ™เป‚เบ”เบเป€เบซเบ”เปเบฅเบฐเบœเบปเบ™. เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง, เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เป€เบงเบฅเบฒเบ—เบตเปˆเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ Causal เปเบกเปˆเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเบ—เบธเบฅเบฐเบเบดเบ” (เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰).

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

เบฎเบนเบšเปเบšเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡

เบฎเบนเบšเปเบšเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เบซเบเบฑเบ‡? เบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบฅเบฐเบšเบปเบšเปเบˆเบเบขเบฒเบเปƒเบซเป‰เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเปเบฅเบฐเปƒเบ™เบฅเปเบฒเบ”เบฑเบšเปƒเบ”.

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

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

เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡

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

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

เบกเบตเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เปƒเบ™ Spanner - เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบžเบฒเบเบ™เบญเบ. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบ•เปเปˆเบกเบฒเป€เบฅเบฑเบเบ™เป‰เบญเบ.

เบชเบฒเป€เบซเบ”

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

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

เปƒเบ™เบ—เบตเปˆเบชเบธเบ”

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

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

เบ‚เป‰เบญเบเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ›เบฝเบšเบ—เบฝเบšเบšเบฒเบ‡เบขเปˆเบฒเบ‡:

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบฅเบนเบเบชเบญเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”?

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

เบ—เบดเบ”เบชเบฐเบ”เบต CAP

เป€เบกเบทเปˆเบญเบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเบšเบ•เปˆเบฒเบ‡เป†, เบ„เบงเบฒเบกเบžเป‰เบญเบก - เปเบกเปˆเบ™เบซเบเบฑเบ‡เบกเบฒเบชเบนเปˆเปƒเบˆเบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒ? เบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเป‰เบง - เบ—เบดเบ”เบชเบฐเบ”เบต CAP! เบ”เบฝเบงเบ™เบตเป‰เบ‚เป‰เบญเบเบขเบฒเบเบ‚เบฑเบšเป„เบฅเปˆเป€เบฅเบทเปˆเบญเบ‡เบ™เบดเบ—เบฒเบ™เบญเบญเบเบกเบฒ... เบกเบฑเบ™เบšเปเปˆเปเบกเปˆเบ™เบ‚เป‰เบญเบ - เบกเบฑเบ™เปเบกเปˆเบ™ Martin Kleppmann, เบœเบนเป‰เบ—เบตเปˆเบ‚เบฝเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเบ›เบฐเป€เบชเบตเบ”, เบ›เบทเป‰เบกเบ—เบตเปˆเบ›เบฐเป€เบชเบตเบ”.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ—เบดเบ”เบชเบฐเบ”เบต CAP เปเบกเปˆเบ™เบซเบผเบฑเบเบเบฒเบ™เบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบŠเบธเบกเบ›เบต 2000 เบงเปˆเบฒเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡, เบกเบต, เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™: เป€เบญเบปเบฒเบชเบญเบ‡เบญเบฑเบ™, เปเบฅเบฐเบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบฅเบทเบญเบเบชเบฒเบก. เบกเบฑเบ™เปเบกเปˆเบ™เบซเบผเบฑเบเบเบฒเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบžเบดเบชเบนเบ”เบงเปˆเบฒเป€เบ›เบฑเบ™เบ—เบดเบ”เบชเบฐเบ”เบตเบšเบปเบ”เบชเบญเบ‡เบชเบฒเบกเบ›เบตเบ•เปเปˆเบกเบฒเป‚เบ”เบ Gilbert เปเบฅเบฐ Lynch. เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบ™เบตเป‰เป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบ›เบฑเบ™ mantra - เบฅเบฐเบšเบปเบšเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ—เบตเปˆเบˆเบฐเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™ CA, CP, AP เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบ—เบดเบ”เบชเบฐเบ”เบตเบ™เบตเป‰เป„เบ”เป‰เบ–เบทเบเบžเบดเบชเบนเบ”เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบชเปเบฒเบฅเบฑเบšเบเปเบฅเบฐเบ™เบตเบ•เปเปˆเป„เบ›เบ™เบตเป‰ ... เบ—เปเบฒเบญเบดเบ”, เบเบฒเบ™เบกเบตเบขเบนเปˆเป„เบ”เป‰เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบšเปเปˆเปเบกเปˆเบ™เบกเบนเบ™เบ„เปˆเบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบชเบนเบ™เบซเบฒเบฎเป‰เบญเบ (0 - เบฅเบฐเบšเบปเบšเปเบกเปˆเบ™ "เบ•เบฒเบ", 100 - เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบขเปˆเบฒเบ‡เป„เบงเบงเบฒ; เบžเบงเบเป€เบฎเบปเบฒเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบกเบฑเบ™) , เปเบ•เปˆเป€เบ›เบฑเบ™เบŠเบฑเบšเบชเบดเบ™เบ‚เบญเบ‡ algorithm , เป€เบŠเบดเปˆเบ‡เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบกเบฑเบ™เบกเบฑเบ™เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบ‚เปเป‰เบกเบนเบ™.

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

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

เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”เปเบกเปˆเบ™เบ•เบปเบงเปเบšเบšเบ—เบตเปˆเป€เบ‚เบฑเป‰เบกเปเบ‚เบ‡เบ—เบตเปˆเบชเบธเบ”

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

MongoDB เป€เบฎเบทเบญเบ™เบ„เบปเบงเบžเบฒเบเปƒเบ™

เบˆเบทเปˆเป„เบงเป‰เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบญเบฒเบซเบฒเบ™เบ—เปˆเบฝเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบเป‰เบฒเบเป„เบ›เป€เบฎเบทเบญเบ™เบ„เบปเบง. เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเบ—เปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบšเบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เบ„เบท, MongoDB เปเบกเปˆเบ™เบซเบเบฑเบ‡เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เบ—เบตเปˆเป„เบ”เป‰เบเบดเบ™เบเปˆเบฝเบงเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

MongoDB (เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ "MongoDB") เปเบกเปˆเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเบญเบญเบเบ•เบฒเบกเบฅเบงเบ‡เบ™เบญเบ™, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, sharding; เปเบฅเบฐเบžเบฒเบเปƒเบ™เปเบ•เปˆเบฅเบฐ shard เบกเบฑเบ™เบเบฑเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบŠเป‰เปเบฒเบŠเป‰เบญเบ™เบ‚เปเป‰เบกเบนเบ™, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, replication.

Sharding เปƒเบ™ MongoDB (เบšเปเปˆเปเบกเปˆเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡) เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบฅเบงเบšเบฅเบงเบกเป€เบญเบเบฐเบชเบฒเบ™ (เบซเบผเบท "เบ•เบฒเบ•เบฐเบฅเบฒเบ‡" เปƒเบ™เบ‚เปเป‰เบเปเบฒเบ™เบปเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡) เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบ•เปˆเบญเบ™, เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบˆเบฐเบเป‰เบฒเบเบžเบงเบเบกเบฑเบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡ shards.

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

เบˆเบธเบ”เบชเปเบฒเบ„เบฑเบ™เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡: MongoDB เป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”เบ”เบฝเบง. เบกเบตเบซเบ™เบถเปˆเบ‡เบ›เบฐเบ–เบปเบก - เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒเบšเบฑเบ™เบ—เบถเบเบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฐเปเบˆเบ—เบตเปˆเบกเบฑเบ™เบกเบต. เบ—เปˆเบฒเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™ Multi-master เป„เบ”เป‰.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบญเบญเบเบฅเบธเป‰เบ™ 4.2 - เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเปƒเบซเบกเปˆเบ›เบฒเบเบปเบ”เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐ, เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เปƒเบชเปˆ Lucene - เบ„เบปเป‰เบ™เบซเบฒ - เบ„เบท java เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบเบเบปเบ‡เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ Mongo, เปเบฅเบฐเบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบซเบฒเบœเปˆเบฒเบ™ Lucene, เบ„เบทเบเบฑเบ™เบเบฑเบšเปƒเบ™ Elastica.

เปเบฅเบฐเบžเบงเบเป€เบ‚เบปเบฒเป„เบ”เป‰เป€เบฎเบฑเบ”เบœเบฐเบฅเบดเบ”เบ•เบฐเบžเบฑเบ™เปƒเบซเบกเปˆ - เบ•เบฒเบ•เบฐเบฅเบฒเบ‡, เบกเบฑเบ™เบเบฑเบ‡เบกเบตเบขเบนเปˆเปƒเบ™ Atlas (Cloud เบ‚เบญเบ‡ Mongo เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡). เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบตเบฅเบฐเบ”เบฑเบšเบŸเบฃเบต - เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบซเบผเบดเป‰เบ™เบ›เบฐเบกเบฒเบ™เบเบฑเบšเบกเบฑเบ™. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบกเบฑเบโ€‹เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡ - เบเบฒเบ™โ€‹เป€เบšเบดเปˆเบ‡โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹, intuitive เบซเบผเบฒเบโ€‹.

เบชเปˆเบงเบ™เบ›เบฐเบเบญเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบ™เบฑเบšเบ›เบฐเบกเบฒเบ™ 230 เบšเบปเบ”เบ„เบงเบฒเบกเบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบตเบžเบดเบกเปƒเบ™เบซเบปเบงเบ‚เปเป‰เบ™เบตเป‰ - เบˆเบฒเบ Leslie Lampert. เบšเบฑเบ”เบ™เบตเป‰เบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบ‚เป‰เบญเบเบ‚เป‰เบญเบเบˆเบฐเบ–เปˆเบฒเบเบ—เบญเบ”เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เบงเบฑเบ”เบชเบฐเบ”เบธเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปƒเบซเป‰เบเบฑเบšเป€เบˆเบปเป‰เบฒ.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

Restrictions

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

  • เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, "MongoDB" เปเบกเปˆเบ™เปเบกเปˆเบšเบปเบ”เบ”เบฝเบง, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบญเบเป€เบงเบปเป‰เบฒเปเบฅเป‰เบง (เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบ‡เปˆเบฒเบเบซเบผเบฒเบ).
  • เบžเบงเบเป€เบฎเบปเบฒเป€เบŠเบทเปˆเบญเบงเปˆเบฒเบฅเบฐเบšเบปเบšเบ„เบงเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบฐเบกเบฒเบ™ 10 เบžเบฑเบ™ shards. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป€เบฎเบฑเบ”โ€‹เปƒเบซเป‰โ€‹เบเบฒเบ™โ€‹เบ•เบฑเบ”โ€‹เบชเบดเบ™โ€‹เปƒเบˆโ€‹เบชเบฐโ€‹เบ–เบฒโ€‹เบ›เบฑเบ”โ€‹เบ•เบฐโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบˆเปเบฒโ€‹เบเบฑเบ”โ€‹เบขเปˆเบฒเบ‡โ€‹เบŠเบฑเบ”โ€‹เป€เบˆเบ™โ€‹เบ„เปˆเบฒโ€‹เบ™เบตเป‰โ€‹.
  • เบžเบงเบเป€เบฎเบปเบฒเบกเบตเป€เบกเบ„, เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เปƒเบ”เบซเบ™เบถเปˆเบ‡เบ„เบงเบ™เบˆเบฐเบเบฑเบ‡เบกเบตเป‚เบญเบเบฒเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบฅเบฒเบงเบ”เบฒเบงเป‚เบซเบฅเบ” binary, เปเบฅเปˆเบ™เบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเป‰เบ‚เบญเบ‡เบฅเบฒเบง, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰เบ”เบต.
  • เบžเบงเบเป€เบฎเบปเบฒเบชเบปเบกเบกเบธเบ”เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเบšเปเปˆเบ„เปˆเบญเบเบชเบปเบกเบกเบธเบ”เบงเปˆเบฒ: เบฅเบนเบเบ„เป‰เบฒเบžเบฒเบเบ™เบญเบเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบกเบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบ•เป‰เบญเบ‡เบเบฒเบ™. MongoDB เปเบกเปˆเบ™เปเบซเบผเปˆเบ‡เป€เบ›เบตเบ”. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบฅเบนเบเบ„เป‰เบฒเบชเบฒเบกเบฒเบ”เบชเบฐเบซเบฅเบฒเบ”เปเบฅเบฐเปƒเบˆเบฎเป‰เบฒเบ - เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ—เปเบฒเบฅเบฒเบเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบ„เบฒเบ”เบ„เบฐเป€เบ™เบงเปˆเบฒ Byzantine Feilors เบญเบฒเบ”เบˆเบฐเบกเบฒเบˆเบฒเบ.
  • เบชเปเบฒเบฅเบฑเบšเบฅเบนเบเบ„เป‰เบฒเบžเบฒเบเบ™เบญเบเบ—เบตเปˆเบขเบนเปˆเบ™เบญเบเบ‚เบญเบšเป€เบ‚เบ”, เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™: เบ–เป‰เบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰เบ–เบทเบเบ›เบดเบ”เปƒเบŠเป‰เบ‡เบฒเบ™, เบšเปเปˆเบ„เบงเบ™เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เบเบฒเบ™เป€เบชเบทเปˆเบญเบกเป‚เบŠเบกเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”.
  • เบˆเบธเบ”เบญเบทเปˆเบ™เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบกเปˆเบ™เบเบฒเบ™เบ•เปเปˆเบ•เป‰เบฒเบ™เบ—เบฒเบ‡เบงเบดเบŠเบฒเบเบฒเบ™: เบ„เบงเบฒเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป„เบ”เป‰เบ‚เบญเบ‡เบฎเบธเปˆเบ™เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเปเบฅเบฐเปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”. เป„เบ”เป€เบงเบตเป€เบเบปเปˆเบฒเบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เปƒเบซเบกเปˆ, เปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป„เบ”เป€เบงเบตเป€เบเบปเปˆเบฒ.

เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰ imposes เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”.

เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ

เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบกเบฑเบ™เบˆเบถเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™? เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เป€เบกเบทเปˆเบญเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบ replicated, เปเบ•เปˆเบฅเบฐเบšเบฑเบ™เบ—เบถเบ, เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบกเบฑเบ™เบ‚เบถเป‰เบ™เบเบฑเบš. เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ„เบฑเป‰เบ‡เบ—เบณเบญเบดเบ” เปเบฅเบฐเป„เบฎเป‰เบชเบฒเบฅเบฐเปเบกเปˆเบ™เป€เบกเบทเปˆเบญเปเบ•เปˆเบฅเบฐเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบ—เบถเบเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ:

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

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

เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบขเปˆเบฒเบ‡เบˆเบฐเปเบˆเป‰เบ‡

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ™เบฒเบ‡เป€เบซเบฑเบ™เบงเปˆเบฒเบšเบฑเบ™เบ—เบถเบ 5 เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบšเบฑเบ™เบ—เบถเบ 1, 2, 3, 4 - เบ•เบฒเบกเบ„เบงเบฒเบกเป€เบซเบกเบฒเบฐเบชเบปเบก, เบ™เบฒเบ‡เบฅเปเบ–เป‰เบฒเบเปˆเบญเบ™เบ—เบตเปˆเบฅเบนเบเบ„เป‰เบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เป‚เบ”เบเบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ‚เบญเบ‡ Penny, เป€เบกเบทเปˆเบญเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ”เป‰เบœเปˆเบฒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเป‰เบง.

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

เป‚เบกเบ‡ Lamport

เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบตเบญเบฒเบเบธเบซเบผเบฒเบ. เป‚เบกเบ‡ Lamport เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบเบฒเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ–เบทเบเบžเบฑเบšเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบŸเบฑเบ‡เบŠเบฑเบ™ scalar, เป€เบŠเบดเปˆเบ‡เป€เบญเบตเป‰เบ™เบงเปˆเบฒ Lamport Clock.

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

เบ‚เป‰เบญเบเปเบšเปˆเบ‡ shard เปƒเบซเบเปˆเบ™เบฑเป‰เบ™เบญเบญเบเป€เบ›เบฑเบ™เบชเบญเบ‡เบขเปˆเบฒเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบŠเบฑเบ”เป€เบˆเบ™: เบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™เบชเบฒเบกเบฒเบ”เบญเบฒเป„เบชเบขเบนเปˆเปƒเบ™เบซเบ™เบถเปˆเบ‡ node, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒ, เปเบฅเบฐ Feed เบชเบฒเบกเบฒเบ”เบญเบฒเป„เบชเบขเบนเปˆเปƒเบ™ node เบญเบทเปˆเบ™, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒเบ™เบตเป‰. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ—เบตเปˆเบŠเบฑเบ”เป€เบˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เบญเบญเบเบˆเบฒเบเป€เบชเบฑเป‰เบ™เป„เบ”เป‰เปเบ™เบงเปƒเบ”? เบŸเบตเบ”เบ—เบณเบญเบดเบ”เบˆเบฐเบšเบญเบเบงเปˆเบฒ: โ€œเป€เบฎเบฑเบ”เบŠเป‰เบณโ€, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ Friends. เบ–เป‰เบฒเบฅเบฐเบšเบปเบšเบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบเบฒเบ™เบ„เปเป‰เบฒเบ›เบฐเบเบฑเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบงเปˆเบฒ Feed เบˆเบฐเบšเปเปˆเบ–เบทเบเบชเบฐเปเบ”เบ‡เบˆเบปเบ™เบเปˆเบงเบฒ Friends dependencies เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบเปเบฒ Friends เบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡.

เบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบงเปˆเบฒเป€เบงเบฅเบฒ counter time เปƒเบ™ Feed เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เปเบ™เบงเปƒเบ”:

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป‚เบกเบ‡ Lamport เปเบฅเบฐเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡ Causal (เบญเบฐเบ—เบดเบšเบฒเบเป‚เบ”เบเบœเปˆเบฒเบ™เป‚เบกเบ‡ Lamport) เปเบกเปˆเบ™เบ™เบตเป‰: เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเป€เบซเบ”เบเบฒเบ™ A เปเบฅเบฐ B, เปเบฅเบฐเป€เบซเบ”เบเบฒเบ™ B เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบšเป€เบซเบ”เบเบฒเบ™ A *, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบกเบฑเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰เบงเปˆเบฒ LogicalTime เบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™ A เปเบกเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ. LogicalTime เบˆเบฒเบเป€เบซเบ”เบเบฒเบ™ B.

* เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบžเบงเบเป€เบ‚เบปเบฒเบเบฑเบ‡เป€เบงเบปเป‰เบฒเบงเปˆเบฒ A เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเปˆเบญเบ™ B, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, A เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเปˆเบญเบ™ B - เบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบชเปเบฒเบžเบฑเบ™เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเบšเบฒเบ‡เบชเปˆเบงเบ™เบชเบฑเปˆเบ‡เปƒเบซเป‰เบŠเบธเบ”เบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›.

เบเบปเบ‡เบเบฑเบ™เบ‚เป‰เบฒเบกเปเบกเปˆเบ™เบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡. เบ™เบตเป‰เปเบกเปˆเบ™เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบงเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ‚เปเป‰เป€เบชเบเบ›เบฝเบšเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เป‚เบกเบ‡ Lamport - เบ„เปเบฒเบชเบฑเปˆเบ‡เบšเบฒเบ‡เบชเปˆเบงเบ™. เบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบเปˆเบฝเบงเบเบฑเบšเป€เบซเบ”เบเบฒเบ™เบžเป‰เบญเบกเป†เบเบฑเบ™, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบ—เบฑเบ‡เบชเบญเบ‡ (A เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเปˆเบญเบ™ B) เบซเบผเบท (A เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเปˆเบญเบ™ B). เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเบ™เบถเปˆเบ‡เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบฐเบซเบ™เบฒเบ™เบ‚เบญเบ‡ Leonard เบ‚เบญเบ‡เบ„เบปเบ™เบญเบทเปˆเบ™เป€เบ›เบฑเบ™เป€เบžเบทเปˆเบญเบ™ (เบšเปเปˆเปเบกเปˆเบ™เปเบ•เปˆ Leonard, เปเบ•เปˆ Sheldon, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡).
เบ™เบตเป‰เปเบกเปˆเบ™เบŠเบฑเบšเบชเบดเบ™เบ—เบตเปˆเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบฅเบทเป‰เบญเบเป†เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเป‚เบกเบ‡ Lamport: เบžเบงเบเป€เบ‚เบปเบฒเป€เบšเบดเปˆเบ‡เบซเบ™เป‰เบฒเบ—เบตเปˆเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปเบฅเบฐเบˆเบฒเบเบ™เบตเป‰เบžเบงเบเป€เบ‚เบปเบฒเบชเบฐเบซเบผเบธเบšเบงเปˆเบฒเบšเบฒเบ‡เบ—เบตเป€เบซเบ”เบเบฒเบ™เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบงเบดเบ—เบตเบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡: เบ–เป‰เบฒ LogicalTime A เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ LogicalTime B, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ B เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™เบเปˆเบญเบ™ A; เปเบฅเบฐเบ–เป‰เบฒเบซเบผเบฒเบเบเบงเปˆเบฒเบ™เบฑเป‰เบ™, เบšเบฒเบ‡เบ—เบต.

เป‚เบกเบ‡ vector

เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบกเบตเป€เบซเบ”เบœเบปเบ™เบ‚เบญเบ‡เป‚เบกเบ‡ Lamport เปเบกเปˆเบ™เป‚เบกเบ‡ Vector. เบžเบงเบเบกเบฑเบ™เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ—เบตเปˆเปเบ•เปˆเบฅเบฐ node เบ—เบตเปˆเบขเบนเปˆเบ™เบตเป‰เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป‚เบกเบ‡เปเบเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เปเบฅเบฐเบžเบงเบเบกเบฑเบ™เบ–เบทเบเบ–เปˆเบฒเบเบ—เบญเบ”เป€เบ›เบฑเบ™ vector.
เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบงเปˆเบฒเบ”เบฑเบ”เบŠเบฐเบ™เบต zeroth เบ‚เบญเบ‡ vector เปเบกเปˆเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบš Feed, เปเบฅเบฐเบ”เบฑเบ”เบŠเบฐเบ™เบตเบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡ vector เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš Friends (เปเบ•เปˆเบฅเบฐเบ‚เปเป‰เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰). เปเบฅเบฐเปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบžเบงเบเป€เบ‚เบปเบฒเบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™: เบ”เบฑเบ”เบŠเบฐเบ™เบตเบชเบนเบ™เบ‚เบญเบ‡ "เบญเบฒเบซเบฒเบ™" เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เป€เบกเบทเปˆเบญเบ‚เบฝเบ™ - 1, 2, 3:

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบต 10 เบžเบฑเบ™ shards, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เป‚เบญเบ™ 10 เบžเบฑเบ™เบญเบปเบ‡เบ›เบฐเบเบญเบš, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบšเบตเบšเบญเบฑเบ”เบกเบฑเบ™เบซเบผเบทเบกเบตเบญเบฑเบ™เบญเบทเปˆเบ™ - payload เบˆเบฐเบเบฑเบ‡เบ™เป‰เบญเบเบเบงเปˆเบฒเบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡ vector เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เบซเบผเบฒเบเป€เบ—เบปเปˆเบฒ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบปเบงเปƒเบˆ เปเบฅเบฐ เปเบ‚เป‰เบงเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ–เบดเป‰เบกเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰ เปเบฅเบฐเบเป‰เบฒเบงเป„เบ›เบชเบนเปˆเบญเบฑเบ™เบญเบทเปˆเบ™.

Spanner TrueTime. เป‚เบกเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบˆเบฐเบกเบตเป€เบฅเบทเปˆเบญเบ‡เบเปˆเบฝเบงเบเบฑเบš Spanner. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบขเบฑเบ™, เบเบปเบ‡เป„เบ›เบเบปเบ‡เบกเบฒเบ‚เบญเบ‡เบชเบฐเบ•เบฐเบงเบฑเบ”เบ—เบต XNUMX: เป‚เบกเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบน, synchronization GPS.

เบ„เบงเบฒเบกเบ„เบดเบ”เปเบ™เบงเปƒเบ”? "Spanner" เปเบกเปˆเบ™เบฅเบฐเบšเบปเบš Google เบ—เบตเปˆเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰เบกเบตเปƒเบซเป‰เปเบเปˆเบ„เบปเบ™ (เบžเบงเบเป€เบ‚เบปเบฒเป€เบžเบตเปˆเบก SQL เปƒเบชเปˆเบกเบฑเบ™). เปเบ•เปˆเบฅเบฐเบ—เบธเบฅเบฐเบเปเบฒเบกเบตเป€เบงเบฅเบฒเบ›เบฐเบ—เบฑเบšเบ•เบฒ. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบงเบฅเบฒเบ–เบทเบ synchronized*, เปเบ•เปˆเบฅเบฐเป€เบซเบ”เบเบฒเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบเปเบฒเบ™เบปเบ”เป€เบงเบฅเบฒเบชเบฐเป€เบžเบฒเบฐ - เป‚เบกเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเบกเบตเป€เบงเบฅเบฒเบฅเปเบ–เป‰เบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปเบกเปˆเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒ "เป€เบเบตเบ”เบ‚เบถเป‰เบ™".

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

* เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเบ•เบปเป‰เบ™เบ•เปเบเบฑเบšเป‚เบกเบ‡ Lampart - เบžเบงเบเบกเบฑเบ™เบšเปเปˆเป€เบ„เบตเบ synchronous เปƒเบ™เบฅเบฐเบšเบปเบšเปเบˆเบเบขเบฒเบ. เบžเบงเบเป€เบ‚เบปเบฒเบชเบฒเบกเบฒเบ”เปเบเบเบเบฑเบ™เป„เบ”เป‰; เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบต NTP, เบžเบงเบเป€เบ‚เบปเบฒเบเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบšเปเปˆเป„เบ”เป‰เบ”เบตเบซเบผเบฒเบ. "Spanner" เบกเบตเป‚เบกเบ‡เบ›เบฐเบฅเปเบฒเบกเบฐเบ™เบนเปเบฅเบฐ synchronization, เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒ, เปเบกเปˆเบ™ microseconds.

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

เป‚เบกเบ‡เบ›เบฐเบชเบปเบก

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบกเบฒเบเบ•เบดเบเบขเบนเปˆเปƒเบ™ MongoDB เป€เบกเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ Causal. เบžเบงเบเบกเบฑเบ™เบ›เบฐเบชเบปเบกเบเบฑเบ™เปเบ™เบงเปƒเบ”? เบ›เบฐเบชเบปเบกเปเบกเปˆเบ™เบ„เปˆเบฒเบชเบฐเบเบธเบ™, เปเบ•เปˆเบกเบฑเบ™เบกเบตเบชเบญเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš:

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

  • เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบเบธเบเบ‚เบญเบ‡ Unix (เป€เบงเบฅเบฒเบซเบผเบฒเบเบงเบดเบ™เบฒเบ—เบตเป„เบ”เป‰เบœเปˆเบฒเบ™เป„เบ›เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆ "เบเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เป‚เบฅเบเบ„เบญเบกเบžเบดเบงเป€เบ•เบต").
  • เบญเบฑเบ™เบ—เบตเบชเบญเบ‡เปเบกเปˆเบ™เบเบฒเบ™เป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบšเบฒเบ‡เบขเปˆเบฒเบ‡, เบเบฑเบ‡เป€เบ›เบฑเบ™ 32-bit unsigned int.

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”, เบ•เบปเบงเบˆเบดเบ‡เปเบฅเป‰เบง. เบกเบตเบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰: เบžเบฒเบเบชเปˆเบงเบ™เบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเป€เบงเบฅเบฒเปเบกเปˆเบ™ synchronized เบเบฑเบšเป‚เบกเบ‡เบ•เบฐเบซเบผเบญเบ”เป€เบงเบฅเบฒ; เบ—เบธเบเป†เบ„เบฑเป‰เบ‡เบ—เบตเปˆเบกเบตเบเบฒเบ™เบญเบฑเบšเป€เบ”เบ”เป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบชเปˆเบงเบ™เบ™เบตเป‰เบˆเบฐเบ–เบทเบ synchronized เบเบฑเบšเป‚เบกเบ‡เปเบฅเบฐเบกเบฑเบ™ turns เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเป€เบงเบฅเบฒเปเบกเปˆเบ™เบชเบฐเป€เบซเบกเบตเบซเบผเบฒเบเบซเบผเบทเบซเบ™เป‰เบญเบเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เปเบฅเบฐ increment เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบˆเปเบฒเปเบ™เบเบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบˆเบธเบ”เบ”เบฝเบงเบเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒ.

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

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

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

synchronization เป‚เบกเบ‡

เบกเบตเบงเบดเบ—เบตเบเบฒเบ™ synchronization เบซเบผเบฒเบเบญเบฐเบ—เบดเบšเบฒเบเปƒเบ™เบงเบฑเบ™เบ™เบฐเบ„เบฐเบ”เบตเบงเบดเบ—เบฐเบเบฒเบชเบฒเบ”. เบ‚เป‰เบญเบเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš synchronization เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡ shards เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบกเบตโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบŠเบธเบ” replicaโ€‹, เบšเปเปˆโ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™ synchronization เปƒเบ”โ€‹: เบ™เบตเป‰โ€‹เปเบกเปˆเบ™ "เปเบกเปˆโ€‹เบšเบปเบ”โ€‹เบ”เบฝเบงโ€‹"โ€‹; เบžเบงเบเป€เบฎเบปเบฒเบกเบต OpLog, เป€เบŠเบดเปˆเบ‡เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เบซเบผเบธเบ”เบฅเบปเบ‡ - เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบฅเปเบฒเบ”เบฑเบšเบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบšเปƒเบ™ "Oplog" เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เปเบ•เปˆเบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบญเบ‡ shards เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบเบฒเบ™ synchronization เป€เบงเบฅเบฒเปเบกเปˆเบ™เบชเปเบฒเบ„เบฑเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบ™เบตเป‰เปเบกเปˆเบ™เบšเปˆเบญเบ™เบ—เบตเปˆเป‚เบกเบ‡ vector เบŠเปˆเบงเบเบซเบผเบฒเบ! เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบกเบตเบžเบงเบเบกเบฑเบ™.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เปเบ™เปˆเบ™เบญเบ™, เป€เบงเบฅเบฒเบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡เปเบกเปˆเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ›เบฐเป€เบชเบตเบ”. เปเบ•เปˆ, เบญเบตเบเป€เบ—เบทเปˆเบญเบซเบ™เบถเปˆเบ‡, เบ™เบตเป‰เบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™เบญเบฐเบ™เบฒเบ„เบปเบ” ... เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เป„เบ”เป‰เปเบฅเป‰เบงเปƒเบ™ Atlas, เบกเบต "Amazon" synchronizers เบ—เบตเปˆเป„เบงเปเบฅเป‰เบง. เปเบ•เปˆเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบšเบ—เบธเบเบ„เบปเบ™.

เบเบฒเบ™เบ™เบดเบ™เบ—เบฒเปเบกเปˆเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเบ—เบฑเบ‡เปเบปเบ”เบฅเบงเบกเป€เบ–เบดเบ‡เป€เบงเบฅเบฒ. เบ™เบตเป‰เปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰. เบ—เบธเบเป†เบ‚เปเป‰เบ„เบงเบฒเบกเบฅเบฐเบซเบงเปˆเบฒเบ‡ nodes, driver, data node router, เบขเปˆเบฒเบ‡เปเบ—เป‰เบˆเบดเบ‡เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบš MongoDB เปเบกเปˆเบ™เบšเบฒเบ‡เบญเบปเบ‡เบ›เบฐเบเบญเบš, เบญเบปเบ‡เบ›เบฐเบเบญเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป‚เบกเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบ‚เบญเบ‡เป€เบงเบฅเบฒเบ›เบฐเบชเบปเบกเบขเบนเปˆเบ—เบปเปˆเบงเบ—เบธเบเปเบซเปˆเบ‡, เบกเบฑเบ™เบ–เบทเบเบ–เปˆเบฒเบเบ—เบญเบ”. 64 เบšเบดเบ”? เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰.

เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบฎเปˆเบงเบกเบเบฑเบ™เปเบ™เบงเปƒเบ”?

เบ—เบตเปˆเบ™เบตเป‰เบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เป€เบšเบดเปˆเบ‡เบŠเบธเบ” replica เบซเบ™เบถเปˆเบ‡เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เป€เบฅเบฑเบเบ™เป‰เบญเบ. เบกเบตเบ›เบฐเบ–เบปเบก เปเบฅเบฐ เบกเบฑเบ”เบ—เบฐเบเบปเบก. Secondary เป€เบฎเบฑเบ” replication เปเบฅเบฐเบšเปเปˆเบชเบฐเป€เบซเบกเบต synchronized เบเบฑเบšเบ›เบฐเบ–เบปเบก.

เบเบฒเบ™เปเบŠเบเป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ "Primery" เบ—เบตเปˆเบกเบตเบ„เปˆเบฒเป€เบงเบฅเบฒเบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™. เปƒเบชเปˆเบ™เบตเป‰เป€เบžเบตเปˆเบกเบเบฒเบ™เบ™เบฑเบšเบžเบฒเบเปƒเบ™เป‚เบ”เบ 11, เบ–เป‰เบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบนเบ‡เบชเบธเบ”. เบซเบผเบทโ€‹เบกเบฑเบ™โ€‹เบˆเบฐโ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เบ„เปˆเบฒโ€‹เป‚เบกเบ‡โ€‹เปเบฅเบฐ sync เบเบฑเบšโ€‹เป‚เบกเบ‡โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบ„เปˆเบฒโ€‹เป‚เบกเบ‡โ€‹เบซเบผเบฒเบโ€‹เบเบงเปˆเบฒ. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบˆเบฑเบ”เบฅเบฐเบšเบฝเบšเป‚เบ”เบเบ—เบตเปˆเปƒเบŠเป‰เป€เบงเบฅเบฒ.

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

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

เบ„เปˆเบฒเบ—เบตเปˆเบ–เบทเบเบ‚เบฝเบ™เป„เบงเป‰เปƒเบ™ "Oplog" เบ–เบทเบเบชเบปเปˆเบ‡เบ„เบทเบ™ - เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒ "Oplog" เบกเบตเบ„เปˆเบฒเบ™เบตเป‰เปเบฅเป‰เบง, เปเบฅเบฐเป€เบงเบฅเบฒเบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™ 12. เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™, เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒ, เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบ node เบญเบทเปˆเบ™ (เบฎเบญเบ‡), เปเบฅเบฐเบกเบฑเบ™เบชเบปเปˆเบ‡เบ•เปเปˆ afterClusterTime เปƒเบ™. เบ‚เปเป‰เบ„เบงเบฒเบก. เบฅเบฒเบงโ€‹เป€เบงเบปเป‰เบฒโ€‹เบงเปˆเบฒ: โ€œเบ‚เป‰เบญเบโ€‹เบ•เป‰เบญเบ‡เบเบฒเบ™โ€‹เบ—เบธเบโ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เบขเปˆเบฒเบ‡โ€‹เปœเป‰เบญเบโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ—เบต 12 เบซเบผเบทโ€‹เปƒเบ™โ€‹เบฅเบฐเบซเบงเปˆเบฒเบ‡โ€‹เบชเบดเบšโ€‹เบชเบญเบ‡โ€ (เป€เบšเบดเปˆเบ‡โ€‹เบฎเบนเบšโ€‹เบ‚เป‰เบฒเบ‡โ€‹เป€เบ—เบดเบ‡).

เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒ Causal เบชเบญเบ”เบ„เปˆเบญเบ‡ (CAT). เบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเปƒเบ™เบ—เบดเบ”เบชเบฐเบ”เบตเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบšเบฒเบ‡เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบงเบฅเบฒ, เป€เบŠเบดเปˆเบ‡เบชเบญเบ”เบ„เปˆเบญเบ‡เปƒเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบชเบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบตเปˆเป„เบ”เป‰เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™เปƒเบ™เป€เบงเบฅเบฒ 12.

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบซเบผเบฒเบเบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบฑเบ‡เบซเบกเบปเบ”. เป€เบเบทเบญเบšโ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”.

"เป€เบเบทเบญเบš" เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”? เปƒเบซเป‰เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบกเบตเบšเบฒเบ‡เบ„เบปเบ™เบ—เบตเปˆเป„เบ”เป‰เบญเปˆเบฒเบ™เปเบฅเบฐเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเบดเบ—เบตเบเบฒเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบ™เบตเป‰เป€เบฎเบฑเบ”เบงเบฝเบ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบฎเบฑเบšเบฎเบนเป‰เบงเปˆเบฒเบ—เบธเบเป†เบ„เบฑเป‰เบ‡เบ—เบตเปˆ ClusterTime เป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบกเบฑเบ™เบ›เบฑเบšเบ›เบธเบ‡เป‚เบกเบ‡เบ—เบตเปˆเบกเบตเป€เบซเบ”เบœเบปเบ™เบžเบฒเบเปƒเบ™, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบ•เปเปˆเป„เบ›เบˆเบฐเป€เบžเบตเปˆเบกเบ‚เบถเป‰เบ™เบซเบ™เบถเปˆเบ‡เบ„เบฑเป‰เบ‡. เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เปƒเบŠเป‰เป€เบงเบฅเบฒ 20 เป€เบชเบฑเป‰เบ™. เบชเบปเบกเบกเบธเบ”เบงเปˆเบฒเบšเบธเบเบ„เบปเบ™เบ™เบตเป‰เบชเบปเปˆเบ‡เบ•เบปเบงเป€เบฅเบ 64-bit เบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”, เบฅเบปเบšเบซเบ™เบถเปˆเบ‡.

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

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš clusterTime

เบ™เบตเป‰เปเบกเปˆเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบกเบฑเบ™เบ–เบทเบเบ–เปˆเบฒเบเบ—เบญเบ”เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก (เบเปˆเบญเบ™เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบตเบŸเป‰เบฒ). เปเบ•เปˆเบžเบงเบเป€เบฎเบปเบฒเบเปเปˆเป€เบฅเบตเปˆเบกเบชเป‰เบฒเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™ (เบ‚เปเป‰เบ„เบงเบฒเบกเบชเบตเบŸเป‰เบฒ):

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเปเบ™เบงเปƒเบ”เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡ Causal เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰? เบ™เบตเป‰เปเบกเปˆเบ™เป€เบžเบทเปˆเบญเบชเบฐเปเบ”เบ‡เบžเบฒเบฅเบฒเบกเบดเป€เบ•เบต afterClusterTime. เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบ™เบตเป‰, เบกเบฑเบ™เบžเบฝเบ‡เปเบ•เปˆเบˆเบฐเบœเปˆเบฒเบ™เบกเบนเบ™เบ„เปˆเบฒเบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก. เบเบฒเบ™เบ™เบดเบ™เบ—เบฒ, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเป€เบงเบตเบŠเบฑเบ™ 3.6, เป€เบฎเบฑเบ”เบงเบฝเบเบชเบฐเป€เปเบต.

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

เป€เบฎเบฑเบ”เป„เบง!

เบกเบฑเบ™โ€‹เป€เบ›เบฑเบ™โ€‹เบชเบดเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹เบซเบผเบฒเบโ€‹, เปเบ•เปˆ trick เปเบกเปˆเบ™โ€‹เบซเบ™เป‰เบฒโ€‹เบชเบปเบ™โ€‹เปƒเบˆ - เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เปเบšเปˆเบ‡โ€‹เบ›เบฑเบ™โ€‹เบกเบฑเบ™โ€‹, เบšเบฒเบ‡โ€‹เบ—เบตโ€‹เบ„เบปเบ™โ€‹เบˆเบฐโ€‹เบชเบปเบ™โ€‹เปƒเบˆโ€‹.
เบžเบงเบเป€เบฎเบปเบฒเบกเบต hash เบ—เบตเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบปเบ‡เบ™เบฒเบก. เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบœเปˆเบฒเบ™ cache. cache เบšเปเปˆเป„เบ”เป‰เป€เบŠเบฑเบ™เป€เบงเบฅเบฒเบชเบฐเป€เบžเบฒเบฐ, เปเบ•เปˆ Range. เป€เบกเบทเปˆเบญเบ„เปˆเบฒเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบกเบฒเบฎเบญเบ”, เบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡ Range, mask out the last 16 bits, and we sign this value:

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบซเบเบฑเบ‡?

เบšเบปเบ”เบฎเบฝเบ™เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฝเบ™เบฎเบนเป‰เบˆเบฒเบเบ™เบตเป‰:

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

    เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเป‰เบง, เบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ—เบตเปˆเปเบ™เปˆเบ™เบญเบ™เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบกเบตเบเบญเบ‡เบ›เบฐเบŠเบธเบกเบ—เบฒเบ‡เบงเบดเบŠเบฒเบเบฒเบ™ (Sigmon, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡) - เบ—เบธเบเบ„เบปเบ™เบชเบธเบกเปƒเบชเปˆเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เปƒเบซเบกเปˆ. เบกเบตเบญเบฑเบ™เปƒเบ”เปƒเปเปˆเบเปˆเบฝเบงเบเบฑเบšเบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ? เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เปƒเบซเบกเปˆเป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบ„เบงเบฒเบกเปเบ›เบเปƒเปเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเบขเบนเปˆเปƒเบ™เบงเบดเบ—เบตเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบชเบปเบกเบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเบฎเปˆเบงเบกเบเบฑเบ™. เป€เบžเบฒเบฐเบชเบฐเบ™เบฑเป‰เบ™, เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบเบฒเบ™เบญเปˆเบฒเบ™เบ„เบฅเบฒเบชเบชเบดเบ, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบ Lampart.

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

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ‚เป‰เบญเบเบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เบ”เป‰เบงเบเบชเบดเปˆเบ‡เบ™เบตเป‰. เบ‚เบญเบšโ€‹เปƒเบˆ!

เบ„เปเบฒเบ–เบฒเบกเบ‚เบญเบ‡เบ—เปˆเบฒเบ™

เบ„เปเบฒเบ–เบฒเบกเบˆเบฒเบเบœเบนเป‰เบŠเบปเบก (เบ•เปเปˆเป„เบ›เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ B): โ€“ เบ‚เปโ€‹เบ‚เบญเบšโ€‹เปƒเบˆโ€‹เบ—เปˆเบฒเบ™, Mikhail, เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™! เบซเบปเบงเบ‚เปเป‰เบเปˆเบฝเบงเบเบฑเบšเป€เบงเบฅเบฒเปเบกเปˆเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ. เบ—เปˆเบฒเบ™เบเบณเบฅเบฑเบ‡เปƒเบŠเป‰เบเบฒเบ™เบ™เบดเบ™เบ—เบฒ. เบžเบงเบเป€เบ‚เบปเบฒเป€เบงเบปเป‰เบฒเบงเปˆเบฒเบ—เบธเบเบ„เบปเบ™เบกเบตเป€เบงเบฅเบฒเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบ—เบธเบเบ„เบปเบ™เบฎเบนเป‰เป€เบงเบฅเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ. เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป€เบ‚เบปเป‰เบฒเปƒเบˆเบกเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบปเบ™เบ‚เบฑเบš - เบชเบฒเบกเบฒเบ”เบกเบตเบฅเบนเบเบ„เป‰เบฒเบซเบผเบฒเบเบ„เบปเบ™เบ—เบตเปˆเบกเบตเบ„เบปเบ™เบ‚เบฑเบšเบฅเบปเบ”, เบœเบนเป‰เบงเบฒเบ‡เปเบœเบ™เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก, เบเบฒเบเป€เบเบตเบ™เป„เบ› ... เปเบฅเบฐเบฅเบฐเบšเบปเบšเบˆเบฐเบฅเบปเบ‡เบกเบฒเปเบ™เบงเปƒเบ”เบ–เป‰เบฒเบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™: เบœเบนเป‰เปƒเบ”เบœเบนเป‰เบซเบ™เบถเปˆเบ‡เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เปเบกเปˆเบ™เบชเปเบฒเบฅเบฑเบš เบ™เบฒโ€‹เบ—เบตโ€‹เบ‚เป‰เบฒเบ‡โ€‹เบซเบ™เป‰เบฒโ€‹, เบœเบนเป‰โ€‹เปƒเบ”โ€‹เบœเบนเป‰โ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ™เบฒโ€‹เบ—เบตโ€‹เบซเบฅเบฑเบ‡โ€‹? เป€เบฎเบปเบฒเบˆเบฐเป„เบ›เบฎเบญเบ”เปƒเบช?

MT: - เบ„เปเบฒโ€‹เบ–เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบเบดเปˆเบ‡โ€‹เปƒเบซเบเปˆโ€‹เบ—เบตเปˆโ€‹เปเบ—เป‰โ€‹เบˆเบดเบ‡โ€‹! เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเบขเบฒเบเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบš shards. เบ–เป‰เบฒเบ‚เป‰เบญเบเป€เบ‚เบปเป‰เบฒเปƒเบˆเบ„เปเบฒเบ–เบฒเบกเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰: เบกเบต shard 1 เปเบฅเบฐ shard 2, เบเบฒเบ™เบญเปˆเบฒเบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™เบˆเบฒเบเบชเบญเบ‡ shard เบ™เบตเป‰ - เบžเบงเบเบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบžเบงเบเบกเบฑเบ™เบšเปเปˆเบžเบปเบงเบžเบฑเบ™เบเบฑเบšเบเบฑเบ™เปเบฅเบฐเบเบฑเบ™, เป€เบžเบฒเบฐเบงเปˆเบฒเป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบฎเบนเป‰เปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเบกเบฑเบ™เบกเบตเบขเบนเปˆเปƒเบ™ oplogs.
เปƒเบซเป‰เป€เบงเบปเป‰เบฒเบงเปˆเบฒ shard 1 เบชเป‰เบฒเบ‡เป€เบ›เบฑเบ™เบฅเป‰เบฒเบ™เบšเบฑเบ™เบ—เบถเบ, shard 2 เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เป€เบฅเบตเบ, เปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบกเบฒเป€เบ–เบดเบ‡เบชเบญเบ‡ shards. เปเบฅเบฐเบญเบฑเบ™เบ—เปเบฒเบญเบดเบ”เบกเบต afterClusterTime เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบฅเป‰เบฒเบ™. เปƒเบ™เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ”เบฑเปˆเบ‡เบ—เบตเปˆเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบญเบฐเบ—เบดเบšเบฒเบ, shard 2 เบˆเบฐเบšเปเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”.

เปƒเบ™: โ€“ เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ•เป‰เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบฎเบนเป‰โ€‹เบงเปˆเบฒโ€‹เป€เบ‚เบปเบฒโ€‹เป€เบˆเบปเป‰เบฒ synchronize เปเบฅเบฐโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบขเปˆเบฒเบ‡โ€‹เบกเบตโ€‹เป€เบซเบ”โ€‹เบœเบปเบ™โ€‹?

MT: - เบ‡เปˆเบฒเบโ€‹เบซเบผเบฒเบโ€‹เป€เบžเบทเปˆเบญ synchronizeโ€‹. Shard, เป€เบกเบทเปˆเบญ afterClusterTime เบกเบฒเบซเบฒเบฅเบฒเบงเปเบฅเบฐเบฅเบฒเบงเบšเปเปˆเป„เบ”เป‰เบŠเบญเบเบซเบฒเป€เบงเบฅเบฒเปƒเบ™ "Oplog", เบšเปเปˆเบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบกเบฑเบ”. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบฅเบฒเบงเบเบปเบเบชเบนเบ‡เป€เบงเบฅเบฒเบ”เป‰เบงเบเบกเบทเบ‚เบญเบ‡เบฅเบฒเบงเบเบฑเบšเบกเบนเบ™เบ„เปˆเบฒเบ™เบตเป‰. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบกเบฑเบ™เบšเปเปˆเบกเบตเป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบเบปเบ‡เบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบ™เบตเป‰. เบฅเบฒเบงเบชเป‰เบฒเบ‡เป€เบซเบ”เบเบฒเบ™เบ™เบตเป‰เบ›เบญเบกเปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบเบฒเบเป€เบ›เบฑเบ™ Causal Consistent.

เปƒเบ™: โ€“ เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เปเบ™เบงโ€‹เปƒเบ”โ€‹เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบตเป‰โ€‹เบšเบฒเบ‡โ€‹เป€เบซเบ”โ€‹เบเบฒเบ™โ€‹เบญเบทเปˆเบ™เป†โ€‹เบกเบฒโ€‹เบซเบฒโ€‹เป€เบ‚เบปเบฒโ€‹เป„เบ”เป‰โ€‹เบชเบนเบ™โ€‹เป€เบชเบโ€‹เบšเบฒเบ‡โ€‹เบšเปˆเบญเบ™โ€‹เปƒเบ™โ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹?

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

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

MT: โ€“ เบเบฑเบ‡โ€‹เป€เบ›เบฑเบ™โ€‹เบ„เปเบฒโ€‹เบ–เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบเบดเปˆเบ‡โ€‹เปƒเบซเบเปˆโ€‹! เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบซเบเบฑเบ‡? MongoDB เบกเบตเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡ quorum writes, quorum เบญเปˆเบฒเบ™. เปƒเบ™เบเปเบฅเบฐเบ™เบตเปƒเบ”เบ—เบตเปˆเบ‚เปเป‰เบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบชเบนเบ™เป€เบชเบ? เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบ‚เบฝเบ™เบšเปเปˆเปเบกเปˆเบ™เบเบธเปˆเบกเบซเบผเบทเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบญเปˆเบฒเบ™เบšเปเปˆเปเบกเปˆเบ™เบเบธเปˆเบก (เบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเบšเบฒเบ‡เบ›เบฐเป€เบžเบ”เบญเบฒเบ”เบˆเบฐเบ•เบดเบ”เบขเบนเปˆ).
เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ Causal, เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบ‚เบฝเบ™เปเบฅเบฐเบญเปˆเบฒเบ™เบšเปเปˆเปเบกเปˆเบ™เบเบธเปˆเบก, เบเบฒเบ™เบฅเบฐเป€เบกเบตเบ”เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡ Causal เป€เบเบตเบ”เบ‚เบทเป‰เบ™. เปเบ—เป‰เบ—เบตเปˆเป€เบˆเบปเป‰เบฒเป€เบงเบปเป‰เบฒ!

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

เปƒเบ™: - เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเบชเป‰เบฒเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบ›เบฐเบ•เบดเบšเบฑเบ” sharding เบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ (เบšเปเปˆเปเบกเปˆเบ™เบ™เบฒเบ, เปเบ•เปˆเบชเปเบฒเบฅเบญเบ‡, เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš), เบกเบฑเบ™เบญเบตเบ‡เปƒเบชเปˆเป€เบงเบฅเบฒ Unix เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เบซเบผเบทเป€เบงเบฅเบฒเบ‚เบญเบ‡ "เบ™เบฒเบ"; เบกเบฑเบ™เบŠเบดเป‰เบ‡เป€เบ›เบฑเบ™เป€เบ—เบทเปˆเบญเบ—เบณเบญเบดเบ” เบซเบผเบทเป€เบ›เบฑเบ™เบŠเปˆเบงเบ‡เป„เบฅเบเบฐเบšเป?

MT: - เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เบญเบฐโ€‹เบ—เบดโ€‹เบšเบฒเบโ€‹เปƒเบ™โ€‹เบ›เบฑเบ”โ€‹เบˆเบธโ€‹เบšเบฑเบ™โ€‹. Shard (เป€เบŠเบฑเปˆเบ™: เบเบฒเบ™เปเบšเปˆเบ‡เบžเบฒเบ•เบดเบŠเบฑเบ™เบ•เบฒเบกเบฅเบงเบ‡เบ™เบญเบ™) - เบกเบต Primary เบขเบนเปˆเบชเบฐเป€เปเบต. เปเบฅเบฐ shard เบชเบฒเบกเบฒเบ”เบกเบต "เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš" เปเบฅเบฐเบชเบฒเบกเบฒเบ” replicas เป„เบ”เป‰. เปเบ•เปˆ shard เบชเบฐเป€เบซเบกเบตเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบเบฒเบ™เบšเบฑเบ™เบ—เบถเบ, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบ•เป‰เบญเบ‡เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบšเบฒเบ‡เป‚เบ”เป€เบกเบ™ (shard เบกเบต Primary).

เปƒเบ™: - เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‚เบถเป‰เบ™เบเบฑเบš "เบ™เบฒเบ" เปเบ—เป‰เป†เบšเป? เปƒเบŠเป‰เป€เบงเบฅเบฒเปเบกเปˆเปเบšเบšเบชเบฐเป€เปเบตเบšเป?

MT: - เปเบกเปˆเบ™เปเบฅเป‰เบง. เป€เบˆเบปเป‰เบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเปƒเบ™เบ•เบปเบงเป€เบฅเบเบงเปˆเบฒ: เป‚เบกเบ‡เบ–เบทเบเบ•เบตเป€เบกเบทเปˆเบญเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ "เปเบกเปˆเบšเบปเบ”", เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™ "Oplog" เป€เบเบตเบ”เบ‚เบทเป‰เบ™.

เปƒเบ™: - เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบฅเบนเบเบ„เป‰เบฒเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเป€เบงเบฅเบฒเบšเป?

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

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

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

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

MT: - เบ„เปเบฒโ€‹เบ–เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบ”เบต! CRDT เบกเบตเบ„เบงเบฒเบกเบซเบกเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ‚เบฝเบ™เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡: เปƒเบ™ MongoDB, เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ”เบฝเบง.

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

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

MT: โ€“ เบ„เบปเบ™โ€‹เบŠเบปเปˆเบงโ€‹เบขเบนเปˆโ€‹เปƒเบ™โ€‹เป€เบ‚เบ”โ€‹เบญเป‰เบญเบกโ€‹เบ‚เป‰เบฒเบ‡โ€‹เบ„เบทโ€‹เบเบฑเบšโ€‹เบกเป‰เบฒ Trojan! เบ„เบปเบ™เบŠเบปเปˆเบงเบขเบนเปˆเปƒเบ™เบšเปเบฅเบดเป€เบงเบ™เบญเป‰เบญเบกเบฎเบญเบšเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ—เบตเปˆเบšเปเปˆเบ”เบตเบซเบผเบฒเบ.

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

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

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

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

MT: "เบ‚เป‰เบญเบเบšเปเปˆเป€เบ„เบตเบเป„เบ”เป‰เบเบดเบ™เป€เบฅเบทเปˆเบญเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง." เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ” crash server เปƒเบ™เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบฅเบฑเบš. เบฅเบปเป‰เบกเป€เบซเบฅเบงเบžเบฒเบเปƒเบ™, เบกเบฒเบˆเบฒเบเป‚เบ›เป‚เบ•เบ„เบญเบ™, เป€เบ›เบฑเบ™เบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบญเบฐเบ™เบธเบเบฒเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบ™เบตเป‰เปƒเบ™เบ‚เปเป‰เบ„เบงเบฒเบก ... เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเบเบฑเบ‡เบ–เบทเบเบเบงเบ”เบชเบญเบš. เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบดเบ”เบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบ—เบตเปˆเบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™ - เปเบฅเป‰เบงเบ™เบฑเป‰เบ™เปเบกเปˆเบ™เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒ; เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ, เบ›เบฐเบกเบฒเบ™เบเบฒเบ™เป€เบงเบปเป‰เบฒ, เบ—เปเบฒเบฅเบฒเบเบเบฒเบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบนเป‰เบŠเป‰เบฒเบ‡เบขเบนเปˆเปƒเบ™เบ™เบฑเป‰เบ™, เป€เบŠเบดเปˆเบ‡เบˆเบฐ trampt ... เปเบ•เปˆเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เปเบ•เปˆเบ‡เบ•เบปเบงเป€เบ›เบฑเบ™เบŠเปˆเบฒเบ‡เบชเป‰เบญเบกเปเบ›เบ‡, เบกเบฒเปเบฅเบฐเบ”เบถเบ‡เบกเบฑเบ™เบญเบญเบ!

เปƒเบ™: - เบ‚เปโ€‹เบ‚เบญเบšโ€‹เปƒเบˆโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹เบฅเบฒเบโ€‹เบ‡เบฒเบ™โ€‹. Sergey (Yandex). เบกเบตเบ„เบงเบฒเบกเบ„เบปเบ‡เบ—เบตเปˆเปƒเบ™ Mong เบ—เบตเปˆเบˆเปเบฒเบเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบชเบฐเบกเบฒเบŠเบดเบเบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เปƒเบ™เบŠเบธเบ” Replica, เปเบฅเบฐเบ„เบปเบ‡เบ—เบตเปˆเบ™เบตเป‰เปเบกเปˆเบ™ 7 (เป€เบˆเบฑเบ”). เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบญเบฑเบ™เบ™เบตเป‰เบˆเบถเปˆเบ‡เป€เบ›เบฑเบ™เบ„เบปเบ‡เบ—เบตเปˆ? เป€เบ›เบฑเบ™เบซเบเบฑเบ‡เบˆเบถเปˆเบ‡เบšเปเปˆเปเบกเปˆเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบšเบฒเบ‡เบ›เบฐเป€เบžเบ”?

MT: - เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบกเบต Replica Sets เบเบฑเบš 40 nodes. เบชเบฐเป€เบซเบกเบตเบกเบตเบชเปˆเบงเบ™เปƒเบซเบเปˆ. เบšเปเปˆเบฎเบนเป‰เบงเปˆเบฒเบฅเบธเป‰เบ™เปƒเบ”...

เปƒเบ™: โ€“ เปƒเบ™ Replica Set เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบญเบตเป‰เบ™เปƒเบŠเป‰เบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เป„เบ”เป‰, เปเบ•เปˆเบกเบตเบชเบฐเบกเบฒเบŠเบดเบเบ—เบตเปˆเบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบนเบ‡เบชเบธเบ” 7 เบ„เบปเบ™. เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ›เบดเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบ, เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เบญเบทเปˆเบ™เบชเบฒเบกเบฒเบ”เบ•เบปเบเบญเบญเบเป„เบ”เป‰.

MT: โ€“ เบญเบฑเบ™เบ™เบตเป‰เปเบกเปˆเบ™เป€เบเบตเบ™เบ‚เบญเบšเป€เบ‚เบ”เบ‚เบญเบ‡เบšเบปเบ”เบฅเบฒเบเบ‡เบฒเบ™เปเบฅเป‰เบง. เบ™เบตเป‰เปเบกเปˆเบ™เบ„เปเบฒเบ–เบฒเบกเบ—เบปเปˆเบงเป„เบ›. เบšเบฒเบ‡เบ—เบตเบ‚เป‰เบญเบเบชเบฒเบกเบฒเบ”เบšเบญเบเป€เบˆเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบ•เปเปˆเบกเบฒ.

HighLoad++, Mikhail Tyulenev (MongoDB): เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบชเบฒเป€เบซเบ”: เบˆเบฒเบเบ—เบดเบ”เบชเบฐเบ”เบตเป€เบ–เบดเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”

เบšเบฒเบ‡เป‚เบ„เบชเบฐเบ™เบฒ๐Ÿ™‚

เบ‚เบญเบšเปƒเบˆเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบขเบนเปˆเบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ. เป€เบˆเบปเป‰เบฒเบกเบฑเบเบšเบปเบ”เบ„เบงเบฒเบกเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบšเป? เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบšเบดเปˆเบ‡เป€เบ™เบทเป‰เบญเบซเบฒเบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบซเบผเบฒเบเบšเป? เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบžเบงเบเป€เบฎเบปเบฒเป‚เบ”เบเบเบฒเบ™เบงเบฒเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบซเบผเบทเปเบ™เบฐเบ™เปเบฒเปƒเบซเป‰เบซเบกเบนเปˆเป€เบžเบทเปˆเบญเบ™, cloud VPS เบชเปเบฒเบฅเบฑเบšเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบˆเบฒเบ $4.99, เบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบเบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบตเบฅเบฐเบ”เบฑเบšเป€เบ‚เบปเป‰เบฒ, เป€เบŠเบดเปˆเบ‡เบ–เบทเบเบ›เบฐเบ”เบดเบ”เป‚เบ”เบเบžเบงเบเป€เบฎเบปเบฒเบชเปเบฒเบฅเบฑเบšเบ—เปˆเบฒเบ™: เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบฑเบ‡เปเบปเบ”เบเปˆเบฝเบงเบเบฑเบš VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps เบˆเบฒเบ $19 เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ? (เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบเบฑเบš RAID1 เปเบฅเบฐ RAID10, เบชเบนเบ‡เบชเบธเบ” 24 cores เปเบฅเบฐเบชเบนเบ‡เบชเบธเบ” 40GB DDR4).

Dell R730xd 2x เบฅเบฒเบ„เบฒเบ–เบทเบเบเบงเปˆเบฒเบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™ Equinix Tier IV เปƒเบ™ Amsterdam? เบ—เบตเปˆเบ™เบตเป‰เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV เบˆเบฒเบ $199 เปƒเบ™เบ›เบฐเป€เบ—เบ”เป€เบ™เป€เบ—เบตเปเบฅเบ™! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - เบˆเบฒเบ $99! เบญเปˆเบฒเบ™เบเปˆเบฝเบงเบเบฑเบš เบงเบดเบ—เบตเบเบฒเบ™เบชเป‰เบฒเบ‡เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เบ‚เบญเบ‡เบšเปเบฅเบดเบชเบฑเบ”. เบซเป‰เบญเบ‡เบฎเบฝเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ Dell R730xd E5-2650 v4 เบกเบนเบ™เบ„เปˆเบฒ 9000 เป€เบญเบตเป‚เบฃเบชเปเบฒเบฅเบฑเบšเป€เบ‡เบดเบ™เบšเป?

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

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