ááŁáŠ á¨HighLoad++ áŽááá¨ááľ á¤ááŞá 6 áĽá 7ᣠ2020 á á´ááľ áá°ááľá áá ááŤááłáá˘
ááááŽá˝ áĽá á˛áŹáśá˝
ááááľ áááľ á áľááá á¨áá áá˝áłáá˝ á¨áááľ ááľáĽ á ááááĄá áľ áá á°ááŁáŤá ááľáááśá˝ á¨á˛á᪠áá á¨ááአáááá¸á áá¨á°áłáᢠáá
áááá á áááľ áááľ ááľáááśá˝ áá á ááááŽá á á áŤáłáá áááá áá á ááááŽá á¨ááááŤáľ ááĽááľ áááá˝á áááá á á¨á°ááŤáŠ á ááŤá¨áŚá˝á á¨ááá¨áĽ áĽá á¨ááŁáá áá°áľá áŤáááŁáᢠá áľááŽá˝ áľá áááŤá á°ááśá˝áŁ á¨áĽááááľ ááľáľáᣠá¨áľáááľ á°á
áááľáŁ á¨á°ááľ áááłá°á áĽá MongoDB ááá á á°áá°á áááľááá˝ áá áĽáá°á°ááá á áľá ááŁá á˛ááŹá˛áŤá á ááŤá¨áŚá˝ áááŤá á˘
ááŤáá áłáááá (á¨áá á áá á¤áᲠá°áĽá áá áŤá) - áľá á¨ááááŤáľ ááĽááľ áĽáááŤáá - áá á áááá˛á˘ ááľáĽ á¨á°áŤáá áŁá ᪠ááᢠáĽá á áĄáľá á á°á¨ááá áľáááśá˝ ááľáĽ áĽá°áŤáá, á¨áááľ á ááľ á ááľ á áá°áá.
á áá°áą ááľáĽ áŤá´á á¨áĽá á¨á áŤáłáá áááá áá á á°áἠááá
áá á¨áĽá ᣠááááŤáąá áá
áŁá
᪠á áĽáŠ áááł á¨á°á á ááᢠááááŁáľ á ááá¸áá á¨áááľ á áááŹá˝á ááľáĽ áŁá á áŁá áአááľáááśá˝ ááááŤáľ á áááľ áłáłá¤á ááľáĽ á¨ááááá áá á ááľá ááŁáĽá áĽáá°áááᣠáłááá˘
áĽá á¨á áŤáłáá áááá á¸áážá˝ áĽáá°áááá˝á áá á á¨áĽáą ááľáĽ á¨áá ááá ááááááľ áĽáá´áľ áĽáá°ááááá áĽáááŤáá, á¨ááŤá áá°á ááááťá˝á áĽáá° ááá-á¨á°á°áŤ ááἠááá áá ááš áĽá á°á áááą á¨á°á á á.
á¨ááááŤáľ ááĽááľ. á áá°-ááłáŚášá áĽááááá¸á
ááááá ᣠá¨ááááŤáľ ááĽááľ áá áĽáá°áá á áĽá á áááá áĽáááááᢠáááľ ááááá˝ á á - ááŽáááľ áĽá áá (á¨á˛áŞ á°á¨áłáłá "á˘á áŁáá á˛ááŞ")áĄ
áá á ááŽá ááľáĽ ááľ áĽá ááŽáááľ á áľááŤá áľááľ ááŤá°áááľ ááááá áĽáá áᢠáĽá áĽáˇá á¨áá°á áááá ááľáĽ á¨ááŁá á¨á°áťá ááá áá°áĽ á áá˝áá, áááá áá°ááš á ááἠáá ááťáťáŤ á ááá: "ááá áĽááľá°áľáľ!" (áĽáˇ á ááŽá ááľáĽ áá, á°ááł áłá, áá
á áá á ááłáá áĽá áá¨áľ á áá˝áá, ááááŤáąá áĽáˇ áľáááá˝). á áá¨á¨áťáŁ áá
á ááĽá áľá°áááá˝áŁ á¨ááᥠáá áľá°áááá˝ áĽá ááá ááá áĽááłáłáľá°áá áĽá ááá á áááľ á
ááľ áĽááłááá ááłá¨áťá áľáááłáá˝á˘
áá
áá áááŤá áĽá áĽáŠ áá, ááá áá áľáááą á°á¨áááá áĽá áááŽá˝ áľáá˝ á°áłáľá°áá áĽáá áĽááľáĽ. áááłáᣠáá
ááĽá á¨áᣠá áá á¨áá ááłá¨áť áá°áĽ á°á¨áľáś ááá áá˝ááᣠááľá°áśáš á ááááŤáľ áĽá á áá¤áľ á¨ááááá á¨ááᢠá áĽááṠᣠáá
á¨áááľ áĽáŤá ááá¨ááá (á áá
ááłá áá) á¨ááááŤáľ ááĽááľ á˛áŤáľááá ááłá ááá˘
áĽáá° áĽáááą á¨áá áĽááá á¨áá¨á ááą á áŁá ááá áŤááá áŁá áŞáŤáľ áá¸á - á áŁá áĽááľ á°áá˝ áá°ááá¸áá. áá° áá´ááš áĽáááľ.
ááĽááľ áŤáá¸á áá´áá˝
á áá¨á ááśá˝ ááľáĽ á áľááá ááĽááľ áŤáá áá´á áááľá áá? áĽááá á¨á°á¨ááá áľáááľ á°áá áá áá á áááľ ááἠááá á áĽáá°áá˝á áĽá á áá á á°á á°á¨á°á á¨áá°á áá á ááłááľ ááľáľááá˝ áá¸á.
á ááá á°á¨á, ááá ááĽááľ áŤáá¸á áá´áá˝ á¨á°á¨áááá áľáááľ áá áŤá á áĽáá°áááłá°á ááááłá, áááłá, á áááśá áá á á ááľ ááľááá ááááľ áá. áĽá á áşáá˝ á ááá አá¨ááŚ-áľáááľ "ááśá˝" áá á¨áá°áŤ áľáááľ á¨áááśá áá á°ááłáłáááľ áŤáá á˛áá áĽááá áá áŁá áŞáŤáľ á ááá á°á¨á á áŤáľ-á°á áá¨áááá.
áľááá , ááĽááľ áŤáá¸á áá´áá˝ áá°á¨ááá áľáááśá˝ áĽáť áá°áá áŤá. áá°á á˛á á¨áá áŠáľ áĽá á á°ááłáłá áá ááŹáľ áá á¨áá°áŠ ááá áľáááśá˝ áĽáá°áá á áááľ á˝ááŽá˝ á ááá áá¸áá. á ááľ ááľ áá¸á፠áá á¨áŁ áĽá ááá ááá áááá á¨áĽáą ááá áŁáá˘
áá´á á ááŤáŤ
áĽáá° áĽáááą á¨áá, á¨ááááŞáŤá áá´á á ááŤáŤ áá (ááá á¨áááłáľ á˝ááł ááľáá, áĽááá áá áĽáá°áá áŤá). áá áĽáŤááłááą ááἠá áá´ áá¨á°áąá á¨á°á¨ááá áááá á¨áľáááą á°á áááá˝ á¨ááłá áááá á¨ááŤá¨ááἠááĽááľ áŤáá áá´á ááá˘
áá á áá¨á ááą ááľáĽ á¨áááá áááśá˝ ááá á ááá á á°á á°á¨á°á áááĽáŤáᢠáá á áŁá á ááŤáŤ ááĽááľ áŤáá ááĽá¨áľ áá, áĽá á á á ááá á áŁá ááľ áá. ááá áá, á áŁá á áĽáŠ áááł á¨á°á°áá áá. áĽáą á áŁá ááľ áĽá áááá°á áá - áĽáą á áŁá á áá á áá áĽá á áá ááááᢠáá á¨áááłáľ á˝ááł ááŁáá.
á áľááá ááľáĽ á¨áá°áá áá á ááŤáŤ ááĽá¨áľ á á - ááŤá ááĽááľ ááŁááᢠáľáá˝ ááá°á áĽáááááŤáá.
ááááŤáľ
á¨áááĽáá áŤááłá ááᣠáĽáąá á áľááá áĽá¨á°ááááŠáľ ááᢠá á ááŤáŤ áĽá á ááááŤáľ ááŤá¨á á¨ááááááŁá¸á áĽá áááľ á°á¨ááá˝ á áᣠáá ááá áá° áŤááłá ááááłáᢠáá á áŁá á áľááá áá´á áá, ááááŤáąá á¨ááá áá´áá˝ ááľáĽ á áŁá á ááŤáŤá, á ááľááá ááá áááááŽá˝ ááľáĽ á áŁá á ááŤáŤá ááĽááľ áá.
áááľá¤áá˝ á áĽáááą ááľá°áśá˝ á ááááŤáľ áĽá á áá¤áľ áááááľ á¨á°áááá áľ áááł ááᢠáĽá áá á¨ááĽáśá˝áá á¨á°áá áá áĽááł á ááá áŤááĽáĄ á°áĽá ááłá°áŁáᢠá°áá áá á ááłááľ áĽá´áśá˝á áŤáľá°áá, á¨áá
á ááľ á¨áá áŠáľá áĽá´áśá˝ áá¨áľ á áá˝áá. áĽáą á áľááľá á
áľá á
áĽáŤ ááŁáŚá˝á áá¨áľ áááŻáᢠááá áá° á°ááłáłá ááá ááááłá.
áááľá¤áá˝ áĽáá° ááĽááľ áá´á á á áááአáá á¨áá á¨ááľá°áśá˝ á
á°á á°á¨á°á áá ᣠá áá
ááľáĽ á¨ááá á°áá áá˝ ááľá°áśá˝ á á°ááłáłá á
á°á á°á¨á°á ááłáŤáᢠá áá
ááłá áá ááŽáááľ áĽá áá.
á áá¨á¨áťá
áŚáľá°áá áá´á á¨áá¨á¨áťá ááĽááľ áá. áá á ááá ááá á¨á°á¨ááá áľáááśá˝ á¨áá°áááľ áá, ááá áľááá áŤáá á ááľá°á áá´á. á¨áá¨á°áá áááľ ááᥠá áá¨áá áá á ááłááľ áááŚá˝ á˛ááŠá, á á°áá°á á°á¨á áá ááĽááľ áááŤá¸áá.
á áĽáá°áá ááááľ á á˝á áľ ááá á áľáááá, á áá áá፠áá° ááŤá ááĽááľ áľáááŁáá˝ - áášá á¨á°áᨠáłáŞá áááá. á˘ááá, áá á áŁá á°ááłá áá´á áá, á áŁá á¨á°ááá°á. á ááŁáŞááľ ááá á¨á°á¨ááá áľáááśá˝ á°á áááá˝ áá á áľáŽ ááĽááľá áá áááá˘
á ááłááľ á°ááťáťáŞ ááłááá˝á ááľá áľ áĽááááááĄ-
áĽááá
ááľáśá˝ áá áááľ áá¸á?
- áááá¨áľá˘ á¨ááĽááľ áĽááŤáŹá áĽá¨á¨áᨠá áá° ááĽá ááá˝ á áá ááááŤáśá˝ áľáá ááááᥠáĽá ááááŚá˝á ááľáŤáľáŁ áá¨áá á áľááľá áĽááłá á áááľá°á ááľáĽ á¨ááłá°á ááá á áľá°áááá˝ áĽá á áááá˝ áá¨áá፠ááááľ áŤáľáááááłáᢠá áá áá á¨áľ á¨áá¨á¨áťá ááĽááľ á áŁá ááŁá áááľ á áá, ááááŤáąá áĽá፠áĽáá° á ááľ á°ááĽ, áááľáłááľ áĽááłá ááŤá°áááľ áá˝áá áĽá áá á ááá á°á¨á, á á áááá.
- ááááľ. á¨áľáá áą á¨ááľááá áááŤá¨áĽáŁ áááááŽá˝ ááá áĽáá˝áśá˝ áŁáá áľ áá ááá˝ á¨ááľá áľ á á á áĽáá°áá á¨á°á¨áłá á ááľ á áľá°ááá ááá á ááŤá˝á áľááá á¨áľá á°áľ ááťáťá áĽá¨á¨áᨠáááłáᢠáá á ááłááľ ááἠáááĽáŤá. á¨áá¨á¨áťá ááĽááľ áľá ááᥠááá ááľáľá á áá°áĽá - ááá ááá áá˝ááá˘
- áŤáá°áááą áááŽá˝. á á°ááłáłá áá, áĽááἠáá, anomalies ááĽá áá¨ááŤá. á á ááŤáŤ ááĽááľ ááľáĽ áĽááą á¨áá áá°á ááá á¨ááŁá¸ááᣠááá áá á áá¨á¨áťá ááĽááľ ááá ááá áá˝ááᢠáĽáŤáá á¨áááłááĄ- ááááľáá á°áá˝ áŤáá°áááą áááŽá˝á á¨áŤáá ááááľáá? áááą á¨áá¨á¨áťá ááĽááľ áá´áá˝ á°áááááľ áŤáá¸á áĽá áŤáá°áááą áááŽá˝ á á, áááłá á á áá áá ááľáĽ; áááá ἠá áááŠá áá áá áĽá áĽá ááá áŁáá° á°á¨áłáłá ááἠááá ἠááťáá; áĽááá áá á ááŤáŤ ááĽááľ áŤáá¸á áá´áá˝á áá áá ááťáá. á á°ááŁá áá áá áŤá, áĽá áĽá áá áŤáá°áááą áááŽá˝ ááĽá á áá á¨á°áá°á áá.
CAP á˛áá¨á
áááśášá á˛ááá¨áą ááĽááľ, á°ááááľ - áá° á áĽááŽá á¨áááŁá áááľá áá? áá áá - ᨠCAP á˛áá¨á! á áá á á áłáŞáŠá ááľáááľ áĽááááá ... áĽá á áá°ááá - á áľá°áá á˝ááᣠáľáá áá˝áá á¨áťáá ááá˛á ááááá ááá˘
á¨CAP á˛áá¨á á 2000ááš ááľáĽ ááĽááľáŁ á°ááááľáŁ áááááá˝áĄ áááąáá ááá°áą áĽá áśáľáľ ááá¨áĽ á áá˝áá á¨ááá ááá
ááᢠá¨á°áá°á ááá
áá áᢠá¨áĽááľ á ááłáľ á áá á ááá ááľ áĽá á ááá˝ áĽáá° á˛á᪠á°á¨ááá§áᢠá¨ááŤá áá
áĽáá° áááľáŤ áĽá
á áá ááá ááᨠ- áľáááśá˝ áá° CA, CP, AP áĽá á¨ááłá°ááľ áá¨ááá áááŠ.
áá á˝áá°-ááłáĽ á áĽáááą ááá¨á°ááľ ááłáŽá˝ á¨á°á¨ááá áá⌠á ááááŞáŤ ᣠá°ááááľ á¨áᎠáĽáľá¨ á ááśáá˝ áľá¨áľ áĽáá° ááŁá áĽá´áľ á°á°áá á ááá áá (0 - áľáááą âáá°â ᣠ100 - á ááĽááľ ááá˝ áá°áŁá ᣠáĽáąá áĽáá°á፠ááááá¨áľ áĽáááááłáá) , áá áĽáá° á áááŞáá ááĽá¨áľ áá, áĽáąá áááá á áááááš áá¨áá áĽáá°ááááľ ááľáľá áá°áŁá.
áľá ááá˝ áá ááá áá á¨áá! ᨠ100 áááłáľ á áá áá¨áá á¨ááááľ áľáá° ááá á á - áášá á áľá°áá á¨áá á áááŞáá ᣠáĽáąá ᨠCAP á˛ááŹá á áŤá ááá˘
ááá°áᥠááľá ááłáĄ á á°ááłáłá ááá áĽá´áśá˝ áá áá°á°á¨á áááŚá˝ á°á¨ááá§áᣠááá áĽááłá áĽááá
áááŚá˝ ááá¨áŠ á¨áá˝á á˘áááᢠáá
áááľ á áĽáááą áĽááą á á°ááŁá áĽá
á áá á áááá, ááááŤáąá áá´ááš á¨á°ááŤáŠ áá¸á á¨áá¨á¨áťá ááĽááľ , á ááŤáŤ ááĽááľ (ááááŁáľ).
áá áá ááááľáá? á á°á¨ááŞá ᣠᨠCAP á˛ááŹá á áľááá á á°á¨ááá á áľ á á˝ ááľáĽ á á°ááŁá á¨ááá°áá á áĽá áĽáá áĽá á áá á¨áááá ááᢠá ááľá ááłáŁá ááá, á áá ááááľ áááá ááá áááľáŁá. á áľááá áľáááá á¨áá á ááľ á¨á°áá°á ááá áááŁá ᣠáá á á á ááá á áá°á¨ááá áá˘
á¨ááááŤáľ ááĽááľ á áŁá á ááŤáŤá áá´á ááá˘
á áá áĽá¨áá áŤáá ááá áŚáľáąá áááŽá˝ ááááľ áá˝áá: ááĽááľ, ááááá á áá áá á°ááááľ. á á°ááá á¨ááááŤáľ ááĽááľ á áŁá á ááŤáŤá ááĽááľ áŤáá áá´á áá ᣠá ááá á áááá˝ (á á ááłá¨ áá¨áĄ ááľáĽ áá°áŁá á) áŁáá áľ áá áŤáᢠáááŤá áá áľáá ááááľ áŤáá, áĽá ááá áá á¨áá°áľáá.
á ááááŞáŤ á°á¨á, á¨áá°áá áŞáŤ ááá˘áá˝á áľáŤ ááá áŤá°áááá. á á°ááá á¨á áááአá¨áá°á áľáá áááŠ: á á ááľ á°áá á ááľáĽ á¨áá¨á°áą ááá ááááŚá˝ á áá á°áá á áá á á°ááłáłá á
á°á á°á¨á°á á˛á°ááą. á ááá°á á°á¨á, áááááŽá˝á ááááá.
MongoDB á¨ááľáĽ áἠá¤áľ
ááł áááá á ááľáłááľ áá° áŠá˝á áĽáááłááᢠáľá áľáááą áá´á áĽáááŤá˝ááá, áááľá, MongoDB áľá áĽáá°áá á áááľ á¨ááἠááł áááááŞáŤ áá ááá°ááľ á°áá˝ áá áááľ áá.
MongoDB (á¨áá
á áá "MongoDB") á°áĽá á¨áá áŤá á ááľá áááá á¨áá°áá á¨á°á¨ááá áľáááľ áá, áááľá, sharding; áĽá á áĽáŤááłááą á¸áá°á´ ááľáĽ áĽáá˛á á¨ááἠáľáááá˝á áá°ááá ᣠáááľá ᣠááŁááľá˘
á MongoDB ááľáĽ áááŤáľ (á°ááá áłáłá¤á á áá°áá) á ááśáá˛á áááá áŤá¨áááá ᣠáááľá ᣠáĽáŤááłááą á¨á°ááśá˝ áľáĽáľáĽ (ááá âá á¨á´áâ á áááááľ áá¨á) áá° áááĽáŤáŽá˝ áá¨áááá ᣠáĽá á áááአá áŤáľ-á°á á áťááśá˝ ááŤá¨á áŤáááłá áłá¸ááá˘
áĽáŤááá˝á á¨ááŤá°áŤá á¨áĽáŤá áŤáá°á áá°áá á á¨áá áŤá áľ á¨á°áá°á á°áá á ááᢠá¨áľ áĽá áá ááἠáĽáá°ááá á áľááľá áŤááá áĽá áááá áĽáŤááá˝ áá° áľááááá á¸áá°á´ áááŤáá˘
áá á áľááá ááĽáĽ: MongoDB áá á áá áá. á ááľ á¨ááááŞáŤ á°á¨á á á - á ááľáĄ á¨áŤááá áááá˝ á¨áá°áá ááááŚá˝á áááľáľ áá˝áá. ááá˛-ááľá°á ááá á áá˝ááá˘
4.2 áááá á á á°á¨áá - á á˛áľ á áľá°áłá˝ áááŽá˝ áĽá፠áłáŠá˘ á á°ááá áá´á - ááá - áááľá executable java á ááĽáł áá° ááá á áľááĽá°á áá áᣠáĽá áĽááŤá á á¤ááľá˛áŤ áĽáá°áá á¨á á áá´á á áŠá ááááá˝á ááľá¨á á°á˝ááá˘
áĽá á á˛áľ áááľ á°áŠ - áá áłáá˝áŁ áĽáąá á á áľááľ (á¨ááá á¨áŤáą á°áá) ááá ááááᢠáá á°á¨á á áá¸á - á¨áĽáą áá ááŤááľ áá˝ááᢠáá áłáá˝á á áŁá ááľáááá - á¨ááἠáĽá᳠ᣠá áŁá á¨ááłáá á˘
ááĽááśá˝ á¨ááááŤáľ ááĽááľ
á áá áááľ áá á¨áłá°á áá° 230 á¨áá á á˝ááá˝á áá áአ- á¨ááľá áááááľá˘ á áá á¨ááľáłááťáŹ á¨áĽááá á ááłááśá˝ á ááłááľ áááá˝ áĽáááááłááá˘
áá
áá á¨á°ááá¨á á 1970ááš á á°áťáá á ááľá áááááľ ááŁáĽá ááᢠáĽáá°ááłá¨á á áá
áááľ áá á ááłááľ áĽááśá˝ á ááá á ááŤááľ áá áá¸á. á áá á¨ááááŤáľ ááĽááľ á¨á°á¨ááá áľáááśá˝ áááľ áá á á°áŤáŤá ááááľ áĽáŤáá áá ááá˘
áá°áŚá˝
áá áá°áŚá˝ á á? áá á áĽáááą á¨áá ááááš á ááą áá, ááááŤáąá á¨áááľ áľáááľ á¨ááĽáá¸á áá°áŚá˝ á á áŤáłáá ááŁáĽáá˝ ááľáĽ áŤá áá°áŚá˝ á áŁá á¨á°áአáá¸á. áĽááą áĽááá áá á°á á°áŤá˝ áá¸áá˘
- á ááááŞáŤáŁ âMongoDBâ áá°á áĽáŹ áĽááłááŠáľ áá á ááł áá (áá á áŁá áŤáááá)á˘
- áľáááą áá° 10 áşá á¨áá á áťááśá˝á áá°áá á áá áľ áĽáá áĽááááá. áá áá áĽá´áľ á ááá á¨áááľáĄ áááááá á¨áľá-á áá ááłááá˝á ááľá¨á á áá˝ááá˘
- á°áá á áá, ááá áá á ááľ á°á áááľáŽá˝ á˛áŤáááľ, á áááśá áá á˛áŤáľááł áĽá ááá ááá á áĽáŠ áááł á˛á°áŤ á ááá áĽáľá ááá¨á áááŁá áĽáá áĽááľáŁáá.
- áááá áĽááĽáá á¨ááááá°áá ááá áĽááááłááᥠá¨áá á°áá áá˝ á¨ááááľá ááľá¨á áá˝ááᢠMongoDB áááľ ááá ááᢠá áá áá á¨áľ á°áá áá˝ á áŁá áĽáá áĽá áᥠááá áá˝áá - áááá ááá ááľá á áááááᢠá¨áŁááááłáá ááááŽá˝ áááአáĽáá°áá˝á áĽááááłááá˘
- á¨ááááľá áá ááá á¨áá á°áá áá˝, á áľááá áá°áĽ á á: áá áŁá ᪠á¨á°á°áá¨á, ááá á¨á áááá ááľááľ ááłá¨áľ á¨áá áľá.
- ááá ááĽáĽ á á á ááá áá¨-á áŤáłáá áá-á¨ááľáááš áľáŞáśá˝ áĽá á¨áá°ááľ áľáŞáśá˝ á°áłááááľ. á¨áľáŽ á á˝á¨ááŤáŞáá˝ á á˛áľ ááááá˝á áá°áá á ááŁá¸áᣠáĽá á¨ááἠááłá á¨áአá á˝á¨ááŤáŞáá˝á áá°áá á áá áľá˘
á á á ááá áá áá áá°áŚá˝á áŤáľááľáłá.
á¨ááááŤáľ ááĽááľ áááá˝
á áá áľá á ááłááľ á áŤááľ áĽáááŤáá. á¨ááááŤáľ ááĽááľá á á á ááá áŤá°áĽá áĽááŽá˝á ááá¨áĽ áĽáá˝áááᢠá¨á ááľ á¨á°áá°á áĽáá á¨áá áĽáŤáá˝ áá¨áĽá-áĽáá áá¨áłá°á áŁá°ááśá˝á ááá¨áĽ áŁáĽááá á°ááśá˝ áĽááľá ááľ áĽáá´áľ áĽáá°áááłá°á áĽá áĽáá´áľ á°á áááľá áĽáá°ááá¨ááἠ- áá áľá á¨áááá¨á á áá ááá፠ááá˘
áá áĽááááľ áá¨áłá°á
ááá áŤáľáááá? áľááá ááἠá˛áŁá, áĽáŤááłááą ááááĽ, áĽáŤááłááą á¨ááἠááἠá á¨áľáá áááŚá˝ áá áĽáá°ááá°á áá¨á áááá. á¨ááááŞáŤá áĽá á¨áá ááἠáĽáŤááłááą áááἠá¨áŤá áááĽááľ áľááá°ááľ áááááśá˝ áá¨á á˛áá ááá˘
á áá
ááłáᣠá áĽáá á
ááá˝ ááľáĽ áŤáá ááĽá á¨ááááá˘áŤ ááĽáŽá˝ ááᢠá ááłááľ áá áĽááá
áĽá´áśá˝ áŤáá¸á ááááŚá˝ áá á áá áá°áááá ᣠá ááłááľ áá á ááłááľ áľáŞáśá˝ áá°ááááᢠááá ááá áĽáŤááłááą ááἠáľá ááłáá áá¨á ááá (áá
á áá á áŤáą ááľáĽ áĽáá°ááá ááá˝ áá).
áá áá á áŤááľ (áá ááľáľáá) áááá áá á¨áá°ááá ááááľáá? á ááá˝ ááá¨áľ áĽáá°ááťáá, áá á áŤááľ á°ááŁáŤá ááá á¨ááá˝á áá-á áá á áŤá á ááłá¨áá¨áĽ áá á¨áá°á¨á ááááá ááἠá áá á áŤá á ááłá¨áá¨áĽ áá á áá áŠáľ ááá áááŚá˝ áá á¨á°áá°á¨á° áá, á áĽáŤááłááą ááá ááľáĽ ááľáĄáá ááá VKontakteá á ááľá°ááá áá áá. á˘áááᣠáá áĽááááľ áá¨áłá°á áá áĽá áĽááśá˝ á á - áĽááá á áľá-áá á áŤá á ááłá¨ áá¨áŚá˝ áá¸áᤠáá ááłááľ áááłáá˝ á áľááá áá°áŤáá˘
ááá˝ áĽááááľ áá¨áłá°á
á¨áááĽáá á¨á áá á¨á°áá°á áá. á¨áá¨á áááአáĽáá á áááľ ááľáĽ áááŁá, áá á ááá˝ á¨ááá¨áŽá áĽáť áá. áá áá ááá°áá, áĽáá° á ááľ á°ááĽ, á áá°áá áŞáŤá ááá°áá. ááἠá˛áŁáᣠáá áá ááážá˝á á¨áááá°á á¨áá°ááľ áĽááá˝ á˛áá áĽáť ááᣠáááľáᣠá˛áłáŠá˘ á¨ááááŤáľ ááĽááľ áĽáá´áľ áĽáá°áá°áŤ ááá ááá áá ááá˘
áĽáˇ áŤáá áááἠ5 á ááááŚá˝ 1, 2, 3, 4 áá á¨á°áá°á¨á° áĽáá°áá áľááá¨áłáá˝ - á áá
áá á¨áľ á°áá áá á áá á¨ááłá¨áť ááłá á¨á°á°á¨á áááŚá˝á á¨ááááą á ááľ áľá áĽááá˝, ááá á¨áá°ááľ áááŚá˝ ááľááá á áá¨á ááą ááľáĽ á áááá.
áá áĽááá á ááľáááá, ááááŤáąá á ááá áĽá áá¨á á á, áĽá áááŽá˝á ááááłá. áá á áŤááľ á á...
áááááľ á°ááľ
á áŁá áŤá¨á áá¸áᢠLamport Clock áááľ áĽááá áĽááá˝ áá° scalar function ááłá á áááľ ááᣠáĽáąá Lamport á°ááľ ááŁááá˘
áľáŤáá á°ááŁá á¨á°áá°á á¨áá ááĽá ááᢠáĽááá áá ááááŤáłá áá ááŁáá. á áĽáŤááłááą ááľá°áľ, áá ááŁáŞ áá¨ááŤá. á á áá áá á áá°áą á¨ááłááá ááŁáŞ áĽáŤááłááąá áááĽááľ áááŤáᢠáá°áśá˝ áá áłá°á áĽáá°áá˝á ááá˝ áá, áá ááá á¨á°ááŤáŠ áááá˝ áááŤá¸á áá˝áá. á¨áá áá áľáááą á áá ááááľ á°ááąá á¨áĽáá°áá á áááľ áááĽááľ áá áŤáľá°áŤáááᢠá áá ááłá áá áá áááá?
ááá áááľá¨á áŤá áľáá áľáĽááŁáŞáá˝ ááááľ á¨ááŹáááᥠáá°ááź á á ááľ ááľááá ááááľ ááá áá˝ááᣠáĽáąá á¨ááá˝áąá ááŤá ááááᣠáĽá ááľ á áá ááľááá ááááľ ááá áá˝ááᣠáĽáąá á¨áá áľáĽáľáĽ ááŤá ááááᢠá¨ááľáá áĽáá´áľ áááŁáľ áĽáá°áá˝á ááá˝ áá? á¨ááááŞáŤ ááἠáĽáá˛á ááááĄ- âá¨á°á°ááâᣠáĽá á¨á፠áá°áá˝á˘ áľáááą á áá°áá˝ áľáĽáľáĽ ááľáĽ áŤá á¨áá°ááá˝ áĽááááľ áĽáľáŤáá°á°á áľá¨áľ ááᥠáĽáá°áááłá á ááľ ááááľ ááľáľá áŤáá°á ᣠáŤá á¨á ááľáŠáľ á áľááá ááá¨ááá˘
á ááἠáá áŤáá á¨ááŁáŞ áá á ááá áĽáá´áľ áĽáá°áá¨áá áŤáŤááĄ
áľááá
á¨áá
áááááľ á°ááľ áĽá á¨ááááŤáľ ááĽááľ (á Lamport Clock á áŠá á¨á°áááá) ááá ááĽá¨áą áá
áááĄ- ááľá°áśá˝ A áĽá B áŤáá áĽá ááľá°áľ B á ááľá°áľ A* áá á¨á°áá°á¨á° á¨áá á¨áá¨á°áá ᨠLogicalTime of Event A ᨠáŤáá° áá. LogicalTime á¨ááľá°áľ á˘.
* á ááłááľ áá á°áá á ᨠB á ááľ á°á¨áľáˇá ááá ᣠáááľá ᣠá ᨠB á ááľ á°á¨áľáˇá - áá á á á ááá á¨á°á¨á°áąáľá á á ááá ááľá°áśá˝ á á¨áá á¨ááŤá á¨á°áá°á áááááľ ááá˘
á°ááŤáá áľááá á áá°ááᢠáá
á áĽááṠᨠLamport Clock áá ááłáśá˝ á ááą áá - á¨áá á
á°á á°á¨á°áᢠá á ááľ áá áľááá°á¨á ááľá°áśá˝áŁ áááľáᣠ(á ᨠB á ááľ áŤáá°á¨á°á°) ááá (á ᨠB á ááľ áŤáá°á¨á°áą) ááľá°áśá˝ á˝áá°-ááłáĽ á áᢠááłá á¨ááŽáááľ áľáአá¨áá áá á°á áĽáá° áá°á áá¨áá áá (ááááľ áĽááłá áłááá áźáá°á áááłá)á˘
áá
á¨áááááľ á°ááśá˝ áá á˛á°áŤ áĽááá áá áĽá
á áá á¨áááá ááĽá¨áľ áá: á á°áá á°ááŁáŠá áááá¨áłá áĽá á¨áá
á áááłáľ ááááŁáľ áĽááá
ááľá°áśá˝ áĽáá áá¸á áĽáá áá°ááľáá. ááááŤáąá á áá°áá ááááľ áĽáááľ ááᥠLogicalTime A ᨠLogicalTime B áŤáá° á¨ááᣠB ᨠA á ááľ áá¨á°áľ á áá˝ááᢠáĽá á¨á áá á¨áá, á¨á፠ááááŁáľ.
á¨áŹáá°á á°ááľ
ᨠLamport á°ááľ ááááŤáłá áĽáľááľ á¨áŹáá°á á°ááľ áá. áĽáá
áŤáá áĽáŤááłááą ááľááá ááááľ á¨áŤáą á¨áá á°ááľ áľááá áááŤáŤá, áĽá áĽáá° áŹáá°á áá°áááá.
á áá
áááł, á¨áŹáá°á áᎠá˘áá´ááľ ááááĽááľ á°á áŤá áĽáá°áá áłáŤáá
, áĽá á¨áŹáá°áŠ á¨ááááŞáŤ á áá ááá°áá˝ (áĽáŤááłááą áĽááá
á áááá˝) áá. áĽá á áá áá¨ááŤááĄ- á˛á˝á á¨âáááĽâ áᎠáá¨á á áá áá¨ááŤá - 1ᣠ2ᣠ3áĄ
á¨áŹáá°á á°ááľ ááá á¨á°áťá áá? ááááŤáąá á¨áľááš ááľá°áśá˝ á á ááľ áá áĽáá°áá áĽá á á°ááŤáŠ á áááá˝ áá á˛á¨á°áą áĽáá˛áŤáá áŤáľá˝áááłá. áá
áĽáá° MongoDB áá á¨áťáá˛áá áľáááľ á áŁá á áľááá ááᢠá˘áááᣠáá
á á ááá¨áĽáááᣠááá áĽááłá á áľá°áá ááá á˘áááᣠáĽá á áŁá áĽáŠ áá°áŤáᣠáĽá ááááŁáľ ááľáááá...
10 áźáśá˝ áŤáá, 10 áááá˝á ááľá°ááá á áá˝áá, ááá áĽááłá á¨ááá ááá áá ááá áĽáááŁá - áááŤá á ááá á¨áá áá á¨áŹáá°á áá á áĽá áĽáĽá áŤáá° áááá. áľááá ááŁá˝áá áĽá áĽááłá˝áá áĽáŤááá áá á á áŤááľ áľá°á áá° áá ááľáá˘
Spanner TrueTime. á¨á áśáá á°ááľ
áľá áľááá áłáŞá áááŤá á ááŠáᢠáá áĽáŠ ááá ááᣠá¨XNUMXáá ááá ááá áááŽáĄ á¨á áśáá á°ááśá˝áŁ á¨ááá¤áľ áááłá°áá˘
ááłáĄ áááľá áá? "áľááá" á á áἠáá áá°áá˝ áĽááłá á¨á°áá (SQL á á áááá) á¨Google áľáááľ ááᢠáĽá፠áŤáá áĽáŤááłááą ááĽááľ á¨á°áá°á á¨áá áá á°á á ááᢠáá á¨á°ááłá°á áľááá * áĽáŤááłááą ááľá°áľ á¨á°áá°á áá ááá°áĽ áá˝áá - á áśáá á°ááśá˝ á¨áĽá á áá á áá¸á, á¨á፠á áá á¨á°áᨠáá "ááá¨á°áľ" ááľáľá á°á°áĽáśáłá.
áľááá
, á ááá áá° áłáłá¤á á ááťá áĽá áá°áá°á áá á áá áŁá á
, á¨ááá
áą á°á¨áłáłáááľ á áŤáľ-á°á áá¨áááŁá. á ááá
á°á¨á ááłá°áĽ á¨áá˝á á áŁá á ááŤáŤá á¨ááĽááľ áá´á á áá¸á - ááŤá ááĽááľ ááá˘
* áá ᨠLampart á°ááśá˝ ááá á˝áá áá - á á°á¨ááá áľáááśá˝ áá áá˝á á áááłá°áá. áááŤáŠ áá˝ááᤠá á¤áá˛á áĽááłá á˘ááᣠá ááá á á°áἠá áá°áŠáᢠ"áľááá" á¨á áśáá á°ááľ á áá áĽá áááłá°á áááᎠá°á¨ááľ áááľááá˘
ááá á ááá¨áĽáá? á°á ááááťá˝á á áĽáŽ á¨á°á°áŤ á¨á áśáá á°ááľ á áá¸á áĽáá á ááľáĽáᢠá˛áłáŠ á áĽáŤááłááą áááśá ááľáĽ á°áááĽá°á á ááľ ááááľ áĽá á á áŁá áĽáŠ á¨ááá¤áľ áááłá°á áááŤá - á¨á፠á á ... á áá áá ááᥠá¨ááá Amazon, Base Stations - áá ááŤáŞáá˝ ... áľááá ááá˝ á°ááśá˝á áĽáá áááá. .
áľáĽáá á°ááľ
á¨ááááŤáľ ááĽááľá á ááŤá¨áááĽá áľ áá á MongoDB ááľáĽ á¨áá ááá áá ááᢠáĽáá´áľ áá áľá á á¨áááľ? á˛áá scalar áĽá´áľ ááᣠáá áááľ á áŤááľ á ááľá˘
- á¨ááááŞáŤá á¨áŠáááľ ááá ("á¨áŽáááŠá°á á áá ááááŞáŤ" á¨ááá¨á áľ áá ááᎠáľááľ á´áŽááśá˝ á áááá)á˘
- ááá°áá á¨á°áá°á áá᪠ááᣠáĽáá˛áá áŁá 32-á˘áľ áŤáá°áá¨á á˘ááľá˘
፠áĽáť ááᣠá áĽáááąá˘ áá á ááŤá¨áĽ á á: ááá á°á áŤáá ááá áá áá á¨á°ááľ áá áááłá°áá; ááá á á°áá ᨠááĽá áá ááá á¨á°ááą áá áááłá°áá áĽá ááá áá áá á¨á áá ááá áŤáá° áľááá áá ᣠáĽá áááŞá á á°ááłáłá áá á¨á°á¨á°áąáľá ááľá°áśá˝ áááá¨áľ áŤáľá˝áááłáá˘
ááááľáá áá áMongoDB á áľááá á¨ááá? ááááŤáąá á á°áá°á áá ááľáĽ á ááłááľ ááááľ á¨áá áŁá á፠ááἠá¤áśá˝á áĽáá˛á°áŠ ááá áľáááłá, áááľá, ááľá°áą á áá á áá áá. á ááłááľ ááľá°áśá˝ á áľááá á˛áá áá á áľááá áá; ááłáłá¤áᣠáááśá˝ á áá¨á ááą ááľáĽ á á°áá°á á¨áá ááŠááľ ááľáĽ á¨á°á¨á°áą áááŚá˝ áá¸áá˘
á áŁá á áľááá á¨áááá ááááŤáľ ááĽááľá áĽáť áĽáááŤá˝ááá (áĽáŁáá, áááá á ááááŠ)! áá áá áŤá°á¨ááá á MongoDB OpLog ááľáĽ á¨á°á°áŤáᣠá¨á°á ááá áá¨á áá áľááááľá ááᢠOpLog á áá¨á ááą ááľáĽ áá ááá áááŚá˝á á¨ááŤáŤáľáľ á¨ááἠááá á ááᥠá ááááŞáŤ áá° áŚááá áááłáᣠá¨ááŤá á á°á°áááá áľ áá ááá á¸áá°á´ á áááá áľ áá áá¨ááťá áá áĽáŤáą áá°áá áŤáá˘
ááá ááááŤáľ áá áá áᢠá ááá á˘áá á¨ááἠááł ááááááľ á°ááŁáŤá ááľáááśá˝á á á, áá á áááľ ááá ááá á áá áľ - áľáá˝ áŽáľ, á á°áťá áá á áĽááľ á¨á°á ááš áááŽá˝ áĽáá°áá ááá áĽá ááá¨á á ááŁá¸á. á¨áĽá áŚáááá˝ á áľáĽáá á°ááśá˝ áá ááá¸á áĽá á¨áľáśáá áĽáá áľáááááá áá፠áĽááľáá°áá á áľá˝áááᢠáĽáą á áľááá á°á¨ááá áĽá á áá ááááľ á ááááŞáŤá ááŽáśáłáá áá á á áľááľ á°áŤá˘ á áŁá á áŞá áá á!
á¨á°ááľ áááłá°á
á áłáááłá á˝ááá˝ ááľáĽ á¨á°áááš á ááŤáł á¨áááłá°á áá´áá˝ á á. áĽá áľá áááłá°á áĽáŤááŤá áŤáááľ áááľ á¨á°ááŤáŠ áťááśá˝ á˛áá¨á ááᢠá ááľ á¨á°áŁá áľáĽáľáĽ áŤá, ááá á áááľ áááłá°á á áŤáľáááá: áá "áá á ááł" áá; ááá áááŚá˝ á¨áááľáá áľ OpLog á ááᢠááá áá áááľ á¨á°ááŤáŠ áťááśá˝ áŤáá, á¨áá áááłá°á áĽáá á áľááá áá. á¨áŹáá°á á°ááą á¨á áá á¨á¨áłá áĽáá áá! áĽá áá á¨áááá˘
ááá°áá á°áľáá áá - áá
"á¨áἠááľ" áá. á áĽáŤááłááą á¨áá á ááľ á¨áá¨á°áą á ááłááľ ááááśá˝á ááááἠááťáá. ááá áá á¨áἠááśá˝ á áŁá áááá áá¸áᣠáá°áá áá˝á áááá¨áľ á áá˝ááá˘
áĽááá°á áá á áĽááἠá áľá°áá ááá ááᢠáá ᣠáĽáá°áá ᣠáá ááááŁáľ á¨áá°ááą áá⌠ááá áĽááłá ááľááá á á áľááľ ááľáĽ áá¨ááá áá˝áá ᣠááľááá ááŁá âá áááâ áá áááłá°á á áᢠáá áááá á°á á ááááá˘
áᏠáááľ ááá áááĽááśá˝ ááá á˛á¨áአááᢠáá á¨ááá ááá á áááľ ááᢠá ááśá˝áŁ á ážááᣠá áłáł ááľááá ááááľ áŤáá°á ááŤá¨á áŤáá áĽáŤááłááą áááĽááľáŁ áMongoDB ááá ááá á ááľ ááááľ á¤ááááľ ááᣠá¨áá°áŤ á°ááľá á¨áŤá á¨ááἠááł á áŤá ááᢠá á¨áŚáłá á¨á°áłáá áá áľááá á áá¸á, áá°áááá. 64 á˘áľáľ? áá ááá áłá, áá ááťáá.
áĽáá´áľ áá ááá á á ááľááľ á¨áá°áŤá?
áĽáá áľáá˝ ááá áááľá¨á á ááľ á¨á°áŁá áľáĽáľáĽ áĽá¨á°ááá¨áľáŠ ááᢠá¨ááááŞáŤ á°á¨á áĽá ááá°á á°á¨á á á. ááá°á á°á¨á ááŁááľá áá áŤá áĽá áááá á¨áá áá áá á áá á áááłá°ááá˘
á¨á°áá°á á¨áá áĽá´áľ áá áá° "áá" ááľááŁáľ áá¨á°áłáᢠáá ááľááŁáą á¨áá°áá á¨áá á¨ááľáĽ áá áŤáá á 11 áá¨ááŤáᢠááá á¨á°ááľ áĽá´áśášá áááľáťá áĽá á¨á°ááľ áĽá´áśáš á¨á áá á¨áá á¨á°ááą áá áááłá°ááᢠáá á áá áĽáá˛á°áŤá áŤáľá˝áááłá.
áá¨áťáá áŤá°á¨á á áá á ááľ á áľááá áá áá¨á°áłá. á°ááą á "MongoDB" ááľáĽ áá áĽá áá° "Oplog" áááťá áĽáť áá¨ááŤá. áá á¨áľáááąá áááł á¨áááá ááľá°áľ áá. á ááá á ááá á ááá ááŁáĽáá˝ ááľáĽ á ááľ ááľá°áľ áááĽááľ ááľááá ááááľ áá á˛ááł á°á°áá ááá áŤáᥠáááááą á°ááˇáᣠáá áááľ áľáááą áááłáá áááŻá áááľ ááá˘
áá á¨ááá áľ ááááŤáľ á áĽááľ áá áľ áá áááĽááľ áĽáá´áľ áĽáá°áá°á¨áá áá á áá ááá áľáááá ááᢠá "áŚááá" ááľáĽ áŤáá°áá¸áŁá¨á, á ááá ááአáá°á¨áá áĽáá°ááá˝á á áĽááá áááľ áĽááááá, áĽá á¨áľáááą áááł ááἠá "áŚááá" ááľáĽ áááŁáľ áĽáť áá. áá áááá ááá áŤááááá: á ááłáŤá ááá áŤá°áááá, áĽá á á ááľ á á áľáĽáľáĽ ááľáĽ áĽá ááá˝ áĽá á áá áááŽá˝á ááá°áŤááľ áŤáľá˝ááá.
áá°á á˛á áá° âáŚáááâ á¨á°áťáá áĽá´áľ á°áááˇá - âáŚáááâ ááľááá áá áá áĽá´áľ áĽáá°áŤá áĽááááá ᣠáĽá ááá 12 ááᢠá áá ᣠáĽáá á ᣠááŁáĽ á¨áá ááľááá ááááľ (ááá°á á°á¨á) ááááŤá áĽá á¨ClusterTime á áá áŤáľá°áááá áááááą. áĽáą áĽáá˛á ááá: "á˘áŤáᾠᨠ12 á áá ááá á á áľáŤ áááľ áá á¨á°á¨á°á°áá áá áĽááááá" (á¨áá áŤááá ááľá áááá¨áą).
áá Causal a consistent (CAT) á¨ááŁáá ááᢠá ááľá ááłáĽ ááľáĽ áá á¨á°áá°á á¨áá ááŤá áá ᣠáĽáąá á áŤáą ááĽááľ áŤáá á˝áá°-ááłáĽ á áᢠá áá ááłá áá á áá 12 á¨áłá¨á á¨áľáááą áááł áá áá áááľ áĽáá˝áááá˘
á áá áĽáá ááá ááá á¨áá, ááááŤáąá áá á áááľ á¨ááá áá áŤááá ááἠáááľáá ááá°á á°á¨áá á ááŤáľáááá áľ áá áááłáá áŤáľááľáá. áĽáą áá áĽáá ... áĽá á áá ááᥠá°ááˇá - áĽááá á áĽá´áśá˝ áááś ááááłáá˘
áá
áá áĽáá´áľ áĽáá°áá°áŤ ááá áá. áááľ ááťááá˘
"á á ááĄ" áááľ áá áááľ áá? áá áá áĽáá´áľ áĽáá°áá°áŤ á ááĽáŚ á¨á°á¨áł á°á áĽááłá áĽááľáĽá˘ áááľá°ááłáá á á°á¨á°á° ááĽá á¨ááľáĽ ááá á°ááąá áĽáá°ááŤááá á°ááááĽáŠ áĽá á¨áááĽáá áá¤áľ á á ááľ áá¨ááŤáᢠáá á°ááŁá 20 ááľááŽá˝á áááľáłá. áá á°á áľááá áŁá 64-á˘áľ ááĽá áŤáľá°áááá áĽáá áᣠá ááľ á˛áááľá˘
ááá "á ááľ á˛áááľ"? ááááŤáąá á¨ááľáĽ á°ááą á áá áĽá´áľ ááľáĽ áľááá°áŤ (á áĽááἠáá ááá á¨áá˝áá áľáá áĽá á áá áŤáá áá á¨á áá áá) ᣠá¨á፠á âáŚáááâ ááľáĽ áá¤áľ áá¨á°áłá ᣠáĽá á°ááą á áá ááá áá¨ááŤá - áĽá ááľáááá áááŤáᢠá¨áá°á áĽá´áľ ááá (á ááá ááá áááá˝ á á ᣠáá á¨áááąá áľ áŚáł á¨áá) ᣠáŤáá°áá°áą á˘ááśá˝)á˘
á¨áá á áá áľáááą áááááá ááá áá˝á á¨ááá°á¨áľá áľ áĽáá°ááá ááá˝ áá. ááááľ áĽá áá¸áł á¨áá˝áá áĽáť áá - áĽá á¨áĽá áĽáŤ. áá á°ááááľáĄ-
á á°á¨ááŞá ᣠáá
á áá áŚáł á¨á°á°áá ᣠá¨á፠ááá áľáĽáľáĽ á ááá áááľááᢠááá á°á á ááĽááľ áĽá á ááá ááŤá°áŤá
á¨áá˝á áášá á°ááŁáááľ á¨ááá áááł! áľááá
, áá
á áá á áŁá á áľááá á¨áááľ áĽáá° á ááą á áľááá áá á. áĽáá´áľ áá¨áá¨á ááťáá?
á¨áĽá ááááľ áááľá°ááłááá ááá¨á ááá˘
á áááĽááą ááľáĽ á¨áá°áááá á áá ááááľ áá (á¨á°ááŤáá á˝áá á ááľ)ᢠááá áá ááá áááá¨áľ áááá (á°ááŤá á˝áá)áĄ-
áááá á¨áááá¨á á áá¨á ááą ááľáĽ á á°á¨áḠáááᣠá°á
áááą á á°á á á ááŞááľá ááľáĽ ááᣠáŤáą á¨ááᨠáĽá á¨ááá áá (á°á áááá˝ áľááą ááá ááá á áŤáŠá)ᢠáá˝ ááá áŤáᣠáĽá áĽáŤááłááą áááááľ á˛áá á ááááá áĽá á˛á°áá°á áá¨áááŁáá˘
ááááŁáľ á á°áá˝ á áĽáᎠááľáĽ á¨áááłá áĽáŤá "áá
áá áŤá
á áááŽá˝á ááááłá?" á á°áá áá
áŁá
᪠á ááááá áľ áá á ááĽááľ ááľáŤáľ áĽááłáá áľ áááŹááłáá.
á áá ááłá áá á¨ááááŤáľ ááĽááľ áá áá áá áááľ áá? áá á¨ClusterTime á áá áŤááá áááŞáŤ áááłá¨áľ ááᢠáŤááá ᣠá ááá áĽá´áśá˝á áŤáááᢠá¨áľáŞáľ 3.6 ááᎠáááľ ááá áá°áŤáá˘
ááááá˝á á¨ááŤááἠáľáááľ áľá°á á¨ááľá, á¨áĽáá á ááŤá¨áŚá˝ áĽá ááľáááśá˝ á¨ááŤáá áŁá ᪠á ááá áľ áá áĽááłá áľáááąá ááááłá. áłá˛áŤ áá á á°á¨áá?
á ááĽááľ áŤáľáááľ!
á áŁá ááá ááá áá, áá áá´á á áľá°áłá˝ áá - áĽá áĽáŤáááá, ááááŁáľ á ááľ á°á ááááľ ááá¨áá.
á¨á°áá¨ááá ááἠá¨ááŤá¨áá˝ áá˝ á ááᢠááá áá¨ááá˝ á áá¸ááŤá ááľáĽ áŤááá. áá¸ááŤá á¨á°áá°ááá áá á ááááá, áá ááá. á¨á°áá°á áĽá´áľ á˛áᣠáááá áĽááááŤáááŁá¨áá¨á¨áťáášá 16 á˘áľ áĽááľáááłáá áĽá áá
á áĽá´áľ áĽááááááá˘
áĽáá°áá
á áááľ ááá á ááá á áľáááąá (á á áááŤáááľ) 65 áşá
áá áĽáááĽááá. á áŁá áĽáŠ áá°áŤáᥠáá¨áŤáá˝á á ááá°ááá áľ ááᣠá°á¨áłáłá ááťáťáŤ áŁá°á¨ááá áľ áá á áĽáááą á 10 áşá
áá áááˇáᢠáĽááľ á ááľ á áááŠá áľ áá áá
áĽáá°ááá ፠ááá˝ áá. áá á á áĽááááš á°ááŁáŤá ááłáŽá˝ áá áá°áŤá. á¨áŹáá
ááá á¨áááá áá áĽáá¨áľ á¨á°á
áááľ á˝ááŠá ááľáˇá.
áá á°ááá?
á¨áá á¨á°áááá¸á áľáá ááśá˝áĄ-
- áĽá á áľá°áłá˝ áááŽá˝ áľááá ááłááśá˝á, áłáŞáŽá˝á, á˝ááá˝á ááá ἠá ááĽá. á ááłááľ áŁá
᪠áá áľáá°áŤ (á á°áá á ááᣠááĽááśá˝á áľáá°áŤáŁ ááá°.) ááá ἠáĽá áá¨áłáľ á ááĽáᢠáá áááľáłá ááá áá á¨áľ áĽááłáá ááá˝ áľáááŤá°áá á áĽáááą á áŁá á áá áá. ááá á á˛áľ ááá áŤááŁá á áááľáá - áĽááášá áĽáť ááľá°áá.
á á á ááá, á¨á áŤáłáá áŽááá¨ááľ á˛áá á á áľá°áłá°áĽ ááľáĽ á¨á°áá°á ááŠááľ á á (á˛ááá, áááłá) - ááá á°á á á á˛áľ ááłáŚá˝ áá áŤá°áŠáŤá. áľá á áááŞáá áá á á˛áľ ááá á á? áĽáá ááá á¨á°áᨠá á˛áľ ááá á¨áá. á á˛áą ááá á áá áŤááľá á ááŤá¨áŚá˝ á á ááľ áá á ááááľ áá ááᢠáľááá , á¨ááááŞáŤá ááá á¨áááááľ ááᎠá ááááášá ááá ἠáá.
- á áááľ ááľáĽ, ááľáááśáš áá ááá á¨á°ááŤáŠ áá¸á. áĽááá á áá áĽáááťá˝á á á áĽáľáľáŤááľ áŤááŠá ááľáĽ âáááâ á¨áá¨á ááśá˝ áĽááłáľáá áá˝áᣠááá áá á¨áá°á á áĽá á¨áĽááá°á áááŽá˝ áá á á°ááááľáŁ á áááá¨áľ áĽá á áľá á°áľ ááťáťá áá á˝áá áŤááŁá¸á áááŽá˝ áĽááłá áĽááá á ááá˘
- á¨áá¨á¨áťá ááá á¨á°ááŤáŠ ááłáŚá˝á áááá¨áľ áĽá á ááŤáł áá ááá á¨á°ááŤáŠ ááŁáĽáá˝á áá° á ááľ á ááŤá¨áĽ á á ááľ áá ááŁáá áá á¨áĽáᢠá¨ááá¨á ááłáĄ áááłá á¨áááśáľ ááŽáśáŽáá á¨áááá¨á°á á ááá˝ á¨áᣠá˛áá áá
á á¨áŁááááłáá áááá ááľááśá˝ á áááľ ááŽáśáŽá ááľáĽ áá ᣠááŁááááłáá - á¨áááľ ááŽáśáŽá áá ... á á á ááá ᣠáĽá á áľááá á¨ááááá¨á°á ááᢠá ááľá¨á á á áá˘
áĽáá ááá á á˛áľ ááá á¨áá! áá áááá á ááľ áá áĽáá°ááááá ... áá áĽáá° áŚááŞá¨á á°áᣠá¨ááἠá áááááľ áá´ áľááá á¨áá˝ áá á¨áááľ áá á°ááłáłá áá, ááááŤáąá áĽáááá, ááŽáá áĽá áąáŁáá˝ ááľááá á°ááá°á ... áľá á°ááłáłá áłáŞá áá.
á áá
áĽá¨ááłááᢠá áá°áááá!
áĽáŤááá˝
á¨á áľááŽá˝ á¨áá¨á áĽáŤá (á¨áá á áá á)áĄ- - ááŤáá ááŞáááą á áá°áááá! áľá áá á¨áááá¨á áááľ á áľá°áłá˝ ááᢠááŹá áĽá¨á°á ááá ááᢠááá á°á á¨áŤáą áá á áá, ááá á¨á áŤáŁá˘áŤá¸áá áá áŤááá. áĽá áĽáá°á°á¨áłááľáŁ ášáá á áá - á¨á á˝á¨ááŤáŞáá˝ áá áĽá á°áá áá˝ ááአáá˝ááᣠáá áá -áĽá áľ á ááŞáá˝á áĽáá˛áᣠáááľáŤážá˝á... áĽá á áľáááľ ááŠááľ áŤáá áá áľáááą áá áá ááááłáᥠá ááľ á°á á á°áá áá°ááľáŁ á ááľ á°á á á°áá á áá? á¨áľ áĽáá¨áá°ááá?
á¤áá˛áĄ - á áŁá áĽáŠ áĽáŤá! áľá áťááśá˝ áááŤáľ ááá áá áᢠáĽáŤááá á áľááá á¨á°á¨áłááľ, á¨áá¨á°áá áááł á áá: áťááľ 1 áĽá á¸áá°á´ 2 á á, á¨áĽááá
áááľ ááŁáá˝ ááľáĽ ááá ἠáá¨á°áłá - ááŠááľ á áá¸á, áĽááľ á áĽááłá¸á á ááááá, ááááŤáąá á¨ááŤáááľ áá á¨á°áᨠáá. á á°ááá á áŚáááá˝ ááľáĽ á¨áááŠá áľ áá.
áĽáá áá áťááľ 1 á ááľ áááŽá ááááŚá˝á á áŤ, áťááľ 2 ááá ááá á áá°á¨áá, áĽá áĽáŤáá áá° áááľ áááĽáŤáŽá˝ ááŁ. áĽá á¨ááááŞáŤá á¨áááľá°á áá á¨á ááľ áááŽá á áá á ááᢠá áĽáá°áá
ááááľ áááł, áĽáá°ááá˝áŠáľ, shard 2 á ááŤá˝ ááá˝ á áá°áĽá.
AT: - áĽáá´áľ áĽáá°áááłá°á ááá áĽá á ááľ ááááŤáłá áá ááá¨áĽ ááá áá á?
á¤áá˛áĄ - ááááłá°á á áŁá áááᢠáťááľ á¨ClusterTime á áá áá° áĽáą á˛áᣠáĽá á "áŚááá" ááľáĽ áá áłáŤáá á˛áá ááá á°ááŁáááľ á ááááᢠáŤá áááľ áááá á áĽááš áá°áá áĽá´áľ áŤááłá. áá áááľ á¨áá áĽáŤá áá á¨ááááą ááľá°áśá˝ á¨ááľáᢠáĽáą áá áá ááľá°áľ á°á á°áŤá˝ á áá ááááľ áá ᨠáĽá á áá á ááááŤáľ á¨ááááŤáľ ááĽááľ áŤáá ááááá˘
AT: - á¨áá á áá á ááľááአááľáĽ á¨áá áŚáł á¨á á ááá˝ ááľá°áśá˝ áá° áĽáą á˘ááĄáľ?
á¤áá˛áĄ - áťááľ á ááľ áá á ááł áľááá áĽáá°áá áĽááłááᥠá ááŤáľá˝á ááááľ á°ááá áˇá. áĽáą á áľááľá á°áááá§á á¨áá, á¨ááŤá á áááĄá, ááá áá á áá áááŁá. á¨áá ááá á ááľ áŚáł áá á°áŁáĽá ᣠá¨á፠áĽáą á áááá ᣠáĽá áĽááá ááľá°áśá˝ áá°ááłá - áĽá á¨ááááŤáą ááĽááľ á°á°áĽáŻáᢠáĽáą áłáá˝á á˛áá, ááá ááĽáá áááŁáľ á ááŁá¸á (áá áĽáá¸áá).
AT: - á°ááá á á°ááá¨á° áĽá áĽáŤááá˝ á áá. á¨ááááŤáľ ááĽááľ áá¨ááá áŤáá áľ á¨á°áá°á á¨áľáááľ áá¨á áĽááłá áŤáľáŁáᢠá¨ááŹááťá˝á á ááą á˘á á áá áááá? áĽáá 10ááᣠ11áá... 12áá á áᣠáĽá ááá á°á áĽáááľ áĽáá˛áá áĽá¨á á á ááᢠáĽá á áľáááľ ááŞáá˝á áá°, ááá ááá ááľá¨á á áá˝áá. á¨áá°áá አá ááľ á¨áá¨áá¸á á¨áá°áá á¨áá¨á ááááľ á á? á¨áľááá áááľ á˛á á áá ááłá ááľááľ áá¨á°áłá? á¨áá
á á áá á ááłááľ á¨ááľá áááľ áĽááłá á¨áťáá, á¨ááŤá á áá ááááľ á¨áĽáą áááá á ááĽá? áá á áááááľá!
á¤áá˛áĄ - áĽáá˛áá á áŁá áĽáŠ áĽáŤá! áá áĽá¨á°áŤá áá? MongoDB á¨ááá á° ááŁá¤ á
áá° ááłáĽ á ááᣠááá á° ááŁá¤ áŤááŁáᢠáááĽááľ á á¨áľáá áááłáá˝ áá á áá˝áá? ááá ááá á° ááŁá¤ áŤááá ááá á¨á°áá á ááá á° ááŁá¤ áŤááá (á ááłááľ á áááľ ááťáťáá˝á ááŁá á áá˝ááá˘
á¨ááááŤáľ ááĽááľá á á°ááá¨á° áľáá
á¨áá¨áŤ áá°á á°áŤááˇáᣠáá¤áąá á˛áá áĽá á˛áá ἠááá á° ááŁá¤ áŤááá á¨ááááŤáľ ááĽááľ áĽá°áśá˝ áá¨á°áłáᢠá áľááá á¨ááľááá¨á!
á¨á áááᥠá¨ááááŤáľ ááĽááľ á˛á áá á˘áŤááľ áŽá¨á ááŁáĽ áá ááᢠá áá ááłá áá ááá ááá á áá áá, ááá áĽááłá á¨ááá á° ááŁá¤á áááἠá˘á áá ... áá á¨áŚááśáśááľ áááł áá: á°á ááá ááἠáĽáá˛á á áŤáááá, ááá á° ááŁá¤á áá áá áŤáľááááá. á¨ááááŤáľ ááĽááľ áááááľ ááľáľá á áá°áĽá. áááááľ á¨áá¨ááá á á ááŁááľ áĽá á¨ááŁááľ áá á á°áŤáŤá áá˝áá˝ ááá˘
AT: - ááĽá áťáá˛áá á¨ááŤá¨ááá ááłá áľáááĽá (ááł áłááá áŁá፠á á á°á á°á¨á°á) á áŤáą áá˝á á áŠáááľ áá ááá á "ááłá" áá áá ááá°á¨áłá; áááááŞáŤ áá ááá á á¨ááá áááłá°áá?
á¤áá˛áĄ - á áá ááá˝ á á°áááá. áťááľ (áááľá á ááľá ááááá) - áá áá á áá°á á°á¨á áĽá፠á áᢠáĽá áťááś "ááľá°á" ááá¨á áá˝áá áĽá á ááá˝ ááአáá˝áá. ááá áá áťááą áááá áá áłáľá áá°ááá, ááááŤáąá á ááłááľ ááŤáá˝á áá°áá á áá áľ (áťááą á¨ááááŞáŤ á°á¨á á áá).
AT: - áľááá ááá ááá á "ááłá" áá áĽáť á¨á°á፠áá? ááľá°á áá áá áá áĽá á áá áááá?
á¤áá˛áĄ - á á. á ááłááŤá áááł áĽáá˛á áááľ áá˝áá-áá° "ááľá°á" ááľáĽ, áá° "áŚááá" ááľáĽ á˛áᣠá°ááą áĽá¨á á á áá.
AT: - á¨ááŤáááá á°áá á á áá áĽá áľá ááá ááá ááá ááá á áŤáľááááá?
á¤áá˛áĄ - ááá ááá ááá á áŤáľáááááľá! á á°áá áá áá áĽáá´áľ áĽáá°áá°áŤ á¨á°ááááá: á°áá áá á¨ááááŤáľ ááĽááľ áá áá á˛ááá, ááá áá ááááľ áŤáľááááá. á áá ááá ááá á á: á ááá-ááá ááľáĽ ááĽááśá˝, áĽá ááĽáśá˝á á°ááľá¨á áŤáá ... á ááľ ááá áá á¨á°áá áá áá á¨áá¨á°áą ááááŤáłá ááľá°áśá˝á ááá áá.
áá áá ááá áá á¨á¨áá° áĽá áĽá፠á¨ááááŤáľ ááĽááľ áĽáá°áááá á¨á°ááᨠ(ááá ááá á ááŁáŞááľ á¨ááááŤáľ ááĽááľá á¨áá°áá á¨áá) ááá ááá á áŤáľ-á°á áá°áŤáᢠá á˝á¨ááŤáŞá áá áá áá áŤáľáłááłá áĽá á á˛áľ áááĽááľ á˛á°áá°á áá¨ááŤá. áááĄá á¨ááá°á á áááá ááłáá áá ááá˝ áĽáá°á°ááá° áŤáľáłááłáᢠá¨áááĽáá áĽáŤá á¨áááľá°á á áá ("á¨áá á¨áá áἠáá") ááááá˘
á°áá áá ááá ááá á áľááá ááá á áŤáľááááá! áá ááĽáą áá á áá ááá˝ áŤááá áá. á°áá˝ áĽááá á áŁá áŞáŤáľ á¨áá áá á¨áá áá ááľá¨á áá˝áá? á áá°áᣠááá°á á°á¨áá á á°á á ááá ἠáľá˝ááá ᥠáá° á áá°á á°á¨á ááťá áĽá á¨ááŚááŤááŤá á¨á°á°ááá ááá°á á°á¨ááá˝ ááá ἠáĽá áĽáá°áá°áŤ áĽááá á ááᢠá á°ááłáłá áá á ááááŞáŤ á°á¨á á¨á°áááᥠááá-áááá˝ áá° ááá°á á°á¨á áá°ááá áá˝áá, áááľá á ááľ ááá áá áłááá áĽá áá áá áá˝áá.
AT: - á á˛áľ á¨áŽáááŠáľ áłáááľ ááĽááĽá - CRDT (á¨áááľ-ááť á¨á°áŁá á¨ááἠá áááśá˝) á¨ááἠá áááśá˝ - á¨áá¨á¨áťá ááĽááľ áááľ áá á áĽáĽá á¨á°áŤáŤá ááᢠáĽááá á á áááľ áá¨ááá˝ á áá¨á ááą ááľáĽ áááááľ á áľá áá áĽá áľááą áá áááľ áá˝áá?
á¤áá˛áĄ - áĽáŠ áĽáŤá! CRDT áááśá˝á áááá áľááá áá°áŁáᥠá áááá˛á˘áŁ áá á ááľá°áá˘
AT: - á¨áśááľ á ááľ áĽáŤá á áá. á áááą ááá á¨áŁááááłáá ááľááľ á˛á¨á°áľ áĽá á á°á á áá ááŞááľá ááľáĽ áŤá áá á°áá˝ áá° ááŽáśáŽá áááŁáľ á˛ááአáĽáá°áá á áááľ á¨ááąáłá áááłáá˝ á á áአá áá ááááľ á¨áĽá áĽáŤ ááŹáá˝á áááŤá?
á¤áá˛áĄ - á ááŞááľá ááľáĽ áŤá áá á°áá˝ áĽáá° áľáŽáá áá¨áľ áá¸á! á ááŞááľá ááľáĽ áŤá áá á°áá˝ áĽá ááĽá áááŽá˝á ááŤá°áá áá˝ááá˘
AT: â á áááľ á á áááአááľáĽ á¨áááá˝á ááŤá á áŤááľ á¨ááłáľáááĽá áľ áĽá áááľá°áá áááá áá á¨ááľáááľá áľ ááłáł áááŁáą ááá áá... á áĽá ááááá áá áááľáłáᢠáľá á°áľá˘ á áá á áŠá, áá á áľá°áłá˝ áá: á áĽááá°á á áááľ, á á°ááŁá, á á°ááĽáŽ á°ááłáłá ááľáŁá áĽááśá˝ á˛á¨á°áą áááłáá˝ á á?
á¤áá˛áĄ - á áĽááá°á á áááľ ááľáĽ á¨á°á áááľ áĽá°áśá˝ áĽááĽáá áľáááááĽáá, áĽááą áĽáá°áá¨á°áą áááá á áá˝áá. áľá áááľ áááľáá á¨á°ááááá áá áĽáá°áá áĽááľáŁáá-á°á áááľ á¨áá áŠáľá áááśá˝ á¨ááŤááἠááŞááľá á áá - áá ááἠᣠááľááł áá ᢠáĽá á ááááľá ááľáĽ á¨ááááľá ááľá¨á áá˝áá. á¨áá¨áľ á˝ááł áŤáá¸á á°á áááá˝ áĽááłá ááá˝ áá, áĽá áááŤáá áááĽááľ á˝ááł áŤáá¸á á°á áááá˝ á á.
á ááĽáśáš áá á áááľá¨áľ á°á áááá˝ á¨ááŤá°ááąáľ ááłáľ á áἠááá áá˝áá ááá ááá ááá áá˝áá. áá ááĽáľ áŤáá á°á áá áááááá ááá ááľá¨á áĽáá°áá˝á ááá˝ ááᢠá¨á°áá°á ááĽáľ áŤáá á°á áá áŤáá° ááłáľ ááŤá°ááľ áá˝ááᢠá á°ááá áľáááąá ááá¨áľ á áá˝áá.
AT: - á á°á á áá ááŞááľá ááľáĽ, á ááľ á°á á ááááŠá áá á áá áááĽááľ áá áááአáŤáá°á á á ááŽáśáŽáá˝á áááá á áááŻá, áĽá áĽáľáá á¨ááá, á á ááá áááľá°á ... áŤá "áĽáŠ" á áááˇá?
á¤áá˛áĄ "áľááá á áááľ ááá á°ááź á ááá á" á áá ááááľ á ááááá áá¨ááá ááťáá ááľáĽá á áá°ááᢠá ááľáĽ á áááłáŤáľáŁ á¨ááŽáśáŽá áááᣠá áááĽááą ááľáĽ áĽáá°áá áŤá ááá ááá á¨áá˝á áľááŁá áŤáá á°á áá ááá... áĽáá°áá á¨áááťá ááᣠááááŤáąá á ááá áá¨áááŁáᢠáá áá áá¨áá፠áááááá á°á áááá˝ áá°áá¨á ááťáá - ፠á˝ááŤá¸á áá; áĽááą á áááľ á áááá ááľááłáá áĽáŤáłá¸á á áá°á áĽá áááá áĽá፠ááľáĽ ááááľ áá˝áá ᣠáĽáąá áá¨ááŁá ... á á á ááá áá áĽáá° áĽáá áŁáá፠ááá ᾠᣠááĽá°á áŤááĄáľ!
AT: â ááŞáááą áĽááá°ááááᢠá°ááá (Yandex). á ááá ááľáĽ á áŞááá áľáĽáľáĽ ááľáĽ á¨áľáá˝ á°áŞ á áŁááľá ááĽá á¨áááľáĽ áá á áᣠáĽá áá áá 7 (á°áŁáľ) ááᢠáá ááá áá áá? ááááľáá áá á ááľ ááááľ áááŞáŤ áŤáááá?
á¤áá˛áĄ - 40 á áááá˝ áŤááľ á ááá˝ á ááᢠááá á áĽá፠á áᢠá¨áľááá áľáŞáľ á ááá á...
AT: - á Replica Set ááľáĽ áľáá˝ á¨ááá°áĄ á áŁááľá áááľ áá˝áá ááá áá á˘á á 7 áľáá˝ á°áŞ á áŁááľ á á á˘á¨áĽá á á áľáĽáľáĽ á 3 á¨áá¨á ááśá˝ áá á¨á°á°áŤá¨ á áá ááłá áá á¨ááááą áĽáá´áľ ááá°áá áĽáá˝ááá? á ááľ á¨áá¨á ááá¨á á ááá áá á áá˝áá, áĽá áá áá˝á áááľá áá˝áá.
á¤áá˛áĄ - áá á¨áŞáááą áá°á áľáá˝ áŤáá ááᢠáá á á ááá áĽáŤá ááᢠááááŁáľ á áá áľá ááłáŠ ááááá áĽá˝ááá.
á ááłááľ ááľáłáááŤáá˝ đ
á¨áĽá áá áľááአáĽááá°ááááᢠá˝áááťá˝áá áááłá? á¨á áá á áľá°áłá˝ áááľ áá¨áľ ááááá? áľáĽáá á ááá ááá ááá°áá˝ á ááá¨á áá°ááááŁ
á á ááľá°ááłá ááľáĽ á Equinix Tier IV á¨áá¨á ááá¨á ááľáĽ Dell R730xd 2x ááŤá˝? áĽáá
áĽáť
ááá: hab.com