KR101133516B1 - 데이터 스트림에서의 다중 조인 질의 최적화 방법 - Google Patents

데이터 스트림에서의 다중 조인 질의 최적화 방법 Download PDF

Info

Publication number
KR101133516B1
KR101133516B1 KR1020090033152A KR20090033152A KR101133516B1 KR 101133516 B1 KR101133516 B1 KR 101133516B1 KR 1020090033152 A KR1020090033152 A KR 1020090033152A KR 20090033152 A KR20090033152 A KR 20090033152A KR 101133516 B1 KR101133516 B1 KR 101133516B1
Authority
KR
South Korea
Prior art keywords
join
cost
joins
query
average
Prior art date
Application number
KR1020090033152A
Other languages
English (en)
Other versions
KR20100114664A (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 KR1020090033152A priority Critical patent/KR101133516B1/ko
Publication of KR20100114664A publication Critical patent/KR20100114664A/ko
Application granted granted Critical
Publication of KR101133516B1 publication Critical patent/KR101133516B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

데이터 스트림에서의 다중 조인 질의 최적화 방법과 조인 질의 최적화 방법이 개시된다. 본 발명에 따른 다중 조인 질의 최적화 방법은 (a) 입력되는 데이터 스트림에 대하여 미리 등록된 복수 개의 질의에 따라 결정되는 가능한 조인들 각각의 과거 임의의 시점으로부터의 현재 시점까지의 조인 비용의 평균 및 표준편차와 몇 개의 질의에서 사용되는지를 나타내는 공유수를 저장하는 단계; (b) 선택 가능한 조인들 중에서 조인 비용의 평균이 가장 작은 조인의 조인 비용의 유효 범위와 중복되는 유효 범위를 가지는 조인들의 집합을 수행 가능 조인 후보 집합으로 결정하는 단계-여기서 조인 비용의 유효 범위는 상기 조인 비용의 평균 및 표준편차를 이용하여 정해지고, 상기 공유수가 2 이상인 조인의 평균은 보다 작게 수정된 값을 적용함; 및 (c) 상기 수행 가능 조인 후보 집합에 속하는 조인과 그 다음에 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출하고, 상기 산출된 조인 비용 중 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정하거나, 상기 조합 각각을 상기 (b) 단계의 선택 가능한 조인들로 하여 상기 (b) 단계를 반복하는 단계를 포함하는 것을 특징으로 한다.
데이터 스트림, 다중 조인 질의, 조인 질의 최적화

Description

데이터 스트림에서의 다중 조인 질의 최적화 방법{Method for optimizing multiple join queries over data streams}
본 발명은 데이터 스트림에서 질의 처리를 수행하기 위한 방법에 관한 것으로서, 보다 상세하게는 데이터 스트림에서의 조인 질의 최적화 방법과 다중 조인 질의 최적화 방법에 관한 것이다.
최근 산업발달과 고도 사회로 접어들면서 과학 기술이나 공학 분야 이외에 경제 사회 등의 다양한 분야에서도 각종 데이터들의 중요성이 강조되고 있으며, 데이터의 관리방식도 일정한 저장공간에 데이터를 저장한 후 관리?활용하던 체계에서 데이터 종류의 다양화, 용량의 대형화, 그리고 연속적인 발생특성으로 인한 한정된 공간을 효율적으로 처리하는 방식으로 점차 변화하고 있다. 이러한 종류의 데이터는 USN(Ubiquitous Sensor Network), 주식거래, 금융거래, 전화통화, 교통관리 및 교통상황수집자료, 위성통신 등에서 찾아볼 수 있으며, 실시간에 연속적으로 발생되어 빠른 속도로 관리 시스템에 입력되어 들어오는 이러한 데이터를 데이터 스트림(Data Stream)라 한다. 데이터 스트림의 경우 시스템 입력 속도가 매우 빠르고 연속적이어서 일반적으로 데이터 처리에 사용되는 DBMS에서 데이터를 저장한 후 처 리하는 방식을 적용할 수 없다. 이미 많은 연구자들이 오랜 동안 데이터 스트림의 처리기술을 연구해 Aurora, STREAM, 그리고 Telegraph(Tiny DB) 등과 같은 DSMS(Data Stream Management System)이 개발된바 있다. 이런 시스템들은 모두 데이터 스트림의 처리를 목적으로 만들어졌으며, 효과적인 질의 처리를 위해서 질의 계획을 최적화 하고, 특정 Box 연산들을 통해 연속 질의로 입력되는 데이터 스트림에 질의가 처리되도록 하고 있다. 또한 과다한 입력 데이터로 인한 시스템 부하를 방지하기 위해 데이터를 선택적으로 버릴 수 있도록 하고 있다. 그 가운데 STREAM은 데이터 스트림의 관리 및 처리를 위해 개발된 시스템으로서 CQL(Continuous Query Language)이라는 언어를 자체적으로 개발하여 사용하기도 했는데, CQL을 통해 관계 연산자 셋을 만들어 입력?저장되는 데이터에 적용함으로써 연속적으로 질의를 처리하도록 하였다. 그 밖에도 다양한 시스템들이 최근 개발되고 있으며, 대부분 데이터 스트림 처리를 위한 다중 연속 질의의 최적화에 상당한 비중을 두고 있다. 데이터 처리의 효율성을 높이기 위한 질의 처리 연구로는 단일질의에서 연속질의 처리, 질의계획평가, 그리고 연산 스케줄링 등에 관한 연구가 주로 수행되고 있으며, 최근에는 데이터 스트림의 종합적인 처리와 서비스의 질을 향상시키기 위한 다중 연속 질의(Multiple Continuous Query)와 관련된 연구가 증가하고 있는 추세이다.
데이터 스트림 처리에 관한 연구는 최근 몇 십년 간 지속적으로 수행되어 왔으며, 다양한 연구성과를 거두고 있는데, Aurora[2], Telegraph[17], STREAM[18] 같은 스트림 쿼리 프로세싱을 수행할 수 있는 시스템들이 개발 되어 흥미로운 연구 결과들을 보여주었다. 그리고 최근에는 대용량 스트림 데이터의 증가에 따라 센서 모니터링 데이터와 같이 상당한 수준의 연속질의가 연속적으로 처리되어야 하는 데이터 처리시스템에서는 응용 프로그램들이 한꺼번에 대량의 데이터 스트림을 처리할 수 있는 능력이 추가적으로 요구 된다. 또한, CACQ[3][18], PSoup[19]에서는 데이터 스트림을 처리하기 위한 다중 연속질의를 공유할 수 있는 방법을 제안하였는데, 두 가지 모두 가장 큰 윈도우 사이즈를 사용하여 다중 질의에서의 공유 윈도우 조인을 수행한다. 그에 비해 Kang[8] 등은 서로 다른 입력속도를 가진 두 개의 스트림을 고려한 윈도우 공유 조인 및 비용을 통해 효과를 평가하는 방법을 연구하였다. 이 것은 윈도우 조인 조건의 공유를 통한 연산처리 시 다중 연속 질의의 질의 공유 연산에서는 메모리와 CPU의 활용 정도가 비용발생의 주요 인자로 작용하기 때문이다. 다중 연속질의에서 연산 공유의 문제는 더 이상 새로운 연구 대상은 아니다. 이미 전통적인 관계형 데이터베이스분야의 연구에서도 최적화된 공유 질의 계획을 찾는 연구들이 수행된바 있다[22]. 최근의 다중 연속질의에 대한 연구에서 Mistry[7], Prasan[14] 등은 질의 집합에서 최적화 계획을 찾는 공간을 줄이기 위한 방법으로 휴리스틱 방법을 사용하였다. 그리고 Hammad[12], Wang[16] 등은 연속질의에서 연산 공유에 초점을 맞춘 연구를 수행 하였으며, Wang은 서로 다른 크기의 윈도우를 가진 조인을 공유하여 수립 할 수 있는 다양한 질의 계획들을 제안한바 있다. 그 외에 스트림 상에서의 조인 연산을 수행하는 방법에 대한 연구도 활발히 이루어졌는데, [5]에서는 단일 연속 질의의 조건이 2개 이상의 스트림을 조인하는 질의의 경우 출력 속도를 최대화하기 위한 조인 방법을 제시한다. 대부분의 주 어진 메모리 내에서 모든 데이터스트림들을 저장할 수가 없어 오버플로우가 났을 경우, 부하 분산을 통하여 모든 데이터 스트림에 대한 질의 결과를 주는 것은 아니지만 메모리 내에서 등록된 연속 질의를 처리하거나 질의 계획의 최적화를 다시 함으로써 해결을 한다. [6]은 조인의 중간 결과를 저장하지 않고 스트림에서 데이터가 들어오면 스트림의 입력 속도가 낮은 스트림일수록 중첩 반복의 바깥쪽(outer loop)으로 하는 방식으로 스트림을 처리하는 방법을 제시한다. 이러한 방법은 현재 들어온 스트림은 입력 속도가 1이기 때문에 가장 바깥쪽(outer)에 위치하게 되며, 그 다음부터는 입력 속도 순으로 정렬하여 각각 반복을 통하여 조인을 처리하게 된다.
STREAM[7]은 데이터 스트림이 들어오면 주어진 필터(선택 조건)의 순서대로 수행을 하고 결과를 출력하고, 일정 확률로 들어온 데이터를 프로파일링하여 각 필터의 선택도를 각각 계산하여 매트릭스 뷰(Matrix View)에 저장을 한 후, greedy 알고리즘을 이용하여 선택도가 낮은 필터를 먼저 수행하도록 동적으로 필터의 순서를 바꾸는 A - Greedy 알고리즘을 제안하고 이를 조인의 순서 결정까지 확장하여 적용한다. 이러한 방법은 시시각각 변하는 스트림 환경에서 각 상황에 따라 최적화된 필터의 순서를 찾아내고 그 순서대로 필터를 처리함으로써 성능의 향상을 기대할 수 있지만, 매트릭스 뷰를 저장, 관리해야 하는 오버헤드도 가지고 있다.
TelegraphCQ[8]에서는 Eddy[10]을 이용하여 새로 들어온 튜플을 라우팅하고 스케줄링하게 되는데, 우선순위가 높은 튜플부터 처리하게 된다. 여기에서 라우팅이란 수행해야 될 다음 연산자를 결정하는 단계를 의미한다. 데이터 스트림의 기아 현상(starvation)을 막기 위해서 최근에 들어온 튜플일수록 더 낮은 우선순위를 가지고 있고, 시간이 지남에 따라서 우선순위가 높아지는 방법을 사용한다. Eddy에서는 연산자의 처리 순서를 결정하기 위해서 "lottery scheduling"이라는 방법을 사용한다[8], Eddy에 연결되어 있는 각각의 연산자들은 각각 'ticket account"라는 것을 가지고 있고, 이는 각 연산자의 선택도를 나타내는 지표가 되며, 어떤 연산자에 티켓의 수가 많으면 선택도가 낮음을 의미하며, 튜플이 Eddy에 의해서 수행해야 될 다음 연산자를 선택할 때 연산자가 다음에 수행될 연산자로 뽑힐 확률을 그 각각의 연산자가 가지고 있는 티켓의 수와 비례하도록 하여, 선택도가 낮은 연산자를 우선으로 선택하는 방법이다.(이는 lottery개념을 이용하여, 랜덤하게 선택된다.)
Aurora[13]에서는 처음에는 최적화되지 않은 임의의 네트워크를 구성하고 있는 상태이며, 시스템이 실행되면서 box(연산자)가 처리될 때의 평균 비용이나 각 box의 선택율(selectivity) 등의 통계 값을 수집하기 시작하며, 이러한 정보들을 바탕으로 rum-time에 최적화를 수행하게 된다. 대량의 질의들에 대해 모든 box들을 병합하여 처리하는 것은 NP-complete 문제가 되어 적합한 해결책이 되지 않는다. 그 대신 최적화기(optimizer)는 전체 네트워크를 여러 개의 서브 네트워크(sub-network)로 나누어 각각 최적화를 수행하며, 하나의 서브 네트워크가 최적화 될 때 다른 서브 네트워크는 정상적으로 질의를 처리하고 있을 수 있다. 최적화 방법은 인접한 box들을 병합함으로써 성능을 향상시킬 수도 있고, 각 box의 튜플 처리 비용을 계산하여 더 적은 비용을 갖는 box를 먼저 수행하는 방법을 사용한다.
NiagaraCQ[9]는 XML데이터에 대한 질의 결과를 처리하고 관심에 대상이 되는 웹 문서의 변화를 감시하기 위한 시스템으로 연속질의 처리를 위해 개발되었다. 분산된 많은 XML 파일에 대한 대규모의 연속질의 처리를 Incremental Group 처리 방법을 도입하였으며 XML 문서가 변경되었을 경우 변경된 부분만을 고려하는 시스템이며, 이질적인 데이터에 대한 Push과 Poll Model을 모두 적용하여 원천 데이터의 변화를 탐지할 수 있다.
참 고 문 헌
[1] Abadi D. J., Lindner W., Madden S., Schuler J., "An Integration Framework for Sensor Networks and Data Stream Management Systems", Proceedings of the 30th VLDB Conference, Toronto, Canada, 2004.
[2] Abadi, D. J. Carney, D., Centintemel, U., Cherniack, M., Convey, C., Lee, S., Stonebraker, M., Tatbul, N., Zdonik, S. "Aurora: A New Model and Architecture for Data Stream Management" VLDB Journal, 2003.
[3] Babu S. and Widom J., "Continuous Queries Over Data Streams", ACM SIGMOD Record archive volume 30, Issue 3, 2001
[4] B. Babcock, Babu S., M. Datar, R. Motwani, and Widom J., "Models and Issue in Data Stream Systems", In Proc. of PODS, 2002.
[5] Babcock, B., Babu, S., Datar, M., Motwani, R. "Chain: Operator Scheduling for Memory Minimization in Data Stream Systems", SIGMOD, 2003.
[6] Das A., Gehrke J., and Riedewald M., "Approximate Join Processing Over Data Streams", SIGMOD, 2003.
[7] H. Mistry, P. Roy, S. Sudarshan, and K. Ramamritham "Materialized view selection and maintenance using multi-query optimization" In SIGMOD, 2001.
[8] J. Kang, J. F. Naughton, and S. Viglas, "Evaluating window joins over unbounded streams", In Proc. of the 2003 Intl. Conf. on Data Engineering, Mar. 2003.
[9] Lukasz Golab M., Tamer Ozsu, "Processing Sliding Window Multi-Joins in Continuous Queries over Data Streams", Proc. VLDB, 2003
[10] Liu Y., Plale B., "Query Optimization for Distributed Data Steram", ISCA 15th International Conference (SEDE'06), Los Angeles, July 2006.
[11] Liu Y., Plale B., "Multi-Model Based Optimization for Stream Query Processing", KSI Eighteenth International Conference (SEKE'06), San Francisco, July 2006.
[12] Moustafa A. Hammad, Michael J. Franklin, Walid G. Aref, Ahmed K. Elmagarmid, "Scheduling for shared window joins over data streams", Proc. VLDB, 2003.
[13] M. H. Ali, W. G. Aref, R. Bose, A. K. Elmagarmid, A. Helal, I. Kamel, and M. F. Mokbel. NILE-PDT: "A phenomenon detection and tracking framework for data stream management systems", In VLDB, 2005
[14] Prasan Roy, S. Seshadri, S. Sudarshan and Siddhesh Bhobhe, "Efficient and Extensible Algorithms For Multi Query Optimization", In Proc of the ACM SIGMOD Conf. on Management of Data, May 2000.
[15] Park Hong Kyu, "Optimizing Multiway Join Query Over Data Streams", Yonsei University, Master thesis, 2006.
[16] Song Wang, Elke Rundensteiner and Ganguly S., Bhatnagar S., "State-Slice: New Paradigm of Multi-query Optimization of Window-based Stream Queries", Proc. VLDB, 2006.
[17] S. Krishnamurthy M. J. Franklin, J. M. Hellerstein, and G. Jacobson, "The case for precision sharing", In VLDB, 2004.
[18] Samuel Madden, Wei Hong, Joseph M. Hellerstein and Michael Franklin, TinyDB web page http://telegraph.cs.berkeley.edu/tinydb, 2007.
[19] S. Madden, M., A. Shah, J. M. Hellerstein, and et al, "Continuously adaptive continuous queries over streams", In Proc. of SIGMOD Conf., 2002.
[20] S. Chandrasekaran, and M. J. Franklin. "Streaming queries over streaming data", In VLDB Conf. Aug 2002.
[21] The STREAM groups, "STREAM: The Stanford Stream Data Manager(short overview paper)", IEEE Data Engineering Bulletin, March 2003.
[22] TIMOS K.SELLIS, "Multiple-Query Optimization", ACM Transactions on Database Systems, 1988.
[23] Yali Zhu, Elke A Rundensteiner and George T. Heineman, "Dynamic Plan Migration for Continuous Queries over Data Streams", ACM, SIGMOD June 2004.
[24] Thanaa M. Ghanem, Moustafa A. Hammad, Mohamed F. Mokebel, "Incremental Evaluation of Sliding-Window Queries over Data Streams", IEEE, Vol. 19, NO. 1, January 2007.
본 발명이 이루고자 하는 기술적 과제는 계속적으로 스트림의 특성이 변화하는 스트림 환경에서 적응적으로 질의 최적화를 수행할 수 있으며, 다중 질의인 경우 조인 비용과 더불어 각 조인의 공유 정도도 고려하여 질의 최적화를 수행할 수 있는 조인 질의 최적화 방법, 그리고 다중 조인 질의 최적화 방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 데이터 스트림에서의 다중 조인 질의 최적화 방법은, (a) 입력되는 데이터 스트림에 대하여 미리 등록된 복수 개의 질의에 따라 결정되는 가능한 조인들 각각의 과거 임의의 시점으로부터의 현재 시점까지의 조인 비용의 평균 및 표준편차와 몇 개의 질의에서 사용되는지를 나타내는 공유수를 저장하는 단계; (b) 선택 가능한 조인들 중에서 조인 비용의 평균이 가장 작은 조인의 조인 비용의 유효 범위와 중복되는 유효 범위를 가지는 조인들의 집합을 수행 가능 조인 후보 집합으로 결정하는 단계-여기서 조인 비용의 유효 범위는 상기 조인 비용의 평균 및 표준편차를 이용하여 정해지고, 상기 공유수가 2 이상인 조인의 평균은 보다 작게 수정된 값을 적용함; 및 (c) 상기 수행 가능 조인 후보 집합에 속하는 조인과 그 다음에 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출하고, 상기 산출된 조인 비용 중 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정하거나, 상기 조합 각각을 상기 (b) 단계의 선택 가능한 조인들로 하여 상기 (b) 단계를 반복하는 단계를 포함하는 것을 특징으로 한다.
상기 (b) 단계에서 상기 공유수가 2 이상인 조인의 조인 비용의 유효 범위를 정함에 있어서 조인 비용의 평균으로 원래 값을 상기 공유수로 나눈 값을 적용할 수 있다.
또한, 상기 (a) 단계에서 상기 조인 비용의 평균 및 표준편차를 구함에 있어서, 과거에 수행된 적이 있는 조인 연산에 대해서는 수행되었을 때의 조인 비용을 이용하고, 과거에 수행되지 않은 조인 연산에 대해서는 미리 정의된 비용 모델에 따라 비용을 예측할 수 있다.
또한, 상기 (a) 단계는 이미 저장되어 있던 조인 비용들과 입력되는 데이터 스트림에 대하여 측정된 조인 비용을 합쳐서 가우시안 분포를 띠고 있다고 가정하고 상기 조인 비용의 평균 및 표준편차를 저장할 수 있다.
또한, 상기 (b) 단계에서 상기 조인 비용의 유효 범위는 임의의 조인에 대해 서 상기 평균을 μ, 상기 표준편차를 σ라 할때 [μ-k*σ, μ+k*σ]-여기서 k는 미리 정해진 변수-로 정해질 수 있다. 이때 상기 k는 0 이상의 임의의 값일 수 있다.
또한, 상기 (b) 단계는, 조인 비용의 평균이 가장 작은 조인의 유효 범위 내 최대값보다 작은 유효 범위 내 최소값을 가지는 조인을 상기 수행 가능 조인 후보 집합의 원소로 결정할 수 있다.
또한, 상기 (c) 단계에서 미리 정해진 변수에 따라서 상기 (b) 단계의 반복 여부 또는 상기 (b) 단계를 반복하는 횟수가 결정될 수 있다.
상기 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른 다중 조인 질의 최적화 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상기 기술적 과제를 해결하기 위하여 본 발명에 따른 데이터 스트림에서의 조인 질의 최적화 방법은, (a) 입력되는 데이터 스트림에 대하여 미리 등록된 질의에 따라 결정되는 가능한 조인들 각각의 과거 임의의 시점으로부터의 현재 시점까지의 조인 비용의 평균 및 표준편차를 저장하는 단계; (b) 선택 가능한 조인들 중에서 조인 비용의 평균이 가장 작은 조인의 조인 비용의 유효 범위와 중복되는 유효 범위를 가지는 조인들의 집합을 수행 가능 조인 후보 집합으로 결정하는 단계-여기서 조인 비용의 유효 범위는 상기 조인 비용의 평균 및 표준편차를 이용하여 정해짐; 및 (c) 상기 수행 가능 조인 후보 집합에 속하는 조인과 그 다음에 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출하고, 상기 산출된 조인 비용 중 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정하거나, 상기 조합 각각을 상기 (b) 단계의 선택 가능한 조인들로 하여 상기 (b) 단계를 반복하는 단계를 포함하는 것을 특징으로 한다.
상기 기술적 과제를 해결하기 위하여 상기된 본 발명에 따른 조인 질의 최적화 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
상술한 본 발명에 의하면, 계속적으로 스트림의 특성이 변화하는 스트림 환경에서 적응적으로 질의 최적화를 수행할 수 있다. 또한, 다중 질의의 경우 조인 비용과 더불어 각 조인의 공유 정도도 고려하여 질의 최적화를 수행할 수 있다.
이하에서는 도면을 참조하여 본 발명의 바람직한 실시예들을 상세히 설명한다. 이하 설명 및 첨부된 도면들에서 실질적으로 동일한 구성요소들은 각각 동일한 부호들로 나타냄으로써 중복 설명을 생략하기로 한다. 또한 본 발명을 설명함에 있어 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그에 대한 상세한 설명은 생략하기로 한다.
1. 시스템 모델
우선, 본 발명의 바람직한 실시예들을 설명하기에 앞서, 본 발명의 실시예가 적용될 수 있는 시스템 모델에 관하여 설명한다.
1.1 조인 연산
데이터 스트림 처리에 관련된 연산들 중 시스템에 가장 큰 부하를 주는 연산 중 하나는 조인 연산이다. 특히 2개 이상의 조인 연산을 가진 연속 질의(다중 조인 연속 질의)를 처리하는 경우, 다른 연산에 비해 시스템에 훨씬 큰 부하를 줄 뿐만 아니라 어떤 조인을 먼저 수행할 것이냐에 따라 시스템의 성능에 많은 영향을 끼친다. 이러한 다중 조인 연속 질의가 시스템에 많이 등록되어 있는 경우 매우 커다란 오버헤드가 되는 것은 당연하다. 이러한 다수의 질의를 효과적으로 처리하기 위한 효과적인 방법은 다수의 질의에서 동시에 쓰이는 조인은 공유함으로써 질의 처리 비용을 감소시키는 것이다.
CQ1
SELECT *
FROM R [W1 Min], S [W1 Min], T [W1 Min]
WHERE R.a=S.b and S.c=T.d

CQ2
SELECT *
FROM R [W2 Min], S [W2 Min], U [W2 Min]
WHERE S.c=T.d and T.e=U.f
[표 1]에서 Q1과 CQ2는 다중 연속 질의의 한 예이다. [표 1]에서 CQ1과 CQ2의 질의에 사용 된 조인 조건 가운데 공통으로 사용된 조인 조건을 찾아 다중 연속 질의의 전체 질의 수행 계획 수립 시 조인 연산을 개별적으로 실행 하지 않고 공통된 조인 조건의 일회 실행을 통해 생성되는 중간 연산 결과를 재사용함으로써 조인연산의 실행 횟수를 줄일 수 있다. [표 1]에서 조인 연산의 중간 결과를 공유할 때는 각 질의의 윈도우의 크기를 고려해야만 하는데, CQ1과 CQ2의 입력 스트림의 윈도우 크기가 서로 다를 경우 중첩 윈도우의 크기가 다르기 때문에 중간결과를 바로 사용할 수 없다. 따라서 윈도우 크기에 따라 중간 결과를 다음 조인 연산에 적용 가능 하도록 조정 해주어야만 하며, 이러한 문제는 튜플 라우팅 연산을 통해 해결 할 수 있다[7].
도 1의 (a)는 [표 1]의 CQ1과 CQ2의 구성 가능한 질의 수행 계획들 중의 하나이고, 도 1의 (b)는 S
Figure 112009023002156-pat00001
T조인 연산의 중간결과를 공유하여, 질의 연산을 수행한 경우이다.
1.2 조인 비용 모델
비용 기반 질의 최적화를 위해서는 적절한 비용 모델은 매우 중요하며, 본 발명의 실시예에서는 Kang[8]이 제안한 조인 비용 모델을 기반으로 비용 모델을 만들 수 있다. Kang[8]은 하나의 단일 이진 조인 연산을 기준으로 비용 모델을 만들었는데, 이것은 2개 이상의 연속 질의를 대상으로 하는 최적화 방법에는 적절한 비용 모델이 될 수 없다. 왜냐하면 다중 조인의 경우 하나의 조인 연산의 출력 속도가 다른 조인의 입력 속도가 되기 때문에, 다중 조인의 비용계산은 이진 조인의 결과의 크기가 매우 중요한 요소가 된다. 본 발명의 실시예에서 조인 비용은 2개의 스트림을 조인하는 조인에 대한 단위 시간당 처리해야 할 일로서 정의 할 수 있다. 또 조인비용은 다시 크게 데이터 스트림이 입력되었을 때 처리해야 할 일과 조인된 결과를 처리해야 할 일로 나뉠 수 있다. 데이터 스트림이 입력되었을 때 처리해야 하는 일은 개개의 스트림이 입력되었을 때의 일의 합으로 쉽게 계산할 수 있으며, 조인된 결과를 처리하는 일은 해당 조인의 조인 선택도와 입력 스트림의 입력 속도를 이용하여 계산할 수 있다.
다음 [표 2]는 조인 비용 모델을 정의하기 위한 용어들을 정리한 표로서 [표 1]에서 Kang[8]이 사용한 용어를 기초로 하여 다중 조인 질의 비용을 계산 위한 과정에 필요한 기호들을 들을 추가하여 정의 하였다.
λ R , λ S 스트림 R과 S의 입력속도
W 윈도우의 크기
|R| 윈도우 R의 해시 버켓의 수
ΔR 스트림 R에서 새로 들어온 데이터
σ R,S 스트림 R과 S의 조인 선택도
C i (R,S) 새로운 스트림이 들어왔을 때 필요한 연산 비용
C o (R,S) 조인된 결과를 처리하는 비용
C(R,S) 스트림 R과 S의 조인 비용
데이터 스트림이 시스템에 입력되는 경우 처리 프로세스는 크게 들어온 데이터 스트림을 삽입하는 연산, 상대 스트림을 조사하여 조인 결과를 생성하는 연산, 그리고 윈도우 범위를 벗어난 스트림 데이터를 삭제하는 연산의 3가지로 정의될 수 있다. Kang[8]의 연구에서는 스트림 데이터를 삽입하는 연산과 삭제하는 연산은 조인결과를 생성하는 연산에 비해 비용발생 규모가 상대적으로 매우 작은 것으로 평가했다. 본 발명의 실시예에서도 삽입과 삭제 연산에 대해서는 계산과정의 효율성을 위해 비용산출에 고려하지 않고 상대 스트림을 조사하는 연산만을 고려하였다. 따라서 에서 비용유발 효과가 작은 두 가지 연산을 제외한 경우 두 개의 스트림 R과 S의 조인비용 계산식은 다음 수학식과 같이 정의내려질 수 있다.
Figure 112009023002156-pat00002
상기 수학식의 우변은 각각 스트림 R에서 새로운 데이터가 들어왔을 때 스트림 S를 조사하는 비용과 스트림 S에서 새로운 데이터가 들어왔을 때 스트림 R을 조사하는 비용의 합을 의미한다. 그리고 조인을 수행하면서 생성된 결과들은 다음 조인들을 위해 저장되어야 하기 때문에 그 비용도 고려되어야 하는데 이는 스트림들의 입력속도와 조인 선택도를 이용해 구할 수 있다. 조인 선택도란 단위 시간당의 조인의 카티션프러덕트(Cartesian Product)와 실제로 생성된 조인 결과의 크기의 비로써 다음 수학식과 같다.
Figure 112009023002156-pat00003
단위시간당 수행되는 조인의 카티션 프로덕트는
Figure 112009023002156-pat00004
을 이용해 계산 할 수 있으며, 마지막에는 결과의 중복을 방지하기 위해 새로 들어온 스트림 데이터들의 조인은 제외시킨다. 각 조인의 입력 스트림의 입력속도와 [수학식 2]로 구한 조인 선택도를 이용하면, 다음 수학식과 같은 Co(R,S)를 구할 수 있다.
Figure 112009023002156-pat00005
따라서, 스트림 R과 스트림 S를 조인하는 글로벌조인 비용은 [수학식 1]과 [수학식 3]의 합으로 구할 수 있으며, 다음 수학식과 같다.
Figure 112009023002156-pat00006
2. 지역 최적화 방법(Local Optimization)
본 발명에서 제안하는 조인 질의 최적화 방법을 설명하기에 앞서, 기존 연구 결과와의 비교 대상으로서 지역 최적화 방법을 설명한다. 지역 최적화 방법은 [22]에서 발표된 내용으로 다중 질의에 사용된 질의들의 각 단일 질의에 대해 각각 질의 최적화를 수행한 후 생성된 질의 계획을 다중 연속질의에 적용 할 수 있도록 하나의 질의 계획으로 통합 및 재구성하는 방법이다. 비록 [22]에서의 지역 최적화 방법은 스트림 환경을 기반으로 한 연구는 아니지만, 비용 기반 질의 최적화를 하기 때문에 직관적으로 스트림 환경으로 확장할 수 있다. 지역 최적화 방법은 기존의 연구에서 제안된 단일 질의에 대한 최적화 알고리즘을 활용하여 각 질의의 실행 계획을 생성한 후 다중 연속 질의의 통합 질의 실행 계획을 생성한다.
도 2는 3개의 연속 질의에 대한 실행 계획이 만들어졌을 때 계획 병합기(Plan Merger)에 의해 어떻게 통합 질의 실행 계획이 생성되는지를 보여준다. 이 그림에서 볼 수 있듯이 스트림 R과 스트림 S의 조인이 단일 질의에서는 각각 조인을 수행하였지만 통합 과정을 거쳐 생성된 통합 질의 계획에서는 스트림 R과 스트림 S의 조인이 한 번만 조인을 수행 할 수 있도록 함으로써 통합 질의 계획에 공유효과가 반영 될 수 있도록 하였다. 따라서 하이브리드 알고리즘은 최적화된 단일 질의 계획에 공유가 최대한 반영 될 수 있도록 함으로써 통합 질의 계획을 통해 다중 질의를 수행했을 때 단일 질의를 개별적으로 수행 했을 때 보다 조인 비용을 줄일 수 있다.
3. 공유 기반 최적화 방법(Sharing-based Optimization)
이하에서는 다중 질의를 위한 알고리즘으로서 다중 질의의 조인이 수행 되었을 때 조인 연산들을 최대한 공유할 수 있도록 질의 계획을 생성하는 알고리즘을 설명한다. 이를 공유 기반 알고리즘이라 칭하기로 한다. 연속 질의는 수행되어지기 전에 미리 등록되어 있는 질의이기 때문에 여러 개의 질의가 등록되어 있을 경우 어떤 조인 연산이 여러 질의에 공통적으로 사용되어 공유가 되어질 수 있는 연산인지 미리 알 수 있다. 여러 개의 질의를 동시에 수행할 때 수행 비용을 가장 효과적 으로 줄일 수 있는 방법 중 하나가 공통되는 조인 연산을 한 번 수행한 후에 공유하는 것이기 때문에 공유 기반 최적화 방법은 미리 알고 있는 공유 정보를 이용하여, 가장 공유를 많이 할 수 있는 조인 연산을 최우선으로 선택하여 다중 질의 최적화를 수행한다.
다음 표는 다중 연속 질의의 예를 나타낸다.
CQ 1
SELECT*
FROM R [W 1 Min], S [W 1 Min], T [W 1 Min]
WHERE R.a=S.b and S.c=T.d
CQ 2
SELECT *
FROM R [W 2 Min], S [W 2 Min], U [W 2 Min]
WHERE R.a=S.b and S.c=U.f
CQ 3
SELECT *
FROM R [W 3 Min], S [W 3 Min], T [W 3 Min], U [W 3 Min]
WHERE R.a=S.b and S.c=T.d and T.e=U.f
CQ 4
SELECT *
FROM T [W 4 Min], U [W 4 Min], V [W 4 Min]
WHERE T.e=U.f and U.g=V.h
예를 들면, 위와 같은 4개의 연속 질의가 있을 때, 공유 기반 알고리즘은 등록된 다중 연속 질의내의 조인 조건을 탐색하여 조인의 정보가 조인 테이블에 저장되면서 동일한 조인이 다중 연속 질의 내에서 몇 번 반복 사용되었는지를 파악하여 통계 카탈로그에 저장한 후, 이를 이용하여 공유수가 가장 큰 조인부터 순서대로 질의 계획을 구성한다. 여기서, 공유수가 가장 큰 조인이란 다중 연속 질의 내에서 조인이 반복 사용된 횟수가 가장 큰 것을 말한다.
[표 3]의 질의들에 대한 공유 정보는 도 3의 왼쪽 표와 같이 표현될 수 있다. R.a
Figure 112009023002156-pat00007
S.b 연산이 가장 공유가 많이 되는 조인 연산이기 때문에 가장 먼저 선택이 된다. 그리고 나서 S.c
Figure 112009023002156-pat00008
T.d 와 T.e
Figure 112009023002156-pat00009
U.f 연산이 2번 공유되는 연산인데, S.c
Figure 112009023002156-pat00010
T.d 연산은 스트림 S가 이미 R과 수행되었기 때문에 수행될 필요가 없는 연산이 된다. 그러므로 T.e
Figure 112009023002156-pat00011
U.f가 선택된다. 이와 같은 과정이 반복되면 <그림 6>의 오른쪽 그림과 같은 실행 계획이 완성된다.
비록 다수의 질의를 동시에 수행할 때 공통적으로 사용될 수 있는 조인을 최대한 많게 함으로써 중복으로 조인하는 경우를 줄이는 것이 시스템의 성능에 큰 향상을 주지만, 각 조인들의 비용에 따라서 그렇지 않은 경우도 많다. 그러므로 공유 기반 알고리즘은 직관적이고 단순하게 최대한 공유가 많이 일어날 수 있게 하지만, 각 조인들의 비용을 고려하지 않은 단점이 있다. 이와 같은 단점은 다음 절에서 제안되는 확장된 그리디 최적화 방법을 사용함으로써 해결할 수 있다.
4. 확장된 그리디 최적화 방법
도 4은 본 발명의 일 실시예에 따른 데이터 스트림에서의 조인 질의 최적화 방법의 흐름도이다. 본 실시예에서 질의는 미리 등록되어 있으며, 질의는 하나의 단일 질의 또는 둘 이상의 다중 질의일 수 있다. 등록된 질의가 다중 질의인 경우 본 실시예는 다중 조인 질의 최적화 방법이 된다.
우선, 데이터 스트림이 입력되면(410단계), 입력되는 데이터 스트림에 대하여 상기 미리 등록된 질의에 따라 결정되는 가능한 조인들 각각의 과거 임의의 시점으로부터 현재 시점까지의 조인 비용의 평균 및 표준편차 등의 정보를 저장한다(420단계). 여기서, 가능한 조인들이라 함은 등록된 질의에 따라 생성될 수 있는 질의 계획을 수행하는 과정에서 수행될 수 있는 모든 조인 연산을 의미한다.
CQ
SELECT *
FROM R [W Min], S [W Min], T [W Min], U [W Min]
WHERE R.a=S.a and S.b=T.b and T.c=U.c
예를 들어 등록된 질의가 상기 [표 4]와 같은 경우, 가능한 조인들은 다음 표와 같다.
R.a
Figure 112009023002156-pat00012
S.a
S.b
Figure 112009023002156-pat00013
T.b
T.c
Figure 112009023002156-pat00014
U.c
(R.a
Figure 112009023002156-pat00015
S.a)
Figure 112009023002156-pat00016
T.b
R.a
Figure 112009023002156-pat00017
(S.b
Figure 112009023002156-pat00018
T.b)
(S.b
Figure 112009023002156-pat00019
T.b)
Figure 112009023002156-pat00020
U.c
S.b
Figure 112009023002156-pat00021
(T.c
Figure 112009023002156-pat00022
U.c)
((R.a
Figure 112009023002156-pat00023
S.a)
Figure 112009023002156-pat00024
T.b)
Figure 112009023002156-pat00025
U.c
R.a
Figure 112009023002156-pat00026
((S.b
Figure 112009023002156-pat00027
T.b)
Figure 112009023002156-pat00028
U.c)
(R.a
Figure 112009023002156-pat00029
S.a)
Figure 112009023002156-pat00030
(T.c
Figure 112009023002156-pat00031
U.c)
만일 등록된 질의가 다중 질의인 경우, 본 단계에서는 각 조인이 어떤 질의에서 사용되는지 및 몇 개의 질의에서 사용되는지에 관한 정보를 더 저장한다. 본 단계에서 저장되는 정보를 이하 통계 카탈로그라 칭하기로 한다.
통계 카탈로그는 현재 정의되어 있는 질의 실행 계획에 따라 조인 연산을 수행하는 과정에서 발생되는 비용들 뿐만 아니라 실시간으로 입력되는 데이터 스트림들에 대한 정보를 이용하여 수행되지 않는 조인 연산에 대해서는 1.2.에서 정의된 비용 모델에 따라 비용을 예측하여 저장한다. 즉, 통계 카탈로그는 수행되어질 수 있는 모든 조인 연산에 대하여 비용을 저장하고 있으며, 과거에 수행된 적이 있는 조인 연산에 대해서는 실제로 수행되었을 때의 비용을 저장하고 있음으로써 통계에 대한 정확성을 높일 수 있다. 비록 스트림 환경에서의 데이터들의 특성(입력 속도, 조인 속성의 도메인 크기, 등)들은 계속해서 바뀌지만, 완전히 랜덤으로 발생되는 것이 아니라 응용 분야의 특성과 각 스트림들의 특성에 따라 특정한 패턴 및 범위를 가질 것이다. 그러므로 위와 같이 과거에 수행되어진 실제 비용들을 저장함으로써 별도의 런타임-오버헤드 없이 보다 정확한 통계 정보를 가질 수 있다. 각각의 조인 연산의 비용은 현재 측정된 값들로 대체되는 것이 아니라, 과거에 예측된 비용이든 실제 비용이든, 이 전에 저장되어 있던 비용들과 현재 측정된 비용을 합쳐서 가우시안 분포를 띠고 있다고 가정하고 평균과 표준 편차의 형태로 저장된다. 각 조인 연산들의 평균 비용은 현재 시점에서만의 정보 뿐만 아니라 과거의 정보를 모두 종합하여 판단할 수 있게 해 주며, 표준 편차는 그 조인의 비용이 얼마만큼 변하는지에 대한 판단을 할 수 있게 한다. 이와 같은 방법은 본 발명에서 제안되는 비용 기반 질의 최적화 방법에 의미 있게 사용된다.
통계 카탈로그는 각 연속 질의에 대해 한 개씩 생성되는데, 이를 로컬 통계 카탈로그(Local Statistics Catalog)라고 칭하기로 한다. 이러한 로컬 통계 카탈로그를 하나의 카탈로그로 병합한 것을 글로벌 통계 카탈로그(Global Statistics Catalog)라고 칭하기로 한다. 로컬 카탈로그에서 글로벌 통계 카탈로그를 생성할 때 각 조인 연산들이 어떤 질의에 사용되어 있는지(질의 정보)와 몇 개의 질의에서 사용되어졌는지(공유수)를 저장한다. 질의 최적화 수행에서는 공유가 최대한 이루어 질 수 있도록 글로벌 질의 내에서 가장 많이 사용되는 조인을 우선적으로 수행 될 수 있게 해야 하며, 가장 많이 사용되는 조인을 알기 위해서는 우선 해당 조인이 글로벌 질의에서 몇 번 수행 되는지 횟수를 알아야만 한다. 따라서 통계 카탈로그에서는 해당 조인이 글로벌 질의를 개별 적으로 수행 했을 경우에 실행해야 하는 연산 횟수를 공유수에 저장한다. 그리고 질의 정보는 글로벌 다중 연속 질의가 한번에 수행되기 위한 질의 계획을 생성해야 하기 때문에 각각의 조인이 어느 질의에서 수행되어야 하는지를 파악할 수 있어야 한다. 따라서 해당 조인이 어느 질의에서 수행 되는지에 대한 질의 id를 저장한다. 통계 카탈로그는 질의 최적화를 위해서 스트림의 정보를 담고 있으며, 필요한 정보들은 조인 오퍼랜드들의 입력 속도, 조인의 조인 선택도, 해당 조인의 비용, 해당 조인의 공유수, 그리고 조인이 수행되는 질의의 정보 등을 포함한다. 또, 질의 최적화를 수행하기 위해서는 각 조인들의 단위 연산 소요비용을 알고 있어야 하므로 조인 비용 모델에 따라 각 입력 스트림들의 입력 속도와 조인 선택도를 각 조인에 대해서도 저장하고 있다. 입력 스트림은 1개의 스트림 이거나 2개 이상의 스트림을 조인한 결과일 수도 있으며, 다른 조인의 중간 결과일 경우에는 1.2절에서 설명한 바와 같다.
420단계에서 통계 카탈로그가 저장되면, 후술할 430단계 내지 460단계로 이루어지는 조인 질의 최적화를 수행한다. 본 실시예에 따른 조인 질의 최적화 방법은 그리디 알고리즘(greedy algorithm)을 기반으로 하는 것으로서, 이하 확장된 그리디 최적화 방법이라 칭하기로 한다.
확장된 그리디 최적화 방법은 통계 카탈로그(Global Statistics Catalog)를 기반으로 그리디 방법으로 비용이 가장 작은 조인 연산들을 선택해 나감으로써 실행 계획을 생성하는 방법이다. 스트림 환경에서는 실시간으로 데이터를 처리하여야 하기 때문에 질의 최적화를 통해 빠르게 데이터를 처리할 수 있게 하는 것도 중요하지만, 질의 최적화에 많은 자원을 할당할 수 없기 때문이다. 그러므로 수행 시간이 빠르지만 비교적 정확한 그리디 방법이 스트림 환경에서 질의 최적화를 하는 데 많이 사용된다. 그러나 다중 조인의 경우 한 번 조인 연산이 선택되면, 그 조인으로 인하여 다른 많은 조인들이 선택되지 못하게 된다. 예를 들어 6개의 스트림(s1,…s6)을 조인하는 질의가 있을 때 처음에 s2와 s3를 조인하는 연산이 선택되어지면 s1과 s2의 조인 연산과 s3와 s4의 조인 연산 등이 선택되어질 수 없다. 이와 같이 질의 최적화 과정에서 선택 후보에서 제외되는 조인들의 수가 많기 때문에 그리디 방법은 차선의 질의 계획(sub-optimal query plan)을 생성할 가능성이 매우 크다. 본 발명에서 제안하는 확장된 그리디 최적화 방법은 하나의 후보만을 추적하여 질의 계획을 생성하는 일반적인 그리디 방법이 아니라 여러 개의 후보들을 동시에 추적함으로써 보다 정확한 질의 최적화를 할 수 있는 방법이다. 추적되는 후보의 개수가 늘어날수록 최적화를 하는 오버헤드가 커지기 때문에 효율적으로 그 후보를 선택하는 방법이 필요하다. 그러므로 확장된 그리디 방법에서는 통계 카탈로그와 사용자 정의 변수를 통하여 비용 기반으로 질의 최적화의 조인 선택 후보의 개수를 조절함으로써, 최적화의 정확성을 높인다. 글로벌 통계 카탈로그에 저장 되어 있는 조인 비용과 관련된 데이터는 평균과 표준 편차이며, 이 값들은 데이터의 특성만을 나타내는 값이기 때문에 조인들의 대소 비교가 항상 정확할 수만은 없다. 최악의 경우에는 가장 큰 비용을 기준으로 조인 비용의 대소 비교가 이뤄질 수도 있기 때문에 좀 더 정확한 조인 비용 수치로 질의 최적화를 수행 하기 위해 로컬과 글로벌 통계 카탈로그에 저장되어 있는 조인 비용의 평균과 표준편차를 함께 활용해 조인 비용의 최대값과 최소값의 범위를 결정 함으로써 보다 정확한 조인 비용에 대한 평가가 이뤄지도록 할 수 있다.
글로벌 통계 카탈로그에 저장되는 각 조인에 대한 비용 정보는 질의 최적화를 수행하는 특정 시점의 조인 비용정보를 저장하고 있는 것이 아니라 과거의 임의 시점으로부터 현재까지 모니터링 된 비용 정보들을 종합해 평균과 표준편차의 영향을 고려하고 있기 때문에 단일 값으로 인식해서는 안 된다. 그러므로 글로벌 통계 카탈로그에 저장하고 있는 조인 비용의 평균과 표준편차 그리고 범위 결정 변수(Range Decision Variable) k를 이용하여 각 조인 연산의 비용을 유효 범위로 표시하며, 다음과 같이 정의될 수 있다.
정의 1. 조인 비용의 유효 범위(The effective range of a join cost)
범위 결정 변수 k와 임의의 조인 연산 j i 이 통계 카탈로그에 평균(μ(j i ))과 표준편차(σ(j i ))로 저장되어 있을 때 조인 j i 의 유효 범위는 [μ(j i )-k*σ(j i ), μ(j i )+ k*σ(j i )]로 나타내어진다. 이 범위의 가장 작은 비용은 C min (j i ) , 가장 큰 비용은 C max (j i )로 표시한다.
이것은 해당 조인이 수행 될 때 그 조인의 비용은 이 범위 안에 있다고 가정하는 것이다. 통계 카탈로그에는 현재의 정보 뿐만 아니라 과거의 정보까지 모두 종합되어 평균과 표준 편차로 저장되어 있는 것이기 때문에, 만약 어떤 조인의 비용이 큰 폭으로 변화하였다면 표준 편차가 커서 그 조인 비용의 유효 범위는 크게 나올 것이고, 그렇지 않다면 유효 범위가 작게 나올 것이다. 또한 k값이 커질수록 각 조인 비용들의 유효 범위도 커질 것이다. 이와 같이 조인 비용의 유효 범위는 본 논문에서 제안하는 확장된 그리디 방법에서 추적할 후보를 선택하는 데 중요한 역할을 한다. 이 때 추적할 후보들을 수행 가능한 조인 후보 집합 이라 하고 수행 가능한 조인 후보 집합의 정의는 다음과 같이 정의할 수 있다.
정의2. 수행 가능한 조인 후보 집합(Executable Join Candidates Set)
선택할 수 있는 모든 조인들의 집합을 J all 이라고 하고, 이 조인 후보 집합 중에서 조인 비용의 평균값이 가장 작은 조인을 j min 이라고 정의하면, 수행 가능한 조인 후보 집합(EJS)의 모든 조인들은 다음과 같은 조건을 만족해야만 한다.
Figure 112009023002156-pat00032
위 정의는 조인의 평균 비용이 가장 작은 조인의 최대값보다 임의의 조인의 조인 비용의 최소값이 더 작을 경우를 수행 가능한 조인 후보 집합으로 본다는 것이다. 즉, 각 조인들의 범위 값들을 그래프로 그렸을 때 조인의 평균 비용이 가장 작은 조인과 겹치는 조인들이 수행 가능한 조인 후보 집합의 조인이 된다. 확장된 그리디 방법은 위와 같이 수행 가능한 조인 후보 집합들을 찾아낸 후 각 원소들에 대해서 그리디 방법을 적용하여 추적함으로써 질의 계획을 완성한다.
도 5는 범위 결정 변수 k에 따라서 수행 가능한 조인 후보 집합이 결정되는 예를 설명하기 위한 참고도이다. 도 5에 도시된 바와 같이 같은 통계 카탈로그라고 하더라도 범위 결정 변수 k의 값에 따라서 수행 가능한 조인 후보 집합은 달라지게 된다. 확장된 그리디 최적화 방법은 수행 가능한 조인 후보 집합을 선택한 후 이 집합의 모든 원소들을 추적하기 때문에 이 집합이 달라지게 되면, 그 결과도 달라지게 된다. 만약 범위 결정 변수의 값이 0이라면, 모든 조인 비용들의 유효 범위는 각 조인들의 평균 비용으로 대표될 것이며, 수행 가능한 조인 집합은 항상 원소가 1개일 것이다. 즉, 이것은 확장된 그리디 방법이 일반적인 그리디 방법과 동일하게 작동된다는 것을 의미한다. 이와 반대로 범위 결정 변수가 모든 조인이 수행 가능한 조인 집합에 포함될 만큼 크다면, 확장된 그리디 방법은 한 질의가 나타낼 수 있는 모든 질의 계획을 추적함으로써 항상 최적의 결과를 생성할 것이다. 우리는 질의가 컴파일될 때(컴파일 시간) 뿐만 아니라 질의가 수행되고 있는 순간(런타임 시간)에도 범위 결정 변수의 값을 조절함으로써 확장된 그리디 최적화 방법의 정확성을 조절할 수 있다. 범위 결정 변수 값에 따라 각 조인 비용들의 유효 범위가 변동하여 수행 가능한 조인 후보 집합의 원소를 결정할 때 영향을 미친다. 그러므로 범위 결정 변수 값이 증가 할수록 수행 가능한 조인 후보 집합에 속하는 조인의 수는 증가한다. 수행 가능한 조인 집합의 크기가 커진다는 것은 그만큼 많은 조인을 추적함으로써 보다 정확하게 최적화를 할 수 있지만, 그만큼 최적화 하는 데 드는 시간이 더 많이 든다는 것을 의미한다. 이와 같이 확장된 그리디 방법은 시스템의 현재 로드에 따라서 최적화에 드는 시간과 최적화 방법의 정확성을 조절할 수 있다. 만약 처리해야 할 스트림이 매우 많아서 질의 최적화에 많은 시간을 할당할 수 없을 경우에는 k값을 작게 함으로써 최적화로 인한 오버헤드를 최소화할 수 있고, 그러지 않은 경우에는 k값을 크게 함으로써 보다 정확하게 질의 최적화를 할 수 있도록 할 수 있다. k값의 변경은 런타임 시에도 할 수 있기 때문에, 이러한 오버헤드의 조절은 스트림 환경 상에서 매우 유용하다.
위와 같이 설명된 확장된 그리디 방법은 질의 최적화를 수행할 때, 대상이 되는 질의에 포함되는 모든 조인 연산들의 비용을 알고 있어야만 한다. 이를 위해서 통계 카탈로그가 사용되어지며, 로컬 통계 카탈로그를 사용하여 질의 최적화를 하면, 하나의 질의에 대한 최적의 질의 계획을 생성할 수 있으며, 이를 단일 확장된 그리디 최적화 방법(Single Extended Greedy Optimization)이라 칭하기로 한다. 이와 마찬가지로, 글로벌 통계 카탈로그와 확장된 그리디 방법을 사용하여 다중 질의에 대한 최적의 질의 계획을 생성하면 이를 다중 확장된 그리디 최적화 방법(Multiple Extended-Greedy Optimization)이라 칭하기로 한다. 통계 카탈로그에 관하여도 설명한 바와 같이, 글로벌 통계 카탈로그에는 각 조인 연산들이 몇 개의 질의에서 공통적으로 사용될 수 있는지를 "공유수"로 저장을 해놓는다. 2절에서 설명한 바와 같이 다수의 질의를 동시에 수행할 때 공통적으로 사용될 수 있는 조인을 최대한 많게 함으로써 중복으로 조인하는 경우를 줄이는 것이 시스템의 성능에 큰 향상을 주는 한편, 각 조인들의 비용 역시 고려할 필요가 있다. 따라서 다중 확장된 그리디 최적화 방법에서는 질의가 둘 이상의 다중 질의인 경우 글로벌 통계 카탈로그에 저장된 공유수를 고려하여 복수 개의 질의에서 사용되는 조인의 조인 비용을 낮추어서 확장된 그리디 방법을 적용한다. 즉, 공유수가 2 이상인 조인의 평균과 표준편차는 공유수가 클수록 더 작은 값이 되도록 수정하여 확장된 그리디 최적화 방법을 적용한다. 일 실시예로, 각 조인들의 비용(평균 및 표준편차)을 공유수로 나눔으로써 공유가 되어질 수 있는 조인들의 비용을 낮추는 것이다. 예를 들어 공유수가 2인 조인의 경우, 평균 비용 및 표준 편차를 2로 나누게 되면, 그 조인의 평균 비용이 더 낮아져 수행 가능한 조인 후보 집합에 속할 가능성이 높아지게 된다. 이와 같이 각 조인들의 비용을 공유수로 나눔으로써 조인 비용을 고려하면서도 해당 조인의 공유가 최대한 많이 일어나도록 할 수 있다.
앞선 조인 연산의 결과는 다른 조인 연산의 입력으로 되기 때문에, 먼저 수행되어진 조인 연산에 따라서 다음 조인이 많은 영향을 받게 된다. 하지만 일반적인 그리디 최적화 방법은 이에 대한 고려가 전혀 없다. 따라서 확장된 그리디 최적화 방법은 다음 조인이 될 수 있는 조인들의 비용도 미리 살펴보고 비용이 가장 작은 조인을 결정하게 된다. 이 때 다음 순서가 될 수 있는 조인의 레벨을 결정하는 변수가 바로 레벨 결정 변수(Level Decide Variable)이다. 즉, 레벨 결정 변수는 다음 조인의 비용을 어디까지 고려해야 하는지를 결정하는 변수이며, 확장된 그리디 최적화 방법은 레벨 결정 변수로 정의된 곳까지 다음 조인의 비용을 고려해서 하나의 조인을 선택한다. 이 방법 또한 통계 카탈로그를 사용하며, 조인 비용의 평균값을 기준으로 그리디 방법을 적용한다. 만약 레벨 결정 변수를 0으로 지정하면 다음 순서의 조인을 전혀 고려하지 않는다는 뜻이며 n(n>1)일 경우에는 n번째 조인까지 고려한다는 의미가 된다. 즉, 레벨 결정 변수가 1이라면, 다음 조인의 비용까지 고려하여 하나의 조인을 선택하는 것이며 다음 조인을 고려한다는 뜻은 모든 조합에 대한 탐색을 하여야 한다는 뜻이다. n개의 스트림을 조인하는 질의의 경우 실행 계획은 (n-1)개의 조인 연산으로 만들어지기 때문에, 레벨 결정 변수는 (n-1) 이상의 값은 가질 수 없다.
다시 도 4를 참조하여 본 실시예에 따른 확장된 그리디 최적화 방법을 보다 구체적으로 설명하면, 430단계에서, 선택 가능한 조인들 중에서 조인 비용의 평균이 가장 작은 조인의 조인 비용의 유효 범위와 중복되는 유효 범위를 가지는 조인들의 집합을 상술한 수행 가능 조인 후보 집합으로 정의한다. 여기서, 조인 비용의 유효 범위는 이미 설명된 바와 같이 조인 비용의 평균 및 표준편차와 범위 결정 변수 k를 이용하여 정해진다. 그리고 선택 가능한 조인이라 함은 현재 단계에서 주어진 질의에 따라 선택 가능한 조인을 말하는 것으로서, 질의가 상기 [표 4]와 같은 경우 430단계의 첫 번째 실행에서는 선택 가능한 조인이 R.a
Figure 112009023002156-pat00033
S.a, S.b
Figure 112009023002156-pat00034
T.b, T.c
Figure 112009023002156-pat00035
U.c가 된다.
430단계에서 수행 가능한 조인 후보 집합이 결정되면, 이제 440단계로 진행하여 수행 가능한 후보 집합에 속하는 조인과 그 다음에 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출한다. 물론 여기서 산출되는 조인 비용은 그 평균값과 표준편차가 된다.
만일 430단계에서 R.a
Figure 112009023002156-pat00036
S.a가 수행 가능한 조인 후보 집합의 원소 중 하나로 결정되었다면, 그 다음에 선택 가능한 조인은 R.a
Figure 112009023002156-pat00037
S.a를 전제로 하는 (R.a
Figure 112009023002156-pat00038
S.a)
Figure 112009023002156-pat00039
T.b와 T.c
Figure 112009023002156-pat00040
U.c 가 된다. 따라서 조인 비용을 산출할 조인 조합은 R.a
Figure 112009023002156-pat00041
S.a+(R.a
Figure 112009023002156-pat00042
S.a)
Figure 112009023002156-pat00043
T.b와 R.a
Figure 112009023002156-pat00044
S.a+T.c
Figure 112009023002156-pat00045
U.c가 된다. 조인 비용은 각 조인의 비용을 합침으로써 계산할 수 있다. 예컨대, (R.a
Figure 112009023002156-pat00046
S.a)의 조인 비용과 (R.a
Figure 112009023002156-pat00047
S.a)
Figure 112009023002156-pat00048
T.b의 조인 비용을 합쳐서 계산될 수 있다.
마찬가지로, 만일 S.b
Figure 112009023002156-pat00049
T.b가 수행 가능한 조인 후보 집합의 원소 중 하나로 결정되었다면, 그 다음에 선택 가능한 조인은 (S.b
Figure 112009023002156-pat00050
T.b)
Figure 112009023002156-pat00051
U.c와 R.a
Figure 112009023002156-pat00052
(S.b
Figure 112009023002156-pat00053
T.b)이 된다. 따라서 조인 비용을 산출할 조인 조합은 S.b
Figure 112009023002156-pat00054
T.b+(S.b
Figure 112009023002156-pat00055
T.b)
Figure 112009023002156-pat00056
U.c와 S.b
Figure 112009023002156-pat00057
T.b+R.a
Figure 112009023002156-pat00058
(S.b
Figure 112009023002156-pat00059
T.b)이 된다.
확장된 그리디 최적화 방법에서는 430단계에서 조인 (R.a
Figure 112009023002156-pat00060
S.a)와 조인 S.b
Figure 112009023002156-pat00061
T.b가 모두 수행 가능한 조인 후보 집합의 원소로 결정될 수 있으므로, 그를 전제로 하는 조인들이 모두 고려의 대상이 된다.
440단계에서 각 조인의 조합에 대한 조인 비용이 산출되면, 450단계에서는 레벨 결정 변수만큼 조합되었는지 판단하고, 그렇다면 460단계로 진행하여 상기 산출된 조인 비용 중 가장 작은 조인 비용, 즉 가장 작은 조인 비용의 평균값을 가지는 조인의 조합을 질의 계획으로 결정한다. 그렇지 않다면, 즉 레벨 결정 변수만큼 조합되지 않았다면 다시 430단계로 돌아간다. 반복되는 430단계에서는 440단계에서 조인 비용을 산출한 조인의 조합들을 선택 가능한 조인들로 하고, 그들의 조인 비용의 유효 범위를 가지고 수행 가능 조인 후보 집합을 결정한다.
예컨대, 430단계에서 수행 가능한 조인 후보 집합이 R.a
Figure 112009023002156-pat00062
S.a와 조인 S.b
Figure 112009023002156-pat00063
T.b로 결정된 경우 레벨 결정 변수가 1이라면 그 다음의 440단계에서 1만큼 조합된 것이므로 상기된 네 조합, 즉 R.a
Figure 112009023002156-pat00064
S.a+(R.a
Figure 112009023002156-pat00065
S.a)
Figure 112009023002156-pat00066
T.b, R.a
Figure 112009023002156-pat00067
S.a+T.c
Figure 112009023002156-pat00068
U.c, S.b
Figure 112009023002156-pat00069
T.b+(S.b
Figure 112009023002156-pat00070
T.b)
Figure 112009023002156-pat00071
U.c, S.b
Figure 112009023002156-pat00072
T.b+R.a
Figure 112009023002156-pat00073
(S.b
Figure 112009023002156-pat00074
T.b) 중에서 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정한다(460단계). 물론, 이들 중 하나가 질의 계획으로 결정되면 나머지 조인은 유일하게 결정되거나 복수 개 결정될 수 있다. 여기서 든 예에서는 유일하게 결정되는데, 예를 들어 R.a
Figure 112009023002156-pat00075
S.a+(R.a
Figure 112009023002156-pat00076
S.a)
Figure 112009023002156-pat00077
T.b가 가장 작은 조인 비용을 가지는 조인의 조합이라면, 나머지 조인은 ((R.a
Figure 112009023002156-pat00078
S.a)
Figure 112009023002156-pat00079
T.b)
Figure 112009023002156-pat00080
U.c로 유일하게 결정된다. 만일 나머지 조인이 복수 개 결정되는 경우라면, 선택 가능한 조인들 중 비용이 가장 작은 조인을 선택하게 된다(460단계).
430단계에서 수행 가능한 조인 후보 집합이 조인 R.a
Figure 112009023002156-pat00081
S.a와 조인 S.b
Figure 112009023002156-pat00082
T.b로 결정된 경우 레벨 결정 변수가 2라면 아직 2만큼 조인이 조합되지 않은 것이므로 상기된 네 조합, 즉 R.a
Figure 112009023002156-pat00083
S.a+(R.a
Figure 112009023002156-pat00084
S.a)
Figure 112009023002156-pat00085
T.b, R.a
Figure 112009023002156-pat00086
S.a+T.c
Figure 112009023002156-pat00087
U.c, S.b
Figure 112009023002156-pat00088
T.b+(S.b
Figure 112009023002156-pat00089
T.b)
Figure 112009023002156-pat00090
U.c, S.b
Figure 112009023002156-pat00091
T.b+R.a
Figure 112009023002156-pat00092
(S.b
Figure 112009023002156-pat00093
T.b)을 선택 가능한 조인들로 하여 이들의 조인 비용의 평균 및 표준편차를 이용하여 정해지는 유효 범위들을 가지고 수행 가능한 조인 후보 집합을 결정한다(430단계의 반복). 430단계에서 조인 후보 집합이 결정되면 그에 속하는 조인과 다음에 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출한다(440단계의 반복). 예를 들어, R.a
Figure 112009023002156-pat00094
S.a+(R.a
Figure 112009023002156-pat00095
S.a)
Figure 112009023002156-pat00096
T.b와 R.a
Figure 112009023002156-pat00097
S.a+T.c
Figure 112009023002156-pat00098
U.c가 조인 후보 집합의 원소로 결정되었다면, R.a
Figure 112009023002156-pat00099
S.a+(R.a
Figure 112009023002156-pat00100
S.a)
Figure 112009023002156-pat00101
T.b 다음에 선택 가능한 조인은 ((R.a
Figure 112009023002156-pat00102
S.a)
Figure 112009023002156-pat00103
T.b)
Figure 112009023002156-pat00104
U.c이고, R.a
Figure 112009023002156-pat00105
S.a+T.c
Figure 112009023002156-pat00106
U.c 다음에 선택 가능한 조인은 (R.a
Figure 112009023002156-pat00107
S.a)
Figure 112009023002156-pat00108
(T.c
Figure 112009023002156-pat00109
U.c)가 된다. 이제 레벨 결정 변수 2만큼 조인이 조합되었으므로 460단계로 진행하여 440단계에서 산출된 조인 비용 중 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정한다.
상술한 본 발명에 따른 조인 질의 최적화 방법은 축적된 스트림 정보들을 이용하여 조인 조건을 갖는 단일 연속 질의를 최적화하는 알고리즘이다. 이 알고리즘은 범위 결정 변수와 레벨 결정 변수라는 2개의 변수에 따라서 수행하는 방법이 달라지게 되고, 이것은 질의 최적화의 정확도와 수행 시간에 영향을 끼친다. 2개의 변수 값이 커질수록 최적화의 성능은 좋아지는 반면에 최적화를 하는 데 걸리는 시간은 더 오래 걸리고 반대로 변수값들이 작아질수록 최적화의 성능은 떨어지는 반면, 최적화하는 데 걸리는 시간은 적게 걸린다. 따라서 본 발명에서 제안하는 조인 질의 최적화 방법은 동적으로 최적화를 수행할 때 생기는 부담을 조절할 수 있으며, 이는 계속적으로 스트림의 특성이 변화하고 이를 예측할 수 없는 스트림 환경에 시스템 로드에 따라서 적응적으로 질의 최적화를 할 수 있다. 나아가, 본 발명에서 제안하는 다중 조인 질의 최적화 방법은 주어진 질의 집합의 공유 정보를 저장하고 있는 글로벌 통계 카탈로그를 이용하여 다중 질의 최적화를 함으로써 보다 공유가 많이 이루어질 수 있도록 하여 다중 질의의 수행 비용을 감소시킬 수 있다.
5. 성능 평가
여기서는 본 발명이 제시하는 지역 최적화 방법, 공유 기반 최적화 방법, 그리고 다중 확장된 그리디 최적화 방법의 성능을 비교하고, 다중 확장된 그리디 최적화 방법의 과정에 큰 영향을 끼치는 범위 결정 변수의 변화에 따른 최종 질의 계획의 비용과 실제 최적화하는 데 걸리는 시간을 보여줌으로써 시스템의 현재 로드에 따라서 최적화에 드는 시간과 최적화 방법의 정확성을 조절할 수 있음을 실험한 결과를 설명한다.
본 발명이 제시하는 지역 최적화 방법의 경우 다중 질의를 최적화하기 전에 각 질의에 대한 최적화를 수행하여야 하는데, 이 때 사용되는 최적화 방법은 단일 확장된 그리디 방법을 사용하였다. 또한 지역 최적화 방법과 다중 확장된 그리디 최적화 방법을 비교하는 실험의 경우, 범위 결정 변수는 모두 같게 설정하고 실험하였다.
공유 기반 최적화 방법은 조인들의 비용에 관계 없이 보다 많은 질의에 동시에 사용(공유)될 수 있는 조인을 먼저 선택하는 방법인 반면, 지역 최적화 방법과 확장된 그리디 방법은 통계 카탈로그를 이용하여 비용 기반 최적화 방법(Cost-Based Optimization)이다. 따라서 이 알고리즘들의 최적화 성능을 평가하는데 있어 조인 비용은 중요한 역할을 하며, 각 알고리즘의 성능은 생성된 질의 계획의 조인 비용의 비교를 통해 평가한다. 각 알고리즘의 최적화 척도(Opt_measure)는 다중 연속 질의를 각각 단일 질의를 최적화 하여 생성된 질의 계획의 조인 비용의 총합과 다중 연속 질의를 제안된 알고리즘으로 질의 계획을 생성하였을 때의 조인 비용의 비교를 통해 평가 될 수 있으며, 다음과 같다. n개의 연속 질의가 주어져 있을 때 MP_Cost는 각 최적화 방법에 의해서 생성된 질의 계획의 총 비용, LP_Costi는 각각의 연속 질의에 대한 로컬 질의 계획의 비용이다.
Figure 112009023002156-pat00110
본 발명에서 제안하는 알고리즘의 최적화 척도를 구하기 위해서는 우선 최적화의 대상이 되는 질의 집합이 있어야 한다. 집의 집합을 생성할 때 각 질의들이 얼만큼 조인을 공유할 수 있는지에 따라 각 최적화 알고리즘의 성능이 많이 달라지기 때문에 실험을 위한 질의 집합을 만들 때 질의 집합의 공유율을 중요한 척도로 보았다. 공유율이란 질의 집합에 있는 조인 연산들 중에서 얼만큼 공유가 되었는지를 나타내는 척도로써, 질의 집합 내에 있는 모든 조인의 개수가 m가 이고, 임의의 조인 ji의 공유수가 count(ji)라고 하면, 공유율은 다음과 같이 정의된다. (만약 임의의 조인 ji가 공유되지 않는 경우 count(ji)는 0으로 설정한다.)
Figure 112009023002156-pat00111
만약 공유율이 0이라면 모든 질의에 있는 조인 연산들은 모두 다른 조인 조건을 가지고 있다는 뜻이며, 공유율이 1이라면 모든 질의가 같은 조인 조건을 가지고 있다는 의미가 된다. 본 논문에서는 모든 질의는 같은 수의 조인 조건을 가지고 있으며 공유가 되는 조인인 경우에는 모든 질의에서 공통적으로 사용된다고 가정한다.
그 다음으로는 실험에 사용될 데이터셋이 필요로 되며, 이는 다음 표와 같이 생성된다.
조인만 있는 질의 수 5, 10, 20, 30, 40, 50개
하나의 질의에 사용된 조인 조건 수 3, 5, 7, 10
윈도우 크기 60
스트림의 입력속도 10~50(tuples/sec)
조인 선택도 0.1~0.00001
위와 같이 각 질의 집합에 있는 스트림들의 입력 속도는 10~50 사이에서, 각 조인들의 조인 선택도는 0.1~0.00001 사이에서 랜덤하게 각각 생성한 후, 각 질의들의 로컬 통계 카탈로그와 글로벌 통계 카탈로그를 생성하여 실험에 사용하였다. 모든 실험은 1000번을 반복수행하여 평균을 내어 비교하였으며, 1GB의 메모리와 CPU의 연산처리 속도가 2.8Ghz인 펜티엄4 컴퓨터를 사용하였다. 또한 모든 프로그램은 리눅스 환경에서 C언어를 사용하여 구현하였다.
도 6에 도시된 그래프는 공유율에 따른 조인 비용을 비교한 것으로서 질의 집합의 공유율에 따라서 각 알고리즘들의 성능이 어떻게 변화하는가를 보여준다. 위 실험은 [표 #]과 같이 통계 카탈로그를 생성하였으며, 범위 결정 변수의 값은 0으로 하였다. 공유율이 증가할수록, 즉 질의에 사용되는 공통되는 조인 조건이 많아질수록 모든 알고리즘은 다중 질의 최적화의 효과를 보게 된다. 지역 최적화는 최적화를 할 때 공유가 되는지 안되는지에 대한 정보를 알 수 없지만, 생성된 로컬 질의계획에 공유될 수 있는 조인(공유 조인)이 있을 확률이 더 높아지기 때문에 성능이 향상된다.
도 7에 도시된 그래프는 공유 조인의 비용에 따른 최적화 방법의 성능을 비교한 것으로서, 공유 조인과 공유가 되지 않는 조인들의 비용의 차이를 둠으로써 공유 조인의 비용이 어떤 영향을 끼치는지에 대한 실험의 결과를 나타낸 그래프이다. 범위 결정 변수의 값은 0이고, 공유가 되지 않는 조인들의 오퍼랜드들의 입력 속도는 [표 4]와 같이 생성하고, 공유 조인의 입력 오퍼랜드의 입력 속도를 증가시키면서 실험하였다. 처음에 공유 조인의 입력 속도를 10일 경우에는 공유 조인의 비용이 다른 조인에 비해 더 적기 때문에 지역 최적화 방법을 통하여서도 공유 조인을 실행할 수 있는 질의 계획이 생성될 것이다. 반면에 공유 조인의 입력 속도가 50일 경우에는 다른 조인에 비해 공유 조인의 비용이 더 크기 때문에 지역 최적화 방법을 통한 다중 질의 최적화는 이 공유 조인을 포함하지 않은 질의 계획을 생성하게 되지만, 다중 확장된 그리디 최적화 방법의 경우, 공유 조인의 비용을 공유수로 나누어 주기 때문에 공유 조인을 포함한 질의 계획을 생성하게 된다. 이에 대한 성능 차이는 도 7과 같다. 하지만 공유가 된다고 해서 무조건 다중 질의 최적화가 성능이 좋아지는 것은 아니다. 공유 조인의 입력 속도가 30일 때에 비해 50일 때를 비교해 보면, 30일 때의 성능 향상이 더 두드러지는 것이 이를 증명한다.
도 8에 도시된 그래프는 범위 결정 변수에 따른 성능 비교를 나타낸 것으로서 이 실험은 범위 결정 변수의 변화에 따른 각 최적화 방법들의 성능 비교이다. 이 실험에서 사용된 질의 집합은 10개의 질의로 구성되며, 각 질의는 5개의 조인 조건을 가지고 있다. 각 조인들의 조인 선택도는 0.001 ~ 0.1 사이의 값을 랜덤하게 생성하였다. 공유되는 스트림의 입력속도는 100 ~ 500(tuples/sec)이고 공유되지 않는 스트림의 입력속도는 10 ~ 100 (tuples/sec)으로 하여 공유 조인의 비용이 공유 되지 않는 조인의 비용보다 크게 하였다. 지역최적화 방법과 다중 확장된 그리디 방법 모두 범위 결정 변수가 증가할수록 최종 질의 계획의 총 비용이 감소하는 것을 알 수 있다. 이는 범위 결정 변수가 증가할수록 수행 가능한 조인 후보 집합의 원소가 증가하여 조인 비용이 최소인 조인을 선택할 확률이 높아짐으로 질의 계획의 조인비용이 줄어들기 때문이다. 또한 공유 조인의 비용이 다른 조인에 비해 크지만 공유 조인이 선택되면 공유를 함으로써 얻는 이득이 생기기 때문에 최종 질의 계획의 총 비용이 감소한다. 그러므로 범위 결정 변수의 값이 같을 경우에는 지역 최적화 방법보다 다중 확장된 그리디 방법이 좋은 성능을 보인다.
한편, 상술한 본 발명의 실시예들은 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터로 읽을 수 있는 기록매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 상기 컴퓨터로 읽을 수 있는 기록매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등) 및 캐리어 웨이브(예를 들면, 인터넷을 통한 전송)와 같은 저장매체를 포함한다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 [표 1]의 CQ1과 CQ2의 구성 가능한 질의 수행 계획들 중의 하나와 S
Figure 112009023002156-pat00112
T 조인 연산의 중간결과를 공유하여 질의 연산을 수행한 경우를 설명하는 도면이다.
도 2는 3개의 연속 질의에 대한 실행 계획이 만들어졌을 때 계획 병합기에 의해 어떻게 통합 질의 실행 계획이 생성되는지를 보여주는 도면이다.
도 3은 [표 3]의 질의들에 대한 공유 정보를 나타내는 도면이다.
도 4은 본 발명의 일 실시예에 따른 데이터 스트림에서의 조인 질의 최적화 방법의 흐름도이다.
도 5는 범위 결정 변수 k에 따라서 수행 가능한 조인 후보 집합이 결정되는 예를 설명하기 위한 참고도이다.
도 6은 공유율에 따른 조인 비용을 비교한 그래프이다.
도 7은 공유 조인의 비용에 따른 최적화 방법의 성능을 비교한 그래프이다.
도 8은 범위 결정 변수에 따른 성능 비교를 나타낸 그래프이다.

Claims (17)

  1. 데이터 스트림에서의 다중 조인 질의 최적화 방법에 있어서,
    (a) 입력되는 데이터 스트림에 대하여 미리 등록된 복수 개의 질의에 따라 결정되는 가능한 조인들 각각의 과거 임의의 시점으로부터의 현재 시점까지의 조인 비용의 평균 및 표준편차와 몇 개의 질의에서 사용되는지를 나타내는 공유수를 저장하는 단계;
    (b) 선택 가능한 조인들 중에서 조인 비용의 평균이 가장 작은 조인의 조인 비용의 유효 범위와 중복되는 유효 범위를 가지는 조인들의 집합을 수행 가능 조인 후보 집합으로 결정하는 단계-여기서 상기 조인 비용의 유효 범위는 상기 조인 비용의 평균 및 표준편차를 이용하여 정해지고, 다만 상기 공유수가 2 이상인 조인의 경우 상기 조인 비용의 평균 대신에 상기 조인 비용의 평균보다 작게 수정한 값을 이용하여 정해짐;
    (c) 상기 수행 가능 조인 후보 집합에 속하는 조인과 상기 속하는 조인을 전제로 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출하는 단계-여기서, 상기 (b) 단계 및 상기 (c) 단계는 1회 수행되거나, 상기 (b) 단계 및 상기 (c) 단계는 상기 조합 각각을 상기 (b) 단계의 선택 가능한 조인들로 하여 반복 수행됨; 및
    (d) 상기 산출된 조인 비용 중 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정하는 단계를 포함하는 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  2. 제1항에 있어서,
    상기 (b) 단계에서 상기 조인 비용의 평균보다 작게 수정한 값은 상기 조인 비용의 평균을 상기 공유수로 나눈 값에 해당하는 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  3. 제1항에 있어서,
    상기 (a) 단계에서 상기 조인 비용의 평균 및 표준편차를 구함에 있어서, 과거에 수행된 적이 있는 조인 연산에 대해서는 수행되었을 때의 조인 비용을 이용하고, 과거에 수행되지 않은 조인 연산에 대해서는 미리 정의된 비용 모델에 따라 비용을 예측하는 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  4. 제1항에 있어서,
    상기 (a) 단계는 이미 저장되어 있던 조인 비용들과 입력되는 데이터 스트림에 대하여 측정된 조인 비용을 합쳐서 가우시안 분포를 띠고 있다고 가정하고 상기 조인 비용의 평균 및 표준편차를 저장하는 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  5. 제1항에 있어서,
    상기 (b) 단계에서 상기 조인 비용의 유효 범위는 임의의 조인에 대해서 상기 평균을 μ, 상기 표준편차를 σ라 할때 [μ-k*σ, μ+k*σ]로 정해지는 것을 특징으로 하는 다중 조인 질의 최적화 방법-여기서 k는 미리 정해진 변수이다.
  6. 제5항에 있어서,
    상기 k는 0 이상의 임의의 값인 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  7. 제1항에 있어서,
    상기 (b) 단계는, 조인 비용의 평균이 가장 작은 조인의 유효 범위 내 최대값보다 작은 유효 범위 내 최소값을 가지는 조인을 상기 수행 가능 조인 후보 집합의 원소로 결정하는 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  8. 제1항에 있어서,
    미리 정해진 변수에 따라서 상기 (b) 단계 및 상기 (c) 단계의 반복 여부 또는 상기 (b) 단계 및 상기 (c) 단계를 반복하는 횟수가 결정되는 것을 특징으로 하는 다중 조인 질의 최적화 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 기재된 다중 조인 질의 최적화 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
  10. 데이터 스트림에서의 조인 질의 최적화 방법에 있어서,
    (a) 입력되는 데이터 스트림에 대하여 미리 등록된 질의에 따라 결정되는 가능한 조인들 각각의 과거 임의의 시점으로부터의 현재 시점까지의 조인 비용의 평균 및 표준편차를 저장하는 단계;
    (b) 선택 가능한 조인들 중에서 조인 비용의 평균이 가장 작은 조인의 조인 비용의 유효 범위와 중복되는 유효 범위를 가지는 조인들의 집합을 수행 가능 조인 후보 집합으로 결정하는 단계-여기서 조인 비용의 유효 범위는 상기 조인 비용의 평균 및 표준편차를 이용하여 정해짐; 및
    (c) 상기 수행 가능 조인 후보 집합에 속하는 조인과 상기 속하는 조인을 전제로 선택 가능한 조인의 조합 각각에 대한 조인 비용을 산출하는 단계-여기서, 상기 (b) 단계 및 상기 (c) 단계는 1회 수행되거나, 상기 (b) 단계 및 상기 (c) 단계는 상기 조합 각각을 상기 (b) 단계의 선택 가능한 조인들로 하여 반복 수행됨; 및
    상기 산출된 조인 비용 중 가장 작은 조인 비용에 해당하는 조인의 조합을 질의 계획으로 결정하는 단계를 포함하는 것을 특징으로 하는 조인 질의 최적화 방법.
  11. 제10항에 있어서,
    상기 (a) 단계에서 상기 조인 비용의 평균 및 표준편차를 구함에 있어서, 과거에 수행된 적이 있는 조인 연산에 대해서는 수행되었을 때의 조인 비용을 이용하고, 과거에 수행되지 않은 조인 연산에 대해서는 미리 정의된 비용 모델에 따라 비용을 예측하는 것을 특징으로 하는 조인 질의 최적화 방법.
  12. 제10항에 있어서,
    상기 (a) 단계는 이미 저장되어 있던 조인 비용들과 입력되는 데이터 스트림에 대하여 측정된 조인 비용을 합쳐서 가우시안 분포를 띠고 있다고 가정하고 상기 조인 비용의 평균 및 표준편차를 저장하는 것을 특징으로 하는 조인 질의 최적화 방법.
  13. 제10항에 있어서,
    상기 (b) 단계에서 상기 조인 비용의 유효 범위는 임의의 조인에 대해서 상기 평균을 μ, 상기 표준편차를 σ라 할때 [μ-k*σ, μ+k*σ]로 정해지는 것을 특징으로 하는 조인 질의 최적화 방법-여기서 k는 미리 정해진 변수이다.
  14. 제13항에 있어서,
    상기 k는 0 이상의 임의의 값인 것을 특징으로 하는 조인 질의 최적화 방법.
  15. 제10항에 있어서,
    상기 (b) 단계는, 조인 비용의 평균이 가장 작은 조인의 유효 범위 내 최대값보다 작은 유효 범위 내 최소값을 가지는 조인을 상기 수행 가능 조인 후보 집합의 원소로 결정하는 것을 특징으로 하는 조인 질의 최적화 방법.
  16. 제10항에 있어서,
    미리 정해진 변수에 따라서 상기 (b) 단계 및 상기 (c) 단계의 반복 여부 또는 상기 (b) 단계 및 상기 (c) 단계를 반복하는 횟수가 결정되는 것을 특징으로 하는 조인 질의 최적화 방법.
  17. 제10항 내지 제16항 중 어느 한 항에 기재된 조인 질의 최적화 방법을 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR1020090033152A 2009-04-16 2009-04-16 데이터 스트림에서의 다중 조인 질의 최적화 방법 KR101133516B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090033152A KR101133516B1 (ko) 2009-04-16 2009-04-16 데이터 스트림에서의 다중 조인 질의 최적화 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090033152A KR101133516B1 (ko) 2009-04-16 2009-04-16 데이터 스트림에서의 다중 조인 질의 최적화 방법

Publications (2)

Publication Number Publication Date
KR20100114664A KR20100114664A (ko) 2010-10-26
KR101133516B1 true KR101133516B1 (ko) 2012-04-04

Family

ID=43133779

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090033152A KR101133516B1 (ko) 2009-04-16 2009-04-16 데이터 스트림에서의 다중 조인 질의 최적화 방법

Country Status (1)

Country Link
KR (1) KR101133516B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355149B2 (en) 2012-07-03 2016-05-31 Samsung Electronics Co., Ltd. Apparatus and method for efficiently processing multiple continuous aggregate queries in data streams

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880511B2 (en) 2011-11-25 2014-11-04 Tibco Software Inc. Database query optimization and cost estimation
KR101951747B1 (ko) 2012-01-18 2019-02-26 삼성전자 주식회사 Dsms에서 사용자 정의 연산자의 스케쥴링 장치 및 방법
KR101928819B1 (ko) * 2017-03-28 2019-03-12 주식회사 리얼타임테크 관계형 데이터베이스의 조인 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090002351A (ko) * 2007-06-28 2009-01-09 주식회사 퓨전소프트 제한합 기법을 이용한 데이터베이스에서의 효율적인 다중질의 수행 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090002351A (ko) * 2007-06-28 2009-01-09 주식회사 퓨전소프트 제한합 기법을 이용한 데이터베이스에서의 효율적인 다중질의 수행 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9355149B2 (en) 2012-07-03 2016-05-31 Samsung Electronics Co., Ltd. Apparatus and method for efficiently processing multiple continuous aggregate queries in data streams

Also Published As

Publication number Publication date
KR20100114664A (ko) 2010-10-26

Similar Documents

Publication Publication Date Title
EP2901324B1 (en) Adaptive query optimization
Saadat et al. PDDRA: A new pre-fetching based dynamic data replication algorithm in data grids
US8880511B2 (en) Database query optimization and cost estimation
CN108920552B (zh) 一种面向多源大数据流的分布式索引方法
KR20070055675A (ko) 지속적으로 발생되는 트랜잭션 데이터 집합인 데이터스트림 환경에서 빈발항목집합 탐색을 위한 축약형 전위트리와 축약형 전위 트리를 이용한 빈발항목집합 탐색 방법
CN102053975A (zh) 数据库系统和跨数据库查询优化方法
Yin et al. Robust query optimization methods with respect to estimation errors: A survey
US20210216548A1 (en) Method and database system for generating a query operator execution flow
CN101916280A (zh) 并行计算系统及按查询内容进行负载均衡的方法
KR101133516B1 (ko) 데이터 스트림에서의 다중 조인 질의 최적화 방법
Wang et al. Hybrid pulling/pushing for i/o-efficient distributed and iterative graph computing
Shanoda et al. JOMR: Multi-join optimizer technique to enhance map-reduce job
Kim et al. Time-slide window join over data streams
US11755581B2 (en) Cutoffs for pruning of database queries
US11449521B2 (en) Database management system
Arulraj et al. Predictive indexing
KR101237736B1 (ko) 데이터 스트림에서의 다중 조인 질의 처리 방법
Works et al. Optimizing adaptive multi-route query processing via time-partitioned indices
Malik et al. Automated physical design in database caches
Wang et al. HTD: heterogeneous throughput-driven task scheduling algorithm in MapReduce
Pan et al. Garden: a real-time processing framework for continuous top-k trajectory similarity search
He et al. SLC-index: A scalable skip list-based index for cloud data processing
CN109446294B (zh) 一种并行的相互子空间Skyline查询方法
Munir et al. Intermediate results materialization selection and format for data-intensive flows
Zhang et al. Scalable Online Interval Join on Modern Multicore Processors in OpenMLDB

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160202

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170327

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee