Changes between Version 48 and Version 49 of Transactions


Ignore:
Timestamp:
02/10/26 18:28:22 (3 weeks ago)
Author:
222039
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Transactions

    v48 v49  
    127127}}}
    128128
     129'''Што прави процедурата?'''
     130
     131Оваа stored procedure безбедно резервира седиште на лет, спречувајќи overbooking и двојна резервација на исто седиште. Користи row-level locking (FOR UPDATE) за да ја заштити "check-then-write" логиката, каде што прво се проверува капацитетот и бројот на резервации, па потоа се прави insert. Без транзакција, две паралелни сесии би можеле истовремено да ги поминат проверките и да го надминат капацитетот. \\
     132
     133Процедурата:
     1341. Го заклучува летот и го чита капацитетот на авионот
     1352. Го брои бројот на постоечки резервации (со lock)
     1363. Проверува дали има слободно место
     1374. Прави insert на новата резервација
     1385. Прави commit или rollback при грешка
     139
     140Заклучувањето осигурува дека проверката на капацитетот и insert-от се случуваат атомично, спречувајќи race conditions. Ако седиштето е веќе зафатено, unique constraint ќе предизвика rollback, враќајќи ја базата во конзистентна состојба.
     141
    129142===== Procedure Change Seat (атомична промена)
    130143Ако новото седиште е веќе земено, не смееме да го изгубиме старото -> промената мора да биде all or nothing.
     
    2812945. Го ажурира летот или прави rollback ако капацитетот е надминат
    282295
    283 Заклучувањето осигурува дека бројот на резервации и проверката на капацитетот се случуваат атомарно, спречувајќи race conditions.
     296Заклучувањето осигурува дека бројот на резервации и проверката на капацитетот се случуваат атомично, спречувајќи race conditions.