Skip to main content
QUICK REVIEW

[논문 리뷰] From Complex Event Processing to Simple Event Processing

Sylvain Hallé|arXiv (Cornell University)|2017. 02. 26.
Advanced Database Systems and Queries참고 문헌 3인용 수 7
한 줄 요약

이 논문은 복잡한 CEP 시스템과 저수준 스크립팅 사이의 격차를 메우는 경량이며 확장 가능하고 설정이 없는 이벤트 스트림 처리 엔진인 BeepBeep을 제안한다. 모듈식 프로세서 기반 아키텍처와 SQL 유사 쿼리 언어(eSQL)를 도입하여 다양한 용도에 적합한 간단하고 조합 가능하며 확장 가능한 스트림 처리를 가능하게 하며, 중간 수준의 워크로드에서 합리적인 성능을 달성하면서도 사용자 정의 확장 기능을 위한 사용자 정의 가능한 팔레트를 지원한다.

ABSTRACT

Many problems in Computer Science can be framed as the computation of queries over sequences, or "streams" of data units called events. The field of Complex Event Processing (CEP) relates to the techniques and tools developed to efficiently process these queries. However, most CEP systems developed so far have concentrated on relatively narrow types of queries, which consist of sliding windows, aggregation functions, and simple sequential patterns computed over events that have a fixed tuple structure. Many of them boast throughput, but in counterpart, they are difficult to setup and cumbersome to extend with user-defined elements. This paper describes a variety of use cases taken from real-world scenarios that present features seldom considered in classical CEP problems. It also provides a broad review of current solutions, that includes tools and techniques going beyond typical surveys on CEP. From a critical analysis of these solutions, design principles for a new type of event stream processing system are exposed. The paper proposes a simple, generic and extensible framework for the processing of event streams of diverse types; it describes in detail a stream processing engine, called BeepBeep, that implements these principles. BeepBeep's modular architecture, which borrows concepts from many other systems, is complemented with an extensible query language, called eSQL. The end result is an open, versatile, and reasonably efficient query engine that can be used in situations that go beyond the capabilities of existing systems.

연구 동기 및 목표

  • 기존 복잡한 이벤트 처리(CEP) 시스템의 복잡성과 경직성 문제를 해결하기 위해, 일반적으로 광범위한 설정이 필요하고 확장성이 떨어지는 문제를 해결하고자 한다.
  • 저수준 스크립트와 고성능 분산 플랫폼 사이의 빈도가 낮은 도메인을 메우기 위해 '간단한 이벤트 처리' 솔루션을 제안함으로써, 이벤트 처리 도구의 누락된 영역을 식별하고자 한다.
  • 풍부한 쿼리 표현력, 사용자 정의 구성 요소, 도메인 특화 처리 단위의 원활한 통합을 지원하는 시스템을 설계하고자 한다.
  • 핵심 컴포onent을 수정하지 않고도 사용자가 커스터마이징 가능한 '팔레트'를 통해 사용자 정의 프로세서와 쿼리 언어 확장을 정의할 수 있도록 하여 확장성을 보장하고자 한다.
  • 경량 시스템이 기본 윈도우링 및 집계를 넘어서는 복잡한 쿼리, 예를 들어 시간 논리 및 패턴 매칭을 처리할 수 있음을 입증하고자 한다.

제안 방법

  • 각 프로세서가 이벤트 스트림에 특정 변환을 수행하는 모듈식 프로세서 아키텍처를 기반으로 하여, 조합 가능한 데이터 파이프라인을 구현한다.
  • 관계형 투명성을 보장하기 위해, 일반적인 작업에 대해 SQL과의 호환성을 유지하는 선언적 쿼리 언어 eSQL을 설계하였다.
  • 확장성은 '팔레트'—사용자 정의 프로세서와 eSQL의 구문 확장을 묶은 동적 로딩 가능한 팩키지—를 통해 달성된다.
  • 정식으로 명세화된 계산 모델을 통해 의미의 명확성과 독립적 구현의 가능성을 보장한다.
  • 엔진은 무상태 및 유상태 처리를 모두 지원하며, 다중 스트림과 시간 윈도우를 통한 복잡한 이벤트 상관관계 처리도 가능하다.
  • eSQL 외에 GUI 기반 인터페이스를 계획하여, 텍스트 기반 쿼리 작성보다 더 직관적으로 처리 체인을 시각적으로 구성할 수 있도록 한다.

실험 결과

연구 질문

  • RQ1경량이며 설정이 없는 이벤트 처리 시스템이 기본 윈도우링 및 집계를 넘어서는 복잡한 쿼리, 예를 들어 시간 논리 및 패턴 매칭을 효과적으로 처리할 수 있는가?
  • RQ2사용자 정의 구성 요소를 지원하면서도 SQL 유사 구문과의 호환성을 유지하면서도 단순하고 확장 가능한 쿼리 언어를 어떻게 설계할 수 있는가?
  • RQ3어떤 아키텍처 원칙이 모듈성과 중간 수준의 스트림 처리 작업에 적합한 효율성 사이의 균형을 이룰 수 있도록 하는가?
  • RQ4프로세서 기반 모델이 성능을 희생시키지 않고도 표현력 있고 조합 가능한 데이터 처리 체인을 얼마나 잘 지원할 수 있는가?
  • RQ5실제 사용 사례에서 기존 CEP 플랫폼과 비교해 사용성, 표현력 및 처리량 측면에서 이 시스템은 어떤가?

주요 결과

  • BeepBeep은 상용 CEP 도구나 RDBMS로는 어려운 또는 불가능한 복잡한 이벤트 상관관계 및 시간 논리를 포함한 용도를 성공적으로 처리한다.
  • 표준 윈도우링 및 패턴 쿼리에 대해서는 최상위 상용 시스템보다는 처리량이 낮지만, 경량에서 중간 수준의 워크로드에서는 합리적인 성능을 보인다.
  • eSQL 언어는 관계형 투명성을 제공하여, 표준 SQL 유사 연산을 익숙하고 일관된 구문으로 표현할 수 있다.
  • 팔레트를 통한 사용자 정의 프로세서와 구문 확장 기능은 핵심 엔진을 수정하지 않고도 상당한 맞춤화와 도메인 특화 표현력을 가능하게 한다.
  • 모듈식 아키텍처는 깔끔하고 가독성 있고 조합 가능한 처리 체인을 가능하게 하여, 네트워크 침입 탐지에서 소프트웨어 테스팅에 이르기까지 다양한 작업에 적합하다.
  • 최고 성능을 우선으로 하지 않았음에도 불구하고, BeepBeep은 단순하고 확장 가능한 시스템이 복잡한 실세계 스트림 처리 시나리오를 효과적으로 지원할 수 있음을 입증한다.

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

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

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

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