← Graph

Use Immediate Transactions for Rails

takeaway 2 connections

Rails wraps every write in a transaction and uses a connection pool of five by default, so SQLite's deferred-mode transactions constantly throw BusyException on concurrent writes. Setting `default_transaction_mode: immediate` in database.yml (sqlite3-ruby ≥ 1.6.9) lets SQLite's retry mechanism queue the BEGIN itself and eliminates the 500s.

type
recommendation
takeaway Use Immediate Transactions for Rails
about
The takeaway is about configuring immediate-mode transactions.
takeaway Use Immediate Transactions for Rails
from_talk
Fix #1 in the talk's performance journey.

Provenance

Read by
2 extractions