



- Basic Design <chat gpt - prompt>
- About Shuffling process <chat gpt - prompt>




fault tolerance을 대비하여 프로그램이 kill 당했을 때 어떻게 대처를 해야하는지에 대한 논의.
- master와 worker들 간의 통신
master에 workerInfosMap: Map[Ip, Port]가 존재한다.
프로그램이 시작 되었을때 worker들은 master에 register하여 Map[Ip, Port]를 채운다.
프로그램이 진행 되다 worker가 kill 되면 , 이 worker가 재실행된 후 다시 master에 register하여 Map을 갱신한다.
모든 worker들은 suffle 도중 worker간의 소통에서 fail의 신호를 받는다면 Map이 갱신되었다면 갱신된 Map을 보내라고 비동기적으로 요청한다.
갱신된 port에 연결하여 kill 되었었던 worker의 partition data를 요청한다.
서버 닫힐때 논의
- worker가 작업을 완료하면, master에게 완료되었다고 알려준다.
모든 worker가 작업을 완료하면 master가 서버 종료해도 된다고 알려준다.
만약 작업 완료를 통보한 worker가 모든 worker들의 작업이 완료되기전에 kill된다면 오류발생
-> 따라서 모든 worker가 작업을 완료하면 master가 worker의 isAlive 함수를 확인, 한번이라도 isAlive가 아니면, 재검토.
위의 내용 재검토 필요!
waitting request, 싱크로라이즈, promise …..