ืืขืจื. ืชืจืืื: ื'ืื ื ืืืืื ืืื ืืื ืืกืช ืื ืืกื ืืืืื ืฉืขืืืืช ืืขืช ืขื ืฆืคืืื ืฉื ืฉืืจืืชื ืืืืฆืืจ ืฉื ืืืืจื ืฉื ืืชืื ืืื. ืืืืืจ ืื, ืฉืืื ืืคืืคืืืจืืืช ืจืื ืืงืจื ืืงืื ืืืืจ ืืื ืืืืช, ืืื ืืกืคื ื-17 ื ืงืืืืช ืคืจืืื ืืื ืืื ืืฉืืืื ืืืื DBMSs (ืืืคืขืืื ืืขืจืืืช ืืืืืจืืช ืืืื) ืฉืืืขืืืื ืืฉืงืื ืืืคืชืื ืืคืืืงืฆืืืช ืืืืืืช/ืชืืืขื ืืืช.
ืจืืื ืืืืจืืข ืฉื ืืขืจืืืช ืืืืฉื ืขืืงืืืช ืืืจ ืืฆืื, ืืืืชืื ืืื ืืืจืฉืืช ืืขืจืืช ืืืกืื ื ืชืื ืื ืืืฉืื. ืฆืืจืชื ืืืข ืขื ืืกืื ื ืชืื ืื ืืืืจื ืชืงืืคื ืืจืืื, ืืืืจื ืื ืืืจื ืขืฉืืชื ืืขืืืืช ืขืืฆืื ืฉืืืืืื ืืืืืื ื ืชืื ืื ืืืคืกืงืืช. ืืืขืจืืืช ืืืขืืืืช ืืืืืืช ืืืืืืช ืฉื ืืืืข, ืืกืื ื ืชืื ืื ื ืืฆืืื ืืื ืืจืืืืงืืืจืช ืืืขืจืืช ืืืืืืื ืืจืืื ืืจืืื ืืืืืจืช ืืคืชืจืื ืืืืคืืืืื. ืืืจืืช ืืขืืืื ืฉืชืฉืืืช ืื ืจืื ืืืงืืฉืช ืืขืืืืช ืืกื ืื ืชืื ืื, ืืืขืืืช ืฉืืคืชืื ืืคืืืงืฆืืืช ืื ืกืื ืืฆืคืืช ืื ืืจืื ืจืง ืงืฆื ืืงืจืืื. ืืกืืจืช ืืืืืจืื ืืื, ืื ื ืืืืง ืืื ืจืขืืื ืืช ืฉืืืื ืฉืืืืฉืืื ืขืืืจ ืืคืชืืื ืฉืืื ื ืืชืืืื ืืชืืื ืื.
- ืืฉ ืื ืืื ืื 99,999% ืืืืงืจืื ืืจืฉืช ืื ืืืจืืช ืืืขืืืช.
- ืืืืฆื ืคืืจืืฉื ืืืจืื ืจืืื ืืฉืื ืื.
- ืืื ืืกื ื ืชืื ืื ืืฉ ืื ืื ืื ืื ืืฉืื ืืืืืืช ืขืงืืืืช ืืืืืื.
- ืืกืืื ืืืคืืืืืช ืืื ืืขืืจื ืืืฉืจ ืงืฉื ืืฉืืืจ ืขื ืืจืืื.
- ืืฉื ื ืืจืืืืช ื ืืกืคืืช ืืืื ืงืจืืืืช ืืืืืืืืช ืืืืืื ื ืชืื ืื.
- ืืืืืจ ืืืืฉืชืืฉ ืื ืชืืื ืืกืืืืื ืขื ืืจื ืืคืขืืื.
- ื ืืชื ืืืขืืืจ ืคืืฆืื ืืจืืช ืืืืฉืื ืื ืืืืฅ ืืืืฉืื.
- ืืืืื ืืืืืืืืช ืืืืื ืืืืืช ืืกืืื ืช.
- ื ืชืื ืื ืืืืฉื ืื ืืืืืื ืืืืืช ืฉืืืืฉืืื ืืืื ืฆืืจื ืื ืขืื ืืืชื.
- ืขืืืืชืื ืืืคืืื ืืื ืืื ืืงืืจืืช ืืื.
- ืืขืืืื ืืฉืืขืืืืช ืจืืืช.
- ืืฉ ืืืขืจืื ืืช ืืจืืฉืืช ืืืืฆืืขืื ืขืืืจ ืขืกืงื ืกืคืฆืืคืืช.
- ืขืกืงืืืช ืืงืื ื ืืช ืืืืืืช ืืืืืช ืืกืืื ืืช.
- ืืื ืืงืฉืืจ ืขืกืงืืืช ืืืฆื ืืืฉืื.
- ืืชืื ื ื ืฉืืืืชืืช ืืืืืื ืืกืคืจ ืื ืืจืื ืขื ืืกืื ื ืชืื ืื.
- ืืืืจื ืืงืืื ืช ืืื ืงืฉื, ืืื ืืคืฉืจืืช.
- ืขืืืื ืืฉืืขืืชืืช ืืืืืจ ืื ืชืื ืื ืืืจืจืช ืขืืืื ืืื-ืืืืื.
ืื ื ืจืืฆื ืืืืืืช ืืขืื ืืื ืืืืงื, ืจืืื ืื ืจืื ืืืืจืื ืขื ืืืฉืื ืฉืืื ืขื ืืจืกื ืงืืืืช ืฉื ืืืืจ ืื.
ืืฉ ืื ืืื ืื 99,999% ืืืืงืจืื ืืจืฉืช ืื ืืืจืืช ืืืขืืืช.
ื ืืชืจื ืืฉืืื ืขื ืืื ืืืื ืืช ืืื ืืืืืืืช ืจืฉืช ืืืืจื ืืืช ืืืืืื ืชืืืจืืช ืืขืจืืืช ืืืฉืืชืืช ืขืงื ืืฉืืื ืืจืฉืช. ืืืืืข ืื ืืฉื ืื ืื ืืืืืงืจ ื ืฉืื ืืจืื ืขื ืืื ืืจืืื ืื ืืืืืื ืขื ืจืฉืชืืช, ืฆืืื ืืืื ืืื ืืืืืืื.
ืขื ืฉืืขืืจ ืืืื ืืช ืฉื 99,999% ืขืืืจ Spanner (ืืกื ืื ืชืื ืื ืืืืคืฅ ืืขืืื ืฉื ืืืื), ืืืื ืืืขื ืช ืฉืจืง
ืืืงืจ ืืงืืฃ ืืืืฅ ืืืืจืืช ืขื ืง, ืฉื ืขืจื ืขืืืจ ืืืื ืืจื ื ืืจืื ืืืชืจ, ืคืฉืื ืื ืงืืื. ืืื ืื, ืืื ืืกืคืืง ื ืชืื ืื ืืืฉืืงื ืื ืืืืืืื ืืืื ืืืื ืืืขืืืช ืฉื ืืืงืืืืช ืฉืืื ืืงืฉืืจืืช ืืจืฉืช. ืื ื ืืืืขืื ืืืื ืืืคืกืงืืช ืืขืจืืืช ืืจืฉืช ืฉื ืกืคืงื ืขื ื ืืืืืื ืฉืืืืืื ืืืคืื ืืืง ืฉืื ืืืืื ืืจื ื ืืืฉื ืืกืคืจ ืฉืขืืช ืคืฉืื ืื ืืืืืจ ืืืืจืืขืื ืืขืื ืคืจืืคืื ืืืื ืฉืืฉืคืืขืื ืขื ืืกืคืจ ืจื ืฉื ืื ืฉืื ืืืืจืืช. ืืคืกืงืืช ืจืฉืช ืขืืืืืช ืืืจืื ืืืขืืืช ืืืงืจืื ืจืืื ื ืืกืคืื, ืื ืื ืื ืื ืืืงืจืื ืืืื ื ืืฆืืื ืืืืจ ืืืจืงืืจืื. ืื ืืงืืืืช ืฉืืจืืชื ืขื ื ืืื ื ืืืืขืื ืืืจ ืขื ืืืืจืืื ืืืขืืืช. ืื ืืฉ ืืฉื, ืืืขื ืืืชื ืืคืฉืจื ืืืืืก ืืืชื ืืฉืืืืช ืจืฉืช ืืฆื ืฉื ืกืคืง ืืฉืืจืืช. ืขืืืจื, ืฉืืจืืชื ืฆื ืฉืืืฉื ืื ืงืืคืกืืืช ืฉืืืจืืช. ืื ืืคืฉืจ ืืืขืจืื ืืช ืืืฉืคืขื ืืื ืืืืืช ืกืคืง ืฉืืจืืช ืืืื.
ืืืชืืฉื ืืื ืฉืืฉืืงื ืื ืืืืืืื ืืืืืืื ืขื ืืืขืจืืืช ืฉืืื, ืืืื ืืืืจ ืฉืืฉ ืื ืืื ืื ืงืฉืื ืจืฉืช ืืืืืื ืจืง ืืืื ืงืื ืืืขืืืช ืืฉืืชื ืคืืื ืฆืืืืืืช. ืชืงืฉืืจืช ืจืฉืช ืขืืืื ืกืืืืช ืืืืจืื ืืจืฆืืื ืืื ืชืงืืืช ืืืืจื, ืฉืื ืืืื ืืืืคืืืืืื, ืฉืื ืืืื ืืชืฆืืจื ืื ืืืืช ืืืคืกืงืืช ืืฉืื. ืืืืจืื ื ืืืคืชืขืชื ืืืืืช ืฉื ืืกืคื ืจืฉืืืช ืืืขืืืช ืืืคืฉืจืืืช
ACID ืืืืจ ืืจืื ืืืจืื ืฉืื ืื
ืจืืฉื ืืชืืืืช ACID ืืืืฆืืื Atomicity, Consistency, Isolation, Reliability. ืืืคืืื ืื ืืื ืฉื ืขืกืงืืืช ื ืืขืื ืืืืืื ืืช ืชืงืคืืชื ืืืงืจื ืฉื ืชืงืืืช, ืฉืืืืืช, ืชืงืืืช ืืืืจื ืืื'. ืืื ACID ืื ืชืืื ืืืช ืืืืืช, ืืืื ืงืฉื ืืืคืชืื ืืืฉืืืื ืืืืืื ืืื ืื ืฉืื ืืืจืืื ืื ืืื ืฉืืกื ืื ืชืื ืื ืืืจืื. ืจืื ืืกืื ืื ืชืื ืื ืฉื ืืขืกืงืืืช ืืืชืืืืกืืชืืืช ืื ืกืื ืืืืืช ืชืืืื ACID, ืื ืืืฉืืช ืืืฉืืช ืืื NoSQL ืืืืืื ืืกืื ื ืชืื ืื ืจืืื ืืื ืขืกืงืืืช ACID ืืืืืื ืฉืื ืืงืจืืช ืืืืฉืื.
ืืฉื ืื ืกืชื ืืจืืฉืื ื ืืชืขืฉืืื, ืืืืืื ืืืื ืืช ืฉืื ื ืืืืจื ืขื ืืืืช ืืจืืืื ืืืืช ืฉื ืืืฉื ื-ACID. ืืืขื ืืืืื ืืช, ACID ื ืืฉื ืืชืืืืจ ืืก ืืื ืืชืงื ืืืฉืื ืงืคืื ื. ืืืื ืื ื ืืืฆื ืืช ืื ืฉืืืืฉื ืืขืืงืจ ืื ืื ืืขืื ืงืืืืจืื ืกืคืฆืืคืืช ืฉื ืืขืืืช (ืืืฆืืข ืืืืื ืคืชืจืื ืืช ืืคืฉืจืืื).
ืื ืื DBMS ืชืืื ACID; ืืื ืขื ืืืช, ืืืฉืืื ืืกื ื ืชืื ืื ืืชืืืืื ื-ACID ืืืื ืื ืืช ืืขืจื ืืืจืืฉืืช ืืฆืืจื ืฉืื ื. ืืืช ืืกืืืืช ืืื ืฉืืืืขืืช ืฉื ACID ืื ืืืงืืืช ืืื ืืฉื ืืคืฉืจืืช ืืจืืืช ืฉืืฉ ืืืฆืข ืืื ืืืืฉื ืืช ืืจืืฉืืช ื-ACID. ืืืฆืจืื ืขืฉืืืื ืืืฆืื ืืช ืืกืื ืื ืชืื ืื ืฉืืื ืืชืืืื ACID, ืื ืืคืจืฉื ืืช ืฉื ืืงืจื ืงืฆื ืขืฉืืื ืืืฉืชื ืืช ืืืืคื ืืจืืื, ืืื ืื ืืื ืื ืื ืืืืคืื ืืืืจืืขืื "ืืืชื ืกืืืจืื". ืืื ืืคืืืช, ืืคืชืืื ืืืืืื ืืงืื ืืื ื ืืจืื ืืืืื ืฉื ืืืืจืืืืืืช ืฉื ืืืฉืืื ืืกืืก ืืื ืืงืื ืืื ื ื ืืื ื ืฉื ืืืชื ืืืืช ืืืืืืืช ืฉืืื ืืฉื ืคืฉืจืืช ืืขืืฆืื ืฉืืื.
ืืืืืืื ืื MongoDB ืขืืื ืืืจืืฉืืช ACID ื ืืฉื ืื ืืืืจ ืฉืืจืืจื ืฉื ืืจืกื 4. MongoDB ืื ื ืชืื ืืืฉื ืืื ืจื
ืชืจืฉืื ืืืืืืฉ ืืช ืืชืจืืืฉ. MongoDB ืงืืจืก ืืคื ื ืฉืืื ืืืื ืืืชืื ื ืชืื ืื ืืืืกืง
ืืชืืืืืืช ืืืืกืง ืืื ืชืืืื ืืงืจ. ืขื ืืื ืืืื ืขืืช ืืืชืืืืืืืืช ืชืืืคืืช, ืืคืชืืื ืืฉืคืจืื ืืช ืืืฆืืขื ืืืงืืื ืขื ืืฉืืื ืืืืื ืืช. MongoDB ืชืืื ืืจืืข ืืจืืฉืื, ืืื ืืชืืื ืืืืืืืช ืขืืืื ืืืืื ืืืฉืคืืข ืขื ืฉืืืืช ืื ืชืื ืื ืืืืืื ืฉืืืื ืื ื ืืืืื ืื 100 ืืืคืืืช ืืฉื ืืื ืืืจืืจืช ืืืื. ืืืืืจ, ืชืจืืืฉ ืืืื ืขืืืื ืืคืฉืจื ืขืืืจ ืืืื ืื ืืืฉืื ืืืื ืืืืฆืืื ืืื, ืื ืื ืืกืืืื ื ืืื ืืืจืื.
ืืื ืืกื ื ืชืื ืื ืืฉ ืื ืื ืื ื ืขืงืืืืช ืืืืืื ืืฉืื
ืืืื ืืจืืฉืืช ื-ACID, ืืขืงืืืืช ืืืืืืื ืืชืืืจืื ืืืกืคืจ ืืืืื ืืืืชืจ ืฉื ืืืฉืืืื ืฉืื ืื ืืืืืื ืฉืืืืื ืืคืฉืจืืช ืจืื ืืืชืจ. ืืฉ ืืืืจ ืื ืขืงืืืืช ืืืืืื ืื ืคืื ืงืฆืืืช ืืงืจืืช ืืืื. ืื ืืืจืฉืื ืชืืืื ืืืืืืจืื ืืช ืืชืืจืืช ืขื ืขืงืืืืช ืื ืชืื ืื. ืืืืจืืืืช ืฉื ืืืขืื ืืืื ืืืืคื ืืฉืืขืืชื ืืืฉืจ ืืฉ ืฆืืจื ืืืจืืื ืืช ืืกื ืื ืชืื ืื ืืฆืืจื ืืืคืงืืช ืขื ืคื ื ืืกืคืจ ืืจืืื ื ืชืื ืื (ืืืืืื ืื ืื ืืืืงืืื ืืืืืจืื ืืืืืืจืคืืื ืฉืื ืื). ืืฉืืช ืจืื ืืืืื ืฉื ืขืงืืืืช ืืื ืงืฉื ืืืื, ืืืืืื ืฉืืื ืื ืืคืืืชื ืืช ืืืืื ืืช ืืืืืืจื ืืช ืคืืืื ืืจืฉืช. ืืืกืืจ ืืืื ืืืชืจ ืขื ืชืืคืขื ืื, ืื ื ืืืืืฅ ืื ืืืชืืืืก ืืืื
DBMSs ืืกืคืงืื ืืขืชืื ืงืจืืืืช ืจืืืช ืฉืื ืืช ืฉื ืืืืื. ืืคืชืื ืืคืืืงืฆืืืช ืืืืืื ืืืืืจ ืืช ืืืขืื ืืืืชืจ ืขื ืกืื ืืขืืคืืชืืื. ืืืืื ื ืืื ืืืคืฉืจ ืืืืจืช ืืืืืจืืช, ืื ืื ืืืืืจ ืืช ืืกืืืื ืืืืจืืฅ ื ืชืื ืื. ืืืืื ืืืื ืืงืืื ืืช ืืืกืชืืจืืช ืืื, ืืื ืืื ืืช ืืขืืืื ืืืืื ืืืืืื ืืชืืจืืช, ืื ืฉืืืืื ืืืืืื ืืืื ืืืกืืก ืฉืืชืืืืื ืืฉืืื.
ืกืงืืจื ืฉื ืืืืืื ืงืืืืื ืฉื ืืงืืืืืืช ืืืงืฉืจืื ืืื ืืื
ืชืงื SQL ืืืืืจ ืจืง ืืจืืข ืจืืืช ืืืืื, ืื ืื ืืชืืืืจืื ืืืคืจืงืืืงื ืืฉ ืืจืื ืืืชืจ.
ืชืงื 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 ืื ืืฉืืจืืชื ืืืฉืืืื. ืืืขืฉื, ื ืืชื ืืืืฉื ืืืชื ืืฉืืื ื ืคืจืืช ืืื ืืกืืก ืื ืชืื ืื. ืืืชืื ืืฆืืืืช ืื ืชืื ืื ืืืืืจืฆืืืช ืืกืืืื, ืืจืืฉืืช ืืจืืกืืง ืืืืืืช ืืืืืช ืืืจืืืืช ืืืื. ืืกืืจืืืืืช ืืกืืืืืช ืขืฉืืืืช ืืืคืืง ืชืืขืืช ืืืืืืืช ืืืฆืข ืืืืจืฆืื ืืื ืฆืืจื ืืคืจืืกื ืืืืฉ ืฉื ืฉืจืชื ืืืฉืืืื.
ืืืืื ืืืจืืืืงืืืจื ืฉืื ืฉืจืชื ืืืฉืืืื ืืืคืจืืื ืืฉืืจืืช ืืจืกืืกืื
ืืขืืจืช ืคืืฆืื ืืฉืืจืืช ื ืคืจื ืืจืืืื ืืช ืืืืืืช ืืืฉืชืืฉ ืืืกืืจืืืืืช ืคืืฆืื ืฉืื ืืช ืืื ืฆืืจื ืืคืจืืกื ืืืืฉ ืฉื ืืืฉืืืื.
ืืืืื ืืืืืืืืช ืืืืื ืืืืืช ืืกืืื ืช
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 ืืืฉ ืขื ืืจืืฉืืช ืืืฆืืขืื ืืกืืืื ืฉืื ืืช.
ืืฉื ื ืืืืืื ืฉืื ืื ืฉื ืืืืจื ืืงืืื ืช. ืื ื ืืื ืืื:
- ืืคืฉืจ ืื ืืกื ืืคืืื ืืฉื ื ืืกืื ืื ืชืื ืื. ืืืกื ืื ืชืื ืื ืืืืฉ ืืฉืื ืื ืืื ืืช ืื ืื ืชืื ืื, ืืื ืจืง ืืงืื ืืช ืื ืชืื ืื ืืขืืื ืืื ืืืืชืจ. ืืจืืข ืฉืืชื ืืืื ืืื, ืืชื ืืืื ืืขืืืจ ืืฉืื ืืื.
- ืืคืฉืจ ืงืจืืื ืืฉื ื ืืกืื ืื ืชืื ืื.
- ืืืืจ ืืช ืืืขืจืืช ืื ืฉืืงืจืืื ืืืืชืืื ืืืืฆืขื ืืขืืงืจ ืืืกื ืื ืชืื ืื ืืืืฉ.
- ืืคืกืง ืืืชืื ืืืกื ืื ืชืื ืื ืืืฉื ืชืื ืืืฉื ืงืจืืืช ื ืชืื ืื ืืื ื. ืืฉืื ืื, ืืกืืก ืื ืชืื ืื ืืืืฉ ืขืืืื ื ืืื ื ืชืื ืื ืืกืืืืื. ืืฉ ืืืขืชืืง ืืืชื ืืืกื ืื ืชืื ืื ืืืฉื.
- ืืกื ืื ืชืื ืื ืืืฉื ืืื ืืงืจืืื ืืืื. ืืขืชืง ืืช ืื ืชืื ืื ืืืกืจืื ืืืกื ืื ืชืื ืื ืืืฉื ืืืืฉ. ืืืืจ ืืฉืืืช ืืืขืืจื, ืืขืืจ ืืช ืื ืชืืืื ืืืกื ืื ืชืื ืื ืืืืฉ, ืืขืฆืืจ ืืช ืืืฉื ืืืืง ืืืชื ืืืืขืจืืช.
ืืืืืข ื ืืกืฃ, ืื ื ืืืืืฅ ืืืฆืืจ ืงืฉืจ
ืขืืืื ืืฉืืขืืชืืช ืืืืืจ ืื ืชืื ืื ืืืจืจืช ืขืืืื ืืื-ืืืืื
ืืฆืืืื ืฉื ืืกื ืื ืชืื ืื ืืืืืื ืืืขืืืช ืืืชื ืฆืคืืืืช ืืงืฉืืจืืช ืืงื ื ืืืืื ืฉืื. ืืื ืฉื ืืข ืืืชืจ ืขื ืืืื ื ืืคื ืืื ืฉื ืืกื ื ืชืื ืื, ืื ื ืืื ืืืืืช ืืื ืืืชืจ ืืืฆื ืืื ืืชืคืชื. ืขื ืืืช, ืืื ืจืืขืื ืขืืืื ืืืชื ืืคืฉืจืืื ืืืืืช.
ืืื ืฉืืืกืืก ืืื, ืื ืืืช ืืฆืืคืืืช ืงืืืืืช ืืืื ื ืคื ืื ืชืื ืื ืืืจืืฉืืช ืจืืื ืืคืก ืฉื ืืจืฉืช ืขืืืืืช ืืืืืช ืืืืฉื ืืช. ืื ืืืฉืจ ืืชืขืืจืจืช ืืฉืืื ืฉื ืฉืืคืืฅ ืขืืฆืืื ืืืื, ืฉืืคืืจืื ืชืคืขืืืืื ืืงื ื ืืืื ืืืื, ืืฉืืื ืืืืืฉืช ืขื ืคืจืืกืืช ืื ืืขืืจื ืืืขืจืืืช DBMS ืืืจืืช ืืื ืืื ืืข ืืขืืืช ืคืืื ืฆืืืืืืช.
ืืื ืื ืชืืฉืื ืฉืืืข ืืฆืืื ืขื ืืืื ื ืืคื ืืื ืฉื ืืกื ืื ืชืื ืื ืืงืืื ืืื ืืืืจ ืืืืื ืฉื ืืืฅ. ืกืืืืืช ืืืฉืื ืืืืื ืืืชื ืืืืื ืื ืืืฉืื. ื ืงืืืืช ืืื ืืืชื ืฆืคืืืืช, ืืคืฆืช ื ืชืื ืื ืื ืืืืื, ืืขืืืช ืืจืืื ืคืก ืืืืืจื ืืืชื ืฆืคืืืืช, ืชืขืืืจื ืืืืืช ืืืืืจืช ืืืงืืขื ืจืฉืช ืืืฉืื ืืืืฆื ืืืชื ืืืฉืื ืืืืฉ ืขื ืืืฉืช ืืกื ืื ืชืื ืื, ืืืื ืื ืชืื ืื, ืืืื ืืคืจืืกื ืืืืื ืืกื ืื ืชืื ืื ืฉืื.
...
ืืืื ืฉืืชืืืชื ืืืฉืื ืขื ืคืจืกืื ืืืืืจ ืืื, ืืืจ ืืื ืขืื ืืืืฉื ืคืจืืืื ืืจืฉืืื ืืืงืืจืืช ืฉืื. ืืื ืืืืข ืืกืคืจ ืขืฆืื
ื .ื.
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
ืืกืื ื ืชืื ืื ื-Kubernetes (ืกืงืืจื ืืืื ืืืืื) "; - ยซ
ืืขืงื ืืืืืจ: ืขืฉืื ื ืืช ืื ืื ื ืืื "; - ยซ
ืจืฉืช ืฉืืจืืช: ืื ืฉืื ืืื ืืก ืชืืื ื ืฆืจืื ืืืขืช ืขื ืืืื ืืืืืื ืืืื ืืืืชืจ ".
ืืงืืจ: www.habr.com