낙관적이든 비관적이든 분산 락이든
결국 어떤 데이터를 접근해서 동시에 바꿀 때 소용이 있는거잖어
근데 쏘카나 그린카같이
누구는 1시반부터 3시까지
누구는 2시반부터 5시까지
동시에 예약요청을 보낸다 쳤을때
검증 로직 있고
검증 후에 예약테이블에 새롭게 생성
이건데 얘는 동시 처리를 어떻게 해야함?
예약 테이블 전체에 락을 걸수도 없고
결국 어떤 데이터를 접근해서 동시에 바꿀 때 소용이 있는거잖어
근데 쏘카나 그린카같이
누구는 1시반부터 3시까지
누구는 2시반부터 5시까지
동시에 예약요청을 보낸다 쳤을때
검증 로직 있고
검증 후에 예약테이블에 새롭게 생성
이건데 얘는 동시 처리를 어떻게 해야함?
예약 테이블 전체에 락을 걸수도 없고
락을 걸었다는 전제를 걸고 왜 이런 고민을 하는지 이해 할 수가 없네
왜 이해가 안됨?
where 조건 인덱스에 락을 걸면 생성도 안될거임. 갭락, 넥스트키락 찾아보셈
오 감사합니다
아 근데 저건 항상 쓸 수 있는건 아니고 조건이 있음 격리수준이랑 지원 DB 여부 고려해야함. 근데 이건 풀어가는 방법이 여러가지일 것 같긴하다. 예약정책을 잘 모르겠지만...
근데 예약요청은 누가 먼저 햇는지도 중요한데 저게 db락으로만 해결볼거같지는 않네
아무리 동시에 햇다쳐도 예약플로우 통과할땐 순서가 생겨야할거같음...
락에 관해서는 이 글 찾았어요
https://tecoble.techcourse.co.kr/post/2023-08-16-concurrency-managing/