교수님께 공유하기 위해 작성한 매우 간단한 리뷰입니다.
Locking 위주로 핵심 내용만 빠르게 잡았습니다.
[논문 핵심 내용]
- Bamboo 프로토콜: 트랜잭션이 특정 조건 아래에서 Lock을 일찍 해제할 수 있도록
- 마지막 업데이트를 수행한 후 트랜잭션을 Retire 상태로 전환한다. Retire 상태에서는 다른 트랜잭션의 Lock 획득을 허용한다.
- 트랜잭션이 완료되면 Lock을 해제한다.
[Deadlock 관리 방법]
- 각 트랜잭션은 시작될 때 고유한 Timestamp가 할당된다. Timestamp가 낮을수록(먼저 시작한 트랜잭션일수록) 우선순위가 높다.
- Wound-Wait 기법: T1이 Lock을 보유하고 있을 때 T2가 Lock을 요청한다면
- 우선순위가 T1<T2: T2는 abort(Wound)
- T1>T2: T2는 대기(wait)한다.
Locking 관련 논문들은 주로 이런 내용으로 진행되는 것 같습니다.
개인적인 생각인데, 하고자 하는 바는 보통 비슷한 것 같고 해결법도 어느정도 일맥상통하는 바가 있는 것 같습니다. 기본 원칙을 지키면서 좀 더 빠르게 하고자 하니 그런 것 아닐까요...?
관련된 논문으로 Controlled Lock Violation 이라는 논문도 추천합니다.
참고
https://pages.cs.wisc.edu/~yxy/pubs/bamboo.pdf
'DB' 카테고리의 다른 글
[MySQL/InnoDB] Update와 Insert의 Locking, Blocking(대기) - 코드를 중심으로 (2) | 2024.09.30 |
---|---|
[논문리뷰] Controlled Lock Violation (SIGMOD’13) (2) | 2024.09.30 |
[MySQL] ERROR: Another process with pid ~ is using unix socket file. (0) | 2024.09.30 |
[MySQL] Rollback Pointer 기반의 MVCC 이해하기 - 코드 중심으로 (1) | 2024.02.06 |
[MySQL] 전문검색 FullText Search 기능 이용해 검색 구현하기 - AWS RDS innoDB 8.0.28 (0) | 2022.09.14 |