isolation 수준은 anomaly와 retry 비용을 함께 본다

가장 강한 이름을 고르는 대신 실제 경쟁 패턴과 transaction 길이, conflict abort를 재실행할 수 있는지에 맞춰 제어 수단을 선택한다.

막아야 할 실제 경쟁 현상은 무엇인가?
LOST UPDATE

Version 조건

UPDATE의 이전 version 일치와 row count로 충돌을 잡는다.

PREDICATE RACE

Lock 또는 Serializable

범위 조건의 동시 삽입·변경을 직렬화한다.

LONG TX

Scope 축소

외부 I/O를 제거하고 lock 보유 시간을 줄인다.

ABORT

Bounded retry

command idempotency가 있을 때 conflict를 처음부터 재실행한다.

핵심: isolation은 anomaly를 줄이는 대신 대기와 abort를 늘리므로 retry 가능한 command 설계와 한 쌍이다.