KR20140098529A - 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법 - Google Patents

데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법 Download PDF

Info

Publication number
KR20140098529A
KR20140098529A KR1020130011305A KR20130011305A KR20140098529A KR 20140098529 A KR20140098529 A KR 20140098529A KR 1020130011305 A KR1020130011305 A KR 1020130011305A KR 20130011305 A KR20130011305 A KR 20130011305A KR 20140098529 A KR20140098529 A KR 20140098529A
Authority
KR
South Korea
Prior art keywords
request
data management
data
execution
detailed
Prior art date
Application number
KR1020130011305A
Other languages
English (en)
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 KR1020130011305A priority Critical patent/KR20140098529A/ko
Publication of KR20140098529A publication Critical patent/KR20140098529A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating

Landscapes

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

Abstract

데이터에 대한 접근 패턴이 서로 상이한 응용을 처리하기 위한 방법 및 장치가 제공된다. 데이터 관리 요청은 하나 이상의 세부 요청들로 분할된다. 분할에 의해 생성된 세부 요청에 대해, 상기 복수의 데이터 관리 엔진들 중 어떤 데이터 관리 엔진에 의해 실행되었을 때 가장 좋은 성능이 나타날 것인가가 판단된다. 가장 좋은 성능을 나타낼 것으로 판단된 데이터 관리 엔진은 세부 요청을 실행한다. 하나 이상의 세부 요청들에 대한 실행의 결과를 취합함으로써 데이터 관리 요청에 대한 결과가 생성된다.

Description

데이터에 대한 접근 패턴이 서로 상이한 OLAP 응용 및 OLTP 응용을 동시에 효과적으로 지원하는 장치 및 방법{APPARATUS AND METHOD FOR EFFECTIVE SIMULTANEOUS SUPPORTING BOTH OLAP AND OLTP WHICH HAVE DIFFERENT DATA ACCESS PATTERNS}
하기의 실시예들은 데이터에 대한 다양한 접근 패턴을 사용하는 데이터 관리 응용들을 동시에 효과적으로 지원하는 방법에 관한 것으로서, 보다 구체적으로는 하나의 시스템에서 온라인 분석 처리(OnLine Analytical Processing; OLAP) 응용 및 온라인 트랜잭션 처리(Online Transaction Processing; OLTP) 응용을 동시에 효과적으로 지원하는 장치 및 방법에 관한 것이다.
다양한 정보기기 및 정보 기술이 발달함에 따라, 우리가 삶을 영위하는 환경이 스마트해지고 있다. 스마트해진 환경에 인해, 의료, 금융, 교육, 과학, 교통 및 산업 등의 사회 전 분야에서 이전에는 상상되지 못했던 다양한 유형의 많은 데이터들이 끊임없이 생성되고 있다.
현대인은, 빅데이터라고 불리는 다양하고 거대하며 정리되지 않은 수 많은 데이터 중, 단지 일부 만을 활용하며 살아가고 있다. 빅데이터에 내에 숨어있는 지혜를 찾아서 활용하기 위해서는 사용자는 데이터를 효과적으로 잘 관리할 수 있어야 한다.
데이터를 다루는(관리하는) 응용은, 응용의 성격에 따라 크게 OLTP 응용 및 OLAP 응용으로 분류될 수 있다.
OLTP 응용은 데이터 입력 또는 거래 조회 등을 위한 트랜잭션 지향의 업무를 처리하는 응용이다. OLTP 응용은 일반적으로 은행, 항공사, 제조업체 및 판매점 등을 포함하는 많은 산업체에서 사용된다.
OLTP 응용의 특징 중 하나는, 다수의 사용자들에 의해 단순한 거래들이 동시 다발적으로 발생하는 것이다. 대부분의 회계 시스템은 OLTP 응용의 특징을 갖는다.
OLTP 응용의 목적은 주로 현황을 파악하는 것이다. 예컨대, 제조 업체의 제고 관리에 있어서, 언제 어느 거래처로부터 어떤 제품에 대한 주문이 얼마나 들어왔는지, 언제 어떤 제품이 얼마만큼 생산되었는지, 또한 어떤 제품이 얼마만큼 거래처에 납품되었는지 등이 기록되고, 상기의 주문, 생산 및 납품의 결과로 어떤 제품의 얼마만큼의 재고가 남가 있는가가 중요한 관심사항이 될 수 있다.
OLTP 응용에서 나타나는 데이터에 대한 접근 패턴 중 하나는, 행을 구성하는 대부분의 열들에 대한 접근들이 한꺼번에 이루어지는 것이다. 이러한 패턴은, 하나의 행을 삽입, 삭제 또는 갱신하거나, 행을 구성하는 다수의 열들의 값을 읽는 연산이 자주 이루어지기 때문에 나타난다. 따라서, OLTP 응용에 있어서는, 열 기반 데이터 저장(Column-based Store) 보다는 행 기반 데이터를 저장(Row-based Store)이 더 좋은 성능을 보이는 것으로 알려져 있다.
OLAP 응용은 OLTP 응용의 처리 결과로서 생성된 데이터를 활용한다. OLAP 응용은 OLTP 응용의 처리 결과로서 생성된 데이터에 대한 분석을 통해 과거의 흐름뿐만 아니라 현 상태를 파악하고, 더 나아가 미래를 예측한다. 예컨대, 제조 업체에 있어서, OLAP 응용은 현재의 제품별 재고 상태, 제품의 계절별 판매량, 제품의 지역별 판매량 및 제품의 모델별 판매량 등을 분석하고, 분석의 결과에 기반하여 제품의 생산량을 조절한다.
OLAP 응용은, OLTP 응용과 비교했을 때, 데이터에 대한 갱신보다는 데이터에 조회가 자주 발생하는 데이터 조회 위주의 응용이다. 재조 업체의 예에서처럼, 사용자는 OLAP 응용을 사용함으로써 동일한 데이터를 여러 기준들을 이용하는 다양한 방식들을 통해 분석한다. 상기의 분석의 결과는 사용자가 데이터와 관련된 전반적인 상황을 이해할 수 있게 한다. 의사 결정에 활용한다. 데이터를 특정 기준을 중심으로 분석하는 응용이기에 필요한 기준에 대한 정보를 담고 있는 열을 중심으로 데이터를 접근하는 패턴을 보인다. 따라서, OLAP 응용은 행 기반으로 데이터를 저장할 때에 비해 열 기반으로 데이터를 저장할 때 더 좋은 성능을 보인다는 것이 알려져 있다.
일 실시예는 데이터에 대한 접근 패턴이 서로 상반되는 OLAP 응용 및 OLTP 응용을 동시에 효과적으로 지원하는 장치 및 방법을 제공할 수 있다.
일 실시예는 OLAP 응용의 성격 및 OLTP 응용의 성격을 모두 갖는 응용을 효과적으로 지원하는 장치 및 방법을 제공할 수 있다.
일 측면에 있어서, 데이터 관리 요청을 수신하는 요청 수신부, 복수의 데이터 관리 엔진들을 포함하는 데이터 관리 엔진부 및 상기 데이터 관리 요청을 하나 이상의 세부 요청들로 분할하고, 상기 분할에 의해 생성된 세부 요청이 상기 복수의 데이터 관리 엔진들 중 어떤 데이터 관리 엔진에 의해 실행되었을 때 가장 좋은 성능이 나타날 것인가를 판단하고, 가장 좋은 성능을 나타낼 것으로 판단된 데이터 관리 엔진에게 상기 세부 요청의 실행을 요청하고, 상기 하나 이상의 세부 요청들에 대해 상기 실행의 결과를 취합함으로써 상기 데이터 관리 요청에 대한 결과를 생성하는 실행 관리부를 포함하는 서버가 제공될 수 있다.
데이터에 대한 접근 패턴이 서로 상반되는 OLAP 응용 및 OLTP 응용을 동시에 효과적으로 지원하는 장치 및 방법이 제공된다.
OLAP 응용의 성격 및 OLTP 응용의 성격을 모두 갖는 응용을 효과적으로 지원하는 장치 및 방법이 제공된다.
도 1은 OLTP 응용 및 OLAP 응용을 동시에 지원하는 방법을 도시한다.
도 2는 일 실시예에 따른 서버의 구조도이다.
도 3은 일 예에 따른 데이터 관리 요청에 대한 처리 방법의 흐름도이다.
도 4는 일 예에 따른 실행 계획 결정 방법의 흐름도이다.
도 5는 일 예에 따른 세부 요청의 실행 방법의 흐름도이다.
도 6은 일 예에 따른 OLTP의 성격 및 OLAP의 성격을 모두 갖는 검색 요청을 처리하는 방법을 설명한다.
도 7은 OLTP의 성격 및 OLAP의 성격이 혼합된 질의가 처리되는 방법의 좀 더 구체적인 예를 설명한다.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 본 발명을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 OLTP 응용 및 OLAP 응용을 동시에 지원하는 방법을 도시한다.
OLTP 응용 및 OLAP 응용은 동일한 데이터에 대해 동작할 수 있다. 그러나, 최적의 성능이 획득되기 위해서는 데이터가 OLTP 응용의 특성 및 OLAP 응용의 특성 각각에 최적화된 구조로 관리되어야 한다. 따라서, 하나의 시스템이 OLTP 응용 및 OLAP 응용을 동시에 지원하는 것은 가능하지만, 두 응용들의 데이터에 대한 접근 패턴들이 서로 상반되기 때문에, 두 응용들 모두에게 응답 시간 및 처리량의 측면에서 최적의 성능을 보장하는 것은 불가능하다. 따라서, 종래의 기술에 따르면, 서로 다른 시스템들이 OLTP 응용 및 OLAP 응용을 동시에 지원하기 위해서는 데이터를 중복으로 유지하고, 사용자가 응용의 성격에 맞는 시스템을 선택하여 사용한다.
사용자(110)는 OLTP 응용을 제공하는 OLTP 용 데이터 관리 시스템(120) 및 OLAP 응용을 제공하는 OLAP 용 데이터 관리 시스템(130)을 선택적으로 사용할 수 있다. 사용자(110)는 OLTP 응용 및 OLAP 응용의 개발자일 수 있다.
또한, 응용 중에는 OLTP 응용 또는 OLAP 응용 중 하나로 분명하게 구분될 수 있는 것이 아닌, OLTP 응용의 성격 및 OLAP 응용의 성격을 함께 가진 것이 있다. 이러한 응용은, OLTP 응용 또는 OLAP 응용 중 하나에 최적화된 시스템에 의해 실행될 경우, 응답 시간 및 처리량의 측면에서 현격하게 저하된 성능을 보일 수 있다.
하기의 실시예에서는, 데이터 관리 시스템이 고가용성을 지원하기 위한 방법으로서 많이 이용하는있는 데이터 복제 기법이 활용된다. 시스템은 특정 부분에서 발생한 고장 또는 이상에 의해 전체 시스템이 정상적으로 동작하지 않는 단일점 오류(single point of failure)가 발생하지 않도록 설계 및 관리된다. 데이터 관리의 관점에서는 단일점 오류가 발생하는 상황을 방지하기 위해 데이터에 대한 복제본이 관리된다. 즉, 데이터는 이중화 또는 삼중화로 저장된다.
하기의 실시예에서는, 데이터를 활용하는 다양한 특성을 가지는 응용들이 있음을 고려함에 따라, 데이터는 동일한 내용에 대한 상이한 형태들를 가지도록 변형 및 복제된다. 하기의 실시예는 데이터를 활용하는 응용들의 다양한 데이터 접근 패턴들을 고려하여 각 접근 패턴에 최적화된 다양한 형태의 동일한 내용을 가지는 데이터가 존재하도록 데이터를 복제한다. 하기의 실시예에서, 각 형태의 복제된 데이터를 관리하기 위한 데이터 관리 엔진이 별도로 존재한다.
또한, 사용자 요청은 데이터 관리 엔진에 직접적으로 전달되지 않는다. 사용자 요청은 분석을 통해 세부 요청들로 분할된다. 분할된 세부 요청들은 최적의 실행이 가능한 데이터 관리 엔진으로 전달된다. 분할된 세부 요청에 대한 실행 요청이 최적의 실행이 가능한 데이터 관리 엔진으로 전송된다.
상술된 변형, 복제, 분할 및 전달을 통해, 데이터에 대한 상반된 접근 패턴을 갖는 OLAP 응용과 OLTP 응용뿐만 아니라 OLTP의 성격 및 OLAP의 성격을 모두 가진 응용 또한 동시에 효과적으로 처리될 수 있다.
도 2는 일 실시예에 따른 서버의 구조도이다.
서버(200)는 데이터 관리 서버일 수 있다.
서버(200)은 요청 수신부(210), 복제 관리부(220), 실행 관리부(230), 데이터 관리 엔진부(240) 및 데이터 저장소(250)를 포함할 수 있다.
데이터 관리 엔진부(240)는 복수의 데이터 관리 엔진들을 포함할 수 있다. 복수의 데이터 관리 엔진들의 일 예로서 제1 데이터 관리 엔진(241) 및 제2 데이터 관리 엔진(242)이 도시되었다.
서버(200)는 분산 시스템으로 확장될 수 있다. 서버(200)는 다수의 노드들을 포함하는 데이터 관리 시스템에 대응할 수 있다. 요청 수신부(210), 복제 관리부(220), 실행 관리부(230), 데이터 관리 엔진부(240) 및 데이터 저장소(250)는 각각 요청 수신 서버, 복제 관리 서버, 실행 관리 서버, 데이터 관리 서버, 데이터 저장 서버에 대응할 수 있다. 요청 수신 서버, 복제 관리 서버, 실행 관리 서버, 데이터 관리 서버, 데이터 저장 서버는 각각 분산 시스템의 노드일 수 있다. 또한, 제1 데이터 관리 엔진(241) 및 제2 데이터 관리 엔진(242)은 각각 제1 데이터 관리 서버 및 제2 데이터 관리 서버에 대응할 수 있다. 제1 데이터 관리 서버 및 제2 데이터 관리 서버는 각각 분산 시스템의 노드일 수 있다.
요청 수신부(210)는 응용의 요청이 입력되는 인터페이스(interface)일 수 있다.
요청 수신부(210)는 응용의 요청을 수신할 수 있다. 응용의 요청은 검색, 삽입, 삭제 및 갱신 중 하나 이상을 포함할 수 있다. 응용의 요청은 데이터 관리 요청일 수 있다.
복제 관리부(220)는 데이터의 고가용성 및 데이터에 대한 효율적인 관리를 위해 데이터에 대한 복제를 수행할 수 있다.
실행 관리부(230)는 응용의 요청을 하나 이상의 세부 요청들로 분할할 수 있다. 하나 이상의 세부 요청들 각각에 대해, 실행 관리부(230)는 분할에 의해 생성된 세부 요청이 복수의 데이터 관리 엔진들 중 어떤 데이터 관리 엔진에 의해 실행되었을 때 가장 좋은 성능이 나타날 것인가를 판단할 수 있다. 실행 관리부(230)는 가장 좋은 성능을 나타낼 것으로 판단된 데이터 관리 엔진에게 세부 요청의 실행을 요청할 수 있다.
데이터 관리 엔진부(240)는 데이터에 대한 관리를 수행할 수 있다. 데이터에 대한 관리는 데이터의 삽입, 삭제, 갱신 및 검색 중 하나 이상을 포함할 수 있다.
복수의 데이터 관리 엔진들은 각각 서로 상이한 성격을 가질 수 있다. 복수의 데이터 관리 엔진들은 각각 서로 상이한 접근 패턴에 적합화된 데이터 관리 엔진일 수 있다.
예컨대, 제1 데이터 관리 엔진(241)은 OLTP 응용에 적합화된 OLTP 용 데이터 관리 엔진일 수 있다. 제1 데이터 관리 엔진(241)은 행-기반(row-based) 데이터 관리 엔진일 수 있다. 제2 데이터 관리 엔진(242)은 OLAP 응용에 적합화된 OLAP 용 데이터 관리 엔진일 수 있다. 제2 데이터 관리 엔진(242)은 열-기반(column-based) 데이터 관리 엔진일 수 있다.
다양한 유형의 특성을 갖는 응용을 위한 데이터 관리 엔진들이 사용될 수 있다. 예컨대, 복수의 데이터 관리 엔진들은 그래프 데이터 관리 엔진 및 문서 데이터 관리 엔진을 포함할 수 있다. 그래프 데이터 관리 엔진은 그래프를 다루는 응용에 적합화된 데이터 관리 엔진일 수 있다. 문서 데이터 관리 엔진은 문서를 다루는 응용에 적합화된 데이터 관리 엔진일 수 있다. 다양한 유형의 특성을 갖는 응용을 위한 데이터 관리 엔진들이 사용됨에 따라, 서버(200)의 적용 범위가 확장될 수 있다.
데이터 저장소(250)는 데이터를 실제로 저장할 수 있다. 데이터 저장소(250)는 메인 메모리(main memory), 하드 디스크(hard-disk) 및 솔리드 스테이트 디스크(solid state disk) 중 하나 이상일 수 있다.
응용의 데이터 관리 요청은, 데이터의 변경이 발생하는 요청 및 데이터의 변경이 발생하지 않는 요청으로 분류될 수 있다. 데이터의 변경이 발생하는 요청을 이하 변경 요청으로 명명한다. 데이터의 변경이 발생하지 않는 요청을 이하 검색 요청으로 명명한다. 변경 요청은 데이터의 삽입 요청, 데이터의 삭제 요청 및 데이터의 갱신 요청을 포함할 수 있다.
서버(200)가 변경 요청을 처리할 때, 복수의 데이터 엔진들이 각각 관리하는 데이터 간의 데이터 일관성에 있어서 문제가 발생할 수 있다. 데이터 일관성에 있어서 문제가 발생하는 현상을 방지하기 위해, 변경 요청의 연산이 처리된 데이터 관리 엔진이 아닌 다른 데이터 관리 엔진에서도 변경 요청이 수행될 수 있다. 데이터의 변경에 대한 전파를 위해, 이중화 기법이 사용될 수 있다. 이중화 기법은 로그에 기반한 방법 및 트랜잭션에 기반한 방법을 포함할 수 있다.
도 3은 일 예에 따른 데이터 관리 요청에 대한 처리 방법의 흐름도이다.
하기의 단계들(310 내지 340)은 도 2를 참조하여 전술된 실행 관리부(230)에서 수행될 수 있다.
단계(310)에서, 실행 관리부(230)는 응용의 데이터 관리 요청의 하나 이상의 세부 요청들로의 분할을 수행할 수 있다.
데이터 관리 요청은 질의(query)에 대응할 수 있고, 세부 요청은 부질의(sub-query)에 대응할 수 있다.
단계(320)에서, 데이터 관리 요청을 구성하는 하나 이상의 세부 요청들 각각에 대해, 실행 관리부(230)는 데이터 관리 요청의 분할에 의해 생성된 세부 요청의 실행 계획을 결정할 수 있다. 실행 관리부(230)는 세부 요청의 실행의 효율성에 기반하여 세부 요청의 실행 계획을 결정할 수 있다.
세부 요청의 실행 계획은 복수의 데이터 관리 엔진들 중 어떤 데이터 관리 엔진을 사용하여 실행 계획을 실행할 것인가에 대한 정보를 포함할 수 있다. 세부 요청의 실행 계획은 실행 계획을 하나 이상의 세부 요청들을 실행함에 있어서 세부 요청을 몇 번째로 실행할 것인가에 대한 정보를 포함할 수 있다.
실행 관리부(230)는 복수의 데이터 관리 엔진들 중 세부 요청을 가장 효율적으로 실행할 것으로 예측되는 데이터 관리 엔진이 세부 요청을 실행하도록 실행 계획을 결정할 수 있다.
단계(330)에서, 하나 이상의 세부 요청들 각각에 대해, 실행 관리부(230)는 세부 요청의 실행 계획에 따라 데이터 관리 엔진부(240)에 의해 제공되는 복수의 데이터 관리 엔진들을 사용하여 세부 요청을 실행할 수 있다.
예컨대, 실행 관리부(230)는 세부 요청의 성격에 따라 제1 데이터 관리 엔진(241) 또는 제2 데이터 관리 엔진(242)에게 세부 요청의 실행을 요청할 수 있다. 세부 요청이 OLTP 응용의 성격을 갖고 있으면, 실행 관리부(230)는 OLTP 용 데이터 관리 엔진인 제1 데이터 관리 엔진(241)에게 세부 요청의 실행을 요청할 수 있다. 세부 요청이 OLAP 응용의 성격을 갖고 있으면, 실행 관리부(230)는 OLAP 용 데이터 관리 엔진인 제2 데이터 관리 엔진(242)에게 세부 요청의 실행을 요청할 수 있다.
단계(340)에서, 하나 이상의 세부 요청들에 대해, 실행 관리부(230)는 세부 요청의 실행의 결과를 취합함으로써 데이터 관리 요청에 대한 결과를 생성할 수 있다.
도 4는 일 예에 따른 실행 계획 결정 방법의 흐름도이다.
도 3을 참조하여 전술된 단계(320)는 하기의 단계들(410 내지 440)를 포함할 수 있다.
이하에서, OLTP 용 데이터 관리 엔진은 제1 데이터 관리 엔진(241)일 수 있다. OLAP 용 데이터 관리 엔진은 제2 데이터 관리 엔진(242)일 수 있다.
단계(410)에서, 실행 관리부(230)는 하나 이상의 세부 요청들의 실행 순서를 결정할 수 있다. 실행 관리부(230)는 데이터 관리 요청의 분할에 의해 생성된 세부 요청을 하나 이상의 세부 요청들 중 몇 번째로 실행할 것인가를 결정할 수 있다.
하나 이상의 세부 요청들의 각각에 대해, 하기의 단계들(420 내지 440)이 수행될 수 있다.
단계(420)에서, 실행 관리부(230)는 세부 요청이 데이터를 변경하는지 여부를 검사할 수 있다. 검사의 결과에 따라, 세부 요청이 데이터를 변경할 경우, 단계(425)가 수행될 수 있다. 세부 요청이 데이터를 변경하지 않을 경우, 단계(430)가 수행될 수 있다.
또는, 실행 관리부(230)는 세부 요청이 검색 요청인지 여부를 검사할 수 있다. 세부 요청이 검색 요청이 아닌 경우, 단계(425)가 수행될 수 있다. 세부 요청이 검색 요청인 경우, 단계(430)가 수행될 수 있다.
단계(425)에서, 실행 관리부(230)는 OLTP 용 데이터 관리 엔진이 세부 요청을 실행하도록 세부 요청의 실행 계획을 결정할 수 있다.
단계(430)에서, 실행 관리부(230)는 세부 요청이 OLTP 응용의 성격을 갖는 OLTP 성 세부 요청인지 여부를 검사할 수 있다. 검사의 결과에 따라, 세부 요청이 OLTP 성 세부 요청인 경우, 단계(435)가 수행될 수 있다. 검사의 결과에 따라, 세부 요청이 OLTP 성 세부 요청이 아닌 경우, 단계(440)가 수행될 수 있다.
단계(435)에서, 실행 관리부(230)는 OLTP 용 데이터 관리 엔진이 세부 요청을 실행하도록 세부 요청의 실행 계획을 결정할 수 있다.
말하자면, 세부 요청이 데이터를 변경하지 않는 검색 요청이고, OLTP 응용의 성격을 갖지 않는다면, 단계(440)가 수행될 수 있다.
단계(440)에서, 실행 관리부(230)는 OLAP 용 데이터 관리 엔진이 세부 요청을 실행하도록 세부 요청의 실행 계획을 결정할 수 있다.
도 5는 일 예에 따른 세부 요청의 실행 방법의 흐름도이다.
도 3을 참조하여 전술된 단계(330)는 하기의 단계들(520 내지 550)을 포함할 수 있다.
이하에서, 세부 요청 실행 데이터 관리 엔진은 복수의 데이터 관리 엔진들 중 도 3을 참조하여 전술된 단계(320)에서 세부 요청을 실행하도록 결정된 데이터 관리 엔진일 수 있다.
단계(510)에서, 실행 관리부(230)는 세부 요청 실행 데이터 관리 엔진에게 세부 요청의 실행을 요청할 수 있다.
단계(520)에서, 실행 관리부(230)로부터 세부 요청의 실행을 요청받은 세부 요청 실행 데이터 관리 엔진은 세부 요청을 실행할 수 있다.
단계(530)에서, 복제 관리부(220), 실행 관리부(230) 또는 세부 요청 실행 데이터 관리 엔진은 세부 요청이 데이터를 변경하는지 여부를 검사할 수 있다. 세부 요청이 데이터를 변경하는 경우, 단계(540)가 수행될 수 있다. 세부 요청이 데이터를 변경하지 않는 경우, 세부 요청의 실행이 종료할 수 있다.
단계(540)에서, 복제 관리부(220), 실행 관리부(230) 또는 세부 요청 실행 데이터 관리 엔진은 데이터의 일관성의 유지를 위해 데이터의 변경을 세부 요청 실행 데이터 관리 엔진을 제외한 다른 복수의 데이터 관리 엔진들의 각각에게 전파할 수 있다.
복제 관리부(220) 또는 실행 관리부(230)는 세부 요청 실행 데이터 관리 엔진이 데이터의 변경을 전파하도록 요청 또는 제어할 수 있다.
단계(550)에서, 세부 요청 실행 데이터 관리 엔진을 제외한 다른 복수의 데이터 관리 엔진들의 각각은 데이터의 변경을 적용할 수 있다. 상기의 적용에 의해 복수의 데이터 관리 엔진들에 의해 관리되는 데이터 간의 일관성이 유지될 수 있다.
상술된 데이터의 변경의 전파는 이중화 기법에서 사용되는 로그에 기반한 방법 또는 트랜잭션에 기반한 방법에 의해 이루어질 수 있다.
상술된 실시예들에 따르면, 사용자로부터 전달된 데이터 관리 요청의 특성에 따른 데이터 관리 요청에 대한 최적화된 처리를 지원할 수 있다. 따라서, 검색 요청에 대한 응답 시간이 단축될 수 있다. 반면, 변경 요청의 경우에 있어서는, 복수의 데이터 관리 엔진들 각각에 데이터의 변경을 반영하기 위한 비용에 의해, 응답 시간이 길어질 수 있다.
따라서, 데이터의 일관성의 유지를 위한 변경의 전파에 있어서, 복제 관리부(220) 또는 실행 관리부(230)는 응용이 사용하는 데이터 별로, 응용의 특성을 고려하여 동기화된 복제 방법 및 비동기화된 복제 방법 중 하나를 선택할 수 있다. 동기화된 복제 방법은 데이터의 일관성이 항상 유지될 수 있는 복제 방법일 수 있다. 비동기화된 복제 방법은 지연된 형태의 데이터 일관성이 유지되는 복제 방법일 수 있다. 또한, 복제 관리부(220) 또는 실행 관리부(230)는 사용자가 응용이 사용하는 데이터 별로 동기화된 복제 방법 및 비동기화된 복제 방법 중 하나를 설정하게 할 수 있다.
상술된 선택 및 설정에 의해, 응용이 허용하는 범위 내에서 데이터의 일관성이 유지될 수 있으며, 응답 시간이 단축될 수 있다.
도 6은 일 예에 따른 OLTP의 성격 및 OLAP의 성격을 모두 갖는 검색 요청을 처리하는 방법을 설명한다.
도 6에서, Q는 데이터 관리 요청, 즉 질의를 나타낼 수 있다. SQ는 세부 요청, 즉 부질의를 나타낼 수 있다. R은 데이터 관리 요청의 실행의 결과를 나타낼 수 있다. Ri는 i 번째 세부 요청의 실행의 결과를 나타낼 수 있다.
실행 관리부(230)는 데이터 관리 요청(610)을 4 개의 세부 요청들(620)로 분할할 수 있다.
실행 관리부(230)는 4 개의 세부 요청들(620)의 실행 순서를 결정할 수 있다. 도 6에서, 제3 세부 요청, 제1 세부 요청, 제4 세부 요청 및 제2 세부 요청이 순서대로 실행되는 것으로 도시되었다.
4 개의 세부 요청들(620)의 각각에 대해서, 실행 관리부(230)는 복수 의 데이터 관리 엔진들 중 세부 요청을 가장 효율적으로 실행할 것으로 예측되는 데이터 관리 엔진이 세부 요청을 실행하도록 실행 계획을 결정할 수 있다. 도 6에서, 제3 세부 요청 및 제1 세부 요청은 OLAP 용 데이터 관리 엔진에 의해 실행되고, 제4 세부 요청 및 제2 세부 요청은 OLTP 용 데이터 관리 엔진에 의해 실행되는 것으로 도시되었다. 예컨대, 제3 세부 요청 및 제1 세부 요청은 OLAP 용 데이터 관리 엔진에 적합한 특성을 가질 수 있고, 제4 세부 요청 및 제2 세부 요청은 OLTP 용 데이터 관리 엔진에 적합한 특성을 가질 수 있다.
4 개의 세부 요청들(620)의 실행의 결과들로서, 제3 실행 결과(631), 제1 실행 결과(632), 제4 실행 결과(633) 및 제2 실행 결과(634)가 생성될 수 있다.
하나의 세부 요청의 실행 결과는 다른 세부 요청을 구성하는 입력으로 이용될 수도 있다. 도 6의 일 예에서는 제3 세부 요청의 제3 실행 결과(631)가 제4 세부 요청인 SQ4의 실행을 위한 입력으로 활용되고 있다.
실행 관리부(230)는 4 개의 세부 요청들(620)의 실행의 결과들인 제3 실행 결과(631), 제1 실행 결과(632), 제4 실행 결과(633) 및 제2 실행 결과(634)를 취합합으로써 데이터 관리 요청(610)의 실행의 결과(640)를 생성할 수 있다.
도 7은 OLTP의 성격 및 OLAP의 성격이 혼합된 질의가 처리되는 방법의 좀 더 구체적인 예를 설명한다.
실행 관리부(230)에 의해 OLTP의 성격 및 OLAP의 성격이 혼합된 질의인 Q(710)가 2 개의 부질의 Q1(730) 및 Q2(740)로 분할되고, Q1이 실행된 후에 Q2가 실행되는 실행 계획이 수립될 수 있다(720). 뿐만 아니라 Q1의 실행 결과가 Q2의 입력으로 전달되는 실행 계획이 수립될 수 있다. 즉, Q1이 먼저 실행되어 그 결과가 AvgOrderValue의 값으로서 설정되고, ArgOrderValue를 통해 Q1의 실행 결과가 Q2로 전달되어 실행되도록 실행 계획이 수립된다. 실행 계획에 따라 부질의 Q1 과 Q2는 부질의의 특성에 맞는 데이터 관리 엔진을 활용하여 실행될 수 있다. 즉, OLAP 성격을 가진 Q1은 OLAP용 데이터 관리 엔진(750)을 활용하여 실행되고, OLTP 성격을 가진 Q2는 OLTP용 데이터 관리 엔진(760)을 활용하여 실행될 수 있다.
전술된 실시예들에 따르면, 데이터 관리 요청은 하나 이상의 세부 요청들로 분할될 수 있다. 각 세부 요청은 세부 요청을 최적으로 처리할 수 있는 데이터 관리 엔진에 의해 실행될 수 있다. 따라서, 하나의 서버가 응답 시간 및 처리량의 측면에서 OLTP 응용 및 OLAP 응용 모두를 효과적으로 지원할 수 있으며, 최근에 증가하는 OLTP의 성격 및 OLAP의 성격을 동시에 갖는 응용 또한 효과적으로 지원할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPA(field programmable array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
200: 서버
210: 요청 수신부
220: 복제 관리부
230: 실행 관리부
240: 데이터 관리 엔진부
250: 데이터 저장소

Claims (1)

  1. 데이터 관리 요청을 수신하는 요청 수신부;
    복수의 데이터 관리 엔진들을 포함하는 데이터 관리 엔진부; 및
    상기 데이터 관리 요청을 하나 이상의 세부 요청들로 분할하고, 상기 분할에 의해 생성된 세부 요청이 상기 복수의 데이터 관리 엔진들 중 어떤 데이터 관리 엔진에 의해 실행되었을 때 가장 좋은 성능이 나타날 것인가를 판단하고, 가장 좋은 성능을 나타낼 것으로 판단된 데이터 관리 엔진에게 상기 세부 요청의 실행을 요청하고, 상기 하나 이상의 세부 요청들에 대해 상기 실행의 결과를 취합함으로써 상기 데이터 관리 요청에 대한 결과를 생성하는 실행 관리부
    를 포함하는, 서버.
KR1020130011305A 2013-01-31 2013-01-31 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법 KR20140098529A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130011305A KR20140098529A (ko) 2013-01-31 2013-01-31 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130011305A KR20140098529A (ko) 2013-01-31 2013-01-31 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20140098529A true KR20140098529A (ko) 2014-08-08

Family

ID=51745304

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130011305A KR20140098529A (ko) 2013-01-31 2013-01-31 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20140098529A (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200134140A (ko) * 2019-05-21 2020-12-01 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 조회 처리 방법, 조회 처리 시스템, 서버 및 컴퓨터 판독 가능 매체
CN115599790A (zh) * 2022-11-10 2023-01-13 星环信息科技(上海)股份有限公司(Cn) 一种数据存储系统、数据处理方法、电子设备和存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200134140A (ko) * 2019-05-21 2020-12-01 베이징 바이두 넷컴 사이언스 앤 테크놀로지 코., 엘티디. 조회 처리 방법, 조회 처리 시스템, 서버 및 컴퓨터 판독 가능 매체
US11194807B2 (en) 2019-05-21 2021-12-07 Beijing Baidu Netcom Science And Technology Co., Ltd. Query processing method, query processing system, server and computer readable medium
CN115599790A (zh) * 2022-11-10 2023-01-13 星环信息科技(上海)股份有限公司(Cn) 一种数据存储系统、数据处理方法、电子设备和存储介质
CN115599790B (zh) * 2022-11-10 2024-03-15 星环信息科技(上海)股份有限公司 一种数据存储系统、数据处理方法、电子设备和存储介质

Similar Documents

Publication Publication Date Title
US9773027B2 (en) Data loading tool
US10031935B1 (en) Customer-requested partitioning of journal-based storage systems
EP2811792B1 (en) A method for operating a mobile telecommunication device
JP5999574B2 (ja) データベース管理システム及び計算機システム
US9075858B2 (en) Non-disruptive data movement and node rebalancing in extreme OLTP environments
US11068504B2 (en) Relational database storage system and method for supporting fast query processing with low data redundancy, and method for query processing based on the relational database storage method
Yang et al. F1 Lightning: HTAP as a Service
JP6479186B2 (ja) 計算機システム及びデータベース管理方法
CN106569896B (zh) 一种数据分发及并行处理方法和系统
US9854037B2 (en) Identifying workload and sizing of buffers for the purpose of volume replication
GB2537446A (en) Database management system and method
GB2519761A (en) A method and a system for distributed processing of data records
JP6269140B2 (ja) アクセス制御プログラム、アクセス制御方法、およびアクセス制御装置
WO2017156855A1 (en) Database systems with re-ordered replicas and methods of accessing and backing up databases
US20140279825A1 (en) Extensibility model for document-oriented storage services
US9323760B1 (en) Intelligent snapshot based backups
CN112015716A (zh) 数据库数据迁移方法、装置、介质和电子设备
US9400613B1 (en) Intelligent pairing for snapshot based backups
US10235407B1 (en) Distributed storage system journal forking
JP6245700B2 (ja) 計算機システム、データの検査方法及び計算機
US9390131B1 (en) Executing queries subject to different consistency requirements
US10067949B1 (en) Acquired namespace metadata service for controlling access to distributed file system
CN101802791A (zh) 动态地址跟踪
KR20140098529A (ko) 데이터에 대한 접근 패턴이 서로 상이한 olap 응용 및 oltp 응용을 동시에 효과적으로 지원하는 장치 및 방법
US11200210B2 (en) Method of efficient backup of distributed file system files with transparent data access

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination