next0262.log
로그인
next0262.log
로그인
Data Safety
골덕
·
2024년 11월 26일
팔로우
0
ceph
클라이언트 A가 데이터를 쓰면, 클라이언트 B는 변경된 데이터를 곧바로 읽을 수 있어야 함.
여러 클라이언트가 동시에 작업(다중 쓰기)하거나, 읽기와 쓰기를 섞어서 사용하는 경우 실시간 데이터 일관성이 필요.
이러한 일관성을 위한 동기화는 공유 스토리지에서나 가능하다!!
Synchronization과 Safety를 분리
라이언트 A가 데이터를
/shared_data
에 씀.
공유 스토리지의 Primary OSD가 데이터를 받고, 복제본 포함 모든 osd의 in-memory buffer cache에 update apply가 완료 되면, 즉시 클라이언트 A에 우선 쓰기 성공 응답(acknowledgment).
이 시점에서 클라이언트 B는 새로운 데이터를 읽을 수 있음(
Synchronization
).
만약 모든 osd가 다죽어버리면 데이터 loss이기 때문에, 이 경우를 대비하여 디스크 커밋 전까진 client에서 업데이트 요청에 대한 버퍼링을 해둠
장애 발생시, 새로운 업데이트를 잠시 허용하지 않고, 버퍼링해둔 업데이트 요청을 replay함으로서 recovery 진행
골덕
다시 시작하는 개발자
팔로우
이전 포스트
Failure Detection
다음 포스트
Replication
0개의 댓글
댓글 작성