You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
분산락(V2) -> 재고 사후 검증과 롤백을 활용하여 Lock Free 구조(V3)를 선택한 이유
작업을 복잡하게 만들고, 디버깅하기 어려운 분산락을 대신하여 분산락을 통해서 해결하고자 하는 문제를 재고 사후 검증과 롤백을 활용하여 Lock Free 구조로도 해결 가능하기 떄문이다.
분산락의 경우, 멀티쓰레드 환경에서 발생하는 버그들이 재현하기도 함들고, 특수한 케이스에서만 발생되기 때문에, 오랜 시간이 지나서야 결함을 발견할 수 있다. 또한, 설정한 락 임대하는 시간보다 실제로 더 걸려서, 로직이 다 수행하기도 전에 락이 해제되고 다른 쓰레드가 락을 잡게 될 경우, 개발자가 의도하지 않은 대로 로직이 진행될 수 있다. 따라서, 락 로직을 가능한 배제하는 것이 좋다.
이런 단점에도 불구하고, 분산락을 사용하는 이유는 데이터의 일관성을 유지할 수 있게 해주기 때문이다.
재고 데이터를 관리하는 Redis의 경우, 싱글스레드 기반이므로, 일반적으로 동시성 제어가 필요없지만, 나처럼 비즈니스 로직상 필요한 경우가 있다.
Conclustion
분산락(V2)
->재고 사후 검증과 롤백을 활용하여 Lock Free 구조(V3)
를 선택한 이유분산락
을 대신하여분산락
을 통해서 해결하고자 하는 문제를재고 사후 검증과 롤백을 활용하여 Lock Free 구조
로도 해결 가능하기 떄문이다.데이터의 일관성
을 유지할 수 있게 해주기 때문이다.재고 사후 검증과 롤백을 활용하여 Lock Free 구조(V3)
를 선택했다.트랜잭션(V1)
->분산락(V2)
이유The text was updated successfully, but these errors were encountered: