Skip to main content
QUICK REVIEW

[논문 리뷰] Slicing Event Traces of Large Software Systems

Raymond Smith, Bogdan Korel|ArXiv.org|2001. 01. 11.
Software Testing and Debugging Techniques참고 문헌 14인용 수 15
한 줄 요약

이 논문은 대규모 소프트웨어 시스템에서 막대한 이벤트 트레이스를 줄여 사후 디버깅을 간소화하기 위한 슬라이싱 기법을 제안한다. 이벤트 간 의존성, 특히 원인-결과 관계를 자동으로 식별함으로써 잘못된 동작에 영향을 주는 이벤트만 고립시키며, 모든 로그를 수동으로 검토할 필요 없이 분석에 효율적인 크기로 트레이스 크기를 크게 축소한다.

ABSTRACT

Debugging of large software systems consisting of many processes accessing shared resources is a very difficult task. Many commercial systems record essential events during system execution for post-mortem analysis. However, the event traces of large and long-running systems can be quite voluminous. Analysis of such event traces to identify sources of incorrect behavior can be very tedious, error-prone, and inefficient. In this paper, we propose a novel technique of slicing event traces as a means of reducing the number of events for analysis. This technique identifies events that may have influenced observed incorrect system behavior. In order to recognize influencing events several types of dependencies between events are identified. These dependencies are determined automatically from an event trace. In order to improve the precision of slicing we propose to use additional dependencies, referred to as cause-effect dependencies, which can further reduce the size of sliced event traces. Our initial experience has shown that this slicing technique can significantly reduce the size of event traces for analysis.

연구 동기 및 목표

  • 막대하고 장시간 실행되는 소프트웨어 시스템에서 막대한 이벤트 트레이스로 인한 디버깅 과제를 해결하기 위해.
  • 사후 디버깅에서 수동으로 분석해야 할 이벤트 트레이스의 양을 줄이기 위해.
  • 관찰된 잘못된 동작에 영향을 준 이벤트만 식별하여 디버깅 효율성을 향상시키기 위해.
  • 기본적인 실행 순서 외에 원인-결과 의존성을 포함시켜 트레이스 축소의 정밀도를 향상시키기 위해.
  • 산업 규모의 시스템에서 이벤트 트레이스 분석을 위한 확장 가능하고 자동화된 기법을 제공하기 위해.

제안 방법

  • 실행 중 기록된 시스템 이벤트의 트레이스를 구성하며, 이는 프로세스 동작과 공유 리소스 접근을 포함한다.
  • 실행 순서와 공유 리소스 사용 기반으로 이벤트 간 데이터 및 제어 의존성을 식별한다.
  • 원인-결과 의존성을 도입하여 직접적으로 시스템 동작에 영향을 주는 이벤트 간 인과 관계를 모델링한다.
  • 슬라이싱 과정은 이러한 의존성을 사용해 관찰된 잘못된 동작으로부터 영향을 미친 이벤트로 거슬러 올라가 영향을 미친 이벤트를 추적한다.
  • 관찰된 장애에 영향을 주지 않는 모든 이벤트를 제거하여 최소화되고 관련성이 있는 트레이스 하위집합을 생성한다.
  • 이 방법은 자동화되어 있으며 소스 코드나 로깅 외에 추가된 인스트루멘테이션 없이도 이벤트 트레이스만으로 작동한다.

실험 결과

연구 질문

  • RQ1대규모 분산 소프트웨어 시스템에서 이벤트 트레이스를 디버깅에 적합한 크기로 줄일 수 있는가?
  • RQ2이벤트 간 어떤 종류의 의존성이 잘못된 동작의 근본 원인을 식별하는 데 가장 효과적인가?
  • RQ3기본적인 실행 순서 의존성 외에 원인-결과 의존성을 포함하면 트레이스 슬라이싱의 정밀도가 향상되는가?
  • RQ4자동 슬라이싱은 관련된 장애 유발 이벤트를 잃지 않으면서 이벤트 트레이스 크기를 어느 정도 줄일 수 있는가?
  • RQ5실제 산업 규모의 소프트웨어 시스템에서 이 슬라이싱 기법은 얼마나 효과적인가?

주요 결과

  • 슬라이싱 기법은 이벤트 트레이스 크기를 크게 줄여 사후 분석의 효율성을 높인다.
  • 원인-결과 의존성의 통합은 슬라이싱 과정의 정밀도를 향상시켜 출력에서 불필요한 이벤트를 줄인다.
  • 이 방법은 관찰된 잘못된 동작에 영향을 준 이벤트만 성공적으로 고립시켜 수동 검토를 최소화한다.
  • 초기 경험을 통해 이 기법은 복잡한 이벤트 로그를 가진 대규모 장시간 실행 시스템에 실용적이고 확장 가능하다는 것이 확인되었다.
  • 분석을 최소한의 관련 이벤트 하위집합에 집중시킴으로써 루트 코스 식별 속도가 향상된다.
  • 이 기법은 소스 코드나 사전 시스템 모델이 필요 없이 런타임 이벤트 트레이스만으로도 효과적으로 작동한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.