inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

재고시스템으로 알아보는 동시성이슈 해결방법

분산락에 대해서 질문이 있습니다.

321

신동훈

작성한 질문수 44

0

해당 질문에 대한 답변을 보고 혼동이 되어서 질문드립니다.

분산 락의 완전한 정의를 찾을 수가 없어서 다음 두 상황이 혼동되는 것 같습니다.

 

1. 웹 애플리케이션 서버가 여러대인 경우, 이들간의 동시성 문제를 해결하기 위해 사용되는 Lock

2. 스케일 아웃된 DB 환경에서 동시성 문제를 해결하기 위해 사용되는 Lock

 

jeoningu님의 질문과 이에 대한 답변에 따르면, 1번 상황은 분산락이 아니며(낙관적 락, 비관적 락은 분산락이 아닌 것처럼 설명해 주셨으므로), 2번 상황이 분산락인 것 처럼 되는 것 같습니다.

 

그런데 이런저런 자료를 찾아보다보니, 1번 상황 역시도 분산 락의 개념에 포함되는 것 같습니다.

(즉 낙관적 락과 비관적 락도 분산 락에 포함됨)

 

그래서 제 스스로 다음과 같은 결론을 내렸는데, 이게 올바른 것인지를 확인할 방법이 없어서 선생님께 조언을 구하고 싶어 질문 드립니다.

"

1번과 2번 모두 분산락의 개념이다.

낙관적 락과 비관적 락은 다중 애플리케이션의 동시성을 제어할 수 있는 분산 락을 구현할 수 있는 방법 중 하나이다.

그러나 여러대의 DB를 사용하는 경우 이들로는 분산락을 구현할 수 없게 된다.

이러한 경우 레디스와 같은 Lock 을 위한 DB를 하나 두어 이를 통해 분산락을 구현하여 사용해야 한다.

"
잘못 이해한 부분이 있다면 지적해주시면 감사하겠습니다..!

java spring 동시성

답변 1

0

최상용

신동훈님 안녕하세요.
1번과 2번 모두 분산락의 개념이라고 이해하고 있습니다.
다만, 여러대의 DB 를 사용하는 경우 이들로는 분산락을 구현할 수 없게 된다는 어떤의미인지 잘 모르겠습니다.
여러 종류의 데이터베이스를 사용하는 케이스인지 1대의 master DB와 여러대의 replication DB 가 있는 상황인지에 따라 다를 것 같습니다.

0

신동훈

답변 감사합니다!

여러대의 replication DB를 둔 상황을 가정했었습니다!

0

최상용

여러대의 replication 이 있는 상황에서는 보통 1대의 master db 에서만 cud 작업을 진행하기 때문에 분산락을 구현할 수 있을 것 같습니다.

다만 여러 종류의 데이터베이스일경우에 말씀하신 것처럼 mysql 의 비관적락, 낙관적락을 사용하여 분산락을 구현하기는 힘들 것으로 생각됩니다.

레디선 테스트코드에서 채널이름은 없어도 되는건가요?

0

43

2

낙관적 락을 사용할 떄 차이점

0

121

2

동시성 검증 코드에 관한 문의

0

94

2

단일연산

0

70

2

낙관적락vs. 레디스락

0

108

2

안녕하세요. 레디슨 질문있습니다..!!

0

67

2

@Lock(OPTIMISTIC)이 필요한 이유

0

90

2

get_lock 의 timeout이 3000초 이던데 너무 긴거 아닌가요?

0

132

2

DataSource Hikari 사용 이유

0

147

2

saveAndFlush 사용 이유 문의

0

113

3

비관적 락 VS 네임드 락

0

160

3

application.yaml 에 redis 정보

0

100

2

왜 클래스 이름에 Facade 가 붙나요?

0

185

2

@Transactional 으로 인한 동시성 문제 발생 원인이 궁금합니다.

0

219

2

@modifying 이용한 동시성 제어

0

168

2

DB락과 분산락

0

262

2

NamedLock 테스트 실패

0

186

2

테스트에서 트랜잭션 어노테이션 질문 있습니다.

0

173

2

optimistic Lock 재시도 질문입니다.

0

231

2

낙관적 락 테스트 실패

0

241

2

오류?

0

1627

4

LettureLockStockFacadeTest에서 오류가 발생합니다.

1

268

2

Pessimistic Lock 전체 테스트 오류 문의

0

360

3

비관적 락 vs 레디스(Lettuce)락 비교 관련 질문

0

460

2