KR102297435B1 - 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치 - Google Patents

응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치 Download PDF

Info

Publication number
KR102297435B1
KR102297435B1 KR1020150021477A KR20150021477A KR102297435B1 KR 102297435 B1 KR102297435 B1 KR 102297435B1 KR 1020150021477 A KR1020150021477 A KR 1020150021477A KR 20150021477 A KR20150021477 A KR 20150021477A KR 102297435 B1 KR102297435 B1 KR 102297435B1
Authority
KR
South Korea
Prior art keywords
data access
data
event stream
application program
analysis
Prior art date
Application number
KR1020150021477A
Other languages
English (en)
Other versions
KR20160099257A (ko
Inventor
이강우
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020150021477A priority Critical patent/KR102297435B1/ko
Publication of KR20160099257A publication Critical patent/KR20160099257A/ko
Application granted granted Critical
Publication of KR102297435B1 publication Critical patent/KR102297435B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명의 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법은 응용 프로그램에 대한 제어흐름 그래프를 추출하는 단계; 상기 제어흐름 그래프에 포함된 복수의 수행 블록 각각에서 이벤트 스트림 데이터에 접근하는 데이터 접근 패턴을 분석하는 단계; 상기 데이터 접근 패턴의 분석 결과를 이용하여 복수의 데이터 접근 경로 후보를 생성하는 단계; 및 상기 복수의 데이터 접근 경로 후보 각각의 비용을 계산하고, 상기 비용 계산 결과를 고려하여 상기 복수의 데이터 접근 경로 후보 중 어느 하나의 접근 경로를 선택하여 상기 응용 프로그램을 실행하는 단계;를 포함한다.

Description

응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치{Method and apparatus for improving the processing performance of the event stream data of the application}
본 발명은 응용 프로그램의 데이터 처리 기술에 관한 것으로, 특히 이벤트 스트림 데이터에 대한 접근 패턴을 분석하여 응용 프로그램의 데이터의 처리 성능을 향상시키는 방법에 관한 것이다.
이벤트 스트림 데이터를 처리하기 위해서, 응용 프로그램은 풀(pull) 방식과 푸시(push) 방식의 두가지 방식으로 데이터에 접근한다. 여기서, 풀 방식은 데이터를 활용하는 주체(응용 프로그램 등)에서 필요 시 데이터에 접근하는 방식을 말한다. 이때, 이벤트 스트림 데이터는 응용 프로그램 곳곳에서 접근하게 되는데, 기존에는 대부분 단일 데이터 접근 위주로 이벤트 스트림 데이터의 처리 기술이 연구되어 왔다.
신속하고 반응적인 이벤트 처리를 위해서는 이러한 데이터 접근이 자주 일어나야 하므로, 이벤트 스트림 데이터 처리 기술은 일정한 간격을 두고 지속적으로 폴링(polling)하게 된다. 여기서 폴링이란, 컴퓨터 또는 단말 제어 장치 등에서 여러 개의 단말 장치에 대하여 차례로 송신 요구의 유무를 문의하고, 요구가 있을 경우에는 그 단말 장치에 송신을 시작하도록 명령하며, 없을 때에는 다음 단말 장치에 문의하는 전송 제어 방식을 말한다.
한편, 이벤트 스트림 데이터 처리 기술의 성능에 영향을 미치는 주요 요소들(예컨대, 데이터를 폴링하는 시간 간격 등)은 이벤트를 읽어내는 센서마다 미리 고정되거나 복합 이벤트를 만들어내는 일반적인 수행 노드에 종속되는 경우가 많다. 그러나 데이터가 활용되는 패턴과 무관하게 이러한 것들(주요 요소들)이 결정되는 경우가 대부분이다.
본 발명의 목적은 응용 프로그램의 이벤트 스트림 데이터 접근 패턴을 분석하여 데이터 처리 성능을 향상하는 방법을 제공함에 있다.
전술한 과제를 달성하기 위한 본 발명의 일 양상에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법은 응용 프로그램에 대한 제어흐름 그래프를 추출하는 단계; 상기 제어흐름 그래프에 포함된 복수의 수행 블록 각각에서 이벤트 스트림 데이터에 접근하는 데이터 접근 패턴을 분석하는 단계; 상기 데이터 접근 패턴의 분석 결과를 이용하여 복수의 데이터 접근 경로 후보를 생성하는 단계; 및 상기 복수의 데이터 접근 경로 후보 각각의 비용을 계산하고, 상기 비용 계산 결과를 고려하여 상기 복수의 데이터 접근 경로 후보 중 어느 하나의 접근 경로를 선택하여 상기 응용 프로그램을 실행하는 단계;를 포함한다.
본 발명의 다른 일면에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치는, 응용 프로그램에 대한 제어흐름 그래프를 추출하는 추출부; 상기 제어흐름 그래프에 포함된 복수의 수행 블록 각각에서 이벤트 스트림 데이터에 접근하는 데이터 접근 패턴을 분석하는 분석부; 및 상기 데이터 접근 패턴의 분석 결과를 이용하여 복수의 데이터 접근 경로 후보를 생성하고, 상기 복수의 데이터 접근 경로 후보 각각의 비용을 계산하고, 상기 비용 계산 결과를 고려하여 상기 복수의 데이터 접근 경로 후보 중 어느 하나의 접근 경로를 선택하여 상기 응용 프로그램을 실행하는 제어부를 포함한다.
본 발명의 실시예에 따르면, 응용 프로그램의 데이터 접근 패턴 분석을 통해 접근 데이터 간의 종속성(연관관계)를 미리 분석하고, 종속성 분석 정보를 응용 프로그램의 제어흐름 그래프 상의 각 조건 블록에 매핑시킴으로써, 추후에 매핑된 데이터 종속성 분석 정보를 이용하여 응용 프로그램의 데이터 접근 경로를 최적화하여 데이터 처리의 효율성을 높인다.
또한, 기존의 단일 데이터 접근식에 국한되어 연구된 최적화 기법과 달리, 본 발명의 실시예에 따르면, 응용 프로그램 내의 복수의 데이터 접근식 들의 상호 연관관계를 분석함으로써, 이벤트 스트림 데이터 처리 성능을 높일 수 있는 장점이 있다.
도 1은 본 발명의 실시예에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치 블록도.
도 2는 본 발명의 실시예에 따라 응용 프로그램에 if 조건문이 포함되는 경우, 추출되는 제어흐름 그래프를 예시한 도면.
도 3은 본 발명의 실시예에 따라 제어흐름 그래프에 데이터 접근식을 매핑한 경우을 예시한 도면.
도 4는 본 발명의 실시예에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법 흐름도.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 기재에 의해 정의된다. 한편, 본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자 이외의 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가급적 동일한 부호를 부여하고, 또한 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있는 경우에는 그 상세한 설명은 생략한다.
본 발명의 실시예에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치(이하, ‘이벤트 스트림 처리 성능 향상 장치’로 지칭)는 실행 시간 및 에너지를 경감하기 위해, 응용 프로그램에서 이벤트 스트림 데이터에 접근하는 패턴을 분석하고, 분석 결과를 응용 프로그램에서 이벤트 스트림의 처리 성능에 영향을 미치는 주요 요소들(예컨대, 데이터를 폴링(polling)하는 간격 등)을 조정하는 데에 이용한다.
즉, 본 발명의 실시예에 따른 이벤트 스트림 처리 성능 향상 장치는 데이터 접근 패턴 분석을 통해 이러한 데이터 간의 종속성(연관관계)를 미리 분석하고, 종속성 분석 정보를 응용 프로그램의 제어흐름 그래프 상의 각 조건 블록에 매핑시킴으로써, 추후에 매핑된 데이터 종속성 분석 정보를 이용하여 응용 프로그램의 데이터 접근 경로를 최적화하여 데이터 처리의 효율성을 높인다.
또한, 기존의 단일 데이터 접근식에 국한되어 연구된 최적화 기법과 달리, 본 발명의 실시예에 따르면, 응용 프로그램 내의 복수의 데이터 접근식들의 상호 연관관계를 분석함으로써, 이벤트 스트림 데이터 처리 성능을 높일 수 있는 장점이 있다.
이를 위해, 본 발명의 실시예에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치는 도 1과 같은 구성을 포함한다. 도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 따른 이벤트 스트림 처리 성능 향상 장치(100)는 추출부(110), 분석부(120) 및 제어부(130)를 포함한다.
추출부(110)는 응용 프로그램에 대한 제어흐름 그래프(Control Flow Graph)를 추출한다. 이때, 응용프로그램은 수행 동작에 대해 수학식 1과 같은 if 조건문 및 수학식 2와 같은 ECA(Event-Condition-Action) 구조문을 포함할 수 있다.
Figure 112015014974083-pat00001
Figure 112015014974083-pat00002
구체적으로, 추출부(110)는 응용 프로그램에 포함된 동작 구조에 따라 복수의 수행 블록을 포함하는 지배자 트리(dominance tree/dominator tree)를 추출할 수 있다. 또한, 추출부(110)는 복수의 수행 블록 각각에 접근하는 데이터들(이벤트 스트림 데이터들)의 경로(path)를 추출한다.
예컨대, 응용 프로그램에 수학식 1과 같은 if 조건문이 포함되는 경우, 추출부(110)는 도 2와 같은 제어흐름 그래프를 추출할 수 있다.
추출부(110)에 의해 복수의 수행 블록을 포함하는 제어흐름 그래프가 추출되면, 분석부(120)는 복수의 수행 블록 각각에서의 데이터 접근 패턴을 분석하여 데이터 간의 종속성을 분석할 수 있다. 이때, 분석부(120)는 응용 프로그램의 제어흐름을 반영하거나 데이터 간의 의미적 관계를 반영하여 종속성 및 연관성을 계산할 수 있다.
또한, 분석부(120)는 이와 같이 데이터 간의 연관 관계를 나타내는 데이터 종속성 분석 결과를 이용하여 데이터 접근식(예컨대, 오메가(Ω)로 지칭할 수 있다)을 생성하고, 생성된 데이터 접근식(Ω)을 해당 수행 블록에 매핑한다.
일 예로서, 추출부(110)에 의해 추출된 제어흐름 그래프에 수학식 1 및 도 2과 같은 if 조건문이 추출되면, 분석부(120)는 B의 위치에서 접근되는 데이터는 조건 A가 만족하는 경우에만 접근한다는 데이터 간의 종속성을 계산할 수 있다.
따라서, 본 발명의 실시예에 따른 조건 A에서 접근되는 데이터는 기존과 동일하게 폴링 간격값을 산정하고, B의 위치에서 접근되는 데이터에 대한 폴링은 A 조건이 만족하는 경우 활성화 시킬 수 있다. 즉, 조건 A가 활성화되지 않는 경우에는 동작 B에 대한 폴링은 수면 모드(sleeping mode)로 동작하게 하여 오버헤드를 줄일 수 있다.
만약, 데이터 종속성 분석 결과, 조건 A에서 접근하는 데이터가 a1, a2이고, 조건 A가 참일 때 B에서 접근하는 데이터가 b1 내지 bn이면, 분석부(120)는 {a1...a2}//{b1…bn}와 같은 데이터 접근식(Ω)을 생성할 수 있다. 이때, ‘//’ 기호 전후의 접근식이 서로 제어 상 종속관계에 있는 것을 나타낸다.
분석부(120)는 이와 같이 생성된 데이터 접근식(Ω)을 수학식 3과 같이 임의의 기호(예컨대, 두 개의 세미콜론(;;))와 함께 if 구조문에 표현할 수 있다.
Figure 112015014974083-pat00003
또한, 분석부(120)는 데이터 접근식(Ω)을 도 3과 같이 추출부(110)에서 추출된 제어흐름 그래프에 매핑할 수 있다.
이러한 데이터 종속성 분석 결과를 보유하면, polling rate 제어에 활용하는 것 외에도, 이후 데이터 간의 종속성을 파악하는 데에도 용이하다. 예컨대, 동작 B에서 접근되는(사용되는) 데이터 값은 조건 A에 종속적인 경우가 많으므로, 조건 A에서 이미 접근된 데이터 값의 일부를 재사용하는 것이 자연스러운 경우가 많다. 즉, 접근되는 프로그램 내의 동작 위치는 서로 거리가 있으나(여기서는, A와 B), 제어흐름 상 종속성이 있는 경우, 수행 중 접근 시기가 거의 차이가 없고 내용이 서로 종속적이거나 교집합이 있는 경우가 많다.
따라서, 내부적으로 제어흐름 그래프에 데이터 접근식(Ω)과 같은 형태의 종속성 분석 정보가 매핑되어 있다면, 산재되어 있는 데이터 접근식 내역을 모아 한 눈에 볼 수 있게 되며, 데이터 재사용 등의 응용 프로그램의 데이터 접근 경로(plan)의 최적화를 위해 이용될 수 있다.
다른 예로서, 수학식 2와 같은 ECA 구조문에서 event E에서 접근하는 데이터가 e1 내지 en이고, Condition C에서 접근하는 데이터가 c1 내지 cn이며, Action A에서 접근하는 데이터가 a1 내지 an인 것으로 데이터 간의 종속성이 계산된 경우, 분석부(120)는 {e1…en}//{c1…cn}//{a1…an} 같은 데이터 접근식(Ω)을 생성할 수 있다. 이 경우에도, ‘//’ 기호 전후의 접근식은 서로 제어 상 종속관계에 있다.
또한, 분석부(120)는 생성된 데이터 접근식(Ω)을 수학식 4와 같이 임의의 기호(예컨대, 두 개의 세미콜론(;;))와 함께 ECA 구조문에 표현할 수 있다.
Figure 112015014974083-pat00004
한편, 앞의 예에서 ai, bi, ci, ei 등은 이벤트(event)를 나타내는 데이터이므로 의미적으로 서로 유기적인 연관을 가지고 있고 RDF(Resource Description Format)와 같은 트리플(triple)구조 또는 방향 그래프(directed graph), 패스(path) 등으로 표현될 수 있다. 예컨대, 사용자 userA의 위치 데이터를 userA.position, 그 위치의 도시명을 userA.position.city와 같이 패스(path) 형태로 나타낼 수 있다.
제어부(130)는 이와 같은 데이터 간의 종속성 분석 결과를 이용하여 복수의 데이터 접근 경로(plan) 후보를 생성한다. 이는, 복수의 데이터 접근 경로 후보 중 비용 절감 측면에서 우위에 있다는 것이 확인된 어느 하나의 접근 경로를 이용하여 응용 프로그램의 데이터 접근 경로를 최적화하기 위함이다.
예컨대, 만약 응용 프로그램 내에 조건문이 존재하여 데이터 간의 종속성 분석 결과를 [;;(userA.position// userA.position.city)]와 같이 나타낼 수 있는 경우라면, userA.position.city에는 userA.position이 재사용될 수 있다. 이 때, 재사용하는 것보다 비용 차이가 별로 없는 경우이거나 데이터 값이 실시간으로 재산정 되어야하는 경우에는 재사용이 적용되지 않을 수 있다.
이를 위해, 제어부(130)는 데이터 종속성 분석 결과를 이용하여 복수의 접근 경로 후보 각각에 대한 비용(예컨대, 동작 시간)을 계산하고 서로 비교한다. 이후, 제어부(130)는 비교 결과 비용 절감 측면에서 우위에 있다는 것으로 확인된 어느 하나의 접근 경로를 선택하여 응용 프로그램을 수행할 수 있다. 이때, 복수의 접근 경로 후보 중 비용 절감 측면에서 우위가 있는 어느 하나의 접근 경로를 선택하는 방법은 공지된 기술로, 이에 대한 구체적인 설명은 생략한다.
이와 같이, 본 발명의 실시예에 따르면, 응용 프로그램의 데이터 접근 패턴 분석을 통해 접근 데이터 간의 종속성(연관관계)를 미리 분석하고, 종속성 분석 정보를 응용 프로그램의 제어흐름 그래프 상의 각 조건 블록에 매핑시킴으로써, 추후에 매핑된 데이터 종속성 분석 정보를 이용하여 응용 프로그램의 데이터 접근 경로를 최적화하여 데이터 처리의 효율성을 높인다.
또한, 기존의 단일 데이터 접근식에 국한되어 연구된 최적화 기법과 달리, 본 발명의 실시예에 따르면, 응용 프로그램 내의 복수의 데이터 접근식 들의 상호 연관관계를 분석함으로써, 이벤트 스트림 데이터 처리 성능을 높일 수 있는 장점이 있다.
도 4는 본 발명의 실시예에 따른 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법 흐름도이다.
이벤트 스트림 처리 성능 향상 장치(100)는 응용 프로그램에 대한 제어흐름 그래프(Control Flow Graph)를 추출한다(S410). 이때, 응용프로그램은 수행 동작에 대해 수학식 1과 같은 if 조건문 및 수학식 2와 같은 ECA(Event-Condition-Action) 구조문을 포함할 수 있다. 예컨대, 응용 프로그램에 수학식 1과 같은 if 조건문이 포함되는 경우, 이벤트 스트림 처리 성능 향상 장치(100)는 도 2와 같은 제어흐름 그래프를 추출할 수 있다
단계 S410에서 제어흐름 그래프가 추출되면, 이벤트 스트림 처리 성능 향상 장치(100)는 제어흐름 그래프에 포함된 복수의 수행 블록 각각에서의 데이터 접근 패턴을 분석하여 데이터 간의 종속성을 분석한다(S420). 이때, 이벤트 스트림 처리 성능 향상 장치(100)는 응용 프로그램의 제어흐름을 반영하거나 데이터 간의 의미적 관계를 반영하여 종속성 및 연관성을 계산할 수 있다.
이때, 이벤트 스트림 처리 성능 향상 장치(100)는 이와 같이 데이터 간의 연관 관계를 나타내는 데이터 종속성 분석 결과를 이용하여 데이터 접근식(예컨대, 오메가(Ω)로 지칭할 수 있다)을 생성할 수 있다.
일 예로서, 데이터 종속성 분석 결과, 조건 A에서 접근하는 데이터가 a1, a2이고, 조건 A가 참일 때 B에서 접근하는 데이터가 b1 내지 bn이면, 이벤트 스트림 처리 성능 향상 장치(100)는 {a1...a2}//{b1…bn}와 같은 데이터 접근식(Ω)을 생성할 수 있다. 이때, ‘//’ 기호 전후의 접근식이 서로 제어 상 종속관계에 있는 것을 나타낸다.
다른 예로서, 수학식 2와 같은 ECA 구조문에서 event E에서 접근하는 데이터가 e1 내지 en이고, Condition C에서 접근하는 데이터가 c1 내지 cn이며, Action A에서 접근하는 데이터가 a1 내지 an인 것으로 데이터 간의 종속성이 계산된 경우, 이벤트 스트림 처리 성능 향상 장치(100)는 {e1…en}//{c1…cn}//{a1…an} 같은 데이터 접근식(Ω)을 생성할 수 있다. 이 경우에도, ‘//’ 기호 전후의 접근식은 서로 제어 상 종속관계에 있다.
한편, 앞의 예에서 ai, bi, ci, ei 등은 event를 나타내는 데이터이므로 의미적으로 서로 유기적인 연관을 가지고 있고 RDF(Resource Description Format)와 같은 트리플(triple)구조 또는 방향 그래프(directed graph), 패스(path) 등으로 표현될 수 있다. 예컨대, 사용자 userA의 위치 데이터를 userA.position, 그 위치의 도시명을 userA.position.city와 같이 패스(path) 형태로 나타낼 수 있다.
또한, 이벤트 스트림 처리 성능 향상 장치(100)는 생성된 데이터 접근식(Ω)을 해당 수행 블록에 매핑한다. 예컨대, 이벤트 스트림 처리 성능 향상 장치(100)는 도 3과 같이 단계 S410에서 추출된 제어흐름 그래프의 해당 수행 블록에 매핑할 수 있다.
이벤트 스트림 처리 성능 향상 장치(100)는 데이터 간의 종속성 분석 결과를 이용하여 복수의 데이터 접근 경로(plan) 후보를 생성한다(S430). 이는, 복수의 데이터 접근 경로 후보 중 비용 절감 측면에서 우위에 있다는 것이 확인된 어느 하나의 접근 경로를 이용하여 응용 프로그램의 데이터 접근 경로를 최적화하기 위함이다.
예컨대, 만약 응용 프로그램 내에 조건문이 존재하여 데이터 간의 종속성 분석 결과를 [;;(userA.position// userA.position.city)]와 같이 나타낼 수 있는 경우라면, userA.position.city에는 userA.position이 재사용될 수 있다. 이 때, 재사용하는 것보다 비용 차이가 별로 없는 경우이거나 데이터 값이 실시간으로 재산정 되어야 하는 경우에는 재사용이 적용되지 않을 수 있다.
이를 위해, 이벤트 스트림 처리 성능 향상 장치(100)는 데이터 종속성 분석 결과를 이용하여 복수의 접근 경로 후보 각각에 대한 비용(예컨대, 동작 시간 등)을 계산하고(S440), 계산 결과비용 절감 측면에서 우위에 있다는 것으로 확인된 어느 하나의 접근 경로를 선택하여 응용 프로그램을 수행할 수 있다(S450). 이때, 복수의 접근 경로 후보 중 비용 절감 측면에서 우위가 있는 어느 하나의 접근 경로를 선택하는 방법은 공지된 기술로, 이에 대한 구체적인 설명은 생략한다.
이와 같이, 본 발명의 실시예에 따르면, 응용 프로그램의 데이터 접근 패턴 분석을 통해 접근 데이터 간의 종속성(연관관계)를 미리 분석하고, 종속성 분석 정보를 응용 프로그램의 제어흐름 그래프 상의 각 조건 블록에 매핑시킴으로써, 추후에 매핑된 데이터 종속성 분석 정보를 이용하여 응용 프로그램의 데이터 접근 경로를 최적화하여 데이터 처리의 효율성을 높인다.
또한, 기존의 단일 데이터 접근식에 국한되어 연구된 최적화 기법과 달리, 본 발명의 실시예에 따르면, 응용 프로그램 내의 복수의 데이터 접근식 들의 상호 연관관계를 분석함으로써, 이벤트 스트림 데이터 처리 성능을 높일 수 있는 장점이 있다.
이상, 본 발명의 바람직한 실시예를 통하여 본 발명의 구성을 상세히 설명하였으나, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 본 명세서에 개시된 내용과는 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 본 발명의 보호범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구의 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100 : 이벤트 스트림 처리 성능 향상 장치
110 : 추출부 120 : 분석부
130 : 제어부

Claims (8)

  1. 추출부에 의해, 응용 프로그램에 대한 제어흐름 그래프를 추출하는 단계;
    분석부에 의해, 상기 제어흐름 그래프에 포함된 복수의 수행 블록 각각에서 이벤트 스트림 데이터에 접근하는 데이터 접근 패턴을 분석하는 단계;
    제어부에 의해, 상기 데이터 접근 패턴의 분석 결과를 이용하여 복수의 데이터 접근 경로 후보를 생성하는 단계; 및
    상기 제어부에 의해, 상기 복수의 데이터 접근 경로 후보 각각의 비용을 계산하고, 상기 비용 계산 결과를 고려하여 상기 복수의 데이터 접근 경로 후보 중 어느 하나의 접근 경로를 선택하여 상기 응용 프로그램을 실행하는 단계;
    를 포함하는 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법.
  2. 제1항에서,
    상기 제어흐름 그래프를 추출하는 단계는,
    상기 응용 프로그램에 포함된 동작 구조에 따라 상기 복수의 수행 블록을 포함하는 지배자 트리(dominance tree/dominator tree)를 추출하는 단계인 것인 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법.
  3. 제1항에서,
    상기 데이터 접근 패턴을 분석하는 단계는,
    상기 이벤트 스트림 데이터들 간의 종속성을 분석하는 단계인 것인 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법.
  4. 제1항에서,
    상기 응용 프로그램을 실행하는 단계에서 상기 비용 계산 결과는,
    동작 시간인 것인 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 방법.
  5. 응용 프로그램에 대한 제어흐름 그래프를 추출하는 추출부;
    상기 제어흐름 그래프에 포함된 복수의 수행 블록 각각에서 이벤트 스트림 데이터에 접근하는 데이터 접근 패턴을 분석하는 분석부; 및
    상기 데이터 접근 패턴의 분석 결과를 이용하여 복수의 데이터 접근 경로 후보를 생성하고, 상기 복수의 데이터 접근 경로 후보 각각의 비용을 계산하고, 상기 비용 계산 결과를 고려하여 상기 복수의 데이터 접근 경로 후보 중 어느 하나의 접근 경로를 선택하여 상기 응용 프로그램을 실행하는 제어부
    를 포함하는 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치.
  6. 제5항에서,
    상기 추출부는,
    상기 응용 프로그램에 포함된 동작 구조에 따라 상기 복수의 수행 블록을 포함하는 지배자 트리(dominance tree/dominator tree)를 추출하는 것인 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치.
  7. 제5항에서,
    상기 분석부는,
    상기 이벤트 스트림 데이터들 간의 종속성을 분석하는 것인 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치.
  8. 제5항에서,
    상기 제어부는,
    상기 복수의 데이터 접근 경로 후보 각각의 동작 시간을 계산하는 것인 응용 프로그램의 데이터 접근 분석을 통한 이벤트 스트림 처리 성능 향상 장치.
KR1020150021477A 2015-02-12 2015-02-12 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치 KR102297435B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150021477A KR102297435B1 (ko) 2015-02-12 2015-02-12 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150021477A KR102297435B1 (ko) 2015-02-12 2015-02-12 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160099257A KR20160099257A (ko) 2016-08-22
KR102297435B1 true KR102297435B1 (ko) 2021-09-03

Family

ID=56854785

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150021477A KR102297435B1 (ko) 2015-02-12 2015-02-12 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102297435B1 (ko)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110292834A1 (en) * 2010-05-27 2011-12-01 International Business Machines Corporation Maintaining Time Series Models for Information Technology System Parameters
EP2736002A1 (en) * 2012-11-22 2014-05-28 Baden-Württemberg Stiftung gGmbH Method, system and computer program product for enforcing access to event attributes of event streams in a complex event processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Martin Kleeppmann. Stream Processing, CEP, Event Sourcing, and Data Streaming Explained. 2015.01.29.

Also Published As

Publication number Publication date
KR20160099257A (ko) 2016-08-22

Similar Documents

Publication Publication Date Title
US9417859B2 (en) Purity analysis using white list/black list analysis
US8726255B2 (en) Recompiling with generic to specific replacement
US8839204B2 (en) Determination of function purity for memoization
US8752021B2 (en) Input vector analysis for memoization estimation
US8970607B2 (en) Run-time allocation of functions to a hardware accelerator
US7739662B2 (en) Methods and apparatus to analyze processor systems
CN104424402B (zh) 一种用于检测盗版应用程序的方法及装置
US20130074057A1 (en) Selecting Functions for Memoization Analysis
US20130074056A1 (en) Memoizing with Read Only Side Effects
US9223552B2 (en) Compiling optimization of an application and compiler thereof
EP2963547A1 (en) Compiling device, compiling method, and storage medium storing compiler program
US9880834B2 (en) Source program analysis system, source program analysis method, and recording medium on which program is recorded
WO2017104655A1 (ja) 情報分析システム、情報分析方法、及び、記録媒体
KR20150091521A (ko) 데이터 정규표현식의 마이닝 방법 및 장치
US20120095986A1 (en) Runtime optimization of spatiotemporal events processing background
US9286036B2 (en) Computer-readable recording medium storing program for managing scripts, script management device, and script management method
US8788449B2 (en) Interface for creating and editing boolean logic
KR102147355B1 (ko) 프로그램 변환 방법 및 장치
Xiong et al. ShenZhen transportation system (SZTS): a novel big data benchmark suite
KR102297435B1 (ko) 응용 프로그램의 이벤트 스트림 데이터 처리 성능 향상 방법 및 장치
KR101995176B1 (ko) 프로그램 실행 컨텍스트 기반의 빅데이터를 활용한 역공학 방법 및 시스템
KR20150128711A (ko) 컴퓨터 시스템 활동의 트레이스 타임라인을 분석하기 위한 방법 및 시스템
CN103870313B (zh) 一种虚拟机任务调度方法及系统
JPWO2017204139A1 (ja) データ処理装置、データ処理方法、およびプログラム記録媒体
JP6402637B2 (ja) 分析プログラム、分析方法及び分析装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right