Primary 서버가 다운됐을 때에도 durability가 보장되나요?
190
작성한 질문수 7
- - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- - 먼저 유사한 질문이 있었는지 검색해보세요.
- - 서로 예의를 지키며 존중하는 문화를 만들어가요.
- - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
Replica Set 강의를 듣고 궁금한점이 생겨 질문드립니다.
Primary server가 CUD 작업을 한 뒤에, 죽었다고 가정을 하겠습니다.
Secondary server가 Primary로 승급이 될텐데 해당 Secondary server에서도 Primary server의 마지막 CUD 작업이 반영이 되어있나요?
Primary server가 죽는 경우에도 비동기적으로 Secondary 서버에 CUD작업이 업데이트 되는건지 궁금합니다.
답변 1
1
좋은 질문입니다
두가지 경우가 있는데요
레플리카 A, B 이렇게 두개가 있다고 가정하고 설명해드릴게요
1. 레플리카 A가 최신 업데이트를 받았고 레플리카 B는 최신 업데이트를 받지 않았는데 프라이머리가 죽은 상황이 오면 레플리카 A가 프라이머리로 승격되고 데이터 손실이 발생하지 않스니다.
2. 레플리카 A, B 모두 최신 업데이트를 받기 전에 프라이머리가 죽었다면 프라이머리만 가지고 있는 최신 업데이트는 레플리카들에 반영되지 않습니다. 레플리카 A, B중에 하나가 프라이머리로 승격이 되요. 그리고 기존 프라이머리가 다시 살아나면 앞서 복제되지 않았던 업데이트들을 롤백해주고 새로 생긴 프라이머리로부터 새로운 업데이트 기록들을 받아서 동기화 해줘요.
디폴트 설정이 write=majority로 되어있을건데요. 그러면 레플리카까지 해서 과반 이상이 업데이트를 완료했을 때 성공 리스폰스를 리턴해주게 됩니다. 그러면 2.번의 상황이 생기지 않게 되죠. Transaction을 걸게 되면 무조건 write=majority가 강제 되기 때문에 더더욱 문제 될 일은 없고요
0
명쾌하게 알려주셔서 감사합니다!
connection string뒷단에 붙어있는 쿼리가 이런 의미였단걸 강사님 덕분에 알게 됐습니다.
좋은 강의 잘 듣고 있습니다, 더운 여름 몸 건강히 보내시길 기도 드리겠습니다.
감사합니다 :)
option usecreateindex is not supported 오류 나면은
0
164
1
Schemaless 특성을 재생시 검은화면이 나와요
0
258
1
user 내장 시 ref 필드 필요성
0
258
1
await 관련해서 질문드릴게 있습니다!!
0
306
2
섹션6의 3번째 강의 faker파일이 어디있나요?
0
322
1
$elemMatch 질문이 있습니다.
0
252
1
DB 업데이트에 실패했을 상황에서 대처는 어떻게 할 수 있나요.
2
778
2
블로그에 user 데이터를 추가하는 방법에 대해서
0
245
1
blog 데이터 생성시 user 관련 오류
0
365
1
age 예외 처리를 별도로 하신 이유가 궁금합니다.
2
315
2
delete 메소드가 많은 이유가 궁금합니다.
0
186
1
unique validation 처리
0
304
1
updateMany에서 user._id를 못찾는 상황
1
408
1
find() 가 리턴하는 instance member
1
441
3
몽고 db를 백업방법을 부탁합니다.
0
612
1
인덱스 생성시점
0
725
1
$pull 문법에 대한 질문
0
369
1
comment의 id가 생성되는 시점
1
311
1
리팩토링 강의에서 라우터 리팩토링 전개연산자(...)
1
322
1
session.abortTransaction()에 대한 실제 예시 문의
0
298
1
섹션9 Computed Fields 강의에서, 다음 강의 가기 전 빠진부분
-1
417
1
faker 패키지 취약성 이슈
1
502
1
라우터 리팩토링
0
349
1
섹션4 진행중, mongoose 질문
0
319
1





