면접 - 데이터베이스

개발자 면접 질문 - 트랜잭션 병행 처리시 문제점

snow-line 2020. 12. 4. 16:55
반응형

1. 트랜잭션 병행 처리시 문제점

 - 갱신 내용 손실 : 동시에 하나의 데이터가 갱신될 때 하나의 갱신이 누락되는 경우

 - 현황 파악 오류 : 하나의 데이터 갱신이 끝나지 않은 시점에서 다른 트랜잭션이 해당 데이터를 조회하는 경우

 - 모순성 : 두 트랜잭션이 동시에 실행될 때 데이터베이스가 일관성이 없는 모순된 상태로 남는 문제

 - 연쇄 복귀 : 두 트랜잭션이 하나의 레코드를 갱신할 때 하나의 트랜잭션이 롤백하면 다른 하나의 트랜잭션도 롤백되는 문제

 

2. 병행 처리 문제 방지 방법

 - 로킹 제어 기법을 사용한다. (Locking)

 - 어떤 트랜잭션이 특정 DB의 데이터를 사용할 때 DB의 일정 부분을 Lock 시키고 트랜잭션이 완료될때 해당 부분을 Unlock 시키는 방법

 

3. 로킹 단위를 크게했을 때와 작게 했을 때의 차이점

 - 로킹 단위가 크면 그만큼 관리가 쉽지만 병행성이 떨어진다.

 - 로킹 단위가 작으면 그만큼 관리가 어렵고 오버헤드가 증가하지만 병행성이 올라간다.

 

4. 로킹 제어가 일으킬 수 있는 문제점

 - 트랜잭션의 직렬화 가능성이 높아진다.

 - 데드락이 발생할 수 있다.

반응형