Table Lock

멀티 트랜잭션 환경에서 데이터베이스의 일관성무결성을 유지하기 위해서 트랜잭션의 순차적 진행을 보장할 수 있어야 한다. 이를 위해 Lock 기술이 등장했다.

Shared Lock(또는 Read Lock)

  • 원하는 데이터에 Lock을 걸었지만 다른 세션에서 읽을 수 있다.
  • Shared Lock은 허용되지만, Exclusive Lock은 불가능하다.
  • 데이터를 다른 사용자가 동시 읽기만 가능하되 변경은 불가능하다.

Exclusive Lock(또는 Write Lock)

  • Lock이 해제되기 전까지는 다른 세션에서 읽기, 쓰기 불가능하다.
  • Share Lock, Exclusive Lock 불가능하다.
  • 데이터 변경 시 사용되며, 트랜잭션이 완료될 때까지 유지된다.

PostgreSQL Table Lock 호환성

  • Table Lock Mode에 따라 공존할 수 있는 Lock이 있고, Conflict가 나는 Lock이 있다.