ááŹáááˇáş HighLoad++ áá˝ááşááááˇáşááᯠá
áááˇáşááŽááŹá
áááşáá˝ááş 6 ááŻáážá
áş á§ááźáŽá 7 áááşáážááˇáş 2020 áááşáááŻáˇáá˝ááş ááťááşá¸ááááşááźá
áşáááşá
áĄááąá¸á
áááşáĄááťááşáĄáááşááťáŹá¸áážááˇáşáááşáážááşááťáŹá¸
á
áŽá¸áá˝áŹá¸ááźá
áşááŻááşááŻááşáá
áşááŻáĄáá˝ááş áĄááąá¸ááźáŽá¸ááąáŹááášáááťáŹá¸ááᯠáááˇáşáá˝ááşá¸á
ááşá¸á
áŹá¸ááźááşá¸ááážááááˇáş áááşáá˝áąáˇáááŻáĄááşááťááşááťáŹá¸áááş ááŽáĄááŻááŽáážááˇáş áá˝á˛áá˝á˛ááąááŤáááşá á¤ááąáŹááźáąáŹáá˝á˛áááş á
áŽá¸áá˝áŹá¸ááźá
áşááŻááşááŻááşáá
áşááŻááááŻáĄááşááťááşááťáŹá¸áĄááąáŤáşáĄááźáąááśá áááŹáááşáááŻááşááŹááŻááąááááźáŻááťááşááťáŹá¸áááŻáĄááźáąááśá Causal ááŽáá˝ááşáážáŻáĄá
áááşáĄáááŻááşá¸ááťáŹá¸áááŻáááşááŽá¸ááźááşá¸áĄáá˝ááş ááá°ááŽááąáŹááťááşá¸áááşáážáŻááťáŹá¸áááŻáá˝áąá¸ááťááşááźááşá¸áážááˇáş ááąáŤááşá¸á
ááşááźááşá¸ááŻááşáááşá¸á
ááşááᯠáááşáááşááŹá¸ááŤáááşá ááŹá¸áááşáá°ááťáŹá¸áááş ááŻáášáááážáááąáŹááŹááŽááťáŹá¸áĄáá˝ááş áážááááşá¸á
á˝á˛ááŽáĄááŻááŽáááŻááşááŹááťááşá¸áááşáážáŻááťáŹá¸á áážáŽáááŻáážáŻááźáąááŹááśááźááşá¸á á
áá
áşááŻáśááźáŻáśááąá¸á ááŹááŽááᯠáááşáá°ááźáŻááźááşá¸ áážááˇáş MongoDB ááž áĄááťááŻáˇááąáŹááźáąáážááşá¸ááťááşááťáŹá¸áĄáá˝ááş áĄáááşááźáąáŹááˇáşáááşá¸á
Mikhail Tyulenev (ááąáŹááş MT áĄááźá áşáááşáá˝ážááşá¸áááş) - Causal ááŽáá˝ááşáážáŻáĄááźáąáŹááşá¸ááźáąáŹááŤáááş - ááŤá MongoDB áážáŹ ááťá˝ááşááąáŹáşáááŻáˇ ááŻááşááąáŹááşáá˛áˇáá˛áˇ áĄááşášááŤáááşáá áşááŻááŤá ááźááˇáşááąáá˛áˇá áá áşáĄáŻááşá áŻáážáŹ ááťá˝ááşááąáŹáşáĄááŻááşááŻááşáááşá áá˝ááşáá˛áˇáá˛áˇáážá áşáážá áşááąáŹááşá ááŻááşáá˛áˇáááşá
ááŻááşáááşá¸á
ááşáá˝ááşá á¤áĄááşášááŤáááşááᯠááąáŹááşá¸á
á˝áŹááąáˇááŹááŹá¸ááąáŹááźáąáŹááˇáş ááťá˝ááşáŻááşáááş áááŹáááşáááŻááşáᏠááŻááąááááťáŹá¸á
á˝áŹáážááˇáş áááşá¸áážáŽá¸áá˛áˇáááŤáááşá ááŻááşááŻááşááąá¸áĄááşáááŽááąá¸áážááşá¸áá˝ááşááŤáážáááąáŹ áĄáá˝ááşááááťááąáŹ áááŻáĄááşááťááşááťáŹá¸ááźáąáŹááˇáş ááŻááşááŻááşááąá¸ááąááŹááąáˇá
áşáá˝ááş ááąáŹááşá¸ááŤá¸áá
áşááŻááşááž áááŻáĄááşáááşáážááˇáş áááŻááşááŽáážáŻááážáááźáąáŹááşá¸ áá˝áąáˇáážááááŤáááşá
ááťá˝ááşáŻááşáááŻáˇáááş áááŹáááşáááŻááşáᏠááŻááąááá á áŹá¸ááŻáśá¸áá°ááťáŹá¸áĄááąáážááˇáş ááťá˝ááşáŻááşáááŻáˇá ááŻáśá¸á á˝á˛áá°ááťáŹá¸ááᯠáĄáááşááźáąááźáąáážááˇáş ááąá¸áááşá¸ááŻáśááźáŻáśááąáŹ áĄáááşáááˇáşááŻááşááŹá¸ááąáŹ áááşá¸ááťáŹáá áşááŻáĄááźá áş ááťá˝ááşáŻááşáááŻáˇá ááŻáśá¸á á˝á˛áá°ááťáŹá¸ááś áááşááźáááŻááşáááˇáşáĄááŹááž áá áşá áŻáśáá áşááŻááᯠááźááşáááşááŻáśáĄááźáąáŹááşá¸ ááźáąáŹááźááŤáááşá
áĄááźáąáŹááşá¸áááşá¸ááŽáá˝ááşáážáŻá áááąáŹáááŹá¸ááťáŹá¸ááᯠáááşáážááşááźááŤá ááŻáˇ
á á ááťááşá¸áážáŹ Causal ááŽáá˝ááşááźááşá¸áááŻáᏠááąáá°ááťáĄáŹá¸ááźááˇáş ááźáąáŹááťááşááŤáááşá Leonard áážááˇáş Penny (ááŽááŽá áŽá¸ááŽá¸ "The Big Bang Theory") áá˝ááş ááŹááşááąáŹááş áážá áşáŚá¸áážááááşá
Penny áááş áĽááąáŹááá˝ááşáážáááźáŽá¸ Leonard áááş áá°ááĄáŹá¸ áĄáśáˇáĄáŹá¸áááˇáşáá˝ááş ááŤááŽáá˝á˛áá
áşáᯠááźáŻááŻááşáááŻáááşáᯠáááŻááźááŤá
ááŻáˇá ááźáŽá¸ááąáŹáˇ áá°áˇáá°áááşááťááşá¸á
áŹáááşá¸áááą áááşááŻááşáááŻááşááŹáááş áááŻááąáŹááşá¸áá˛áˇáĄááŹááᯠááá˝áąá¸áááŻááşááąáŹáˇáᲠáá°áˇáá°áááşááťááşá¸áĄáŹá¸ááŻáśá¸ááᯠfeed áážáŹ áĄááşááááşáá
áşáᯠáááŻáˇáááŻááşáááş- "Penny ááťáąáŹáşááĄáąáŹááş!" (áá°áá áĽááąáŹááážáŹááąááźáŽá¸ áĄáááşááťáąáŹáşááąááťáááşáážáŹ ááŤáá˝áąáĄáŹá¸ááŻáśá¸ááᯠáááźááşáááŹááźáąáŹááˇáş áááźááşáááŻááşááŤáá°á¸)á ááąáŹááşááŻáśá¸áá˝ááşá áá°ááááş á¤áááŻáˇá
áşááᯠááťááşáááŻááşáááşá áááşá¸ááᯠááááşááž ááťááşáᏠáááşáááˇáşáĄááŹáááŻááťáž ááááááŹá¸ááá
áąáááşáážááˇáş áĄáážáŻááşáĄáážááşá¸ááážáá
áąáááşáĄáá˝ááş áááşááąáŹááşáá˝ááˇáşááᯠááźááşáááşááá°áááşá
á¤áĄááŹáĄáŹá¸ááŻáśá¸ ááąáŹááşá¸áá˝ááşááźáŽá¸ ááąáŹááşá¸áá˝ááşááąáŹáşáááşá¸ á
áá
áşáááş ááźááˇáşááąááąááźáŽá¸ áĄááŹáĄáááşá¸áááş áážáŹá¸áá˝ááşá¸áá˝áŹá¸áááşáᯠáá°áááźááŤá
ááŻáˇá áĽáááŹáĄáŹá¸ááźááˇáşá ááźá
áşáááşááťáŹá¸áááş áĄááźáąáŹááşá¸áááŹá¸áážááˇáş áĄááťááŻá¸áááşááąáŹááşáážáŻááźááˇáş ááááşáááŻááşááŤá á¤áááŻáˇá
áşáá˝ááş ááąáŤáşááŹááźáŽá¸ááąáŹááş Penny á áááşááąáŹááşáá˝ááˇáş áááˇáşáááşááťááş ááźá
áşáá˝áŹá¸áááŻááşáááşá ááááşááąáŹáˇá ááŤá ááŻááşáááşá¸áá
áşááŻááŻááşááąáŹááşáááŻáˇáĄáá˝ááş Causal ááŽáá˝ááşáážáŻáááŻáĄááşáá˛áˇáĄá፠áĽáááŹáá
áşáᯠ(ááŽááá
ášá
áážáŹ)á
ááááşááąáŹáˇá ááŤáá˝áąáᏠááąááŹááąáˇá áşáá˛áˇ áĄááąá¸áĄáá˝á˛áááŻááşáá˛áˇ ááŻááşááášáááá˝áąááŤáá˛á áá°áááŻáˇááᯠááąáŹááşááśáá˛áˇáá° ááąáŹáşááąáŹáşáááşá¸ááŤáááşá ááąáŹáşáááşáá˝áąáᎠáááşáá˝áŹá¸ááĄáąáŹááşá
áááŻááşááŽáážáŻááŻáśá áśááťáŹá¸
ááąááŹááąáˇá áşááťáŹá¸áá˝ááş ááŽáá˝ááşáážáŻááŻáśá áśáĄáááĄááťáááŹáá˛á á¤áĄááŹááťáŹá¸áááş ááźááˇáşááąáážáŻá áá áşáá áşááŻáááş ááŻáśá¸á á˝á˛áá°á ááážááááŻááşáááˇáşááąááŹáážááˇáş áááşáááˇáşáĄááťááŻá¸áĄá áŹá¸áá˝ááş ááąá¸áááşáá°ááąáŹ áĄáŹáááśááťááşáĄááťááŻáˇááźá áşáááşá
áá°áĄáá ááŽáá˝ááşáážáŻááąáŹáşáááşááťáŹá¸áĄáŹá¸ááŻáśá¸áááş ááźááˇáşááąáááˇáşá áá áşáážááˇáş áááşááťážáááşáá°áááşááᯠáĽáááŹáĄáŹá¸ááźááˇáş áááşááşááąáŹáˇááşááąáŤáşáážá node áá áşááŻááąáŤáşáá˝ááş ááŻááşááąáŹááşáááˇáşá áá áşáážááˇáş áá°ááŽáááşá áááşá¸áááş ááąáŹááşááąáŤááşá¸ááťáŹá¸á á˝áŹááąáŹ ááááŽáááş ááźááˇáşááąááŹá¸ááąáŹ âNodesâ áá˝ááşáááşáááşáááˇáş á áá áşáá áşááŻááźá áşáááˇáş áááşááşááąáŹáˇáá áşááŻáśá¸áážááˇáş áááşáá˛áˇáááŻáˇáá°ááŽáááşá áááşá¸ááŻááşááášááááťáŹá¸áĄáŹá¸ááŻáśá¸ááᯠáá°áĄáŹá¸ááźááˇáş áĄáááŻáĄááťáąáŹááşááŻááşááąáŹááşááąá¸áááˇáş áááşááşááąáŹáˇáá áşááŻáśá¸áážááˇáş áááşáá˛áˇáááŻáˇáááşáá°áááşá
áááŻáˇááźáąáŹááˇáş ááŽáá˝ááşáážáŻááŻáśá áśááťáŹá¸ááᯠááźááˇáşááąáááˇáşá áá áşááťáŹá¸áá˝ááşáᏠáĄááŻáśá¸ááźáŻááŤáááşá áá°ááŽááąáŹ ááąáŤááşáááŻááş áĄáááŻááşá¸áĄááŹááźááˇáş ááŻááşááąáŹááşáá˛áˇááąáŹ á áá áşááťáŹá¸áĄáŹá¸ááŻáśá¸áááş áááŻáá˛áˇáááŻáˇááąáŹ ááźáżááŹááťáŹá¸ááᯠáááśá áŹá¸áááŤá Buffer Cache áá áşááŻáážáá áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááşá¸ááž áĄááźá˛áááşááąááŤáááşá
Model Strong ááŤá
ááááşááąáŹáˇ áááááąáŹáşáááşá Strong (ááŤáážáááŻááş ááźááˇáşáááşáááŻááşáážáŻááťááşá¸) áááŻáˇ ááąáŤáşááŤáááşá áááşá¸áááş ááźáąáŹááşá¸áá˛áážáŻáááŻááşá¸ááᯠááźá áşááąáŤáşááźáąáŹááşá¸ áĄáááşááźáŻááźáŽá¸áááşáážááˇáş á áá áşááĄááŻáśá¸ááźáŻáá°áĄáŹá¸ááŻáśá¸ ááźááşáááŻááşá áąáááş ááąááťáŹá áąááąáŹ ááŽáá˝ááşáážáŻááŻáśá áśáá áşááŻááźá áşáááşá
áááşá¸áááş ááąááŹááąáˇá áşáážá ááźá áşáááşáĄáŹá¸ááŻáśá¸á ááášááŹááŻáśá¸áááŻááşáᏠáĄá áŽáĄá áĽáşááᯠáááşááŽá¸áááşá áááşá¸áááş áĄáá˝ááşáááŻááşááŹááąáŹ ááŽáá˝ááşáážáŻáááŻááşáááŻááşáážáŻáá áşááŻááźá áşááźáŽá¸ ááąááŻááťáĄáŹá¸ááźááˇáş áĄáá˝ááşá áťáąá¸ááźáŽá¸áááşá áááŻáˇááąáŹáş áááşá¸ááᯠáĄáá˝ááşááąáŹááşá¸áá˝ááşá á˝áŹ ááśáˇáááŻá¸ááŹá¸áááşá áĄáá˝ááşá áťáąá¸ááźáŽá¸ááźáŽá¸ áážáąá¸áá˝áąá¸áááş - áĄááŻáśá¸ááźáŻáá˛ááŤáááşá ááŤááᯠááźááˇáşáááşáááŻááşáážáŻáááŻáˇ ááąáŤáşááŤáááşá
External Consistency ááŻááąáŤáşááąáŹ Spanner áá˝ááş ááśáˇáááŻá¸ááŹá¸áááˇáş ááąáŹááşáááş áááŻáááŻáĄáŹá¸ááąáŹááşá¸áááˇáş áááŻááşáááŻááşáážáŻáá áşááŻáážááááşá áĄá˛ááŤááᯠááąáŹááşáážááźáąáŹáááşá
áĄááźáąáŹááşá¸áááşá¸
ááąáŹááşáá áşááŻáááąáŹáˇ Causal á ááťá˝ááşááąáŹáşááźáąáŹáá˛áˇáá˛áˇáĄáááŻááşá¸ááŤáá˛á Strong áážááˇáş Causal áĄááźáŹá¸ ááąáŹááşáááş áĄáááˇáşáá˝á˛ááťáŹá¸á á˝áŹ áážáááŤáááşá áááŻáˇááąáŹáş áááşá¸áááŻáˇáĄáŹá¸ááŻáśá¸áááş Causal áĄáá ááźáŻááşáá˝áŹá¸ááŤáááşá áááşá¸áááş ááąáŹáşáááşááťáŹá¸áĄáŹá¸ááŻáśá¸áá˝ááş áĄááźááşá¸áááşááŻáśá¸ááźá áşááźáŽá¸á áá˝ááşáááşáá áşáᯠáááŻáˇáááŻááş áĄáááŻááşá¸áááŻááşá¸ááťáŹá¸áážáąáˇáá˝ááş áĄááźááşá¸áááşááŻáśá¸ááŽáá˝ááşáážáŻááźá áşááąáŹááźáąáŹááˇáş áĄááąá¸ááźáŽá¸ááąáŹááąáŹáşáááşáá áşááŻááźá áşáááşá
áĄááźáąáŹááşá¸áááşá¸ááťáŹá¸áááş áĄáážááşááááşáĄáŹá¸ááźááˇáş ááźá
áşáááşááťáŹá¸áážááˇáş áĄááťááŻá¸áááşáááşá
ááşáážáŻááźááˇáş áááşá
ááşááąáááˇáş áĄááźáąáĄááąáá
áşááŻááźá
áşáááşá ááąáŹááşáááşááĄááźááşááž Read your on rights áᯠáĄááťáŹá¸áĄáŹá¸ááźááˇáş áááşááźááşááźáááşá áĄáááşá client áááş áĄááťááŻáˇááąáŹáááşáááŻá¸ááťáŹá¸ááᯠáááááźáŻááááŤáá áá°áááş áĄááááşááááşáááŻá¸ááťáŹá¸ááᯠáááźááşáááŻááşááŤá áá°áááş áážáąáˇááźáąá¸á
áŹáááşááźááşá¸ááᯠá
áááşááźááşááąááźáŽááźá
áşáááşá áĄáŹá¸ááŻáśá¸á áĄáá°áá°ááŤáá˛á
ááŽáá˝ááşáážáŻááŻáśá
áśáá
áşááŻáĄááąááźááˇáş áĄááźáąáŹááşá¸áááşá¸ááťáŹá¸áááş ááŹááŹááąáŤáşáážá áĄááźá
áşáĄááťááşááťáŹá¸á áá
áşá
áááşáá
áşáááŻááşá¸ á
áŽá
áĽáşáážáŻáá
áşááŻááźá
áşááźáŽá¸ ááŻáśá¸á
á˝á˛áá°ááťáŹá¸áĄáŹá¸ááŻáśá¸ááž áĄááźá
áşáĄááťááşááťáŹá¸ááᯠáá°ááŽááąáŹáĄá
áŽáĄá
áĽáşááźááˇáş ááźááˇáşáážáŻáááşá á¤ááá
ášá
áá˝ááş Leonard áážááˇáş Penny á
ááąáŹááşááŻáśá¸áá˝ááş
ááááááŻáśá áśáážáŹ Eventual Consistency ááźá áşáááşá á¤áááşáážáŹ ááźááˇáşááąáážáŻá áá áşááťáŹá¸áĄáŹá¸ááŻáśá¸ ááŻáśá¸á ááŹá¸áááşáááąáŹááąáŤááşáááŻááşááąáŹ áĄáááşá¸á áŻááŻáśá áśááźá áşáááşá áááşá¸áááş áĄáąáŹááşááŤáááŻáˇááᯠáááŻáááŻáááş- ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááąááŹááźáąáŹááşá¸áá˛áážáŻáĄááťááŻáˇáážáááąáŹáĄááŤá áá áşááťáááşááťáááşáá˝ááş áááşá¸áááŻáˇáááş áá áşááááşáááşá¸ááźá áşááŹáááşá
á¤áĄáááŻááşáĄáááˇáşáá˝ááş áá°ááááş ááŹááž áááźáąáŹáá˛á áááŻááşááŤá áá°ááááş ááźááşá ááŽáá˝ááşáážáŻáĄááźá áşáááŻáˇ ááźáąáŹááşá¸áá˛áá˝áŹá¸ááááˇáşáááş - áááşá¸áááş ááŻáśá¸áááźáŹá¸ááŹá¸ááąáŹ ááŹááşáááşá¸áá áşáᯠááźá áşááááˇáşáááşá áááşáááŻáˇáááşáááŻá áąááŹáá°á á¤áááşáĄáá˝ááşááąáááşá¸á áŹá¸ááąáŹááąáŹáşáááşá áĄááŻáśá¸áĄááťáŹá¸ááŻáśá¸ááźá áşáááşá ááŻáśááąáĄáŹá¸ááźááˇáşá ááźááˇáşááąáááˇáşá áá áşáĄááŻáśá¸ááźáŻáá°áĄáŹá¸ááŻáśá¸áááş Eventual Consistency áááŻáĄááŻáśá¸ááźáŻáááşá
áážááŻááşá¸áážáĽáşááŻáśáĄááťááŻáˇááᯠáááşááźáááŻááŤáááşá
ááŽááźážáŹá¸áá˝áąá ááŹááᯠáááŻáááŻááŹáá˛á
- ááśááąááťáááşá ááŽáá˝ááşáážáŻáĄáŹá¸ááąáŹááşá¸ááŹáááşáážááˇáşáĄááťážá áááşá¸áááş áááşáážáŹá¸ááąáŹáĄááźáąáŹááşá¸ááźááťááşááťáŹá¸áĄáá˝ááş áááŻáááŻááźáŽá¸ááŹá¸ááŹáááş- áááşáááş áážááşáááşá¸ááťáŹá¸áááŻáááŻááźáŻááŻááşáááş áááŻáĄááşááźáŽá¸á ááąááŹáážáááźáŽá¸ááŹá¸ááźá áşááźáąáŹááşá¸ áĄá áŻáĄááąá¸áá˝ááşááŤáááşáááˇáş host áážááˇáş node áĄáŹá¸ááŻáśá¸ááśááž áĄáááşááźáŻááťááşááá°ááŤá áááŻáˇááźáąáŹááˇáşá Eventual Consistency áá˝ááş áĄááťááşááźááşááŻáśá¸áĄááźáąáážááááşá áĄááźáąáŹááşá¸áážáŹá á ááşá¸áááşá¸áĄáááŻááşá¸á áááşáááş áááşá¸áĄáŹá¸ áážááşááŹááşáá˝ááşáááş áĄááşáážáśáááŻááşááźáŽá¸á áá°áĄáŹá¸ááźááˇáş ááŻáśááąáŹááşáááşááźá áşáááşá
- ááážááááŻááşá áá˝ááşáááşááźááşááąáŹááşáážáŻááťáŹá¸á áĄáááŻááşá¸áááŻááşá¸ááťáŹá¸ áááŻáˇáááŻááş ááťááŻáˇáá˝ááşá¸áážáŻáĄááťááŻáˇáážáááąááťáááşáá˝ááş á¤áĄááŹááᯠá áá áşáááŻáśáˇááźááşáááŻááşá á˝ááşá¸áĄááźá áş ááťá˝ááşáŻááşáááŻáˇááŹá¸áááşááŤáá áĄáááşáážááşáá áşáŚá¸áááş ááťá˝ááşáŻááşáááŻáˇáážááˇáş áĄáá°áá°ááąáááŻááşáááş ááŻáśááąáŹááşááąáŹááźáąáŹááˇáş áĄáážáŹá¸ááśáááŻááşáááşáááŻá¸ááŹááŤáááşá áĄááťáááşáááş áĄááťááşáĄáááşáĄááťááŻáˇááᯠááŻááşááŻááşáááşá ááąáŹááşááŻáśá¸ áááŻááşááŽáážáŻáážáááąáŹ áĄááťááşáĄáááşáážááˇáş áááşáááşá áááşáááˇáşáĄááŹáááŻááťáž áĄáŹááááśáááŻááşá፠- áááşá¸áááş ááŹáááᯠááźá áşáááŻááşáááşá
- áá˝á˛áá˝á˛ááťááşááťáŹá¸á áá áşááťáááşáááşá¸áážáŹáááşá ááŻááşááŤáááşá áá˝á˛áá˝á˛ááťááşáĄááąáĄáá˝ááş áááŻá¸ááŹááŤáááşá Strong Consistency áá˝ááş áááşá¸áááŻáˇáááş ááŻáśá¸áááŽá¸ááŤá¸ áááźá áşáááˇáşááąáŹáşáááşá¸ ááąáŹááşááŻáśá¸ Consistency áá˝ááş áááşá¸áááŻáˇáááş ááŹáááᯠááźá áşáááŻááşáááşá ááąá¸áá˝ááşá¸ááąáŤáşááŹáááş- áááşá¸áá˝ááş áá˝á˛áá˝á˛ááťááşááťáŹá¸ááŤáážáááťážááş áá°áááŻáˇáááş áĄáááşááźáąáŹááˇáş ááąáŹááşááŻáśá¸áá˝ááş áááŻááşááŽáážáŻááᯠáá˝áąá¸ááťááşááźááááşá¸á áĄááźáąáážáŹ ááąáŹááşááŻáśá¸ááąáŹ áááŻááşááŽáážáŻáážáááąáŹ ááŻáśá áśááťáŹá¸áááş áĄááŻáśá¸ááťáááŻááşááźáŽá¸ áá˝á˛áá˝á˛ááťááşááťáŹá¸ áážááááşá áĽáááŹá áĄááťáááşáááŻáĄáá˝ááşá¸á áá áşááááşáááşá¸ááąááŹáááŻáááşáááş wizard áááŻááŻáśá¸á áĄáááşá¸áážááˇáşáĄááťáŹá¸áááşáááş ááźá áşáááŻááşáááşá áááŻááşááśáˇááąáŹ áááŻááşááťáąáŹááŽáá˝áąáážáŻáážáááąáŹ ááŻáśá áśááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáááş áááźáŹáá ááźá áşáááŻááşáááşá áááşáá˝áąáˇáá˝ááş áááşá¸áááş áĄááŻááşááźá áşááźáŽá¸ áááźáŹáá áá˝á˛áá˝á˛ááťááşááťáŹá¸ áĄááąáĄáá˝ááşáážáŹ áĄááťáááşáĄáááˇáşáĄáááşáážááááşá
CAP ááŽáĄááŻááŽ
á ááŹá¸ááŻáśá¸ááťáŹá¸ áááŻááşááťáąáŹááŽáá˝áąáážááážáŻá ááážááááŻááşáážáŻáááŻáˇááᯠááźááşááąáŹáĄááŤáá˝ááş áááˇáşá áááşáá˛áá˝ááş ááŹááźá áşááŹááááşá¸á áážááşáááş - CAP ááŽáĄááŻááŽá áĄáᯠá፠ááášááŹááŽááᯠááťáąááťááşááťááşáááş... áĄá˛á፠ááŤáááŻááşáá°á¸ - áĄáśáˇááźá ááŹááąáŹááşá¸áá˛áˇ ááąáŹááşá¸ááŤá¸áá áşááŻááşá áĄáśáˇááźá ááŹááąáŹááşá¸áá˛áˇ á áŹáĄáŻááşáá áşáĄáŻááşááᯠááąá¸áá˛áˇáá˛áˇ Martin Kleppmann ááŤá
CAP ááŽáĄááŻááŽáááş ááŽáá˝ááşáážáŻá ááážááááŻááşáážáŻá áĄáááŻááşá¸áá˝á˛ááťáŹá¸- áááá ááźááˇáşáážá
áşááťáŹá¸áá˝ááş ááąá¸áá˝á˛ááŹá¸áááˇáş ááááŹááá
áşááŻááźá
áşáááşá ááŤáᏠááááťáá˛áˇ ááááŹááá
áşááŻááŤá Gilbert áážááˇáş Lynch áááŻáˇá áážá
áşáĄáááşá¸áááşááźáŹááźáŽá¸ááąáŹááş ááŽáĄááŻááŽáá
áşááŻáĄááźá
áş áááşááąááźáá˛áˇáááşá áááŻáˇááąáŹááş áááşá¸ááᯠááášáááşáá
áşááŻáĄááźá
áş á
áááşáĄááŻáśá¸ááźáŻáá˛áˇáááş - á
áá
áşááťáŹá¸ááᯠCAá CPá AP á
áááşááźááˇáş áá˝á˛ááźáŹá¸á
ááźáŻááŹáááşá
á¤ááŽáĄááŻááŽááᯠáĄáąáŹááşááŤááá ášá ááťáŹá¸áĄáá˝ááş áĄáážááşááááş áááşááąááźáá˛áˇáááş... ááááŚá¸á á˝áŹá ááážááááŻááşáážáŻááᯠááŻáááž ááŹááááşá¸áĄáá áááşáááŻááşáááşáááŻá¸áĄááźá áş ááá°áá፠(0 - á áá áşáááş "ááąááźáŽ"á 100 - ááťááşááźááşá á˝áŹ ááŻáśáˇááźááşáááşá áááşá¸ááᯠááťá˝ááşáŻááşáááŻáˇ á ááşá¸á áŹá¸ááąáˇáážááááş) ááŤááąáááˇáş algorithm áá˛áˇ áááŻááşáááŻááşáážáŻáá áşááŻáĄááąáá˛áˇ áá°áˇáá˛áˇááŻááşááąáŹááşáážáŻáĄáŹá¸ááŻáśá¸áĄáá˝ááş ááąááŹááᯠááźááşááąá¸áááşáááŻáˇ áĄáŹáááśááŤáááşá
ááŻáśáˇááźááşááťáááşáážááˇáşáááşáááşááźáŽá¸ á
ááŹá¸ááŻáśá¸áááážáááŤá áĄáážá
áş 100 ááźáŽá¸ááąáŹááş ááąááŹááᯠááźááşááąá¸áááˇáş áĄááşááááŻááŽáááşáá
áşáᯠáážááááş - CAP ááŽáĄááŻááŽá áá
áşá
áááşáá
áşáááŻááşá¸ááźá
áşáááˇáş ááŻáśá¸áááᯠáĄáśáˇááźáá˝ááşááážááááŻááşááąáŹ áĄááşááááŻááŽáááşáá
áşááŻáážááááşá
ááŻááááĄááťááş- á¤ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸áááş áĄáá˝ááşáĄá
áŹá¸ááźáąáŹááşá¸áá˛áááŻááşááąáŹáĄááťááşááťáŹá¸áážáááąááąáŹáşáááşá¸ áá°ááŽááąáŹááąáŹáˇáááşáááŻá¸ááťáŹá¸áááźáąáŹááşá¸áá˛áážáŻááťáŹá¸áĄáá˝ááş ááŽáĄááŻááŽááᯠáááşááąááźáá˛áˇáááşá áááŻáááŻáááşáážáŹ áááşáá˝áąáˇáá˝ááş áááşá¸áááŻáˇáááş áááşáá˝áąáˇááťááť áĄááŻáśá¸áááťáááŻááşááąáŹááźáąáŹááˇáş ááąáŹáşáááşááťáŹá¸áááş Eventual Consistencyá Strong Consistency (ááźá
áşáááŻááşáááş)á
ááŤáá˝áąáĄáŹá¸ááŻáśá¸á ááŹáĄáá˝ááşáá˛á áááŻáˇáĄááźááşá CAP ááŽáĄááŻááŽáááş áááşá¸ááᯠáááşááąááźáá˛áˇáááˇáş ááŻáśá áśáĄáááĄááťááźááˇáş áááşáá˝áąáˇáá˝ááş áĄááťáŻáśá¸ááááşáááˇáşáĄááźááş áĄááŻáśá¸áááşá¸ááŤáááşá ááŽáĄááŻááŽááŻáśá áśáĄáá áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáá áşáááşá¸áááşá¸áá˛áˇ áááˇáşáááşááŹá¸áááşá áááşá¸áááş áááşáááŻááşáááąáŹáĄá áážááşáááşááąáŹ ááááťááąááťáŹááąáŹ ááááŹááá áşáᯠáá˝ááşááąáŤáşááąáŹáşáááşá¸ ááąááŻááťáĄáŹá¸ááźááˇáş áááşááąáááźáááŻááşááŤá
áĄááźáąáŹááşá¸áááşá¸ ááŽáá˝ááşáážáŻáááş áĄáááŻááşááŹááŻáśá¸ ááąáŹáşáááşááźá áşáááşá
áááŻááźá áşááťááşááąáááˇáşáĄáᏠááŻáśá¸ááŻá ááŻáśá¸ááᯠáááşááááŻááşáááş- ááŽáá˝ážááşáážáŻá áĄáááŻááşá¸ááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻá ááážááááŻááşáážáŻá áĄáá°á¸áááźááˇáşá Causal ááŽáá˝ááşáážáŻáááş Partitions ááťáŹá¸ (áá˝ááşáááşáĄáá˝ááşá¸ ááźááşááąáŹááşáážáŻááťáŹá¸) ááážáąáˇáážáąáŹááşáá˝ááş ááŻááşááąáŹááşáá˛ááźá áşáááˇáş áĄáááŻááşááŹááŻáśá¸ááąáŹ ááŽáá˝ááşáážáŻááŻáśá áśááźá áşáááşá áĄá˛ááŤááźáąáŹááˇáş áĄá˛ááŤá áĄáááşá¸á áááşáááşá áŹá¸áááŻáˇááąáŹááşá¸ááźáŽá¸ áĄá˛ááŤááᯠááťá˝ááşááąáŹáşáááŻáˇá ááśáá°áááşá
ááááŚá¸á
á˝áŹá áááşá¸áááş application developer ááťáŹá¸ááĄááŻááşáááŻáááŻá¸áážááşá¸á
áąáááşá áĄáá°á¸áááźááˇáşá ááŹááŹááž ááźáŽá¸ááŹá¸ááąáŹ ááśáˇáááŻá¸áá°ááŽáážáŻ áážáááąááźááşá¸- client áá
áşááŻáĄáá˝ááşá¸áážá áážááşáááşá¸ááťáŹá¸áĄáŹá¸ááŻáśá¸áááş áĄááźáŹá¸ client áá
áşááŻáá˝ááş áá°ááŽááąáŹ áĄá
áŽáĄá
áĽáşáááŻáˇ ááąáŹááşáážááááş áĄáŹáááśááąáŹáĄááŤá ááŻááááĄááąáá˛áˇá áááşá¸áááş partitions áááŻááśáááŻááşáááşáážááááşá
MongoDB áĄáá˝ááşá¸áááŻááşá¸ááŽá¸áááŻááťáąáŹááş
ááąáˇáááşá Ꮰá áŹá¸ááťáááşááąáŹááşááž ááŽá¸áááŻááťáąáŹááşáááŻáˇ áá˝ážáąáˇáááşá ááźáąáŹááááş MongoDB á ááŽáááŻááąááŹááąáˇá áşáĄááźáąáŹááşá¸ áááááŻáśá¸áĄááźáááş ááźáŹá¸ááąáá°áá˝áąáĄáá˝ááş á áá áşááŻáśá áśáĄááźáąáŹááşá¸ ááźáąáŹááźáááşá
MongoDB (ááąáŹááşáá˝ááş âMongoDBâ ááŻáááşáá˝ážááşá¸áááş) áááş áĄááťáŹá¸áááŻááşá
ááąá¸ááźááşááźááşá¸ááᯠááśáˇáááŻá¸ááąá¸áááˇáş ááźááˇáşááąáááˇáşá
áá
áşáá
áşááŻááźá
áşááźáŽá¸á áážááˇáş shard áá
áşááŻá
áŽáá˝ááşáááşá¸áááş data redundancy á áááŻáááŻáááşáážáŹ replication áááŻáááşá¸ááąáŹááşááśáˇááąá¸áááşá
MongoDB áá˝ááş Sharding (áááşá ááşááąááŹááąáˇá áşáááŻááş) áááş áĄáááŻáĄááťáąáŹááşááťáááşáá˝ááşááťážáŹáááŻááŻááşááąáŹááşáááşá áááŻáááŻáááşáážáŹ á áŹáá˝ááşá áŹáááşá¸ááťáŹá¸á áŻá ááşá¸áážáŻáá áşááŻá Ꭰ(áááŻáˇáááŻááş áááşá ááşáĄááťááşáĄáááşááťáŹá¸ááááşáážááşááťááşáĄá "áááŹá¸") áááŻáĄáááŻááşá¸áááŻááşá¸ááťáŹá¸áá˝á˛áᏠááŹááŹáááş áááşá¸áááŻáˇááᯠshards ááťáŹá¸ááźáŹá¸áá˝ááş áĄáááŻáĄááťáąáŹááşáá˝ážáąáˇááąá¸ááŤáááşá
ááąáŹááşá¸áááŻáážáŻááťáŹá¸ááᯠááźááˇáşááąááąá¸ááąáŹ Query Router áááş client áá áşááŻáĄáá˝ááş áĄááŻááşááŻááşááąáŹ client áĄááťááŻáˇááźá áşáááşá áááşá¸áááş áááşáááˇáşááąááŹáážááˇáş áááşáááˇáşááąááŹáááşáážááááşááᯠáááážáááŹá¸ááźáŽá¸ ááąáŹááşá¸áááŻáážáŻáĄáŹá¸ááŻáśá¸ááᯠáážááşáááşááąáŹ shard áááŻáˇ áááşá¸áá˝ážááşááąá¸áááşá
ááąáŹááşáááşáĄááąá¸ááźáŽá¸ááąáŹáĄááťááş- MongoDB áááş ááŹá ááŹáá áşááŻáááşá¸ááźá áşáááşá Primary áá áşááŻáážááááş - áááşá¸áá˝ááşááŤáážáááąáŹááąáŹáˇááťáŹá¸áááŻááśáˇáááŻá¸ááąá¸ááąáŹáážááşáááşá¸ááťáŹá¸áááŻáá°áááŻááşáááşá Multi-master ááąá¸áááŻáˇ ááááŤáá°á¸á
ááťá˝ááşáŻááşáááŻáˇáááş 4.2 áááŻááźááˇáşááťááá˛áˇáááş - áĄá˛ááŽáážáŹ á áááşáááşá áŹá¸á ááŹááąáŹááşá¸áá˛áˇ áĄááŹáĄáá áşáá˝áąááąáŤáşááŹáááşá áĄáá°á¸áááźááˇáşá áááşá¸áááŻáˇáááş Lucene - search - áĄáááşá executable java ááᯠMongo áááŻáˇ áááŻááşáááŻááşáááˇáşáá˝ááşá¸áá˛áˇááźáŽá¸ Elastica áá˛áˇáááŻáˇáááş Lucene áážááááˇáş áážáŹáá˝áąáážáŻááťáŹá¸ ááŻááşááąáŹááşáááŻááşáá˛áˇáááşá
áááşá¸áááŻáˇáááş ááŻááşááŻááşáĄáá áşáá áşááŻááźáŻááŻááşáá˛áˇáááş - Chartsá áááşá¸ááᯠAtlas (Mongo ááááŻááşáááŻááş Cloud) áá˝ááşáááşá¸ ááážááááŻááşááŤáááşá áááşá¸áááŻáˇáá˝ááş Free Tier áážááááş - áááş áááşá¸áážááˇáş áĄáá°áá áŹá¸áááŻááşáááşá Charts áá˝áąááᯠáĄáááşá¸ááźááŻááşáááş - data visualization ááᯠáĄáááşá¸áĄáááŻáááŻáááááşá
ááŤáááşáá ášá ááşá¸ááťáŹá¸ áĄááźáąáŹááşá¸áááşá¸ ááŽáá˝ááşáážáŻ
Leslie Lampert ááž á¤áĄááźáąáŹááşá¸áĄááŹáážááˇáş áááşáááşá ááŻááşááąááŹá¸ááąáŹ ááąáŹááşá¸ááŤá¸ 230 áááˇáşááᯠááťá˝ááşáŻááşááąáá˝ááşáá˛áˇááŤáááşá ááᯠááťá˝ááşáŻááşá áážááşááŹááşááž á¤áá ášá ááşá¸ááťáŹá¸á áĄá áááşáĄáááŻááşá¸áĄááťááŻáˇááᯠáááˇáşáĄáŹá¸ ááźáąáŹááźááŤáááşá
1970 ááŻáážá
áşááťáŹá¸áĄáá˝ááşá¸ ááąá¸ááŹá¸áá˛áˇááąáŹ Leslie Lampert á ááąáŹááşá¸ááŤá¸ááźááˇáş áĄá
ááźáŻáá˛áˇáááşá áááşáá˝áąáˇááźááşááááˇáşáĄáááŻááşá¸ á¤áĄááźáąáŹááşá¸áĄááŹáážááˇáşáááşáááşá ááŻááąáááĄááťááŻáˇááᯠáááşáááşááŻááşááąáŹááşááąáá˛ááźá
áşáááşá ááᯠCausal áá
áşááááşáááşá¸ááźá
áşáážáŻáááş ááźááˇáşááąáážáŻá
áá
áşááťáŹá¸ áá˝áśáˇááźááŻá¸áááŻá¸áááşááąá¸áážááˇáş á
ááşááťááşá¸á á
áááşáááşá
áŹá¸áážáŻááᯠááśááąáááŤáááşá
áááşáˇáááş
áááşááᯠáááˇáşáááşááťááşáá˝áą áážááá˛á áĄáááşááźáąáŹááˇáşáááŻááąáŹáş á¤áááşáážáŹ ááŻááşááŻááşáážáŻá áá áşáá áşááŻá áááˇáşáááşááťááşááťáŹá¸áááş áááŹááąá¸ááąáŹááşá¸ááŤá¸ááťáŹá¸áá˝ááş ááŤáážááááˇáş áááˇáşáááşááťááşááťáŹá¸áážááˇáş áĄáá˝ááşáá˝áŹááźáŹá¸ááąáŹááźáąáŹááˇáşá áá°áááŻáˇáᏠáĄááŻáĄááąáŹááşáá˝áą ááźá áşáááşáááşá
- ááááŚá¸á á˝áŹá "MongoDB" áááşááťá˝ááşáŻááşááźáąáŹáá˛áˇáááˇáşáĄáááŻááşá¸ (áááşá¸áááşáĄáá˝ááşáááŻá¸áážááşá¸áááş) á
- á áá áşáááş shard 10 áááˇáşáááŻááąáŹááşááśáˇááąá¸áááˇáşáááşááŻááťá˝ááşáŻááşáááŻáˇááŻáśááźááşáááşá á¤áááşáááŻá¸ááᯠááźááşááŹá¸á á˝áŹ áááˇáşáááşáááˇáş ááááŻááŹáááŻááşáᏠááŻáśá¸ááźááşááťááşááťáŹá¸ááᯠááťá˝ááşáŻááşáááŻáˇ áááźáŻááŻááşáááŻááşááŤá
- ááťá˝ááşáŻááşáááŻáˇáá˝ááş cloud áá áşááŻáážáááąáŹáşáááşá¸ áá°áá áşáŚá¸áááş binary áááŻááąáŤááşá¸ááŻááşááŻááşáᏠáááşá¸ááááşááşááąáŹáˇááąáŤáşáá˝ááş run áááˇáşáĄááŤáá˝ááş áĄáá˝ááˇáşáĄááąá¸áážáááąáá˛áᯠááťá˝ááşáŻááşáááŻáˇáá°áááŤáááşá
- ááŻááąááááž áážáŹá¸áážáŹá¸ááŤá¸ááŤá¸ áá°ááááˇáş áĄááŹáá áşááŻáᯠááťá˝ááşáŻááşáááŻáˇ áá°ááááş- ááźááşáááąáŹááşáááşááťáŹá¸áááş áááşá¸áááŻáˇ áááŻááťááşáááťážááᯠááŻááşááąáŹááşáááŻááşáááşá MongoDB áááş open source ááźá áşáááşá áááŻáˇááźáąáŹááˇáşá ááąáŹááşáááşááťáŹá¸áááş áĄáá˝ááşáááşááźááşááźáŽá¸ á áááşáááŻá¸áááŻááşáááş - áááşá¸áááŻáˇáááş áĄááŹáĄáŹá¸ááŻáśá¸ááᯠááąáŹááşááťááşááťááşáááŻááşáááşá Byzantine Feilors áážáĄá ááźáŻáááŻááşáááşááŻááťá˝ááşáŻááşáááŻáˇáá°áááŤáááşá
- áááşáááşá¸ááťááşááźááşááážá ááźááşáááąáŹááşáááşááťáŹá¸áĄáá˝ááş áĄááąá¸ááźáŽá¸ááąáŹáááˇáşáááşááťááşáá áşááŻáážááááş- á¤áĄááşášááŤáááşáááŻááááşááŹá¸ááŤáá á á˝ááşá¸ááąáŹááşáááşááťáááşá¸ááźááşá¸ááᯠáááááźáŻáááˇáşáááşá
- áĄááźáŹá¸áĄááťááşáážáŹ ááąááŻááťáĄáŹá¸ááźááˇáş áááˇáşááťááşáááşááźá áşááąáŹ áááŹááąá¸ááźá áşáááş- ááááşááŹá¸áážááşá¸ááťáŹá¸áážááˇáş áĄááŹáááşááŹá¸áážááşá¸ááťáŹá¸á áááŻááşáááşááŽáážáŻááźá áşáááşá ááááŻááşááŹááąáŹááşá¸ááťáŹá¸áááş áĄááşááááşáĄáá áşááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸ááááşá ááąááŹááąáˇá áşáááş ááááŻááşááŹáĄááąáŹááşá¸ááťáŹá¸ááᯠááśáˇáááŻá¸ááąá¸ááááşááźá áşáááşá
ááąááŻááťáĄáŹá¸ááźááˇáşá á¤áĄááŹáĄáŹá¸ááŻáśá¸áááş áááˇáşáááşááťááşááťáŹá¸ ááťáážááşááŹá¸áááşá
áĄááźáąáŹááşá¸áááşá¸ ááŽáá˝ááşáážáŻ áĄá áááşáĄáááŻááşá¸ááťáŹá¸
áĄááŻááťá˝ááşááąáŹáşááźáąáŹáááˇáş áĄá áááşáĄáááŻááşá¸áĄááťááŻáˇáĄááźáąáŹááşá¸ááŤá ááąááŻááťáĄáŹá¸ááźááˇáş Causal ááŽáá˝ááşáážáŻááᯠááŻáśá¸áááşááŤáá ááťá˝ááşáŻááşáááŻáˇáááş áááąáŹááşááťáŹá¸ááᯠáá˝áąá¸ááťááşáááŻááşáááşá áĄááťááŻáˇááąáŹáááąáŹááşáá áşááŻáááŻááşáĄááŻááşááťáŹá¸ááž ááťá˝ááşáŻááşáááŻáˇáá˝áąá¸ááťááşáá˛áˇáááş- áážáŽáááŻáážáŻááźáąááŹááśááźááşá¸á ááŹááŽááťáŹá¸áááŻáá˝áąá¸ááťááşááźááşá¸á á¤ááŹááŽááťáŹá¸áááŻáááşáá˛áˇáááŻáˇáá áşááźáŹá¸á áŽáážááˇáşáá áşááźááŻááşáááşá¸áá áşááźááŻááşáááşá¸ááŻááşááąáŹááşáááŻááşááŻáśáážááˇáş ááťá˝ááşáŻááşáááŻáˇáááŻáśááźáŻáśááąá¸áááŻááťá˝ááşáŻááşáááŻáˇáááşáá˛áˇáááŻáˇááąááťáŹá áąáááş - á¤áĄááŹáááş ááťá˝ááşáŻááşááźáąáŹáááˇáşáĄááźáąáŹááşá¸áĄááŹá áĄááźááşá¸ááťááşá¸áĄááźááşá¸ááťááşá¸ááźá áşáááş-
áĄááźááˇáşáĄááážáŽáááŻááźáąááŹááśááźááşá¸á
ááŹááźáąáŹááˇáş áááŻáĄááşááŹáá˛á áááŻáˇáážáᏠááąááŹááᯠááŻáśáá°áá˝áŹá¸áááˇáşáĄááŤá áážááşáááşá¸áá áşááŻá áŽá ááąááŹááźáąáŹááşá¸áá˛áážáŻáá áşááŻá áŽáá˝ááş áááşá¸áĄááąáŤáş áá°áááşá ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸áĄááźáąáŹááşá¸ áĄááťááşáĄáááşááŤáážááááşá áááááŻáśá¸áážááˇáş ááŻáśáĄááąáŹááźáąáŹááşá¸áá˛áážáŻáážáŹ áážááşáááşá¸áá áşááŻááŤáážáááąáŹ áááşááąáˇááťáşáá áşááŻá áŽáá˝ááş ááááşáááşááąáˇááťáşááťáŹá¸áážááˇáşáááşáááşáááˇáş áĄááťááşáĄáááşááŤáááşááąááťáááşááźá áşáááşá
á¤áĽáááŹáá˝ááşá curly brackets áážá ááśááŤááşáááş áážááşáááşá¸ááśááŤááşááťáŹá¸ááźá
áşáááşá áá
áşááŤáá
áşááśáá˝ááş á¤áááşáááŻá¸ááťáŹá¸ááŤááąáŹ áážááşáááşá¸ááťáŹá¸ááᯠáááşá¸áááŻáˇá áá
áşááŻááŻáśá¸ááᯠáá˝ážá˛ááźáąáŹááşá¸ááąá¸áááşá áá
áşááŤáá
áşááś áĄááťááŻáˇááąáŹááŹá¸áážááşá¸ááťáŹá¸ááᯠáá˝ážá˛ááźáąáŹááşá¸ááąá¸ááŤáááşá áĄááááĄááťááşáážáŹ ááźáąáŹááşá¸áá˛áážáŻáá
áşááŻá
áŽáá˝ááş ááááşáá
áşááŻáážááˇáşáááşáááşáááˇáş áĄááťááşáĄáááşááŤáážááááş (á¤áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáá°áˇáĄáááŻááᯠáááşááąáŹááşáá˝áŹá¸áááşáážáŹ ááááŹáááşáážáŹá¸áááş)á
á¤ááťááşá¸áááşáážáŻ (áĄááźááˇáşáĄáááźáąááŹááśááźááşá¸) ááᯠáĄááŻáśá¸áááźáŻáááş áĄáááşááźáąáŹááˇáş ááŻáśá¸ááźááşáá˛áˇááááşá¸á ááááááŹááŹá á¤ááťááşá¸áááşáážáŻáááş áááşáá˝áąáˇáááťááąáŹááźáąáŹááˇáşááźá áşáááş- áá°áážáŻáá˝ááşáááşáá áşááŻáááŻáˇ ááźáąáŹááşá¸áá˛áážáŻáááŻááşá¸áááş áááŻáá°áážáŻáá˝ááşáááşáááŻáˇ áá˝ážá˛ááźáąáŹááşá¸ááźááşá¸á ááźáąáŹááźááşá¸á Facebook áááŻáˇáááŻááş VKontakte áááŻáˇá áĄááşááááşáááŻááşá¸áá˝ááş ááááşááźáąáŹááşá¸áá˛áážáŻááťáŹá¸áĄáŹá¸ááŻáśá¸áĄááąáŤáş áá°áááşááŤáááşá áááşáááŻáˇáááşáááŻá áąááŹáá°á áĄááźááˇáşáĄááážáŽáááŻáážáŻááźáąááŹááśááźááşá¸áááŻááşáᏠááŻááąááááťáŹá¸á á˝áŹáážáááŤáááş - áááşá¸áááŻáˇáááş áá°áážáŻááąá¸áá˝ááşáááşááťáŹá¸ááźá áşááźáŽá¸ áĄááťááŻáˇááąáŹáĄááźáąáĄááąááťáŹá¸áá˝ááş áááşá¸áááş áĄáážááşááááşáĄááŻááşááŻááşáááşá
ááááťááąáŹáážáŽáááŻáážáŻááźáąááŹááśááźááşá¸á
ááąáŹááşáá áşááŻá áááŻáááˇáşáááşááŹá¸áááşá ááááşá¸áĄááťááşáĄáááş áá˝ážá˛ááźáąáŹááşá¸ááźááşá¸ááᯠá¤ááąááŹáá˝ááşáááşá¸ áááˇáşáá˝ááşá¸á ááşá¸á áŹá¸ááąáŹáşáááşá¸ áážááşá¸áážááşá¸áááşá¸áááşá¸ áážáŽáááŻááąááááˇáşáĄááŹááťáŹá¸áᏠááźá áşáááşá áĄáááşáĄááŹáááŻáá°áááşáááş, á ááşá¸áááşá¸áĄááźá áş, ááťážáąáŹááşáá˝ážáŹáááŻáśá¸ááźááşáááşá ááąááŹááᯠáááşáá°ááźáŻáááˇáşáĄááŤá ááąá¸ááźááşá¸ááťááşáááş ááááşáážáŽáááŻáážáŻááťáŹá¸áĄáŹá¸ ááťáąáááşáážáŻáážáááźáąáŹááşá¸á áááŻáááŻáááşáážáŹ ááźááááˇáşáĄááŤáá˝ááşáᏠááŻáśáˇááźááşáážáŻááťáŹá¸ ááźááşááąá¸áááşá á¤áááşáážáŹ Causal ááŽáá˝ááşááźááşá¸ááĄáážá áşááŹáááźá áşáááşá
áážááşáááşá¸ 5 áááş áážááşáááşá¸ 1á 2á 3á 4 ááąáŤáşáá˝ááşáá°áááşáááşáᯠáá°áááźááşáááş - áááŻáˇááźáąáŹááˇáşá ááááşááźáąáŹááşá¸áá˛áážáŻáĄáŹá¸ááŻáśá¸áááş ááąááŹááąáˇá
áşáážááźááşáááşá¸ááźáŽá¸ááąáŹáĄááŤáá˝ááş ááŻáśá¸á
á˝á˛áá°áááş Penny ááááşááąáŹááşáá˝ááˇáşááŻáśá¸ááźááşááťááşáážááźáŻááŻááşááąáŹ áĄááźáąáŹááşá¸áĄáá˛ááťáŹá¸ááᯠááááşááąáŹááşáᎠá
áąáŹááˇáşááťážáąáŹáşááąááŤáááşá
áĄááťááşáĄáááşááťáŹá¸ ááťáŹá¸áá˝ááşá¸ááąááąá¸ááąáŹááźáąáŹááˇáş áááşá¸áááş ááťá˝ááşáŻááşáááŻáˇáážááˇáş ááááŻááşááŽááąáŹááźáąáŹááˇáşá áááşá¸áááş áĄááŹááťáŹá¸ááᯠáážáąá¸áá˝áąá¸á áąáááşááźá áşáááşá ááąáŹááşáááşá¸áááşá¸áá áşááŻáážáááąá¸áááş...
Lamport ááŹááŽ
áá°áááŻáˇá áĄáááşá¸ááąáŹááşá¸áááşá Lamport Clock áááŻáááşáážáŹ á¤áážáŽáááŻáĄáŹá¸ááŹá¸áážáŻááťáŹá¸ááᯠLamport Clock ááŻááąáŤáşááąáŹ scalar ááŻááşááąáŹááşááťááşáĄááźá áş ááąáŤááşááŹá¸áááşá
scalar function áááş abstract number áĄááťááŻáˇááźá áşáááşá ááŻáášáááĄááťáááşáᯠáááźáŹááááąáŤáşáááşá áá˝á˛áááŻááşá¸áá˝ááş á¤ááąáŹááşáᏠáááŻá¸ááŹáááşá ááŻááşáááşá¸á ááşáĄáá˝ááş áááşáážááááážáááŹá¸áááˇáş ááąáŹááşááŹáááş áááşááąáˇááťáşáá áşááŻá áŽááᯠááąá¸áááŻáˇáááşá ááŻááşáááşá¸á ááşááťáŹá¸áááş áááşáá°ááťáááŻááşááźáŽá¸á áááşá¸áááŻáˇáááş ááŻáśá¸ááá˝á˛ááźáŹá¸ááźáŹá¸ááŹá¸ááąáŹáĄááťáááşááťáŹá¸ áážááááŻááşáááş áááşáážáŹá¸ááŤáááşá áááşáááŻáˇáááşáááŻá áąááŹáá° á áá áşáááş ááŹááŽááᯠáááŻáááŻáˇááąáŹ á áŹáááŻááąá¸áááŻáˇáážáŻááźááˇáş ááťáááşáážáááąá¸áááşá á¤ááá ášá áá˝ááşááŹááźá áşááááşá¸á
áážááşá¸áážááşá¸áááşá¸áááşá¸ááá áąáááşáĄáá˝ááş áĄáááŻááŤááźáŽá¸ááŹá¸ááąáŹ shard ááᯠáážá áşáááŻááşá¸áá˝á˛ááŹá¸áááş- áá°áááşááťááşá¸ááťáŹá¸áááş á áŻá ááşá¸áážáŻáĄáááŻááşá¸áá áşááŻááŤáážáááąáŹ node áá áşááŻáá˝ááş ááąáááŻááşáááŻááşááźáŽá¸ Feed áááş á¤á áŻá ááşá¸áážáŻáĄáááŻááşá¸áá áşááŻááŤáážáááąáŹ áĄááźáŹá¸ node áá˝ááş ááąáááŻááşáááŻááşáááşá áá°áááŻáˇ áááşááᯠááŻááşá¸áá˝ááşáááŻááşáááşáááŻáᏠáážááşá¸ááŤáááşá ááááĄááşáááş âááŻáśáá°ááŹá¸áááşâá áááŻáˇááąáŹááş áá°áááşááťááşá¸ááťáŹá¸áᯠááźáąáŹááááˇáşáááşá áĄáááşá Feed áááş Friends ááťáŹá¸á áŻá ááşá¸áážáŻáá˝ááşáážáááąáŹ Friends ááťáŹá¸ááᯠáážáŽáááŻáĄáŹá¸ááŹá¸áážáŻááťáŹá¸ááᯠáááąá¸áááŻáˇáááťááşá¸ Feed áááŻááźááááşáááŻááşááźáąáŹááşá¸ áĄáŹáááśáá áşááťááŻá¸ááťááŻá¸áááąá¸ááŤáá ááťá˝ááşáŻááşááąáŹáşááźáá˛áˇáááˇáşáĄááźáąáĄááąáĄáááŻááşá¸ ááťá˝ááşáŻááşáááŻáˇááážááááşááźá áşáááşá
Feed ááąáŤáşáážá áááşááźááşáĄááťáááşáááş ááŻáášáááááşá¸ááťááť áááŻá¸ááŹáááşááᯠáááşááźááşááááş-
áááŻáˇááźáąáŹááˇáş ᤠLamport Clock áážááˇáş Causal ááŽáá˝ááşáážáŻ (Lamport Clock áážááááˇáş áážááşá¸ááźááŹá¸áááş) áááş á¤áĄááŹááźá
áşáááş- áĄáááşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş Events A áážááˇáş B áážáááŤá Event B áááş Event A* ááąáŤáşáá˝ááşáá°áááşáááşá áááŻáˇááąáŹááş Event A á LogicalTime áááş A áááşáááşá¸ááąááŤáááşá Event B ááž LogicalTime
* áá áşááŤáá áşááśáá˝ááş B ááááŻááşáᎠA ááźá áşááťááşáá˛áˇáááşá áááŻáááŻáááşáážáŹ B ááááŻááşáᎠA ááźá áşáá˛áˇáááş - á¤áĄááŹáááş ááąáá°ááťááźá áşááťááşáá˛áˇááąáŹ áĄááźá áşáĄááťááşáĄá áŻáĄááąá¸áá áşááŻááŻáśá¸ááᯠáá áşá áááşáá áşáááŻááşá¸ áĄááááˇáşááąá¸áááˇáş áááşá ááşáážáŻáá áşááŻááźá áşáááşá
áááˇáşááťááşáááşáááş ááážááşááŤá á¤áááşáážáŹ Lamport Clock á áĄááá áĄáŹá¸áááşá¸ááťááşááťáŹá¸áá˛ááž áá
áşááŻááźá
áşááźáŽá¸ áá
áşá
áááşáá
áşáááŻááşá¸ áážáŹáá°áážáŻááźá
áşáááşá áá
áşááźááŻááşáááşáááşá¸ áĄááźá
áşáĄááťááşááťáŹá¸áĄááźáąáŹááşá¸ áĄáá°áĄááá
áşáᯠáážááááşá áááŻáááŻáááşáážáŹ (A áááźá
áşáᎠB) áážááˇáş (A áááźá
áşáᎠB) ááźá
áşáá˛áˇááąáŹ áĄááźá
áşáĄááťááşááťáŹá¸ááźá
áşáááşá áĽáááŹáá
áşááŻáááş áĄááźáŹá¸áá°áá
áşáŚá¸áĄáŹá¸ áá°áááşááťááşá¸áĄááźá
áş ááŽáááŻááŹáˇááşá ááźááŻááşáá°ááąáŤááşá¸áááˇáşááźááşá¸ááźá
áşáááş (áĽááᏠááŽáááŻááŹáˇááşáááşáááŻááşá Sheldoná)á
á¤áĄááŹáááş Lamport ááŹááŽááťáŹá¸áážááˇáş áĄááŻááşááŻááşááąáŹáĄááŤáá˝ááş áááźáŹáááĄááŻáśá¸ááźáŻááąáˇáážááááˇáş áááŻááşáááŻááşáážáŻááźá
áşáááş- áááşá¸áááŻáˇáááş ááŻááşááąáŹááşááťááşááᯠáĄáááĄááťááźááˇáşáᏠá¤ááźá
áşáááşááťáŹá¸ááąáŤáşáá˝ááşáá°áááşáááşáᯠááąáŹááşááťááşááťááźáááşá áááşá¸áááşá¸áá
áşááŻáááş áážááşááąáŹááźáąáŹááˇáşááźá
áşáááş- LogicalTime A áááş LogicalTime B áááşáááşá¸ááŤáá B áááş A ááááŻááşááŽáááźá
áşáááŻááşááŤá áááŻáááşá ááźá
áşááąáŹááşá¸ááźá
áşáááşá
Vector ááŹááŽ
Lamport ááŹááŽá ááŻáášáááááşá¸ááť áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻáááş Vector Clock ááźá
áşáááşá áááşá¸áááŻáˇáááş á¤ááąááŹáá˝ááşáážáááąáŹ node áá
áşááŻá
áŽáá˝ááş áááşá¸áááŽá¸ááźáŹá¸ááŹááŽááťáŹá¸ááŤáááşááźáŽá¸ áááşá¸áááŻáˇááᯠvector áá
áşááŻáĄááźá
áş ááąá¸áááŻáˇááźááşá¸áá˝ááş áá˝á˛ááźáŹá¸áááşá
á¤ááá
ášá
áá˝ááşá vector á ááŻááá˝ážááşá¸ááááşá¸áááş Feed áĄáá˝ááş ááŹáááşáážááááşááᯠáááşáá˝áąáˇááźááşáááźáŽá¸ vector á ááááĄáá˝ážááşá¸áááş Friends (ᤠnode áá
áşááŻá
áŽ) áĄáá˝ááşááźá
áşáááşá ááᯠáááşá¸áááŻáˇ áááŻá¸ááŹááŤáááş- "Feed" á ááŻááĄáá˝ážááşá¸ááááşá¸ áááŻá¸ááŹáááş - 1á 2á 3-
Vector Clock á ááŹááźáąáŹááˇáş áááŻááąáŹááşá¸ááŹáá˛á áĄáááşááźáąáŹááˇáşáááŻááąáŹáş áááşá¸áááŻáˇáááş áááˇáşáĄáŹá¸ áááşáááˇáşááźá
áşáááşááťáŹá¸ áááźááŻááşáááşáááşá¸ááźá
áşááźáŽá¸ áááşá¸áááŻáˇáááş ááá°ááŽááąáŹ node ááťáŹá¸áá˝ááş ááźá
áşááťááşááąáááşááᯠáá˝ááşááťááşáááŻááşááąáŹááźáąáŹááˇáşááźá
áşáááşá áááşá¸áááş MongoDB áá˛áˇáááŻáˇááąáŹ áá˝á˛ááźááşá¸á
áááşááźáŹá
áá
áşáĄáá˝ááş áĄáá˝ááşáĄááąá¸ááźáŽá¸ááŤáááşá ááŤááąáááˇáş áĄá˛ááŤá áĄáśáˇáŠá
áᏠááąáŹááşá¸ááąáááˇáş áĄá˛ááŤááᯠááŤáááŻáˇá ááá˝áąá¸áá˛á áĄá˛ááŤá áĄáááşá¸ááąáŹááşá¸ááźáŽá¸ ááŤáááŻáˇáá˛áˇ áááŻááşáááşáááˇáş...
áĄáááşá ááťá˝ááşáŻááşáááŻáˇáá˝ááş shard 10 áážáááŤáá áááşá¸ááᯠcompress áááŻáˇáááŻááş áĄááźáŹá¸áá áşááŻááŻáážááˇáş ááąáŤáşááŹááťážááşáááş áĄá áááşáĄáááŻááşá¸ 10 ááᯠáá˝ážá˛ááźáąáŹááşá¸ááąá¸áááŻááşáááş áááŻááşá፠- payload ááẠᤠvector áá áşááŻááŻáśá¸á volume áááş áĄáááťáŹá¸á á˝áŹ ááąá¸áááşááąááąá¸áááşá áááŻáˇááźáąáŹááˇáş ááťá˝ááşáŻááşáááŻáˇá áážááŻáśá¸ááŹá¸áážááˇáş áá˝áŹá¸ááťáŹá¸ááᯠáĄáśááźáááşáᏠá¤ááťááşá¸áááşáážáŻááᯠá á˝ááˇáşáá˝ážááşáᏠáĄááźáŹá¸áááŻáˇ áááşáá˝áŹá¸áá˛áˇáááşá
Spanner TrueTime áĄááŻááźá°ááŹááŽ
Spanner áĄááźáąáŹááşá¸ ááŹááşáááşá¸áá áşááŻááşáážááááşáááŻáˇ ááźáąáŹáá˛áˇáááşá á¤áĄááŹáááş XNUMX ááŹá áŻá áĄáśáááşáá˝ááşááťááźá áşááąáŹ áĄááşáááşááŹááŽááťáŹá¸á GPS áááşáá°ááźáŻááźááşá¸ ááźá áşáááşá
ááŹáĄááźáśáá˛? âSpannerâ áááş áááźáŹááąá¸ááŽááááş áá°ááťáŹá¸áĄáá˝ááş áĄááŻáśá¸ááźáŻáá˝ááˇáşááážááá˛áˇáááˇáş Google á áá áşáá áşááŻááźá áşáááş (áááşá¸áááŻáˇá SQL áááˇáşáá˝ááşá¸ááŹá¸áááş)á áá˝áąááąá¸áá˝áąáá°áá áşááŻá áŽáá˝ááş áĄááťáááşááśááááşááąáŤááşá¸áĄááťááŻáˇááŤáážááááşá áĄááťáááşááᯠáááşáá°ááťá áąááąáŹááźáąáŹááˇáş*á ááźá áşáááşáá áşááŻá áŽááᯠáĄááťáááşáá áşááŻá ᎠáááşáážááşáááŻááşáááş - áĄááşáááşááŹááŽááťáŹá¸áá˝ááş á áąáŹááˇáşáááŻááşá¸ááťáááşáá áşááŻáážááááşá áááŻáˇááąáŹááş ááá°ááŽááąáŹáĄááťáááşááᯠâááźá áşááťááşâ áááş áĄáŹáááśááŤáááşá
áááŻáˇááźáąáŹááˇáşá ááąááŹááąáˇá
áşáááŻáˇ á
áŹááąá¸ááŻáśááźááˇáş áĄááťáááşáĄáááŻááşá¸áĄááŹáá
áşááŻáĄáá á
áąáŹááˇáşáááŻááşá¸ááźááşá¸ááźááˇáşá ááźá
áşáááşá á
áŽá
áĽáşáááŻááşá
á˝ááşá¸ááᯠáĄáááŻáĄááťáąáŹááş áĄáŹáááśááŤáááşá áááşá¸áááŻáˇáá˝ááş áá°áĄá á
áááşáá°á¸ááźááˇáşáááŻááşáááˇáş áĄááźááşá¸áááşááŻáśá¸ ááŽáá˝ááşáážáŻááŻáśá
áś áážááááş - áááşá¸áážáŹ ááźááşá ááŽáá˝ááşáážáŻááźá
áşáááşá
* á¤áááşáážáŹ Lampart ááŹááŽááťáŹá¸áĄáá˝ááş áĄáááááźáżááŹááźá áşáááş - áááşá¸áááŻáˇáááş ááźááˇáşááąáááˇáşá áá áşááťáŹá¸áá˝ááş áááşááąáŹáˇááž áááşáá°áááťááŤá áááşá¸áááŻáˇáááş áá˝á˛ááźáŹá¸áááŻááşáááşá NTP áážááˇáşáááşá áááşá¸áááŻáˇáááş áĄáá˝ááşáĄááŻááşáááŻááşááąá¸ááŤá "Spanner" áá˝ááş áĄááşáááşááŹááŽáá áşáᯠáážáááźáŽá¸ áááşáá°ááźáŻááźááşá¸ áááş áááŻááşááááŻá áášáááˇáş ááźá áşáááş á
ááŤáááŻáˇááŹááźáąáŹááˇáşááá˝áąá¸ááťááşáá˛áˇááŹáá˛á ááťá˝ááşáŻááşáááŻáˇááĄááŻáśá¸ááźáŻáá°ááťáŹá¸áááş áááşáááşááŹá¸ááąáŹ áĄááŻááźá°ááŹááŽáá áşááŻáśá¸áážááááşáᯠááťá˝ááşáŻááşáááŻáˇ ááá°áááŤá áááşá¸áááŻáˇ ááąáŤáşááŹááąáŹáĄááŤá áááşááşááąáŹáˇáááŻááşá¸áá˝ááş áááşááąáŹááşááŹá¸áááˇáş áĄáá˝ááşáĄáąá¸ááźááąáŹ GPS áááşáá°ááźáŻááźááşá¸ááťááŻá¸ áážáááááˇáşáááş - áááŻáˇááąáŹááş ááŻááşáá˛áˇ... áááŻáˇááąáŹáş áááŻáĄááťáááşáá˝ááş ááźá áşáááŻááşááťáąáĄááąáŹááşá¸ááŻáśá¸áážáŹ Amazoná Base Stations ááźá áşáááş - ááŤáááŹáážááşááťáŹá¸áĄáá˝ááş ... áááŻáˇááźáąáŹááˇáş ááťá˝ááşáŻááşáááŻáˇáááş áĄááźáŹá¸ááŹááŽááťáŹá¸ááᯠáĄááŻáśá¸ááźáŻáá˛áˇáááşá .
áááŻááşááá áşááŹááŽ
Causal ááŽáá˝ááşáážáŻááᯠááąááťáŹá áąááąáŹáĄááŤáá˝ááş á¤áĄááŹáááş MongoDB áá˝ááş áĄáážááşááźá áşááťáŹá¸ááźá áşáááşá áááşáááŻááťááŻá¸á ááşááźááŹáá˛á Hybrid áááş scalar áááşáááŻá¸áá áşááŻááźá áşáááşá áááŻáˇááąáŹáş áááşá¸áá˝ááş áĄá áááşáĄáááŻááşá¸áážá áşááŻáážááááş-
- ááááĄááťááşáážáŹ Unix ááąááş (âáá˝ááşááźá°ááŹááášááŹáĄá â áážá á á áášáááˇáşáááşááťážááźáŹáá˝áŹá¸áááş)á
- ááŻááááááş áĄáááşá¸áááşáááŻá¸ááźááşá¸á 32-bit unsigned int áááşá¸ááźá áşáááşá
ááŤááŤáá˛á ááááşááąáŹáˇá á¤ááťááşá¸áááşáážáŻ áážááááş- áĄááťáááşáĄáá˝ááş ááŹáááşáážáááąáŹ áĄáááŻááşá¸áááş ááŹááŽáážááˇáş áĄááťáááşáááŻááşá¸ áá áşááźááŻááşáááşá¸ ááźá áşááąáááşá áĄááşááááşáá áşáᯠááźá áşááąáŤáşáááŻááşá¸á á¤áĄáááŻááşá¸ááᯠááŹááŽáážááˇáş áááşáá°ááźáŻááźáŽá¸ áĄááťáááşáááş áĄááźá˛áááşá¸ áááŻáážááşáááş áááŻáˇáááŻááş áááşá¸ááŤá¸ááźáąáŹááşá¸ áá˝ááşááąáŤáşááŹááźáŽá¸ áááŻá¸ááźááşá¸áááş áááˇáşáĄáŹá¸ áĄááťáááşáá áşááťáááşáááşá¸áá˝ááş ááźá áşáá˝áŹá¸áá˛áˇáááˇáş áĄááźá áşáĄááťááşááťáŹá¸áĄááźáŹá¸ áááŻááşá¸ááźáŹá¸áááŻááşá áąááŤáááşá
áááşá¸áááş MongoDB áĄáá˝ááş áĄáááşááźáąáŹááˇáş áĄááąá¸ááźáŽá¸ááááşá¸á áĄáááşááźáąáŹááˇáşáááŻááąáŹáş áááşá¸áááş áááˇáşáĄáŹá¸ áĄááťáááşáĄáááŻááşá¸áĄááŹáá áşááŻáá˝ááş áĄáááş á áŹá¸ááąáŹááşáááŻááşáĄááťááŻáˇááᯠááźáŻááŻááşáááŻááşá áąááąáŹááźáąáŹááˇáşá áááŻáááŻáááşáážáŹ áĄááźá áşáĄááťááşááᯠáĄááťáááşáĄáááŻááş áĄáá˝ážááşá¸ááźáŻááŹá¸áááşá áĄááťááŻáˇááąáŹááźá áşáááşááťáŹá¸ áááŻáĄááşáááˇáşáĄá፠áááşá¸áááş áĄááąá¸ááźáŽá¸ááŤáááşá ááąááŹááąáˇá áşáá áşááŻáĄáá˝ááşá ááźá áşáááşááťáŹá¸áááş áĄááťáááşááŹááá áşááŻáĄáá˝ááşá¸ ááźá áşááąáŤáşáá˛áˇááąáŹ ááąááŹááąáˇá áşáá˝ááş áĄááźáąáŹááşá¸áĄáá˛ááťáŹá¸ááźá áşáááşá
áĄááąá¸ááźáŽá¸ááŻáśá¸áĄááźáąáŹááşá¸áááşá¸ááᯠáááşá¸ááᯠááŤááźáąáŹááźáááş (ááťáąá¸áá°á¸ááźáŻááźáŽá¸ áááşáá°áˇáááŻááž áááźáąáŹááŤáá˛áˇ)á MongoDB OpLog áá˝ááş á áŻá ááşá¸ááŹá¸ááąáŹá áĄáá˝ážááşá¸ááááşá¸ááąááŹáážááˇáşáá°ááąáŹááźáąáŹááˇáş áááşá¸ááᯠááťá˝ááşáŻááşáááŻáˇááźáŻááŻááşáá˛áˇááźááşá¸ááźá áşáááşá OpLog áááş ááąááŹááąáˇá áşáĄáá˝ááşá¸ ááŻáśá¸áááźáąáŹááşá¸áá˛áážáŻááťáŹá¸áĄáŹá¸ááŻáśá¸ááŤáááşáááˇáş ááąááŹáá˝á˛áˇá ááşá¸ááŻáśáá áşááŻááźá áşáááş- áááşá¸áááŻáˇáááş OpLog áááŻáˇ áŚá¸á á˝áŹáá˝áŹá¸ááźáŽá¸ááąáŹááş áááşá¸ááᯠááŻáśáá°áá°á¸ááŹá¸ááąáŹáááşá á˝á˛ áááŻáˇáááŻááş áá˝á˛ááźááşá¸á áááşááźáŹáááˇáşááąáˇá á˝á˛áá áşááŻáĄááźá áş ááááşá¸áááşá¸ááźááşá¸áá˝ááş áááşá¸áááŻááşáááŻááşáĄááŻáśá¸ááźáŻááŤáááşá
ááŤá áĄááá áĄááźáąáŹááşá¸áááşá¸ááŤá áááŻáˇáááŻááşá ááąááŹááąáˇá áşáá áşááŻáááşááąáŹááşáááşáĄáá˝ááş áááşáá˝áąáˇááťááąáŹ áááŻáĄááşááťááşááťáŹá¸áááşá¸ áážáááąááąá¸áááşá áááŻáááŻáááşáážáŹ áááşá¸áááş áááŻá¸áážááşá¸áááˇáşáááş - ááŻááşáĄáááşá¸áááşá ááźááşáááşááąá¸ááŹá¸áááşáážááˇáş á ááşá¸áááşáááşáááŻáĄááşáááˇáş ááźá áşáááŻááşáááťáž ááťááŻá¸áá˛áˇááąáááˇáşáĄááŹáĄáááşá¸áááşáᏠááźá áşáááˇáşáááşá ááťá˝ááşáŻááşáááŻáˇá oplogs ááťáŹá¸ááᯠhybrid ááŹááŽááťáŹá¸ááźááˇáş áĄáá˝ážááşá¸ááśáááźááşá¸áážáŹ ááťáŹá¸á á˝áŹáĄááąáŹááşáĄáá°ááźá áşááźáŽá¸ áážááşáááşááąáŹáá˝áąá¸ááťááşáážáŻááźáŻááŻááşáááŻááşá áąááŤáááşá áááşá¸áááş áĄáážááşááááş ááąá¸áááşáá˛áˇááźáŽá¸ áááááŻáśá¸ ááá°ááŹááŻáśá áśáá˝ááş áážáąáŹáşáááşá á˝áŹ ááŻááşááąáŹááşáá˛áˇáááşá áĄáááşá¸áááŻááşáááşá
ááŹááŽááᯠáááşáá°ááźáŻááźááşá¸á
áááášááśá áŹááąááťáŹá¸áá˝ááş ááąáŹáşááźááŹá¸ááąáŹ áááşáá°ááźáŻááźááşá¸áááşá¸áááşá¸ááťáŹá¸á á˝áŹáážááááşá ááá°ááŽáá˛áˇ shard áážá áşááŻáážááá˛áˇáĄá፠áááşáá°ááťáĄáąáŹááşááźáąáŹááŹááŤá ááŻáśáá°áĄáá˝á˛áá áşááŻáážáááťážááşá áááşáá°ááźáŻáááşááááŻáĄááşááŤ- áááşá¸áááş "áá áşááŻáááşá¸ááąáŹááŹá ááŹ" ááźá áşááŤáááş; ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááźáąáŹááşá¸áá˛áážáŻááťáŹá¸áĄáŹá¸ááŻáśá¸ ááťáá˝áŹá¸áááŻááşáááˇáş OpLog áá áşááŻáážááááş - á¤áĄááźáąáĄááąáá˝ááşá áĄááŹáĄáŹá¸ááŻáśá¸ááᯠ"Oplog" áááŻááşáááŻááşáá˝ááş áááˇáşáá˛á áŽáá°ááŹá¸ááźáŽá¸ááźá áşáááşá ááŤááąáááˇáş ááťá˝ááşááąáŹáşáááŻáˇáážáŹ ááá°ááŽáá˛áˇ shard áážá áşááŻáážááááşá time synchronization á ááŽááąááŹáážáŹ áĄááąá¸ááźáŽá¸áááşá á¤áááşáážáŹ vector clock á áááŻá áĄááąáŹááşáĄáá° ááźá áşá áąááŤáááşá ááŤááąáááˇáş ááťá˝ááşááąáŹáşáááŻáˇáážáŹ áá°áááŻáˇ ááážáááŤáá°á¸á
ááŻááááá
áşááŻáááş áááˇáşááťáąáŹáşáááş - áááşá¸áááş "áážááŻáśá¸ááŻááşááźááşá¸" ááźá
áşáááşá áĄááťáááşáá°áá
áşáááŻááşá¸áá˝ááş ááźá
áşááąáŤáşááąáŹ áĄááťááşááźáĄááťááŻáˇááᯠááážááşáááŻááşáááşá áááŻáˇááąáŹáş Heartbeats áážáąá¸áá˝ááşá¸áááşá ááťá˝ááşáŻááşáááŻáˇáááş ááťá˝ááşáŻááşáááŻáˇá client ááᯠlatency áááąá¸áááŻááşááŤá
á á áşáážááşááąáŹáĄááťáááşáááş áĄáśáˇááźáá˝ááşááąáŹááşá¸ááąáŹáĄááŹááźá áşáááşá áááŻáˇááąáŹáşá ááąáŹááşáá áşááźáááşá áááşá¸áááş áĄááŹáááşááźá áşáááŻááşáááş... áááşá¸ááᯠAtlas áá˝ááş ááŻááşááąáŹááşáááŻááşááąáŹáşáááşá¸á ááťááşááźááşááąáŹ âAmazonâ time synchronizers ááťáŹá¸áááşá¸ áážáááąááźáŽááźá áşáááşá ááŤááąáááˇáş áá°áááŻááşá¸áĄáá˝ááş áááááŻááşááŤá
áĄáááşá¸áĄááťááşá¸ááźáąáŹááźááşá¸áááş áááşááąáˇááťáşááťáŹá¸áĄáŹá¸ááŻáśá¸ áĄááťáááşááŤáááşáááˇáşáĄááťáááşááźá áşáááşá ááŤá áááˇáşáážááşá¸ááźáąáĄáŹá¸ááźááˇáş ááťá˝ááşááąáŹáşáááŻáˇ ááŻáśá¸ááŤáááşá node ááťáŹá¸á driver á data node router ááťáŹá¸ááźáŹá¸áážá áááşááąáˇááťáşáááŻááşá¸á MongoDB áĄáá˝ááş ááŻáśá¸ááĄááŹáĄáŹá¸ááŻáśá¸áááş ááźááşá ááşáá áşááťááŻá¸ááźá áşáááşá áĄááŻááşááŻááşáááˇáşááŹááŽááŤáážáááąáŹ database áĄá áááşáĄáááŻááşá¸áá áşááŻááźá áşáááşá áááşá¸áááŻáˇáááş ááąááŹáááŻááşá¸áá˝ááş ááąáŤááşá¸á ááşáĄááťáááşá áĄáááášááŹááşáážáá áááşá¸ááᯠáá°á¸á ááşáááşá 64 bits ááŹá¸? ááŤáááźá áşáááŻááşáááşá ááŤáááźá áşáááŻááşáááşá
áĄáŹá¸ááŻáśá¸á áááşáááŻáĄááŻááşááŻááşáá˛?
á¤áá˝ááş ááťá˝ááşáŻááşáááş áĄáááşá¸áááşáááŻáááŻáá˝ááşáá°á áąáááş ááŻáśá áśáá°áĄáá˝á˛áá áşááŻááᯠááźááˇáşááąáááşá áá°ááááşá¸áá˛áˇ áĄáááşáááşá¸ áážááááşá Secondary áááş ááŻáśáá°áá˝áŹá¸ááźááşá¸ááᯠááŻááşááąáŹááşááźáŽá¸ Primary áážááˇáş ááŻáśá¸ááááşáá°áááťááŤá
áááˇáşáá˝ááşá¸áážáŻáá áşááŻáááş áĄááťáááşáááşáááŻá¸áá áşááŻááźááˇáş "Primery" áá˝ááş ááźá áşááąáŤáşáááşá á¤áááˇáşáá˝ááşá¸áážáŻáááş áĄááťáŹá¸ááŻáśá¸ááźá áşááťážááş áĄáá˝ááşá¸áááŻááşá¸ááąáá˝ááşáážáŻááᯠ11 áááŻá¸á áąáááşá áááŻáˇáááŻááş ááŹááŽáááşáááŻá¸ááťáŹá¸ áááŻááťáŹá¸ááąááŤá ááŹááŽáááşáááŻá¸ááťáŹá¸ááᯠá á áşááąá¸ááźáŽá¸ ááŹááŽáážááˇáş áááşáá°ááźáŻáááşááźá áşáááşá ááŤá áááşá¸ááᯠáĄááťáááşáá˛áˇáĄááťáž á ááşá¸ááŻáśá¸áááŻááşááááşá
áĄááśáá˝ááşá¸ááźáŽá¸ááąáŹááş áĄááąá¸ááźáŽá¸ááąáŹ áĄáááŻááşáĄáááˇáşáá áşáᯠááźá áşááąáŤáşááŹáááşá ááŹááŽáááş "MongoDB" áá˝ááşáážáááźáŽá¸ "Oplog" áááŻáˇ á áŹááąá¸áááˇáşáĄááŤáᏠáááŻá¸ááŹá¸áááşá á¤áááşáážáŹ á áá áşá áĄááźáąáĄááąááᯠááźáąáŹááşá¸áá˛á áąááąáŹ ááźá áşáááşááźá áşáááşá ááášááááşááąáŹááşá¸ááŤá¸ááťáŹá¸áĄáŹá¸ááŻáśá¸áá˝ááşá áááşááąáˇááşáťáá áşááŻáááş node áááŻááááąáŹáĄááŤáá˝ááşááźá áşáááşáá áşááŻááŻáá°ááááş- áááşááąáˇááťáşááąáŹááşáážáááąááźáŽááźá áşááźáŽá¸á áááŻáááŻáááşáážáŹá áá áşáááşáááşá¸ááĄááźáąáĄááąáááŻáˇááźáąáŹááşá¸áá˛áá˝áŹá¸ááźáŽááźá áşáááşá
á¤áááşáážáŹ ááŻááąááááźáŻááŻááşááąá ááşáĄáá˝ááşá¸ á¤á áŹááᯠáááşáááŻáˇáĄáááášááŹááşáá˝ááˇáşáááşááᯠááŻáśá¸ááážááşá¸áážááşá¸áááşá¸áááşá¸ááááááąá¸ááąáŹááźáąáŹááˇáşááźá áşáááşá "Oplog" áá˝ááş ááąáŹááşááźááşáááşááźááşá¸ááážáááŤáá áááşá¸ááᯠáááşáááˇáşáááşá¸áážááˇáşááťáž áĄáááášááŹááşááąáŹááşáá°áááşáááŻááşááźáąáŹááşá¸áážááˇáş á áá áşááĄááźáąáĄááąááźáąáŹááşá¸áá˛áážáŻáááş "Oplog" áá˝ááş áááşááąáŹááşáážáŻáá áşááŻááŹááźá áşááźáąáŹááşá¸ ááťá˝ááşáŻááşáááŻáˇááąááťáŹááááŤáááşá áááşá¸áááş ááťá˝ááşáŻááşáááŻáˇáĄáá˝ááş áĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááŻá¸áážááşá¸á áąáááş- ááąáŹáşáááşáááş áááşá¸ááᯠáááŻá¸áážááşá¸á áąááźáŽá¸ ááťá˝ááşáŻááşáááŻáˇáĄáŹá¸ ááŻáśá áśáá°áĄáá˝á˛áá áşááŻáĄáá˝ááşá¸áážááˇáş áĄááźáŹá¸áĄááŻáśá¸áááşááąáŹáĄááŹááťáŹá¸á á˝áŹááᯠá áŻá ááşá¸áááŻááşá áąááŤáááşá
âOplogâ áá˝ááşááąá¸ááźáŽá¸ááŹá¸áááşáááŻá¸ááᯠááźááşááąá¸áááş - âOplogâ áá˝ááş á¤áááşáááŻá¸ááŤáážáááźáŽá¸ áááşá¸ááĄááťáááşáááş 12 ááźá áşáááşááᯠááťá˝ááşáŻááşáááŻáˇááááŤáááşá áááŻááźáąáŹááŤá á áŹáááşááźááşá¸áááş áĄááźáŹá¸ node áážá áááşáááş (Secondary) ááźá áşááźáŽá¸ áááşá¸áááş ááźáŽá¸ááąáŹááş ClusterTime áá˝ááş ááąá¸áááŻáˇááŤáááşá ááááşá¸á ááŹá¸á áá°á¤áááŻáˇáááŻáááşâ âáĄáááşá¸ááŻáśá¸ áá áážá áşááąáŹááşáááŻááşá¸ ááŤáážáááŻááş áá áážá áşááŹááŹááĄáá˝ááşá¸áážáŹ ááźá áşááťááşáá˛áˇáá˛áˇáĄááŹáĄáŹá¸ááŻáśá¸ááᯠáááŻáĄááşáááşâ (áĄáááşááŻáśáá˝ááşááźááˇáşááŤ)á
áááşá¸ááᯠCausal a áááŻááşááŽáážáŻ (CAT) ááŻááąáŤáşáááşá á¤áááşáážáŹ áĄááťáááşáĄáááŻááşá¸áĄááźáŹá¸áá áşááŻááźá áşáááşáá°ááąáŹ ááŽáĄááŻááŽáĄáá áááşá¸áááş áá°áˇáĄáááŻááᯠáááŻááşááŽááąááŤáááşá á¤ááá ášá áá˝ááşá á¤áááşáážáŹ áĄááťáááş 12 áá˝ááşááźáŻááŻááşáá˛áˇááąáŹá áá áşááĄááźáąáĄááąááźá áşáááşááŻááťá˝ááşáŻááşáááŻáˇááźáąáŹáááŻááşáááşá
Primary áážááąááŹáááŻááŻáśáá°áá˝áŹá¸áááş Secondary áááŻáááŻáĄááşááąáŹáĄááŤáá˝ááşá¤áĄááťááŻá¸áĄá áŹá¸áááşá¤áá˛áˇáááŻáˇááąáŹáĄááźáąáĄááąááťáŹá¸áááŻáĄááŻáá°ááąáŹááźáąáŹááˇáşá áá°á áąáŹááˇáşááąáááş... áááŻááąáŹáˇ ááąááŹááąáŹááşááŹááŤááźáŽ- áá°áááş á¤áááşáááŻá¸ááťáŹá¸ááᯠááźááşááąá¸áááşá
ááŤáĄááŻááşááŻáśá¸ áĄááŻááşááŻááşááŻáśááŤáá˛á ááŽá¸ááŤá¸á
"ááŽá¸ááŤá¸" áááŻáᏠááŹááᯠáááŻáááŻááŹáá˛á á¤áĄááŹáĄáŹá¸ááŻáśá¸ áááşáááŻáˇááŻááşááąáŹááşáááşááᯠáááşááźáŽá¸ ááŹá¸áááşáá°áĄááťááŻáˇáážáááąáááşáᯠáá°áááźááŤá ááŻáˇá ClusterTime ááźá áşááąáŤáşááŹáááŻááşá¸á áááşá¸áááş áĄáá˝ááşá¸áááŻááşá¸ááŻáášááááŹááŽááᯠáĄááşááááşááŻááşáᏠááąáŹááşáá áşááŻáááş áá áşááŻááźáŽá¸áá áşáᯠáááŻá¸ááŹáááşááᯠááťá˝ááşááąáŹáşááŹá¸áááşáá˛áˇáááşá á¤ááŻááşááąáŹááşááťááşáááş áááŻááşá¸ 20 ááźáŹáááşá á¤ááŻáášáááŻááşáááş áĄááźáŽá¸ááŻáśá¸ 64-áá áş ááśááŤááşááᯠáážáŻááşáááŻááşáááş áááŻááźááŤá ááŻáˇá
áĄáááşááźáąáŹááˇáş "áĄááŻááş" áĄáá˝ááşá¸ááŹááŽááᯠá¤áááşáááŻá¸ááźááˇáş áĄá áŹá¸áááŻá¸áááşááźá áşááąáŹááźáąáŹááˇáş (ááááŹáááşáážáŹá¸áááşáážáŹá á¤áĄááŹáááş ááźá áşáááŻááşááťáąáĄááźáŽá¸ááŻáśá¸ááźá áşááźáŽá¸ áááşáážááĄááťáááşáááş áááŻááźáŽá¸áááş)á áááŻáˇááąáŹááş "Oplog" áá˝ááş áááşááąáŹááşáážáŻáá áşááŻááźá áşááąáŤáşááŹáááşááźá áşááźáŽá¸á ááŹááŽááᯠáĄááźáŹá¸áá°áá áşáá áşááŻááźááˇáş áááŻá¸ááŹáááşááźá áşáááş - áááşá¸áá˝ááş áážáááąáááşááźá áşáááşá áĄááźááˇáşááŻáśá¸áááşáááŻá¸ááźá áşááŤá áą (áá°áá áşáĄáŹá¸ááŻáśá¸áážáŹ áááŻá¸áááŻá¸áážááşá¸áážááşá¸áá˛á áá˝áŹá¸á ááŹááąááŹááážááá°á¸)á unsaint ints)á
áááşá¸ááąáŹááşáááŻááşá¸áá˝ááş á áá áşáááş áááşáááˇáşáĄááŹáĄáá˝ááşáááᯠááŻáśá¸ááááşáážááşá¸áááŽáááŻááşááąáŹáˇááźáąáŹááşá¸ áááşáážáŹá¸ááŤáááşá áááşá¸ááᯠááźáŻááşááťááźáŽá¸ áááˇáşá ááşááŻáśáᏠááźáŻááŻááşáááŻááşáááş - áá°áááŻááşáááŻááş ááŻááşááąáŹááşáážáŻ áĄááťáŹá¸áĄááźáŹá¸á áĄááźááˇáşáĄáááážááááŻááşáážáŻ-
áááŻáˇáĄááźááşá áááşá¸ááᯠáĄááźáŹá¸áá
áşááąááŹáá˝ááş ááŻáśáá°áá˝áŹá¸ááŤáá áĄá
áŻáĄááąá¸áá
áşááŻááŻáśá¸ ááźáŻááşááťáá˝áŹá¸áááşá áááşáá°áááᯠáĄáá˝ááşááťááşááźááşáá˝ááşáá°á
á˝áŹ á
áŻá
ááşá¸áááŻááşáááˇáş ááŻáśá¸ááááşáááśáááŻááşááąáŹ áĄááźáąáĄááąáá
áşááŻá áááŻáˇááźáąáŹááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş á¤áĄáááŻááşáĄáááˇáşááᯠáĄááąá¸ááźáŽá¸ááŻáśá¸áĄááťáááşáá
áşááŻáĄááźá
áş áážááşáá°ááŤáááşá áááşáááŻááŹá¸ááŽá¸áááá˛?
ááťá˝ááşáŻááşáááŻáˇááááşá¸áááşá¸áážáŹ clusterTime ááᯠáááşáážááşáááŻá¸áááşááźá áşáááşá
á¤áááşáážáŹ áááşááąáˇááťáş (áĄááźáŹááąáŹááş á áŹááŹá¸ ááááŻááşááŽ) áá˝ááş ááąá¸áááŻáˇááŻáśááźá áşáááşá áááŻáˇááąáŹáş ááťá˝ááşáŻááşáááŻáˇáááş áááşáážááş (áĄááźáŹááąáŹááşá áŹááŹá¸) ááᯠá áááşááŻááşááŻááşáá˛áˇáááş-
áááşáážááşááᯠááŻáśááźáŻáśááąáŹ áááşáááşá¸ááťááşáĄáá˝ááşá¸á ááąááŹááąáˇá
áşáĄáá˝ááşá¸ ááááşá¸áááşá¸ááŹá¸áááˇáş ááąáŹáˇáá
áşááŻááźááˇáş ááŻááşááŻááşáááşá áááŻááşáááŻááşááŻááşááŻááşááźáŽá¸ áĄááşááááşááŻááşááŹá¸ááŤáááş (áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áááş áááşá¸áážááˇáşáááşáááşááźáŽá¸ ááŹáážáááźááşá)á hash áá
áşááŻááᯠááŻááşááąá¸ááźáŽá¸ áááşááąáˇááťáşáá
áşááŻá
áŽááᯠáááşááŽá¸ááźáŽá¸ áááşááśááážááááˇáşáĄá፠áĄáááşááźáŻáááˇáşáĄááŤáá˝ááş áááşáážááşááąá¸áááŻá¸áááşá
áá°áá˝áąáá˛áˇá
áááşáá˛áážáŹ âááŽáĄááŹá áááşááąáŹááşáážáąá¸áá˝áąá¸áá˝áŹá¸áá˛â áááŻáá˛áˇ ááąá¸áá˝ááşá¸áá
áşáᯠááąáŤáşááŹáááŻááşááŤáááşá áĄáá°á¸áááźááˇáş á¤áĄááşášááŤáááşááážáááŤá áááşá¸áááş ááťááşááźááşá
á˝áŹ ááŻááşááąáŹááşáááˇáşáááşáᯠáááˇáşáĄáŹá¸ ááŤááźáąáŹáá˛áˇáááşá
á¤ááá ášá áá˝ááş Causal ááŽáá˝ááşáážáŻááᯠáĄááŻáśá¸ááźáŻááźááşá¸áááş áĄáááşáĄááŹááᯠáááŻáááŻááááşá¸á áááşá¸áááş afterClusterTime áááˇáşáááşááťááşáááŻááźááááşááźá áşáááşá áĄá˛ááŤááážááááş ááŹáá˛ááźá áşááźá áş áááŻá¸áááŻá¸áááşáááŻá¸áá˝áą ááťáąáŹáşáá˝áŹá¸ááááˇáşáááşá ááŹá¸áážááşá¸ 3.6 áážá áááşá áĄáááşá¸áĄááťááşá¸ááźáąáŹááźááşá¸áááş áĄááźá˛áááşá¸áĄááŻááşááŻááşáááşá
ááťá˝ááşáŻááşáááŻáˇáááş á ááşáááşáááźááş áááşáážááşááťáŹá¸á ááťááŻá¸áááşááťáŹá¸ááᯠááŹá¸áá˛áˇááŤáá ááťá˝ááşáŻááşáááŻáˇá ááťááşá¸áááşáážáŻááťáŹá¸áážááˇáş áááŻáĄááşááťááşááťáŹá¸áážááˇáş ááááŻááşááŽáááˇáş áĄááşášááŤáááşááťáŹá¸ ááážááááˇáşáááŻááş á áá áşáĄáŹá¸ áážáąá¸áá˝áąá¸á áąáááşááźá áşáááşá ááŤááᯠááŤáááŻáˇááŹááŻááşáá˛áˇáá˛á
ááźááşááźááşááŻááşááŤá
ááŤáᏠáĄááąáŹáşááąá¸áááŻá¸áážááşá¸áá˛áˇ áĄááŹáá
áşááŻááŤá ááŤááąáááˇáş áážááˇáşáá˝ááşá á
áááşáááşá
áŹá¸á
ááŹááŤáᲠ- áĄá˛ááŤááᯠááťážááąáááŻááşáááş á áá
áşááąáŹááşááąáŹááşá á
áááşáááşá
áŹá¸ááááˇáşáááş á
áááşáážááşáááŻá¸ááŹá¸ááąáŹ ááąááŹááᯠááááşá¸áááşá¸áááş ááťá˝ááşáŻááşáááŻáˇáá˝ááş hash áá
áşááŻáážááááşá ááąááŹáĄáŹá¸ááŻáśá¸áááş cache áážááááˇáşáá˝áŹá¸áááş áááşáážáşáááş áááşáážááşááŹá¸ááąáŹáĄááťáááşááᯠáááşáážááşááááŻá¸ááąáŹáşáááşá¸ Range á áĄááťááŻáˇááąáŹáááşáááŻá¸ááťáŹá¸ááąáŹááşááŹááąáŹáĄááŤá ááťá˝ááşáŻááşáááŻáˇáááş Range áá
áşááŻáááŻááŻááşááąá¸ááźáŽá¸ ááąáŹááşááŻáśá¸ 16 bits áááŻááŻáśá¸áá˝ááşáᏠá¤áááşáááŻá¸ááᯠáááşáážááşááąá¸áááŻá¸áááş-
áááŻáááŻáˇááąáŹáááşáážááşáááŻááážáááźááşá¸ááźááˇáşá ááťá˝ááşáŻááşáááŻáˇáááş á
áá
áşáĄáŹá¸ áĄááźáááş 65 (áĄááąáŹáşááąá¸) ááźááşáááşá
áąáááşá áááşá¸áááş ááąáŹááşá¸áá˝ááşá
á˝áŹáĄááŻááşááŻááşáááş- ááťá˝ááşáŻááşáááŻáˇáááş á
ááşá¸áááşáážáŻááťáŹá¸ááźáŻááŻááşááąáŹáĄááŤá ááťá˝ááşáŻááşáááŻáˇáá˝ááş áááşáááŻááşáá˝ááşá¸ááśáážáŻáá
áşááŻááźáŻááŻááşááąáŹáĄá፠áĄááťáááşáááş áĄáážááşááááş áĄááźáááşááą 10 ááťáąáŹáˇáááşá¸áá˝áŹá¸áááşá áá˝á˛áá˝á˛ááąáá˛áˇáĄá፠ááŤá áĄááŻááşáááźá
áşáá°á¸áááŻáᏠáážááşá¸ááŤáááşá ááŤááąáááˇáş áááşáá˝áąáˇáĄááťááŻáśá¸ááá
ášá
áá˝áąáážáŹ áĄá˛ááŤá áĄáááşááźáąááŤáááşá Range signature áážááˇáş áááşáážááşááąáŤááşá¸á
ááşáážáŻáááş ááŻáśááźáŻáśááąá¸ááźáżááŹááᯠááźáąáážááşá¸ááąá¸áááşá
ááŤáááŻáˇ ááŹáááşáá°áá˛áˇáá˛á
á¤áĄááŹááž ááťá˝ááşáŻááşáááŻáˇ áááşáá°áá˛áˇááąáŹ áááşáááşá¸á áŹááťáŹá¸
- á
áááşáááşá
áŹá¸á
ááŹáá˝áą áĄááťáŹá¸ááźáŽá¸áážááááŻáˇ áá
ášá
ááşá¸áá˝áąá ááŹááşáááşá¸áá˝áąá ááąáŹááşá¸ááŤá¸áá˝áą áááşáááŻáˇ áááŻáááşá ááťá˝ááşáŻááşáááŻáˇáááş áĄááťááŻáˇááąáŹáĄááşášááŤáááşááťáŹá¸ááᯠááŻááşááąáŹááşááąáŹáĄá፠(áĄáá°á¸áááźááˇáş áááŻá ááťá˝ááşáŻááşáááŻáˇáááş áĄááąáŹááşá¸áĄáááşááźáŻááŻááşáááˇáşáĄááŤá á
áááşááźááˇáş) ááᯠááťá˝ááşáŻááşáááŻáˇáááşáážáŻááŹá¸áááşáááş áááŻáĄááşááŤáááşá áĄááťáááşáá°áááąáŹáşáááşá¸á ááťá˝ááşáŻááşáááŻáˇáážáááŹáĄáááşááᯠáážááşá¸áážááşá¸áááşá¸áááşá¸ááááŹá¸ááąáŹááźáąáŹááˇáş áĄáážááşááááşáĄááŻáśá¸áááşááŤáááşá áĄáá
áşáá˝ááşáážáááŹááŻáśáááąáŤáşáá°á¸ - ááŤáááşáá
ášá
ááşá¸áá˝áąááᯠáá°áááŻááşááŻáśááŤáá˛á
ááąááŻááťáĄáŹá¸ááźááˇáşá áááŹáážááşáá˝ááşááááˇáşáá áşááŻáážáááąáŹáĄá፠(áĽááᏠSigmon) - áá°áááŻááşá¸áááş á áááşáá°á¸áá áşááťáŹá¸ááᯠáĄáŹááŻáśá ááŻááşááźáááşá ááťá˝ááşáŻááşáááŻáˇá áĄááşááááŻááŽáááşáážááˇáş áááşáááşá áĄáá áşáááŹáá˛á á¤ááąááŹáá˝ááş áĄáá°á¸áĄáááşá¸ ááŹááž ááážáááŤá áĄáá áşáĄáááşá¸áááş ááťá˝ááşáŻááşáááŻáˇáážáááźáŽá¸ááŹá¸ááťááşá¸áááşáááşá¸ááťáŹá¸ááᯠááąáŤááşá¸á ááşááŹá¸áááˇáşááŻáśá áśááźááˇáş áááşáážáááąááŤáááşá áááŻáˇááźáąáŹááˇáşá áááááŻáśá¸áĄááťááşáážáŹ Lampart áážá áááşá ááášááááşááťáŹá¸áááŻáááşáááşááźá áşáááşá
- ááŻááşááŻááşáážáŻáá˝ááş áááŻáĄááşááťááşááťáŹá¸áááş ááŻáśá¸ááá˝á˛ááźáŹá¸áááşá á áááşáá°á¸áááşááąááŹáááşáá áşááŻáá˝ááş "áááşá¸ááźááşááąáŹ" ááąááŹááąáˇá áşááťáŹá¸áážááˇáş áááźáŻáśáá˝áąáˇáááąáŹáşáááşá¸ ááážááááŻááşáážáŻá latency áážááˇáş áĄáážáŹá¸ááśáááŻááşáážáŻáááŻááşáᏠááźáżááŹááťáŹá¸áážááááˇáş ááŹáááşáĄá á áşáĄáážááşáĄááŹááťáŹá¸ááźááˇáş ááťá˝ááşáŻááşáááş ááąááťáŹááŤáááşá
- ááąáŹááşááŻáśá¸áĄááťááşáážáŹ ááťá˝ááşáŻááşáááŻáˇáááş ááá°ááŽááąáŹ áĄáá°áĄáááťáŹá¸ááᯠááźááˇáşáážáŻááźáŽá¸ ááŻáśá¸ááá˝á˛ááźáŹá¸ááźáŹá¸ááŹá¸ááąáŹ ááąáŹááşá¸ááŤá¸ááťáŹá¸á
á˝áŹááᯠááťááşá¸áááşáážáŻáá
áşááŻáĄááźá
áş ááąáŤááşá¸á
ááşá¸áááş áááŻáĄááşááŤáááşá áĽáááŹáĄáŹá¸ááźááˇáşá áááşáážááşáááŻá¸ááźááşá¸áážááˇáşáááşáááşáááˇáşáĄáá°áĄááááş ááąááŻááťáĄáŹá¸ááźááˇáş Byzantine Failors áááŻááşáá°ááťáŹá¸áĄáá˝ááş áá˝ááˇáşááźáŻááťááşááááŻáááŻááąáŹáĄáá˝ááşá¸á Byzantine áá°ááťáŹá¸áĄáá˝ááş - áá˝ááˇáşááźáŻááťááşááááŻáááŻááąáŹáĄááźááşáááşáá˝ááşáážáááąáŹ Paxos ááááŻáááŻááąáŹááᯠáá°ááááˇáş ááąáŹááşá¸ááŤá¸ááž ááŹááŤáááşá ááąááŻááťáĄáŹá¸ááźááˇáşá á¤áááşáážáŹ ááťá˝ááşáŻááşáááŻáˇáĄáááĄááťáááşááźá
áşáááşá ááźáŽá¸áá˝áŹá¸ááŤááźáŽá
á¤ááąááŹáá˝ááş ááŻáśá¸ááĄáá áşáĄáááşá¸ááážáááŤá ááŤááąáááˇáş áĄáŹá¸ááŻáśá¸ááᯠááąáŹá ááşááźáŽá¸ááŹáá˛áˇ... Olivier ááŻááşááťááşáááşá¸á áĄáááášááŤááşááážááá°á¸á ááźááşáĽá ááááŻá¸ááá áşáá˛áˇ ááá˝áŹá¸ááŽá¸áá˝áąááᯠááŽáá˝ááşááźáŽá¸ááźáŽ... áĄááźáąáŹááşá¸áááąáŹáˇ Olivier ááŻááşááťááşááťááşá áĄáá°áá°ááŤáá˛...á
ááŽááŹáá˛áˇ ááźáŽá¸áááşá ááťáąá¸áá°á¸áááşááŤáááş!
ááąá¸áá˝ááşá¸ááťáŹá¸áááŻ
ááááááşááśáážááąá¸áá˝ááşá¸ (ááąáŹááş B ááŻáááşáá˝ážááşá¸áááş) - áĄá áŽáááşááśá áŹáĄáá˝ááşááťáąá¸áá°á¸áááşááŤáááş Mikhailá áĄááťáááşáá˛áˇáááşáááşáá˛áˇ áĄááźáąáŹááşá¸áĄááŹá á áááşáááşá áŹá¸á ááŹááŤá Gossiping ááᯠáááşáĄááŻáśá¸ááźáŻááąááŤáááşá áá°áááŻááşá¸áážáŹ áááŻááşáááŻááşáĄááťáááşáážááááşá áá°áááŻááşá¸á áááŻááˇáşááąááĄááťáááşááᯠáááááşáááŻáˇ ááźáąáŹááźáááşá ááťá˝ááşááąáŹáşááŹá¸áááşááááŻáá˛á ááťá˝ááşááąáŹáşáááŻáˇáážáŹ driver áá áşááŻáážáááŤáááş - driversá query-planners áá˛áˇ shards áá˝áą áĄááťáŹá¸ááźáŽá¸áážááááŻááşááŤáááş... ááźáŽá¸ááąáŹáˇ ááťá˝ááşááąáŹáşáááŻáˇááŻááşááááş áá˝á˛áá˝á˛áážáŻáá áşááŻáážáááąáááş system áááŹááźá áşááŹáááŻááşááá˛- áá áşá áŻáśáá áşááąáŹááşá áĄá˛ááŤáááŻááŻáśá¸ááźááşááŤáááşá áážáąáˇáá áşáááá áşá áá áşáááá áşááąáŹááşááťááąáá°áá áşááąáŹááşááŹá¸á ááŤáááŻáˇáááşáážáŹáĄááŻáśá¸áááşááá˛á
MT- - ááááşááąáŹááşá¸áá˛áˇááąá¸áá˝ááşá¸ááŤá áážááşáá˝áąáĄááźáąáŹááşá¸áᲠááźáąáŹááťááşáááşá ááąá¸áá˝ááşá¸ááᯠáážááşáááşá
á˝áŹ ááŹá¸áááşááŤáá ááťá˝ááşáŻááşáááŻáˇáá˝ááş áĄáąáŹááşá፠áĄááźáąáĄááą áážááááş- shard 1 áážááˇáş shard 2 áážááááşá ᤠshard áážá
áşááŻááž á
áŹáááşááźááşá¸ ááźá
áşááąáŤáşáááş - áááşá¸áááŻáˇáá˝ááş áá˝áŹáááťááş áážááááşá áááşá¸áááŻáˇáááş áĄááťááşá¸ááťááşá¸ áĄááźááşáĄáážááş áááşááśááźááşá¸ áááźáŻááźááąá áĄáá°á¸áááźááˇáş oplogs áá˝ááşáááşáážáááąáŹáĄááťáááşá
shard 1 áááş áážááşáááşá¸ááąáŤááşá¸ áááşá¸áá
áşááąáŹááşááᯠááźáŻááŻááşáá˛áˇáááşáááŻááŤá
ááŻáˇá shard 2 áááş ááŹáážáááźá
áşáá˛áˇáá˛á ááąáŹááşá¸áááŻááťááşáááş áĄáááŻááşá¸áážá
áşáááŻááşá¸áááŻáˇ ááąáŹááşááŹáááşáááŻááŤá
ááŻáˇá ááááá
áşááŻáá˝ááş afterClusterTime áá
áşáááşá¸ááťáąáŹáşáážááááşá ááŽáááŻáĄááźáąáĄááąááťááŻá¸áážáŹá ááťá˝ááşááąáŹáşáážááşá¸ááźáá˛áˇááááŻá shard 2 á ááŻáśá¸áááŻáśáˇááźááşáážáŹáááŻááşááŤáá°á¸á
IN: â áá°áááŻáˇ áááşáááŻáááşáá°ááťááźáŽá¸ ááťááŻá¸ááźáąáŹááşá¸ááŽááťáąáŹáşáá˛áˇ áĄááťáááşáá áşááŻááᯠáá˝áąá¸ááťááşáááá˛ááááťááşáááşá
MT- - áááşáá°ááźáŻáááşáĄáá˝ááşáá˝ááşáá°áááşá Shard áááş ClusterTime ááźáŽá¸ááąáŹááş áá°áˇááśááąáŹááşááŹááźáŽá¸ "Oplog" áá˝ááş áĄááťáááşááážáŹááąáŹáĄááŤá áĄáááşááźáŻááźááşá¸ááážáááŤá áááŻáááŻáááşáážáŹá áá°áááş áá°ááĄááťáááşááťáŹá¸ááᯠá¤áááşáááŻá¸áááŻáˇ ááźážááˇáşáááşááąá¸áááşá áááŻáááŻáááşáážáŹ á¤ááąáŹááşá¸áááŻááťááşáážááˇáş áááŻááşááŽááąáŹ áĄá áŽáĄá ááşááťáŹá¸ ááážááᯠáááŻáááŻáááşá áá°áááş á¤ááźá áşáááşááᯠáĄááŻáĄááąáŹááşáááşááŽá¸ááźáŽá¸ Causal Consistent ááźá áşááŹáááşá
IN: - ááŽááąáŹááşáááŻááşá¸áážáŹ áá˝ááşáááşáá áşááąááŹáážáŹ ááťáąáŹááşááŻáśá¸áá˝áŹá¸áá˛áˇáá˛áˇ áá°áˇáᎠáááźáŹá¸ááźá áşáááşáááťááŻáˇ ááąáŹááşááŹáááş ááŹááźá áşááá˛á
MT- - Shard áááş ááŹá ááŹáá áşááŻáááşá¸ááźá áşááąáŹááźáąáŹááˇáş áááşá¸áááŻáˇááąáŹááşáá áşááźáááşáááşáááŹá áąáááş ááŽáááŻááşá¸ááŻááşááŹá¸áááşá áážááşááŻáśáááşááźáŽá¸ááźáŽáááŻáááşááąáŹáˇ ááŹáážáŹáááŻááşááąáááˇáş ááąáŹááşáážááŹáážáŹááŤá áá áşááąááŹááŹáážáŹ áá áşááŻááŻááááşáááá˝áŹá¸ááźáŽá¸ááž á áŹáááąá¸ááąáŹáˇáᲠááŽáĄááźá áşáĄááťááşáá˝áą ááąáŹááşááŹááąáŹáˇááž áĄááźáąáŹááşá¸áááşá¸ ááŽáá˝ááşáážáŻ ááťááşáá˝áŹá¸ááŹááťááŻá¸ áááźá áşáááŤáá°á¸á á áŹáááąá¸áááş áá°áááŻáˇáĄáŹá¸ááŻáśá¸ ááąáŹááşááŹáááˇáşáááş (áá°áááŻáˇááᯠá áąáŹááˇáşááááˇáşáááş)á
IN: - áááşá¸á
áŽááŹáá˛áˇ áááşáááşááźáŽá¸ ááąá¸á
ááŹáá˝áą áĄááťáŹá¸ááźáŽá¸áážááááşá áĄááźáąáŹááşá¸áááşá¸ ááŽáá˝ááşáážáŻáááş ááŻááşááąáŹááşáááş áááŻáĄááşáááˇáş ááŻááşááąáŹááşááťááşááťáŹá¸á áááşá¸á
áŽáá
áşáᯠáážááááşáᯠáá°ááááşá ááťá˝ááşáŻááşáááŻáˇá áááşááąáˇááťáşááťáŹá¸áá˛ááž áá
áşáᯠááťáąáŹááşáá˝áŹá¸ááŤá áááşáááŻáˇááźá
áşáááşáááşá¸á 10 áááşááąáˇá 11 áááşááąáˇááąáŹááşááŤááźáŽ... 12 áááşááąáˇ ááťáąáŹááşáá˝ááşáá˝áŹá¸ááąáŹáˇ áááźáŹá¸áá°áá˝áąáĄáŹá¸ááŻáśá¸á áĄá
á
áşáĄáážááşááźá
áşááŹáááŻáˇ á
áąáŹááˇáşááąááźáááşá ááťááşááźááşá¸áᲠááŤáááŻáˇááŹá¸ ááŻáśá¸áá˝áŹá¸áááş ááŤáááŻáˇ ááŹáážááŻááşáááŻáˇáááá°á¸á áááŻááşááąáŹááşáᎠá
áŻááŻáśááąáááˇáş áááşá¸á
áŽá áĄááťáŹá¸ááŻáśá¸ áĄáážááşáážáááŤáááŹá¸á áĄááźáąáĄááąáá
áşáᯠááŻáśá¸áážáŻáśá¸áá˝áŹá¸áá˛áˇáĄá፠áááşááᯠáááŻá¸áá˝áŹá¸áá˛áˇ ááťááŻáˇáá˝ááşá¸áážáŻ ááźá
áşááąáŤáşáááşáá˛á áááŻáˇáĄááźááşá ááťá˝ááşáŻááşáááŻáˇáááş ááááşáĄááźáąáĄááąáĄááťááŻáˇáážáááąááźáąáŹááşá¸ ááąá¸áážááşááŹá¸ááŤá áááşá¸ááᯠáá
áşáááşá¸áááşá¸ááźááˇáş á
áááşáááˇáşááŤáááŹá¸á ááŤâááąáááˇáşâ áá°áˇáááŻááááşâáááŻááşâáá°á¸!
MT- â ááąá¸áá˝ááşá¸ááąáŹááşá¸áá
áşááŻáááşá¸ááźá
áşáááşá ááŤáááŻáˇááŹááŻááşááąááŹáá˛? MongoDB áá˝ááş quorum ááąá¸áááş á quorum read á áááąáŹáááŹá¸áážááááşá áááşáááŻáĄááźáąáĄááąááťááŻá¸áážáŹ áááşááąáˇááťáş ááťáąáŹááşáá˝áŹá¸áááŻááşááá˛á á
áŹááąá¸ááźááşá¸áááş áĄáááźáąáŹááşááźááşá¸áááŻááşáááˇáşáĄá፠áááŻáˇáááŻááş áááşáááˇáşáĄááťáááşáááş áĄáááźáąáŹááşááźááşá¸áááŻááşáááˇáşáĄá፠(áĄááťááŻáˇááąáŹ áĄáážááŻááşááťáŹá¸áááşá¸ áááşááąáááŻááşáááş)á
áĄááźáąáŹááşá¸áááşá¸ááśááŽáá˝ááşáážáŻáážááˇáşáááşáááşá ááźáŽá¸ááŹá¸ááąáŹá
ááşá¸áááşá
á
áşááąá¸áážáŻáá
áşááŻááᯠááźáŻááŻááşáá˛áˇááźáŽá¸ ááááşáážáŹ ááąá¸ááźááşá¸áážááˇáşáááşááźááşá¸áá˝ááş áĄáááźáąáŹááşááźááşá¸ááážáá áĄááźáąáŹááşá¸áááşá¸ááśááŽáá˝ááşáážáŻááᯠááťááŻá¸ááąáŹááşáážáŻááťáŹá¸ ááźá
áşááąáŤáşáá˛áˇááźáąáŹááşá¸ áá˝áąáˇáážáááááşá áááşá¸ááźáąáŹáᏠáĄáááĄááťáá˛á
ááťá˝ááşáŻááşáááŻáˇááĄááźáśááźáŻááťááş- Causal ááŽáá˝ááşáážáŻááᯠáĄááŻáśá¸ááźáŻááąáŹáĄá፠áĄáááşá¸ááŻáśá¸ áĄáááźáąáŹááşáááşááźááşá¸ááᯠáĄááŻáśá¸ááźáŻááŤá á¤áĄááźáąáĄááąááťááŻá¸áá˝ááşá quorum áážááşáááşá¸ ááťáąáŹááşááŻáśá¸áá˝áŹá¸ááťážááşáááş áááşáááˇáşáĄááŹááťáž ááŻáśá¸áážáŻáśá¸áá˝áŹá¸ááááˇáşáááşáááŻááşááąáá áááşá¸áááş áĄááťááŻá¸ááŽááąáŹáĄááźáąáĄááąááźá áşáááş- áĄááŻáśá¸ááźáŻáá°áááş ááąááŹáááŻáśá¸áážáŻáśá¸á áąáááŻááŤáá áá°áááş quorum áážááşáááşá¸ááᯠáĄááŻáśá¸ááźáŻáááşáááŻáĄááşáááşá áĄááźáąáŹááşá¸áááşá¸ááŽáá˝ááşáážáŻáááş ááŹáážááşááśáážáŻááᯠáĄáŹááááśáááŻááşááŤá ááŻáśáá°áá˝áŹá¸ááźááşá¸áážááˇáş ááŻáśáá°áá˝áŹá¸ááźááşá¸áááŻááşáᏠá ááşááášáááŹá¸ááťáŹá¸ááźááˇáş ááźáŹáážááşááśáážáŻááᯠáĄáŹáááśááŤáááşá
IN: - ááťá˝ááşáŻááşáááŻáˇáĄáá˝ááş sharding ááŻááşááąáŹááşááąá¸áááˇáş áĽáááŹáá áşááŻááᯠáááşááŽá¸ááąáŹáĄá፠(ááááşáááŻááşááąáŹáşáááşá¸ ááťá˝ááşá áĄááŽá¸ááŽá¸)á áááşá¸áááş áááşá¸ááááŻááşáááŻááşá ááşá Unix áĄááťáááş áááŻáˇáááŻááş "ááááş" ááĄááťáááşáĄááąáŤáş áá°áááşáááşá áááşá¸áááş ááááĄááźáááş áááŻáˇáááŻááş áĄááťáááşáĄááŤáĄáááŻááş áááşáá°ááźáŻááŤáááŹá¸á
MT- - áĄááŻáážááşá¸áááŻááşáááşá Shard (áááŻáááŻáááşáážáŹ áĄááťáŹá¸áááŻááş áĄáááŻááşá¸áááŻááşá¸) - áĄá˛ááŽáážáŹ áĄááźá˛áááşá¸ Primary áá áşááŻáážááááşá ááźáŽá¸ááąáŹáˇ shard áá áşááŻáážáŹ "ááŹá ááŹ" áážááááŻááşááźáŽá¸ ááŻáśáá°áá˝áąáááşá¸ áážááááŻááşááŤáááşá áááŻáˇááąáŹáş shard áááş áĄááťááŻáˇááąáŹ domain ááᯠááśáˇáááŻá¸ááąá¸ááááşááźá áşááąáŹááźáąáŹááˇáş (shard áá˝ááş Primary ááŤáážááááş)á
IN: âááŤááᯠáĄááŹáĄáŹá¸ááŻáśá¸á âááááşâ áĄááąáŤáşáážáŹáᲠáá°áááşáááşá ááŹá ááŹáĄááťáááşááᯠáĄááźá˛áĄááŻáśá¸ááźáŻááŤáááŹá¸á
MT- - ááŻááşáá˛áˇá ááŻáśááášááŹááşáĄáŹá¸ááźááˇáş áááşááźáąáŹáááŻááşáááş- "ááŹá ááŹ" áá˛áááŻáˇ áááşáá˝áŹá¸ááąáŹáĄá፠"Oplog" áá˛áááŻáˇ ááŹááŽá áĄáážááşááźá áşááąááŤáááşá
IN: - ááťá˝ááşáŻááşáááŻáˇáá˝ááş ááťáááşáááşááŹá¸ááąáŹ client áážáááźáŽá¸ áĄááťáááşáážááˇáş áááşáááşá ááŹááž áááááşááááŻáĄááşááŤá
MT- - áááşá¸ ááŹááž áááááŻáˇ ááááŻáá°á¸á ááááŻááşá¸áááˇáşáĄááąáŤáş áááşáááŻáˇááŻááşááąáŹááşááźáąáŹááşá¸ááᯠááťá˝ááşáŻááşáááŻáˇááźáąáŹáááŻááŤá- client áááş Causal ááŽáá˝ááşáážáŻááᯠáĄááŻáśá¸ááźáŻáááŻááąáŹáĄááŤá áá°áááş session áá áşááŻáá˝ááˇáşáááş áááŻáĄááşáááşá ááᯠáĄááŹáĄáŹá¸ááŻáśá¸áááş áááŻááąááŹáá˝ááş áážáááąáááş- á ááşáážááşáĄáá˝ááşá¸ áá˝áąááąá¸áá˝áąáá°ááťáŹá¸áážááˇáş ááŻááşáááŻááşáá˝ááˇáşááťáŹá¸ááᯠááźááşáááşááá°ááźááşá¸... á ááşáážááşáá áşááŻáááş ááŻáśá¸á á˝á˛áá°áážááˇáş ááźá áşááťááşááąáááˇáş ááŻáášáááááşááąáŹ áĄááźá áşáĄááťááşááťáŹá¸ááᯠá áŽá áĽáşááźááşá¸ááźá áşááŤáááşá
áá°á áᎠsession áááŻáá˝ááˇáşááźáŽá¸ Causal ááŽáá˝ááşáážáŻááᯠáááŻááťááşáááşáááŻáˇ ááźáąáŹáááş (á ááşáážááşá Causal ááŽáá˝ááşáážáŻááᯠááŻáśáážááşáĄáááŻááşá¸ ááąáŹááşááśáááşáááŻáááş) áĄááŹáĄáŹá¸ááŻáśá¸á áĄáááŻáĄááťáąáŹááş áĄááŻááşááŻááşááŤáááşá ááŹááşááąáŹááşá¸áááş á¤áĄááťáááşááᯠáážááşááááźáŽá¸ áááşááąáˇááťáşáĄáá áşáá áşááŻááážáááąáŹáĄá፠áááşá¸ááᯠáááŻá¸á áąáááşá áááşá¸áááş ááąááŹááᯠááźááşááąá¸áááˇáş ááŹááŹááž ááááşáá áşááŻá ááźááşááąá¸áá˛áˇáááˇáş ááŻáśáˇááźááşáážáŻááᯠáážááşáááááşá ááąáŹááşááąáŹááşá¸áááŻááťááşáá˝ááş afterCluster("á¤áááşááźáŽá¸ááąáŹáĄááťáááş") ááŤáááşááŤáááşá
Client á ááŹááž áááááŻáˇ ááááŻááŤáá°á¸á á¤áĄááŹáááş áá°áˇáĄáá˝ááş ááŻáśá¸ááŻáśá¸ááťáŹá¸ááťáŹá¸ ááźááşááŹá¸ááąáááşá áá°áá˝áąá ááŽáĄááşášááŤáááşáá˝áąááᯠááŻáśá¸áááş áá°áááŻáˇ ááŹááŻááşáááŻááşááá˛á áááá áááşáááş áĄáááşáááşá¸ááťáŹá¸ááᯠááŻáśááźáŻáśá á˝áŹáááşáááŻááşáááş- áááşáááş áá°ááááşá¸áááŻáˇ á áŹááąá¸áááŻááşááźáŽá¸ ááááŽáááşáĄááąáĄááŹá¸áĄá ááŻáśáá°ááŹá¸ááąáŹ áĄáááşáááşá¸ááťáŹá¸ááž áááşáááŻááşááźáŽá¸ áááşá¸áááş áĄááŻááşááŻááşááźáąáŹááşá¸ ááąááťáŹááŤá áąá áá áşááťáááşáááşá¸áážáŹáááşá Primary áá˝ááşáážááşáááşá¸áááşááŹá¸ááąáŹ sessions ááťáŹá¸ááᯠSecondary áááŻáˇáááşáá˝ážá˛ááźáąáŹááşá¸áááŻááşáááşá áááŻáááŻáááşáážáŹ áááşáááş session áá áşááŻáááŻááşááąáŹáşáááşá¸áĄááťáŹá¸áĄááźáŹá¸áááŻáĄááŻáśá¸ááźáŻáááŻááşááŤáááşá
IN: - áá˝ááşááťááşáážáŻáááášááśá áĄáá˝ážáŹáĄáá áş - CRDT (áááááášááááşá¸á ááşááąáŹ áááşáá°ááźáŻááŹá¸áááˇáş ááąááŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸) ááąááŹáĄááťááŻá¸áĄá áŹá¸ááťáŹá¸ - áááş ááźá áşááąáŤáşááŹááąáŹ áááŻááşááŽáážáŻá ááąáŤááşá¸á ááşáážááˇáş ááźááşá¸áááşá á˝áŹ áááşá ááşááąáááşá ááŽááąááŹáĄááťááŻá¸áĄá áŹá¸áá˝áąááᯠááąááŹááąáˇá áşáá˛ááᯠááąáŤááşá¸á ááşá¸áááŻáˇ á ááşá¸á áŹá¸ááźáŽá¸ááźáŽááŹá¸á áĄá˛ááŤáá˛áˇáááşáááşááźáŽá¸ ááŹááźáąáŹáááŻááşááá˛á
MT- - ááąá¸áá˝ááşá¸ááąáŹááşá¸! CRDT áááş MongoDB áá˝ááşá single master áá˝ááş ááąá¸áááşáááááášáááťáŹá¸áĄáá˝ááş áĄáááášááŤááşáážááááşá
IN: - á፠ááŹáááŹáˇáááşáááşá¸áá˝áąááŽá ááąá¸á ááŹáážááááşá áááşáá˝áąáˇááášááŹáá˝ááşá Byzantine Failure ááąáŤáşááąáŤááşááŹááąáŹáĄááŤáá˝ááş áááŻáááŻáˇááąáŹ Jesuitical áĄááźáąáĄááąááťáŹá¸ áážáááąááźáŽá¸á ááŹáá˝ááşááŹá¸ááąáŹ áááşáááşá¸ááťááşáážá áá°áááŻá¸ááťáŹá¸áááş ááááŻáááŻááąáŹáá˛áááŻáˇ á áááşáááşááąáŹááşáᏠáĄáá°á¸áááşá¸áááşá¸ááźááˇáş craft packages ááťáŹá¸ ááąá¸áááŻáˇááŹááźáááşá
MT- - áááşáááşá¸ááťááşáĄáá˝ááşá¸áážá áá°áááŻá¸ááťáŹá¸áááş Trojan ááźááşá¸áá
áşááąáŹááşáážááˇáşáá°áááşá áááşáááşá¸ááťááşáĄáá˝ááşá¸ááž áá°áááŻá¸ááťáŹá¸áááş áááąáŹááşá¸áážáŻááťáŹá¸á
á˝áŹááᯠááźáŻááŻááşáááŻááşáááşá
IN: - áĄááźááşá¸ááťááşá¸ááźáąáŹáááťážááş áááşááťáŹá¸ááᯠáááá ášááŹááşááŻáśáá˝ááş ááŹá¸áážááᏠáĄá áŻáĄááąá¸áá áşááŻááŻáśá¸ááᯠááŹááááźááŻááťáá˝áŹá¸á áąáááŻááşáááˇáş ááŹááŹáážá áĄááąáŤááşáá áşááŻááž áá˝ááşáá˝áŹá¸áááşáážáŹ áážááşá¸áážááşá¸áááşá¸áááşá¸áááşááźá áşáááş... áááşá¸áááş áá°áááŻááşáááŻááş ááźááşáááşááá°áááşáĄáá˝ááş áĄááťáááşáá°áááááˇáşáááş...á áážáŹá¸áááşá áĄááźáŹá¸áá áşáááşáá˝ááşá á¤áĄááŹáááş á áááşáááşá áŹá¸á ááŹááąáŹááşá¸áááş- áááşáá˝áąáˇáááá˝ááşá áááŹááĄáááŻááşá¸ áĄááŹá¸áá°áĄáá˝ááşá¸áááŻááşá¸áááŻááşáááŻááşáážáŻááťáŹá¸ ááźá áşáá˝áŹá¸áááˇáşáĄá፠áĄááźáąáĄááąááťáŹá¸ áážáááŤáááŹá¸á
MT- - áááşáá˝áąáˇáááá˝ááş ááŻáśááźáŻáśááąá¸ááťááŻá¸ááąáŹááşáážáŻááťáŹá¸ ááźáŻáśáá˝áąáˇááá˛ááąáŹááźáąáŹááˇáşá áááşá¸áááŻáˇááźá áşáááşááᯠáááźáąáŹáááŻááşááŤá ááŤááąáááˇáş áá˝áśáˇááźááŻá¸áááŻá¸áááşáážáŻ ááżáááááąááĄááźáąáŹááşá¸ááźáąáŹáááşá ááŤáááŻáˇáážáŹ ááŽáááŻáá˛áááşáááş- ááŤáááŻáˇáážáŹ ááŻáśááźáŻáśááąá¸ááŻááşáá˛áˇáá°áá˝áąááᯠááąáŹááşááśáˇááąá¸áá˛áˇ áááşáááşá¸ááťááşáá áşááŻáážááááşá ááŤá áá˛áááŻááşá ááśáááŻááşá¸á áááşáááşá¸ááťááşáĄáá˝ááşá¸á áááşáĄáááŻáážááááťážááᯠáááşááŻááşáááŻááşáááş á ááźááˇáşááŻáśááŹááźááˇáşáááŻááşááąáŹ áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áážáááźáąáŹááşá¸ áááşáážáŹá¸ááźáŽá¸ áááşá¸áá˝ážááşááᯠááťááşáááŻááşááąáŹ áĄááŻáśá¸ááźáŻáá°ááťáŹá¸áááşá¸ áážáááąááŤáááşá
ááááŻááşáá˝ááˇáşááťáŹá¸ááąáŤáşáá°áááşá áĄááŻáśá¸ááźáŻáá°ááťáŹá¸ ááŻááşááąáŹááşáááŻááşáááˇáş ááťááşá áŽá¸áážáŻáááş ááąáŹááşá áş áááŻáˇáááŻááş áááşáá áşááąáŹááş ááźá áşáááŻááşáááşá áĄáá˝ááˇáşáĄááąá¸áĄááźááˇáşáážáááąáŹ áĄááŻáśá¸ááźáŻáá°áá áşáŚá¸áááş áááşáááˇáşáĄááŹáááŻáááᯠááŻááşááąáŹááşáááŻááşáááşáážáŹ áážááşá¸ááŤáááşá áĄáááˇáşáĄáááşáážáááąáŹ áĄáá˝ááˇáşáĄááąá¸áážáááąáŹ áĄááŻáśá¸ááźáŻáá°áá áşáŚá¸áááş ááááááŹáᏠáááááŻááşáážáŻááźá áşá áąáááŻááşáááşá áĄáá°á¸áááźááˇáş á áá áşááᯠááťááŻá¸ááťááşáááŻáˇ áááá°á¸á
IN: â ááŹáá˝ááşááŹá¸ááąáŹ áááşáááşá¸ááťááşáá˝ááşá áá áşá áŻáśáá áşáŚá¸áááş ááŹááŹááᯠááŻáśá¸ááŻáśá¸ááťáŹá¸ááťáŹá¸ ááťááşááŽá¸áááşáĄáá˝ááş áááťážáąáŹáşáááˇáşááŹá¸ááąáŹ ááááŻáááŻááąáŹááťáŹá¸ááᯠáááşááŽá¸áááş ááźááŻá¸á áŹá¸áá˛áˇááźáŽá¸ áááşááśááąáŹááşá¸ááŤáá áĄá áŻáĄááąá¸áá áşááŻááŻáśá¸... áááşá¸áááş "ááąáŹááşá¸" áááşááŹá¸?
MT- âáĄá˛ááŽáááŻáá˝áą áááŤááž áááźáŹá¸áá°á¸áá°á¸áâ ááŽáááŻáááşá¸áá˛áˇ ááŹááŹááᯠááťááşááťá áąáááŻááşáááşáááŻáá˛áˇáĄááťááşá ááťážááŻáˇáážááşááťááşááážáááŤáá°á¸á ááááŻáááŻááąáŹáážááźá áşááźááşá¸á áááşááąáˇááťáşáá˝ááş á¤áá˛áˇáááŻáˇáá áşááŻááŻááąá¸áááŻááşáááˇáş áĄáá˝ááˇáşáĄáŹááŹáĄááŻáśá¸ááźáŻáá°áá áşáŚá¸ááźá áşááźááşá¸áážáŹ ááĄáąáŹááşááźááşááŤ... áĄáážááşáážáŹá áááşá¸ááᯠá á áşááąá¸ááąáá˛ááźá áşááąáŹááźáąáŹááˇáş áááźá áşáááŻááşááŤá áááşá¸ááᯠááááŻááŹá¸ááąáŹ ááŻáśá¸á á˝á˛áá°ááťáŹá¸áĄáá˝ááş á¤áĄááąáŹááşáĄááŹá¸ááźááźááşá¸ááᯠááááşáááş ááźá áşáááŻááşáááş - áááŻáˇááąáŹááş áááşá¸áážáŹ áááşá¸áááŻáˇá ááźáżááŹááźá áşáááşá áĄááźááşá¸ááťááşá¸ááźáąáŹááááş áá°áááŻáˇá ááśááśáá˝áąááᯠáá°áááŻáˇáááŻááşáááŻááş ááťááşááŽá¸ááźáŽá¸ áááşáá áşááąáŹááşááᯠáááşá¸áááĄáąáŹááş áá˝ááşá¸ááťáááŻááşáááş... ááŤááąáááˇáş ááąáá°ááťáĄáŹá¸ááźááˇáşááąáŹáˇ ááźáŻááźááşáá°áĄááąáá˛áˇ áááşá áŹá¸ááźáŽá¸ áá˝á˛ááŻááşáááŻáˇáááŤáááşá
IN: - áĄá áŽáááşááśá áŹáĄáá˝ááşááťáąá¸áá°á¸áááşááŤáááşá ááŹááťáŽ (Yandex)á ááŻáśá áśáá°áááşáážááşáážáŻáá˝ááş áá˛ááąá¸áá°áĄááąáĄáá˝ááşááᯠáááˇáşáááşááŹá¸áááˇáş áááŻááşá¸áá˝ááş áĄáááşáááźááşáážáááźáŽá¸ áááşá¸ááááşá¸ááąáážáŹ 7 (ááŻáá áş) ááźá áşáááşá ááŤá ááŹááźáąáŹááˇáş ááááşá¸ááąááźá áşááąááŹáá˛á áĄáááşááźáąáŹááˇáş á¤áĄááŹáááş áááˇáşáááşááťááşááťááŻá¸áááŻááşááááşá¸á
MT- - ááťá˝ááşáŻááşáááŻáˇáá˝ááş node 40 ááŤááąáŹááŻáśá áśáá°ááťáŹá¸áážááááşá áĄááźá˛áááşá¸ áĄááťáŹá¸á áŻáážááááşá áááşááŹá¸áážááşá¸áá˛ááááá°á¸...
IN: - Replica Set áá˝ááş áááşáááş áá˛ááąá¸ááźááşá¸áááŻááşááąáŹáĄáá˝á˛áˇáááşááťáŹá¸ááᯠáááşáááşáááŻááşááąáŹáşáááşá¸ áĄááťáŹá¸ááŻáśá¸áá˛ááąá¸áááˇáşáĄáá˝á˛áˇáááş 7 áŚá¸áážááááşá ááťá˝ááşáŻááşáááŻáˇáááŻáśáá°áááşáážááşáážáŻáááş ááąááŹá ááşáᏠ3 ááŻáá˝ááş ááťáśáˇáážáśáˇááąááŤá á¤ááá ášá áá˝ááş ááááşáá˝áŹá¸ááźááşá¸áĄáŹá¸ ááťá˝ááşáŻááşáááŻáˇ áááşáááŻáˇ áážááşáááşáááŻááşáááşáááşá¸á ááąááŹá ááşááŹáá áşááŻáááş áĄáá˝ááşááá° ááááşáááŻááşááźáŽá¸ áĄááźáŹá¸á ááşáááş ááźáŻááşááťáááŻááşáááşá
MT- - ááŤá áĄá áŽáááşááśá áŹáá˛áˇ ááąáŹááşáááş áĄáááşá¸áááşááťáąáŹáşáá˝ááşááąááŤááźáŽá ááŤá ááąáá°ááťááąá¸áá˝ááşá¸ááŤá áĄá˛ááŤááᯠááąáŹááşááž ááźáąáŹááźáááŻáˇ áááŤáááşá
ááźáąáŹáşááźáŹáĄááťááŻáˇ đ
ááťá˝ááşáŻááşáááŻáˇáážááˇáşáĄáá°áážáááąáááˇáşáĄáá˝ááş ááťáąá¸áá°á¸áááşááŤáááşá ááťá˝ááşáŻááşáááŻáˇáááąáŹááşá¸ááŤá¸ááťáŹá¸ááᯠáááşáážá
áşáááşááŤáááŹá¸á áááŻá
áááşáááşá
áŹá¸á
ááŹááąáŹááşá¸áá˛áˇ áĄááźáąáŹááşá¸áĄááŹáá˝áąááᯠááźááˇáşááťááşááŤáááŹá¸á áážáŹáá°áážáŻáá
áşááŻááźáŻááŻááşááźááşá¸ áááŻáˇáááŻááş áá°áááşááťááşá¸ááťáŹá¸ááᯠáĄááźáśááźáŻááźááşá¸ááźááˇáş ááťá˝ááşáŻááşáááŻáˇáĄáŹá¸ ááśáˇáááŻá¸áá°ááŽááŤá
áĄááşá
ááŹáááşáážá Equinix Tier IV ááąááŹá
ááşááŹáá˝ááş Dell R730xd áááş á á á
áťáąá¸áááşááŹáááşá ááŽáážáŹááŹ
source: www.habr.com