DB

[논문리뷰] Releasing Locks As Early As You Can: Reducing Contention of Hotspots by Violating Two-Phase Locking (SIGMOD ’21)

폭풍저그김탁구 2024. 9. 30. 11:28

교수님께 공유하기 위해 작성한 매우 간단한 리뷰입니다.

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