πŸ”’ ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ vs пСссимистичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°: ΠΊΠ°ΠΊ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΈ Π½Π΅ ΠΏΠΎΠΆΠ°Π»Π΅Ρ‚ΡŒ

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π½Π°Ρ‡Π½ΡƒΡ‚ ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅? Π‘ΠΊΠΎΡ€Π΅Π΅ всСго β€” потСря ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ошибки. Π§Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, Π² систСмах ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ: пСссимистичСскиС β€” ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌ Π½Π΅ Π΄Π°ΡŽΡ‚ ΡΠ»ΡƒΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΈ оптимистичСскиС β€” ΠΊΠΎΠ³Π΄Π° систСма провСряСт ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π΅Π΄ сохранСниСм. РазбираСмся, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΈ какая ΠΈΠ· Π½ΠΈΡ… Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄ΠΎΠΉΠ΄Π΅Ρ‚ Π²Π°ΡˆΠ΅ΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ.

Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΡ… прилоТСниях, Π³Π΄Π΅ нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ процСссов ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°), ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ….

Если этого Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ ошибки:

  • ΠŸΠΎΡ‚Π΅Ρ€Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄Π½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π·Π°Ρ‚ΠΈΡ€Π°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ΅).
  • Π§Ρ‚Π΅Π½ΠΈΠ΅ Π½Π΅Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… (ΡƒΡΡ‚Π°Ρ€Π΅Π²ΡˆΠΈΡ…) Π΄Π°Π½Π½Ρ‹Ρ….
  • НСоТиданныС Π΄Π°Π½Π½Ρ‹Π΅ Π² Π²Ρ‹Π±ΠΎΡ€ΠΊΠ΅ (Ρ„Π°Π½Ρ‚ΠΎΠΌΠ½Ρ‹Π΅ записи).

Π§Ρ‚ΠΎΠ±Ρ‹ этого ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π±Ρ‹Π²Π°ΡŽΡ‚ пСссимистичСскими ΠΈ оптимистичСскими.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ пСссимистичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

Π­Ρ‚ΠΎ стратСгия, которая исходит ΠΈΠ· ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Β«Π›ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°Ρ‚ΡŒΡΡ, Ρ‡Π΅ΠΌ ΠΏΠΎΠΆΠ°Π»Π΅Ρ‚ΡŒΒ». ΠŸΠ΅ΡΡΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ скорСС всСго случится, ΠΈ поэтому Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ Π·Π°Ρ€Π°Π½Π΅Π΅, Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ начнСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠŸΠ΅ΡΡΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ пСссимистичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°:

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.
  • БистСма отправляСт Π² Π±Π°Π·Ρƒ запрос Β«Π²Ρ‹Π±Π΅Ρ€ΠΈ запись ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° с id = 101 ΠΈ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉ Π΅Π΅ для Π΄Ρ€ΡƒΠ³ΠΈΡ… Π½Π° врСмя рСдактирования»:
SELECT * FROM customers WHERE id = 101 FOR UPDATE
  • Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΡƒΡŽ запись. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π½ΠΈΠΊΡ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Π½Π΅ смоТСт Π΅Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A Π½Π΅ Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, e-mail ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°.

ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ B:

  • Π’ΠΎΠΆΠ΅ пытаСтся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ этот ΠΆΠ΅ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° (id = 101).
  • БистСма отправляСт Ρ‚ΠΎΡ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ ΠΆΠ΅ запрос:
SELECT * FROM customers WHERE id = 101 FOR UPDATE

Но Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΈΡ‚, Ρ‡Ρ‚ΠΎ запись ΡƒΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ A, ΠΈ Π·Π°Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ B ΠΆΠ΄Π΅Ρ‚, ΠΏΠΎΠΊΠ° A Π·Π°ΠΊΠΎΠ½Ρ‡ΠΈΡ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ, Π»ΠΈΠ±ΠΎ запрос отвалится ΠΏΠΎ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρƒ. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Β«ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ», систСма фиксируСт измСнСния Π² Π±Π°Π·Π΅ ΠΈ освобоТдаСт Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ.

ПослС этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ B большС Π½Π΅ блокируСтся. Π•Π³ΠΎ запрос отправляСтся снова, запись загруТаСтся ΡƒΠΆΠ΅ с Π½ΠΎΠ²Ρ‹ΠΌΠΈ измСнСниями, ΠΈ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒ своС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° пСссимистичной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ:

  • Π“Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π·Π°Ρ€Π°Π½Π΅Π΅ β€” Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.
  • ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для критичСски Π²Π°ΠΆΠ½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π±Π°Π½ΠΊΠΎΠ², систСм бронирования, ΡƒΡ‡Π΅Ρ‚Π° Ρ‚ΠΎΠ²Π°Ρ€ΠΎΠ².

НСдостатки:

  • Π‘Π½ΠΈΠΆΠ°Π΅Ρ‚ ΠΊΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ. Если ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» запись, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ смогут Π΄Π°ΠΆΠ΅ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΅Π΅ Π΄ΠΎ освобоТдСния.
  • ΠŸΡ€ΠΈ высокой Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ (ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ) ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ застоям ΠΈ Π²Π·Π°ΠΈΠΌΠ½Ρ‹ΠΌ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ (Π΄Π΅Π΄Π»ΠΎΠΊΠ°ΠΌ), ΠΊΠΎΠ³Π΄Π° процСссы ΠΆΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π° бСсконСчно.
  • ΠŸΡ€ΠΈ большом числС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… запросов ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ сильно ΡΠ½ΠΈΠΆΠ°Ρ‚ΡŒΡΡ.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ΅ΡΡΠΈΠΌΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ:

  • Одни ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ часто Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ сразу нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ.
  • Π’Π°ΠΆΠ½ΠΎ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ Π΄Π°ΠΆΠ΅ ΠΌΠ°Π»Π΅ΠΉΡˆΠΈΡ… ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².
  • ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ… нСдопустима (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ финансовых опСрациях).
πŸ’» Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
Π‘ΠΎΠ»ΡŒΡˆΠ΅ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Ρ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»ΠΎΠ² Π²Ρ‹ Π½Π°ΠΉΠ΄Π΅Ρ‚Π΅ Π½Π° нашСм Ρ‚Π΅Π»Π΅Π³Ρ€Π°ΠΌ-ΠΊΠ°Π½Π°Π»Π΅ Β«Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста»

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ оптимистичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

Π­Ρ‚Π° стратСгия основана Π½Π° ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ, ΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

ВмСсто Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ сразу Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ (ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ пСссимистичной Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅), систСма Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ свободный доступ ΠΈ провСряСт, Π½Π΅ измСнились Π»ΠΈ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ сохранСния.

ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ оптимистичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°:

1️⃣ Π§Ρ‚Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. БистСма Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ вмСстС с Π½ΠΈΠΌΠΈ β€” Π½ΠΎΠΌΠ΅Ρ€ вСрсии (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, version = 1).
  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ B Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚ΠΎ ΠΆΠ΅ самоС: Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ρ‚ΠΎΠΆΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ version = 1.

2️⃣ Π Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅

Оба ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅. НапримСр, A мСняСт e-mail, B мСняСт имя.

3️⃣ ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния

  • ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ».
  • БистСма провСряСт: «Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ A Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠ» ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ, Π±Ρ‹Π»Π° version = 1. БСйчас Π² Π±Π°Π·Π΅ Ρ‚ΠΎΠΆΠ΅ version = 1Β»?

Если вСрсии ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚:

  • БистСма Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
  • ЗаписываСт Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.
  • ΠŸΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Π²Π΅Ρ€ΡΠΈΡŽ Π½Π° 1 (Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ version = 2).

4️⃣ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠΏΡ€ΠΈ сохранСнии ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, сдСланных Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ

  • Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ B Ρ‚ΠΎΠΆΠ΅ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Β«Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒΒ» для своих ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
  • БистСма провСряСт: «Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ B Π·Π°Π³Ρ€ΡƒΠΆΠ°Π» ΠΏΡ€ΠΎΡ„ΠΈΠ»ΡŒ, Π±Ρ‹Π»Π° вСрсия 1. Какая вСрсия сСйчас имССтся Π² Π±Π°Π·Π΅?Β»
  • ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ вСрсии Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ (Π² Π±Π°Π·Π΅ ΡƒΠΆΠ΅ version = 2), систСма ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» Π΄Π°Π½Π½Ρ‹Π΅ Ρ€Π°Π½ΡŒΡˆΠ΅.
  • Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. БистСма отклоняСт запрос ΠΈ сообщаСт ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ: Β«Π—Π°ΠΏΠΈΡΡŒ измСнилась с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π°Ρ‡Π°Π»Π° рСдактирования. ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ страницу ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ снова».

ΠŸΠ»ΡŽΡΡ‹ оптимистичСской Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ:

  • Высокая ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈΠ·ΠΌ β€” Π½ΠΈΠΊΡ‚ΠΎ Π½Π΅ ΠΆΠ΄Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ.
  • Π”Π΅Π΄Π»ΠΎΠΊΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ β€” вСдь Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΠΎΡ‡Ρ‚ΠΈ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ.
  • ΠžΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ записи с ΠΎΠ±Ρ‰ΠΈΠΌ доступом Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ часто, Π° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ Ρ€Π΅Π΄ΠΊΠΎ (Ρ„ΠΈΠ΄Ρ‹ соцсСтСй, ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹ ΠΈ Π΄Π°ΡˆΠ±ΠΎΡ€Π΄Ρ‹).

ΠœΠΈΠ½ΡƒΡΡ‹:

  • Если нСскольким ΡŽΠ·Π΅Ρ€Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ часто Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡ‚ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅ β€” ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ станут частыми, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ придСтся постоянно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ страницу ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ.
  • Иногда Ρ€Π°Π±ΠΎΡ‚Π° Π±ΡƒΠ΄Π΅Ρ‚ потСряна Π² послСдний ΠΌΠΎΠΌΠ΅Π½Ρ‚, Ссли ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ успСл ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ измСнСния Ρ€Π°Π½ΡŒΡˆΠ΅.

Π“Π΄Π΅ Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΎΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ:

  • ORM-Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠΈ (Hibernate, Entity Framework ΠΈ Π΄Ρ€.)
  • ΠœΠΈΠΊΡ€ΠΎΡΠ΅Ρ€Π²ΠΈΡΡ‹ ΠΈ распрСдСлСнныС систСмы, Π³Π΄Π΅ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ обходится Π΄ΠΎΡ€ΠΎΠ³ΠΎ.

Π›ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ ΠΏΡ€ΠΈ использовании ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Когда Π²Ρ‹ примСняСтС ΠΏΠ΅ΡΡΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ, Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π±Π»ΠΎΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ. Π’ΠΎΡ‚ нСсколько совСтов:

1️⃣ Π”Π΅Ρ€ΠΆΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ мСньшС ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π§Π΅ΠΌ дольшС удСрТиваСтся Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, Ρ‚Π΅ΠΌ большС сниТаСтся ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π­Ρ‚ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ риск ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠΈ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ.

2️⃣ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΡ…Π²Π°Ρ‚ΠΎΠΌ

Π‘Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ. НапримСр, Ссли ΠΌΠΎΠΆΠ½ΠΎ β€” Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅, Π° Π½Π΅ всю Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ количСство ситуаций, ΠΊΠΎΠ³Π΄Π° Ρ€Π°Π·Π½Ρ‹Π΅ процСссы ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ.

3️⃣ Π Π΅Π°Π»ΠΈΠ·ΡƒΠΉΡ‚Π΅ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ (для оптимистичСской Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ)

ΠŸΡ€ΠΈ оптимистичСской Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅ всСгда сущСствуСт риск, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ ΡƒΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ» ΠΈΡ… Ρ€Π°Π½ΡŒΡˆΠ΅. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ способно ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π·Π°Π½ΠΎΠ²ΠΎ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ.

4️⃣ Π‘Π»Π΅Π΄ΠΈΡ‚Π΅ ΠΈ настраивайтС ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈ Π»ΠΎΠ³ΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Ρ‚ΡŒ случаи, ΠΊΠΎΠ³Π΄Π° ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ слишком Π΄ΠΎΠ»Π³ΠΎΠ΅ ΠΈΠ»ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π²Π·Π°ΠΈΠΌΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ воврСмя Π²Ρ‹ΡΠ²ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹.

5️⃣ Π’Ρ‹Π±ΠΈΡ€Π°ΠΉΡ‚Π΅ ΡΡ‚Ρ€Π°Ρ‚Π΅Π³ΠΈΡŽ Π² зависимости ΠΎΡ‚ Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€Π° Π΄Π°Π½Π½Ρ‹Ρ…

  • Если ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ записи часто ΠΎΠ±Π½ΠΎΠ²Π»ΡΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ, пСссимистичСская Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ бСзопаснСС, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с записью Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ.
  • Если обновлСния Ρ€Π΅Π΄ΠΊΠΈΠ΅ ΠΈΠ»ΠΈ распрСдСлСны ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ записями, Π»ΡƒΡ‡ΡˆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ β€” ΠΎΠ½Π° обСспСчит Π±ΠΎΠ»Π΅Π΅ Π²Ρ‹ΡΠΎΠΊΡƒΡŽ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ мСньшС ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ².

ПодвСдСм ΠΈΡ‚ΠΎΠ³ΠΈ

НапослСдок прСдставим всС Π½ΡŽΠ°Π½ΡΡ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² ΠΎΠ΄Π½ΠΎΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅:

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΉ ΠžΠΏΡ‚ΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠŸΠ΅ΡΡΠΈΠΌΠΈΡΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°
ИдСя ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ Ρ€Π΅Π΄ΠΊΠΎ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ вСроятны, Π»ΡƒΡ‡ΡˆΠ΅ Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ
Когда происходит ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ сохранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π’ ΠΌΠΎΠΌΠ΅Π½Ρ‚ чтСния Π΄Π°Π½Π½Ρ‹Ρ…
Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π”Π°Π½Π½Ρ‹Π΅ Ρ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π±Π΅Π· Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΏΡ€ΠΈ сохранСнии провСряСтся вСрсия ΠŸΡ€ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠΈ ставится Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°, ΠΏΠΎΠΊΠ° Π΅Π΅ Π½Π΅ снимут β€” Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ запись
ΠšΠΎΠ½ΠΊΡƒΡ€Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠžΡ‡Π΅Π½ΡŒ высокая: мноТСство ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌΠΈ ΠΈ Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Низкая: Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠ΅ΡˆΠ°Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ
Риск ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ΡΡ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚ записи ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹: Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π°Ρ€Π°Π½Π΅Π΅ Π·Π°Ρ‰ΠΈΡ‰Π°Π΅Ρ‚ ΠΎΡ‚ этого
ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Часто трСбуСтся, Ссли ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠ΅Π½ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ ΠŸΠΎΡ‡Ρ‚ΠΈ Π½Π΅ трСбуСтся, Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΡƒΡΠΏΠ΅ΡˆΠ½Π°
Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ·-Π·Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ НСт ΠœΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ: ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅ освобоТдСния Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ
ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для: Много чтСния, ΠΌΠ°Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ: Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠ°, ΠΎΡ‚Ρ‡Π΅Ρ‚Ρ‹, соцсСти ЧастыС измСнСния ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…: финансовыС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, инвСнтаризация
ΠŸΠ»ΡŽΡΡ‹ Высокая ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Π½Π΅Ρ‚ Π΄Π΅Π΄Π»ΠΎΠΊΠΎΠ² Гарантия Π·Π°Ρ‰ΠΈΡ‚Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, простая Π»ΠΎΠ³ΠΈΠΊΠ° ΠΏΡ€ΠΈ сохранСнии
ΠœΠΈΠ½ΡƒΡΡ‹ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ Π½Π° этапС сохранСния ΠŸΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π΅Π΄Π»ΠΎΠΊΠΈ, низкая ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΡƒΠ΅ΠΌΠΎΡΡ‚ΡŒ

Π’ΠΠšΠΠΠ‘Π˜Π˜

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ вакансию
AppSec BP
ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Flutter Developer
ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования
Lead C++ Software Engineer (Gameplay)
ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ собСсСдования

Π›Π£Π§Π¨Π˜Π• БВАВЬИ ПО Π’Π•ΠœΠ•

eFusion
08 января 2020

11 Ρ‚ΠΈΠΏΠΎΠ² соврСмСнных Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…: ΠΊΡ€Π°Ρ‚ΠΊΠΈΠ΅ описания, схСмы ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π‘Π”

Π›ΡŽΠ±Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π³Π΄Π΅-Ρ‚ΠΎ хранятся. Π‘ΡƒΠ΄ΡŒ это ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ Π²Π΅Ρ‰Π΅ΠΉ ΠΈΠ»ΠΈ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π² *nix. По...
Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° программиста
29 июня 2017

5 сайтов для оттачивания Π½Π°Π²Ρ‹ΠΊΠΎΠ² написания SQL-запросов

Одним ΠΈΠ· ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Π½Π°Π²Ρ‹ΠΊΠΎΠ² ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ… являСтся ΡƒΠΌΠ΅Π½ΠΈΠ΅ ΠΏΠΈΡΠ°Ρ‚ΡŒ...
admin
23 фСвраля 2017

SQL Π·Π° 20 ΠΌΠΈΠ½ΡƒΡ‚

ΠŸΡ€Π΅Π΄Π»Π°Π³Π°Π΅ΠΌ Π²Π°ΡˆΠ΅ΠΌΡƒ вниманию ΡΡ‚Π°Ρ‚ΡŒΡŽ с ΠΊΡ€ΠΈΡ‡Π°Ρ‰ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ "SQL Π·Π° 20 ΠΌΠΈΠ½ΡƒΡ‚". К...