Solaris OS용 Sun Cluster 데이터 서비스 개발 안내서

이벤트 전달을 보장하는 방법

클러스터에서의 전체 이벤트 생성 순서가 각 클라이언트에 대한 이벤트 전달 순서가 됩니다. 다시 말해서 클러스터 내에서 이벤트 A가 이벤트 B보다 먼저 생성된 경우 클라이언트 X는 이벤트 B를 받기 전에 이벤트를 A를 받습니다. 그러나 모든 클라이언트에 대해 전체 이벤트 전달 순서가 유지되는 것은 아닙니다. 즉, 클라이언트 Y는 클라이언트 X가 이벤트 A를 받기 전에 이벤트 A와 B를 모두 받을 수 있습니다. 이는 속도가 느린 클라이언트가 모든 클라이언트에 대한 이벤트 전달을 방해하지 않는다는 것을 의미합니다.

클러스터가 생성한 이벤트를 누락시키는 오류가 서버에서 발생하는 경우를 제외하고 서버가 전달하는 모든 이벤트(하위 클래스에 대한 첫 번째 이벤트와 서버 오류 이후의 이벤트는 제외)는 클러스터가 생성하는 실제 이벤트에 응답하여 발생합니다. 이 경우 서버는 해당 유형의 시스템의 현재 상태를 나타내는 각 이벤트 유형에 대해 이벤트를 생성합니다. 각 이벤트는 해당 이벤트 유형을 원하는 등록된 클라이언트에게 보내집니다.

이벤트 전달에는 “최소한 한 번 이상”이라는 표현이 적용됩니다. 즉, 서버에서 동일한 이벤트를 클라이언트에 두 번 이상 보낼 수 있습니다. 이 기능은 서버가 일시적으로 다운되었다가 다시 원래 상태로 돌아왔을 때 클라이언트가 최신 정보를 받았는지 확인할 수 없는 경우에 필요합니다.