분산 락이 필요한 이유
35
작성한 질문수 7
안녕하십니까.
먼저, 동시성 문제 강의를 알기 쉽게 설명해주셔서 너무 감사합니다!
다름이 아니라 "낙관적, 비관적 락으로 충분한데 꼭 분산 락이 필요한가요?" 라는 부분에서 질문 드립니다.
낙관적, 비관적 락으로 해결할 수 없는 상황을 말씀해주시며 설명해주시는데, 해당 상황이 현재 데이터베이스가 아닌 외부에 존재하는 데이터를 대상으로 정합성, 무결성을 전제로 설명하시는 거 맞을까요?
그러면 결국 분산 락 사용의 이유는 분산 환경에서 낙관적, 비관적 락은 데이터베이스 외부에 대한 데이터 관리가 불가능하기 때문에 필요하다고 생각하면 될까요?
답변 1
0
정리하신 내용이 맞습니다.
낙관적, 비관적 락으로 해결할 수 없는 상황은 데이터베이스가 보장하는 원자성의 범위를 벗어나는 지점에서 발생합니다.
말씀하신 대로, DB 락은 특정 DB 인스턴스 내부의 데이터 정합성만 책임집니다. 외부에 존재하는 데이터(타 서비스 API, 외부 스토리지 등)에 대해서는 무력합니다.
비관적 락의 한계
내 DB의 특정 행을 잠궈도 외부 API가 실행되는 것 자체를 막지는 못합니다.
낙관적 락의 한계
DB 반영 직전에 충돌을 감지하더라도, 이미 외부 시스템에 명령이 전달되었다면 되돌리기 어렵습니다.
분산 환경에서 분산 락이 필요한 이유는 물리적으로 분리된 여러 프로세스 사이의 실행 순서를 강제할 전역적인 중재자가 필요하기 때문입니다.
결론: DB가 모든 것을 통제할 수 없으니, 분산 락으로 어플리케이션 계층 위에서 질서를 잡아주는 역할을 합니다.
으아 ㅠ 답변이 늦어서 너무 죄송합니다. 강의 첫 질문이라 제가 알림을 놓쳤습니다.
🙇♂🙇♂
질문 주셔서 감사합니다.
다음에는 더 빨리 답변할 수 있도록 하겠습니다.
죄송합니다.
코드자료 활용 깃
1
30
2
섹션 2 확률변수 자료 문의
1
26
1
오실로스코프 측정
1
42
2
38번 문제 보기 3,4번
1
34
3





