디비 락은 언제 걸리고 언제 기다리는가
분산락을 보다 보면 자연스럽게 다시 DB 락으로 돌아오게 된다. 결국 많은 동시성 문제는 데이터베이스 안의 한 줄, 혹은 특정 조건을 만족하는 데이터 묶음에서 터진다. Redis나 etcd 같은 외부 락을 쓰기 전에 DB가 이미 어떤 락을 걸고 있는지부터 알아야 한다.처음에는 DB 락을 “성능을 느리게 만드는 것” 정도로만 생각하기 쉽다. 그런데 실제로는 조금 다르다. DB 락은 정합성을 지키기 위해 일부 요청을 기다리게 만드는 장치다. 문제는 락이 있다는 사실이 아니라, 내가 어떤 범위를 얼마나 오래 잠그고 있는지 모른다는 데서 자주 생긴다.읽기는 항상 막히는 게 아니다먼저 헷갈리는 부분부터 정리해야 한다. 트랜잭션이 있다고 해서 모든 읽기와 쓰기가 서로 막히는 건 아니다. PostgreSQL과 Inn..
Development/Database
2026. 9. 1. 18:56