RPC에 기반한 분산 시스템의 디버깅을 위한 이벤트 추적 기능의 설계 및 구현

분산 프로그램의 디버깅이 순차 프로그램의 디버깅보다 어려운 이유 중의 하나는 수행 중인 프로세스들 간의 통신때문이다. 비록 분산 시스템을 위해 구축된 디버거들이 많이 있음에도 불구하고, 프로세스들 간의 통신 이벤트를 효과적으로 디버깅할 수 있는 실용적인 수준의 디버거는 없는 실정이다. 본 논문에서는 분산 시스템의 개발에 널리 사용되고 있는 RPC 매커니즘을 이용한 프로그램 간의 통신을 효과적으로 디버깅하는 방법을 제시한다. 이를 위하여 RPC 통신 이벤트를 디버깅 객체로 정의한 RPC 이벤트 모델을 제안하고, 이에 기초하여 RPC 이벤트 추적 기능을 설계 및 구현하였다. RPC 프로토콜을 분석한 결과를 이용하여 메시지의 송ㆍ수신 이벤트를 라이브러리 함수의 호출과 자료의 값으로 기술하고 해당 라이브러리 함수의 호출이 발생한 위치를 인지함으로써 모든 통신 이벤트의 발생을 탐지할 수 있었다. 제안된 RPC 이벤트 추적 기능은 현재 분산 디버거인 유니뷰 시스템에 구현되었다. 이벤트 추적 기능의 추가적 구현으로 인하여 유니뷰 시스템은 추적된 통신의 내용을 보면서 관련된 소스 코드를 보거나 프로그램을 제어하고, 원격 함수 호출에 사용된 매개변수의 값을 보는 등의 행위가 가능하다. 또한, 이러한 이벤트 추적 기능을 수행하기 위하여 별도의 라이브러리나 수행 환경이 요구되지 않음으로, 실제 분산 시스템의 개발 환경에 적용하기가 용이한 장점을 가진다.