카테고리 없음
냐냐
_Admin_
2024. 5. 13. 23:18
반응형
쓰기 작업 발생 시
1. 클라이언트로부터 쓰기 요청 발생
2. 해당 요청은 조정 노드에게 전달됨
3. 라우팅을 통해 어떤 샤드로 갈지 (Shard 0 / 1 등) 결정함
4. 그 샤드 중 Primary Shard를 찾아 요청을 넘겨줌
5. Primary Shard가 작업을 하고
6. 다시 조정 노드에게 응답
7. 조정 노드가 클라이언트에게 응답
5번에서 Priary Shard가 하는 작업이란?
- 요청이 제대로 된 요청인지 검증
- 검증 결과, 문제 없다면 쓰기 작업을 수행
- 작업 완료시, 각 복제본 샤드(in-sync 복제본)로 요청을 병렬적으로 넘김 --> 복제 발생
- 복제본이 모두 작업을 완료하면 Primary Shard에게 응답을 주고 주 샤드가 작업 완료 응답을 보낸다.
* 마스터노드는 복제할 샤드목록을 관리하는데 이를 in-sync 복제본이라 함
만약, 쓰기 요청이 다발적으로 일어나는 환경에서 여러 작업이 한번에 요청되면 메시지 순서를 보장하지 못할 수도 있음.
이를 처리하기 위한 방법은 여러가지가 있음
1. 낙관적 동시성 제어
반응형