Changes between Version 6 and Version 7 of P8


Ignore:
Timestamp:
05/18/26 21:18:36 (8 days ago)
Author:
211171
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • P8

    v6 v7  
    604604}}}
    605605
    606 == Isolation Levels ==
    607 === Overview ===
    608 Isolation defines how concurrent transactions behave.
    609 
    610 Problems prevented:
    611 
    612 * Dirty reads
    613 * Non-repeatable reads
    614 * Phantom reads
    615 * Lost updates
    616 
    617 === Levels ===
    618 
    619 * READ COMMITTED – basic reads
    620 * REPEATABLE READ – RSVP consistency
    621 * SERIALIZABLE – full booking + budget validation
    622 
    623 === SQLAlchemy ===
    624 {{{
    625 db.session.execute(text('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE'))
    626 }}}
    627 
    628 == Connection Pooling ==
    629 === Why needed ===
    630 Pooling reuses DB connections instead of creating new ones per request.
    631 
    632606=== Flask Implementation ===
    633607{{{
     
    688662=== Explanation ===
    689663begin_nested() creates a database savepoint. If the band booking fails, only the operations after the savepoint are rolled back while earlier successful inserts remain intact.
     664
     665== Isolation Levels ==
     666=== Overview ===
     667Isolation defines how concurrent transactions behave.
     668
     669Problems prevented:
     670
     671* Dirty reads
     672* Non-repeatable reads
     673* Phantom reads
     674* Lost updates
     675
     676=== Levels ===
     677
     678* READ COMMITTED – basic reads
     679* REPEATABLE READ – RSVP consistency
     680* SERIALIZABLE – full booking + budget validation
     681
     682=== SQLAlchemy ===
     683{{{
     684db.session.execute(text('SET TRANSACTION ISOLATION LEVEL SERIALIZABLE'))
     685}}}
     686
     687== Connection Pooling ==
     688=== Why needed ===
     689Pooling reuses DB connections instead of creating new ones per request.
    690690
    691691=== Affected endpoints ===