Non ho usato io stesso persistent
, ma il Yesod book menziona che
Una cosa importante da notare è che tutto ciò che avviene all'interno di una singola chiamata a runSqlConn
viene eseguito in una singola transazione. Questo ha due importanti implicazioni:
Per molti database, commit di una transazione può essere un'attività costosa. Inserendo più passaggi in una singola transazione , è possibile accelerare notevolmente il codice.
Se un'eccezione è gettato in qualsiasi punto all'interno di una singola chiamata a runSqlConn
, tutte le azioni saranno eseguito il rollback (supponendo che il back-end ha il supporto di rollback).
Se questo ti dà garanzie di isolamento probabilmente dipende dal fatto che la data di back-end dà garanzie di isolamento per le transazioni.
Sai se esiste un modo per configurare il back-end da persistente? –