inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Vấn đề đồng thời đơn giản nhất - Race Condition

Tình huống không thể giải quyết bằng Optimistic Lock

분산 락이 필요한 이유

41

syhan7516

8 câu hỏi đã được viết

0

안녕하십니까.

 

먼저, 동시성 문제 강의를 알기 쉽게 설명해주셔서 너무 감사합니다!

 

다름이 아니라 "낙관적, 비관적 락으로 충분한데 꼭 분산 락이 필요한가요?" 라는 부분에서 질문 드립니다.

 

낙관적, 비관적 락으로 해결할 수 없는 상황을 말씀해주시며 설명해주시는데, 해당 상황이 현재 데이터베이스가 아닌 외부에 존재하는 데이터를 대상으로 정합성, 무결성을 전제로 설명하시는 거 맞을까요?

 

그러면 결국 분산 락 사용의 이유는 분산 환경에서 낙관적, 비관적 락은 데이터베이스 외부에 대한 데이터 관리가 불가능하기 때문에 필요하다고 생각하면 될까요?

redisson

Câu trả lời 1

0

joyopi

정리하신 내용이 맞습니다.

낙관적, 비관적 락으로 해결할 수 없는 상황은 데이터베이스가 보장하는 원자성의 범위를 벗어나는 지점에서 발생합니다.

말씀하신 대로, DB 락은 특정 DB 인스턴스 내부의 데이터 정합성만 책임집니다. 외부에 존재하는 데이터(타 서비스 API, 외부 스토리지 등)에 대해서는 무력합니다.

  • 비관적 락의 한계

    • 내 DB의 특정 행을 잠궈도 외부 API가 실행되는 것 자체를 막지는 못합니다.

       

  • 낙관적 락의 한계

    • DB 반영 직전에 충돌을 감지하더라도, 이미 외부 시스템에 명령이 전달되었다면 되돌리기 어렵습니다.

분산 환경에서 분산 락이 필요한 이유는 물리적으로 분리된 여러 프로세스 사이의 실행 순서를 강제할 전역적인 중재자가 필요하기 때문입니다.

결론: DB가 모든 것을 통제할 수 없으니, 분산 락으로 어플리케이션 계층 위에서 질서를 잡아주는 역할을 합니다.


으아 ㅠ 답변이 늦어서 너무 죄송합니다. 강의 첫 질문이라 제가 알림을 놓쳤습니다.

🙇‍♂🙇‍♂

질문 주셔서 감사합니다.

다음에는 더 빨리 답변할 수 있도록 하겠습니다.

죄송합니다.

오타 제보

2

39

2

시큐리티 필터 설정 질문입니다!

2

46

1

스킬에 대해

1

56

2

macOS에서 Windows 실행하는 프로그램

1

23

2