Estou usando PostgreSQL. Eu tentei construir um sistema que utilizasse exclusivamente transações SERIALIZABLE, na expectativa de que isso simplificasse o desenvolvimento do meu aplicativo. Eu marquei transações exclusivamente somente leitura com READ ONLY. No entanto, minhas gravações frequentemente entravam em conflito com SIReadLocks adquiridos por consultas somente leitura, transformando as gravações em novas tentativas contínuas. Desde então, fiz as consultas somente leitura serem executadas com READ COMMITTED e tudo funciona perfeitamente agora.
Agora eu me pergunto - se uma transação é SOMENTE LEITURA, digamos que se eu executar minha consulta no nível de isolamento REPEATABLE READ, quais anomalias de serialização poderiam ter acontecido e são evitadas por SERIALIZABLE (e seus custos associados)? Tenho dificuldade em pensar em um exemplo do benefício fornecido neste caso.