NewSQL = NoSQL+ACID
เบˆเบปเบ™เบเปˆเบงเบฒเบšเปเปˆเบ”เบปเบ™เบกเบฒเบ™เบตเป‰, Odnoklassniki เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ›เบฐเบกเบฒเบ™ 50 TB เบ—เบตเปˆเบ–เบทเบเบ›เบธเบ‡เปเบ•เปˆเบ‡เปƒเบ™เป€เบงเบฅเบฒเบˆเบดเบ‡เปƒเบ™ SQL Server. เบชเปเบฒเบฅเบฑเบšเบ›เบฐเบฅเบดเบกเบฒเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบกเบฑเบ™เป€เบเบทเบญเบšเป€เบ›เบฑเบ™เป„เบ›เบšเปเปˆเป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบชเบฐเบซเบ™เบญเบ‡เป„เบงเปเบฅเบฐเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰, เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰ SQL DBMS. เป‚เบ”เบเบ›เบปเบเบเบฐเบ•เบด, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ NoSQL เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰, เปเบ•เปˆเบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒ NoSQL: เบšเบฒเบ‡เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ ACID.

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

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

เปƒเบ™เบกเบทเป‰เบ™เบตเป‰, เบœเบนเป‰เบŠเบปเบกเบ›เบฐเบˆเปเบฒเป€เบ”เบทเบญเบ™เบ‚เบญเบ‡ Odnoklassniki เปเบกเปˆเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ 70 เบฅเป‰เบฒเบ™เบœเบนเป‰เบกเบฒเบขเป‰เบฝเบกเบขเบฒเบกเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบญเบเบฐเบฅเบฑเบ. เบžเบงเบเป€เบฎเบปเบฒ เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เบซเป‰เบฒเบญเบฑเบ™เบ—เปเบฒเบญเบดเบ” เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเบฑเบ‡เบ„เบปเบกเบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เป‚เบฅเบ, เปเบฅเบฐเปƒเบ™เบšเบฑเบ™เบ”เบฒเบŠเบฒเบงเป€เบงเบฑเบšเป„เบŠเบ—เปŒเบ—เบตเปˆเบœเบนเป‰เปƒเบŠเป‰เปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบ—เบตเปˆเบชเบธเบ”. เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™ OK เบˆเบฑเบ”เบเบฒเบ™เบเบฑเบšเบเบฒเบ™เป‚เบซเบผเบ”เบชเบนเบ‡เบซเบผเบฒเบ: เบซเบผเบฒเบเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡เบฅเป‰เบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป HTTP / เบงเบดเบ™เบฒเบ—เบตเบ•เปเปˆเบซเบ™เป‰เบฒ. เบŠเบดเป‰เบ™เบชเปˆเบงเบ™เบ‚เบญเบ‡เป€เบฎเบทเบญเป€เบŠเบตเบŸเป€เบงเบตเบซเบผเบฒเบเบเบงเปˆเบฒ 8000 เบŠเบดเป‰เบ™เปเบกเปˆเบ™เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบเป‰เป†เบเบฑเบ™ - เปƒเบ™เบชเบตเปˆเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบกเบญเบ”เป‚เบ, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเป€เบ„เบทเบญเบ‚เปˆเบฒเบ latency เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 1 ms เบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบงเบเบกเบฑเบ™.

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰ Cassandra เบ•เบฑเป‰เบ‡เปเบ•เปˆเบ›เบต 2010, เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ”เป‰เบงเบเบชเบฐเบšเบฑเบš 0.6. เบกเบทเป‰โ€‹เบ™เบตเป‰โ€‹เบกเบตโ€‹เบซเบผเบฒเบโ€‹เบชเบดเบšโ€‹เบเบธเปˆเบกโ€‹เปƒเบ™โ€‹เบเบฒเบ™โ€‹เบ”เปเบฒโ€‹เป€เบ™เบตเบ™โ€‹เบ‡เบฒเบ™โ€‹. เบเบธเปˆเบกเบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”เบ›เบฐเบกเบงเบ™เบœเบปเบ™เบซเบผเบฒเบเบเปˆเบงเบฒ 4 เบฅเป‰เบฒเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ•เปเปˆเบงเบดเบ™เบฒเบ—เบต, เปเบฅเบฐเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเปƒเบซเบเปˆเบ—เบตเปˆเบชเบธเบ” 260 TB.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบธเปˆเบก NoSQL เบ—เปเบฒเบกเบฐเบ”เบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปƒเบŠเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบชเบฒเบ™โ€‹เบ‡เบฒเบ™โ€‹เบญเปˆเบญเบ™โ€‹เปเบญโ€‹ เบ‚เปเป‰เบกเบนเบ™. เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เปเบ—เบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ—เบตเปˆเบชเบญเบ”เบ„เปˆเบญเบ‡เบ•เบปเป‰เบ™เบ•เป, Microsoft SQL Server, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเบเบฒเบ™เบเปเปˆเบ•เบฑเป‰เบ‡เบ‚เบญเบ‡ Odnoklassniki. เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ SQL Server Standard Edition เบซเบผเบฒเบเบเบงเปˆเบฒ 300 เป€เบ„เบทเปˆเบญเบ‡, เป€เบŠเบดเปˆเบ‡เบšเบฑเบ™เบˆเบธเบ‚เปเป‰เบกเบนเบ™ 50 TB - business entities . เบ‚เปเป‰เบกเบนเบ™เบ™เบตเป‰เบ–เบทเบเบ”เบฑเบ”เปเบเป‰เป€เบ›เบฑเบ™เบชเปˆเบงเบ™เปœเบถเปˆเบ‡เบ‚เบญเบ‡เบ—เบธเบฅเบฐเบเบณ ACID เปเบฅเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™ เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบชเบนเบ‡.

เป€เบžเบทเปˆเบญเปเบˆเบเบขเบฒเบเบ‚เปเป‰เบกเบนเบ™เบ—เบปเปˆเบง SQL Server nodes, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปƒเบŠเป‰เบ—เบฑเบ‡เปเบ™เบงเบ•เบฑเป‰เบ‡ เปเบฅเบฐเปเบ™เบงเบ™เบญเบ™ เบเบฒเบ™เปเบšเปˆเบ‡เบชเปˆเบงเบ™ (sharding). เปƒเบ™เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เป‚เบ„เบ‡เบเบฒเบ™เปเบšเปˆเบ‡เบ›เบฑเบ™เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบ‡เปˆเบฒเบเบ”เบฒเบ: เปเบ•เปˆเบฅเบฐเบซเบ™เปˆเบงเบเบ‡เบฒเบ™เปเบกเปˆเบ™เบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš token - เบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡ entity ID. เบซเบ™เปˆเบงเบเบ‡เบฒเบ™เบ—เบตเปˆเบกเบต token เบ”เบฝเบงเบเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ SQL เบ”เบฝเบงเบเบฑเบ™. เบเบฒเบ™เบžเบปเบงเบžเบฑเบ™เบฅเบฒเบเบฅเบฐเบญเบฝเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบžเบทเปˆเบญเปƒเบซเป‰เป‚เบ—เป€เบ„เบฑเบ™เบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบ•เบปเป‰เบ™เบ•เปเปเบฅเบฐเบฅเบนเบเบˆเบฑเบšเบ„เบนเปˆเบชเบฐเป€เบซเบกเบตเปเบฅเบฐเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ”เบฝเบงเบเบฑเบ™. เปƒเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบชเบฑเบ‡เบ„เบปเบก, เบšเบฑเบ™เบ—เบถเบเป€เบเบทเบญเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™เบ™เบฒเบกเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰ - เบŠเบถเปˆเบ‡เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบžเบฒเบเปƒเบ™เบฅเบฐเบšเบปเบšเบเปˆเบญเบเบ—เบตเปˆเบกเบตเบ›เบฐเป‚เบซเบเบ”เปเบกเปˆเบ™เป€เบเบฑเบšเป„เบงเป‰เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ”เบฝเบง. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเป€เบเบทเบญเบšเบชเบฐเป€เบซเบกเบตเบกเบตเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ SQL เบซเบ™เบถเปˆเบ‡, เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เป‚เบ”เบเปƒเบŠเป‰เบ—เบธเบฅเบฐเบเปเบฒ ACID เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™, เป‚เบ”เบเบšเปเปˆเบ•เป‰เบญเบ‡เปƒเบŠเป‰. เบŠเป‰เบฒเปเบฅเบฐเบšเปเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบท เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ ACID เบ—เบตเปˆเปเบˆเบเบขเบฒเบ.

เบ‚เปเบ‚เบญเบšเปƒเบˆเบเบฑเบš sharding เปเบฅเบฐเป€เบฅเบฑเปˆเบ‡ SQL:

  • เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบซเบฑเบ”เบ•เปˆเบฒเบ‡เบ›เบฐเป€เบ—เบ”, เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆ sharding ID entity เบญเบฒเบ”เบˆเบฐเบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบญเบทเปˆเบ™.
  • เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเปƒเบŠเป‰เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบตเปˆเป€เบเบฑเบšเป„เบงเป‰เปเบฅเบฐ triggers เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เป‚เบซเบผเบ”เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเปƒเบ™ CPU DBMS.
  • เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเปƒเบŠเป‰ JOINs เป€เบžเบฒเบฐเบงเปˆเบฒเบ—เบฑเบ‡เปเบปเบ”เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡เบ™เบตเป‰เปเบฅเบฐเบเบฒเบ™เบญเปˆเบฒเบ™เปเบšเบšเบชเบธเปˆเบกเบซเบผเบฒเบเบˆเบฒเบเปเบœเปˆเบ™.
  • เบขเบนเปˆเบ™เบญเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบฅเบฐเบ”เบฑเบšเบเบฒเบ™เป‚เบ”เบ”เบ”เปˆเบฝเบง Read Uncommitted เป€เบžเบทเปˆเบญเบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเบ•เบฒเบ.
  • เบžเบงเบเป€เบฎเบปเบฒเป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบชเบฑเป‰เบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ (เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเบชเบฑเป‰เบ™เบเบงเปˆเบฒ 100 ms).
  • เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เปƒเบŠเป‰เบซเบผเบฒเบเปเบ–เบง UPDATE เปเบฅเบฐ DELETE เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบดเบ”เบ•เบฒเบเบˆเปเบฒเบ™เบงเบ™เบซเบฅเบฒเบ - เบžเบงเบเป€เบฎเบปเบฒเบญเบฑเบšเป€เบ”เบ”เบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบšเบฑเบ™เบ—เบถเบเบ•เปเปˆเบ„เบฑเป‰เบ‡.
  • เบžเบงเบเป€เบฎเบปเบฒเบชเบฐเป€เบซเบกเบตเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบญเบšเบ–เบฒเบกเบžเบฝเบ‡เปเบ•เปˆเบขเบนเปˆเปƒเบ™เบ”เบฑเบ”เบชเบฐเบ™เบต - เบ„เปเบฒเบ–เบฒเบกเบ—เบตเปˆเบกเบตเปเบœเบ™เบเบฒเบ™เบชเบฐเปเบเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เป€เบ•เบฑเบกเบชเปเบฒเบฅเบฑเบšเบžเบงเบเป€เบฎเบปเบฒเบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒ overloading เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง.

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

เบšเบฑเบ™เบซเบฒเบเบฑเบš SQL

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

เปเบ•เปˆเบšเบฑเบ™เบซเบฒเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™

เบ„เบงเบฒเบกโ€‹เบ—เบปเบ™โ€‹เบ—เบฒเบ™โ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹

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

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

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

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

เบชเปเบฒเบฅเบฑเบšเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ Multi-Master replication เบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบ™ SQL Server. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฒเบ„เบฒเปเบžเบ‡เบเบงเปˆเบฒเบซเบผเบฒเบเบเป‰เบญเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบŠเบญเบšเปเบงเปเบฅเบฐเบ—เบปเบ™เบ—เบธเบเบˆเบฒเบเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบกเบตเบŠเบทเปˆเบชเบฝเบ‡เบเบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡ - เบเบฒเบ™เบŠเบฑเบเบŠเป‰เบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบชเบฒเบกเบฒเบ”เบ„เบฒเบ”เป€เบ”เบปเบฒเป„เบ”เป‰เบเบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš synchronous เปเบฅเบฐเบ„เบงเบฒเบกเบฅเปˆเบฒเบŠเป‰เบฒเปƒเบ™เบเบฒเบ™เบชเบฐเบซเบกเบฑเบ replications (เปเบฅเบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เบ”เบฑเบ”เปเบเป‰) เบเบฑเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš asynchronous. เบ„เบงเบฒเบกเบซเบกเบฒเบ เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบ‚เปเป‰โ€‹เบ‚เบฑเบ”โ€‹เปเบเปˆเบ‡โ€‹เบ”เป‰เบงเบโ€‹เบกเบทโ€‹ เป€เบฎเบฑเบ”เปƒเบซเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เปƒเบŠเป‰เบšเปเปˆเป„เบ”เป‰เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบเบฑเบšเบžเบงเบเป€เบฎเบปเบฒ.

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

เบ—เบธเบฅเบฐเบเปเบฒเบ‡เปˆเบฒเบเบ”เบฒเบ

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

  1. เบžเบงเบเป€เบฎเบปเบฒเบšเบฅเบฑเบญเบเบญเบฑเบ™เบฅเบฐเบšเบฑเป‰เบกเบ”เป‰เบงเบเบฅเบฐเบซเบฑเบ”.
  2. เบชเป‰เบฒเบ‡เบฅเบฒเบเบเบฒเบ™เปƒเบ™เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบฎเบนเบšเบžเบฒเบš.
  3. เบ–เป‰เบฒเบฎเบนเบšเบกเบตเบชเบฐเบ–เบฒเบ™เบฐเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป€เบžเบตเปˆเบกเบ•เบปเบงเบ™เบฑเบšเบฎเบนเบšเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเปƒเบชเปˆเบญเบฐเบฅเบฐเบšเปเป‰เบฒ, เบญเบฑเบšเป€เบ”เบ”เบšเบฑเบ™เบ—เบถเบเปเบฅเบฐเป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ.

เบซเบผเบทเปƒเบ™ pseudocode:

TX.start("Albums", id);
Album album = albums.lock(id);
Photo photo = photos.create(โ€ฆ);

if (photo.status == PUBLIC ) {
    album.incPublicPhotosCount();
}
album.update();

TX.commit();

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

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

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

เบญเบทเปˆเบ™เป†, เบšเปเปˆเบกเบตเบ„เบงเบฒเบกเบชเปเบฒเบ„เบฑเบ™เบซเบ™เป‰เบญเบ, เบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เปเบกเปˆเบ™:

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

เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ, เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆ

เบเบฒเบ™เบงเบดเป€เบ„เบฒเบฐเบ—เบฒเบ‡เบญเบญเบเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบกเบฒเป€เบ–เบดเบ‡เบชเบญเบ‡เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบชเบฐเบ–เบฒเบ›เบฑเบ”เบ•เบฐเบเบฐเบเปเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰:

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

เบ—เบฒเบ‡โ€‹เป€เบฅเบทเบญเบโ€‹เบ—เบตโ€‹เบชเบญเบ‡โ€‹เปเบกเปˆเบ™โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹เบเบฒเบ™โ€‹เป€เบเบฑเบšโ€‹เบฎเบฑเบโ€‹เบชเบฒ NoSQL เบเบฝเบกโ€‹เบžเป‰เบญเบกโ€‹เบ—เบตเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เบ‚เบฐโ€‹เบซเบเบฒเบโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เบเบธเปˆเบกโ€‹เบเบฒเบ™โ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹, เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบ‚เปเป‰โ€‹เบ‚เบฑเบ”โ€‹เปเบเปˆเบ‡โ€‹, เปเบฅเบฐโ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบฎเบฑเบ”โ€‹เบ—เบธโ€‹เบฅเบฐโ€‹เบเปเบฒโ€‹เปเบฅเบฐ SQL เบ•เบปเบงโ€‹เบ—เปˆเบฒเบ™โ€‹เป€เบญเบ‡โ€‹. เบขเบนเปˆ glance เบ—เปเบฒเบญเบดเบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” SQL, เบšเปเปˆเป„เบ”เป‰เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ ACID, เป€เบšเบดเปˆเบ‡เบ„เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบงเบฝเบเบ‡เบฒเบ™เบ—เบตเปˆเบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบซเบผเบฒเบเบ›เบต. เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ” SQL เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™เบขเบนเปˆเป„เบเบˆเบฒเบ ANSI SQL Cassandra CQL เป„เบเบˆเบฒเบ ANSI SQL. เบเบฒเบ™เป€เบšเบดเปˆเบ‡เบ—เบตเปˆเปƒเบเป‰เบŠเบดเบ”เบขเบนเปˆเปƒเบ™ CQL, เบžเบงเบเป€เบฎเบปเบฒเบฎเบนเป‰เบงเปˆเบฒเบกเบฑเบ™เปƒเบเป‰เบŠเบดเบ”เบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™.

Cassandra เปเบฅเบฐ CQL

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเบดเปˆเบ‡เบ—เบตเปˆเบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเบเปˆเบฝเบงเบเบฑเบš Cassandra, เบกเบฑเบ™เบกเบตเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เบญเบฑเบ™เปƒเบ”เปเบ”เปˆ?

เบเปˆเบญเบ™เบญเบทเปˆเบ™ เปเบปเบ”, เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ—เบตเปˆเบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบ›เบฐเป€เบžเบ”เบ‚เปเป‰เบกเบนเบ™เบ•เปˆเบฒเบ‡เป†; เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ” SELECT เบซเบผเบท UPDATE เปƒเบ™เบฅเบฐเบซเบฑเบ”เบซเบผเบฑเบ.

CREATE TABLE photos (id bigint KEY, owner bigint,โ€ฆ);
SELECT * FROM photos WHERE id=?;
UPDATE photos SET โ€ฆ WHERE id=?;

เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบฅเบญเบ‡, Cassandra เปƒเบŠเป‰ เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบเบธเปˆเบก. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเบชเบธเบ”, เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเป€เบกเบทเปˆเบญเบชเบฒเบก replicas เบ‚เบญเบ‡เปเบ–เบงเบ”เบฝเบงเบเบฑเบ™เบ–เบทเบเบˆเบฑเบ”เปƒเบชเปˆเปƒเบ™ nodes เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบ‚เบญเบ‡ cluster, เบเบฒเบ™เบ‚เบฝเบ™เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡ nodes (เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบชเบญเบ‡เปƒเบ™เบชเบฒเบก) เป„เบ”เป‰เบขเบทเบ™เบขเบฑเบ™เบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบเบฒเบ™เบ‚เบฝเบ™เบ™เบตเป‰. . เบ‚เปเป‰เบกเบนเบ™เปเบ–เบงเปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเบชเบญเบ”เบ„เปˆเบญเบ‡เบ–เป‰เบฒ, เป€เบกเบทเปˆเบญเบญเปˆเบฒเบ™, เบชเปˆเบงเบ™เปƒเบซเบเปˆเบ‚เบญเบ‡ nodes เป„เบ”เป‰เบ–เบทเบ polled เปเบฅเบฐเบขเบทเบ™เบขเบฑเบ™เบžเบงเบเบกเบฑเบ™. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ”เป‰เบงเบเบชเบฒเบก replicas, เบ„เบงเบฒเบกเบชเบญเบ”เบ„เปˆเบญเบ‡เบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ„เบปเบšเบ–เป‰เบงเบ™เปเบฅเบฐเบ—เบฑเบ™เบ—เบตเปเบกเปˆเบ™เบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบซเบ™เบถเปˆเบ‡ node เบฅเบปเป‰เบกเป€เบซเบฅเบง. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบซเบผเบฒเบ: เบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบ—เบฑเบ‡เบชเบฒเบก replicas, เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบˆเบฒเบเบชเบญเบ‡เบญเบฑเบ™เบ—เบตเปˆเป„เบงเบ—เบตเปˆเบชเบธเบ”. เบเบฒเบ™เบ•เบญเบšเป‚เบ•เป‰เบŠเป‰เบฒเบ‚เบญเบ‡ replica เบ—เบตเบชเบฒเบกเปเบกเปˆเบ™เบ–เบทเบเบเบปเบเป€เบฅเบตเบเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰. node เบ—เบตเปˆเบŠเบฑเบเบŠเป‰เบฒเปƒเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบญเบฒเบ”เบˆเบฐเบกเบตเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบฎเป‰เบฒเบเปเบฎเบ‡ - เป€เบšเบ, เบเบฒเบ™เป€เบเบฑเบšเบ‚เบตเป‰เป€เบซเบเบทเป‰เบญเปƒเบ™ JVM, เบเบฒเบ™เบเบถเบ”เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเป‚เบ”เบเบเบปเบ‡เปƒเบ™ Linux kernel, เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบฎเบฒเบ”เปเบง, เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฒเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบ™เบตเป‰เบšเปเปˆเบกเบตเบœเบปเบ™เบ•เปเปˆเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบซเบผเบทเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก.

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ•เบดเบ”เบ•เปเปˆเบชเบฒเบก nodes เปเบฅเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบˆเบฒเบเบชเบญเบ‡เปเบกเปˆเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒ: เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™ replicas เบžเบดเป€เบชเบ”เปเบกเปˆเบ™เบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐ "เบ•เบปเบเป„เบ›".

เบœเบปเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ Cassandra เปเบกเปˆเบ™ Batchlog, เบเบปเบ™เป„เบเบ—เบตเปˆเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบŠเบธเบ”เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบฎเบฑเบ”เบˆเบฐเบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเบซเบผเบทเบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”. เบ™เบตเป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเปเบเป‰เป„เบ‚ A เปƒเบ™ ACID - atomicity out of the box .

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

เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ‚เบฒเบ”เบซเบฒเบเป„เบ›เปƒเบ™ Cassandra

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

C*One

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เป€เบเบตเบ” DBMS เปƒเปเปˆ C*One, เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบฒเบกเบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบ‚เปเป‰เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ:

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

NewSQL = NoSQL+ACID

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

เบฅเบนเบเบ„เป‰เบฒ

NewSQL = NoSQL+ACID

เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เป„เบ”เป€เบงเบตเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เป‚เปเบ” Fat Client เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰. node เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบšเปเปˆเป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™, เปเบ•เปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบฅเบนเบเบ„เป‰เบฒเป€เบญเบ‡เป€เบฎเบฑเบ”เบซเบ™เป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ‚เบญเบ‡เบกเบฑเบ™: เบกเบฑเบ™เบชเบญเบšเบ–เบฒเบก replicas เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปเบฅเบฐเปเบเป‰เป„เบ‚เบ‚เปเป‰เบ‚เบฑเบ”เปเบเปˆเบ‡. เบ™เบตเป‰เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบกเบตเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเปเบฅเบฐเป„เบงเบเบงเปˆเบฒเบ„เบปเบ™เบ‚เบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™, เป€เบŠเบดเปˆเบ‡เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบเบฑเบšเบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบซเปˆเบฒเบ‡เป„เบเบชเบญเบเบซเบผเบตเบ, เปเบ•เปˆเบเบฑเบ‡เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เบชเบปเปˆเบ‡เบ•เปเปˆเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป. เบขเบนเปˆเบ™เบญเบเบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเป€เบ›เบตเบ”เบขเบนเปˆเปƒเบ™เบฅเบนเบเบ„เป‰เบฒ, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™. เบ–เป‰เบฒเบฅเบนเบเบ„เป‰เบฒเป„เบ”เป‰เป€เบ›เบตเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เบธเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเบžเบฒเบเปƒเบ™เบ—เบธเบฅเบฐเบเปเบฒเบˆเบฐเบ–เบทเบเบชเบปเปˆเบ‡เป„เบ›เบซเบฒเบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ.
NewSQL = NoSQL+ACID

C*One เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบ—เบธเบฅเบฐเบเปเบฒ

เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบชเปเบฒเบฅเบฑเบš C*One เบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบกเบฑเบ™เบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเปƒเบ™เบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ, locks, เปเบฅเบฐเบ„เปเบฒเบชเบฑเปˆเบ‡เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ.

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

เบฅเบฑเบญเบ

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

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

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบ‚เปเป‰เบกเบนเบ™เป„เบ”เป‰เบ–เบทเบเปเบˆเบเบขเบฒเบเปเบฅเป‰เบงเปƒเบ™เบšเบฑเบ™เบ”เบฒเบเบธเปˆเบกเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ SQL, เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบกเบญเบšเบเบธเปˆเบกเบ—เบธเบฅเบฐเบเปเบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบซเป‰เบเบฑเบšเบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™: เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบซเบ™เบถเปˆเบ‡เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ”เป‰เบงเบ tokens เบˆเบฒเบ 0 เบซเบฒ 9, เบ—เบตเบชเบญเบ‡ - เบกเบต tokens เบˆเบฒเบ 10 เบซเบฒ 19, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบ•เปˆเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบเบฒเบเป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบธเบฅเบฐเบเปเบฒ.

เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, locks เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบฎเบนเบšเปเบšเบšเบ‚เบญเบ‡ HashMap banal เปƒเบ™เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™.

เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง

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

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

NewSQL = NoSQL+ACID

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

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

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

เบเบฒเบ™เบˆเบญเบ‡

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

NewSQL = NoSQL+ACID

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

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

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

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

เบงเบดเบ—เบตเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒ

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

NewSQL = NoSQL+ACID

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

NewSQL = NoSQL+ACID

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

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

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

NewSQL = NoSQL+ACID

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

NewSQL = NoSQL+ACID

เปเบฅเบฐเป€เบžเบทเปˆเบญ rollback, เบœเบนเป‰เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบปเบ”เบ›เปˆเบญเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ—เบตเปˆเบ„เบญเบšเบ„เบญเบ‡เป‚เบ”เบเบชเบฐเบ–เบฒเบ™เบฐเบ—เบธเบฅเบฐเบเปเบฒ.

เบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡เบ‚เป‰เบฒเบ‡เป€เบ—เบดเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ›เบฐเบ•เบดเบšเบฑเบ”เบซเบผเบฑเบเบเบฒเบ™ ACID:

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

เบเบฒเบ™เบญเปˆเบฒเบ™เป‚เบ”เบเบ”เบฑเบ”เบชเบฐเบ™เบต

เปƒเบซเป‰โ€‹เป€เบฎเบปเบฒโ€‹เปƒเบŠเป‰โ€‹เบ•เบฒโ€‹เบ•เบฐโ€‹เบฅเบฒเบ‡โ€‹เบ‡เปˆเบฒเบโ€‹เบ”เบฒเบโ€‹:

CREATE TABLE photos (
id bigint primary key,
owner bigint,
modified timestamp,
โ€ฆ)

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

SELECT *
WHERE owner=?
AND modified>?

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

เบ”เบฑเบ”เบŠเบฐเบ™เบตเปƒเบ™ C*One

เบกเบตเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบซเบผเปˆเบ‡เบ—เบตเปˆเบกเบตเบฎเบนเบšเบ–เปˆเบฒเบเป€เบŠเบดเปˆเบ‡ ID เบšเบฑเบ™เบ—เบถเบเปเบกเปˆเบ™เบเบธเบ™เปเบˆเบซเบผเบฑเบ.

NewSQL = NoSQL+ACID

เบชเปเบฒเบฅเบฑเบšเบ”เบฑเบ”เบชเบฐเบ™เบต, C*One เบชเป‰เบฒเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปƒเบซเบกเปˆเบ—เบตเปˆเป€เบ›เบฑเบ™เบชเปเบฒเป€เบ™เบปเบฒเบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เบเบธเบ™เปเบˆเปเบกเปˆเบ™เบ„เบทเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบชเบฐเปเบ”เบ‡เบญเบญเบเบ‚เบญเบ‡เบ”เบฑเบ”เบŠเบฐเบ™เบต, เปเบฅเบฐเบกเบฑเบ™เบเบฑเบ‡เบ›เบฐเบเบญเบšเบกเบตเบฅเบฐเบซเบฑเบ”เบซเบผเบฑเบเบ‚เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบซเบผเปˆเบ‡:

NewSQL = NoSQL+ACID

เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ„เปเบฒเบ–เบฒเบกเบชเปเบฒเบฅเบฑเบš "เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบชเปเบฒเบฅเบฑเบšเบกเบทเป‰เบชเบธเบ”เบ—เป‰เบฒเบ" เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ‚เบฝเบ™เบ„เบทเบ™เปƒเบซเบกเปˆเป€เบ›เบฑเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบˆเบฒเบเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบญเบทเปˆเบ™:

SELECT * FROM i1_test
WHERE owner=?
AND modified>?

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

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

เป€เบเบตเบ”โ€‹เบซเบเบฑเบ‡โ€‹เบ‚เบถเป‰เบ™

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ C*One เป€เบกเบทเปˆเบญเบชเบฒเบกเบ›เบตเบเปˆเบญเบ™เปเบฅเบฐเป€เบ›เบตเบ”เบ•เบปเบงเบกเบฑเบ™เป„เบ›เบชเบนเปˆเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ—เบฒเบ‡เบเบฒเบ™เบ„เป‰เบฒ.

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

เป€เบกเบทเปˆเบญเบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰ SQL เบเบฑเบš replication factor = 1 (เปเบ•เปˆเปƒเบ™ RAID 10), photo metainformation เป„เบ”เป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปƒเบ™ cluster เบ—เบตเปˆเบกเบตเบขเบนเปˆเบชเบนเบ‡เบ‚เบญเบ‡ 32 เป€เบ„เบทเปˆเบญเบ‡เบ—เบตเปˆเปƒเบŠเป‰ Microsoft SQL Server (เบšเบงเบเบเบฑเบš 11 backups). 10 เป€เบŠเบตเบšเป€เบงเบตเบเบฑเบ‡เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™. เบฅเบปเบ”เบฅเบฒเบ„เบฒเปเบžเบ‡เบ—เบฑเบ‡เปเบปเบ” 50 เบ„เบฑเบ™. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบฅเบฐเบšเบปเบšเป„เบ”เป‰เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เป‚เบซเบผเบ”เบเบฒเบ™เบˆเบฑเบ”เบญเบฑเบ™เบ”เบฑเบš, เป‚เบ”เบเบšเปเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ‡เบงเบ™.

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบ›เบชเบนเปˆเบฅเบฐเบšเบปเบšเปƒเบซเบกเปˆ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบฎเบฑเบš replication factor = 3 - เบชเปเบฒเป€เบ™เบปเบฒเปƒเบ™เปเบ•เปˆเบฅเบฐเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™. เบฅเบฐเบšเบปเบšเบ›เบฐเบเบญเบšเบ”เป‰เบงเบ 63 โ€‹โ€‹เป‚เบซเบ™เบ”เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒ Cassandra เปเบฅเบฐ 6 เป€เบ„เบทเปˆเบญเบ‡เบ›เบฐเบชเบฒเบ™เบ‡เบฒเบ™, เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ” 69 เป€เบ„เบทเปˆเบญเบ‡. เปเบ•เปˆเป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบเป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบฅเบฒเบ„เบฒเบ–เบทเบเบเบงเปˆเบฒเบซเบผเบฒเบ, เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบกเปˆเบ™เบ›เบฐเบกเบฒเบ™ 30% เบ‚เบญเบ‡เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเบ‚เบญเบ‡เบฅเบฐเบšเบปเบš SQL. เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™, เบเบฒเบ™เป‚เบซเบผเบ”เปเบกเปˆเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเป„เบงเป‰ 30%.

เบ”เป‰เบงเบเบเบฒเบ™เปเบ™เบฐเบ™เปเบฒ C*One, latency เบเบฑเบ‡เบซเบผเบธเบ”เบฅเบปเบ‡: เปƒเบ™ SQL, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ‚เบฝเบ™เป„เบ”เป‰เบ›เบฐเบกเบฒเบ™ 4,5 ms. เปƒเบ™ C*One - เบ›เบฐเบกเบฒเบ™ 1,6 ms. เป„เบฅเบเบฐเป€เบงเบฅเบฒเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเปเบกเปˆเบ™เบชเบฐเป€เบฅเปˆเบเบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 40 ms, เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปเบกเปˆเบ™เบชเปเบฒเป€เบฅเบฑเบ”เปƒเบ™ 2 ms, เป„เบฅเบเบฐเป€เบงเบฅเบฒเบญเปˆเบฒเบ™เปเบฅเบฐเบ‚เบฝเบ™เปเบกเปˆเบ™เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบ 2 ms. 99th เป€เบ›เบตเป€เบŠเบฑเบ™ - เบžเบฝเบ‡เปเบ•เปˆ 3-3,1 ms, เบˆเปเบฒเบ™เบงเบ™เป€เบงเบฅเบฒเบซเบกเบปเบ”เป€เบงเบฅเบฒเป„เบ”เป‰เบซเบผเบธเบ”เบฅเบปเบ‡ 100 เป€เบ—เบทเปˆเบญ - เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เบเป‰เบญเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบขเปˆเบฒเบ‡เบเบงเป‰เบฒเบ‡เบ‚เบงเบฒเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฒเบ”เบ„เบฐเป€เบ™.

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

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

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

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