KR20040085041A - 변형 olap을 이용하는 능동적 캐싱을 위한 시스템,방법, 컴퓨터 판독 가능 매체 및 상기 시스템을 이용하는장치 - Google Patents

변형 olap을 이용하는 능동적 캐싱을 위한 시스템,방법, 컴퓨터 판독 가능 매체 및 상기 시스템을 이용하는장치 Download PDF

Info

Publication number
KR20040085041A
KR20040085041A KR1020040020995A KR20040020995A KR20040085041A KR 20040085041 A KR20040085041 A KR 20040085041A KR 1020040020995 A KR1020040020995 A KR 1020040020995A KR 20040020995 A KR20040020995 A KR 20040020995A KR 20040085041 A KR20040085041 A KR 20040085041A
Authority
KR
South Korea
Prior art keywords
cache
multidimensional
data
database
query
Prior art date
Application number
KR1020040020995A
Other languages
English (en)
Other versions
KR100996771B1 (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 마이크로소프트 코포레이션
Publication of KR20040085041A publication Critical patent/KR20040085041A/ko
Application granted granted Critical
Publication of KR100996771B1 publication Critical patent/KR100996771B1/ko

Links

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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/954Relational
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/953Organization of data
    • Y10S707/957Multidimensional
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching

Landscapes

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

Abstract

본 발명은 백그라운드 프로세스에서, ROLAP 객체의 MOLAP 동등물(MOLAP equivalent)을 구축함으로써 그 ROLAP 객체(차원, 파티션, 및 데이터 집계(aggregations))에 대하여 MOLAP 성능을 강화(leverage)한다. 이 백그라운드 프로세스가 완성되면, 쿼리는 ROLAP 쿼리로부터 MOLAP 쿼리로 전환된다. (OLAP 객체들의 내용을 정의하는 테이블들과 같은) 관련된 관계형 객체들에 변경이 생긴 경우에는, OLAP 객체는 도로 ROLAP 모드로 전환되며, 관련된 모든 캐시들은, 백그라운드 프로세스로서 새로운 MOLAP 동등물이 생성되는 동안, 버려진다(dropped).

Description

변형 OLAP을 이용하는 능동적 캐싱을 위한 시스템, 방법, 컴퓨터 판독 가능 매체 및 상기 시스템을 이용하는 장치{SYSTEMS AND METHODS FOR PROACTIVE CACHING UTILIZING OLAP VARIANTS}
본 발명은 일반적으로 데이터 캐싱에 관한 것으로, 더 구체적으로는 변형 OLAP을 이용하는 능동적 캐싱(proactive caching)을 위한 시스템 및 방법에 관한 것이다.
컴퓨팅 및 네트워킹 기술은 일상 생활의 많은 중요한 부분들을 변화시켜 왔다. 컴퓨터는 사치품, 교육 도구, 또는 오락의 중심이라기보다는 집안의 생활 필수품이 되었고, 재정을 관리 및 예측하고, 난방, 냉방, 조명, 및 보안과 같은 집안의 작업을 제어하며, 영구적이고 믿을 수 있는 매체에 기록 및 영상을 저장하기 위한 수단을 사용자에게 제공한다. 인터넷과 같은 네트워킹 기술은 사용자가 원격 시스템, 정보 및 관련된 애플리케이션들에 사실상 무제한적으로 접근할 수 있게 한다.
컴퓨팅 및 네트워킹 기술이 강인하고(robust), 안전하며, 신뢰할 수 있게 되면서, 더 많은 소비자, 도매상, 소매상, 기업, 교육 기관 등이 패러다임을 바꾸고 비즈니스를 수행하기 위하여 전통적인 수단 대신 인터넷과 같은 네트워크를 채용하고 있다. 예를 들어, 많은 비즈니스 및 소비자들이 웹사이트나 온라인 서비스를 제공하고 있다. 예컨대, 오늘날 소비자는 인터넷을 통해 자신의 계좌에 접속해서, 잔액 조회, 계좌 이체 및 계산서 지불과 같은 증가하는 수의 이용 가능한 거래를 수행한다.
통상적으로, 네트워크 세션은 클라이언트 애플리케이션으로 접근 가능한 데이터베이스에 정보를 저장하는 서버와 상호작용하기 위하여 클라이언트 애플리케이션과 교신(interface)하는 사용자를 포함한다. 예를 들어, 주식 시장 웹사이트는 사용자에게 주식 시세를 검색하고 주식을 구매하기 위한 수단을 제공한다. 사용자는 주식 기호를 입력하고 쿼리(query)를 활성화하기 위해 마우스를 한 번 클릭함으로써 시세를 요청할 수 있다. 클라이언트 애플리케이션은 주식의 데이터베이스 테이블을 쿼리하여 주식 시세를 반환한다.
컴퓨팅 및 네트워킹 기술의 단점은 제한된 대역폭이다. 사용자는 대역폭의 일부를 소모하는데, 그 소모되는 부분을 다른 사용자들은 이용할 수 없다. 따라서, 더 많은 사용자들이 네트워크를 사용할수록, 가용 대역폭은 줄어들게 되고 이는 응답 시간 및 성능을 감소시킬 수 있다. 컴퓨팅 및 네트워킹 기술의 또 다른 단점은 이용 가능한 데이터의 양과 관련된 가용 데이터 전송 속도(available data transfer rate)가 제한되어 있다는 점이다. 예를 들어, (예컨대, 다양한 서버에 걸쳐 분산된) 많은 양의 데이터를 검색해야하는 요청들은 시간을 많이 소비하고, 성능도 감소하게 할 수 있다.
그리하여, 대형 데이터베이스들에 관한 정보로의 접근을 돕기 위하여 비즈니스 인텔리전스(Business Intelligence; BI) 솔루션이 개발되었다. 최근의 비즈니스 대부분은 관계형 데이터베이스(relational type database)로 이동해왔다. 데이터 웨어하우스(data warehouse)가 이전의 이벤트들과 관련된 저장된 데이터에 관하여 "누구인가" 및 "무엇인가"를 묻는 질문에 대답하기 위한 전략적인 정보를 저장하기 위하여 개발되었다. 그러나, 데이터 웨어하우스가 역사적인 데이터(historical data)를 검색하는 능력만을 가진다는 사실 때문에 이의 한계가 드러났다. 따라서, 데이터에 관해 "누구인가" 및 "무엇인가"를 묻는 경우뿐 아니라 "만일..라면(what if)" 및 "왜(why)"에 대하여도 대답을 하기 위해 온라인 분석 처리(on-line analytical processing; OLAP) 시스템이 개발되었다. OLAP 시스템은 애널리스트, 비즈니스 매니저, 및 간부들이 신속하고, 신뢰할 수 있으며, 상호적으로 작용하는(interactive) 프로세스를 통해 정보에 대한 통찰력을 얻을 수 있게 하는, 데이터 집합에 대한 다차원적인 뷰(multidimensional views)이다.
OLAP 툴과 같은 분석 툴은, 엄청난 양의 데이터로의 접근 시간을 감소시키는데 기여한다. 이러한 툴을 이용함으로써, 사용자는 모든 데이터를 일일이 검색하기보다는 데이터에 관한 일반적인 질문을 하거나 "쿼리(queries)"를 할 수 있다. 따라서, "데이터에 관한 데이터" 즉 메타데이터(metadata)는 쿼리 프로세스의 촉진 및 필요한 네트워크 대역폭의 감소를 돕는다. 한편, 비즈니스 환경에서 통상적으로 그렇듯이, 어제는 빠르던 것이 오늘의 기준으로는 느리다고 여겨진다. 저장되는 데이터의 크기가 기하급수적으로 확장됨에도 불구하고, 더욱 빠른 정보 전달에 대한 수요는 항상 증가하기 마련이다.
본 발명의 몇 가지 면에 대한 기본적인 이해를 제공하기 위해 본 발명을 간단하게 요약하여 제시한다. 이 요약은 본 발명의 종합적인 개관이 아니다. 또한 본 발명의 결정적인 주요 구성요소를 식별하거나 본 발명의 범위의 경계를 나타내는 것을 의도하지 않는다. 이의 순전한 목적은 후술될 발명의 구성에 대한 도입부로서 간소화된 형식으로 본 발명의 대략의 개념을 제시하는 것이다.
본 발명은 일반적으로 데이터 캐싱에 관한 것으로, 더 구체적으로는 변형 OLAP을 이용하는 능동적 캐싱(proactive caching)을 위한 시스템 및 방법과 관련되어 있다. 데이터 소스에 관한 복수의 쿼리 소스를 생성하기 위하여 변형 OLAP이 향상(leverage)된다. 데이터 소스를 기반으로 하는 다차원 객체를, MOLAP(Multidimensional OLAP) 캐시와 같은, 변형 OLAP 캐시로 효율적으로 변환함으로써 사용자는 쿼리를 신속하게 분석할 수 있게 되고, 또한 실시간으로 데이터 소스에 접근하는 능력을 보유하게 된다. 본 발명은 또한 , 능동적이지 않은(non-proactive) 캐싱 방식을 채용할 때보다 더 빠르고 더 사용자-지향적인(user-oriented) 쿼리 응답을 제공함으로써, 변형(variant)이 이용되는 경우에 사용자에 의한 상호적인 참여를 가능하게 한다.
본 발명은 또한 부분적으로 다차원 분석 데이터를 기반으로 하는 캐시의 채용을 통해 대형 데이터베이스에 직접 접근할 필요를 줄이고, 기존의 데이터 구조의 유용성을 확장하며, 광대한 데이터베이스에 대한 신속하고 효율적인 분석을 제공함으로써 데이터 분석을 용이하게 한다. 모든 변형 OLAP이 장점과 단점을 갖고 있기때문에, 하나의 변형을 이용하는 시스템은 일반적으로, 스테일 데이터(stale data)를 반환하거나 느리게 응답하여 사용자를 완전하게 만족시키지는 못한다. 본 발명은 쿼리 응답 시간을 획기적으로 감소시키고, 동시에 실시간 정보가 추출(extract)될 수 있게 하여, 사용자-친화성(user-friendliness)을 극대화하고 정보 검색 속도를 증가시키며 채용되는 변형과 상관없이 신뢰할 만한 정보를 제공함으로써, 사용자로 하여금 신속하게 데이터를 수신할 수 있게 하고, 쿼리에 응답하기 위해 이용되는 변형에 관하여 표면상 투명(transparent)하게 한다.
앞서 설명된 부분 및 관련된 전부를 달성하기 위하여, 발명의 소정의 예시적인 태양이 후술되는 발명의 구성 및 첨부된 도면과 관련해서 본 명세서에 설명되어있다. 한편, 이러한 태양들은 본 발명의 기본원리가 채용될 수 있는 다양한 방식 중에서 단지 일부를 지시하는 것이고 본 발명은 그러한 태양들과 그 동등물(equivalents)들을 모두 포함하도록 의도된다. 본 발명의 다른 장점 및 새로운 특징은 후술할 발명의 구성에서 도면을 참조하여 고려할 때 명확해 질 것이다.
도 1은 본 발명의 일 태양에 따른 예시적인 능동적 캐싱 프로세스를 나타내는 도면.
도 2는 본 발명의 일 태양에 따른 데이터베이스 서빙 시스템(database serving system)의 블록도.
도 3은 본 발명의 일 태양에 따른 데이터베이스 서빙 시스템의 블록도.
도 4는 본 발명의 일 태양에 따른 데이터베이스 서빙 시스템의 블록도.
도 5는 본 발명의 일 태양에 따른 캐시 개발 구조의 블록도.
도 6은 본 발명의 일 태양에 따른 캐시 개발 구조의 블록도.
도 7은 본 발명의 일 태양에 따른 능동적 캐싱 시스템의 블록도.
도 8은 본 발명의 일 태양에 따른 능동적 캐싱 시스템의 블록도.
도 9는 본 발명의 일 태양에 따른 능동적 캐싱 시스템 입력들의 블록도.
도 10은 본 발명의 일 태양에 따른 능동적 캐싱 시스템 파라미터의 블록도.
도 11은 본 발명의 일 태양에 따른 능동적 캐싱 시스템의 블록도.
도 12는 본 발명의 일 태양에 따른 능동적 캐싱의 방법을 나타내는 흐름도.
도 13은 본 발명의 일 태양에 따른 능동적 캐싱의 방법을 나타내는 흐름도.
도 14는 본 발명의 일 태양에 따른 능동적 캐싱의 방법을 나타내는 흐름도.
도 15는 본 발명의 일 태양에 따른 능동적 캐싱의 방법을 나타내는 흐름도.
도 16은 본 발명의 일 태양에 따른 능동적 캐싱의 방법을 나타내는 흐름도.
도 17은 본 발명의 일 태양에 따른 능동적 캐싱의 방법을 나타내는 흐름도.
도 18은 본 발명이 기능할 수 있는 예시적인 운영 환경을 나타내는 도면.
도 19는 본 발명이 기능할 수 있는 예시적인 운영 환경을 나타내는 도면.
도 20은 본 발명이 기능할 수 있는 예시적인 운영 환경을 나타내는 도면.
<도면의 주요 부분에 대한 부호의 설명>
104 : ROLAP 객체를 MOLAP 캐시로 처리
108 : 데이터베이스 변경
110 : 사용자에 의해 개시된 동작들
112 : ROLAP 객체의 처리의 수행
114 : ROLAP 객체 상에서 다른 트랜잭션 시작
116 : 자동적으로 검출되는 상태
118 : 데이터베이스 변경
202 : 능동적 캐싱 시스템
204 : 분석 컴포넌트
206 : 캐시
208 : OLAP 객체들
210 : 데이터베이스
212 : 사용자 입력
214 : 시스템 입력
220 : 쿼리
이제 본 발명은 도면을 참조하여 설명되며, 도면 전체에 걸쳐 동일한 참조 번호는 대응하는 부분을 나타낸다. 뒤이은 설명에서, 해설의 목적으로, 본 발명의 철저한 이해를 제공하기 위해 다수의 특정 세부 사항들이 설명된다. 그러나, 이러한 특정 세부 사항들이 없어도 본 발명이 실시될 수 있음이 명백할 것이다. 다른 예들에서, 본 발명의 설명을 쉽게 하기 위하여 잘 알려진 구조 및 장치들이 블록도의 형태로 도시된다.
본 출원에서 사용된 바와 같이, "컴포넌트"라는 용어는 하드웨어, 하드웨어 및 소프트웨어의 결합, 또는 실행중인 소프트웨어 중 하나인 컴퓨터 관련 실체(computer-related entity)를 지칭하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에 실행되는 프로세스, 프로세서, 객체, 실행가능(an executable), 실행 스레드(a thread of execution), 프로그램, 및/또는 컴퓨터가 될 수 있으나 여기에 한정되지는 않는다. 설명하자면, 서버 상에 실행되는 애플리케이션 및 그 서버가 모두 컴퓨터 컴포넌트가 될 수 있다. 하나 이상의 컴포넌트는 프로세스 및/또는 실행 스레드 내에 존속할 수 있고, 컴포넌트는 하나의 컴퓨터 상에 위치하거나 둘 또는 그 이상의 컴퓨터 사이에 분산될 수 있다. "스레드"는 운영 체계 커널이 실행을 위해 조정(schedule)하는 프로세스 내의 실체이다. 기술 분야에서 잘 알려진 바와 같이, 각각의 스레드는 관련된 "문맥(context)"을 갖는데, 이는 그 스레드의 실행과 관련된 휘발성 데이터이다. 스레드의 문맥은 시스템 레지스터의 내용 및 그 스레드의 프로세스에 속하는 가상 주소(virtual address)를 포함한다. 따라서, 스레드의 문맥을 포함하는 실제 데이터는 그 스레드가 실행되는 동안 계속 변하게 된다.
짧은 지연 시간(latency) 및 실시간 데이터를 모두 제공할 수 있는 변형 OLAP은 하나도 없기 때문에, 본 발명은 백그라운드 프로세스로서 ROLAP 객체의 MOLAP 동등물 (MOLAP equivalent)을 구축함으로써, ROLAP 객체들(차원(dimensions), 파티션(partitions) 및 집계(aggregations))에 대하여MOLAP 성능을 강화한다. 이 백그라운드 프로세스가 완료하면, 객체 사용은 MOLAP 쿼리로 전환(switch)되어 훨씬 빠른 쿼리 응답 시간을 가능하게 한다. (OLAP 객체들의 내용을 정의하는 테이블과 같은) 관련된 관계형 객체들에 변경이 발생하면, OLAP 객체는 도로 ROLAP 모드로 전환되고, 관련된 모든 캐시는 백그라운드에서 새로운 MOLAP 동등물이 생성되는 동안 버려진다(dropped). 이와 같이, 쿼리를 처리하기 위해 이용되는 모드에 따라 능동적으로 제어되는 캐시를 제공하기 위하여 MOLAP 동등물이 채용된다. 이는 사용자가, ROLAP 객체를 쿼리하는데 들이는 통상적인 수행 대가(performance price)를 지불하지 않아도, 즉각적으로 데이터를 브라우징(및/또는 관계형 데이터베이스의 가장 최신의 상태를 반영)할 수 있는 이점을 얻게 한다. 이는 사용자가 본 발명을, 항상 가장 최신의 데이터를 가능한 한 신속하게 제공하며, 관계형 데이터베이스 등과 같은 데이터베이스들 둘러싼, 메타데이터 지지대(shim layer of metadata)로서 파악할 수 있게 해 준다. 최대한 포괄적인 성능을 얻기 위해 사용자는 다양한 옵션을 가지며 이를 통해 능동적인 캐싱을 미세 튜닝(fine-tune)할 수 있고 관계형 데이터베이스의 변경에 대응하여 능동적인 캐싱의 행동에 영향을 줄 수 있다(이러한 옵션은 세부적인 인프라(infra)이다).
사용자가 가장 최근의 데이터(실시간 OLAP)를 검토하는데는 관심이 있으나 ROLAP 데이터의 브라우징에 있어 본질적인 지연(delay)은 바라지 않는다면, 그 사용자는 시스템에게, 백그라운드 트랜잭션(background transaction)에서 동등한(equivalent) MOLAP 객체를 구축하고, 쿼리를 "전환(switch)"하여 대신 MOLAP "이미지"를 사용하도록 명령할 수 있다. 기반이 되는 관계형 객체에 변경이발생하면, 그 즉시 시스템은 그 변경에 자동적으로 응답하여 객체를 도로 ROLAP 모드로 복귀시키는 쇼트 트랜잭션을 연다. 그 후 시스템은 다시 백그라운드 트랜잭션을 열고 MOLAP 이미지를 재구축할 것이다. 백그라운드 트랜잭션이 진행되고 있는 동안 업데이트가 행해지는 경우, MOLAP 처리는 취소되고 그 백그라운드 트랜잭션은 다시 시작된다. 이러한 백그라운드 트랜잭션은, 백그라운드 트랜잭션 때문에 사용자가 개시한(initiate) 트랜잭션이 객체의 현재 락 모드(locking mode)와 호환 불가한 모드에서 객체를 락(lock)해야 할 필요가 있는 경우에는, 취소될 수 있다는 점에서 일종의 "이류 시민(second class citizens)"이다.
도 1에서, 본 발명의 일 태양에 따른 예시적인 능동적 캐싱 프로세스(100)가 도시된다. 능동적 캐싱 프로세스(100)가 시작(102)되고 ROLAP 객체가 MOLAP 캐시로 처리된다(104). 프로세스(100)는, 취소가 수신되어 데이터베이스가 변경되었는지 여부의 검사(108)를 호출하지 않는 한, 완료된다(106). 데이터베이스에 변경이 없으면(108), 프로세스(100)는 완료된다(106). 한편, 데이터베이스가 변경된 경우(108), 프로세스(100)는 재조정(rescheduled)되어 다시 시작한다(102). 본 발명의 통상적인 예에서, 동작들(actions)은 사용자에 의해 개시된다(110). 이러한 동작들(110)은 프로세스(100)를 개시하는, ROLAP 객체 처리의 수행(committing of processing of a ROLAP object; 112)을 포함할 수 있다. 사용자에 의해 발생하는 다른 동작(110)은 ROLAP 객체 상에 다른 트랜잭션을 시작하는 것(114)과 기존의 ROLAP 객체의 MOLAP 캐시로의 처리(ROLAP object to MOLAP cache process; 104)를 취소하는 것을 포함할 수 있다. 시스템은 또한, 예컨대 데이터베이스 변경(118)등과 같은 상태(condition)를 자동적으로 검출할 수 있다(116). 데이터베이스 변경(118)이 발생하면, 기존의 ROLAP 객체의 MOLAP 캐시로의 처리(104)는 취소된다.
사용자는 또한 새로운 MOLAP 이미지를 구축하는 백그라운드 트랜잭션을 시작하기 전에 "정적 시간 지연(quiet time delay)" 특징을 통해 "정적 시간"의 최소 존속 시간을 특정할 수 있다. 이는 OLTP(On-Line Transaction Processing) 내로 다수의 크로스-트랜잭션의 삽입/업데이트(cross-transaction insert/update)를 허용한다 (많은 OLTP 애플리케이션은 이러한 방법으로, 시간의 어느 특정한 순간에 개별적인 삽입을 통해, 트랜잭션의 데이터를 업데이트한다). 이는 OLAP 서버가 반복되는 쿼리에 의해 OLTP 시스템에 주는 쿼리 스트레스를 줄인다. 정적 시간 지연은 관련된 테이블의 "마지막으로 업데이트된" 시간을 추적하여 기록하는 컴포넌트에 의해 달성된다.
정적 시간 지연 특징과 유사하게, 선택적인 "지연된" 트리거링 특징("delayed" triggering feature)은, 누적된 변경을 매 지정 기간(구성 가능한 구간; configurable interval) 마다 처리하는 백그라운드 스레드에서 모든 변경을 추적할 것을 규정한다. 논리적인 스킴(scheme)에서, 이 특징은 두 스레드 사이의 큐 구현(queue implementation)을 통해 구현되고, 모든 호출은 이 큐를 통해 처리된다. 이 특징은 테이블의 업데이트 여부를 묻는 쿼리들로 OLTP를 오버로드하는 것을 막기 위하여 소정의 제공자(provider)에 의해 제시될 수 있는 통지 메커니즘(notification mechanism)을 허용한다. 이 메커니즘이 전체적인 능동적 캐싱 서브시스템의 통지 행위를 설명하기 때문에, 일반적으로 이는 매 서버를기반(매 객체 기반이 아님)으로 이루어진다.
다른 특징은, 이하의 프로세스를 수동적으로 트리거링하면서, 사용자가 소정의 테이블/뷰(views)/ROLAP 객체를 "더티(dirty)"로 마크(mark)하기 위한 수단을 통해 "수동적인(manual)" 변경이 이루어 질 수 있게 한다. 이는 통상적으로, XML/A (eXtensible Markup Language/Analysis) 등과 같이, 정규 메커니즘을 통해 서버로 전송될 수 있는 DDL(Data Definition Language) 명령문에 의해 행해진다. 본 발명의 일 태양에서, 마킹에는 두 가지 카테고리가 있을 수 있다. 이는 관계형 객체 마킹(잠재적으로 복수의 ROLAP 객체에 영향을 줄 수 있음) 및/또는 ROLAP 객체 마킹(종속성이 고려되는 한 관계형 계층을 기본적으로 초기 적재함(bootstrapping))이다.
또 다른 특징은 추적 테이블들의 목록(list of tracking tables)을 생성하기 위한 수단을 허용한다. 사용자는 소정의 ROLAP 객체에 영향을 주는 테이블에 라벨을 붙일 수 있다. 이의 장점은 후술되는 부분을 포함한다. 이 특징의 한 장점은, 객체가 기반으로 하는 소정의 테이블이 실제 테이블이 아니라 뷰 또는 DSV(Data Set Viewer) 뷰(명명된 쿼리)인 경우, 뷰의 변경 여부에 관한 이벤트의 추적은 어려울 것이라는 점이다 (전형적인 통지 메커니즘 - SQL(Structured Query Language) 통지 및 트리거링은, 정규 뷰 및 명명된 쿼리(regular views and named query)가 아니라, 테이블 및 구체화된 뷰(tables and materialized views) 상에 작용한다). 이 특징이 없을 경우, 뷰에 대한 변경을 추적하기 위한 유일한 적절한 방법은 그 뷰의 SQL 정의를 파싱(parse)하는 것이다 (그러나, 여기서도, 뷰가 그 자체로서 다른 뷰를 기반으로 할 수 있어 SQL 파싱은 합리적인 접근이 아니다). 다른 이점은 "수동적인" 변경 특징과 관련되어 있다. 종종, 객체가 소정의 테이블과의 바인딩을 갖지 않더라도 그 테이블이 변경되었다면 그 객체를 더티(dirty)로 마크하는 것이 바람직하다.
본 발명의 일 태양에서, 상기 수단들은 다음의 두 곳 중 적어도 한 곳에 테이블을 목록화(listing)하는 능력을 갖는다. 1) DSV 내에, 능동적 캐싱 추적을 위하여 교대 테이블의 목록(list of alternate tables)이 제공된다. 따라서, 능동적 캐싱을 목적으로, ROLAP 객체가 이 테이블에 종속하는 경우, 그 객체는 교대 테이블에 실제로 종속하는 것으로서 자신을 등록(register)한다. 교대 테이블은 추적가능한 관계형 객체(뷰가 아니라 테이블 및/또는 구체화된 뷰)인 것이 바람직하다. 2) ROLAP 객체 내에, 교대/부가적 테이블의 목록이 그에 의해 객체를 추적하기 위해 제공된다. 이는 DSV(파티션) 내의 관계형 객체와 필수적인 바인딩을 갖지 않는 객체를 위해 종종 필요하다. 이들 테이블 역시 추적가능한 관계형 객체(테이블 및/또는 구체화된 뷰)인 것이 바람직하다.
또 다른 특징은 "제한된 지연 시간"을 위한 수단을 제공한다. 이 특징은 새로운 MOLAP 이미지 생성의 시작과, 오래된 MOLAP 이미지의 취소 및 (복구를 하는 경우) ROLAP으로의 복구(revert) 사이의 지속 시간을 규정한다. 본 발명의 한 태양이 있어서, 디폴트로, 이 지속시간은 0이다 (기본적으로, 두 개의 트랜잭션 - 객체를 ROLAP으로 롤백(roll back)하는 트랜잭션 및 MOLAP 엔진을 구축하기 시작하는 트랜잭션 - 은 병렬하여 시작한다). 이 특징의 장점은 OLAP 저장 장치(ROLAPstore)로 가는 쿼리들이 최소한이 되는 지속 시간을 갖는다는 점과, (만료 기간(expiration interval)이 아직 지나지 않은 경우) ROLAP 능동적 캐싱된 차원의 MOLAP 이미지 구축이 끝나는 시점에 분석을 제공하는 것을 포함한다. 변경이 실제로 증분적인(incremental) 경우, 능동적 캐싱된 파티션은 영향을 받지 않는다. 변경이 비-입도(non-granularity) 속성에 영향을 미치는 경우, 이는 유연한 데이터 집계를 삭제(ROLAP으로 복구 및 재조정)하고 다른 모든 것들은 손대지 않은 채로 놔둘 수 있다. 그렇지 않은 경우, 상기 수단은 종속적인 파티션/데이터 집계를 ROLAP으로 복구한다.
"정적 시간 오버라이드(quiet time override)" 특징은 최초 통지 후 어느 정도의 시간이 충족되면, MOLAP 이미징이 무조건적으로 수행될 것을 규정하는 수단을 제공한다. 한편, 본 발명의 한 태양에서, MOLAP 이미징이 오버라이드에 기해 시작되었고 이것이 구축되는 동안에 다른 통지가 온 경우에는, 그 통지가 진행 중인 MOLAP 이미징을 취소하지 않는다는 점에 주목해야 할 것이다. 이는 정상적인 취급을 위해 기록된다 (한편 "정상적인" 경로를 통해 처리가 시작되는 경우였다면, 현재의 저장 모드가 ROLAP인 경우 통지는 MOLAP 이미징의 취소를 가져온다).
"강제적 재구축(force rebuild)" 특징은 새로운 이미지가 구축된 후 어느 시점에서 MOLAP 이미징이 무조건적으로 시작될 것을 규정한다. 본 발명의 한 태양에서, 이것이 진행되는 동안 통지가 도달하면, 그 통지는 정상적인 취급을 위하여 대기열에 넣어진다(queued).
도 2로 가면, 본 발명의 일 태양에 따른 데이터베이스 서빙 시스템의 블록도가 도시되어 있다. 데이터베이스 서빙 시스템(200)은 능동적 캐싱 시스템(202), 다차원 객체들 서브세트(multidimensional objects subset; 232)를 갖는, "OLAP 객체" 등과 같은 다차원 객체들(208), 및 업데이트(218)를 수용하는 능력을 갖는 데이터베이스(210)를 포함한다. 능동적 캐싱 시스템(202)은 분석 컴포넌트(204) 및 캐시 서브세트(230)를 갖는 적어도 하나의 캐시(206)를 포함한다. 이 시스템(200)은 능동적 캐싱 시스템(202)을 통해 사용자들에게 쿼리 분석 및 응답을 제공한다. 이 능동적 캐싱 시스템(202)은 데이터베이스(210)를 기반으로 한 다차원 객체들(208)을 향상시켜, 사용자에게 표면상 투명하게 남아 있으면서 짧은 지연 시간 응답(low latency responses) 및/또는 실시간 응답을 제공하기 위한 시스템을 제공한다.
본 발명의 이러한 태양에서, 분석 컴포넌트(204)는 쿼리 입력(220), 사용자 입력(212), 시스템 입력(214) 및 업데이트 통지 등을 위한 데이터베이스 입력(216)을 포함하는 입력들을 갖는다. 본 발명의 다른 예들에서는, 데이터베이스 입력(216)은 시스템 입력(214)의 일부이다. 분석 컴포넌트(204)는 캐시 인터페이스(222) 및 다차원 객체 인터페이스(224)를 갖는다. 이들 인터페이스(222, 224)는 원하는 쿼리 응답에 따라 (즉, 적합한 응답에 대한 적합한 캐시를 능동적으로 찾아서), 분석 컴포넌트(204)로부터 캐시(206) 및/또는 다차원 객체들(208)로의 접근을 제공한다. 본 발명의 다른 태양들에서, 분석 컴포넌트는 캐시 서브세트(230)로의 캐시 서브세트 인터페이스(226) 및 다차원 객체들 서브세트(232)로의 다차원 객체들 서브세트 인터페이스(228)를 갖는다. 서브세트 인터페이스들(226, 228)은캐시(206) 및/또는 다차원 객체들(208)의 다른 부분들이 업데이트되는 동안 캐시(206) 및/또는 다차원 객체들(208)의 서브세트들로의 접근을 제공한다. 캐시(206)는 다차원 객체들(208)로부터 유도된 정보로 이루어진다. 다차원 객체들(208)은 데이터베이스(210)를 기반으로 한다.
본 발명의 한 예에서, 정보를 캐싱하기 위한 시스템은, 데이터베이스(210)로부터 유도된 동적 다차원 분석 데이터(dynamic multidimensional analysis data)를 제공하는 적어도 하나의 다차원 객체(208), 적어도 하나의 다차원 객체(208)로부터 유도된 다차원 분석 데이터를 제공하는 적어도 하나의 캐시(206), 및 다차원 객체(208) 및 캐시(206)로의 접근을 능동적으로 제어하기 위하여 다차원 객체(208) 및 캐시(206)와 연결된 적어도 하나의 분석 컴포넌트(204)를 포함한다. 본 발명의 다른 예들에서, 다차원 객체(208)는 ROLAP 객체 등과 같은, OLAP 객체들로 이루어진다. 본 발명의 또 다른 예에서, 분석 컴포넌트(204)는 UDM(Unified Dimensional Model; 통합 차원 모델)을 포함한다. 본 발명의 또 다른 예에서, 캐시(206)는 MOLAP 캐시 등을 포함한다. 본 발명의 다른 예들은 실시간 접근 분석 데이터를 포함하는 다차원 객체(208) 및 신속한 접근 분석 데이터(quick access analysis data)를 포함하는 캐시(206)를 포함하나 이에 한정되지는 않는다. 본 발명의 다른 예들의 경우에도 관계형 데이터베이스로 구성된 데이터베이스(210)를 포함한다.
본 발명의 추가적인 예들은 또한 분석 컴포넌트(204), 캐시(206), 및 적어도 하나의 다차원 객체(208)로의 접근을 가능하게 하는 다차원 객체 인터페이스(224)를 포함하는 능동적 캐싱 시스템(202)을 포함한다. 분석 컴포넌트는 다차원 객체들(208)로, 그리고 캐시(206)로의 접근을 제어할 능력을 갖는다. 따라서, 다차원 객체들(208)이 능동적 캐싱 시스템(202)의 일부여야 할 필요는 없다. 다차원 객체들(208)은 데이터베이스 관리 시스템의 일부가 될 수도 있다. 본 발명은, 따라서, 기존의 데이터베이스 관리 시스템들과 함께 이용될 수 있는 능력을 가짐으로써 그 채용(employment)에 있어 유연성을 허용한다. 이는 기존의 시스템들을 강화하고, 이들의 성능을 증가시키면서 이들의 유용성을 극대화한다.
본 발명의 또 다른 예들은 분석 컴포넌트(204), 캐시(206)로의 접근 및 제어를 가능하게 하는 캐시 인터페이스(222), 및 적어도 하나의 다차원 객체(208)로의 접근을 가능하게 하는 다차원 객체 인터페이스(224)를 포함하는 능동적 캐싱 시스템(202)을 추가적으로 포함한다. 따라서 캐시(206)는 능동적 캐싱 시스템(202)의 외부에 존재할 수 있다. 이는 이미 이용 가능한 캐싱 리소스를 갖는 기존의 플랫폼들로, 본 발명의 구현에 있어 더더욱 큰 유연성을 허용한다.
도 3을 참조하면, 본 발명의 일 태양에 따른 데이터베이스 서빙 시스템(300)의 다른 블록도가 도시되어 있다. 데이터베이스 서빙 시스템(300)은 능동적 캐싱 시스템(302), OLAP 객체 등과 같은 다차원 객체들(308), 및 업데이트(318)를 수용하는 능력을 갖는 데이터베이스(310)를 포함한다. 능동적 캐싱 시스템(302)은 분석 컴포넌트(304) 및 캐시(306)를 포함한다. 본 발명의 이러한 태양에서, 분석 컴포넌트(304)는 쿼리 입력(320), 사용자 입력(312), 시스템 입력(314) 및 업데이트 통지 등을 위한 데이터베이스 입력(316)을 포함하는 입력들을 갖는다. 본 발명의 다른 예들에서는, 데이터베이스 입력(316)은 시스템 입력(314)의 일부이다. 분석컴포넌트(304)는 다차원 객체 인터페이스(322)를 갖는다. 이러한 본 발명의 태양에서, 캐시(306)는 다차원 객체들(308)을 기반으로 하는 백그라운드 동작(background operation)에서 구축된다. 따라서, 특히 이 경우에, 분석 컴포넌트(304)는 쿼리에 응답하기 위하여 캐시(306)와 적극적으로 인터페이스를 통해 연결되지 않는다. 따라서, 분석 컴포넌트(304)는 다차원 객체들(308)로의 접근을 통해서만 쿼리 입력(320)에 응답한다.
도 4로 가면, 본 발명의 일 태양에 따른 데이터베이스 서빙 시스템(400)의 또 다른 블록도가 도시되어 있다. 데이터베이스 서빙 시스템(400)은 능동적 캐싱 시스템(402), OLAP 객체 등과 같은 다차원 객체들(408), 및 업데이트(418)를 데이터베이스 테이블(426)로 수용하는 능력을 갖는 데이터베이스(410)를 포함한다. 능동적 캐싱 시스템(402)은 분석 컴포넌트(404) 및 새로운 캐시(406)를 포함한다. 본 발명의 이러한 태양에서, 분석 컴포넌트(404)는 쿼리 입력(420), 사용자 입력(412), 시스템 입력(414) 및 업데이트 통지 등을 위한 데이터베이스 입력(416)을 포함하는 입력들을 갖는다. 본 발명의 다른 예들에서는, 데이터베이스 입력(416)은 시스템 입력(414)의 일부이다. 분석 컴포넌트(404)는 다차원 객체 인터페이스(422)를 갖는다. 본 발명의 이러한 태양에서, 새로운 캐시(406)는 다차원 객체들(408)로부터의 백그라운드 동작에서 구축된다. 그러므로, 특히 이러한 경우에, 분석 컴포넌트(404)는 쿼리에 응답하기 위하여 새로운 캐시(406)와 적극적으로 인터페이스를 통해 연결되지 않는다. 따라서, 분석 컴포넌트(404)는 다차원 객체들(408)로의 접근을 통해서만 쿼리 입력(420)에 응답한다. 추가적으로, 데이터베이스 테이블(426)에 영향을 주는 업데이트(418)가 수신된다. 본 발명의 일 태양의 이러한 예에서, 데이터베이스 테이블(426)의 변경은 쿼리 입력(420)이 응답을 위해 의존하는 다차원 객체들(408)에게도 영향을 준다. 따라서, 업데이트(418) 이전의 데이터베이스의 데이터를 기반으로 하는 오래된 캐시(424)는 제거되고, 최근의 데이터베이스의 데이터 업데이트를 반영하기 위해 새로운 캐시(406)가 능동적 캐싱 시스템(402)의 백그라운드 프로세스에서 구축된다. 본 발명의 다른 예들에서, 오래된 캐시(424)의 제거는 사용자 입력(412) 및/또는 시스템 입력(414)이 원인이 될 수 있다.
도 5를 보면, 본 발명의 일 태양에 따른 캐시 개발 구조(500)의 블록도가 도시된다. 구조(500)는 데이터베이스 테이블(510)을 포함하는 데이터베이스(502), 메타데이터 세트(504), 차원 모델(dimensional model; "OLAP 객체들" 등과 같은 다차원 객체들; 506), 및 캐시(508)를 포함한다. 통상적으로, 데이터베이스(502)에서 나온 데이터에 관한 정보는 메타데이터 세트(504)로 컴파일(compile)된다. 메타데이터 객체들은 메타데이터 세트(504)로부터 구성되어 차원 모델(506)을 형성한다. 차원 모델(506)은 일반적으로 차원, 큐브(cubes), 및 측정값(measures) 등을 포함한다. 이는 OLAP 관리 트리(OLAP management tree)가 차원 모델(506)의 메타데이터 객체들에 접근할 수 있게 한다. 이러한 방식으로, 관련된 데이터베이스를 기반으로 하는 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 제공하는 캐시(508)가 차원 모델(506)로부터 구성될 수 있다.
도 6을 계속 보면, 본 발명의 일 태양에 따른 캐시 개발 구조(600)의 다른블록도가 도시된다. 본 발명의 이러한 예에서, 구조(600)는 관계형 데이터베이스 테이블(610)을 포함하는 관계형 데이터베이스(602), 메타데이터 세트(604), ROLAP 객체들(606), 및 MOLAP 캐시(608)를 포함한다. 이 예에서, MOLAP 캐시(608)는 메타데이터 세트(604) 및 관계형 데이터베이스(602)로부터 유도된 ROLAP 객체들로부터 구성된다. 이용 가능한 두 개의 상이한 변형 OLAP 데이터 세트(OLAP data set variants; 예컨대, ROLAP 및 MOLAP 변형 등)를 제공함으로써, 사용자 및/또는 시스템이 원하는 방식으로 쿼리 응답을 투명하게 전달하기 위하여 적합한 데이터 세트로 능동적으로 접근하는 것이 가능하게 된다.
도 7에서, 본 발명의 일 태양에 따른 능동적 캐싱 시스템의 블록도가 도시된다. 능동적 캐싱 시스템 (700)은 분석 컴포넌트(702), 캐시 서브세트(720)를 제공하는 캐시(704), 및 다차원 객체들 서브세트(722)를 제공하는, OLAP 객체 등과 같은 다차원 객체들(706)을 포함한다. 본 발명의 일 태양에서, 분석 컴포넌트(702)는 쿼리 인터프리터(query interpreter; 710), 짧은 지연시간 터미널(low latency terminal; 714), 및 실시간 터미널(712)을 포함한다. 분석 컴포넌트(702)는 사용자 입력(716), 시스템 입력(718), 및 쿼리 입력(708) 등과 같은 입력들을 수신할 수 있다. 본 발명의 일 태양에서, 쿼리 인터프리터(710)는 복잡한 쿼리를 "파트들(parts)"로 파싱(parse) 또는 리졸브(resolve)할 수 있고 쿼리 입력(708)의 내용을 기반으로 어느 터미널(712, 714)이 적합한지를 능동적으로 결정할 수 있다. 예를 들어, 1번 파트가 "시간에 민감한 데이터(time sensitive data)"로 라벨이 붙여져서 캐시(704) 및, 특히 캐시 서브세트(720)로 접근하기 위해 짧은 지연시간 터미널(714)로 보내질 수 있다. 이와 같이, 2번 파트가 "최신 데이터(latest data)"로 라벨이 붙여져서 다차원 객체들(706) 및, 특히 다차원 객체들 서브세트(722)로 접근하기 위해 실시간 터미널(712)로 보내질 수 있다. 이와 유사한 방법으로, n번 파트 ("n"은 1부터 무한대까지의 정수를 나타냄)는 앞의 카테고리들 중 하나로 라벨이 붙여져서 캐시(704) 및/또는 다차원 객체들(706) 중 하나로 보내질 수 있다. 본 발명의 또 다른 태양에서, 쿼리 입력(708)의 파싱은 (데이터베이스 상태 등을 포함하는) 사용자 입력(716) 및/또는 시스템 입력(718)을 기반으로 할 수 있다. "짧은 지연시간" 및 "실시간"이 "터미널"로서 기술되었지만, 이들은 사실상 분석 컴포넌트의 일부이고 도 7에서 도시된 바와 같이 분리된 실체여야 할 필요는 없다. 따라서, 이들은 쿼리 인터프리터(710)의 일부로서, 들어오는 데이터를 제어하는 삽입된 필터로서 캐시(704) 및/또는 다차원 객체들(706)의 일부로서 및/또는 외부 필터의 일부로서 포함될 수 있다.
도 8을 참조하면, 본 발명의 일 태양에 따른 능동적 캐싱 시스템(800)의 다른 블록도가 도시된다. 능동적 캐싱 시스템 (800)은 분석 컴포넌트(802), 캐시(804), 및 OLAP 객체 등과 같은 다차원 객체들(806)을 포함한다. 본 발명의 일 태양에서, 분석 컴포넌트(802)는 쿼리 인터프리터(816), 짧은 지연시간 터미널(818), 및 실시간 터미널(820)을 포함한다. 쿼리 인터프리터(816)는 복수의 쿼리 입력(808)을 취급한다. 이것은 어떤 수의 입력이든 포함할 수 있으나, 간단한 설명을 위해, 세 개의 입력만이 도시된다. 이들 입력은 1번 사용자 입력(810), 2번 사용자 입력(812), 및 3번 사용자 입력(814)을 포함한다. 각각의 사용자 입력은 쿼리 인터프리터(816)가 분석하는 적어도 하나의 쿼리를 구성한다. 예컨대, 제1의 1번 사용자 입력이 "제품 정보" 차원 및 "데이터베이스 안정(database stable)" 정보에 관한 데이터베이스 상태를 갖는 1번 쿼리를 포함하는 경우, 쿼리 인터프리터(816)는 캐시(804)에 접근하기 위한 짧은 지연시간 터미널(818)로 그 접근(1번 사용자 입력)을 보낼 수 있다. 캐시(804)는 빠른 응답 시간 등을 제공하는 다차원 OLAP 캐시가 될 수 있다. 제2의 2번 사용자 입력이 "통계(demographics)" 차원 및 "데이터베이스 업데이트(database updating)" 정보에 관한 데이터베이스 상태를 갖는 2번 쿼리를 포함하는 경우, 쿼리 인터프리터(816)는 다차원 객체들(806)에 접근하기 위한 실시간 터미널(820)로 그 접근(2번 사용자 입력)을 보낼 수 있다. 다차원 객체들(806)의 특징에는 실시간 데이터 접근 등이 포함될 수 있다. 이와 유사하게, 제3의 3번 사용자 입력이 "재정 데이터(financial data)" 차원 및 "데이터베이스 업데이트(database updating)" 정보에 관한 데이터베이스 상태를 갖는 경우, 쿼리 인터프리터(816)는 다차원 객체들(806)에 접근하기 위한 실시간 터미널(820)로 그 접근(3번 사용자 입력)을 보낼 수 있다. 이러한 방식으로, 능동적 캐싱 시스템(800)은 캐시가 이용되도록 하는 적극적인 사용자 입력을 갖지 않아도 사용자에게 원하는 응답을 제공한다. 한편, 본 발명은 어떻게 및/또는 언제 능동적으로 캐싱할 것인지를 결정하는 사용자 및/또는 시스템 입력을 배제하지 않는다.
도 9로 가면, 본 발명의 일 태양에 따른 능동적 캐싱 시스템(900)의 입력들의 블록도가 도시되어 있다. 앞서 설명한 바와 같이, 분석 컴포넌트(902)는 복수의 입력을 가질수 있다. 이들은 쿼리 입력(904), 사용자 입력(906), 및 시스템 입력(908)을 포함하나 이에 한정되지는 않는다. 사용자 입력(906)은 정적 시간 지연(910), 정적 시간 지연 오버라이드(912), 강제된 재생 시간(forced refresh time; 914), 사용자에 의해 개시된 부분적인 캐시 재구축(916), 및 사용자 입력 "n"(918; 여기서 "n"은 무제한적인 입력의 어느 수 및/또는 형식을 나타냄) 등을 포함하나 이에 한정되지는 않는다. 시스템 입력(908)은 최종 데이터베이스 업데이트 추적기(920), OLAP 객체들에 영향을 주는 테이블들(922), 종속적인 OLAP 객체 데이터 소스 추적기(dependent OLAP objects data source tacker; 924), 및 시스템 입력 "n"(926; 여기서 "n"은 무제한적인 입력의 어느 수 및/또는 타입을 나타냄) 등을 포함하나 이에 한정되지는 않는다.
정적 시간 지연(910)은 소정의 관련된 정보에 관하여 데이터베이스가 업데이트된 후 얼마 정도의 시간이 지났는지를 계속 기록하는 수단을 포함한다. 그 관련된 정보는 실제의 데이터 테이블 실체 및/또는 OLAP 객체가 될 수 있다. 정적 시간 지연 오버라이드(912)는 시스템 및/또는 사용자에 의해, 정적 시간 지연(910)이 다 충족되지 않았더라도 오버라이드하고 캐시를 재구축하도록 결정되는 수단을 포함한다. 이는 정적 시간 지연(910)이 달성되기 직전에 항상 발생하는, 산발적이지만 빈번한 데이터베이스의 업데이트 때문에 캐시가 전혀 업데이트되지 못하는 것을 방지한다. 강제된 재생 시간(914)은 주어진 구간에서 캐시의 재생을 강제하기 위한 수단을 포함한다. 이는 강제된 재생 시간(914) 내에 데이터베이스가 어느 업데이트도 보고하지 않은 사실에도 불구하고 캐시가 스테일 데이터(stale data)를 포함하는 것을 방지한다. 이는 또한 데이터베이스가 상태 데이터를 전송할 수 없는 경우에도, 캐시가 업데이트될 수 있도록 보장한다. 사용자에 의해 개시된 부분적인 캐시 재구축(916)은 사용자가 캐시의 어떤 부분이 및/또는 언제 그 부분이 재구축될 것인지를 제어할 수 있게 하는 수단을 포함한다. 이는 예를 들어, 사용자가, 신속하게 접근하기 쉽도록 다른 데이터를 유지하면서, 특정한 서브세트가 재구축되어야 할 것인지 여부를 선택적으로 정할 수 있게 한다. 사용자 입력 "n"(918)은 분석 컴포넌트(902)에 의한 능동적 캐싱을 보조하기 위한 어떤 수단이라도 포함한다. 당업자는 능동적 캐싱의 더 효율적인 이용을 돕기 위해 많은 종류의 상이한 타이밍 파라미터 및/또는 데이터 파라미터들이 사용자에 의해 입력 가능하다는 것을 인식할 수 있다. 그러한 수단들은, 예를 들어, 소정의 테이블/뷰/OLAP 객체들을 업데이트가 필요하다고 마크하기 위해 사용자가 수동적인 변경들(manual changes)을 입력할 수 있게 하는 수단을 포함한다.
최종 데이터베이스 업데이트 추적기(920)는 데이터베이스가 언제 마지막으로 업데이트되었는지를 추적하는 수단을 포함한다. 이 입력은 캐시 데이터 등의 오래된 정도(staleness)를 결정하기 위해 다른 입력들과 함께 사용될 수 있다. OLAP 객체들에 영향을 주는 테이블들(922)은 캐시가 기반으로 하는 OLAP 객체와 관련된 데이터베이스 테이블의 데이터를 추적하고 목록으로 만들기 위한 수단을 포함한다. 이는 캐싱 업데이트의 필터링을 가능하게 하여, 데이터베이스에서 관련 없는 테이블의 업데이트가 있을 때 캐시가 업데이트되는 것을 방지한다. 종속적인 OLAP 객체 데이터 소스 추적기(924)는 특정한 OLAP 객체에 대한 캐시 데이터의 종속성을추적하기 위한 수단을 포함한다. 이는 캐싱 업데이트의 필터링을 가능하게 하여 관련 없는 OLAP 객체가 변경될 때 캐시가 업데이트되는 것을 방지한다. 시스템 입력 "n"(926)은 분석 컴포넌트(902)에 의한 능동적 캐싱을 보조하기 위한 어떤 수단이든지 포함한다. 당업자는 능동적 캐싱의 더 효율적인 이용을 돕기 위해 많은 종류의 상이한 타이밍 파라미터 및/또는 데이터 파라미터들이 시스템에 의해 입력 가능하다는 것을 인식할 수 있다. 이는 또한 데이터베이스 업데이트 통지 등을 포함하나, 여기에 한정되지는 않는다.
앞의 입력 파라미터들이 분석 컴포넌트(902)로 들어가는 것으로서 기술되었지만, 분석 컴포넌트(902) 그 자체도 앞서 설명된 입력들의 이용에 필요한 기능(functions)을 수행하기 위한 기능(functionality)을 제공하는 서브컴포넌트를 포함할 수 있다는 점에 주목하는 것이 중요하다. 분석 컴포넌트(902) 외부의 컴포넌트들이 필요한 기능의 일부 및/또는 전부를 제공하는 것도 가능하다.
도 10에서, 본 발명의 일 태양에 따른 능동적 캐싱 시스템 파라미터(1000)의 블록도가 도시된다. 본 발명의 하나의 예에서, 능동적 캐싱 시스템 파라미터(1000)는 운영 모드(operational modes; 1002) 및 트리거링(1010) 등을 포함한다. 운영 모드는 ROLAP 모드(1004), MOLAP 모드(1006) 및 MOLAP/ROLAP 모드(1008) 등을 포함한다. ROLAP 모드(1004)에 대한 트리거링(1010)는 정적 시간 지연 충족(quiet time delay met; 1012), 정적 시간 지연 오버라이드 충족(1014), 강제된 재생 시간 충족(1016), 데이터베이스 업데이트(1018) 등을 포함한다. MOLAP 모드(1006)에 대한 트리거링(1010)는 서로 동등한 MOLAP 및 ROLAP 데이터 세트(1020)와, 실시간 데이터 등의 필요보다는 신속한 쿼리 응답에 대한 사용자 요구(1022)를 포함한다. MOLAP/ROLAP 모드(1008)에 대한 트리거링(1010)는 짧은 지연 시간 및 실시간 쿼리가 모두 필요한 때(1024)와, MOLAP 캐시의 부분적인 재구축이 필요한 때(1026)를 포함한다.
ROLAP 모드(1004)는 쿼리에 대해 ROLAP 데이터만이 접근될 수 있게 한다. 이는 실시간 데이터 접근을 갖는 통상적으로 더 느린 모드이다. MOLAP 모드(1006)는 쿼리에 대해 MOLAP 데이터만이 접근될 수 있게 하며 그 신속한 성능 때문에 통상적으로 디폴트 모드이다. 데이터 무결성(data integrity) 및 향상된 성능을 보장하기 위하여, MOLAP 모드는 MOLAP 데이터가 ROLAP 데이터와 동등한 때에는 언제든지 채용될 수 있다. 이는 더 빠른 수단의 이용에 의해 데이터 정확도가 손실되지 않도록 보증한다. 이는 또한 실시간 데이터 등(다른 사용자 입력들)에 대한 필요보다는 신속한 접근을 요구하는 사용자에 의해 채용될 수 있다. MOLAP/ROLAP 모드(1008)는 MOLAP 및 ROLAP 데이터 모두에게 접근을 허용하는 하이브리드 모드이다. 이는 사용자 및/또는 시스템이 원하는 타입의 데이터를 원하는 타입의 지연시간에 검색할 수 있게 한다. 이는 또한 MOLAP 캐시의 부분적인 재구축을 허용하며, 이때 ROLAP 객체들은 구축중인 그 MOLAP 캐시의 부분에 대하여 정보를 제공한다.
당업자는 앞서 언급한 트리거링 및 운영 모드들이 절대로 완전하게 열거된 것이 아님을 이해할 수 있다. 도 10은 본 발명의 단지 일 태양의 예를 나타낸 것에 불과하다. 추가적인 모드들 및 트리거링들이 본 발명의 범위 내에서 또한 채용될 수 있다.
도 11을 보면, 본 발명의 일 태양에 따른 능동적 캐싱 시스템(1100)의 또 다른 블록도가 도시된다. 능동적 캐싱 시스템(1100)은 분석 컴포넌트(1102), MOLAP 캐시(1104) 및 OLAP 객체들(1106)을 포함한다. 분석 컴포넌트(1102)는 적응형 튜닝 컴포넌트(adaptive tuning component; 1110), 제1 세션(1114), 및 제2 세션(1116)을 포함한다. 적응형 튜닝 컴포넌트(1110)는 쿼리 인터프리터(1112), 성능 최적화기(performance optimizer; 1118), 및 결과 비교기(1120)를 포함한다. 통상적인 쿼리(1108)는 쿼리 인터프리터(1112)로 입력된다. 본 발명의 이러한 태양에서, 쿼리 인터프리터(1112)는 적응형 튜닝 컴포넌트(1110)의 일부이다. 그러므로, 성능 튜닝을 위해, 쿼리 인터프리터(1112)는 단일한 쿼리(1108)를 가지고 이중 세션을 설정한다. 따라서, 쿼리(1108)는 1번 세션(1114)을 통해 MOLAP 캐시(1104)로, 2번 세션(1116)을 통해 OLAP 객체들(1106)로 보내진다. 각각의 세션(1114, 1116)은 결과 비교기(1120)로 전송되는 응답을 생성한다. 이어서 결과 비교기(1120)는 두 세션(1114, 1116) 간의 모든 차이점들을 결정한다. 이러한 차이점들은, 있다면, 성능 최적화기(1118)로 보고된다. 성능 최적화기(1118)는 그 차이점들을 추적하여 쿼리 인터프리터(1112)가 차후의 쿼리에 대해 반응할 방법을 적응적으로(adaptively) 변경한다. 당업자는 모든 쿼리가 이 두 세션(1114, 1116)을 통해 계속하여 처리될 필요는 없다는 것을 인식할 것이다. 일단 특정한 쿼리가 최적화되면, 때때로 샘플링을 하는 것이 필요한 전부이다. "때때로"는 데이터가 쿼리되는 빈도에 따라 분당, 시간당, 매일, 매달 및/또는 매년 등이 될 수 있다. 예를 들어, 일년 전부터의 과거 매출 기록은 1번 세션(1114)을 통한 것이든 또는 2번 세션(1116)을 통한 것이든 간에 동일한 결과를 가져올 수 있다. 따라서, 같은 기간 동안의 매출 기록에 관하여 쿼리된 때에는, 성능 최적화기(1118)는 신속한 응답을 위해 쿼리 인터프리터(1112)에게 MOLAP 캐시(1104)만을 이용하도록 지시한다. 성능 최적화기(1118)는 사용자 설정(user settings)으로도 적응형 튜닝을 제공하고 가능하다면 사용자에게 성능 제안(performance suggestions)을 제공하기 위하여 데이터, 사용, 및 관련된 파라미터들을 추적할 수 있다.
앞에서 도시되고 설명된 예시적인 시스템의 견지에서, 본 발명에 따라 구현될 수 있는 방법론(methodologies)은 도 12 내지 도 17의 흐름도들을 참조할 때 더 잘 이해될 수 있을 것이다. 한편, 설명의 간소화를 위해 방법론은 연속하는 블록들로서 도시되고 설명되나, 몇몇의 블록들은, 본 발명에 따라, 본 명세서에 도시되고 설명된 것과 상이한 순서로 및/또는 동시에 다른 블록들과 함께 배치될 수 있기 때문에, 본 발명은 그 블록들의 순서에 의해 한정되지 않는다는 점이 이해되고 인식될 것이다. 게다가, 도시된 블록들 전부가 본 발명에 따른 방법론을 구현하기 위해 필요한 것은 아닐 수 있다.
본 발명은 하나 이상의 컴포넌트에 의해 실행되는, 프로그램 모듈과 같은, 컴퓨터 실행가능 명령문(computer-executable instructions)의 일반적인 문맥(context)으로 설명될 수 있다. 일반적으로, 프로그램 모듈은 특정한 작업(tasks)을 수행하거나 특정한 추상화 데이터 타입(abstract data types)을 구현하는 루틴, 프로그램, 객체, 데이터 구조, 기타를 포함한다. 전형적으로 프로그램 모듈의 기능(functionality)은 다양한 실시예에서 원하는 바에 따라 결합되거나분산될 수 있다.
도 12로 가면, 본 발명의 일 태양에 따른 능동적 캐싱의 방법(1200)을 나타내는 흐름도가 도시되어 있다. 방법(1200)은 백그라운드 프로세스에서 ROLAP 객체의 MOLAP 캐시 동등물(MOLAP cache equivalent)을 구축하기 시작함(1204)으로써 시작된다(1202). 그 후 MOLAP 캐시가 완성된 시기를 검출하기 위하여 확인이 행해진다(1206). 완성된 때에는, 운영 모드는 MOLAP 모드를 이용하도록 전환된다(1208). 쿼리는 그 후 MOLAP 캐시를 채용하여 처리된다(1210). 그 뒤 ROLAP 객체에 어떤 관련된 변경이 있었는지 여부에 관하여 확인이 행해진다(1212). 이는 기반이 되는 어떤 데이터의 어떤 관련된 변경도 포함할 수 있다. 관련된 변경이 행해지지 않은 경우, 쿼리는 계속해서 MOLAP 캐시를 이용하여 처리된다(1210). 한편, 변경이 있는 경우, 운영 모드는 ROLAP 모드로 전환된다(1214). 그 후 관련된 모든 캐시들은 버려지고(1216), 흐름이 끝난다(1218). 이 사이클은 데이터베이스에 관련된 어떤 변경이 있더라도 MOLAP 캐시를 신선하게 유지하기 위해서 무제한으로 반복될 수 있다.
도 13으로 가보면, 본 발명의 일 태양에 따른 능동적 캐싱의 방법(1300)을 나타내는 다른 흐름도가 도시되어 있다. 방법(1300)은 사용자 입력을 제공함으로써(1304) 시작된다(1302). MOLAP 모드 요청이 있었는지 여부에 관하여 확인이 행해진다(1306). 요청이 없는 경우, 쿼리는 계속해서 ROLAP 모드를 이용하여 처리되고(1322), 흐름이 끝난다(1316). 한편, MOLAP 모드 요청이 있는 경우에는, 백그라운드 프로세스로서 ROLAP 객체의 MOLAP 동등물이 구축된다(1308). 그 뒤 ROLAP 객체와 관련된 변경이 생겼는지 여부에 관한 확인이 행해진다(1310). 변경이 생긴 경우, 구축된 MOLAP 동등물은 취소되고(1318), 운영 모드는 ROLAP 모드로 전환되며(1320) ROLAP 객체의 MOLAP 동등물이 다시 구축된다(1308). 한편, MOLAP 캐시의 구축이 완성된 후 관련된 변경이 생기지 않은 경우, 운영 모드는 MOLAP 모드로 전환되고(1312), 쿼리는 MOLAP 캐시를 이용하여 처리되며(1314), 흐름이 끝난다(1316).
도 14를 참조하면, 본 발명의 일 태양에 따른 능동적 캐싱의 방법(1400)을 나타내는 또 다른 흐름도가 도시된다. 방법(1400)은 정적 시간 지연 사용자 입력이 제공됨으로써(1404) 시작된다(1402). 백그라운드 프로세스에서 ROLAP 객체의 MOLAP 동등물이 구축된다(1406). 그 뒤 ROLAP 객체에 어떤 관련된 변경이 생겼는지 여부에 관하여 확인이 행해진다(1408). 변경이 생기지 않은 경우, 쿼리는 MOLAP 캐시를 이용하여 처리되고(1410), 흐름이 끝난다(1412). 한편, ROLAP 객체에 변경이 생긴 경우, 정적 시간 지연이 충족되었는지 여부에 관한 확인이 행해진다(1414). 충족되지 않은 경우, 정적 시간 지연 오버라이드가 충족되었는지 여부에 관한 확인이 행해진다(1418). 정적 시간 지연 오버라이드가 충족되지 않은 경우, 쿼리는 MOLAP 캐시를 사용하여 처리되고(1410), 흐름이 끝난다(1412). 한편, 정적 시간 지연 오버라이드가 충족되는 경우, 운영 모드는 ROLAP 모드로 전환되고(1416) MOLAP 캐시가 다시 한번 구축된다(1406). 한편, ROLAP 객체에 대한 관련된 변경이 검출된 후 정적 시간 지연이 충족되는 경우, 운영 모드는 ROLAP 모드로 전환되고(1416) 백그라운드 프로세스에서 MOLAP 캐시가 구축되며(1406) 이사이클이 계속된다.
도 15로 가면, 본 발명의 일 태양에 따른 능동적 캐싱의 방법(1500)을 나타내는 또 다른 흐름도가 도시된다. 방법(1500)은 수동적인 사용자 입력(manual user input)이 제공됨으로써(1504) 시작된다(1502). 수동적인 사용자 입력은 사용자가 소정의 테이블/뷰/객체들 등을 "더티"(즉 이들이 접근될 필요가 있다면 업데이트가 필요)로 표시할 수 있게 하는 파라미터들을 포함한다. ROLAP 객체에 어떤 관련된 변경이 생겼는지 여부에 관하여 확인이 행해진다(1506). 이는 "더티"인 입력이 캐싱된 데이터와 관련된 데이터를 변경할 것인지를 고려한다. 관련된 변경이 생기지 않은 경우, 쿼리는 MOLAP 캐시를 이용하여 처리되며(1514), 흐름이 끝난다(1516). 통상적으로, 성능 이득(performance gain)이 높기 때문에, 능동적 캐싱 시스템에 대하여 MOLAP 캐시를 이용하는 것이 디폴트 조건이고 사용자 및/또는 시스템이 다른 지시를 하지 않는 한 그렇게 수행된다. 한편, (더티 입력 및/또는 데이터베이스 업데이트 등에 기해) 관련된 변경이 ROLAP 객체에 생긴 경우(1506), 운영 모드는 ROLAP 모드로 전환된다(1508). MOLAP 캐시는 그 후 백그라운드 프로세스에서 재구축되고(1510), 운영 모드는 캐시가 완성되면 다시 한번 MOLAP 모드로 전환된다(1512). 쿼리 처리는 그 뒤 MOLAP 캐시의 채용을 계속하며(1514), 흐름이 끝난다(1516).
도 16에서, 본 발명의 일 태양에 따른 능동적 캐싱의 방법(1600)을 나타내는 또 다른 흐름도가 도시된다. 방법(1600)은 관계형 ROLAP 객체 데이터 입력(relative ROLAP object data inputs)을 제공하는 사용자에 의해(1604) 시작된다(1602). 입력 데이터는 그 후 적합한 ROLAP 객체로 그와 관련된 것으로서 연결(link)된다(1606). 이러한 방식으로, 사용자는 데이터가 캐싱된 데이터로부터 명확히 유도된 것이 아니더라도 그 데이터를 캐싱된 데이터와 관련된 것으로 표시할 수 있다. 그 뒤 ROLAP 객체에 어떤 관련된 변경이 생겼는지 여부에 관하여 확인이 행해진다(1608). 이는 새로운 데이터 연결이, ROLAP 객체로부터 변경된 데이터로의 연결을 설정했는지 여부를 확인한다. 변경이 발견되지 않은 경우, 쿼리는 MOLAP 캐시를 채용하여 처리되며(1616), 흐름이 끝난다(1618). 성능 이득 때문에, MOLAP 모드가 디폴트 모드로 간주된다. 한편 관련된 ROLAP 객체에 변경이 있는 경우(1608), 운영 모드는 ROLAP 모드로 전환된다(1610). 그 후 ROLAP 객체로부터 MOLAP 캐시가 백그라운드 프로세스에서 재구축된다(1612). 캐시가 완성되면, 운영 모드는 MOLAP 모드로 전환되고(1614) 쿼리는 다시 한번 MOLAP 캐시를 이용하여 처리되며(1616), 흐름이 끝난다(1618).
도 17을 보면, 본 발명의 일 태양에 따른 능동적 캐싱의 방법(1700)을 나타내는 또 다른 흐름도가 도시되어 있다. 방법(1700)은 사용자가 강제된 재생 속도 입력(forced refresh rate input)을 제공함으로써(1704) 시작된다(1702). 그 뒤 그 입력이 충족되었는지 여부에 관한 확인이 행해진다(1706). 충족되지 않은 경우, 쿼리는 MOLAP 캐시를 이용하여 처리되며(1714), 흐름이 끝난다(1716). 성능 이득 때문에, MOLAP 모드가 디폴트 모드로 간주된다. 한편. 강제된 재생 속도 입력이 충족된 경우(1706), 운영 모드는 ROLAP 모드로 전환된다(1708). MOLAP 캐시는 그 다음에 백그라운드 프로세스로서 재구축된다(1710). 일단 완성되면, 그 후운영 모드는 MOLAP 모드로 전환되고(1712) 쿼리는 MOLAP 캐시를 채용하여 처리되며(1714), 흐름이 끝난다(1716).
앞서 언급한 흐름들은 본 발명의 다양한 방법들 중에서 대표적인 흐름으로서 의도된 것이다. 이들은 본 발명의 범위 내의 모든 반복이나 변화를 내포하는 것이 절대로 아니다. 당업자는 방법에 수정이 가해질 수 있고 그럼에도 본 발명의 영역 내에 존속 가능하다는 것을 인식할 수 있다.
본 발명의 다양한 태양들을 구현하기 위한 부가적인 배경을 제공하기 위하여, 도 18 및 이하의 논의는 본 발명의 다양한 태양들이 구현될 수 있는 적합한 컴퓨팅 환경(1800)에 대한 간결하고, 일반적인 설명을 제공하도록 의도된 것이다. 본 발명이 앞에서 로컬 컴퓨터 및/또는 원격 컴퓨터 상에서 실행되는 컴퓨터 프로그램의 컴퓨터 실행가능 명령문(computer-executable instructions)의 일반적인 문맥에서 기술되었지만, 당업자는 본 발명이 또한 다른 프로그램 모듈들과 결합하여 구현될 수 있음을 인식할 것이다. 일반적으로, 프로그램 모듈은 특정한 작업을 수행 및/또는 특정한 추상화 데이터 타입을 구현하는 루틴, 프로그램, 컴포넌트, 데이터 구조, 기타를 포함한다. 게다가, 당업자는 발명의 방법들이, 퍼스널 컴퓨터 뿐 아니라 싱글-프로세서 또는 멀티-프로세서 컴퓨터 시스템, 미니컴퓨터, 대형고속컴퓨터(mainframe computer), 휴대용 컴퓨팅 장치, 마이크로 프로세서 기반 및/또는 프로그래머블 가전제품(microprocessor-based and/or programmable consumer electronics) 등을 포함하는 다른 컴퓨터 시스템 구성에서도 실시될 수 있음을 인식할 것이다. 이들 장치 각각은 하나 이상의 관련된 장치와 효율적으로 통신할 수있다. 도시된 발명의 태양은 또한, 통신 네트워크를 통해 연결된 원격 처리 장치들에 의해 소정의 작업들이 수행되는 분산된 컴퓨팅 환경에서도 실시될 수 있다. 한편, 본 발명의 태양들의 전부 또는 일부는 독립형 컴퓨터(stand-alone computer) 상에서 실시될 수 있다. 분산된 컴퓨팅 환경에서, 프로그램 모듈들은 로컬 및/또는 원격 메모리 저장 장치에 위치할 수 있다.
본 출원에서 사용된 것과 같이, "컴포넌트"라는 용어는 하드웨어, 하드웨어 및 소프트웨어의 조합, 또는 실행중인 소프트웨어 중 하나인 컴퓨터 관련 실체(computer-related entity)를 지칭하도록 의도된다. 예를 들어, 컴포넌트는 프로세서 상에 실행되는 프로세스, 프로세서, 객체, 실행가능(an executable), 실행 스레드(a thread of execution), 프로그램, 및 컴퓨터가 될 수 있으나 여기에 한정되지는 않는다. 설명하자면, 서버 상에 실행되는 애플리케이션 및/또는 그 서버가 컴포넌트가 될 수 있다. 그 외에도, 컴포넌트는 하나 이상의 서브컴포넌트를 포함할 수 있다.
도 18을 참조하면, 본 발명의 다양한 태양들을 구현하기 위한 예시적인 시스템 환경(1800)은, 처리 유닛(1804), 시스템 메모리(1806), 및 시스템 메모리를 포함하여 다양한 시스템 컴포넌트들을 처리 유닛(1804)으로 연결하는 시스템 버스(1808)를 포함하는 통상적인 컴퓨터(1802)를 포함한다. 처리 유닛(1804)은 상업적으로 이용 가능한 또는 독점되는(propriety) 어떤 프로세서라도 될 수 있다. 그 외에도, 처리 유닛은 병렬로 연결될 수도 있는 하나 이상의 프로세서로 형성되는 멀티-프로세서로서 구현될 수 있다.
시스템 버스(1808)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스(peripheral bus), 및 (몇 가지 예를 들자면 PCI, VESA, 마이크로채널, ISA, 및 EISA와 같은 다양한 통상적인 버스 아키텍처 중에서 어떤 것이든지 사용하는) 로컬 버스를 포함하여 여러 종류의 버스 구조 중에서 어떤 것이어도 무방하다. 시스템 메모리(1806)는 판독 전용 메모리(ROM; 1810) 및 랜덤 액세스 메모리(RAM; 1812)를 포함한다. 예컨대 시동(start-up)이 되는 동안, 컴퓨터(1802)의 구성요소간의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS; 1814)은 ROM(1810)에 저장된다.
컴퓨터(1802)는 또한, 예를 들어, 하드디스크 드라이브(1816), 착탈식 디스크(1820)에서 판독/기록하기 위한 자기 디스크 드라이브(1818), 및 CD-ROM 디스크(1824) 또는 다른 광 매체에서 판독/기록하기 위한 광 디스크 드라이브(1822)를 포함할 수 있다. 하드디스크 드라이브(1816), 자기 디스크 드라이브(1818), 및 광 디스크 드라이브(1822)는, 각각 하드디스크 드라이브 인터페이스(1826), 자기 디스크 드라이브 인터페이스(1828), 및 광 드라이브 인터페이스(1830)에 의하여 시스템 버스(1808)로 연결된다. 드라이브들(1816; 1818; 및 1822) 및 그와 결합된 컴퓨터 판독가능 매체는 컴퓨터(1802)에 대하여, 데이터, 데이터 구조, 컴퓨터 실행가능 명령문, 기타의 비휘발성 저장을 제공한다. 컴퓨터 판독가능 매체에 관한 앞의 설명이 하드디스크, 착탈식 자기 디스크 및 CD를 언급했지만, 자기 카세트, 플래시 메모리 카드, 디지털 비디오 디스크, 베르누이 카트리지(Bernoulli cartridges) 등과 같은 다른 종류의 컴퓨터 판독가능 매체가 또한 예시적인 운영 환경(1800)에서 사용될 수 있고, 나아가 그러한 매체는 본 발명의 방법들을 수행하기 위해 컴퓨터 실행가능 명령문을 포함할 수 있다는 점이 당업자에 의해 인식되어야 것이다.
운영체계(1932), 하나 이상의 응용 프로그램(application program; 1834), 다른 프로그램 모듈(1836), 및 프로그램 데이터(1838)를 포함하여 다수의 프로그램 모듈이 드라이브들(1816; 1818; 및 1822) 및 RAM(1812)에 저장될 수 있다. 운영체계(1832)는 어떤 적합한 운영체계 또는 운영체계의 조합일 수 있다. 예를 들어, 응용 프로그램(1834) 및 프로그램 모듈(1836)은, 본 발명의 일 태양에 따라 데이터를 이용하는 데이터베이스 서빙 시스템 및/또는 능동적 캐싱 시스템을 포함할 수 있다. 추가적으로, 프로그램 데이터(1838)는 본 발명의 일 태양에 따른 능동적 캐싱 시스템을 제어 및 바이어싱(biasing)하기 위한 입력 데이터를 포함할 수 있다.
사용자는 키보드(1840) 및 위치 지정 도구(pointing device; 예컨대 마우스; 1842)와 같은, 하나 이상의 사용자 입력 장치를 통해 컴퓨터(1802)로 명령 및 정보를 입력할 수 있다. 다른 입력 장치(도시되지 않음)는 마이크, 조이스틱, 게임 패드, 위성 접시, 무선 리모트, 스캐너 또는 기타를 포함할 수 있다. 이들과 다른 입력 장치들은 흔히 시스템 버스(1808)와 결합된 직렬 포트 인터페이스(serial port interface; 1844)를 통해 처리 유닛(1804)과 연결되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 포트와 같은 다른 인터페이스에 의해 연결될 수도 있다. 모니터(1846) 또는 다른 종류의 디스플레이 장치가 비디오어댑터(video adapter; 1848)와 같은 인터페이스를 통해 시스템 버스(1808)로 역시 연결된다. 모니터(1846) 외에도, 컴퓨터(1802)는 스피커, 프린터 등과 같은 다른 주변 출력 장치(도시되지 않음)를 포함할 수 있다.
컴퓨터(1802)가 하나 이상의 원격 컴퓨터(1860)로의 논리적인 연결을 사용하는 네트워크 환경에서 동작할 수 있다는 점이 이해될 것이다. 원격 컴퓨터(1860)는 워크스테이션, 서버 컴퓨터, 라우터, 피어 장치(peer device) 또는 다른 보통의 네트워크 노드(network node)일 수 있고, 간결함을 위해 도 18에는 메모리 저장 장치(1862)만이 도시되어 있지만, 원격 컴퓨터(1860)는 전형적으로 컴퓨터(1802)와 관련하여 설명된 대부분의 또는 모든 구성요소들을 포함한다. 도 18에 도시된 논리적인 연결은 근거리 통신망(LAN; 1864) 및 광역 통신망(WAN; 1866)을 포함한다. 이러한 네트워크 환경은 사무소, 기업용 컴퓨터 네트워크(office, enterprise-wide computer networks), 인트라넷, 및 인터넷에서 흔한 것이다.
LAN 네트워크 환경에서 사용될 때, 예를 들어, 컴퓨터(1802)는 네트워크 인터페이스 또는 어댑터(1868)를 통해 로컬 네트워크(1864)로 연결된다. WAN 네트워크 환경에서 사용될 때, 컴퓨터(1802)는 전형적으로 모뎀(1870; 예컨대 전화, DSL, 케이블, 기타)을 포함하거나, 또는 LAN 상의 통신 서버에 연결되거나, 또는 인터넷과 같이 WAN(1866)에 걸쳐 통신을 구축하기 위한 다른 수단을 제공한다. 컴퓨터(1802)에 대하여 내부적이거나 외부적일 수 있는 모뎀(1870)은 직렬 포트 인터페이스(1844)를 통해 시스템 버스(1808)로 연결된다. 네트워크 환경에서, (응용 프로그램(1834)을 포함하는) 프로그램 모듈들 및/또는 프로그램 데이터(1838)는 원격 메모리 저장 장치(1862)에 저장될 수 있다. 도시된 네트워크 연결은 예시적인 것이고, 컴퓨터들(1802; 1860)간에 통신 연결을 구축하기 위한 다른 수단들(예컨대 유선 또는 무선)이 본 발명의 일 태양을 수행할 때 사용될 수 있음이 인식될 것이다.
컴퓨터 프로그래밍 기술 분야에서 숙련자들의 실시에 따라, 본 발명은 다르게 지시되지 않은 한, 컴퓨터(1802) 또는 원격 컴퓨터(1860)와 같은 컴퓨터에 의해 수행되는 동작의 행동들 및 상징적인 표현들을 참조하여 설명되었다. 그러한 행동 및 동작은 때때로 컴퓨터로 실행되는 것(being computer-executed)이라고 불린다. 이 행동 및 상징적으로 표현된 동작들은 처리 유닛(1804)에 의하여 데이터 비트들을 나타내는 전기적인 신호를 조작하는 것을 포함하고, 그 조작은 전기적인 신호 표현의 결과적인 변형(transformation) 또는 감소, 및 (시스템 메모리(1806), 하드 드라이브(1816), 플로피 디스크(1820), CD-ROM(1824) 및 원격 메모리(1862)를 포함하는) 메모리 시스템 내의 메모리 위치에 있는 데이터 비트의 존속을 초래하여 이에 의해, 신호의 다른 처리 외에도, 컴퓨터 시스템의 동작을 재구성하거나 그렇지 않으면 변경한다는 점을 인식할 것이다. 그러한 데이터 비트들이 존속하는 메모리 위치는 그 데이터 비트에 대응하는 특정한 전기적인, 자기적인, 또는 광학상의 특성을 갖는 물리적인 위치이다.
도 19는 본 발명이 상호 작용할 수 있는 예시적인 컴퓨팅 환경(1900)의 다른 블록도이다. 시스템(1900)은 나아가 하나 이상의 클라이언트(1902)를 포함하는 시스템을 나타낸다. 클라이언트(1902)는 하드웨어 및/또는 소프트웨어(예컨대, 스레드, 프로세스, 컴퓨팅 장치들)일 수 있다. 시스템(1900)은 또한 하나 이상의 서버(1904)를 포함한다. 서버(1904)는 마찬가지로 하드웨어 및/또는 소프트웨어(예컨대, 스레드, 프로세스, 컴퓨팅 장치들)일 수 있다. 서버(1904)는 예컨대, 본 발명을 채용함으로써 스레드에게 변형을 수행하기 위한 장소를 제공할 수 있다. 클라이언트(1902)와 서버(1904)간에 가능한 하나의 통신은 두 개 또는 그 이상의 컴퓨터 프로세스들 사이에서 전송되기 위해 적응된 데이터 패킷의 형태로 될 수 있다. 시스템(1900)은 클라이언트(1902)와 서버(1904) 간의 통신을 용이하게 하기 위해 채용될 수 있는 통신 프레임워크(communication framework; 1908)을 포함한다. 클라이언트(1902)는 그 클라이언트(1902)에 로컬 정보를 저장하기 위해 채용될 수 있는 하나 이상의 클라이언트 데이터 저장 장치(1910)와 실시 가능하게 연결될 수 있다. 이와 유사하게, 서버(1904)는 그 서버(1904)에 로컬 정보를 저장하기 위해 채용될 수 있는 하나 이상의 서버 데이터 저장 장치(1906)와 실시 가능하게 연결될 수 있다.
도20을 보면, 본 발명이 기능할 수 있는 예시적인 운영 환경(2000)이 도시된다. 이러한 전형적인 환경(2000)은 데이터 소스(2010) 및 사용자 인터페이스(2012)와 연결된 분석 서비스 컴포넌트(2002)를 포함한다. 사용자 인터페이스(2012)는 OLAP 브라우저들, 보고 수단들(reporting tools), 및 다른 BI(Business Intelligence) 애플리케이션들 등을 포함한다. 분석 서비스 컴포넌트(2002)는 통상적으로 XML/A(eXtensible Markup Language/Analysis) 및 MDX(Multidimensional Exchange Language) 등과 같은 인터페이스(2008)를 경유하는인터페이스(2014)와 함께 사용자 인터페이스(2012)를 제공한다. 분석 서비스 컴포넌트(2002)는 UDM(Unified Dimensional Model; 통합 차원 모델) 컴포넌트(2004) 및 캐시(2006)를 포함한다. 이 예에서, 본 발명은 분석 서비스 컴포넌트(2002) 내에서 UDM 컴포넌트(2004) 및 캐시(2006)를 통해 채용된다. UDM 컴포넌트는 캐시(2006) 및/또는 데이터에 바로 능동적으로 접근할 수 있다.
앞서 설명된 것들은 본 발명의 예들을 포함한다. 물론, 본 발명을 설명하기 위해서 생각할 수 있는 모든 컴포넌트 또는 방법론의 조합을 설명하는 것은 불가능하다. 그러나 당업자는 본 발명의 많은 추가적인 조합들 및 치환들이 가능하다는 것을 인식할 것이다. 따라서, 본 발명은 첨부된 특허청구범위의 기술 사상 및 범위에 해당되는 그러한 모든 변경, 수정, 및 변형들을 포함하도록 의도된다.
본 발명은 다차원 분석 데이터에 일부 기초한 캐시의 채용을 통해 큰 데이터베이스에 직접 접근할 필요를 줄이고, 기존의 데이터 구조의 유용성을 확장하며, 광대한 데이터베이스의 신속하고 효율적인 분석을 제공함으로써 데이터 분석을 촉진한다. 또한 본 발명은 쿼리 응답 시간을 획기적으로 감소시키고 동시에 실시간 정보의 추출을 가능하게 하여, 사용자-친화성을 극대화하고 정보 검색 속도를 증가시키며 채용되는 변형과는 관계없이 신뢰할 만한 정보를 제공함으로써, 사용자로 하여금 신속하게 데이터를 수신할 수 있게 하고, 쿼리에 응답하기 위해 이용되는 변형에 관하여 표면상 투명(transparent)하게 한다.

Claims (64)

  1. 정보를 캐싱하기 위한 시스템으로,
    데이터베이스로부터 유도된 동적 다차원 분석 데이터(dynamic multidimensional analysis data)를 제공하는 적어도 하나의 다차원 객체에 접근할 수 있게 하는 다차원 객체 인터페이스;
    상기 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 캐시에 접근할 수 있게 하고 상기 캐시를 제어할 수 있게 하는 캐시 인터페이스; 및
    상기 다차원 객체 및 상기 캐시로의 접근을 능동적으로 제어하기 위하여 상기 다차원 객체 및 상기 캐시와 연결되는 적어도 하나의 분석 컴포넌트
    를 포함하는 시스템.
  2. 제1항에 있어서, 상기 데이터베이스는 관계형 데이터베이스(relational database)를 포함하는 시스템.
  3. 제1항에 있어서, 상기 다차원 객체는 ROLAP 객체를 포함하는 시스템.
  4. 제1항에 있어서, 상기 캐시는 MOLAP 캐시를 포함하는 시스템.
  5. 제1항에 있어서, 상기 다차원 객체는 실시간 접근 분석 데이터(real-time access analysis data)를 포함하고, 상기 캐시는 신속한 접근 분석 데이터(quick access analysis data)를 포함하는 시스템.
  6. 제1항에 있어서, 상기 분석 컴포넌트는 통합 차원 모델(Unified Dimensional Model; UDM)을 포함하는 시스템.
  7. 제1항에 있어서, 상기 분석 컴포넌트는,
    상기 캐시를 언제 능동적으로 제어할 것인지를 결정하는 적어도 하나의 입력; 및 상기 입력을 기반으로 쿼리들을 수신하고 해석하는(qualifying) 쿼리 인터프리터를 포함하는 시스템.
  8. 제7항에 있어서, 상기 입력은 상기 캐시를 능동적으로 제어하기 위한 사용자 입력 및 시스템 입력으로 구성되는 그룹으로부터 선택되는 입력 중 적어도 하나를 포함하는 시스템.
  9. 제8항에 있어서, 상기 시스템 입력은 데이터베이스 업데이트 통지를 포함하는 시스템.
  10. 제8항에 있어서, 상기 사용자 입력은 정적 시간 지연(quiet time delay), 정적 시간 지연 오버라이드(quiet time delay override), 강제된 재생 시간(forced refresh time), 및 사용자에 의해 개시된 부분적인 캐시 재구축(user initiated partial cache rebuild)으로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 시스템.
  11. 제8항에 있어서, 상기 시스템 입력은 최종 데이터베이스 업데이트 추적기(last database update tracker), OLAP 객체들에 영향을 주는 테이블들(tables affecting OLAP objects), 및 종속적인 OLAP 객체 데이터 소스 추적기(dependent OLAP objects data source tacker)로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 시스템.
  12. 제1항에 있어서, 상기 분석 컴포넌트는 ROLAP 모드, MOLAP 모드, 및 MOLAP/ROLAP 모드로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 능동적 캐싱 운영 모드(proactive caching operational mode)를 갖는 시스템.
  13. 제12항에 있어서, 상기 ROLAP 모드는 정적 시간 지연 충족(quiet time delay met), 정적 시간 지연 오버라이드 충족, 강제된 재생 시간 충족, 및 데이터베이스 업데이트로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나에 의해 동작적으로(operatively) 트리거링되는(triggered) 시스템.
  14. 제12항에 있어서, 상기 MOLAP 모드는, MOLAP 캐시 및 ROLAP 객체 모두로부터 이용 가능한 동등한 쿼리 데이터; 및 사용자 요구로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나에 의해 동작적으로 트리거링되는 시스템.
  15. 제12항에 있어서, 상기 MOLAP/ROLAP 모드는 실시간 및 짧은 지연 시간 쿼리 필요(real-time and low latency queries required), 및 MOLAP 캐시의 부분적인 재구축 필요(partial rebuilding of a MOLAP cache required)로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나에 의해 동작적으로 트리거링되는 시스템.
  16. 제1항에 있어서, 상기 분석 컴포넌트는 각각의 쿼리가 상이한 능동적 캐시 취급(proactive cache handling)을 필요로 하는 복수의 쿼리를 처리하는 성능을 갖는 시스템.
  17. 제1항에 있어서, 상기 분석 컴포넌트는 각각의 부분이 상이한 능동적 캐시 취급을 필요로 하는 파싱된(parsed) 쿼리를 처리하는 성능을 갖는 시스템.
  18. 제1항에 있어서, 상기 분석 컴포넌트는 상기 분석 컴포넌트를 최적화하기 위한 적응형 튜닝 컴포넌트(adaptive tuning component)를 포함하는 시스템.
  19. 제18항에 있어서, 상기 적응형 튜닝 컴포넌트는,
    쿼리들을 취급하고 상기 다차원 객체 및 상기 캐시로 쿼리 세션들을 유발하는 쿼리 인터프리터;
    상기 다차원 객체 및 상기 캐시의 상기 쿼리 세션들 사이의 차이점을 결정하기 위한 것이며, 상기 쿼리 인터프리터로 동작적으로 연결되는 결과 비교기(result comparator); 및
    상기 결과 비교기에 의해 결정된 상기 차이점을 기반으로 하여 상기 쿼리 인터프리터를 최적화하기 위한 것이며, 상기 결과 비교기로 동작적으로 연결되는 성능 최적화기(performance optimizer)
    를 포함하는 시스템.
  20. 데이터베이스 서빙(database serving) 방법으로,
    적어도 하나의 데이터베이스로부터 유도된 적어도 하나의 다차원 객체로, 및 상기 다차원 객체들로부터 유도된 동적 다차원 분석 데이터를 포함하는 적어도 하나의 캐시로 동작적으로 연결하는 단계; 및
    쿼리에 응답하여 상기 다차원 객체 및 상기 캐시로의 접근을 능동적으로 제어하는 단계를 포함하는 방법.
  21. 제20항에 있어서, 상기 다차원 객체는 ROLAP 객체를 포함하는 방법.
  22. 제20항에 있어서, 상기 데이터베이스는 관계형 데이터베이스를 포함하는 방법.
  23. 제20항에 있어서, 상기 캐시는 MOLAP 캐시를 포함하는 방법.
  24. 제20항에 있어서, 상기 캐시를 생성하기 위하여 상기 다차원 객체들을 처리하는 단계를 더 포함하는 방법.
  25. 제24항에 있어서, 상기 캐시를 생성하기 위하여 상기 다차원 객체들을 처리하는 단계는, 백그라운드 트랜잭션(background transaction)을 포함하는 방법.
  26. 제24항에 있어서, 관련된 변경에 대하여 상기 데이터베이스를 점검(monitoring)하는 단계, 및 관련된 변경이 있는 경우 업데이트된 캐시를 생성하기 위하여 상기 다차원 객체들을 다시 처리하는 단계를 더 포함하는 방법.
  27. 제24항에 있어서, 자동적인 상태 검출(automatic condition detected) 및 사용자에 의해 개시된 동작 검출(user initiated action detected)로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나가 발생한 경우 상기 다차원 객체들의 처리를 취소하는 단계를 더 포함하는 방법.
  28. 제27항에 있어서, 상기 자동적인 상태 검출은 데이터베이스 변경을 포함하는방법.
  29. 제27항에 있어서, 상기 사용자에 의해 개시된 동작 검출은 다차원 객체의 처리를 수행하는 단계 및 다차원 객체 상에서 다른 트랜잭션을 시작하는 단계로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 방법.
  30. 정보를 캐싱하기 위한 시스템으로,
    데이터베이스로부터 유도된 동적 다차원 분석 데이터를 제공하는 제1 수단;
    상기 제1 수단으로부터 유도된 동적 다차원 분석 데이터를 제공하는 제2 수단; 및
    상기 데이터베이스에 관한 원하는 쿼리 응답을 제공하도록, 상기 제1 및 제2 수단으로의 접근을 능동적으로 제어하기 위하여 상기 제1 수단 및 상기 제2 수단을 연결하기 위한 제3 수단
    을 포함하는 시스템.
  31. 데이터를 캐싱하는 방법으로,
    데이터베이스로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 다차원 객체를 제공하는 단계;
    적어도 하나의 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 캐시를 구축하는 단계;
    쿼리의 분석만을 목적으로 상기 캐시에 접근하기 위하여 분석 컴포넌트의 운영 모드(operational mode)를 전환하는 단계; 및
    상기 캐시를 이용하여 쿼리를 분석하는 단계
    를 포함하는 방법.
  32. 제31항에 있어서,
    관련된 다차원 객체들에 대하여 어떤 변경이 발생했는지 여부를 확인하는 단계, 및
    관련된 변경이 발생한 경우 상기 다차원 객체들에 접근하기 위해 상기 분석 컴포넌트의 운영 모드를 전환하는 단계를 더 포함하는 방법.
  33. 제32항에 있어서,
    상기 관련된 변경과 연관이 있는 모든 캐시를 제거하는 단계, 및
    변경된 다차원 객체들을 기반으로 하여 상기 캐시를 재구축하는 단계를 더 포함하는 방법.
  34. 제31항에 있어서, 쿼리가, 짧은 지연 시간 및 실시간 데이터로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 필요로 하는지 여부를 결정하는 단계를 더 포함하는 방법.
  35. 제34항에 있어서, 짧은 지연 시간 및 실시간 데이터가 모두 필요한 경우에는 상기 분석 컴포넌트를 MOLAP/ROLAP 운영 모드로 전환하는 단계를 더 포함하는 방법.
  36. 제31항에 있어서, 상기 다차원 객체들은 ROLAP 객체들을 포함하는 방법.
  37. 제31항에 있어서, 상기 데이터베이스는 관계형 데이터베이스를 포함하는 방법.
  38. 제31항에 있어서, 상기 캐시는 MOLAP 캐시를 포함하는 방법.
  39. 제31항에 있어서, 상기 분석 컴포넌트는 UDM를 포함하는 방법.
  40. 제31항에 있어서, 상기 분석 컴포넌트는 MOLAP 모드, ROLAP 모드, 및 MOLAP/ROLAP 모드로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 운영 모드를 갖는 방법.
  41. 능동적 캐싱 방법으로,
    운영 모드의 결정과 관련된 입력을 제공하는 단계;
    적어도 부분적으로, 상기 입력을 기초로 상기 운영 모드를 결정하는 단계;
    데이터베이스로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 다차원 객체를 제공하는 단계;
    적어도 하나의 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 캐시를 구축하는 단계;
    운영 모드를 갖는 분석 컴포넌트를 상기 결정된 운영 모드로 전환하는 단계; 및
    상기 결정된 운영 모드를 이용하여 상기 분석 컴포넌트를 통해 쿼리를 처리하는 단계
    를 포함하는 방법.
  42. 제41항에 있어서,
    관련된 다차원 객체들에 대하여 어떤 변경이 발생했는지 여부를 확인하는 단계, 및
    관련된 변경이 발생한 경우 상기 다차원 객체들에 접근하기 위해 상기 분석 컴포넌트의 운영 모드를 전환하는 단계를 더 포함하는 방법.
  43. 제42항에 있어서,
    상기 관련된 변경과 연관이 있는 모든 캐시를 제거하는 단계, 및
    변경된 다차원 객체들을 기반으로 하여 상기 캐시를 재구축하는 단계를 더 포함하는 방법.
  44. 제41항에 있어서,
    상기 캐시의 상기 구축 동안 관련된 변경 여부를 확인하는 단계, 및
    관련된 변경이 발생한 경우 상기 캐시의 상기 구축을 취소하는 단계를 더 포함하는 방법.
  45. 제41항에 있어서, 상기 입력은 적어도 하나의 사용자 입력 및 적어도 하나의 시스템 입력으로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 방법.
  46. 제45항에 있어서, 상기 사용자 입력은 짧은 지연 시간 쿼리 요청 및 실시간 쿼리 요청으로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 방법.
  47. 능동적 캐싱 방법으로,
    데이터베이스로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 다차원 객체를 제공하는 단계;
    적어도 하나의 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 캐시를 구축하는 단계;
    데이터를 지정(designate)하기 위한 입력을 제공하는 단계;
    관련된 다차원 객체들에 대하여 어떤 변경이 발생했는지 여부를 확인하는 단계, 및
    관련된 변경이 발생한 경우 상기 다차원 객체들에 접근하기 위해 상기 분석 컴포넌트의 운영 모드를 전환하는 단계; 및
    상기 변경된 관련된 다차원 객체들을 기반으로 하여 상기 캐시를 재구축하는 단계
    를 포함하는 방법.
  48. 제47항에 있어서, 상기 입력은 업데이트하기 원하는 데이터를 포함하는 방법.
  49. 제48항에 있어서, 관련된 다차원 객체들의 변경이 상기 업데이트하기 원하는 상기 데이터를 포함하는 방법.
  50. 제47항에 있어서, 상기 입력은 관련된 다차원 객체들로 데이터를 연결하기 위한 정보를 포함하는 방법.
  51. 제50항에 있어서,
    상기 캐시를 재구축한 후에만 상기 캐시에 접근하도록 상기 분석 컴포넌트를 운영 모드로 전환하는 단계, 및
    상기 캐시를 이용하여 상기 분석 컴포넌트를 통해 쿼리들을 처리하는 단계를 더 포함하는 방법.
  52. 능동적 캐싱 방법으로,
    데이터베이스로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 다차원 객체를 제공하는 단계;
    적어도 하나의 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 제공하는 적어도 하나의 캐시를 구축하는 단계;
    캐시 재구축 파라미터를 결정하기 위한 입력을 제공하는 단계;
    상기 캐시 재구축 파라미터가 충족되었는지 여부를 확인하는 단계, 및
    상기 캐시 재구축 파라미터가 충족된 경우 상기 다차원 객체들에 접근하기 위해 상기 분석 컴포넌트의 운영 모드를 전환하는 단계; 및
    관련된 다차원 객체들을 기반으로 하여 상기 캐시를 재구축하는 단계
    를 포함하는 방법.
  53. 제52항에 있어서, 상기 캐시 재구축 파라미터는 강제된 재생 속도(forced refresh rate), 정적 시간 지연 및 정적 시간 지연 오버라이드로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 방법.
  54. 능동적 캐싱을 최적화하는 방법으로,
    쿼리를 쿼리 인터프리터로 입력하는 단계;
    상기 쿼리를 적어도 두 개의 세션 - 각각의 세션은 상이한 데이터베이스로부터 유도된 데이터 소스들로 접근함 - 으로 로딩(loading)하는 단계;
    결과 비교기를 통해 그 차이점들을 결정하도록 상기 세션들로부터의 결과적인 데이터들을 비교하는 단계; 및
    상기 쿼리 인터프리터에 의한 상기 능동적 캐싱을 적응적으로(adaptively) 최적화하도록 상기 세션들의 차이점을 분석하는 단계
    를 포함하는 방법.
  55. 데이터 분석을 용이하게 하는 둘 이상의 컴퓨터 컴포넌트들 간에 전송되는 데이터 패킷으로,
    부분적으로 능동적 캐싱 구조를 기반으로 하며, 동적 다차원 분석 데이터를 포함하는 데이터패킷.
  56. 제55항에 있어서, 상기 동적 다차원 분석 데이터는, 데이터베이스로부터 유도된 다차원 객체 데이터 및 적어도 하나의 다차원 객체로부터 유도된 동적 다차원 분석 데이터로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 데이터 패킷.
  57. 제56항에 있어서, 상기 적어도 하나의 다차원 객체로부터 유도된 상기 동적다차원 분석 데이터는, MOLAP 캐시로부터의 데이터를 포함하는 데이터 패킷.
  58. 제56항에 있어서, 상기 다차원 객체 데이터는 OLAP 객체로부터의 데이터를 포함하는 데이터 패킷.
  59. 제58항에 있어서, 상기 OLAP 객체는 ROLAP 객체를 포함하는 데이터 패킷.
  60. 제56항에 있어서, 상기 데이터베이스는 관계형 데이터베이스를 포함하는 데이터 패킷.
  61. 데이터 분석을 용이하게 하기 위한 시스템의 컴퓨터 실행가능 컴포넌트들(computer executable components)을 저장하는 컴퓨터 판독가능 매체로,
    적어도 하나의 변형 OLAP 캐시(OLAP variant cache)를, 적어도 부분적으로 기반으로 하는, 데이터 세트와 관련된 정보를 제공하는 능동적 캐싱 시스템을 포함하는 매체.
  62. 제61항에 있어서, 상기 변형 OLAP 캐시는 MOLAP 캐시를 포함하는 매체.
  63. 제61항에 있어서, 상기 능동적 캐싱 시스템은,
    다차원 객체로 및 상기 다차원 객체로부터 유도된 동적 다차원 분석 데이터를 포함하는 캐시로 능동적으로 연결될 수 있고,
    상기 다차원 객체 및 상기 캐시로의 접근을 능동적으로 제어할 수 있는
    적어도 하나의 분석 컴포넌트를 포함하는 매체.
  64. 제1항의 상기 시스템을 채용하는 장치로, 컴퓨터, 서버, 및 휴대용 전자 장치로 구성되는 그룹으로부터 선택되는 것 중 적어도 하나를 포함하는 장치.
KR1020040020995A 2003-03-28 2004-03-27 정보 캐싱 시스템 및 이를 사용하는 장치, 데이터 캐싱 방법, 및 능동적 캐싱 방법 KR100996771B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/402,000 2003-03-28
US10/402,000 US7269581B2 (en) 2003-03-28 2003-03-28 Systems and methods for proactive caching utilizing OLAP variants

Publications (2)

Publication Number Publication Date
KR20040085041A true KR20040085041A (ko) 2004-10-07
KR100996771B1 KR100996771B1 (ko) 2010-11-25

Family

ID=32989579

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040020995A KR100996771B1 (ko) 2003-03-28 2004-03-27 정보 캐싱 시스템 및 이를 사용하는 장치, 데이터 캐싱 방법, 및 능동적 캐싱 방법

Country Status (5)

Country Link
US (4) US7269581B2 (ko)
EP (1) EP1477912A3 (ko)
JP (1) JP4578120B2 (ko)
KR (1) KR100996771B1 (ko)
CN (1) CN100440205C (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008157456A1 (en) * 2007-06-15 2008-12-24 Microsoft Corporation Multidimensional analysis tool for high dimensional data
KR101226476B1 (ko) 2010-11-05 2013-01-25 (주)윌비솔루션 P2p olap 시스템

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7269581B2 (en) * 2003-03-28 2007-09-11 Microsoft Corporation Systems and methods for proactive caching utilizing OLAP variants
US6946648B2 (en) * 2003-03-31 2005-09-20 Council Of Scientific And Industrial Research Opto-electronic device for angle generation of ultrasonic probe
DK1477909T3 (da) 2003-05-15 2007-05-07 Targit As Fremgangsmåde og brugergrænseflade til at lave en præsentation af data under anvendelse metamorfning
US7779018B2 (en) * 2003-05-15 2010-08-17 Targit A/S Presentation of data using meta-morphing
US7523462B1 (en) * 2003-05-27 2009-04-21 International Business Machines Corporation Method for providing a real time view of heterogeneous enterprise data
US7657516B2 (en) * 2003-12-01 2010-02-02 Siebel Systems, Inc. Conversion of a relational database query to a query of a multidimensional data source by modeling the multidimensional data source
US8468444B2 (en) * 2004-03-17 2013-06-18 Targit A/S Hyper related OLAP
CA2564754A1 (en) * 2004-04-26 2005-11-10 Right90, Inc. Forecasting data with real-time updates
US20050278458A1 (en) * 2004-06-09 2005-12-15 Microsoft Corporation Analysis services database synchronization
US7774298B2 (en) * 2004-06-30 2010-08-10 Sap Ag Method and system for data extraction from a transaction system to an analytics system
US20060064429A1 (en) * 2004-09-18 2006-03-23 Chi Yao Method and apparatus for providing assets reports categorized by attribute
US7475093B2 (en) * 2004-10-15 2009-01-06 Microsoft Corporation Memory cache management in XML/relational data mapping
US7774295B2 (en) * 2004-11-17 2010-08-10 Targit A/S Database track history
US20070022120A1 (en) * 2005-07-25 2007-01-25 Microsoft Corporation Caching and modifying portions of a multi-dimensional database on a user device
US20070156631A1 (en) * 2005-12-29 2007-07-05 Sap Ag Synchronization of transactional applications and analytical applications
US7730024B2 (en) * 2006-03-20 2010-06-01 Microsoft Corporation Distributed data mining using analysis services servers
EP2021953A2 (en) * 2006-05-16 2009-02-11 Targit A/S A method of preparing an intelligent dashboard for data monitoring
DK176532B1 (da) 2006-07-17 2008-07-14 Targit As Fremgangsmåde til integration af dokumenter med OLAP ved brug af sögning, computerlæsbart medium og computer
US7793292B2 (en) * 2006-09-13 2010-09-07 Fisher-Rosemount Systems, Inc. Compact batch viewing techniques for use in batch processes
CN100437589C (zh) * 2007-01-30 2008-11-26 金蝶软件(中国)有限公司 联机分析处理系统中多维表达式数据缓存的方法和装置
DK176516B1 (da) * 2007-04-30 2008-06-30 Targit As Computerimplementeret fremgangsmåde samt computersystem og et computerlæsbart medium til at lave videoer, podcasts eller slidepræsentationer fra en Business-Intelligence-application
US7870114B2 (en) 2007-06-15 2011-01-11 Microsoft Corporation Efficient data infrastructure for high dimensional data analysis
US9626421B2 (en) 2007-09-21 2017-04-18 Hasso-Plattner-Institut Fur Softwaresystemtechnik Gmbh ETL-less zero-redundancy system and method for reporting OLTP data
US8725713B2 (en) * 2008-01-11 2014-05-13 International Business Machines Corporation String searches in a computer database
US8082239B2 (en) 2008-02-04 2011-12-20 Microsoft Corporation Defining sub-cube scope based upon a query
US8533280B1 (en) * 2008-05-02 2013-09-10 BitGravity, Inc. Distributed origin content delivery network
US20120102453A1 (en) * 2010-10-21 2012-04-26 Microsoft Corporation Multi-dimensional objects
US8170981B1 (en) * 2010-12-08 2012-05-01 Dassault Systemes Enovia Corporation Computer method and system for combining OLTP database and OLAP database environments
CN102411598B (zh) * 2011-07-29 2013-07-31 株洲南车时代电气股份有限公司 一种实现数据一致性的方法及其系统
US9081830B1 (en) 2011-10-08 2015-07-14 Bay Dynamics Updating a view of a multidimensional cube
US10353922B1 (en) 2011-10-08 2019-07-16 Bay Dynamics, Inc. Rendering multidimensional cube data
US9183269B1 (en) 2011-10-08 2015-11-10 Bay Dynamics, Inc. Federated multidimensional data storage cubes
US9390082B1 (en) 2011-10-08 2016-07-12 Bay Dynamics, Inc. Generating multiple views of a multidimensional cube
US8965836B1 (en) 2011-10-08 2015-02-24 Bay Dynamics Management of multidimensional data storage cubes using content packs
US8799207B1 (en) * 2011-10-08 2014-08-05 Bay Dynamics Unified data source management
US8909680B1 (en) 2011-10-08 2014-12-09 Bay Dynamics Intelligent caching of multidimensional cube data
US9171055B1 (en) 2011-10-08 2015-10-27 Bay Dynamics, Inc. Content packs for multidimensional data storage cubes
US9330091B1 (en) 2011-10-08 2016-05-03 Bay Dynamics, Inc. System for managing data storages
CN102789488B (zh) * 2012-06-29 2016-05-04 用友网络科技股份有限公司 数据查询处理系统和数据查询处理方法
TWI485560B (zh) * 2012-08-31 2015-05-21 Ibm 資料分析系統、快取裝置、與資料處理方法
US10275484B2 (en) * 2013-07-22 2019-04-30 International Business Machines Corporation Managing sparsity in a multidimensional data structure
US9870415B2 (en) * 2013-09-18 2018-01-16 Quintiles Ims Incorporated System and method for fast query response
KR101805561B1 (ko) * 2014-01-02 2017-12-07 후아웨이 테크놀러지 컴퍼니 리미티드 데이터베이스 시스템에서 온라인 분석 처리를 위한 데이터를 유지하는 방법 및 장치
CN103870571B (zh) * 2014-03-14 2017-06-06 华为技术有限公司 多维联机分析处理系统中的立方体重构方法和装置
US10664479B2 (en) * 2014-06-27 2020-05-26 Sap Se Accommodating concurrent changes in underlying data during reporting
CN105573838B (zh) * 2014-10-14 2022-04-29 创新先进技术有限公司 缓存健康度检测方法及装置
CN104317936A (zh) * 2014-10-31 2015-01-28 北京思特奇信息技术股份有限公司 一种基于星型模型的rolap解析引擎设计方法及装置
CN105426501B (zh) * 2015-11-25 2018-12-21 广州华多网络科技有限公司 多维数据库自动路由实现方法和系统
KR101820108B1 (ko) * 2016-08-29 2018-01-19 (주)비아이매트릭스 캐시 테이블 통합 기반 2단계 쿼리 처리 시스템
CN106909691A (zh) * 2017-03-09 2017-06-30 山东浪潮商用系统有限公司 一种基于缓存的高效税收数据分析方法
RU2688229C1 (ru) * 2017-12-25 2019-05-21 Общество с ограниченной ответственностью "РЕГУЛ+" (ООО "РЕГУЛ+") Способ агрегирования и преобразования данных и устройство для его реализации
CN108664560A (zh) * 2018-04-09 2018-10-16 宁波诺信睿聚投资有限责任公司 数据查询方法、装置、计算机设备及计算机可读存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5878223A (en) 1997-05-07 1999-03-02 International Business Machines Corporation System and method for predictive caching of information pages
US5926818A (en) 1997-06-30 1999-07-20 International Business Machines Corporation Relational database implementation of a multi-dimensional database
US5978796A (en) 1997-06-30 1999-11-02 International Business Machines Corporation Accessing multi-dimensional data by mapping dense data blocks to rows in a relational database
US6205447B1 (en) 1997-06-30 2001-03-20 International Business Machines Corporation Relational database management of multi-dimensional data
US6026413A (en) * 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6256712B1 (en) * 1997-08-01 2001-07-03 International Business Machines Corporation Scaleable method for maintaining and making consistent updates to caches
US5924096A (en) 1997-10-15 1999-07-13 Novell, Inc. Distributed database using indexed into tags to tracks events according to type, update cache, create virtual update log on demand
JP3476349B2 (ja) * 1997-11-12 2003-12-10 三菱電機株式会社 データ処理装置
US6272502B1 (en) 1998-05-11 2001-08-07 Lucent Technologies Inc. Refreshing materialized views of a database to maintain consistency with underlying data
US6285997B1 (en) * 1998-11-16 2001-09-04 International Business Machines Corporation Query optimization with deferred update and autonomous sources
JP2001022766A (ja) 1999-07-06 2001-01-26 Degital Works Kk 多次元データベースの高速処理方法および装置
US6493718B1 (en) 1999-10-15 2002-12-10 Microsoft Corporation Adaptive database caching and data retrieval mechanism
US20020029207A1 (en) * 2000-02-28 2002-03-07 Hyperroll, Inc. Data aggregation server for managing a multi-dimensional database and database management system having data aggregation server integrated therein
JP2001282590A (ja) 2000-03-29 2001-10-12 Hitachi Kokusai Electric Inc 多次元データベース処理システム
US6763357B1 (en) * 2000-06-27 2004-07-13 Ncr Corporation Method for determining the computability of data for an active multi-dimensional cache in a relational database management system
US6728840B1 (en) * 2000-10-20 2004-04-27 Emc Corporation Methods and apparatus for providing host controlled caching of data in a storage system
US7054927B2 (en) * 2001-01-29 2006-05-30 Adaptec, Inc. File system metadata describing server directory information
WO2003017055A2 (en) * 2001-08-15 2003-02-27 Visa International Service Association Method and system for delivering multiple services electronically to customers via a centralized portal architecture
US7089228B2 (en) * 2002-04-18 2006-08-08 International Business Machines Corporation Computer apparatus and method for caching results of a database query
AU2003259281A1 (en) 2002-07-26 2004-02-16 Datatrak International Method and system of unifying data
US7058640B2 (en) 2003-02-05 2006-06-06 International Business Machines Corporation Systems, methods, and computer program products to efficiently update multidimensional databases
US7269581B2 (en) * 2003-03-28 2007-09-11 Microsoft Corporation Systems and methods for proactive caching utilizing OLAP variants

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008157456A1 (en) * 2007-06-15 2008-12-24 Microsoft Corporation Multidimensional analysis tool for high dimensional data
KR101226476B1 (ko) 2010-11-05 2013-01-25 (주)윌비솔루션 P2p olap 시스템

Also Published As

Publication number Publication date
US20060184518A1 (en) 2006-08-17
CN1551014A (zh) 2004-12-01
US7680776B2 (en) 2010-03-16
US7689605B2 (en) 2010-03-30
US20060129597A1 (en) 2006-06-15
US7269581B2 (en) 2007-09-11
US20040193576A1 (en) 2004-09-30
JP2004303212A (ja) 2004-10-28
JP4578120B2 (ja) 2010-11-10
KR100996771B1 (ko) 2010-11-25
US20060112137A1 (en) 2006-05-25
CN100440205C (zh) 2008-12-03
EP1477912A2 (en) 2004-11-17
EP1477912A3 (en) 2006-05-10

Similar Documents

Publication Publication Date Title
KR100996771B1 (ko) 정보 캐싱 시스템 및 이를 사용하는 장치, 데이터 캐싱 방법, 및 능동적 캐싱 방법
Muniswamaiah et al. Big data in cloud computing review and opportunities
US10235430B2 (en) Systems, methods, and apparatuses for detecting activity patterns
US6473750B1 (en) Adaptive query execution in a distributed database system
US9563538B2 (en) Code path tracking
US8943087B2 (en) Processing data from diverse databases
US20030220860A1 (en) Knowledge discovery through an analytic learning cycle
US20080250057A1 (en) Data Table Management System and Methods Useful Therefor
US7730024B2 (en) Distributed data mining using analysis services servers
US7660811B2 (en) System that facilitates database querying
US20070219957A1 (en) Cross varying dimension support for analysis services engine
US11231970B2 (en) Intelligent application programming interface (API) proxy design system
US11762907B2 (en) Contract library data structures and uses thereof
US10776368B1 (en) Deriving cardinality values from approximate quantile summaries
Connolly et al. Harnessing the value of big data analytics
Vitt et al. Microsoft sql server 2005 analysis services performance guide
Kaur et al. Comparison study of big data processing systems for IoT cloud environment
Khatiwada Architectural issues in real-time business intelligence
EP4152173B1 (en) Data digital decoupling of legacy systems
US20230169126A1 (en) System and method for managed data services on cloud platforms
Demers et al. The architecture of the cornell knowledge broker
Pollack Transactional vs. Analytic Workloads
Sandmann Implementation of a Segmented, Transactional Database Caching System
Monash Memory-Centric Data Management
Yao Design issues in data warehousing: a case study

Legal Events

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

Payment date: 20131016

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20141017

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 9