기술용어/데이터베이스

동시성제어(Concurrent Control)

아이티신비 2024. 6. 12. 09:00

데이터베이스의 무결성 확보를 위한, 동시성 제어(Concurrency)

정의
  • 다수의 트랜잭션이 동일한 데이터에 동시 접근하여도 각 세션이 독립적인 세션을 보장하는 처리기법
  • 다중 사용자 환경을 지원하는 데이터 베이스 시스템에서 여러 트랜잭션들이 성공적으로 동시에 실행될 수 있도록 지원하는 기능
  • 다중 사용자 환경을 지원하는 DB system의 경우 필수적으로 지원해야 하는 기능으로 병행제어라고도 함
필요성
  • 갱신손실(Lost Update) : T1와 T2의 동시 갱신으로 갱신이 무효가 됨
  • 불일치(Inconsistency) : 모순성, 데이터들이 상호 일치되지 않음
  • 연쇄복귀(Casecading Rollback) : 트랜잭션을 취소하는 경우 취소불가상태
주요기능
  • Locking : 2Phace Lock 을 통한 데이터 무결성 보장, Lock과 Unlock 단계
  • Timestamp 기법 : 시스템에 부여된 순서에 따라 접근(Logical Counter)
  • Validation(낙관적 검증)기법 : 트랜잭션 종료 시까지 기다렸다가 일괄적으로 검사, 트랜잭션 종료 시 직렬성이 검증되면 데이터베이스에 반영
목적
  • 트랜잭션의 직렬성 보장
  • 공유도 최대, 응답 시간 최소, 시스템 활동의 최대 보장
  • 데이터의 무결성 및 일관성 보장
동시성 제어 기법
  • 로깅기법
  • 타임스탬프 순서에 기반을 둔 동시성 제어기법
  • 다중버전 동시성 제어 기법
  • 검증(낙관적) 동시성 제어 기법
문제점
  • 갱신손실 : 트랜잭션들이 동일 데이터를 동시에 갱신 할 경우 발생
  • 현황파악오류 : 트랜잭션의 중간 수행결과를 다른 트랜잭션이 참조함으로써 발생하는 오류
  • 모순성 : 두 트랙잭션이 동시에 실행할 때 DB가 일관성이 없는 상태로 남는 문제
  • 연쇄복귀 : 복수의 트랜잭션이 데이터 공유시 특정 트랜잭션이 처리를 취소할 경우 다른 트랜잭션이 처리한 부분에 대해 취소 불가능

 



 

공감과 댓글은 아이티신비에게 큰 힘이 됩니다.

블로그 글이 유용하다면 블로그를 구독해주세요.♥