Provo a scrivere il codice del database per assicurarmi che non sia soggetto alle condizioni di gara, per assicurarmi di aver bloccato le righe o le tabelle corrette. Ma spesso mi chiedo: il mio codice è corretto? È possibile forzare a manifestare eventuali condizioni di gara esistenti? Voglio essere sicuro che se si verificano in un ambiente di produzione la mia applicazione farà la cosa giusta.
In genere so esattamente quale query simultanea può causare un problema, ma non ho idea di come costringerli a correre contemporaneamente per vedere se si verifica il comportamento corretto (ad esempio ho usato il tipo corretto di blocco), che gli errori giusti sono gettato, ecc.
Nota: utilizzo PostgreSQL e Perl, quindi se non è possibile rispondere in modo generico a questa, probabilmente dovrebbe essere ricodificato come tale.
Aggiornamento: lo preferirei se la soluzione fosse programmatica. In questo modo posso scrivere test automatici per assicurarmi che non ci siano regressioni.