본문 바로가기
Etc

락 경합을 줄이는 방법

by SuperDT 2025. 11. 2.

1) 락 범위 최소화

 

세분화된 락 사용

예: 전체 테이블이 아닌 개별 행(row)에 대한 락 사용

 

락을 잡는 시간을 최소화

락이 필요할 때만 걸고, 즉시 해제

 

2) 락 없는 동시성 제어 기법 활용

Optimistic Locking (낙관적 락)

먼저 데이터를 읽고, 변경이 없을 경우 업데이트 진행

충돌 발생 시 다시 처리

 

Read-Write Lock (읽기-쓰기 락)

여러 개의 읽기 작업을 동시에 수행할 수 있도록 Read 락과 Write 락을 분리

 

3) 데드락 방지

락 획득 순서를 정해 교착 상태 방지

타임아웃 설정을 통해 교착 상태 발생 시 자동 해제

 

4) 비동기 처리 및 병렬성 활용

병렬 처리 또는 비동기 방식(예: CompletableFuture, Future)을 활용해 대기 시간을 줄임

 

5) 데이터베이스 튜닝

인덱스 최적화, 인덱스를 활용해 불필요한 레코드 접근을 최소화

트랜잭션 크기 줄이기, 짧은 트랜잭션을 유지해 락 유지 시간을 최소화

 

'Etc' 카테고리의 다른 글

오프라인 환경에서 Eclipse & SVN 플러그인 설치  (0) 2025.11.09
MDD dynamic query  (0) 2025.11.09
Citrix Secure Access  (0) 2025.10.26
Design Patterns  (0) 2025.10.26
PostgreSQL FDW  (0) 2025.10.12