본문 바로가기
반응형

2

슬기로운 Concurrency-safety Lock 여는 글 안정적인 트랜잭션 처리를 위해서는 락이 필요할 때가 있습니다. 그런데 이 락도 남용 되거나 고민이 충분히 되지 않은 상태에 쓰게 되면 장애 포인트나 성능의 병목이 될 수 있습니다. 그렇다면 어떻게 락을 쓰면 좋을까요? Pessimistic lock(비관적 락) 데이터베이스 트랜잭션에서 비관적 락에는 크게 배타 락(X Lock, Exclusive Lock) 과 공유 락(S Lock, Shared Lock)이 있습니다. 배타 락은 달리 쓰기 잠금이라고 하는데, 특정 자원의 안정적인 변경을 위해 점유하고 다른 트랜잭션이 접근을 막습니다. 공유 락은 읽기 잠금 이라고도 불리는데, 특정 자원에 대해 읽기 잠금이 걸린 상태일 때 다른 트랜잭션도 읽기 잠금을 걸 수 있지만 이미 읽기 잠금이 걸린 자원에 대해.. 2022. 11. 27.
트랜잭션과 격리 레벨 그리고 Lock에 대하여 * 학습에 도움을 주신 스티디원 오길환님께 감사드립니다. 트랜잭션(Transaction) 위키피디아에 설명하는 데이터베이스 트랜잭션 데이터베이스 관리 시스템 또는 유사한 시스템에서 상호작용의 단위입니다. 여기서 유사한 시스템이란 트랜잭션이 성공과 실패가 분명하고 상호 독립적이며, 일관되고 믿을 수 있는 시스템을 의미합니다. 이 말인 즉슨 클라이언트가 서버에 요청을 보낸다고 했을 때, 그 요청 자체를 하나의 트랜잭션이라고 볼 수 있다. 요청은 하나지만 요청을 받는 서버는 여러 단계를 거쳐 처리할 수 있고 그 과정에서 성공하거나, 실패할 수 있습니다. 이러한 트랜잭션이 가지는 특성은 다음과 같습니다. 트랜잭션의 특성 원자성(Atomicity): 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 .. 2020. 12. 19.
반응형