Skip to content

[week 6] Concurrency Control#12

Open
devupkim wants to merge 1 commit intomainfrom
week6/taehyun
Open

[week 6] Concurrency Control#12
devupkim wants to merge 1 commit intomainfrom
week6/taehyun

Conversation

@devupkim
Copy link
Copy Markdown
Member

@devupkim devupkim commented Mar 24, 2026

📝 Description

동시성 제어의 필요성부터, Serializability 개념, 구현방법(Lock, MVCC)에 대해 알아본다

🚀 Key Learning

  • 동시성 제어 필요성
  • Serializability 및 Schedule
  • Conflict Serializability
  • DBMS의 실제 접근 방식
  • Lock 기반 동시성 제어 (S/X Lock, 2PL, Deadlock)
  • InnoDB Lock 종류 (Record, Gap, Next-Key) 및 특징
  • Lock의 한계 (Contention, Blocking, 성능 저하)
  • MVCC 개념 및 동작 원리 (Undo Log, Read View)
  • MVCC 버전 관리 방식 및 한계
  • DB별 MVCC 구현 차이 (MySQL, PostgreSQL, Oracle)

Good To Have

  • JPA Locking 예시
  • 실무에서의 적용

Comment on lines +140 to +149
## 3.2 MVCC 기반 (Multi-Version Concurrency Control)
> 충돌을 막지 말고, 애초에 안 생기게 하자
- 핵심 : 데이터를 여러 버전을 두어 서로 간섭이 없게 하자
- 구분 : 낙관적 락 (Optimistic Locking)
- 특징
- Read가 Block되지 않음
- 성능 좋음
- 단점
- 구현 복잡한 편
- 완전한 Serializable 보장은 아님
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MVCC를 낙관적 락으로 분류했는데, 엄밀히는 MVCC와 낙관적 락은 다른 개념입니다
MVCC는 버전 관리로 읽기 충돌을 회피하는 것이고 낙관적 락은 충돌을 사후에 감지해서 롤백하는 방식이에용
동일시하면 오해 생길 수 있다는 부분

Copy link
Copy Markdown
Member

@jaeunda jaeunda left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 고생 많으셨습니다~

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants