데이터베이스-동시성 제어CS/CS2024. 2. 6. 12:57
Table of Contents
데이터베이스-동시성 제어란?
<aside> 📌 Concurrency Control. 여러 사용자가 데이터를 동시에 액세스하는 것처럼 보이지만 내부적으로는 하나씩 실행되도록 트랜잭션을 직렬화하는 것. 동시성을 제어할 수 있도록 하기 위해 모든 DBMS가 공통적으로 Lock 기능을 제공
- 트랜잭션의 직렬성 보장
- 공유도 극대화, 응답 시간 최소화, 시스템 활용의 극대화
- 데이터의 무결성과 일관성 보장 </aside>
동시성 제어를 하지 않은 경우 발생하는 문제점
동시성 제어 기법의 종류
락(lock)
- locking이란 트랜잭션들이 같은 데이터에 대해 동시에 접근하지 못하도록 제어하는 것
- 트랜잭션이 데이터에 Read나 Write 연산을 수행하려면 반드시 lock을 해주고, 수행이 끝나면 unlock을 해주어야 함
- 공유락 (shared lock)
- 트랜잭션이 읽기를 할때 사용하는 락 (쓰기 X)
- Read는 서로 영향을 주지 않기 때문에 서로 다른 트랜잭션이 같은 데이터에 대해 동시에 shared lock을 설정 가능
- 배타락(exclusive lock)
- 트랜잭션이 읽고 쓰기를 할 때 사용하는 락
- 트랜잭션이 락을 허용받지 못하면 대기 상태가 됨
- 다른 트랙잭션에서의 Shared Lock, Exclusvie Lock 은 허용하지 않음
데드락(Deadlock, 교착 상태)
두개 이상의 트랜잭션이 각각 자신의 데이터에 대하여 락을 획득하고 상대방 데이터에 대하여 락을 요청하면 무한 대기 상태에 빠지는 경우.
해결방법 : 일반적으로 두 트랜젝션중 하나를 중지시키고 나머지 하나를 실행하게 함.
데이터베이스-동시성 제어
데이터베이스-동시성 제어란?
<aside> 📌 Concurrency Control. 여러 사용자가 데이터를 동시에 액세스하는 것처럼 보이지만 내부적으로는 하나씩 실행되도록 트랜잭션을 직렬화하는 것. 동시성을 제어할 수 있도록 하기 위해 모든 DBMS가 공통적으로 Lock 기능을 제공
- 트랜잭션의 직렬성 보장
- 공유도 극대화, 응답 시간 최소화, 시스템 활용의 극대화
- 데이터의 무결성과 일관성 보장 </aside>
동시성 제어를 하지 않은 경우 발생하는 문제점
동시성 제어 기법의 종류
락(lock)
- locking이란 트랜잭션들이 같은 데이터에 대해 동시에 접근하지 못하도록 제어하는 것
- 트랜잭션이 데이터에 Read나 Write 연산을 수행하려면 반드시 lock을 해주고, 수행이 끝나면 unlock을 해주어야 함
- 공유락 (shared lock)
- 트랜잭션이 읽기를 할때 사용하는 락 (쓰기 X)
- Read는 서로 영향을 주지 않기 때문에 서로 다른 트랜잭션이 같은 데이터에 대해 동시에 shared lock을 설정 가능
- 배타락(exclusive lock)
- 트랜잭션이 읽고 쓰기를 할 때 사용하는 락
- 트랜잭션이 락을 허용받지 못하면 대기 상태가 됨
- 다른 트랙잭션에서의 Shared Lock, Exclusvie Lock 은 허용하지 않음
데드락(Deadlock, 교착 상태)
두개 이상의 트랜잭션이 각각 자신의 데이터에 대하여 락을 획득하고 상대방 데이터에 대하여 락을 요청하면 무한 대기 상태에 빠지는 경우.
해결방법 : 일반적으로 두 트랜젝션중 하나를 중지시키고 나머지 하나를 실행하게 함.
'CS > CS' 카테고리의 다른 글
[algorithm] 정렬(버블정렬, 선택정렬, 삽입정렬, 퀵정렬, 병합정렬, 힙정렬, 기수정렬, 계수정렬) (1) | 2024.05.15 |
---|---|
[DB] 트렌젝션과 ACID (0) | 2024.01.30 |
[DB] Index란? (0) | 2024.01.18 |
[CS] 엣지 케이스와 코너 케이스는 뭘까?(feat.. 조금 더 안정성 있는 서비스를 향하여..) (0) | 2024.01.16 |
www.google.com을 주소창에 쳤을 때 화면이 나오기까지의 과정 (0) | 2024.01.01 |
@Yanako :: Yana's coding story였는데요, 우당탕탕 개발일지가 맞는것같
야나의 코딩 일기장 :) #코딩블로그 #기술블로그 #코딩 #조금씩,꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!