Even some fast-running migration statements need to acquire a an ACCESS_EXCLUSIVE_LOCK to update the table metadata. Acquiring this lock can be very tricky on high throughput databases, and it may transiently fail given a strict enough lock timeout. We should:
Plan generation: Define retry specs on some statements, where clients can determine if and how they want to retry
CLI: Implement a retry system that leverages the retry specs
Even some fast-running migration statements need to acquire a an ACCESS_EXCLUSIVE_LOCK to update the table metadata. Acquiring this lock can be very tricky on high throughput databases, and it may transiently fail given a strict enough lock timeout. We should:
Plan generation: Define retry specs on some statements, where clients can determine if and how they want to retry CLI: Implement a retry system that leverages the retry specs