ΠΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².: Jaana Dogan β ΠΎΠΏΡΡΠ½ΡΠΉ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ ΠΈΠ· Google, ΠΊΠΎΡΠΎΡΠ°Ρ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π·Π°Π½ΠΈΠΌΠ°Π΅ΡΡΡ Π²ΠΎΠΏΡΠΎΡΠ°ΠΌΠΈ Π½Π°Π±Π»ΡΠ΄Π°Π΅ΠΌΠΎΡΡΠΈ production-ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Go. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅, ΡΠ½ΠΈΡΠΊΠ°Π²ΡΠ΅ΠΉ Π±ΠΎΠ»ΡΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Ρ Π°Π½Π³Π»ΠΎΡΠ·ΡΡΠ½ΠΎΠΉ Π°ΡΠ΄ΠΈΡΠΎΡΠΈΠΈ, ΠΎΠ½Π° Π² 17 ΠΏΡΠ½ΠΊΡΠ°Ρ ΡΠΎΠ±ΡΠ°Π»Π° Π²Π°ΠΆΠ½ΡΠ΅ ΡΠ΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ, ΠΊΠ°ΡΠ°ΡΡΠΈΠ΅ΡΡ Π‘Π£ΠΠ (Π° ΠΈΠ½ΠΎΠ³Π΄Π° β ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π² ΡΠ΅Π»ΠΎΠΌ), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΡΠΈΡΡΠ²Π°ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΊΡΡΠΏΠ½ΡΡ /ΡΡΠ΅Π±ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ΄Π°Π²Π»ΡΡΡΠ΅Π΅ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΈ, ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π½Π΅ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Ρ
ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
. Π― Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Π»Π° Π·Π½Π°Π½ΠΈΡ ΠΎ Π±Π°Π·Π°Ρ
Π΄Π°Π½Π½ΡΡ
Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΠΏΡΡΠ½ΠΎ ΡΠΎΠ²Π΅ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΠ²ΡΠΈΠ΅ ΠΊ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ
ΠΈ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΠΌ Π² ΡΠ°Π±ΠΎΡΠ΅. Π ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
, ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡΠΈΡ
Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Π»Π΅ΠΆΠ°Ρ Π² ΡΠ΅ΡΠ΄ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈ Π²ΡΡΡΡΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΠΏΡΠΈ Π²ΡΠ±ΠΎΡΠ΅ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ. ΠΠ΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ΅ ΠΠ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΡΠ°ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΡΠ°ΡΡΠΎ ΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π»ΠΈΡΡ Π²Π΅ΡΡ
ΡΡΠΊΠΎΠΉ Π°ΠΉΡΠ±Π΅ΡΠ³Π°. Π ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΡΡΠ°ΡΠ΅ΠΉ Ρ Π΄Π΅Π»ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΈΠ΄Π΅ΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², Π½Π΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΡΡΠΈΡ
ΡΡ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
- ΠΠ°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, Π΅ΡΠ»ΠΈ 99,999% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
- ACID ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ.
- Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π°Π·Ρ ΡΠ²ΠΎΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ.
- ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° Π²ΡΡΡΡΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΡ.
- Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ ΠΊΡΠΎΠΌΠ΅ Β«Π³ΡΡΠ·Π½ΡΡ Β» ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ .
- ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ.
- Π¨Π°ΡΠ΄ΠΈΠ½Π³ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠ²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ.
- Π£ΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ (stale) Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ Π½Π΅ Π½ΡΠΆΠ΄Π°ΡΡΡΡ Π² Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ΅.
- ΠΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠΈΠΏΠΈΡΠ½Ρ Π΄Π»Ρ Π»ΡΠ±ΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
- Π£ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
- Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
- ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½Ρ.
- Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΏΡΠΈΠ²ΡΠ·Π°Π½Ρ ΠΊ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
- ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ Π±Π°Π·Π°Ρ Π΄Π°Π½Π½ΡΡ .
- ΠΠ½Π»Π°ΠΉΠ½-ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½Π°, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°.
- ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠΈ.
Π₯ΠΎΡΡ Π²ΡΡΠ°Π·ΠΈΡΡ ΠΏΡΠΈΠ·Π½Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Emmanuel Odeke, Rein Henrichs ΠΈ Π΄ΡΡΠ³ΠΈΠΌ Π·Π° ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠ²ΡΠ·Ρ ΠΏΠΎ ΡΠ°Π½Π½Π΅ΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ.
ΠΠ°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, Π΅ΡΠ»ΠΈ 99,999% Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΡΠ΅ΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ
ΠΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΡΡΡΡΠΌ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π½Π°Π΄Π΅ΠΆΠ½Ρ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΡΠ΅ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΈΠ·-Π·Π° ΡΠ±ΠΎΠ΅Π² Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠΈ. ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΡΠΎΠΌΡ Π²ΠΎΠΏΡΠΎΡΡ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ, ΠΈ ΡΠ°ΡΡΠΎ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡΡ ΠΏΡΠ΅ΠΎΠ±Π»Π°Π΄Π°ΡΡ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌΠΈ ΡΠ΅ΡΡΠΌΠΈ, ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΎΠΌ.
ΠΠΌΠ΅Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ Π² 99,999% Π΄Π»Ρ Spanner (Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ
Google), Google ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΡΠΎΠ»ΡΠΊΠΎ
ΠΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Π°ΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ-Π³ΠΈΠ³Π°Π½ΡΠΎΠ², ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½Π½ΡΡ Π΄Π»Ρ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΠ½Π΅ΡΠ°, ΠΏΡΠΎΡΡΠΎ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ. Π’Π°ΠΊΠΆΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π°Π½Π½ΡΡ ΠΎΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ ΠΈΠ³ΡΠΎΠΊΠΎΠ² ΠΎ ΡΠΎΠΌ, ΠΊΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ² ΡΠ²ΡΠ·Π°Π½ Ρ ΡΠ΅ΡΡΡ. ΠΡ Ρ ΠΎΡΠΎΡΠΎ ΠΎΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½Ρ ΠΎ ΠΏΠ΅ΡΠ΅Π±ΠΎΡΡ Π² ΡΠ΅ΡΠ΅Π²ΠΎΠΌ ΡΡΠ΅ΠΊΠ΅ ΠΊΡΡΠΏΠ½ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠ², ΡΠΏΠΎΡΠΎΠ±Π½ΡΡ Π²ΡΠ²Π΅ΡΡΠΈ ΠΈΠ· ΡΡΡΠΎΡ ΡΠ΅Π»ΡΠΉ ΠΊΡΡΠΎΠΊ ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ° Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΠΎΠ² ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠΎ ΡΠ°ΠΌΡΠ΅ ΡΠ΅Π·ΠΎΠ½Π°Π½ΡΠ½ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΎΠ΅ ΡΠΈΡΠ»ΠΎ Π»ΡΠ΄Π΅ΠΉ ΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΉ. ΠΠ΅ΡΠ΅Π±ΠΎΠΈ Π² ΡΠ°Π±ΠΎΡΠ΅ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΠ»ΡΠΆΠΈΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π² Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ΠΌ ΡΠΈΡΠ»Π΅ ΡΠ»ΡΡΠ°Π΅Π², Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅ Π²ΡΠ΅ ΡΡΠΈ ΡΠ»ΡΡΠ°ΠΈ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΡΠ΅Π½ΡΡ Π²ΡΠ΅ΠΎΠ±ΡΠ΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ. ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΎΠ±Π»Π°ΡΠ½ΡΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΠ°ΠΊΠΆΠ΅ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ Π·Π½Π°ΡΡ ΠΎ ΠΏΡΠΈΡΠΈΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π ΡΠ»ΡΡΠ°Π΅ ΡΠ±ΠΎΡ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΡΠ·Π°ΡΡ Π΅Π³ΠΎ Ρ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΡΡΠ»ΡΠ³. ΠΠ»Ρ Π½ΠΈΡ ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ β ΡΡΠΎ ΡΠ΅ΡΠ½ΡΠ΅ ΡΡΠΈΠΊΠΈ. ΠΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΠ΅Π½ΠΈΡΡ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡΠ²ΠΈΠ΅, Π½Π΅ Π±ΡΠ΄ΡΡΠΈ ΠΊΡΡΠΏΠ½ΡΠΌ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΎΠΌ ΡΡΠ»ΡΠ³.
Π£ΡΠΈΡΡΠ²Π°Ρ ΡΠΎ, ΡΡΠΎ ΠΊΡΡΠΏΠ½ΡΠ΅ ΠΈΠ³ΡΠΎΠΊΠΈ ΡΠΎΠΎΠ±ΡΠ°ΡΡ ΠΎ ΡΠ²ΠΎΠΈΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
, ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ Π²Π°ΠΌ ΠΏΠΎΠ²Π΅Π·Π»ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΠΈ Ρ ΡΠ΅ΡΡΡ ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π»ΠΈΡΡ Π·Π° Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΏΡΠΎΡΠ΅Π½Ρ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΡ
ΠΊ ΠΏΡΠΎΡΡΠΎΡΠΌ. Π‘Π΅ΡΠ΅Π²ΡΠ΅ ΠΊΠΎΠΌΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΡΠ°Π΄Π°ΡΡ ΠΎΡ ΡΠ°ΠΊΠΈΡ
Π·Π°ΡΡΡΠ΄Π½ΡΡ
Π²Π΅ΡΠ΅ΠΉ, ΠΊΠ°ΠΊ ΠΎΡΠΊΠ°Π·Ρ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ, ΡΠΌΠ΅Π½Π° ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΡΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΈΡΠ°Π½ΠΈΡ. ΠΠ΅Π΄Π°Π²Π½ΠΎ Ρ Ρ ΡΠ΄ΠΈΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ·Π½Π°Π»Π°, ΡΡΠΎ ΠΊ ΠΏΠ΅ΡΠ΅ΡΠ½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈΡΡ
ACID ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°Π΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΡΠ°Π·Π½ΡΡ Π²Π΅ΡΠ΅ΠΉ
ΠΠΊΡΠΎΠ½ΠΈΠΌ ACID ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ, ΠΊΠΎΠ½ΡΠΈΡΡΠ΅Π½ΡΠ½ΠΎΡΡΡ, ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ, Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ. ΠΡΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π° ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΏΡΠΈΠ·Π²Π°Π½Ρ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π½Π° ΡΠ»ΡΡΠ°ΠΉ ΡΠ±ΠΎΠ΅Π², ΠΎΡΠΈΠ±ΠΎΠΊ, ΠΎΡΠΊΠ°Π·ΠΎΠ² ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΡ ΠΈ Ρ.ΠΏ. ΠΠ΅Π· ACID ΠΈΠ»ΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΡ ΡΡ Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π±ΡΠ»ΠΎ Π±Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ Π³ΡΠ°Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π·ΠΎΠ½ΠΎΠΉ ΡΠ²ΠΎΠ΅ΠΉ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΠΈ ΠΈ ΡΠ΅ΠΌ, Π·Π° ΡΡΠΎ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ . ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅Π»ΡΡΠΈΠΎΠ½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΎΠ½Π½ΡΡ Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΏΡΡΠ°ΡΡΡΡ Π±ΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΌΠΈ Ρ ACID, ΠΎΠ΄Π½Π°ΠΊΠΎ Π½ΠΎΠ²ΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄Ρ Π²ΡΠΎΠ΄Π΅ NoSQL ΠΏΠΎΡΠΎΠ΄ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π±Π°Π· Π΄Π°Π½Π½ΡΡ Π±Π΅Π· ACID-ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎΡΠΎΠ³ΠΎ.
ΠΠΎΠ³Π΄Π° Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠ»Π° Π² ΠΎΡΡΠ°ΡΠ»Ρ, Π½Π°Ρ ΡΠ΅Ρ Π»ΠΈΠ΄ ΡΠ°ΡΡΡΠΆΠ΄Π°Π» ΠΎ ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ ACID. Π‘ΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎΡΡΠΈ ΡΠ°Π΄ΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ACID ΡΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΌ, Π° Π½Π΅ ΡΡΡΠΎΠ³ΠΈΠΌ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ Π½Π°Ρ ΠΎΠΆΡ Π΅Π³ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ½ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π²ΠΎΠΏΡΠΎΡΠΎΠ² (ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΏΠ΅ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ).
ΠΠ΅ Π²ΡΡΠΊΠ°Ρ Π‘Π£ΠΠ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ACID; ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ACID ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π· ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ Π½Π°Π±ΠΎΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ. ΠΠ΄Π½Π° ΠΈΠ· ΠΏΡΠΈΡΠΈΠ½ ΡΠ°Π·Π½ΠΎΡΠΎΠ΄Π½ΠΎΠΉ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ACID ΡΠ²ΡΠ·Π°Π½Π° Ρ ΠΎΠ±ΠΈΠ»ΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠ², Π½Π° ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΠ΄ΡΠΈ ΡΠ°Π΄ΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΡ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ACID. Π‘ΠΎΠ·Π΄Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ²ΠΎΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΊΠ°ΠΊ ACID-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΠΏΠΎΠ³ΡΠ°Π½ΠΈΡΠ½ΡΡ ΡΠ»ΡΡΠ°Π΅Π² ΠΌΠΎΠΆΠ΅Ρ ΠΊΠ°ΡΠ΄ΠΈΠ½Π°Π»ΡΠ½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ°ΡΡΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Β«ΠΌΠ°Π»ΠΎΠ²Π΅ΡΠΎΡΡΠ½ΡΡ Β» ΡΠΎΠ±ΡΡΠΈΠΉ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ Π² ΡΠΎΠ½ΠΊΠΎΡΡΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±Π°Π·, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΈΡ ΠΎΡΠΎΠ±ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ ΠΈ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠ°Ρ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ.
ΠΠ΅Π±Π°ΡΡ ΠΎ ΡΠΎΠΌ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ MongoDB ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ACID, Π½Π΅ ΠΏΡΠ΅ΠΊΡΠ°ΡΠ°ΡΡΡΡ Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π²ΡΡ
ΠΎΠ΄Π° 4-ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. MongoDB Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»Π°
Π‘Ρ
Π΅ΠΌΠ°, ΠΈΠ»Π»ΡΡΡΡΠΈΡΡΡΡΠ°Ρ ΡΡΠ΅Π½Π°ΡΠΈΠΉ. MongoDB ΠΏΠ°Π΄Π°Π΅Ρ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΡΡΠΏΠ΅Π²Π°Π΅Ρ Π·Π°ΠΏΠΈΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π½Π° Π΄ΠΈΡΠΊ
Π€ΠΈΠΊΡΠ°ΡΠΈΡ Π½Π° Π΄ΠΈΡΠΊ β Π΄ΠΎΡΠΎΠ³ΠΎΡΡΠΎΡΡΠΈΠΉ ΠΏΡΠΎΡΠ΅ΡΡ. ΠΠ·Π±Π΅Π³Π°Ρ ΡΠ°ΡΡΡΡ ΡΠΈΠΊΡΠ°ΡΠΈΠΉ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ»ΡΡΡΠ°ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΠΈ Π·Π°ΠΏΠΈΡΠΈ, ΠΆΠ΅ΡΡΠ²ΡΡ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡΡ. ΠΠ° ΡΠ΅Π³ΠΎΠ΄Π½ΡΡΠ½ΠΈΠΉ Π΄Π΅Π½Ρ MongoDB ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Β«Π³ΡΡΠ·Π½ΡΠ΅Β» Π·Π°ΠΏΠΈΡΠΈ Π²ΡΠ΅ Π΅ΡΠ΅ ΠΌΠΎΠ³ΡΡ ΡΠΊΠ°Π·Π°ΡΡΡΡ Π½Π° ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΆΡΡΠ½Π°Π»Ρ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ ΠΊΠ°ΠΆΠ΄ΡΠ΅ 100 ΠΌΡ. Π’ΠΎ Π΅ΡΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Π΄Π»Ρ ΠΆΡΡΠ½Π°Π»ΠΎΠ² ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π² Π½ΠΈΡ , Ρ ΠΎΡΡ ΡΠΈΡΠΊ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π½ΠΈΠΆΠ΅.
Π£ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π°Π·Ρ ΡΠ²ΠΎΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ
ΠΠ· ΡΠΈΡΠ»Π° ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ACID ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡ
Π²Π°ΡΡΠ°ΡΡΡΡ ΡΠ°ΠΌΡΠΌ Π±ΠΎΠ»ΡΡΠΈΠΌ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΉ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΏΠ΅ΠΊΡΡ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠ² ΡΠΈΡΠ΅. ΠΠ°Π΄ΠΎ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΡ ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ β Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π·Π°ΡΡΠ°ΡΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ½ΠΈ ΡΡΠ΅Π±ΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΠΈΠΈ ΠΈ ΡΡΠΈΠ»ΠΈΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ ΡΠ°Π΄ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ
. Π‘Π»ΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡ Π±Π°Π·Ρ ΠΏΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌ Π¦ΠΠ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ΠΈ Π½Π°Ρ
ΠΎΠ΄ΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ
Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ
ΡΠ΅Π³ΠΈΠΎΠ½Π°Ρ
). ΠΠΎΠ±ΠΈΡΡΡΡ Π²ΡΡΠΎΠΊΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΠΎΠΏΡΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ. ΠΠ»Ρ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π½ΠΎΠΌΠ΅Π½Π° ΡΠΎΠ²Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ
Π‘Π£ΠΠ ΡΠ°ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠ³ΡΡ Π²ΡΠ±ΡΠ°ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΈΠ· Π½ΠΈΡ , ΠΎΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΡΠ²ΠΎΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡΡ . ΠΠΈΠ·ΠΊΠ°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΡΡ ΡΠΊΠΎΡΠΎΡΡΡ, ΠΏΠΎΠΏΡΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Ρ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π³ΠΎΠ½ΠΊΠΈ Π΄Π°Π½Π½ΡΡ (data race). ΠΡΡΠΎΠΊΠ°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ ΡΠ½ΠΈΠΆΠ°Π΅Ρ ΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ, Π½ΠΎ Π·Π°ΠΌΠ΅Π΄Π»ΡΠ΅Ρ ΡΠ°Π±ΠΎΡΡ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ°ΠΊΠΈΠΌ ΡΠΎΡΠΌΠΎΠ·Π°ΠΌ Π² Π±Π°Π·Π΅, ΡΡΠΎ Π½Π°ΡΠ½ΡΡΡΡ ΡΠ±ΠΎΠΈ.
ΠΠ±Π·ΠΎΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° ΠΈ Π²Π·Π°ΠΈΠΌΠΎΡΠ²ΡΠ·Π΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ
Π‘ΡΠ°Π½Π΄Π°ΡΡ SQL ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΡΠ΅ ΡΡΠΎΠ²Π½Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ, Ρ
ΠΎΡΡ Π² ΡΠ΅ΠΎΡΠΈΠΈ ΠΈ Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΈΡ
ΡΠΈΡΠ»ΠΎ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅.
Π ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ SQL ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ:
- Serializable (ΡΠ°ΠΌΡΠΉ ΠΆΠ΅ΡΡΠΊΠΈΠΉ ΠΈ Π·Π°ΡΡΠ°ΡΠ½ΡΠΉ): ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΡΡΠ΅ΠΊΡ, Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΡΠΉ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΊΠ°ΠΆΠ΄Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ. Π‘Π»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ Serializable ΡΠ°ΡΡΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠΎΠΉ snapshot-ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² Oracle) ΠΈΠ·-Π·Π° ΡΠ°Π·Π»ΠΈΡΠΈΠΉ Π² ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ, Ρ ΠΎΡΡ ΡΠ°ΠΌΠ° snapshot-ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ΅ SQL.
- Repeatable reads: Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ Π² ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΠ΅ΠΊΡΡΠ΅ΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ΄Π΅Π»Π°Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ),
Π½Π΅ Π²ΠΈΠ΄Π½Ρ . - Read committed: Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Ρ Π΄Π»Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡΡ ΡΠ°Π½ΡΠΎΠΌΠ½ΡΠ΅ ΡΡΠ΅Π½ΠΈΡ. ΠΡΠ»ΠΈ Π½Π΅ΠΊΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π²ΡΡΠ°Π²ΠΈΡ ΠΈ Π·Π°ΡΠΈΠΊΡΠΈΡΡΠ΅Ρ Π½ΠΎΠ²ΡΠ΅ ΡΡΡΠΎΠΊΠΈ, ΡΠ΅ΠΊΡΡΠ°Ρ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ ΡΠΌΠΎΠΆΠ΅Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈΡ ΠΏΡΠΈ Π·Π°ΠΏΡΠΎΡΠ΅.
- Read uncommitted (Π½Π°ΠΈΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠΎΠ³ΠΈΠΉ ΠΈ Π·Π°ΡΡΠ°ΡΠ½ΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ): Β«Π³ΡΡΠ·Π½ΠΎΠ΅Β» ΡΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ, ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π²ΠΈΠ΄Π΅ΡΡ Π½Π΅Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, Π²Π½Π΅ΡΠ΅Π½Π½ΡΠ΅ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌΠΈ. ΠΠ° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΡΡΠΎΡ ΡΡΠΎΠ²Π΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π΄Π»Ρ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»ΡΠ½ΡΡ
ΠΎΡΠ΅Π½ΠΎΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠΎΠ²
COUNT(*)
Π½Π° ΡΠ°Π±Π»ΠΈΡΠ΅.
Π£ΡΠΎΠ²Π΅Π½Ρ Serializable ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΈΡΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π³ΠΎΠ½ΠΎΠΊ Π΄Π°Π½Π½ΡΡ , ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π·Π°ΡΡΠ°ΡΠ΅Π½ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠ°ΠΌΠΎΠΉ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΡ. ΠΡΡΠ³ΠΈΠ΅ ΡΡΠΎΠ²Π½ΠΈ ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»Π΅Π³ΡΠ΅, ΠΎΠ΄Π½Π°ΠΊΠΎ Π²ΠΎΠ·ΡΠ°ΡΡΠ°Π΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ Π³ΠΎΠ½ΠΎΠΊ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π‘Π£ΠΠ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π·Π°Π΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ ΡΡΠΎΠ²Π΅Π½Ρ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ, Π² Π΄ΡΡΠ³ΠΈΡ ΠΈΠΌΠ΅ΡΡΡΡ Π²ΡΡΠ°ΠΆΠ΅Π½Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ Π½Π΅ Π²ΡΠ΅ ΡΡΠΎΠ²Π½ΠΈ.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠΎΠ²Π½Π΅ΠΉ ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ ΡΠ°ΡΡΠΎ ΡΠ΅ΠΊΠ»Π°ΠΌΠΈΡΡΠ΅ΡΡΡ Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π‘Π£ΠΠ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΠΈΠ·ΡΡΠ΅Π½ΠΈΠ΅ Π΅Π΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΡΠ½ΠΈΡΡ, ΡΡΠΎ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ.
ΠΠ±Π·ΠΎΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΠΈΠ·ΠΌΠ° Π½Π° ΡΠ°Π·Π½ΡΡ
ΡΡΠΎΠ²Π½ΡΡ
ΠΈΠ·ΠΎΠ»ΡΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π·Π½ΡΡ
Π‘Π£ΠΠ
Martin Kleppmann Π² ΡΠ²ΠΎΠ΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡΠ΅
ΠΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡ Π½Π° Π²ΡΡΡΡΠΊΡ, ΠΊΠΎΠ³Π΄Π° ΡΠ»ΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΎΠ±ΡΡΠ½ΡΡ
ΠΠ»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΡΠ΅Π½Ρ Π½Π°ΠΊΠ»Π°Π΄Π½ΠΎΠΉ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΠΆΠ΅ΡΡΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΡ Π² Π±Π°Π·Π΅, Π½ΠΎ ΠΈ ΠΏΠΎΡΠΎΠΌΡ, ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . Π‘Π΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ΡΠΈ ΡΠΏΠΎΡΠΎΠ±Π½Π° ΡΡΡΠ³ΡΠ±ΠΈΡΡ ΡΠΈΡΡΠ°ΡΠΈΡ Ρ ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½ΡΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΠΏΠΈΠΊΠΎΠ²ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΡΠ΄Π½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΡΡΡΠ°Π½ΡΡΡ. Π ΡΠ»ΡΡΠ°ΡΡ , ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠ½ΠΎΠΏΠΎΠ»ΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ° Π½Π΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΈΡ, ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠΈΡΡΠΈΡΠ΅ΡΠΊΠ°Ρ.
UPDATE products
SET name = 'Telegraph receiver', version = 2
WHERE id = 1 AND version = 1
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ products
Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ, Π΅ΡΠ»ΠΈ ΡΠ°Π½Π΅Π΅ Π΄ΡΡΠ³Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π²Π½Π΅ΡΠ»Π° ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π² ΡΡΡ ΡΡΡΠΎΠΊΡ. ΠΡΠ»ΠΈ ΠΆΠ΅ Π΄ΡΡΠ³ΠΈΡ
ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΎΠΉ Π½Π΅ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΎΡΡ, ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ ΠΏΡΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ ΠΈ ΠΌΡ ΡΠΌΠΎΠΆΠ΅ΠΌ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΡΡΠΏΠ΅ΡΠ½ΡΠΌ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ ΠΊΡΠΎΠΌΠ΅ Β«Π³ΡΡΠ·Π½ΡΡ Β» ΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ
ΠΠΎΠ³Π΄Π° ΡΠ΅ΡΡ Π·Π°Ρ ΠΎΠ΄ΠΈΡ ΠΎ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ , ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΡΡΠ»ΠΎΠ²ΠΈΠΉ Π³ΠΎΠ½ΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Β«Π³ΡΡΠ·Π½ΡΠΌΒ» ΡΡΠ΅Π½ΠΈΡΠΌ ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ Π΄Π°Π½Π½ΡΡ . ΠΠ΄Π½Π°ΠΊΠΎ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Ρ Π΄Π°Π½Π½ΡΠΌΠΈ ΡΡΠΈΠΌ Π½Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡΡΡ.
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² ΡΠ°ΠΊΠΈΡ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΉ ΡΠ²Π»ΡΡΡΡΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ (write skews). ΠΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡΡ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡ Π°ΠΊΡΠΈΠ²Π½ΠΎ Π½Π΅ ΠΈΡΡΡ. ΠΠ½ΠΈ ΡΠ²ΡΠ·Π°Π½Ρ Π½Π΅ Ρ Β«Π³ΡΡΠ·Π½ΡΠΌΠΈΒ» ΡΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ΠΉ Π΄Π°Π½Π½ΡΡ , Π° Ρ Π½Π°ΡΡΡΠ΅Π½ΠΈΡΠΌΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, Π½Π°Π»Π°Π³Π°Π΅ΠΌΡΡ Π½Π° Π΄Π°Π½Π½ΡΠ΅.
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ ΠΎΠ΄ΠΈΠ½ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ Π±ΡΠ» on-call:
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;
Π ΡΠΈΡΡΠ°ΡΠΈΠΈ Π²ΡΡΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΠΈΡΠΈ, Π΅ΡΠ»ΠΈ ΠΎΠ±Π΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π±ΡΠ΄ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ Π·Π°ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Ρ. Π₯ΠΎΡΡ Β«Π³ΡΡΠ·Π½ΡΡ Β» ΡΡΠ΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΏΠΎΡΠ΅ΡΠΈ Π΄Π°Π½Π½ΡΡ Π½Π΅ ΠΏΡΠΎΠΈΠ·ΠΎΡΠ»ΠΎ, ΡΠ΅Π»ΠΎΡΡΠ½ΠΎΡΡΡ Π΄Π°Π½Π½ΡΡ ΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π½Π°ΡΡΡΠ΅Π½Π°: ΡΠ΅ΠΏΠ΅ΡΡ Π΄Π²Π° ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ° ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΡΠΈΡΠ°ΡΡΡΡ on-call.
Π‘Π΅ΡΠΈΠ°Π»ΠΈΠ·ΡΠ΅ΠΌΠ°Ρ ΠΈΠ·ΠΎΠ»ΡΡΠΈΡ, ΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ ΠΈΠ»ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΠ ΠΌΠΎΠ³ΡΡ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΠΎΠ²Π°ΡΡ Π² ΡΡΡΡΠ°Π½Π΅Π½ΠΈΠΈ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΠΉ Π·Π°ΠΏΠΈΡΠΈ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΌΠ΅ΡΡ Π²ΡΡΠ²Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ Π°Π½ΠΎΠΌΠ°Π»ΠΈΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡ Π² production. ΠΡΠΈ ΡΡΠΎΠΌ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ Π·Π°ΠΏΠΈΡΠΈ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΡΠΆΠ΅Π»ΠΎ ΠΈΡΠΊΠ°ΡΡ Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅. ΠΡΠΎΠ±Π΅Π½Π½ΠΎ Π² ΠΊΡΡΠΏΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ , ΠΊΠΎΠ³Π΄Π° ΡΠ°Π·Π½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ² ΠΎΡΠ²Π΅ΡΠ°ΡΡ Π·Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΎΠ΄Π½ΠΈΡ ΠΈ ΡΠ΅Ρ ΠΆΠ΅ ΡΠ°Π±Π»ΠΈΡ ΠΈ Π½Π΅ ΡΠΎΠ³Π»Π°ΡΠΎΠ²ΡΠ²Π°ΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ.
ΠΠ°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΡ ΠΎΠ΄ΡΡ ΠΊ Π΅Π΄ΠΈΠ½ΠΎΠΌΡ ΠΌΠ½Π΅Π½ΠΈΡ ΠΏΠΎ ΠΏΠΎΠ²ΠΎΠ΄Ρ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π΄Π΅ΠΉΡΡΠ²ΠΈΠΉ
ΠΠ΄Π½Π° ΠΈΠ· ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ Π±Π°Π· Π΄Π°Π½Π½ΡΡ β ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΡΡΠ΄ΠΊΠ° Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΌ ΡΡΠΎΡ ΠΏΠΎΡΡΠ΄ΠΎΠΊ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π½Π΅ΠΏΡΠΎΠ·ΡΠ°ΡΠ΅Π½ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΠΠ. ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ, Π° Π½Π΅ Π² ΡΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΡ. ΠΠΎΡΡΠ΄ΠΎΠΊ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΡΠ»ΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·Π°ΡΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π² Π²ΡΡΠΎΠΊΠΎΠ½Π°Π³ΡΡΠΆΠ΅Π½Π½ΡΡ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌΠ°Ρ .
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΠΏΠ»ΠΎΡ ΠΎΠΉ ΡΡΠΈΠ»Ρ ΠΈ Π½ΠΈΠ·ΠΊΠ°Ρ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π±ΡΠ΄ΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Ρ ΠΎΡΡ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΡΡΡΠΏΠ°ΡΡ Π² Π±Π°Π·Ρ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
ΠΠ° ΠΏΠ΅ΡΠ²ΡΠΉ Π²Π·Π³Π»ΡΠ΄, Π² ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π’1 ΠΈ Π’2 Π²ΡΠ·ΡΠ²Π°ΡΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ Π½Π΅Π±Π»ΠΎΠΊΠΈΡΡΡΡΠΈΠ΅ ΠΈ ΡΡΠ°Π·Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ Π² Π²ΠΈΠ΄Π΅
result1 = T1() // ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ β ΡΡΠΎ promises
result2 = T2()
ΠΡΠ»ΠΈ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ (ΡΠΎ Π΅ΡΡΡ Π»ΠΈΠ±ΠΎ Π²ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ, Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅ΡΠ²Π°Π½Ρ) ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π’1 ΠΈ Π’2 Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π΅Π΄ΠΈΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ.
Π¨Π°ΡΠ΄ΠΈΠ½Π³ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ½Π΅ΡΡΠΈ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
Π¨Π°ΡΠ΄ΠΈΠ½Π³ β ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ± Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ΠΈΡ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·Ρ ΡΠΌΠ΅ΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π±ΠΈΠ²Π°ΡΡ Π΄Π°Π½Π½ΡΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠΌΠ΅ΡΡ, ΠΈΠ»ΠΈ ΠΈΠΌ ΡΡΠΎ ΡΠ΄Π°Π΅ΡΡΡ Π½Π΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ Ρ ΠΎΡΠΎΡΠΎ. ΠΠΎΠ³Π΄Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΠΎΡΡ Π΄Π°Π½Π½ΡΡ /ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΡΡΡΠ΅ΡΡΠ²Π»ΡΡΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ ΡΠΎΠ·Π΄Π°ΡΡ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ Π² ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΌ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ Π²ΠΌΠ΅ΡΡΠΎ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°ΡΡ ΡΡΡ ΡΠ°Π±ΠΎΡΡ ΠΠ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«ΡΠ°ΡΠ΄ΠΈΠ½Π³ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΒ» (application-level sharding).
Π£Π²Ρ, ΡΠ°ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ°ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π½Π΅Π²Π΅ΡΠ½ΠΎΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΡΡΠΎ ΡΠ°ΡΠ΄ΠΈΠ½Π³ ΠΎΠ±ΠΈΡΠ°Π΅Ρ Π² ΡΠ΅ΡΠ²ΠΈΡΠ°Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ»ΠΎΡ ΠΏΠ΅ΡΠ΅Π΄ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ . Π Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΡΠΎΡΡΠ° Π΄Π°Π½Π½ΡΡ ΠΈ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΉ ΡΡ Π΅ΠΌΡ, ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠ°ΡΠ΄ΠΈΠ½Π³Ρ ΠΌΠΎΠ³ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡΡ Π²Π΅ΡΡΠΌΠ° ΡΠ»ΠΎΠΆΠ½ΡΠΌΠΈ. ΠΡΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΡ ΠΈΡΠ΅ΡΠ°ΡΠΈΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°ΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ΄Π΅Π»Π΅Π½Ρ ΠΎΡ ΡΠ΅ΡΠ²ΠΈΡΠ° ΡΠ°ΡΠ΄ΠΈΠ½Π³Π°
ΠΡΠ½ΠΎΡ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π° Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ²ΠΈΡ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ°ΡΠ΄ΠΈΠ½Π³Π° Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π·Π°Π½ΠΎΠ²ΠΎ Π΄Π΅ΠΏΠ»ΠΎΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ²ΡΠΎΠΈΠ½ΠΊΡΠ΅ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½ΡΠΌ
AUTOINCREMENT β ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ΅ΡΠ΅Π΄ΠΊΠΎ Π²ΡΡΡΠ΅ΡΠ°ΡΡΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΠ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π³Π΅Π½Π΅ΡΠ°ΡΠΎΡΠΎΠ² ID, Π° Π² Π±Π°Π·Π΅ ΠΈΠΌΠ΅ΡΡΡΡ ΡΠ°Π±Π»ΠΈΡΡ, ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΠ΅ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ². Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½, ΠΏΠΎ ΠΊΠΎΡΠΎΡΡΠΌ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ Ρ ΠΏΠΎΠΌΠΎΡΡΡ auto-incrementing’Π° Π΄Π°Π»Π΅ΠΊΠ° ΠΎΡ ΠΈΠ΄Π΅Π°Π»Π°:
- Π ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ auto-incrementing ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅ΡΡΠ΅Π·Π½ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. ΠΠ»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ID Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠ° Π³Π»ΠΎΠ±Π°Π»ΡΠ½Π°Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ UUID: Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΠ°Π·Π½ΡΡ ΡΠ·Π»ΠΎΠ² Π±Π°Π·Ρ. Auto-incrementing Ρ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠ°ΠΌΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΊΠΎΠ½ΠΊΡΡΠ΅Π½ΡΠΈΠΈ ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠ·ΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ°Ρ Π² ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΡΡ . ΠΠ΅ΠΊΠΎΡΠΎΡΡΠΌ Π‘Π£ΠΠ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, MySQL) ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ ΠΎΡΠΎΠ±Π°Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΈΡΡΠ°Π»ΡΠ½ΠΎΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎΠ±Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ ΠΌΠ°ΡΡΠ΅Ρ-ΠΌΠ°ΡΡΠ΅Ρ. Π ΠΏΡΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π»Π΅Π³ΠΊΠΎ ΠΎΡΠΈΠ±ΠΈΡΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ ΡΠ±ΠΎΡΠΌ Π·Π°ΠΏΠΈΡΠΈ.
- Π£ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π±Π°Π· Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΠΏΠ°ΡΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Ρ Π½Π° ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΡ ΠΊΠ»ΡΡΠ°Ρ . ΠΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ID ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Β«Π³ΠΎΡΡΡΠΈΡ ΡΠΎΡΠ΅ΠΊΒ» ΠΈ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠΈ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠ°ΡΡΠΈΡΠΈΠΈ, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ Π΄ΡΡΠ³ΠΈΠ΅ Π±ΡΠ΄ΡΡ ΠΏΡΠΎΡΡΠ°ΠΈΠ²Π°ΡΡ.
- ΠΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ β ΡΡΠΎ ΡΠ°ΠΌΡΠΉ Π±ΡΡΡΡΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΡΠΎΠΊΠ΅ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π»ΡΡΡΠΈΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π·Π°ΠΏΠΈΡΠ΅ΠΉ, ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ID ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π²ΡΠ°ΡΠΈΡΡ ΡΠ°ΠΌΡΠΉ Π²Π°ΠΆΠ½ΡΠΉ ΡΡΠΎΠ»Π±Π΅Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ°Ρ Π² Π±Π΅ΡΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ, Π½Π°ΠΏΠΎΠ»Π½Π΅Π½Π½ΡΠΉ Π±Π΅ΡΡΠΌΡΡΠ»Π΅Π½Π½ΡΠΌΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, Π²ΡΠ±ΠΈΡΠ°ΠΉΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΡΠΉ ΠΊΠ»ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ).
ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡΡΡ Ρ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΠΎΠΌ, ΡΠ°ΡΡΠΌΠΎΡΡΠΈΡΠ΅ Π²Π»ΠΈΡΠ½ΠΈΠ΅ auto-increment’ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ID ΠΈ UUID Π½Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠ°ΡΡΠΈΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ ΡΠ°ΡΠ΄ΠΈΠ½Π³.
Π£ΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ (stale) Π΄Π°Π½Π½ΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ ΠΈ Π½Π΅ ΡΡΠ΅Π±ΠΎΠ²Π°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ
Π£ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°Π»Π»Π΅Π»ΡΠ½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ²Π΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡΠΈ (MVCC) ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΠΎΠ±ΡΡΠΆΠ΄Π°Π»ΠΈΡΡ Π²ΡΡΠ΅. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Postgres, Spanner) Ρ ΠΏΠΎΠΌΠΎΡΡΡ MVCC Β«ΡΠΊΠ°ΡΠΌΠ»ΠΈΠ²Π°ΡΡΒ» ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡΠΌ ΡΠ½ΠΈΠΌΠΊΠΈ (snapshot’Ρ) β Π±ΠΎΠ»Π΅Π΅ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ . Π’ΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠΎ snapshot’Π°ΠΌΠΈ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡΠΈ. ΠΡΠΈ ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠ· ΡΡΠ°ΡΠΎΠ³ΠΎ snapshot’a ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅.
Π§ΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅Π³ΠΊΠ° ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΡ Π΄Π°Π½Π½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ³ΠΎΠ΄ΠΈΡΡΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠΈ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΡΡ Π°Π³ΡΠ΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ.
ΠΠ΅ΡΠ²ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ β Π½ΠΈΠ·ΠΊΠ°Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π° ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ Π³Π΅ΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΡΠ΅Π³ΠΈΠΎΠ½Π°ΠΌ). ΠΡΠΎΡΠΎΠ΅ β Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Β«ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡΒ» ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Ρ ΠΎΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. ΠΡΠΎ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ Π΄Π»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΈΡΠ°ΡΡ, Π΅ΡΠ»ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ° ΡΠ°Π±ΠΎΡΠ° Ρ ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
Π‘Π΅ΡΠ²Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΡΠΈΡΡΠ²Π°Π΅Ρ Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π΄Π°Π½Π½ΡΠ΅, ΡΡΡΠ°ΡΠ΅Π²ΡΠΈΠ΅ Π½Π° 5 ΡΠ΅ΠΊΡΠ½Π΄, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΈΡ
ΡΠ²Π΅ΠΆΠ°ΠΉΡΠ°Ρ Π²Π΅ΡΡΠΈΡ Π΄ΠΎΡΡΡΠΏΠ½Π° ΠΏΠΎ Π΄ΡΡΠ³ΡΡ ΡΡΠΎΡΠΎΠ½Ρ Π’ΠΈΡ
ΠΎΠ³ΠΎ ΠΎΠΊΠ΅Π°Π½Π°
Π‘Π£ΠΠ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΡΠΈΡΠ°ΡΡ ΡΡΠ°ΡΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΠΈ Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠ»ΡΡΠ°ΡΡ
ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Postgres ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π΄Π΅Π»Π°ΡΡ VACUUM
ΠΏΠΎ Π·Π°ΠΏΡΠΎΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡ ΡΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π² Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅. Spanner Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ±ΠΎΡΡΠΈΠΊ ΠΌΡΡΠΎΡΠ°, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ½ΠΈΠΌΠΊΠΎΠ² ΡΡΠ°ΡΡΠ΅ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ°ΡΠ°.
ΠΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ Π»ΡΠ±ΡΠ΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ
Π‘Π°ΠΌΡΠΉ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΎΡ ΡΠ°Π½ΡΠ΅ΠΌΡΠΉ ΡΠ΅ΠΊΡΠ΅Ρ Π² ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΊΠ΅ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²ΡΠ΅ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΜΠ΅ API Π»Π³ΡΡ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°ΡΠΈ ΠΌΠ°ΡΠΈΠ½Ρ Π½Π΅ Π·Π½Π°ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡ ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΠΊΠ²Π°ΡΡΠ΅Π²ΡΠ΅ ΠΊΡΠΈΡΡΠ°Π»Π»Ρ, Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΠ΅ ΠΊΠΎΠ»Π΅Π±Π°Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΠΎΡΡΡΠ΅ΡΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΡΠ½Ρ ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠΏΠ΅ΡΠ΅ΠΆΠ°ΡΡ/ΠΎΡΡΡΠ°Π²Π°ΡΡ ΠΎΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. Π‘Π΄Π²ΠΈΠ³ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΡΡΠΈΠ³Π°ΡΡ 20 ΡΠ΅ΠΊΡΠ½Π΄ Π² ΡΡΡΠΊΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ΅ΠΌΡ Π½Π° Π½Π°ΡΠΈΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ°Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Ρ ΡΠ΅ΡΠ΅Π²ΡΠΌ.
ΠΠ»Ρ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΡ NTP, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌ ΠΈΠ·-Π·Π° ΡΠ΅ΡΠΈ. ΠΠ°ΠΆΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Ρ NTP-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π² ΡΠΎΠΌ ΠΆΠ΅ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ΅ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ΅ΠΌΡ. ΠΠΎΠ½ΡΡΠ½ΠΎ, ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΌ NTP-ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π΅ΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅ΠΌΡ ΠΈΡΠΊΠ°ΠΆΠ΅Π½ΠΈΡ.
ΠΡΠΎΠΌΠ½ΡΠ΅ ΡΠ°ΡΡ ΠΈ ΠΈΡ GPS-Π°Π½Π°Π»ΠΎΠ³ΠΈ Π»ΡΡΡΠ΅ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡ Π΄Π»Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ½ΠΈ Π΄ΠΎΡΠΎΠ³ΠΈ ΠΈ ΡΡΠ΅Π±ΡΡΡ ΡΠ»ΠΎΠΆΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅. ΠΠ·-Π·Π° ΡΡΠΎΠ³ΠΎ Π² ΡΠ΅Π½ΡΡΠ°Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΌΠ½ΠΎΠ³ΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΡΠΎΠΌΠ½ΡΠ΅ ΠΈ/ΠΈΠ»ΠΈ GPS-ΡΠ°ΡΡ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡ ΡΠΎΡΠ½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ, ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π³ΠΎ ΠΎΠ½ΠΎ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ ΡΠ΅ΡΠ΅Π· Π²ΡΠΎΡΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΌΠ°ΡΠΈΠ½Π΅ Π±ΡΠ΄Π΅Ρ Π½Π°Π±Π»ΡΠ΄Π°ΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΠΉ ΡΠ΄Π²ΠΈΠ³ ΠΎΡ ΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ.
Π‘ΠΈΡΡΠ°ΡΠΈΡ ΡΡΡΠ³ΡΠ±Π»ΡΠ΅ΡΡΡ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΠ ΡΠ°ΡΡΠΎ Π½Π°Ρ ΠΎΠ΄ΡΡΡΡ Π½Π° ΡΠ°Π·Π½ΡΡ ΠΌΠ°ΡΠΈΠ½Π°Ρ (Π΅ΡΠ»ΠΈ Π½Π΅ Π² ΡΠ°Π·Π½ΡΡ Π¦ΠΠ). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²ΡΠ΅ΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠ·Π»Π°Ρ ΠΠ, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΏΠΎ ΡΠ°Π·Π½ΡΠΌ ΠΌΠ°ΡΠΈΠ½Π°ΠΌ. ΠΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ Π±ΡΠ΄Π΅Ρ Π΄ΡΡΠ³ΠΈΠΌ ΠΈ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π Google TrueTime ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ ΡΠΎΠ²ΡΠ΅ΠΌ ΠΈΠ½ΠΎΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π»ΡΠ΄Π΅ΠΉ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ΅ΡΡ Google Π² ΡΡΠΎΠΌ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠΈ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π±Π°Π½Π°Π»ΡΠ½ΡΠΌ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠΌ Π½Π° Π°ΡΠΎΠΌΠ½ΡΠ΅ ΠΈ GPS-ΡΠ°ΡΡ, Π½ΠΎ ΡΡΠΎ Π»ΠΈΡΡ ΡΠ°ΡΡΡ ΠΎΠ±ΡΠ΅ΠΉ ΠΊΠ°ΡΡΠΈΠ½Ρ. ΠΠΎΡ ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½ TrueTime:
- TrueTime ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Π΄Π²Π° ΡΠ°Π·Π½ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ°: GPS ΠΈ Π°ΡΠΎΠΌΠ½ΡΠ΅ ΡΠ°ΡΡ. Π£ ΡΡΠΈΡ
ΡΠ°ΡΠΎΠ² Π½Π΅ΠΊΠΎΡΡΠ΅Π»ΠΈΡΡΡΡΠΈΠ΅ ΡΠΎΡΠΊΠΈ ΠΎΡΠΊΠ°Π·Π° (failure modes) [ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠΌ. Π½Π° 5 ΡΡΡΠ°Π½ΠΈΡΠ΅
Π·Π΄Π΅ΡΡ β ΠΏΡΠΈΠΌ. ΠΏΠ΅ΡΠ΅Π².), ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΡ. - Π£ TrueTime Π½Π΅ΠΎΠ±ΡΡΠ½ΡΠΉ API. ΠΠ½ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π° Ρ Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ³ΡΠ΅ΡΠ½ΠΎΡΡΡΡ ΠΈΠ·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡΡ. Π Π΅Π°Π»ΡΠ½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π³Π΄Π΅-ΡΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π΅ΡΡ Π½Π΅ΠΉ ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π³ΡΠ°Π½ΠΈΡΠ°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°. Spanner, ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½Π°Ρ Π±Π°Π·Π° Π΄Π°Π½Π½ΡΡ ΠΎΡ Google, ΠΏΡΠΎΡΡΠΎ Π΄ΠΎΠΆΠΈΠ΄Π°Π΅ΡΡΡ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Ρ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΡΡΡΡ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΡΡΠ»ΠΎ Π·Π° ΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»Π°. ΠΡΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ ΠΏΡΠΈΠ²Π½ΠΎΡΠΈΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠΊΡ Π² ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ Π΅ΡΠ»ΠΈ Π½Π΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΡΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅ΡΠ°Ρ Π²ΡΡΠΎΠΊΠ°, Π½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ Π΄Π°ΠΆΠ΅ Π² Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΡΠΈΡΡΠ°ΡΠΈΠΈ.
ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ Spanner ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ TrueTime, Π³Π΄Π΅ TT.now() Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π», ΡΠ°ΠΊ ΡΡΠΎ Spanner ΠΏΡΠΎΡΡΠΎ ΡΠΏΠΈΡ Π΄ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠ°, ΠΊΠΎΠ³Π΄Π° ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΏΠ΅ΡΠ΅Π²Π°Π»ΠΈΠ»ΠΎ ΡΠ΅ΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΠΎΡΠΌΠ΅ΡΠΊΡ
Π‘Π½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ ΡΠΎΡΡ Π΄Π»ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ Spanner ΠΈ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΡ ΠΏΠΎΡΠ΅ΠΌΡ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π²ΡΡΠΎΠΊΡΡ ΡΠΎΡΠ½ΠΎΡΡΡ Π΄Π°ΠΆΠ΅ Π½Π΅ΡΠΌΠΎΡΡΡ Π½Π° ΡΠΎ, ΡΡΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ ΡΠΎΡΠ½ΡΠ΅ ΡΠ°ΡΡ.
Π£ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠΉ
Π‘ΠΏΡΠΎΡΠΈΠ² Π΄Π΅ΡΡΡΠΎΠΊ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΎΠ² ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°, Π²Ρ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΡΠ°Π·Π½ΡΠ΅ ΠΎΡΠ²Π΅ΡΡ. Π Π‘Π£ΠΠ latency ΡΠ°ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ Β«Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Β», ΠΈ ΠΎΠ½Π° ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ ΠΎ ΡΠΎΠΉ, ΠΊΠΎΡΠΎΡΡΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΊΠ»ΠΈΠ΅Π½Ρ. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ Π½Π°Π±Π»ΡΠ΄Π°Π΅Ρ ΡΡΠΌΠΌΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΠ. Π‘ΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π²ΡΠ΄Π΅Π»ΡΡΡ ΡΠΈΠΏ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½Π° ΠΏΡΠΈ ΠΎΡΠ»Π°Π΄ΠΊΠ΅ Π½Π°ΡΠ°ΡΡΠ°ΡΡΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΡΠΈ ΡΠ±ΠΎΡΠ΅ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ ΠΌΠ΅ΡΡΠΈΠΊ Π²ΡΠ΅Π³Π΄Π° ΡΡΠ°ΡΠ°ΠΉΡΠ΅ΡΡ ΡΠ»Π΅Π΄ΠΈΡΡ Π·Π° ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡΠΈΠΏΠ°ΠΌΠΈ.
Π’ΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΎΡΠ΅Π½ΠΈΠ²Π°ΡΡ Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ
ΠΠ½ΠΎΠ³Π΄Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π‘Π£ΠΠ ΠΈ Π΅Π΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ write/read ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π½ΠΎΠ²ΠΎΠΉ Π‘Π£ΠΠ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²ΡΠ΅ΠΎΠ±ΡΠ΅ΠΌΠ»ΡΡΠΈΠΉ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠ΅Π½ΠΊΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΠΈ/ΠΈΠ»ΠΈ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ). ΠΡΠΈΠΌΠ΅ΡΡ:
- ΠΡΠΎΠΏΡΡΠΊΠ½Π°Ρ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π·Π°ΠΏΠΈΡΠΈ ΠΈ Π·Π°Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΈ Π²ΡΡΠ°Π²ΠΊΠ΅ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΠ°Π±Π»ΠΈΡΡ Π₯ (Ρ 50 ΠΌΠ»Π½. ΡΡΡΠΎΠΊ) Ρ Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ ΠΈ Π·Π°ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΡΡΠΎΠΊ Π² ΡΠ²ΡΠ·Π°Π½Π½ΡΡ ΡΠ°Π±Π»ΠΈΡΠ°Ρ .
- ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΈ Π²ΡΠ²ΠΎΠ΄Π΅ Π΄ΡΡΠ·Π΅ΠΉ Π΄ΡΡΠ·Π΅ΠΉ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ΅Π΄Π½Π΅Π΅ ΡΠΈΡΠ»ΠΎ Π΄ΡΡΠ·Π΅ΠΉ ΡΠ°Π²Π½ΠΎ 500.
- ΠΠ°Π΄Π΅ΡΠΆΠΊΠ° ΠΏΡΠΈ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠΈ ΡΠΎΠΏ-100 Π·Π°ΠΏΠΈΡΠ΅ΠΉ ΠΈΠ· ΠΈΡΡΠΎΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΊΠΎΠ³Π΄Π° ΠΎΠ½ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ Π½Π° 500 Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Ρ Π₯ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Π² ΡΠ°Ρ.
ΠΡΠ΅Π½ΠΊΠ° ΠΈ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡΡ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΈ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π²Ρ Π½Π΅ Π±ΡΠ΄Π΅ΡΠ΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΠΠ ΡΠ΄ΠΎΠ²Π»Π΅ΡΠ²ΠΎΡΡΠ΅Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌ ΠΊ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΡΠΌΠΏΠΈΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΡΡ ΡΠ°Π·Π±ΠΈΠ²ΠΊΡ ΠΏΡΠΈ ΡΠ±ΠΎΡΠ΅ latency-ΠΌΠ΅ΡΡΠΈΠΊ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ SLO.
ΠΠΎΠΌΠ½ΠΈΡΠ΅ ΠΎ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΠΈ (cardinality) ΠΏΡΠΈ ΡΠ±ΠΎΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ Π»ΠΎΠ³ΠΈ, ΡΠ±ΠΎΡ ΡΠΎΠ±ΡΡΠΈΠΉ ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΡΡ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ»Π°Π΄ΠΎΡΠ½ΡΡ
Π΄Π°Π½Π½ΡΡ
Ρ Π²ΡΡΠΎΠΊΠΎΠΉ ΠΌΠΎΡΠ½ΠΎΡΡΡΡ. Π ΡΡΠ°ΡΡΠ΅ Β«
ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΎΠΏΠ°ΡΠ½Ρ
ΠΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ Π‘Π£ΠΠ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠΌ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° Π»Π΅Π³ΠΊΠΎ Π²ΡΡΠ²ΠΈΡΡ (ΡΠΎ Π΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΡΠ°ΡΡ ΠΎΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ ΠΈΠΌΠ΅Π΅ΡΡΡ ΠΊΠ°ΠΊΠ°Ρ-ΡΠΎ Π°Π½ΠΎΠΌΠ°Π»ΠΈΡ).
ΠΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΌΠ΅ΡΡ ΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΈ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡ. ΠΡΠ»ΠΈ ΠΎΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π½Π΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΡΡΡ ΠΎΡΠΊΠ°Π·Π°ΡΡΡΡ, ΠΎΡΠ½Π΅ΡΠΈΡΠ΅ΡΡ ΠΊ ΠΈΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Ρ ΠΎΡΠΎΠ±ΡΠΌ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ΠΌ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΡ ΡΠΈΡΡΠ°ΡΠΈΠΉ, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ²Π΅ΡΡΡΠ½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΏΡΠ΅ΡΡΠ²Π°ΡΡΡΡ ΠΈΠ·-Π·Π° Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ .
ΠΠ½ΠΊΠ°ΠΏΡΡΠ»ΡΡΠΈΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ Π² ΡΠ°Π·Π½ΡΠ΅ ΡΠ»ΠΎΠΈ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎΠΌΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΉ, Π° Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΎΡΠ»ΠΎΠΆΠ½ΠΈΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΠΉ Π°Π²ΡΠΎΡΠ°. ΠΠ·Π³Π»ΡΠ½ΠΈΡΠ΅ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ:
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...
ΠΡΠΈΠ²Π΅Π΄Π΅Π½Π½Π°Ρ Π²ΡΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π±ΡΠ΄Π΅Ρ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°ΡΡ Π½ΠΎΠΌΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ°. ΠΡΠ»ΠΈ ΠΊΠΎΠΌΠΌΠΈΡ Π½Π΅ ΡΠ΄Π°ΡΡΡΡ ΠΈΠ·-Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠ΅ΡΡΡ, ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Ρ Π΄ΡΡΠ³ΠΈΠΌ Π½ΠΎΠΌΠ΅ΡΠΎΠΌ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ.
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΌΠ½ΠΎΠ³ΠΎΠ΅ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΎ ΠΠ
ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊ Π·Π°ΠΏΡΠΎΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ . ΠΠ½ΠΈ ΡΠ°ΠΊΠΆΠ΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΡΡ Π·Π°ΠΏΡΠΎΡΡ ΠΈ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΡΡ ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄ ΠΎΡΠΏΡΠ°Π²ΠΊΠΎΠΉ. ΠΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΎΡΠ΅Π½ΠΊΠΈ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π½Π° ΡΠΈΠ³Π½Π°Π»Π°Ρ Π² ΠΈΡ ΡΠ°ΡΠΏΠΎΡΡΠΆΠ΅Π½ΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊΠΎΠΉ ΡΠΏΠΎΡΠΎΠ± ΠΏΠΎΠΈΡΠΊΠ° Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π·Π°ΠΏΡΠΎΡΠ° ΡΠ°ΠΌΡΠΉ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ?
SELECT * FROM articles where author = "rakyll" order by title;
Π Π΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·Π²Π»Π΅ΡΡ Π΄Π²ΡΠΌΡ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ:
- ΠΠΎΠ»Π½ΠΎΠ΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π±Π»ΠΈΡΡ: ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡ ΡΡΠ°ΡΡΠΈ Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π°Π²ΡΠΎΡΠ°, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΈΡ .
- ΠΠ½Π΄Π΅ΠΊΡΠ½ΠΎΠ΅ ΡΠΊΠ°Π½ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΠ½Π΄Π΅ΠΊΡ, ΡΡΠΎΠ±Ρ Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ, ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ, Π° Π·Π°ΡΠ΅ΠΌ ΡΠΏΠΎΡΡΠ΄ΠΎΡΠΈΡΡ ΠΈΡ .
ΠΠ°Π΄Π°ΡΠ° ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ² ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΠΊΠ°ΠΊΠ°Ρ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π°ΠΈΠ»ΡΡΡΠ΅ΠΉ. Π‘ΡΠΎΠΈΡ ΡΡΠ΅ΡΡΡ, ΡΡΠΎ Ρ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ² Π»ΠΈΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°Π½ΠΈΡ. ΠΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡ ΠΊ Π½Π΅ΡΠ΄Π°ΡΠ½ΡΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΡΠΌ. ΠΠ΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ ΠΠ ΠΈΠ»ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΈ ΡΠΎΠ½ΠΊΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π΅ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎΠ²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Π‘Π£ΠΠ ΡΠΌΠ΅ΡΡ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°ΡΡ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² Π·Π°ΠΏΡΠΎΡΠΎΠ², Π° ΡΠ°ΠΌΠΎΠ΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠ° ΡΠΏΠΎΡΠΎΠ±Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ ΠΠ, Π΅ΡΠ»ΠΈ Π½ΠΎΠ²Π°Ρ Π²Π΅ΡΡΠΈΡ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ. ΠΠΎΠ³ΠΈ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΎ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°Ρ Ρ Π·Π°Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΈΠ»ΠΈ ΡΡΠ°ΡΠΈΡΡΠΈΠΊΠ° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠΏΠΎΡΠΎΠ±Π½Ρ ΠΏΠΎΠΌΠΎΡΡ Ρ Π²ΡΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΡΠ΅Π±ΡΡΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠ΅ΡΡΠΈΠΊΠΈ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠΎΠ², ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΡΡΠΌΡ (ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΈ ΠΎΡΠ΅Π½ΠΊΠ΅ Π·Π°Π΄Π΅ΡΠΆΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ). Π₯ΠΎΡΠΎΡΠΈΠΌ Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΊ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌ ΡΠ²Π»ΡΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΈ ΠΎΡΡΠ»Π΅ΠΆΠΈΠ²Π°Π½ΠΈΡ ΠΏΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ. ΠΠ½ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ (ΡΠ²Ρ, Π½Π΅ Π²ΡΠ΅ Π‘Π£ΠΠ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ).
ΠΠ½Π»Π°ΠΉΠ½-ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΡΠ»ΠΎΠΆΠ½Π°, Π½ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°
ΠΠ½Π»Π°ΠΉΠ½-ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ, Β«ΠΆΠΈΠ²Π°ΡΒ» ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ ΠΈΠ»ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΎΠ·Π½Π°ΡΠ°ΡΡ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΎΡ ΠΎΠ΄Π½ΠΎΠΉ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΊ Π΄ΡΡΠ³ΠΎΠΉ Π±Π΅Π· ΠΏΡΠΎΡΡΠΎΠ΅Π² ΠΈ Π½Π°ΡΡΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΠΈΠ²ΡΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π»Π΅Π³ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΡΠΈ, Π΅ΡΠ»ΠΈ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ ΡΠΎΠΉ ΠΆΠ΅ Π‘Π£ΠΠ/Π΄Π²ΠΈΠΆΠΊΠ°. Π‘ΠΈΡΡΠ°ΡΠΈΡ ΠΎΡΠ»ΠΎΠΆΠ½ΡΠ΅ΡΡΡ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄ Π½Π° Π½ΠΎΠ²ΡΡ Π‘Π£ΠΠ Ρ ΠΈΠ½ΠΎΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡΠΌΠΈ ΠΊ ΡΡ Π΅ΠΌΠ΅.
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½-ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ. ΠΠΎΡ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ :
- ΠΠΊΠ»ΡΡΠΈΡΠ΅ Π΄Π²ΠΎΠΉΠ½ΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΠΎΠ±Π΅ Π±Π°Π·Ρ. ΠΠΎΠ²Π°Ρ Π±Π°Π·Π° Π½Π° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅Ρ Π΄Π°Π½Π½ΡΡ , Π° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΡΠ²Π΅ΠΆΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅. Π£Π±Π΅Π΄ΠΈΠ²ΡΠΈΡΡ Π² ΡΡΠΎΠΌ, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΊ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌΡ ΡΠ°Π³Ρ.
- ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΡΡΠ΅Π½ΠΈΠ΅ Ρ ΠΎΠ±Π΅ΠΈΡ ΠΠ.
- ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ°ΠΊ, ΡΡΠΎΠ±Ρ ΡΡΠ΅Π½ΠΈΠ΅ ΠΈ Π·Π°ΠΏΠΈΡΡ Π² ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠ»ΠΈΡΡ Ρ Π½ΠΎΠ²ΠΎΠΉ Π±Π°Π·ΠΎΠΉ.
- ΠΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΡ Π² ΡΡΠ°ΡΡΡ Π±Π°Π·Ρ, ΠΏΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ ΠΈΠ· Π½Π΅Π΅ Π΄Π°Π½Π½ΡΠ΅. ΠΠ° ΡΡΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½ΠΎΠ²Π°Ρ ΠΠ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π»ΠΈΡΠ΅Π½Π° ΡΠ°ΡΡΠΈ Π΄Π°Π½Π½ΡΡ . ΠΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠΊΠΎΠΏΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ Π±Π°Π·Ρ.
- Π‘ΡΠ°ΡΠ°Ρ Π±Π°Π·Π° Π΄ΠΎΡΡΡΠΏΠ½Π° ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ. Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅ Π½Π΅Π΄ΠΎΡΡΠ°ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠ°ΡΠΎΠΉ ΠΠ Π² Π½ΠΎΠ²ΡΡ. ΠΠΎΡΠ»Π΅ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΡΡΠΈ Π½Π° Π½ΠΎΠ²ΡΡ Π±Π°Π·Ρ, Π° ΡΡΠ°ΡΡΡ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ ΠΈ ΡΠ΄Π°Π»ΠΈΡΠ΅ ΠΈΠ· ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ
ΠΠ½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ Π²Π»Π΅ΡΠ΅Ρ Π·Π° ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΡ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΠΎΡΡΠΈ
Π ΠΎΡΡ ΠΠ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π½Π΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠΌ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠΌ Ρ Π΅Π΅ ΠΌΠ°ΡΡΡΠ°Π±ΠΎΠΌ. Π§Π΅ΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ ΠΎ Π²Π½ΡΡΡΠ΅Π½Π½Π΅ΠΌ ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΠ, ΡΠ΅ΠΌ Π»ΡΡΡΠ΅ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΏΡΠΎΠ³Π½ΠΎΠ·ΠΈΡΠΎΠ²Π°ΡΡ, ΠΊΠ°ΠΊ ΠΎΠ½Π° Π±ΡΠ΄Π΅Ρ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ Π²ΡΠ΅ ΠΆΠ΅ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄Π΅ΡΡ.
Π‘ ΡΠΎΡΡΠΎΠΌ Π±Π°Π·Ρ ΠΏΡΠ΅ΠΆΠ½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ° Π΄Π°Π½Π½ΡΡ
ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΡΠ΅ΡΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΡΠ°ΡΠ΅ΡΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠΎΠ³Π΄Π° Π²ΡΡΠ°Π΅Ρ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠ΅ΡΡΠ΅Π·Π½ΠΎΠΌ ΠΏΠ΅ΡΠ΅ΡΠΌΠΎΡΡΠ΅ ΡΡ
Π΅ΠΌΡ, ΡΠΈΡΠΎΠΊΠΎΠΌΠ°ΡΡΡΠ°Π±Π½ΡΡ
ΡΠ»ΡΡΡΠ΅Π½ΠΈΡΡ
Π² ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ, ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»Π΅Π½ΠΈΠΈ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅ Π‘Π£ΠΠ, ΡΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ.
ΠΠΎ Π½Π΅ Π΄ΡΠΌΠ°ΠΉΡΠ΅, ΡΡΠΎ ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ Π·Π½Π°Π½ΠΈΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½Π΅Π³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈΠΌΠ΅ΡΡΠ΅ΠΉΡΡ ΠΠ β ΡΡΠΎ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠΎΠ²ΡΠ΅ ΠΌΠ°ΡΡΡΠ°Π±Ρ ΠΏΡΠΈΠ½Π΅ΡΡΡ Ρ ΡΠΎΠ±ΠΎΠΉ Π½ΠΎΠ²ΡΠ΅ Π½Π΅ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅. ΠΠ΅ΠΏΡΠ΅Π΄ΡΠΊΠ°Π·ΡΠ΅ΠΌΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ½ΡΠ΅ ΡΠΎΡΠΊΠΈ, Π½Π΅ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎΠ΅ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ , Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΏΡΡΠΊΠ½ΠΎΠΉ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡΡ ΠΈ ΠΎΠ±ΠΎΡΡΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ, ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΎ ΡΠ°ΡΡΡΡΠΈΠΉ ΡΡΠ°ΡΠΈΠΊ ΠΈ Π½ΠΎΠ²ΡΠ΅ ΡΠ΅Π³ΠΌΠ΅Π½ΡΡ Π² ΡΠ΅ΡΠΈ Π·Π°ΡΡΠ°Π²ΡΡ Π²Π°Ρ ΠΏΠ΅ΡΠ΅ΠΎΡΠΌΡΡΠ»ΠΈΡΡ ΠΏΠΎΠ΄Ρ ΠΎΠ΄ ΠΊ ΠΠ, ΠΌΠΎΠ΄Π΅Π»Ρ Π΄Π°Π½Π½ΡΡ , ΠΌΠΎΠ΄Π΅Π»Ρ ΡΠ°Π·Π²Π΅ΡΡΡΠ²Π°Π½ΠΈΡ, Π° ΡΠ°ΠΊΠΆΠ΅ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅Ρ.
…
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΊΠΎΠ³Π΄Π° Ρ ΡΠΎΠ»ΡΠΊΠΎ Π·Π°Π΄ΡΠΌΠ°Π»Π°ΡΡ ΠΎ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠΈ, Π² ΠΌΠΎΠ΅ΠΌ ΠΏΠ΅ΡΠ²ΠΎΠ½Π°ΡΠ°Π»ΡΠ½ΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ ΡΠΆΠ΅ Π±ΡΠ»ΠΎ Π½Π° ΠΏΡΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ² Π±ΠΎΠ»ΡΡΠ΅. ΠΠ°ΡΠ΅ΠΌ ΠΏΡΠΈΡΠ»ΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ
P.S.
Π§ΠΈΡΠ°ΠΉΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ Π² Π½Π°ΡΠ΅ΠΌ Π±Π»ΠΎΠ³Π΅:
- Β«
ΠΠ°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ Kubernetes (ΠΎΠ±Π·ΠΎΡ ΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π΄ΠΎΠΊΠ»Π°Π΄Π°) Β»; - Β«
Π Π°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΡΡΠ°ΡΡΠΈΡΠΎΠ²ΠΊΠ°: ΠΌΡ Π²ΡΡ Π΄Π΅Π»Π°Π»ΠΈ Π½Π΅ ΡΠ°ΠΊ Β»; - Β«
Service Mesh: ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ Software Engineer ΠΎ ΡΠ°ΠΌΠΎΠΉ Ρ Π°ΠΉΠΏΠΎΠ²ΠΎΠΉ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ Β».
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com