ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื

ื”ืขืจื”. ืชืจื’ื•ื: ื’'ืื ื” ื“ื•ื’ืืŸ ื”ื™ื ืžื”ื ื“ืกืช ืžื ื•ืกื” ื‘ื’ื•ื’ืœ ืฉืขื•ื‘ื“ืช ื›ืขืช ืขืœ ืฆืคื™ื™ื” ืฉืœ ืฉื™ืจื•ืชื™ ื”ื™ื™ืฆื•ืจ ืฉืœ ื”ื—ื‘ืจื” ืฉื ื›ืชื‘ื• ื‘ื’ื•. ื‘ืžืืžืจ ื–ื”, ืฉื–ื›ื” ืœืคื•ืคื•ืœืจื™ื•ืช ืจื‘ื” ื‘ืงืจื‘ ื”ืงื”ืœ ื“ื•ื‘ืจ ื”ืื ื’ืœื™ืช, ื”ื™ื ืืกืคื” ื‘-17 ื ืงื•ื“ื•ืช ืคืจื˜ื™ื ื˜ื›ื ื™ื™ื ื—ืฉื•ื‘ื™ื ืœื’ื‘ื™ DBMSs (ื•ืœืคืขืžื™ื ืžืขืจื›ื•ืช ืžื‘ื•ื–ืจื•ืช ื‘ื›ืœืœ) ืฉืžื•ืขื™ืœื™ื ืœืฉืงื•ืœ ืœืžืคืชื—ื™ ืืคืœื™ืงืฆื™ื•ืช ื’ื“ื•ืœื•ืช/ืชื•ื‘ืขื ื™ื•ืช.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื

ืจื•ื‘ืŸ ื”ืžื›ืจื™ืข ืฉืœ ืžืขืจื›ื•ืช ื”ืžื—ืฉื‘ ืขื•ืงื‘ื•ืช ืื—ืจ ืžืฆื‘ืŸ, ื•ื‘ื”ืชืื ืœื›ืš ื“ื•ืจืฉื•ืช ืžืขืจื›ืช ืื—ืกื•ืŸ ื ืชื•ื ื™ื ื›ืœืฉื”ื™. ืฆื‘ืจืชื™ ื™ื“ืข ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื ืœืื•ืจืš ืชืงื•ืคื” ืืจื•ื›ื”, ืœืื•ืจืš ื›ืœ ื”ื“ืจืš ืขืฉื™ืชื™ ื˜ืขื•ื™ื•ืช ืขื™ืฆื•ื‘ ืฉื”ื•ื‘ื™ืœื• ืœืื•ื‘ื“ืŸ ื ืชื•ื ื™ื ื•ื”ืคืกืงื•ืช. ื‘ืžืขืจื›ื•ืช ื”ืžืขื‘ื“ื•ืช ื›ืžื•ื™ื•ืช ื’ื“ื•ืœื•ืช ืฉืœ ืžื™ื“ืข, ืžืกื“ื™ ื ืชื•ื ื™ื ื ืžืฆืื™ื ื‘ืœื‘ ืืจื›ื™ื˜ืงื˜ื•ืจืช ื”ืžืขืจื›ืช ื•ืžื”ื•ื•ื™ื ืžืจื›ื™ื‘ ืžืจื›ื–ื™ ื‘ื‘ื—ื™ืจืช ื”ืคืชืจื•ืŸ ื”ืื•ืคื˜ื™ืžืœื™. ืœืžืจื•ืช ื”ืขื•ื‘ื“ื” ืฉืชืฉื•ืžืช ืœื‘ ืจื‘ื” ืžื•ืงื“ืฉืช ืœืขื‘ื•ื“ืช ืžืกื“ ื”ื ืชื•ื ื™ื, ื”ื‘ืขื™ื•ืช ืฉืžืคืชื—ื™ ืืคืœื™ืงืฆื™ื•ืช ืžื ืกื™ื ืœืฆืคื•ืช ื”ืŸ ืœืจื•ื‘ ืจืง ืงืฆื” ื”ืงืจื—ื•ืŸ. ื‘ืกื“ืจืช ื”ืžืืžืจื™ื ื”ื–ื•, ืื ื™ ื—ื•ืœืง ื›ืžื” ืจืขื™ื•ื ื•ืช ืฉื™ื”ื™ื• ืฉื™ืžื•ืฉื™ื™ื ืขื‘ื•ืจ ืžืคืชื—ื™ื ืฉืื™ื ื ืžืชืžื—ื™ื ื‘ืชื—ื•ื ื–ื”.

  1. ื™ืฉ ืœืš ืžื–ืœ ืื 99,999% ืžื”ืžืงืจื™ื ื”ืจืฉืช ืœื ื’ื•ืจืžืช ืœื‘ืขื™ื•ืช.
  2. ื—ื•ืžืฆื” ืคื™ืจื•ืฉื” ื“ื‘ืจื™ื ืจื‘ื™ื ื•ืฉื•ื ื™ื.
  3. ืœื›ืœ ืžืกื“ ื ืชื•ื ื™ื ื™ืฉ ืžื ื’ื ื•ื ื™ื ืžืฉืœื• ืœื”ื‘ื˜ื—ืช ืขืงื‘ื™ื•ืช ื•ื‘ื™ื“ื•ื“.
  4. ื—ืกื™ืžื” ืื•ืคื˜ื™ืžื™ืช ื‘ืื” ืœืขื–ืจื” ื›ืืฉืจ ืงืฉื” ืœืฉืžื•ืจ ืขืœ ื”ืจื’ื™ืœ.
  5. ื™ืฉื ืŸ ื—ืจื™ื’ื•ืช ื ื•ืกืคื•ืช ืžืœื‘ื“ ืงืจื™ืื•ืช ืžืœื•ื›ืœื›ื•ืช ื•ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื.
  6. ื”ืžืื’ืจ ื•ื”ืžืฉืชืžืฉ ืœื ืชืžื™ื“ ืžืกื›ื™ืžื™ื ืขืœ ื“ืจืš ื”ืคืขื•ืœื”.
  7. ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืคื™ืฆื•ืœ ื‘ืจืžืช ื”ื™ื™ืฉื•ื ืืœ ืžื—ื•ืฅ ืœื™ื™ืฉื•ื.
  8. ื”ื’ื“ืœื” ืื•ื˜ื•ืžื˜ื™ืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžืกื•ื›ื ืช.
  9. ื ืชื•ื ื™ื ืžื™ื•ืฉื ื™ื ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ื™ื ื•ืื™ืŸ ืฆื•ืจืš ืœื ืขื•ืœ ืื•ืชื.
  10. ืขื™ื•ื•ืชื™ื ืื•ืคื™ื™ื ื™ื™ื ืœื›ืœ ืžืงื•ืจื•ืช ื–ืžืŸ.
  11. ืœืขื™ื›ื•ื‘ ืžืฉืžืขื•ื™ื•ืช ืจื‘ื•ืช.
  12. ื™ืฉ ืœื”ืขืจื™ืš ืืช ื“ืจื™ืฉื•ืช ื”ื‘ื™ืฆื•ืขื™ื ืขื‘ื•ืจ ืขืกืงื” ืกืคืฆื™ืคื™ืช.
  13. ืขืกืงืื•ืช ืžืงื•ื ื ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžืกื•ื›ื ื•ืช.
  14. ืื™ืŸ ืœืงืฉื•ืจ ืขืกืงืื•ืช ืœืžืฆื‘ ื™ื™ืฉื•ื.
  15. ืžืชื›ื ื ื™ ืฉืื™ืœืชื•ืช ื™ื›ื•ืœื™ื ืœืกืคืจ ืœืš ื”ืจื‘ื” ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื.
  16. ื”ื’ื™ืจื” ืžืงื•ื•ื ืช ื”ื™ื ืงืฉื”, ืื‘ืœ ืืคืฉืจื™ืช.
  17. ืขืœื™ื™ื” ืžืฉืžืขื•ืชื™ืช ื‘ืžืื’ืจ ื”ื ืชื•ื ื™ื ื’ื•ืจืจืช ืขืœื™ื™ื” ื‘ืื™-ื—ื™ื–ื•ื™.

ืื ื™ ืจื•ืฆื” ืœื”ื•ื“ื•ืช ืœืขืžื ื•ืืœ ืื•ื“ืงื”, ืจื™ื™ืŸ ื”ื ืจื™ืš ื•ืื—ืจื™ื ืขืœ ื”ืžืฉื•ื‘ ืฉืœื”ื ืขืœ ื’ืจืกื” ืงื•ื“ืžืช ืฉืœ ืžืืžืจ ื–ื”.

ื™ืฉ ืœืš ืžื–ืœ ืื 99,999% ืžื”ืžืงืจื™ื ื”ืจืฉืช ืœื ื’ื•ืจืžืช ืœื‘ืขื™ื•ืช.

ื ื•ืชืจื” ื”ืฉืืœื” ืขื“ ื›ืžื” ืืžื™ื ื•ืช ื˜ื›ื ื•ืœื•ื’ื™ื•ืช ืจืฉืช ืžื•ื“ืจื ื™ื•ืช ื•ื‘ืื™ื–ื• ืชื“ื™ืจื•ืช ืžืขืจื›ื•ืช ืžื•ืฉื‘ืชื•ืช ืขืงื‘ ื›ืฉืœื™ื ื‘ืจืฉืช. ื”ืžื™ื“ืข ื‘ื ื•ืฉื ื–ื” ื“ืœ ื•ื”ืžื—ืงืจ ื ืฉืœื˜ ืœืจื•ื‘ ืขืœ ื™ื“ื™ ืืจื’ื•ื ื™ื ื’ื“ื•ืœื™ื ืขื ืจืฉืชื•ืช, ืฆื™ื•ื“ ื•ื›ื•ื— ืื“ื ืžื™ื•ื—ื“ื™ื.

ืขื ืฉื™ืขื•ืจ ื–ืžื™ื ื•ืช ืฉืœ 99,999% ืขื‘ื•ืจ Spanner (ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืžื•ืคืฅ ื‘ืขื•ืœื ืฉืœ ื’ื•ื’ืœ), ื’ื•ื’ืœ ื˜ื•ืขื ืช ืฉืจืง 7,6% ื‘ืขื™ื•ืช ืงืฉื•ืจื•ืช ืœืจืฉืช. ื‘ืžืงื‘ื™ืœ, ื”ื—ื‘ืจื” ืžื›ื ื” ืืช ื”ืจืฉืช ื”ืžืชืžื—ื” ืฉืœื” "ื”ืขืžื•ื“ ื”ืจืืฉื™" ืฉืœ ื–ืžื™ื ื•ืช ื’ื‘ื•ื”ื”. ืœื™ืžื•ื“ ื‘ื™ื™ืœื™ืก ื•ืงื™ื ื’ืกื‘ืจื™, ืฉื ืขืจืš ื‘ืฉื ืช 2014, ืžืืชื’ืจ ืืช ืื—ื“ ื”"ืชืคื™ืกื•ืช ืฉื’ื•ื™ื•ืช ืœื’ื‘ื™ ืžื—ืฉื•ื‘ ืžื‘ื•ื–ืจ", ืื•ืชื• ื ื™ืกื— ืคื™ื˜ืจ ื“ื•ื™ื˜ืฉ ื‘-1994. ื”ืื ื”ืจืฉืช ื‘ืืžืช ืืžื™ื ื”?

ืžื—ืงืจ ืžืงื™ืฃ ืžื—ื•ืฅ ืœื—ื‘ืจื•ืช ืขื ืง, ืฉื ืขืจืš ืขื‘ื•ืจ ื”ืื™ื ื˜ืจื ื˜ ื”ืจื—ื‘ ื™ื•ืชืจ, ืคืฉื•ื˜ ืœื ืงื™ื™ื. ื›ืžื• ื›ืŸ, ืื™ืŸ ืžืกืคื™ืง ื ืชื•ื ื™ื ืžื”ืฉื—ืงื ื™ื ื”ื’ื“ื•ืœื™ื ืœื’ื‘ื™ ืื—ื•ื– ื”ื‘ืขื™ื•ืช ืฉืœ ื”ืœืงื•ื—ื•ืช ืฉืœื”ื ื”ืงืฉื•ืจื•ืช ืœืจืฉืช. ืื ื• ืžื•ื“ืขื™ื ื”ื™ื˜ื‘ ืœื”ืคืกืงื•ืช ื‘ืขืจื™ืžืช ื”ืจืฉืช ืฉืœ ืกืคืงื™ ืขื ืŸ ื’ื“ื•ืœื™ื ืฉื™ื›ื•ืœื™ื ืœื”ืคื™ืœ ื—ืœืง ืฉืœื ืžื”ืื™ื ื˜ืจื ื˜ ืœืžืฉืš ืžืกืคืจ ืฉืขื•ืช ืคืฉื•ื˜ ื›ื™ ืžื“ื•ื‘ืจ ื‘ืื™ืจื•ืขื™ื ื‘ืขืœื™ ืคืจื•ืคื™ืœ ื’ื‘ื•ื” ืฉืžืฉืคื™ืขื™ื ืขืœ ืžืกืคืจ ืจื‘ ืฉืœ ืื ืฉื™ื ื•ื—ื‘ืจื•ืช. ื”ืคืกืงื•ืช ืจืฉืช ืขืœื•ืœื•ืช ืœื’ืจื•ื ืœื‘ืขื™ื•ืช ื‘ืžืงืจื™ื ืจื‘ื™ื ื ื•ืกืคื™ื, ื’ื ืื ืœื ื›ืœ ื”ืžืงืจื™ื ื”ืœืœื• ื ืžืฆืื™ื ื‘ืื•ืจ ื”ื–ืจืงื•ืจื™ื. ื’ื ืœืงื•ื—ื•ืช ืฉื™ืจื•ืชื™ ืขื ืŸ ืื™ื ื ื™ื•ื“ืขื™ื ื“ื‘ืจ ืขืœ ื”ื’ื•ืจืžื™ื ืœื‘ืขื™ื•ืช. ืื ื™ืฉ ื›ืฉืœ, ื›ืžืขื˜ ื‘ืœืชื™ ืืคืฉืจื™ ืœื™ื™ื—ืก ืื•ืชื• ืœืฉื’ื™ืืช ืจืฉืช ื‘ืฆื“ ืฉืœ ืกืคืง ื”ืฉื™ืจื•ืช. ืขื‘ื•ืจื, ืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ ื”ื ืงื•ืคืกืื•ืช ืฉื—ื•ืจื•ืช. ืื™ ืืคืฉืจ ืœื”ืขืจื™ืš ืืช ื”ื”ืฉืคืขื” ื‘ืœื™ ืœื”ื™ื•ืช ืกืคืง ืฉื™ืจื•ืช ื’ื“ื•ืœ.

ื‘ื”ืชื—ืฉื‘ ื‘ืžื” ืฉื”ืฉื—ืงื ื™ื ื”ื’ื“ื•ืœื™ื ืžื“ื•ื•ื—ื™ื ืขืœ ื”ืžืขืจื›ื•ืช ืฉืœื”ื, ื‘ื˜ื•ื— ืœื•ืžืจ ืฉื™ืฉ ืœืš ืžื–ืœ ืื ืงืฉื™ื™ ืจืฉืช ืžื”ื•ื•ื™ื ืจืง ืื—ื•ื– ืงื˜ืŸ ืžื‘ืขื™ื•ืช ื”ืฉื‘ืชื” ืคื•ื˜ื ืฆื™ืืœื™ื•ืช. ืชืงืฉื•ืจืช ืจืฉืช ืขื“ื™ื™ืŸ ืกื•ื‘ืœืช ืžื“ื‘ืจื™ื ืืจืฆื™ื™ื ื›ืžื• ืชืงืœื•ืช ื—ื•ืžืจื”, ืฉื™ื ื•ื™ื™ื ื‘ื˜ื•ืคื•ืœื•ื’ื™ื”, ืฉื™ื ื•ื™ื™ื ื‘ืชืฆื•ืจื” ืžื ื”ืœื™ืช ื•ื”ืคืกืงื•ืช ื—ืฉืžืœ. ืœืื—ืจื•ื ื” ื”ื•ืคืชืขืชื™ ืœื’ืœื•ืช ืฉื ื•ืกืคื” ืจืฉื™ืžืช ื”ื‘ืขื™ื•ืช ื”ืืคืฉืจื™ื•ืช ื ืฉื™ื›ื•ืช ื›ืจื™ืฉื™ื (ื›ืŸ, ืฉืžืขืชื ื ื›ื•ืŸ).

ACID ืื•ืžืจ ื”ืจื‘ื” ื“ื‘ืจื™ื ืฉื•ื ื™ื

ืจืืฉื™ ื”ืชื™ื‘ื•ืช ACID ืžื™ื™ืฆื’ื™ื Atomicity, Consistency, Isolation, Reliability. ืžืืคื™ื™ื ื™ื ืืœื• ืฉืœ ืขืกืงืื•ืช ื ื•ืขื“ื• ืœื”ื‘ื˜ื™ื— ืืช ืชืงืคื•ืชืŸ ื‘ืžืงืจื” ืฉืœ ืชืงืœื•ืช, ืฉื’ื™ืื•ืช, ืชืงืœื•ืช ื—ื•ืžืจื” ื•ื›ื•'. ืœืœื ACID ืื• ืชื•ื›ื ื™ื•ืช ื“ื•ืžื•ืช, ื™ื”ื™ื” ืงืฉื” ืœืžืคืชื—ื™ ื™ื™ืฉื•ืžื™ื ืœื”ื‘ื“ื™ืœ ื‘ื™ืŸ ืžื” ืฉื”ื ืื—ืจืื™ื ืœื• ืœืžื” ืฉืžืกื“ ื”ื ืชื•ื ื™ื ืื—ืจืื™. ืจื•ื‘ ืžืกื“ื™ ื”ื ืชื•ื ื™ื ืฉืœ ื”ืขืกืงืื•ืช ื”ื”ืชื™ื™ื—ืกื•ืชื™ื•ืช ืžื ืกื™ื ืœื”ื™ื•ืช ืชื•ืืžื™ ACID, ืืš ื’ื™ืฉื•ืช ื—ื“ืฉื•ืช ื›ืžื• NoSQL ื”ื•ืœื™ื“ื• ืžืกื“ื™ ื ืชื•ื ื™ื ืจื‘ื™ื ืœืœื ืขืกืงืื•ืช ACID ืžื›ื™ื•ื•ืŸ ืฉื”ืŸ ื™ืงืจื•ืช ืœื™ื™ืฉื•ื.

ื›ืฉื ื›ื ืกืชื™ ืœืจืืฉื•ื ื” ืœืชืขืฉื™ื™ื”, ื”ื”ื•ื‘ืœื” ื”ื˜ื›ื ื™ืช ืฉืœื ื• ื“ื™ื‘ืจื” ืขืœ ืžื™ื“ืช ื”ืจืœื•ื•ื ื˜ื™ื•ืช ืฉืœ ืžื•ืฉื’ ื”-ACID. ืœืžืขืŸ ื”ื”ื’ื™ื ื•ืช, ACID ื ื—ืฉื‘ ืœืชื™ืื•ืจ ื’ืก ื•ืœื ืœืชืงืŸ ื™ื™ืฉื•ื ืงืคื“ื ื™. ื”ื™ื•ื ืื ื™ ืžื•ืฆื ืืช ื–ื” ืฉื™ืžื•ืฉื™ ื‘ืขื™ืงืจ ื›ื™ ื–ื” ืžืขืœื” ืงื˜ื’ื•ืจื™ื” ืกืคืฆื™ืคื™ืช ืฉืœ ื‘ืขื™ื•ืช (ื•ืžืฆื™ืข ืžื’ื•ื•ืŸ ืคืชืจื•ื ื•ืช ืืคืฉืจื™ื™ื).

ืœื ื›ืœ DBMS ืชื•ืื ACID; ื™ื—ื“ ืขื ื–ืืช, ื™ื™ืฉื•ืžื™ ืžืกื“ ื ืชื•ื ื™ื ื”ืชื•ืžื›ื™ื ื‘-ACID ืžื‘ื™ื ื™ื ืืช ืžืขืจืš ื”ื“ืจื™ืฉื•ืช ื‘ืฆื•ืจื” ืฉื•ื ื”. ืื—ืช ื”ืกื™ื‘ื•ืช ืœื›ืš ืฉื”ื˜ืžืขื•ืช ืฉืœ ACID ื”ืŸ ื—ืœืงื™ื•ืช ื”ื™ื ื‘ืฉืœ ื”ืคืฉืจื•ืช ื”ืจื‘ื•ืช ืฉื™ืฉ ืœื‘ืฆืข ื›ื“ื™ ืœื™ื™ืฉื ืืช ื“ืจื™ืฉื•ืช ื”-ACID. ื™ื•ืฆืจื™ื ืขืฉื•ื™ื™ื ืœื”ืฆื™ื’ ืืช ืžืกื“ื™ ื”ื ืชื•ื ื™ื ืฉืœื”ื ื›ืชื•ืืžื™ ACID, ืืš ื”ืคืจืฉื ื•ืช ืฉืœ ืžืงืจื™ ืงืฆื” ืขืฉื•ื™ื” ืœื”ืฉืชื ื•ืช ื‘ืื•ืคืŸ ื“ืจืžื˜ื™, ื•ื›ืš ื’ื ื”ืžื ื’ื ื•ืŸ ืœื˜ื™ืคื•ืœ ื‘ืื™ืจื•ืขื™ื "ื‘ืœืชื™ ืกื‘ื™ืจื™ื". ืœื›ืœ ื”ืคื—ื•ืช, ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœืงื‘ืœ ื”ื‘ื ื” ื‘ืจืžื” ื’ื‘ื•ื”ื” ืฉืœ ื”ืžื•ืจื›ื‘ื•ื™ื•ืช ืฉืœ ื™ื™ืฉื•ืžื™ ื‘ืกื™ืก ื›ื“ื™ ืœืงื‘ืœ ื”ื‘ื ื” ื ื›ื•ื ื” ืฉืœ ื”ื”ืชื ื”ื’ื•ืช ื”ืžื™ื•ื—ื“ืช ืฉืœื”ื ื•ืฉืœ ืคืฉืจื•ืช ื”ืขื™ืฆื•ื‘ ืฉืœื”ื.

ื”ื•ื•ื™ื›ื•ื— ืื MongoDB ืขื•ืžื“ ื‘ื“ืจื™ืฉื•ืช ACID ื ืžืฉืš ื’ื ืœืื—ืจ ืฉื—ืจื•ืจื• ืฉืœ ื’ืจืกื” 4. MongoDB ืœื ื ืชืžืš ื‘ืžืฉืš ื–ืžืŸ ืจื‘ ืจื™ืฉื•ื, ืื ื›ื™ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื”ื ืชื•ื ื™ื ื”ื™ื• ืžื—ื•ื™ื‘ื™ื ืœื“ื™ืกืง ืœื ื™ื•ืชืจ ืžืคืขื ืื—ืช ื‘ื›ืœ 60 ืฉื ื™ื•ืช. ื“ืžื™ื™ื ื• ืืช ื”ืชืจื—ื™ืฉ ื”ื‘ื: ืืคืœื™ืงืฆื™ื” ืžืคืจืกืžืช ืฉื ื™ ื›ืชื‘ื™ื (w1 ื•-w2). MongoDB ืžืื—ืกืŸ ื‘ื”ืฆืœื—ื” ืืช w1, ืืš w2 ืื•ื‘ื“ ืขืงื‘ ื›ืฉืœ ื‘ื—ื•ืžืจื”.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื
ืชืจืฉื™ื ื”ืžืžื—ื™ืฉ ืืช ื”ืชืจื—ื™ืฉ. MongoDB ืงื•ืจืก ืœืคื ื™ ืฉื”ื•ื ื™ื›ื•ืœ ืœื›ืชื•ื‘ ื ืชื•ื ื™ื ืœื“ื™ืกืง

ื”ืชื—ื™ื™ื‘ื•ืช ืœื“ื™ืกืง ื”ื™ื ืชื”ืœื™ืš ื™ืงืจ. ืขืœ ื™ื“ื™ ื”ื™ืžื ืขื•ืช ืžื”ืชื—ื™ื™ื‘ื•ื™ื•ืช ืชื›ื•ืคื•ืช, ืžืคืชื—ื™ื ืžืฉืคืจื™ื ืืช ื‘ื™ืฆื•ืขื™ ื”ื”ืงืœื˜ื” ืขืœ ื—ืฉื‘ื•ืŸ ื”ืืžื™ื ื•ืช. MongoDB ืชื•ืžืš ื›ืจื’ืข ื‘ืจื™ืฉื•ื, ืื‘ืœ ื›ืชื™ื‘ื” ืžืœื•ื›ืœื›ืช ืขื“ื™ื™ืŸ ื™ื›ื•ืœื” ืœื”ืฉืคื™ืข ืขืœ ืฉืœืžื•ืช ื”ื ืชื•ื ื™ื ืžื›ื™ื•ื•ืŸ ืฉื™ื•ืžื ื™ื ื ืœื›ื“ื™ื ื›ืœ 100 ืืœืคื™ื•ืช ื”ืฉื ื™ื™ื” ื›ื‘ืจื™ืจืช ืžื—ื“ืœ. ื›ืœื•ืžืจ, ืชืจื—ื™ืฉ ื“ื•ืžื” ืขื“ื™ื™ืŸ ืืคืฉืจื™ ืขื‘ื•ืจ ื™ื•ืžื ื™ื ื•ื”ืฉื™ื ื•ื™ื™ื ื”ืžื•ืฆื’ื™ื ื‘ื”ื, ืื ื›ื™ ื”ืกื™ื›ื•ืŸ ื ืžื•ืš ื‘ื”ืจื‘ื”.

ืœื›ืœ ืžืกื“ ื ืชื•ื ื™ื ื™ืฉ ืžื ื’ื ื•ื ื™ ืขืงื‘ื™ื•ืช ื•ื‘ื™ื“ื•ื“ ืžืฉืœื•

ืžื‘ื™ืŸ ื“ืจื™ืฉื•ืช ื”-ACID, ื”ืขืงื‘ื™ื•ืช ื•ื”ื‘ื™ื“ื•ื“ ืžืชื”ื“ืจื™ื ื‘ืžืกืคืจ ื”ื’ื“ื•ืœ ื‘ื™ื•ืชืจ ืฉืœ ื™ื™ืฉื•ืžื™ื ืฉื•ื ื™ื ืžื›ื™ื•ื•ืŸ ืฉืžื’ื•ื•ืŸ ื”ืคืฉืจื•ืช ืจื—ื‘ ื™ื•ืชืจ. ื™ืฉ ืœื•ืžืจ ื›ื™ ืขืงื‘ื™ื•ืช ื•ื‘ื™ื“ื•ื“ ื”ื ืคื•ื ืงืฆื™ื•ืช ื™ืงืจื•ืช ืœืžื“ื™. ื”ื ื“ื•ืจืฉื™ื ืชื™ืื•ื ื•ืžื’ื‘ื™ืจื™ื ืืช ื”ืชื—ืจื•ืช ืขืœ ืขืงื‘ื™ื•ืช ื”ื ืชื•ื ื™ื. ื”ืžื•ืจื›ื‘ื•ืช ืฉืœ ื”ื‘ืขื™ื” ื’ื“ืœื” ื‘ืื•ืคืŸ ืžืฉืžืขื•ืชื™ ื›ืืฉืจ ื™ืฉ ืฆื•ืจืš ืœื”ืจื—ื™ื‘ ืืช ืžืกื“ ื”ื ืชื•ื ื™ื ื‘ืฆื•ืจื” ืื•ืคืงื™ืช ืขืœ ืคื ื™ ืžืกืคืจ ืžืจื›ื–ื™ ื ืชื•ื ื™ื (ื‘ืžื™ื•ื—ื“ ืื ื”ื ืžืžื•ืงืžื™ื ื‘ืื–ื•ืจื™ื ื’ื™ืื•ื’ืจืคื™ื™ื ืฉื•ื ื™ื). ื”ืฉื’ืช ืจืžื” ื’ื‘ื•ื”ื” ืฉืœ ืขืงื‘ื™ื•ืช ื”ื™ื ืงืฉื” ืžืื•ื“, ืžื›ื™ื•ื•ืŸ ืฉื”ื™ื ื’ื ืžืคื—ื™ืชื” ืืช ื”ื–ืžื™ื ื•ืช ื•ืžื’ื‘ื™ืจื” ืืช ืคื™ืœื•ื— ื”ืจืฉืช. ืœื”ืกื‘ืจ ื›ืœืœื™ ื™ื•ืชืจ ืขืœ ืชื•ืคืขื” ื–ื•, ืื ื™ ืžืžืœื™ืฅ ืœืš ืœื”ืชื™ื™ื—ืก ืืœื™ื” ืžืฉืคื˜ CAP. ืจืื•ื™ ื’ื ืœืฆื™ื™ืŸ ืฉื™ื™ืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืชืžื•ื“ื“ ืขื ื›ืžื•ื™ื•ืช ืงื˜ื ื•ืช ืฉืœ ื—ื•ืกืจ ืขืงื‘ื™ื•ืช, ื•ืžืชื›ื ืชื™ื ื™ื›ื•ืœื™ื ืœื”ื‘ื™ืŸ ืืช ื”ื ื™ื•ืื ืกื™ื ืฉืœ ื”ื‘ืขื™ื” ืžืกืคื™ืง ื˜ื•ื‘ ื›ื“ื™ ืœื™ื™ืฉื ื”ื™ื’ื™ื•ืŸ ื ื•ืกืฃ ื‘ืืคืœื™ืงืฆื™ื” ืœื˜ื™ืคื•ืœ ื‘ื—ื•ืกืจ ืขืงื‘ื™ื•ืช ืžื‘ืœื™ ืœื”ืกืชืžืš ื‘ืžื™ื“ื” ืจื‘ื” ืขืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื›ื“ื™ ืœื˜ืคืœ ื‘ื”.

DBMSs ืžืกืคืงื™ื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืจืžื•ืช ืฉื•ื ื•ืช ืฉืœ ื‘ื™ื“ื•ื“. ืžืคืชื—ื™ ืืคืœื™ืงืฆื™ื•ืช ื™ื›ื•ืœื™ื ืœื‘ื—ื•ืจ ืืช ื”ื™ืขื™ืœ ื‘ื™ื•ืชืจ ืขืœ ืกืžืš ื”ืขื“ืคื•ืชื™ื”ื. ื‘ื™ื“ื•ื“ ื ืžื•ืš ืžืืคืฉืจ ื”ื’ื‘ืจืช ื”ืžื”ื™ืจื•ืช, ืืš ื’ื ืžื’ื‘ื™ืจ ืืช ื”ืกื™ื›ื•ืŸ ืœืžื™ืจื•ืฅ ื ืชื•ื ื™ื. ื‘ื™ื“ื•ื“ ื’ื‘ื•ื” ืžืงื˜ื™ืŸ ืืช ื”ื”ืกืชื‘ืจื•ืช ื”ื–ื•, ืื‘ืœ ืžืื˜ ืืช ื”ืขื‘ื•ื“ื” ื•ื™ื›ื•ืœ ืœื”ื•ื‘ื™ืœ ืœืชื—ืจื•ืช, ืžื” ืฉื™ื•ื‘ื™ืœ ืœื‘ืœืžื™ื ื›ืืœื” ื‘ื‘ืกื™ืก ืฉืžืชื—ื™ืœื™ื ื›ืฉืœื™ื.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื
ืกืงื™ืจื” ืฉืœ ืžื•ื“ืœื™ื ืงื™ื™ืžื™ื ืฉืœ ืžืงื‘ื™ืœื™ื•ืช ื•ื”ืงืฉืจื™ื ื‘ื™ื ื™ื”ื

ืชืงืŸ SQL ืžื’ื“ื™ืจ ืจืง ืืจื‘ืข ืจืžื•ืช ื‘ื™ื“ื•ื“, ืื ื›ื™ ื‘ืชื™ืื•ืจื™ื” ื•ื‘ืคืจืงื˜ื™ืงื” ื™ืฉ ื”ืจื‘ื” ื™ื•ืชืจ. Jepson.io ืžืฆื™ืข ืกืงื™ืจื” ืžืฆื•ื™ื ืช ืฉืœ ืžื•ื“ืœื™ื ืงื™ื™ืžื™ื ื‘ืžืงื‘ื™ืœ. ืœื“ื•ื’ืžื”, Google Spanner ืžื‘ื˜ื™ื— ืกื™ื“ื•ืจ ื—ื™ืฆื•ื ื™ ืขื ืกื ื›ืจื•ืŸ ืฉืขื•ืŸ, ื•ืœืžืจื•ืช ืฉืžื“ื•ื‘ืจ ื‘ืฉื›ื‘ืช ื‘ื™ื“ื•ื“ ืžื—ืžื™ืจื” ื™ื•ืชืจ, ื”ื™ื ืœื ืžื•ื’ื“ืจืช ื‘ืฉื›ื‘ื•ืช ื‘ื™ื“ื•ื“ ืกื˜ื ื“ืจื˜ื™ื•ืช.

ืชืงืŸ SQL ืžื–ื›ื™ืจ ืืช ืจืžื•ืช ื”ื‘ื™ื“ื•ื“ ื”ื‘ืื•ืช:

  • ื ื™ืชืŸ ืœืกื™ื“ื•ืจ (ื”ืžื—ืžื™ืจ ื•ื”ื™ืงืจ ื‘ื™ื•ืชืจ): ืœื‘ื™ืฆื•ืข ื”ื ื™ืชื ื™ื ืœื”ืžืฉื›ื” ื™ืฉ ืืช ืื•ืชื” ื”ืฉืคืขื” ื›ืžื• ื‘ื™ืฆื•ืข ืขืกืงื” ืจืฆื™ืฃ ื›ืœืฉื”ื™. ื‘ื™ืฆื•ืข ืจืฆื™ืฃ ืคื™ืจื•ืฉื• ืฉื›ืœ ืขืกืงื” ืขื•ืงื‘ืช ืžืชื—ื™ืœื” ืจืง ืœืื—ืจ ื”ืฉืœืžืช ื”ืงื•ื“ืžืช. ื™ืฉ ืœืฆื™ื™ืŸ ื›ื™ ื”ืจืžื” ื ื™ืชืŸ ืœืกื™ื“ื•ืจ ืžื™ื•ืฉื ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื›ื‘ื™ื“ื•ื“ ืชืžื•ื ืช ืžืฆื‘ (ืœื“ื•ื’ืžื”, ื‘-Oracle) ืขืงื‘ ื”ื‘ื“ืœื™ื ื‘ืคืจืฉื ื•ืช, ืื ื›ื™ ื‘ื™ื“ื•ื“ ืชืžื•ื ืช ืžืฆื‘ ืขืฆืžื• ืื™ื ื• ืžื™ื•ืฆื’ ื‘ืชืงืŸ SQL.
  • ืงืจื™ืื” ื—ื•ื–ืจืช: ืจืฉื•ืžื•ืช ืœื ืžื—ื•ื™ื‘ื•ืช ื‘ืขืกืงื” ื”ื ื•ื›ื—ื™ืช ื–ืžื™ื ื•ืช ืœืขืกืงื” ื”ื ื•ื›ื—ื™ืช, ืืš ืฉื™ื ื•ื™ื™ื ืฉื ืขืฉื• ืขืœ ื™ื“ื™ ืขืกืงืื•ืช ืื—ืจื•ืช (ื›ื’ื•ืŸ ืฉื•ืจื•ืช ื—ื“ืฉื•ืช) ืœื ื’ืœื•ื™.
  • ืงืจื ืžื—ื•ื™ื‘: ื ืชื•ื ื™ื ืœื ืžื—ื•ื™ื‘ื™ื ืื™ื ื ื–ืžื™ื ื™ื ืขื‘ื•ืจ ืขืกืงืื•ืช. ื‘ืžืงืจื” ื–ื”, ืขืกืงืื•ืช ื™ื›ื•ืœื•ืช ืœืจืื•ืช ืจืง ื ืชื•ื ื™ื ืžื—ื•ื™ื‘ื™ื, ื•ื™ื™ืชื›ื ื• ืงืจื™ืื•ืช ืคื ื˜ื•ื. ืื ืขืกืงื” ืžื›ื ื™ืกื” ื•ืžืชื—ื™ื™ื‘ืช ืœืฉื•ืจื•ืช ื—ื“ืฉื•ืช, ื”ืขืกืงื” ื”ื ื•ื›ื—ื™ืช ืชื•ื›ืœ ืœืจืื•ืช ืื•ืชืŸ ื‘ืขืช โ€‹โ€‹ืฉืื™ืœืชื”.
  • ืงืจื ืœื ืžื—ื•ื™ื‘ (ืจืžื” ื”ื›ื™ ืคื—ื•ืช ืงืคื“ื ื™ืช ื•ื™ืงืจื”): ืžื•ืชืจื•ืช ืงืจื™ืื” ืžืœื•ื›ืœื›ืช, ืขืกืงืื•ืช ื™ื›ื•ืœื•ืช ืœืจืื•ืช ืฉื™ื ื•ื™ื™ื ืœื ืžื—ื•ื™ื‘ื™ื ืฉื ืขืฉื• ืขืœ ื™ื“ื™ ืขืกืงืื•ืช ืื—ืจื•ืช. ื‘ืคื•ืขืœ, ืจืžื” ื–ื• ืขืฉื•ื™ื” ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ืช ืขื‘ื•ืจ ืื•ืžื“ื ื™ื ื’ืกื™ื, ื›ื’ื•ืŸ ืฉืื™ืœืชื•ืช COUNT(*) ืขืœ ื”ืฉื•ืœื—ืŸ.

ืจืžื” ื ื™ืชืŸ ืœืกื™ื“ื•ืจ ืžืžื–ืขืจ ืืช ื”ืกื™ื›ื•ืŸ ืฉืœ ืžื™ืจื•ืฆื™ ื ืชื•ื ื™ื, ืชื•ืš ื”ื™ื•ืชื• ื”ื™ืงืจ ื‘ื™ื•ืชืจ ืœื™ื™ืฉื•ื ื•ื›ืชื•ืฆืื” ืžื›ืš ื”ืขื•ืžืก ื”ืชื—ืจื•ืชื™ ื”ื’ื‘ื•ื” ื‘ื™ื•ืชืจ ืขืœ ื”ืžืขืจื›ืช. ืจืžื•ืช ื‘ื™ื“ื•ื“ ืื—ืจื•ืช ืงืœื•ืช ื™ื•ืชืจ ืœื™ื™ืฉื•ื, ืืš ืžื’ื“ื™ืœื•ืช ืืช ื”ืกื‘ื™ืจื•ืช ืœืžื™ืจื•ืฆื™ ื ืชื•ื ื™ื. DBMS ืžืกื•ื™ืžื™ื ืžืืคืฉืจื™ื ืœืš ืœื”ื’ื“ื™ืจ ืจืžืช ื‘ื™ื“ื•ื“ ืžื•ืชืืžืช ืื™ืฉื™ืช, ืœืื—ืจื™ื ื™ืฉ ื”ืขื“ืคื•ืช ื—ื–ืงื•ืช ื•ืœื ื›ืœ ื”ืจืžื•ืช ื ืชืžื›ื•ืช.

ืชืžื™ื›ื” ื‘ืจืžื•ืช ื‘ื™ื“ื•ื“ ืžืชืคืจืกืžืช ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘-DBMS ื ืชื•ืŸ, ืืš ืจืง ืžื—ืงืจ ืžื“ื•ืงื“ืง ืฉืœ ื”ืชื ื”ื’ื•ืชื• ื™ื›ื•ืœ ืœื—ืฉื•ืฃ ืžื” ืงื•ืจื” ื‘ืคื•ืขืœ.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื
ืกืงื™ืจื” ืฉืœ ื—ืจื™ื’ื•ืช ื‘ืžืงื‘ื™ืœ ื‘ืจืžื•ืช ื‘ื™ื“ื•ื“ ืฉื•ื ื•ืช ืขื‘ื•ืจ DBMSs ืฉื•ื ื™ื

ืžืจื˜ื™ืŸ ืงืœืคืžืŸ ื‘ืคืจื•ื™ืงื˜ ืฉืœื• ื”ืจืžื™ื˜ืื– ' ืžืฉื•ื•ื” ืจืžื•ืช ื‘ื™ื“ื•ื“ ืฉื•ื ื•ืช, ืžื“ื‘ืจ ืขืœ ื—ืจื™ื’ื•ืช ื‘ืžืงื‘ื™ืœ, ื•ื”ืื ืžืกื“ ื”ื ืชื•ื ื™ื ืžืกื•ื’ืœ ืœื“ื‘ื•ืง ื‘ืจืžืช ื‘ื™ื“ื•ื“ ืžืกื•ื™ืžืช. ื”ืžื—ืงืจ ืฉืœ ืงืœืคืžืŸ ืžืจืื” ื›ื™ืฆื“ ืžืคืชื—ื™ ืžืกื“ื™ ื ืชื•ื ื™ื ื—ื•ืฉื‘ื™ื ืื—ืจืช ืขืœ ืจืžื•ืช ื”ื‘ื™ื“ื•ื“.

ื—ืกื™ืžื” ืื•ืคื˜ื™ืžื™ืช ื‘ืื” ืœืขื–ืจื” ื›ืืฉืจ ืงืฉื” ืœืฉืžื•ืจ ืขืœ ื”ืจื’ื™ืœ.

ื—ืกื™ืžื” ืขืœื•ืœื” ืœื”ื™ื•ืช ื™ืงืจื” ืžืื•ื“, ืœื ืจืง ื‘ื’ืœืœ ืฉื”ื™ื ืžื’ื‘ื™ืจื” ืืช ื”ืชื—ืจื•ืช ื‘ืžืกื“ ื”ื ืชื•ื ื™ื, ืืœื ื’ื ื‘ื’ืœืœ ืฉื”ื™ื ืžื—ื™ื™ื‘ืช ืืช ืฉืจืชื™ ื”ืืคืœื™ืงืฆื™ื•ืช ืœื”ืชื—ื‘ืจ ื›ืœ ื”ื–ืžืŸ ืœืžืกื“ ื”ื ืชื•ื ื™ื. ืคื™ืœื•ื— ืจืฉืช ื™ื›ื•ืœ ืœื”ื—ืžื™ืจ ืžืฆื‘ื™ ื ืขื™ืœื” ื‘ืœืขื“ื™ื™ื ื•ืœื”ื•ื‘ื™ืœ ืœืžื‘ื•ื™ ืกืชื•ื ืฉืงืฉื” ืœื–ื”ื•ืช ื•ืœืคืชื•ืจ. ื‘ืžืงืจื™ื ื‘ื”ื ื ืขื™ืœื” ื‘ืœืขื“ื™ืช ืื™ื ื” ืžืชืื™ืžื”, ื ืขื™ืœื” ืื•ืคื˜ื™ืžื™ืช ืขื•ื–ืจืช.

ืžื ืขื•ืœ ืื•ืคื˜ื™ืžื™ ื”ื™ื ืฉื™ื˜ื” ืฉื‘ื” ื‘ืขืช ืงืจื™ืืช ืžื—ืจื•ื–ืช, ื”ื™ื ืœื•ืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืืช ื”ื’ืจืกื”, ืกื›ื•ื ื”ื‘ื“ื™ืงื” ืื• ื–ืžืŸ ื”ืฉื™ื ื•ื™ ื”ืื—ืจื•ืŸ ืฉืœื”. ื–ื” ืžืืคืฉืจ ืœืš ืœื•ื•ื“ื ืฉืื™ืŸ ืฉื™ื ื•ื™ ื’ืจืกื” ืื˜ื•ืžื™ืช ืœืคื ื™ ืฉื™ื ื•ื™ ืขืจืš:

UPDATE products
SET name = 'Telegraph receiver', version = 2
WHERE id = 1 AND version = 1

ื‘ืžืงืจื” ื–ื”, ืขื“ื›ื•ืŸ ื”ื˜ื‘ืœื” products ืœื ื™ืชื‘ืฆืข ืื ืคืขื•ืœื” ืื—ืจืช ื‘ื™ืฆืขื” ื‘ืขื‘ืจ ืฉื™ื ื•ื™ื™ื ื‘ืฉื•ืจื” ื–ื•. ืื ืœื ื‘ื•ืฆืขื• ืคืขื•ืœื•ืช ืื—ืจื•ืช ื‘ืฉื•ืจื” ื–ื•, ื”ืฉื™ื ื•ื™ ืขื‘ื•ืจ ืฉื•ืจื” ืื—ืช ื™ืชืจื—ืฉ ื•ื ื•ื›ืœ ืœื•ืžืจ ืฉื”ืขื“ื›ื•ืŸ ื”ืฆืœื™ื—.

ื™ืฉื ืŸ ื—ืจื™ื’ื•ืช ื ื•ืกืคื•ืช ืžืœื‘ื“ ืงืจื™ืื•ืช ืžืœื•ื›ืœื›ื•ืช ื•ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื

ื›ืฉืžื“ื•ื‘ืจ ื‘ืขืงื‘ื™ื•ืช ื ืชื•ื ื™ื, ื”ื”ืชืžืงื“ื•ืช ื”ื™ื ื‘ืคื•ื˜ื ืฆื™ืืœ ืœืชื ืื™ ืžืจื•ืฅ ืฉืขืœื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœืงืจื™ืื” ืžืœื•ื›ืœื›ืช ื•ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื. ืขื ื–ืืช, ื—ืจื™ื’ื•ืช ื ืชื•ื ื™ื ืœื ื ืขืฆืจื•ืช ืฉื.

ื“ื•ื’ืžื” ืื—ืช ืœื—ืจื™ื’ื•ืช ื›ืืœื” ื”ื™ื ืขื™ื•ื•ืช ื”ืงืœื˜ื” (ื›ืชื•ื‘ ื”ื˜ื™ื•ืช). ืงืฉื” ืœื–ื”ื•ืช ืขื™ื•ื•ืชื™ื ืžื›ื™ื•ื•ืŸ ืฉื‘ื“ืจืš ื›ืœืœ ืœื ืžื—ืคืฉื™ื ืื•ืชื ื‘ืื•ืคืŸ ืคืขื™ืœ. ื”ื ืœื ื ื•ื‘ืขื™ื ืžืงืจื™ืื•ืช ืžืœื•ื›ืœื›ื•ืช ืื• ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื, ืืœื ืžื”ืคืจื•ืช ืฉืœ ืื™ืœื•ืฆื™ื ืœื•ื’ื™ื™ื ืฉื”ื•ื˜ืœื• ืขืœ ื”ื ืชื•ื ื™ื.

ืœื“ื•ื’ืžื”, ื”ื‘ื” ื ืฉืงื•ืœ ื™ื™ืฉื•ื ื ื™ื˜ื•ืจ ื”ืžื—ื™ื™ื‘ ืžืคืขื™ืœ ืื—ื“ ืœื”ื™ื•ืช ื›ื•ื ื ื•ืช ื›ืœ ื”ื–ืžืŸ:

BEGIN tx1;                      BEGIN tx2;
SELECT COUNT(*)
FROM operators
WHERE oncall = true;
0                               SELECT COUNT(*)
                                FROM operators
                                WHERE oncall = TRUE;
                                0
UPDATE operators                UPDATE operators
SET oncall = TRUE               SET oncall = TRUE
WHERE userId = 4;               WHERE userId = 2;
COMMIT tx1;                     COMMIT tx2;

ื‘ืžืฆื‘ ืฉืœืขื™ืœ, ืชืชืจื—ืฉ ืฉื—ื™ืชื•ืช ืฉื™ื ืื ืฉืชื™ ื”ืขืกืงืื•ืช ื™ืชื‘ืฆืขื• ื‘ื”ืฆืœื—ื”. ืœืžืจื•ืช ืฉืœื ื”ื™ื• ืงืจื™ืื•ืช ืžืœื•ื›ืœื›ื•ืช ืื• ืื•ื‘ื“ืŸ ื ืชื•ื ื™ื, ืฉืœืžื•ืช ื”ื ืชื•ื ื™ื ื ืคื’ืขื”: ื›ืขืช ืฉื ื™ ืื ืฉื™ื ื ื—ืฉื‘ื™ื ื‘ื›ื•ื ื ื•ืช ื‘ื• ื–ืžื ื™ืช.

ื‘ื™ื“ื•ื“ ื”ื ื™ืชืŸ ืœื”ืกื“ืจื”, ืขื™ืฆื•ื‘ ืกื›ื™ืžื” ืื• ืื™ืœื•ืฆื™ ืžืกื“ ื ืชื•ื ื™ื ื™ื›ื•ืœื™ื ืœืกื™ื™ืข ื‘ืžื ื™ืขืช ืคื’ืžื™ื ื‘ื›ืชื™ื‘ื”. ืžืคืชื—ื™ื ื—ื™ื™ื‘ื™ื ืœื”ื™ื•ืช ืžืกื•ื’ืœื™ื ืœื–ื”ื•ืช ื—ืจื™ื’ื•ืช ื›ืืœื” ื‘ืžื”ืœืš ื”ืคื™ืชื•ื— ื›ื“ื™ ืœื”ื™ืžื ืข ืžื”ืŸ ื‘ื™ื™ืฆื•ืจ. ื™ื—ื“ ืขื ื–ืืช, ืงืฉื” ื‘ื™ื•ืชืจ ืœื—ืคืฉ ืขื™ื•ื•ืชื™ ื”ืงืœื˜ื” ื‘ื‘ืกื™ืก ื”ืงื•ื“. ื‘ืžื™ื•ื—ื“ ื‘ืžืขืจื›ื•ืช ื’ื“ื•ืœื•ืช, ื›ืืฉืจ ืฆื•ื•ืชื™ ืคื™ืชื•ื— ืฉื•ื ื™ื ืื—ืจืื™ื ืขืœ ื”ื˜ืžืขืช ืคื•ื ืงืฆื™ื•ืช ื”ืžื‘ื•ืกืกื•ืช ืขืœ ืื•ืชืŸ ื˜ื‘ืœืื•ืช ื•ืื™ื ื ืžืกื›ื™ืžื™ื ืขืœ ื”ืคืจื˜ ืฉืœ ื’ื™ืฉื” ืœื ืชื•ื ื™ื.

ืžืกื“ ื”ื ืชื•ื ื™ื ื•ื”ืžืฉืชืžืฉ ืœื ืชืžื™ื“ ืžืกื›ื™ืžื™ื ืžื” ืœืขืฉื•ืช

ืื—ื“ ื”ืžืืคื™ื™ื ื™ื ื”ืžืจื›ื–ื™ื™ื ืฉืœ ืžืกื“ื™ ื ืชื•ื ื™ื ื”ื•ื ื”ื‘ื˜ื—ืช ื”ื•ืจืืช ื‘ื™ืฆื•ืข, ืืš ื™ื™ืชื›ืŸ ืฉื”ืฆื• ื”ื–ื” ืขืฆืžื• ืœื ื™ื”ื™ื” ืฉืงื•ืฃ ืœืžืคืชื— ื”ืชื•ื›ื ื”. ืžืกื“ื™ ื ืชื•ื ื™ื ืžื‘ืฆืขื™ื ืขืกืงืื•ืช ืœืคื™ ืกื“ืจ ืงื‘ืœืชืŸ, ืœื ืœืคื™ ื”ืกื“ืจ ืฉืžืชื›ื ื ื™ื ืžืชื›ื•ื•ื ื™ื. ืงืฉื” ืœื—ื–ื•ืช ืืช ืกื“ืจ ื”ืขืกืงืื•ืช, ื‘ืžื™ื•ื—ื“ ื‘ืžืขืจื›ื•ืช ืžืงื‘ื™ืœื•ืช ืขืžื•ืกื•ืช ืžืื•ื“.

ื‘ืžื”ืœืš ื”ืคื™ืชื•ื—, ื‘ืžื™ื•ื—ื“ ื›ืืฉืจ ืขื•ื‘ื“ื™ื ืขื ืกืคืจื™ื•ืช ืฉืื™ื ืŸ ื—ื•ืกืžื•ืช, ืกื’ื ื•ืŸ ืœืงื•ื™ ื•ืงืจื™ืื•ืช ื ืžื•ื›ื” ืขืœื•ืœื™ื ืœื’ืจื•ื ืœืžืฉืชืžืฉื™ื ืœื”ืืžื™ืŸ ืฉืขืกืงืื•ืช ืžื‘ื•ืฆืขื•ืช ื‘ืจืฆืฃ, ื›ืืฉืจ ืœืžืขืฉื” ื”ืŸ ื™ื›ื•ืœื•ืช ืœื”ื’ื™ืข ืœืžืกื“ ื”ื ืชื•ื ื™ื ื‘ื›ืœ ืกื“ืจ.

ื‘ืžื‘ื˜ ืจืืฉื•ืŸ, ื‘ืชื•ื›ื ื™ืช ืœืžื˜ื”, T1 ื•-T2 ื ืงืจืื™ื ื‘ืจืฆืฃ, ืืš ืื ื”ืคื•ื ืงืฆื™ื•ืช ื”ืœืœื• ืื™ื ืŸ ื—ื•ืกืžื•ืช ื•ืžื—ื–ื™ืจื•ืช ืžื™ื“ ืืช ื”ืชื•ืฆืื” ื‘ื˜ื•ืคืก ื”ื‘ื˜ื—ื”, ืื– ืกื“ืจ ื”ืฉื™ื—ื•ืช ื™ื™ืงื‘ืข ืœืคื™ ื”ืจื’ืขื™ื ืฉื‘ื”ื ื”ื ื ื›ื ืกื• ืœืžืกื“ ื”ื ืชื•ื ื™ื:

result1 = T1() // ืชื•ืฆืื•ืช ืืžื™ืชื™ื•ืช ื”ืŸ ื”ื‘ื˜ื—ื•ืช
ืชื•ืฆืื”2 = T2()

ืื ื ื“ืจืฉืช ืื˜ื•ืžื™ื•ืช (ื›ืœื•ืžืจ, ื™ืฉ ืœื”ืฉืœื™ื ืื• ืœื‘ื˜ืœ ืืช ื›ืœ ื”ืคืขื•ืœื•ืช) ื•ื”ืจืฆืฃ ืžืฉื ื”, ืื–ื™ ื™ืฉ ืœื‘ืฆืข ืืช ื”ืคืขื•ืœื•ืช T1 ื•-T2 ื‘ืชื•ืš ืขืกืงื” ืื—ืช.

ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืคื™ืฆื•ืœ ื‘ืจืžืช ื”ื™ื™ืฉื•ื ืืœ ืžื—ื•ืฅ ืœื™ื™ืฉื•ื

Sharding ื”ื™ื ืฉื™ื˜ื” ืœื—ืœื•ืงื” ืื•ืคืงื™ืช ืฉืœ ืžืกื“ ื ืชื•ื ื™ื. ืžืกื“ื™ ื ืชื•ื ื™ื ืžืกื•ื™ืžื™ื ื™ื›ื•ืœื™ื ืœืคืฆืœ ื ืชื•ื ื™ื ื‘ืื•ืคืŸ ืื•ืคืงื™, ื‘ืขื•ื“ ืฉืื—ืจื™ื ืื™ื ื ื™ื›ื•ืœื™ื, ืื• ืื™ื ื ื˜ื•ื‘ื™ื ื‘ื›ืš. ื›ืืฉืจ ืืจื›ื™ื˜ืงื˜ื™ื/ืžืคืชื—ื™ ื ืชื•ื ื™ื ืžืกื•ื’ืœื™ื ืœื—ื–ื•ืช ื‘ื“ื™ื•ืง ื›ื™ืฆื“ ื™ื™ื’ืฉื• ืœื ืชื•ื ื™ื, ื”ื ื™ื›ื•ืœื™ื ืœื™ืฆื•ืจ ืžื—ื™ืฆื•ืช ืื•ืคืงื™ื•ืช ื‘ืžืจื—ื‘ ื”ืžืฉืชืžืฉ ื‘ืžืงื•ื ืœื”ืืฆื™ืœ ืืช ื”ืขื‘ื•ื“ื” ื”ื–ื• ืœืžืกื“ ื”ื ืชื•ื ื™ื. ืชื”ืœื™ืš ื–ื” ื ืงืจื "ืจื™ืกื•ืง ื‘ืจืžืช ื”ืืคืœื™ืงืฆื™ื”" (ืจื™ืกื•ืง ื‘ืจืžืช ื”ืืคืœื™ืงืฆื™ื”).

ืœืžืจื‘ื” ื”ืฆืขืจ, ื”ืฉื ื”ื–ื” ื™ื•ืฆืจ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืืช ื”ืชืคื™ืกื” ื”ืžื•ื˜ืขื™ืช ืฉ-Sharding ื—ื™ ื‘ืฉื™ืจื•ืชื™ ื™ื™ืฉื•ืžื™ื. ืœืžืขืฉื”, ื ื™ืชืŸ ืœื™ื™ืฉื ืื•ืชื• ื›ืฉื›ื‘ื” ื ืคืจื“ืช ืžื•ืœ ื‘ืกื™ืก ื”ื ืชื•ื ื™ื. ื‘ื”ืชืื ืœืฆืžื™ื—ืช ื”ื ืชื•ื ื™ื ื•ืื™ื˜ืจืฆื™ื•ืช ื”ืกื›ื™ืžื”, ื“ืจื™ืฉื•ืช ื”ืจื™ืกื•ืง ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžื•ืจื›ื‘ื•ืช ืœืžื“ื™. ืืกื˜ืจื˜ื’ื™ื•ืช ืžืกื•ื™ืžื•ืช ืขืฉื•ื™ื•ืช ืœื”ืคื™ืง ืชื•ืขืœืช ืžื”ื™ื›ื•ืœืช ืœื‘ืฆืข ืื™ื˜ืจืฆื™ื” ืœืœื ืฆื•ืจืš ื‘ืคืจื™ืกื” ืžื—ื“ืฉ ืฉืœ ืฉืจืชื™ ื™ื™ืฉื•ืžื™ื.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื
ื“ื•ื’ืžื” ืœืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉื‘ื” ืฉืจืชื™ ื™ื™ืฉื•ืžื™ื ืžื•ืคืจื“ื™ื ืžืฉื™ืจื•ืช ื”ืจืกื™ืกื™ื

ื”ืขื‘ืจืช ืคื™ืฆื•ืœ ืœืฉื™ืจื•ืช ื ืคืจื“ ืžืจื—ื™ื‘ื” ืืช ื”ื™ื›ื•ืœืช ืœื”ืฉืชืžืฉ ื‘ืืกื˜ืจื˜ื’ื™ื•ืช ืคื™ืฆื•ืœ ืฉื•ื ื•ืช ืœืœื ืฆื•ืจืš ื‘ืคืจื™ืกื” ืžื—ื“ืฉ ืฉืœ ื™ื™ืฉื•ืžื™ื. ื•ื™ื™ื˜ืก ืžื”ื•ื•ื” ื“ื•ื’ืžื” ืœืžืขืจื›ืช ืจื™ืกื•ืง ื›ื–ื• ื‘ืจืžืช ื”ื™ื™ืฉื•ื. Vitess ืžืกืคืงืช ืจื™ืกื•ืง ืื•ืคืงื™ ืขื‘ื•ืจ MySQL ื•ืžืืคืฉืจืช ืœืœืงื•ื—ื•ืช ืœื”ืชื—ื‘ืจ ืืœื™ื• ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ MySQL. ื”ืžืขืจื›ืช ืžืคืœื—ืช ืืช ื”ื ืชื•ื ื™ื ืœืฆืžืชื™ MySQL ืฉื•ื ื™ื ืฉืื™ื ื ื™ื•ื“ืขื™ื ื“ื‘ืจ ืื—ื“ ืขืœ ื”ืฉื ื™.

ื”ื’ื“ืœื” ืื•ื˜ื•ืžื˜ื™ืช ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืžืกื•ื›ื ืช

AUTOINCREMENT ื”ื™ื ื“ืจืš ื ืคื•ืฆื” ืœื™ืฆื•ืจ ืžืคืชื—ื•ืช ืจืืฉื™ื™ื. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื™ืฉ ืžืงืจื™ื ืฉื‘ื”ื ืžืกื“ื™ ื ืชื•ื ื™ื ืžืฉืžืฉื™ื ื›ืžื—ื•ืœืœื™ ื–ื™ื”ื•ื™, ื•ืžืกื“ ื”ื ืชื•ื ื™ื ืžื›ื™ืœ ื˜ื‘ืœืื•ืช ืฉื ื•ืขื“ื• ืœื™ืฆื•ืจ ืžื–ื”ื™ื. ื™ืฉื ืŸ ืžืกืคืจ ืกื™ื‘ื•ืช ืœื›ืš ืฉื™ืฆื™ืจืช ืžืคืชื—ื•ืช ืจืืฉื™ื™ื ื‘ืืžืฆืขื•ืช ื”ื’ื“ืœื” ืื•ื˜ื•ืžื˜ื™ืช ืจื—ื•ืงื” ืžืœื”ื™ื•ืช ืื™ื“ื™ืืœื™ืช:

  • ื‘ืžืกื“ ื ืชื•ื ื™ื ืžื‘ื•ื–ืจ, ื”ื’ื“ืœื” ืื•ื˜ื•ืžื˜ื™ืช ื”ื™ื ื‘ืขื™ื” ืจืฆื™ื ื™ืช. ื›ื“ื™ ืœื™ืฆื•ืจ ืืช ื”ืžื–ื”ื”, ื™ืฉ ืฆื•ืจืš ื‘ืžื ืขื•ืœ ื’ืœื•ื‘ืœื™. ื‘ืžืงื•ื ื–ืืช, ืืชื” ื™ื›ื•ืœ ืœื™ืฆื•ืจ UUID: ื–ื” ืœื ืžืฆืจื™ืš ืื™ื ื˜ืจืืงืฆื™ื” ื‘ื™ืŸ ืฆืžืชื™ ืžืกื“ ื ืชื•ื ื™ื ืฉื•ื ื™ื. ื”ื’ื“ืœื” ืื•ื˜ื•ืžื˜ื™ืช ืขื ืžื ืขื•ืœื™ื ื™ื›ื•ืœื” ืœื”ื•ื‘ื™ืœ ืœืžื—ืœื•ืงืช ื•ืœื”ืคื—ื™ืช ืžืฉืžืขื•ืชื™ืช ืืช ื”ื‘ื™ืฆื•ืขื™ื ื‘ืชื•ืกืคื•ืช ื‘ืžืฆื‘ื™ื ืžื‘ื•ื–ืจื™ื. ื›ืžื” DBMSs (ืœื“ื•ื’ืžื”, MySQL) ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืชืฆื•ืจื” ืžื™ื•ื—ื“ืช ื•ืชืฉื•ืžืช ืœื‘ ื–ื”ื™ืจื” ื™ื•ืชืจ ื›ื“ื™ ืœืืจื’ืŸ ื›ืจืื•ื™ ืฉื›ืคื•ืœ ืžืืกื˜ืจ-ืžืืกื˜ืจ. ื•ืงืœ ืœืขืฉื•ืช ื˜ืขื•ื™ื•ืช ื‘ืขืช ื”ื’ื“ืจืช ื”ืชืฆื•ืจื”, ืžื” ืฉื™ื•ื‘ื™ืœ ืœื›ืฉืœื™ื ื‘ื”ืงืœื˜ื”.
  • ืœื›ืžื” ืžืกื“ื™ ื ืชื•ื ื™ื ื™ืฉ ืืœื’ื•ืจื™ืชืžื™ ื—ืœื•ืงื” ื”ืžื‘ื•ืกืกื™ื ืขืœ ืžืคืชื—ื•ืช ืจืืฉื™ื™ื. ื–ื™ื”ื•ื™ื™ื ืขื•ืงื‘ื™ื ืขืœื•ืœื™ื ืœื”ื•ื‘ื™ืœ ืœื ืงื•ื“ื•ืช ื—ืžื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื•ืช ื•ืœืขื•ืžืก ืžื•ื’ื‘ืจ ื‘ืžื—ื™ืฆื•ืช ืžืกื•ื™ืžื•ืช ื‘ืขื•ื“ ืฉืื—ืจื•ืช ื ืฉืืจื•ืช ืœื ืคืขื™ืœื•ืช.
  • ืžืคืชื— ืจืืฉื™ ื”ื•ื ื”ื“ืจืš ื”ืžื”ื™ืจื” ื‘ื™ื•ืชืจ ืœื’ืฉืช ืœืฉื•ืจื” ื‘ืžืกื“ ื ืชื•ื ื™ื. ืขื ื“ืจื›ื™ื ื˜ื•ื‘ื•ืช ื™ื•ืชืจ ืœื–ื”ื•ืช ืจืฉื•ืžื•ืช, ืžื–ื”ื™ื ืขื•ืงื‘ื™ื ื™ื›ื•ืœื™ื ืœื”ืคื•ืš ืืช ื”ืขืžื•ื“ื” ื”ื—ืฉื•ื‘ื” ื‘ื™ื•ืชืจ ื‘ื˜ื‘ืœืื•ืช ืœืขืžื•ื“ื” ื—ืกืจืช ืชื•ืขืœืช ืžืœืื” ื‘ืขืจื›ื™ื ื—ืกืจื™ ืžืฉืžืขื•ืช. ืœื›ืŸ, ื‘ืžื™ื“ืช ื”ืืคืฉืจ, ืื ื ื‘ื—ืจ ืžืคืชื— ืจืืฉื™ ื™ื™ื—ื•ื“ื™ ื•ื˜ื‘ืขื™ ื‘ืขื•ืœื (ืœืžืฉืœ ืฉื ืžืฉืชืžืฉ).

ืœืคื ื™ ืฉืชื—ืœื™ื˜ ืขืœ ื’ื™ืฉื”, ืฉืงื•ืœ ืืช ื”ื”ืฉืคืขื” ืฉืœ ืžื–ื”ื™ื ื•-UUID ื”ื’ื“ืœื™ื ืื•ื˜ื•ืžื˜ื™ืช ืขืœ ื”ื•ืกืคื” ืœืื™ื ื“ืงืก, ื—ืœื•ืงื” ื•ื—ืœื•ืงื”.

ื ืชื•ื ื™ื ืžื™ื•ืฉื ื™ื ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ื™ื ื•ืœื ื“ื•ืจืฉื™ื ื ืขื™ืœื”

Multiversion Concurrency Control (MVCC) ืžื™ื™ืฉืžืช ืจื‘ื•ืช ืžื“ืจื™ืฉื•ืช ื”ืขืงื‘ื™ื•ืช ืฉื ื“ื•ื ื• ื‘ืงืฆืจื” ืœืขื™ืœ. ืžืกื“ื™ ื ืชื•ื ื™ื ืžืกื•ื™ืžื™ื (ืœื“ื•ื’ืžื”, Postgres, Spanner) ืžืฉืชืžืฉื™ื ื‘-MVCC ื›ื“ื™ "ืœื”ื–ื™ืŸ" ืขืกืงืื•ืช ืขื ืชืžื•ื ื•ืช ืžืฆื‘ - ื’ืจืกืื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื. ื ื™ืชืŸ ื’ื ืœื‘ืฆืข ืขืกืงืื•ืช ืชืžื•ื ืช ืžืฆื‘ ื‘ืกื™ื“ืจื” ื›ื“ื™ ืœื”ื‘ื˜ื™ื— ืขืงื‘ื™ื•ืช. ื‘ืขืช ืงืจื™ืื” ืžืชืžื•ื ืช ืžืฆื‘ ื™ืฉื ื”, โ€‹โ€‹ืงื•ืจืื™ื ื ืชื•ื ื™ื ืžื™ื•ืฉื ื™ื.

ืงืจื™ืืช ื ืชื•ื ื™ื ืžืขื˜ ืžื™ื•ืฉื ื™ื ื™ื›ื•ืœื” ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™ืช, ืœืžืฉืœ, ื‘ืขืช ื™ืฆื™ืจืช ื ื™ืชื•ื—ื™ื ืžื”ื ืชื•ื ื™ื ืื• ื—ื™ืฉื•ื‘ ืขืจื›ื™ื ืžืฆื˜ื‘ืจื™ื ืžืฉื•ืขืจื™ื.

ื”ื™ืชืจื•ืŸ ื”ืจืืฉื•ืŸ ื‘ืขื‘ื•ื“ื” ืขื ื ืชื•ื ื™ื ืžื“ื•ืจ ืงื•ื“ื ื”ื•ื ื–ืžืŸ ืื—ื–ื•ืจ ื ืžื•ืš (ื‘ืžื™ื•ื—ื“ ืื ืžืกื“ ื”ื ืชื•ื ื™ื ืžื•ืคืฅ ืขืœ ืคื ื™ ื’ื™ืื•ื’ืจืคื™ื•ืช ืฉื•ื ื•ืช). ื”ืฉื ื™ ื”ื•ื ืฉืขืกืงืื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“ ื”ืŸ ืœืœื ื ืขื™ืœื”. ื–ื”ื• ื™ืชืจื•ืŸ ืžืฉืžืขื•ืชื™ ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ื ืฉืงื•ืจืื™ื ื”ืจื‘ื”, ื›ืœ ืขื•ื“ ื”ื ื™ื›ื•ืœื™ื ืœื”ืชืžื•ื“ื“ ืขื ื ืชื•ื ื™ื ืžื™ื•ืฉื ื™ื.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื
ืฉืจืช ื”ื™ื™ืฉื•ืžื™ื ืงื•ืจื ื ืชื•ื ื™ื ืžื”ืขื•ืชืง ื”ืžืงื•ืžื™ ืฉืื™ื ื• ืžืขื•ื“ื›ืŸ ื‘-5 ืฉื ื™ื•ืช, ื’ื ืื ื”ื’ืจืกื” ื”ืขื“ื›ื ื™ืช ื‘ื™ื•ืชืจ ื–ืžื™ื ื” ื‘ืฆื“ ื”ืฉื ื™ ืฉืœ ื”ืื•ืงื™ื™ื ื•ืก โ€‹โ€‹ื”ืฉืงื˜

DBMSs ืžื˜ืงื™ื ืื•ื˜ื•ืžื˜ื™ืช ื’ืจืกืื•ืช ื™ืฉื ื•ืช ื™ื•ืชืจ, ื•ื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื ืžืืคืฉืจื™ื ืœืš ืœืขืฉื•ืช ื–ืืช ืขืœ ืคื™ ื‘ืงืฉื”. ืœื“ื•ื’ืžื”, Postgres ืžืืคืฉืจ ืœืžืฉืชืžืฉื™ื ืœืขืฉื•ืช VACUUM ืขืœ ืคื™ ื‘ืงืฉื”, ื•ื’ื ืžืขืช ืœืขืช ืžื‘ืฆืข ืคืขื•ืœื” ื–ื• ื‘ืื•ืคืŸ ืื•ื˜ื•ืžื˜ื™. Spanner ืžืคืขื™ืœ ืื•ืกืฃ ืืฉืคื” ื›ื“ื™ ืœื”ื™ืคื˜ืจ ืžืชืฆืœื•ืžื™ื ื‘ื ื™ ื™ื•ืชืจ ืžืฉืขื”.

ื›ืœ ืžืงื•ืจื•ืช ื–ืžืŸ ื ืชื•ื ื™ื ืœืขื™ื•ื•ืชื™ื

ื”ืกื•ื“ ื”ืฉืžื•ืจ ื‘ื™ื•ืชืจ ื‘ืžื“ืขื™ ื”ืžื—ืฉื‘ ื”ื•ื ืฉื›ืœ ืžืžืฉืงื™ ื”-API ืฉืœ ื”ืชื–ืžื•ืŸ ืฉืงืจื™ื. ืœืžืขืฉื”, ื”ืžื›ื•ื ื•ืช ืฉืœื ื• ืื™ื ืŸ ื™ื•ื“ืขื•ืช ืืช ื”ืฉืขื” ื”ื ื•ื›ื—ื™ืช ื”ืžื“ื•ื™ืงืช. ืžื—ืฉื‘ื™ื ืžื›ื™ืœื™ื ื’ื‘ื™ืฉื™ ืงื•ื•ืจืฅ ื”ื™ื•ืฆืจื™ื ืจืขื™ื“ื•ืช ื”ืžืฉืžืฉื•ืช ืœืฉืžื™ืจื” ืขืœ ื”ื–ืžืŸ. ืขื ื–ืืช, ื”ื ืื™ื ื ืžื“ื•ื™ืงื™ื ืžืกืคื™ืง ื•ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืœืคื ื™/ืคื™ื’ื•ืจ ื‘ื–ืžืŸ ื”ืžื“ื•ื™ืง. ื”ืžืฉืžืจืช ื™ื›ื•ืœื” ืœื”ื’ื™ืข ืœ-20 ืฉื ื™ื•ืช ื‘ื™ื•ื. ืœื›ืŸ, ื”ื–ืžืŸ ื‘ืžื—ืฉื‘ื™ื ืฉืœื ื• ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืžืกื•ื ื›ืจืŸ ืžืขืช ืœืขืช ืขื ื”ืจืฉืช.

ืฉืจืชื™ NTP ืžืฉืžืฉื™ื ืœืกื ื›ืจื•ืŸ, ืืš ืชื”ืœื™ืš ื”ืกื ื›ืจื•ืŸ ืขืฆืžื• ื›ืคื•ืฃ ืœืขื™ื›ื•ื‘ื™ื ื‘ืจืฉืช. ืืคื™ืœื• ืกื ื›ืจื•ืŸ ืขื ืฉืจืช NTP ื‘ืื•ืชื• ืžืจื›ื– ื ืชื•ื ื™ื ืœื•ืงื— ืงืฆืช ื–ืžืŸ. ื‘ืจื•ืจ ืฉืขื‘ื•ื“ื” ืขื ืฉืจืช NTP ืฆื™ื‘ื•ืจื™ ื™ื›ื•ืœื” ืœื”ื•ื‘ื™ืœ ืœืขื™ื•ื•ืช ื’ื“ื•ืœ ืขื•ื“ ื™ื•ืชืจ.

ืฉืขื•ื ื™ื ืื˜ื•ืžื™ื™ื ื•ืขืžื™ืชื™ื”ื ืœ-GPS ื˜ื•ื‘ื™ื ื™ื•ืชืจ ืœืงื‘ื™ืขืช ื”ืฉืขื” ื”ื ื•ื›ื—ื™ืช, ืืš ื”ื ื™ืงืจื™ื ื•ื“ื•ืจืฉื™ื ื”ื’ื“ืจื” ืžื•ืจื›ื‘ืช, ื›ืš ืฉืœื ื ื™ืชืŸ ืœื”ืชืงื™ืŸ ืื•ืชื ืขืœ ื›ืœ ืžื›ื•ื ื™ืช. ื‘ืฉืœ ื›ืš, ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืžืฉืชืžืฉื™ื ื‘ื’ื™ืฉื” ืžื“ื•ืจื’ืช. ืฉืขื•ื ื™ ืื˜ื•ืžื™ ื•/ืื• GPS ืžืฆื™ื’ื™ื ืืช ื”ืฉืขื” ื”ืžื“ื•ื™ืงืช, ื•ืœืื—ืจ ืžื›ืŸ ื”ื•ื ืžืฉื•ื“ืจ ืœืžื›ื•ื ื•ืช ืื—ืจื•ืช ื“ืจืš ืฉืจืชื™ื ืžืฉื ื™ื™ื. ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื›ืœ ืžื›ื•ื ื” ืชื—ื•ื•ื” ืงื™ื–ื•ื– ืžืกื•ื™ื ืžื”ืฉืขื” ื”ืžื“ื•ื™ืงืช.

ื”ืžืฆื‘ ืžื—ืžื™ืจ ื‘ืฉืœ ื”ืขื•ื‘ื“ื” ืฉื™ื™ืฉื•ืžื™ื ื•ืžืกื“ื™ ื ืชื•ื ื™ื ืžืžื•ืงืžื™ื ืœืจื•ื‘ ื‘ืžื›ื•ื ื•ืช ืฉื•ื ื•ืช (ืื ืœื ื‘ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื). ืœืคื™ื›ืš, ื”ื–ืžืŸ ื™ื”ื™ื” ืฉื•ื ื” ืœื ืจืง ื‘ืฆืžืชื™ DB ื”ืžืคื•ื–ืจื™ื ืขืœ ื’ื‘ื™ ืžื›ื•ื ื•ืช ืฉื•ื ื•ืช. ื–ื” ื™ื”ื™ื” ืฉื•ื ื” ื’ื ื‘ืฉืจืช ื”ื™ื™ืฉื•ืžื™ื.

Google TrueTime ื ื•ืงื˜ ื‘ื’ื™ืฉื” ืฉื•ื ื” ืœื—ืœื•ื˜ื™ืŸ. ืจื•ื‘ ื”ืื ืฉื™ื ืžืืžื™ื ื™ื ืฉื”ื”ืชืงื“ืžื•ืช ืฉืœ ื’ื•ื’ืœ ื‘ื›ื™ื•ื•ืŸ ื”ื–ื” ืžื•ืกื‘ืจืช ื‘ืžืขื‘ืจ ื”ื‘ื ืืœื™ ืœืฉืขื•ื ื™ ืื˜ื•ืžื™ื™ื ื•-GPS, ืื‘ืœ ื–ื” ืจืง ื—ืœืง ืžื”ืชืžื•ื ื” ื”ื’ื“ื•ืœื”. ื›ืš ืคื•ืขืœ TrueTime:

  • TrueTime ืžืฉืชืžืฉ ื‘ืฉื ื™ ืžืงื•ืจื•ืช ืฉื•ื ื™ื: GPS ื•ืฉืขื•ื ื™ื ืื˜ื•ืžื™ื™ื. ืœืฉืขื•ื ื™ื ืืœื” ื™ืฉ ืžืฆื‘ื™ ื›ืฉืœ ืฉืื™ื ื ืžืชื•ืืžื™ื. [ืจืื” ืขืžื•ื“ 5 ืœืคืจื˜ื™ื ื›ืืŸ - ืžืฉื•ืขืจ. ืชืจื’ื•ื), ื›ืš ืฉื”ืฉื™ืžื•ืฉ ื”ืžืฉื•ืชืฃ ืฉืœื”ื ืžื’ื‘ื™ืจ ืืช ื”ืืžื™ื ื•ืช.
  • ืœ-TrueTime ื™ืฉ API ื™ื•ืฆื ื“ื•ืคืŸ. ื”ื•ื ืžื—ื–ื™ืจ ื–ืžืŸ ื›ืžืจื•ื•ื— ืขื ืฉื’ื™ืื•ืช ืžื“ื™ื“ื” ื•ืื™ ื•ื“ืื•ืช ืžื•ื‘ื ื™ื ื‘ืชื•ื›ื•. ื”ืจื’ืข ื”ืืžื™ืชื™ ื‘ื–ืžืŸ ื”ื•ื ืื™ืคืฉื”ื• ื‘ื™ืŸ ื”ื’ื‘ื•ืœ ื”ืขืœื™ื•ืŸ ื•ื”ืชื—ืชื•ืŸ ืฉืœ ื”ืžืจื•ื•ื—. Spanner, ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืžื‘ื•ื–ืจ ืฉืœ ื’ื•ื’ืœ, ืคืฉื•ื˜ ืžืžืชื™ืŸ ืขื“ ืฉื™ื”ื™ื” ื‘ื˜ื•ื— ืœื•ืžืจ ืฉื”ืฉืขื” ื”ื ื•ื›ื—ื™ืช ืžื—ื•ืฅ ืœื˜ื•ื•ื—. ืฉื™ื˜ื” ื–ื• ืžื›ื ื™ืกื” ื—ื‘ื™ื•ืŸ ืžืกื•ื™ื ืœืžืขืจื›ืช, ื‘ืžื™ื•ื—ื“ ืื ืื™ ื”ื•ื•ื“ืื•ืช ืืฆืœ ื”ืžืืกื˜ืจื™ื ื’ื‘ื•ื”ื”, ืืš ืžื‘ื˜ื™ื—ื” ืชืงื™ื ื•ืช ื’ื ื‘ืžืฆื‘ ืžื‘ื•ื–ืจ ื’ืœื•ื‘ืœื™.

ืžืคืชื—ื™ื ื ื•ืกืคื™ื ืฆืจื™ื›ื™ื ืœื“ืขืช ื–ืืช ืขืœ ืžืกื“ื™ ื ืชื•ื ื™ื
ืจื›ื™ื‘ื™ Spanner ืžืฉืชืžืฉื™ื ื‘-TrueTime, ื›ืืฉืจ TT.now() ืžื—ื–ื™ืจ ืžืจื•ื•ื—, ื›ืš ืฉื”-Spann ืคืฉื•ื˜ ื™ืฉืŸ ืขื“ ืœื ืงื•ื“ื” ืฉื‘ื” ื”ื•ื ื™ื›ื•ืœ ืœื”ื™ื•ืช ื‘ื˜ื•ื— ืฉื”ื–ืžืŸ ื”ื ื•ื›ื—ื™ ืขื‘ืจ ื ืงื•ื“ื” ืžืกื•ื™ืžืช

ื“ื™ื•ืง ืžื•ืคื—ืช ื‘ืงื‘ื™ืขืช ื”ื–ืžืŸ ื”ื ื•ื›ื—ื™ ืคื™ืจื•ืฉื• ืขืœื™ื™ื” ื‘ืžืฉืš ืคืขื•ืœื•ืช Spanner ื•ื™ืจื™ื“ื” ื‘ื‘ื™ืฆื•ืขื™ื. ื–ื• ื”ืกื™ื‘ื” ืฉื—ืฉื•ื‘ ืœืฉืžื•ืจ ืขืœ ื”ื“ื™ื•ืง ื”ื’ื‘ื•ื” ื‘ื™ื•ืชืจ ื”ืืคืฉืจื™ ืœืžืจื•ืช ืฉืื™ ืืคืฉืจ ืœื”ืฉื™ื’ ืฉืขื•ืŸ ืžื“ื•ื™ืง ืœื—ืœื•ื˜ื™ืŸ.

ืœืขื™ื›ื•ื‘ ืžืฉืžืขื•ื™ื•ืช ืจื‘ื•ืช

ืื ืชืฉืืœื• ืชืจื™ืกืจ ืžื•ืžื—ื™ื ืžื”ื• ืขื™ื›ื•ื‘, ื›ื ืจืื” ืฉืชืงื‘ืœื• ืชืฉื•ื‘ื•ืช ืฉื•ื ื•ืช. ื‘-DBMS ื—ื‘ื™ื•ืŸ ืžื›ื•ื ื” ืœืขืชื™ื ืงืจื•ื‘ื•ืช "ื”ืฉื”ื™ื™ืช ืžืกื“ ื ืชื•ื ื™ื" ื•ื”ื•ื ืฉื•ื ื” ืžืžื” ืฉื ืชืคืก ืขืœ ื™ื“ื™ ื”ืœืงื•ื—. ื”ืขื•ื‘ื“ื” ื”ื™ื ืฉื”ืœืงื•ื— ืฆื•ืคื” ื‘ืกื›ื•ื ื”ืขื™ื›ื•ื‘ ื‘ืจืฉืช ื•ืขื™ื›ื•ื‘ ืžืกื“ ื”ื ืชื•ื ื™ื. ื”ื™ื›ื•ืœืช ืœื‘ื•ื“ื“ ืืช ืกื•ื’ ื”ื”ืฉื”ื™ื” ื”ื™ื ืงืจื™ื˜ื™ืช ื‘ืขืช ืื™ืชื•ืจ ื‘ืื’ื™ื ื‘ื‘ืขื™ื•ืช ื”ื•ืœื›ื•ืช ื•ื’ื“ืœื•ืช. ื‘ืขืช ืื™ืกื•ืฃ ื•ื”ืฆื’ืช ืžื“ื“ื™ื, ื ืกื” ืชืžื™ื“ ืœืคืงื•ื— ืขื™ืŸ ืขืœ ืฉื ื™ ื”ืกื•ื’ื™ื.

ื™ืฉ ืœื”ืขืจื™ืš ืืช ื“ืจื™ืฉื•ืช ื”ื‘ื™ืฆื•ืขื™ื ืขื‘ื•ืจ ืขืกืงื” ืกืคืฆื™ืคื™ืช

ืœืคืขืžื™ื ืžืืคื™ื™ื ื™ ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ DBMS ื•ืžื’ื‘ืœื•ืชื™ื• ืžืฆื•ื™ื ื™ื ื‘ืžื•ื ื—ื™ื ืฉืœ ืชืคื•ืงืช ื›ืชื™ื‘ื”/ืงืจื™ืื” ื•ื”ืฉื”ื™ื™ื”. ื–ื” ืžืกืคืง ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ืคืจืžื˜ืจื™ื ืžืจื›ื–ื™ื™ื ืฉืœ ื”ืžืขืจื›ืช, ืื‘ืœ ื›ืืฉืจ ืžืขืจื™ื›ื™ื ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ DBMS ื—ื“ืฉ, ื’ื™ืฉื” ื”ืจื‘ื” ื™ื•ืชืจ ืžืงื™ืคื” ื”ื™ื ืœื”ืขืจื™ืš ื‘ื ืคืจื“ ืคืขื•ืœื•ืช ืงืจื™ื˜ื™ื•ืช (ืขื‘ื•ืจ ื›ืœ ืฉืื™ืœืชื” ื•/ืื• ื˜ืจื ื–ืงืฆื™ื”). ื“ื•ื’ืžืื•ืช:

  • ื›ืชื•ื‘ ืชืคื•ืงื” ื•ื”ืฉื”ื™ื™ื” ื‘ืขืช ื”ื•ืกืคืช ืฉื•ืจื” ื—ื“ืฉื” ืœื˜ื‘ืœื” X (ืขื 50 ืžื™ืœื™ื•ืŸ ืฉื•ืจื•ืช) ืขื ืื™ืœื•ืฆื™ื ืฉืฆื•ื™ื ื• ื•ืจื™ืคื•ื“ ืฉื•ืจื•ืช ื‘ื˜ื‘ืœืื•ืช ืงืฉื•ืจื•ืช.
  • ืขื™ื›ื•ื‘ ื‘ื”ืฆื’ืช ื—ื‘ืจื™ื ืฉืœ ื—ื‘ืจื™ื ืฉืœ ืžืฉืชืžืฉ ืžืกื•ื™ื ื›ืืฉืจ ืžืกืคืจ ื”ื—ื‘ืจื™ื ื”ืžืžื•ืฆืข ื”ื•ื 500.
  • ื”ืฉื”ื™ื™ื” ื‘ืื—ื–ื•ืจ 100 ื”ืขืจื›ื™ื ื”ืžื•ื‘ื™ืœื™ื ืžื”ื™ืกื˜ื•ืจื™ื™ืช ื”ืžืฉืชืžืฉ ื›ืืฉืจ ื”ืžืฉืชืžืฉ ืขื•ืงื‘ ืื—ืจ 500 ืžืฉืชืžืฉื™ื ืื—ืจื™ื ืขื X ืขืจื›ื™ื ื‘ืฉืขื”.

ื”ืขืจื›ื” ื•ื ื™ืกื•ื™ ืขืฉื•ื™ื™ื ืœื›ืœื•ืœ ืžืงืจื™ื ืงืจื™ื˜ื™ื™ื ื›ืืœื” ืขื“ ืฉืชื”ื™ื” ื‘ื˜ื•ื— ืฉืžืกื“ ื”ื ืชื•ื ื™ื ืขื•ืžื“ ื‘ื“ืจื™ืฉื•ืช ื”ื‘ื™ืฆื•ืขื™ื. ื›ืœืœ ืืฆื‘ืข ื“ื•ืžื” ืœื•ืงื— ื‘ื—ืฉื‘ื•ืŸ ื’ื ืคื™ืจื•ื˜ ื–ื” ื‘ืขืช ืื™ืกื•ืฃ ืžื“ื“ื™ ื—ื‘ื™ื•ืŸ ื•ืงื‘ื™ืขืช SLOs.

ื”ื™ื• ืžื•ื“ืขื™ื ืœืงืจื“ื™ื ืœื™ื•ืช ื’ื‘ื•ื”ื” ื‘ืขืช ืื™ืกื•ืฃ ืžื“ื“ื™ื ืขื‘ื•ืจ ื›ืœ ืคืขื•ืœื”. ื”ืฉืชืžืฉ ื‘ื™ื•ืžื ื™ื, ื‘ืื™ืกื•ืฃ ืื™ืจื•ืขื™ื ืื• ื‘ืžืขืงื‘ ืžื‘ื•ื–ืจ ื›ื“ื™ ืœื”ืฉื™ื’ ื ืชื•ื ื™ ื ื™ืคื•ื™ ื‘ืื’ื™ื ื‘ืขื•ืฆืžื” ื’ื‘ื•ื”ื”. ื‘ืžืืžืจ "ืจื•ืฆื” ืœื ืคื•ืช ื‘ืื’ื™ื ื—ื‘ื™ื•ืŸ?ยป ืืชื” ื™ื›ื•ืœ ืœื”ื›ื™ืจ ืืช ื”ืžืชื•ื“ื•ืœื•ื’ื™ื•ืช ืฉืœ ืื™ืชื•ืจ ื‘ืื’ื™ื ืขื™ื›ื•ื‘.

ืขืกืงืื•ืช ืžืงื•ื ื ื•ืช ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืžืกื•ื›ื ื•ืช

ืœื ื›ืœ DBMS ืชื•ืžืš ื‘ื˜ืจื ื–ืงืฆื™ื•ืช ืžืงื•ื ื ื•ืช, ืื‘ืœ ื›ืฉื”ืŸ ืขื•ืฉื•ืช, ืขืกืงืื•ืช ื›ืืœื” ืขืœื•ืœื•ืช ืœื’ืจื•ื ืœืฉื’ื™ืื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื•ืช ืฉืœื ืชืžื™ื“ ืงืœ ืœื–ื”ื•ืช (ื›ืœื•ืžืจ, ื–ื” ืฆืจื™ืš ืœื”ื™ื•ืช ื‘ืจื•ืจ ืฉื™ืฉ ืื™ื–ื•ืฉื”ื™ ืื ื•ืžืœื™ื”).

ืืชื” ื™ื›ื•ืœ ืœื”ื™ืžื ืข ืžืฉื™ืžื•ืฉ ื‘ื˜ืจื ื–ืงืฆื™ื•ืช ืžืงื•ื ื ื•ืช ื‘ืืžืฆืขื•ืช ืกืคืจื™ื•ืช ืœืงื•ื— ืฉื™ื›ื•ืœื•ืช ืœื–ื”ื•ืช ื•ืœืขืงื•ืฃ ืื•ืชืŸ. ืื ืœื ื ื™ืชืŸ ืœื ื˜ื•ืฉ ืขืกืงืื•ืช ืžืงื•ื ื ื•ืช, ื”ืงืคื“ ืœื™ื™ืฉื ืื•ืชืŸ ื›ื“ื™ ืœื”ื™ืžื ืข ืžืžืฆื‘ื™ื ื‘ืœืชื™ ืฆืคื•ื™ื™ื ืฉื‘ื”ื ืขืกืงืื•ืช ืฉื”ื•ืฉืœืžื• ืžื‘ื•ื˜ืœื•ืช ื‘ื˜ืขื•ืช ืขืงื‘ ืขืกืงืื•ืช ืžืงื•ื ื ื•ืช.

ื”ืงืคืฆืช ืขืกืงืื•ืช ื‘ืฉื›ื‘ื•ืช ืฉื•ื ื•ืช ืขืœื•ืœื” ืœื”ื•ื‘ื™ืœ ืœื˜ืจื ื–ืงืฆื™ื•ืช ืžืงื•ื ื ื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื•ืช, ื•ืžื ืงื•ื“ืช ืžื‘ื˜ ืฉืœ ืงืจื™ืื•ืช ืงื•ื“, ื”ื™ื ืขืœื•ืœื” ืœื”ืงืฉื•ืช ืขืœ ื”ื‘ื ืช ื›ื•ื•ื ื•ืช ื”ืžื—ื‘ืจ. ืชืกืชื›ืœ ืขืœ ื”ืชื•ื›ื ื™ืช ื”ื‘ืื”:

with newTransaction():
   Accounts.create("609-543-222")
   with newTransaction():
       Accounts.create("775-988-322")
       throw Rollback();

ืžื” ื™ื”ื™ื” ื”ืคืœื˜ ืฉืœ ื”ืงื•ื“ ืœืขื™ืœ? ื”ืื ื–ื” ื™ื—ื–ื™ืจ ืืช ืฉืชื™ ื”ืขืกืงืื•ืช, ืื• ืจืง ืืช ื”ืคื ื™ืžื™ืช? ืžื” ืงื•ืจื” ืื ืื ื—ื ื• ืžืกืชืžื›ื™ื ืขืœ ืžืกืคืจ ืฉื›ื‘ื•ืช ืฉืœ ืกืคืจื™ื•ืช ืฉื›ื•ืœืœื•ืช ืขื‘ื•ืจื ื• ืืช ื™ืฆื™ืจืช ื”ืขืกืงืื•ืช? ื”ืื ื ืฆืœื™ื— ืœื–ื”ื•ืช ื•ืœืฉืคืจ ืžืงืจื™ื ื›ืืœื”?

ื“ืžื™ื™ื ื• ืฉื›ื‘ืช ื ืชื•ื ื™ื ืขื ืžืกืคืจ ืคืขื•ืœื•ืช (ืœืžืฉืœ. newAccount) ื›ื‘ืจ ืžื™ื•ืฉื ื‘ืขืกืงืื•ืช ืžืฉืœื•. ืžื” ืงื•ืจื” ืื ืืชื” ืžืคืขื™ืœ ืื•ืชื ื›ื—ืœืง ืžื”ื™ื’ื™ื•ืŸ ืขืกืงื™ ื‘ืจืžื” ื’ื‘ื•ื”ื” ื™ื•ืชืจ ืฉืคื•ืขืœ ื‘ืžืกื’ืจืช ื”ืขืกืงื” ืฉืœื•? ืžื” ื™ื”ื™ื• ื”ื‘ื™ื“ื•ื“ ื•ื”ืขืงื‘ื™ื•ืช ื‘ืžืงืจื” ื–ื”?

function newAccount(id string) {
  with newTransaction():
      Accounts.create(id)
}

ื‘ืžืงื•ื ืœื—ืคืฉ ืชืฉื•ื‘ื•ืช ืœืฉืืœื•ืช ืื™ื ืกื•ืคื™ื•ืช ื›ืืœื”, ืขื“ื™ืฃ ืœื”ื™ืžื ืข ืžืขืกืงืื•ืช ืžืงื•ื ื ื•ืช. ืื—ืจื™ ื”ื›ืœ, ืฉื›ื‘ืช ื”ื ืชื•ื ื™ื ืฉืœืš ื™ื›ื•ืœื” ื‘ืงืœื•ืช ืœื‘ืฆืข ืคืขื•ืœื•ืช ื‘ืจืžื” ื’ื‘ื•ื”ื” ืžื‘ืœื™ ืœื™ืฆื•ืจ ืขืกืงืื•ืช ืžืฉืœื”. ื‘ื ื•ืกืฃ, ื”ื”ื™ื’ื™ื•ืŸ ื”ืขืกืงื™ ืขืฆืžื• ืžืกื•ื’ืœ ืœื™ื–ื•ื ืขืกืงื”, ืœื‘ืฆืข ื‘ื” ืคืขื•ืœื•ืช, ืœื‘ืฆืข ืื• ืœื‘ื˜ืœ ืขืกืงื”.

function newAccount(id string) {
   Accounts.create(id)
}
// In main application:
with newTransaction():
   // Read some data from database for configuration.
   // Generate an ID from the ID service.
   Accounts.create(id)
   Uploads.create(id) // create upload queue for the user.

ืื™ืŸ ืœืงืฉื•ืจ ืขืกืงืื•ืช ืœืžืฆื‘ ื™ื™ืฉื•ื

ืœืคืขืžื™ื ื–ื” ืžืคืชื” ืœื”ืฉืชืžืฉ ื‘ืžืฆื‘ ื™ื™ืฉื•ื ื‘ืขืกืงืื•ืช ื›ื“ื™ ืœืฉื ื•ืช ืขืจื›ื™ื ืžืกื•ื™ืžื™ื ืื• ืœื›ื•ื•ื ืŸ ืคืจืžื˜ืจื™ื ืฉืœ ืฉืื™ืœืชื”. ื”ื ื™ื•ืื ืก ื”ืงืจื™ื˜ื™ ืฉื™ืฉ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ื”ื•ื ื”ื™ืงืฃ ื”ื™ื™ืฉื•ื ื”ื ื›ื•ืŸ. ืœืขืชื™ื ืงืจื•ื‘ื•ืช ืœืงื•ื—ื•ืช ืžืชื—ื™ืœื™ื ืžื—ื“ืฉ ืขืกืงืื•ืช ื›ืืฉืจ ื™ืฉ ื‘ืขื™ื•ืช ื‘ืจืฉืช. ืื ื”ืขืกืงื” ืชืœื•ื™ื” ื‘ืžืฆื‘ ืฉืžืฉืชื ื” ืขืœ ื™ื“ื™ ืชื”ืœื™ืš ืื—ืจ, ื”ื™ื ืขืฉื•ื™ื” ืœื‘ื—ื•ืจ ื‘ืขืจืš ืฉื’ื•ื™ ื‘ื”ืชืื ืœืืคืฉืจื•ืช ืฉืœ ืžื™ืจื•ืฅ ื ืชื•ื ื™ื. ืขืกืงืื•ืช ื—ื™ื™ื‘ื•ืช ืœืฉืงื•ืœ ืืช ื”ืกื™ื›ื•ืŸ ืฉืœ ืชื ืื™ ืžื™ืจื•ืฅ ื ืชื•ื ื™ื ื‘ืืคืœื™ืงืฆื™ื”.

var seq int64
with newTransaction():
    newSeq := atomic.Increment(&seq)
    Entries.query(newSeq)
    // Other operations...

ื”ืขืกืงื” ื”ื "ืœ ืชื’ื“ื™ืœ ืืช ืžืกืคืจ ื”ืจืฆืฃ ื‘ื›ืœ ืคืขื ืฉื”ื™ื ืžื‘ื•ืฆืขืช, ืœืœื ืงืฉืจ ืœืชื•ืฆืื” ื”ืกื•ืคื™ืช. ืื ื”-commit ื ื›ืฉืœ ืขืงื‘ ื‘ืขื™ื•ืช ืจืฉืช, ื”ื‘ืงืฉื” ืชื‘ื•ืฆืข ืขื ืžืกืคืจ ืจืฆืฃ ืื—ืจ ื›ืฉืชื ืกื” ืฉื•ื‘.

ืžืชื›ื ื ื™ ืฉืื™ืœืชื•ืช ื™ื›ื•ืœื™ื ืœืกืคืจ ืœืš ื”ืจื‘ื” ืขืœ ืžืกื“ ื ืชื•ื ื™ื

ืžืชื›ื ื ื™ ืฉืื™ืœืชื•ืช ืงื•ื‘ืขื™ื ื›ื™ืฆื“ ืชื‘ื•ืฆืข ืฉืื™ืœืชื” ื‘ืžืกื“ ื ืชื•ื ื™ื. ื”ื ื’ื ืžื ืชื—ื™ื ื‘ืงืฉื•ืช ื•ืžื™ื™ืขืœื™ื ืื•ืชืŸ ืœืคื ื™ ืฉืœื™ื—ืชืŸ. ืžืชื›ื ื ื™ื ื™ื›ื•ืœื™ื ืœืกืคืง ืจืง ื›ืžื” ื”ืขืจื›ื•ืช ืืคืฉืจื™ื•ืช ืขืœ ืกืžืš ื”ืื•ืชื•ืช ื”ืขื•ืžื“ื™ื ืœืจืฉื•ืชื. ืœื“ื•ื’ืžื”, ืžื”ื™ ืฉื™ื˜ืช ื”ื—ื™ืคื•ืฉ ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ ืขื‘ื•ืจ ื”ืฉืื™ืœืชื” ื”ื‘ืื”?

SELECT * FROM articles where author = "rakyll" order by title;

ื ื™ืชืŸ ืœืื—ื–ืจ ืืช ื”ืชื•ืฆืื•ืช ื‘ืฉืชื™ ื“ืจื›ื™ื:

  • ืกืจื™ืงืช ื˜ื‘ืœื” ืžืœืื”: ื ื™ืชืŸ ืœืขื™ื™ืŸ ื‘ื›ืœ ืขืจืš ื‘ื˜ื‘ืœื” ื•ืœื”ื—ื–ื™ืจ ืžืืžืจื™ื ืขื ืฉื ืžื—ื‘ืจ ืชื•ืื, ื•ืœืื—ืจ ืžื›ืŸ ืœื”ื–ืžื™ืŸ ืื•ืชื.
  • ืกืจื™ืงืช ืื™ื ื“ืงืก: ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืื™ื ื“ืงืก ื›ื“ื™ ืœืžืฆื•ื ืžื–ื”ื™ื ืชื•ืืžื™ื, ืœืงื‘ืœ ืฉื•ืจื•ืช ืืœื” ื•ืœืื—ืจ ืžื›ืŸ ืœื”ื–ืžื™ืŸ ืื•ืชื.

ืชืคืงื™ื“ื• ืฉืœ ืžืชื›ื ืŸ ื”ืฉืื™ืœืชื•ืช ื”ื•ื ืœืงื‘ื•ืข ืื™ื–ื• ืืกื˜ืจื˜ื’ื™ื” ื”ื™ื ื”ื˜ื•ื‘ื” ื‘ื™ื•ืชืจ. ื›ื“ืื™ ืœืงื—ืช ื‘ื—ืฉื‘ื•ืŸ ืฉืœืžืชื›ื ื ื™ ืฉืื™ืœืชื•ืช ื™ืฉ ืจืง ื™ื›ื•ืœื•ืช ื—ื™ื–ื•ื™ ืžื•ื’ื‘ืœื•ืช. ื–ื” ื™ื›ื•ืœ ืœื”ื•ื‘ื™ืœ ืœื”ื—ืœื˜ื•ืช ื’ืจื•ืขื•ืช. DBAs ืื• ืžืคืชื—ื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืžืฉ ื‘ื”ื ื›ื“ื™ ืœืื‘ื—ืŸ ื•ืœื›ื•ื•ื ืŸ ืฉืื™ืœืชื•ืช ืขื ื‘ื™ืฆื•ืขื™ื ื ืžื•ื›ื™ื. ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ืฉืœ DBMS ื™ื›ื•ืœื•ืช ืœื”ื’ื“ื™ืจ ืžืชื›ื ื ื™ ืฉืื™ืœืชื•ืช, ื•ืื‘ื—ื•ืŸ ืขืฆืžื™ ื™ื›ื•ืœ ืœืขื–ื•ืจ ื‘ืขืช ืขื“ื›ื•ืŸ ืžืกื“ ื”ื ืชื•ื ื™ื ืื ื”ื’ืจืกื” ื”ื—ื“ืฉื” ืžื•ื‘ื™ืœื” ืœื‘ืขื™ื•ืช ื‘ื™ืฆื•ืขื™ื. ื™ื•ืžื ื™ ืฉืื™ืœืชื•ืช ืื™ื˜ื™ื™ื, ื“ื•ื—ื•ืช ืขืœ ื‘ืขื™ื•ืช ืื—ื–ื•ืจ ืื• ื ืชื•ื ื™ื ืกื˜ื˜ื™ืกื˜ื™ื™ื ืฉืœ ื–ืžืŸ ื‘ื™ืฆื•ืข ื™ื›ื•ืœื™ื ืœืขื–ื•ืจ ืœื–ื”ื•ืช ืฉืื™ืœืชื•ืช ืฉืฆืจื™ื›ื•ืช ืื•ืคื˜ื™ืžื™ื–ืฆื™ื”.

ื—ืœืง ืžื”ืžื“ื“ื™ื ื”ืžื•ืฆื’ื™ื ืขืœ ื™ื“ื™ ืžืชื›ื ืŸ ื”ืฉืื™ืœืชื•ืช ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ื ืชื•ื ื™ื ืœืจืขืฉ (ื‘ืžื™ื•ื—ื“ ื‘ืขืช ื”ืขืจื›ืช ื–ืžืŸ ืื—ื–ื•ืจ ืื• ื–ืžืŸ ืžืขื‘ื“). ืชื•ืกืคืช ื˜ื•ื‘ื” ืœืžืชื–ืžื ื™ื ื”ื ื›ืœื™ื ืœืžืขืงื‘ ื•ืžืขืงื‘ ืื—ืจ ื ืชื™ื‘ ื”ื‘ื™ืฆื•ืข. ื”ื ืžืืคืฉืจื™ื ืœืš ืœืื‘ื—ืŸ ื‘ืขื™ื•ืช ื›ืืœื” (ืื‘ื•ื™, ืœื ื›ืœ ื”-DBMS ืžืกืคืงื™ื ื›ืœื™ื ื›ืืœื”).

ื”ื’ื™ืจื” ืžืงื•ื•ื ืช ื”ื™ื ืงืฉื” ืืš ืืคืฉืจื™ืช

ื”ื’ื™ืจื” ืžืงื•ื•ื ืช, ื”ื’ื™ืจื” ื‘ื–ืžืŸ ืืžืช ืื• ื”ืขื‘ืจื” ื‘ื–ืžืŸ ืืžืช ืคื™ืจื•ืฉื” ืžืขื‘ืจ ืžืžืกื“ ื ืชื•ื ื™ื ืื—ื“ ืœืžืฉื ื”ื• ืœืœื ื”ืฉื‘ืชื” ืื• ืฉื—ื™ืชื•ืช ื ืชื•ื ื™ื. ื”ื’ื™ืจื” ื—ื™ื” ืงืœื” ื™ื•ืชืจ ืœื‘ื™ืฆื•ืข ืื ื”ืžืขื‘ืจ ืžืชืจื—ืฉ ื‘ืชื•ืš ืื•ืชื• DBMS/ืžื ื•ืข. ื”ืžืฆื‘ ื”ื•ืคืš ืžืกื•ื‘ืš ื™ื•ืชืจ ื›ืืฉืจ ื™ืฉ ืฆื•ืจืš ืœืขื‘ื•ืจ ืœ-DBMS ื—ื“ืฉ ืขื ื“ืจื™ืฉื•ืช ื‘ื™ืฆื•ืขื™ื ื•ืกื›ื™ืžื” ืฉื•ื ื•ืช.

ื™ืฉื ื ืžื•ื“ืœื™ื ืฉื•ื ื™ื ืฉืœ ื”ื’ื™ืจื” ืžืงื•ื•ื ืช. ื”ื ื” ืื—ื“ ืžื”ื:

  • ืืคืฉืจ ื›ื ื™ืกื” ื›ืคื•ืœื” ื‘ืฉื ื™ ืžืกื“ื™ ื”ื ืชื•ื ื™ื. ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ื—ื“ืฉ ื‘ืฉืœื‘ ื–ื” ืื™ืŸ ืืช ื›ืœ ื”ื ืชื•ื ื™ื, ืืœื ืจืง ืžืงื‘ืœ ืืช ื”ื ืชื•ื ื™ื ื”ืขื“ื›ื ื™ื™ื ื‘ื™ื•ืชืจ. ื‘ืจื’ืข ืฉืืชื” ื‘ื˜ื•ื— ื‘ื›ืš, ืืชื” ื™ื›ื•ืœ ืœืขื‘ื•ืจ ืœืฉืœื‘ ื”ื‘ื.
  • ืืคืฉืจ ืงืจื™ืื” ืžืฉื ื™ ืžืกื“ื™ ื”ื ืชื•ื ื™ื.
  • ื”ื’ื“ืจ ืืช ื”ืžืขืจื›ืช ื›ืš ืฉื”ืงืจื™ืื” ื•ื”ื›ืชื™ื‘ื” ื™ื‘ื•ืฆืขื• ื‘ืขื™ืงืจ ื‘ืžืกื“ ื”ื ืชื•ื ื™ื ื”ื—ื“ืฉ.
  • ื”ืคืกืง ืœื›ืชื•ื‘ ืœืžืกื“ ื”ื ืชื•ื ื™ื ื”ื™ืฉืŸ ืชื•ืš ื”ืžืฉืš ืงืจื™ืืช ื ืชื•ื ื™ื ืžืžื ื•. ื‘ืฉืœื‘ ื–ื”, ื‘ืกื™ืก ื”ื ืชื•ื ื™ื ื”ื—ื“ืฉ ืขื“ื™ื™ืŸ ื ื˜ื•ืœ ื ืชื•ื ื™ื ืžืกื•ื™ืžื™ื. ื™ืฉ ืœื”ืขืชื™ืง ืื•ืชื ืžืžืกื“ ื”ื ืชื•ื ื™ื ื”ื™ืฉืŸ.
  • ืžืกื“ ื”ื ืชื•ื ื™ื ื”ื™ืฉืŸ ื”ื•ื ืœืงืจื™ืื” ื‘ืœื‘ื“. ื”ืขืชืง ืืช ื”ื ืชื•ื ื™ื ื”ื—ืกืจื™ื ืžืžืกื“ ื”ื ืชื•ื ื™ื ื”ื™ืฉืŸ ืœื—ื“ืฉ. ืœืื—ืจ ื”ืฉืœืžืช ื”ื”ืขื‘ืจื”, ื”ืขื‘ืจ ืืช ื”ื ืชื™ื‘ื™ื ืœืžืกื“ ื”ื ืชื•ื ื™ื ื”ื—ื“ืฉ, ื•ืขืฆื•ืจ ืืช ื”ื™ืฉืŸ ื•ืžื—ืง ืื•ืชื• ืžื”ืžืขืจื›ืช.

ืœืžื™ื“ืข ื ื•ืกืฃ, ืื ื™ ืžืžืœื™ืฅ ืœื™ืฆื•ืจ ืงืฉืจ ัั‚ะฐั‚ัŒะต, ื”ืžืคืจื˜ืช ืืช ืืกื˜ืจื˜ื’ื™ื™ืช ื”ื”ื’ื™ืจื” ืฉืœ Stripe ื”ืžื‘ื•ืกืกืช ืขืœ ืžื•ื“ืœ ื–ื”.

ืขืœื™ื™ื” ืžืฉืžืขื•ืชื™ืช ื‘ืžืื’ืจ ื”ื ืชื•ื ื™ื ื’ื•ืจืจืช ืขืœื™ื™ื” ื‘ืื™-ื—ื™ื–ื•ื™

ื”ืฆืžื™ื—ื” ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืžื•ื‘ื™ืœื” ืœื‘ืขื™ื•ืช ื‘ืœืชื™ ืฆืคื•ื™ื•ืช ื”ืงืฉื•ืจื•ืช ืœืงื ื” ื”ืžื™ื“ื” ืฉืœื•. ื›ื›ืœ ืฉื ื“ืข ื™ื•ืชืจ ืขืœ ื”ืžื‘ื ื” ื”ืคื ื™ืžื™ ืฉืœ ืžืกื“ ื ืชื•ื ื™ื, ื›ืš ื ื•ื›ืœ ืœื—ื–ื•ืช ื˜ื•ื‘ ื™ื•ืชืจ ื›ื™ืฆื“ ื”ื•ื ื™ืชืคืชื—. ืขื ื–ืืช, ื›ืžื” ืจื’ืขื™ื ืขื“ื™ื™ืŸ ื‘ืœืชื™ ืืคืฉืจื™ื™ื ืœื—ื–ื•ืช.
ื›ื›ืœ ืฉื”ื‘ืกื™ืก ื’ื“ืœ, ื”ื ื—ื•ืช ื•ืฆื™ืคื™ื•ืช ืงื•ื“ืžื•ืช ืœื’ื‘ื™ ื ืคื— ื”ื ืชื•ื ื™ื ื•ื“ืจื™ืฉื•ืช ืจื•ื—ื‘ ื”ืคืก ืฉืœ ื”ืจืฉืช ืขืœื•ืœื•ืช ืœื”ื™ื•ืช ืžื™ื•ืฉื ื•ืช. ื–ื” ื›ืืฉืจ ืžืชืขื•ืจืจืช ื”ืฉืืœื” ืฉืœ ืฉื™ืคื•ืฅ ืขื™ืฆื•ื‘ื™ ื’ื“ื•ืœ, ืฉื™ืคื•ืจื™ื ืชืคืขื•ืœื™ื™ื ื‘ืงื ื” ืžื™ื“ื” ื’ื“ื•ืœ, ื—ืฉื™ื‘ื” ืžื—ื•ื“ืฉืช ืขืœ ืคืจื™ืกื•ืช ืื• ื”ืขื‘ืจื” ืœืžืขืจื›ื•ืช DBMS ืื—ืจื•ืช ื›ื“ื™ ืœืžื ื•ืข ื‘ืขื™ื•ืช ืคื•ื˜ื ืฆื™ืืœื™ื•ืช.

ืื‘ืœ ืืœ ืชื—ืฉื‘ื• ืฉื™ื“ืข ืžืฆื•ื™ืŸ ืขืœ ื”ืžื‘ื ื” ื”ืคื ื™ืžื™ ืฉืœ ืžืกื“ ื”ื ืชื•ื ื™ื ื”ืงื™ื™ื ื”ื•ื ื”ื“ื‘ืจ ื”ื™ื—ื™ื“ ืฉื ื—ื•ืฅ. ืกื•ืœืžื•ืช ื—ื“ืฉื™ื ื™ื‘ื™ืื• ืื™ืชื ืืœืžื•ื ื™ื ื—ื“ืฉื™ื. ื ืงื•ื“ื•ืช ื›ืื‘ ื‘ืœืชื™ ืฆืคื•ื™ื•ืช, ื”ืคืฆืช ื ืชื•ื ื™ื ืœื ืื—ื™ื“ื”, ื‘ืขื™ื•ืช ื‘ืจื•ื—ื‘ ืคืก ื•ื—ื•ืžืจื” ื‘ืœืชื™ ืฆืคื•ื™ื•ืช, ืชืขื‘ื•ืจื” ื”ื•ืœื›ืช ื•ื’ื•ื‘ืจืช ื•ืžืงื˜ืขื™ ืจืฉืช ื—ื“ืฉื™ื ื™ืืœืฆื• ืื•ืชืš ืœื—ืฉื•ื‘ ืžื—ื“ืฉ ืขืœ ื’ื™ืฉืช ืžืกื“ ื”ื ืชื•ื ื™ื, ืžื•ื“ืœ ื”ื ืชื•ื ื™ื, ืžื•ื“ืœ ื”ืคืจื™ืกื” ื•ื’ื•ื“ืœ ืžืกื“ ื”ื ืชื•ื ื™ื ืฉืœืš.

...

ื‘ื–ืžืŸ ืฉื”ืชื—ืœืชื™ ืœื—ืฉื•ื‘ ืขืœ ืคืจืกื•ื ื”ืžืืžืจ ื”ื–ื”, ื›ื‘ืจ ื”ื™ื• ืขื•ื“ ื—ืžื™ืฉื” ืคืจื™ื˜ื™ื ื‘ืจืฉื™ืžื” ื”ืžืงื•ืจื™ืช ืฉืœื™. ื•ืื– ื”ื’ื™ืข ืžืกืคืจ ืขืฆื•ื ืจืขื™ื•ื ื•ืช ื—ื“ืฉื™ื ืขืœ ืžื” ืขื•ื“ ื ื™ืชืŸ ืœื›ืกื•ืช. ืœื›ืŸ, ื”ืžืืžืจ ื ื•ื’ืข ื‘ื‘ืขื™ื•ืช ื”ืคื—ื•ืช ื‘ืจื•ืจื•ืช ื”ื“ื•ืจืฉื•ืช ืชืฉื•ืžืช ืœื‘ ืžื™ืจื‘ื™ืช. ืขื ื–ืืช, ืื™ืŸ ื–ื” ืื•ืžืจ ืฉื”ื ื•ืฉื ืžื•ืฆื” ื•ืœื ืื—ื–ื•ืจ ืืœื™ื• ืขื•ื“ ื‘ื—ื•ืžืจื™ื ื”ืขืชื™ื“ื™ื™ื ืฉืœื™ ื•ืœื ืืขืฉื” ืฉื™ื ื•ื™ื™ื ื‘ื ื•ืฉื ื”ื ื•ื›ื—ื™.

ื .ื‘.

ืงืจื ื’ื ื‘ื‘ืœื•ื’ ืฉืœื ื•:

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”