잘하신 분
https://boggy-zebu-adf.notion.site/08-1c25c7e37d3d80419277e59418639cd4
분산 시스템 이슈
- 네트워크 결함
- timeout이 결함 여부를 확신할까? 얼마 정도 되어야 적당할까?
- 서버 시간
- 서버들의 불일치한 시간 문제를 어떻게 해결해야 할까?
- 프로세스
- 죽은 프로세스는 멈추거나 죽을 수 있다.
- 죽었다 살았는데 안 멈춘 척 시치미 뗀다면..?
이슈에 대한 답변
- timeout은 원격 서버의 사용 여부를 결정하기 위해 사용하지만, 네트워크 장애와 노드 장애를 구별할 수 없다.
비동기 패킷 네트워크는 싸고 좋다
- 비동기 패킷 네트워크는 데이터센터 내부 네트워크와 인터넷에 사용된다.
- 일단 비공유 시스템이 하드웨어가 필요없으나 가격이 싸고, 지리적으로 분산 여러 데이터센터에 중복 배치함으로써 신뢰성을 높일 수 있다.
- 이 이슈를 timout으로 해결하긴 해~
서버 시계가 왜 중요할까?
본래 서버들은 각자 하드웨어 안에 수정 발진기라는 자신만의 시계를 가지고 있다. 하지만 서버별로 보았을 때 100% 시간 일치하지 않는다.
그래서 NTP, 네트워크 시간 프로토콜을 사용해서 서버들 간의 시간을 동기화한다 (한계가 있다)
- NTP는 서버 그룹에서 보고한 시간에 따라 컴퓨터 시계를 조정할 수 있게 한다. → 이후 GPS 수신자 같은 더 정확한 시간 출처로부터 시간을 얻는다
패킷 교환을 왜 쓸까?
- 순간적으로 몰리는 트래픽에 최적화되었기 때문이다!
이벤트 순서화용 타임스탬프
분산 시스템에서 이벤트들 간의 순서를 유지하기 위해 시간을 시점으로 스탬프 쾅해서 기록하는 것이다.