KR20120116772A - 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법 - Google Patents

멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법 Download PDF

Info

Publication number
KR20120116772A
KR20120116772A KR1020110034410A KR20110034410A KR20120116772A KR 20120116772 A KR20120116772 A KR 20120116772A KR 1020110034410 A KR1020110034410 A KR 1020110034410A KR 20110034410 A KR20110034410 A KR 20110034410A KR 20120116772 A KR20120116772 A KR 20120116772A
Authority
KR
South Korea
Prior art keywords
data
tenant
caching
common data
tenants
Prior art date
Application number
KR1020110034410A
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 KR1020110034410A priority Critical patent/KR20120116772A/ko
Publication of KR20120116772A publication Critical patent/KR20120116772A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • 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/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management

Landscapes

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

Abstract

본 발명은, 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법에 관한 것으로서, 멀티 테넌시 서비스 플랫폼에서 복수의 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터인 공통데이터를 캐시 메모리에 캐싱함으로써, 테넌트별 커스터마이징 과정의 성능을 보다 효율적으로 개선할 수 있다.

Description

멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법{Method for caching tenant data in multi-tenancy service platform}
본 발명은, 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법에 관한 것으로, 멀티 테넌시 서비스 플랫폼에서 복수의 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터인 공통데이터를 캐시메모리에 캐싱하는 테넌트 데이터 캐싱 방법에 관한 것이다.
컴퓨터 네트워크의 기술 발전에 따라, 각 단말의 독립적인 하드웨어 성능에 의존하던 기존의 컴퓨팅 환경은, 네트워크 상의 모든 컴퓨팅 자원을 활용하여 단말의 요청에 따라 해당 서비스를 제공하는 클라우드 컴퓨팅(Cloud Computing) 형태로 진화하고 있다.
클라우드 컴퓨팅 서비스란, 인터넷과 같은 정보통신망을 통한 '컴퓨팅 자원의 온 디맨드 아웃소싱 서비스'라고 정의할 수 있다. 클라이언트는 어플리케이션(Application), 스토리지(Storage), 운영체제(Operation System, OS), 보안(Security)등의 필요한 컴퓨팅 자원을 각 클라이언트의 단말에 설치하여 사용하는 것이 아니라, 가상화 기술을 통해 생성된 가상의 컴퓨팅 환경 상의 서비스를 원하는 시점에 원하는 만큼 골라서 사용하게 된다. 클라이언트는 각 컴퓨팅 자원의 구입비용을 지불하는 것이 아니라 사용량에 기반하여 대가를 지불하게 된다.
클라우드 컴퓨팅 서비스의 구체적인 형태는 클라이언트에게 서비스로 제공하는 컴퓨팅 자원의 종류에 따라, 하드웨어 인프라를 서비스로 제공하는 IaaS(Infrastructure As A Service), 어플리케이션 개발 및 실행 플랫폼을 서비스로 제공하는 PaaS(Platform As A Service) 및 어플리케이션 또는 소프트웨어를 서비스로 제공하는 SaaS(Software As A Service) 등으로 분류될 수 있다.
이들 중에서 SaaS는 클라우드 서비스 중 가장 대중화된 유형으로 인터넷을 통해 엔드 유저(end user)에게 어플리케이션 또는 소프트웨어를 제공하는 것이 일반적이며, 이러한 서비스는 Gmail과 같은 단순 웹 기반의 email에서 SugerCRM과 같은 CRM 소프트웨어에 이르기까지 다양한 범위에 적용된다. SaaS 가 기존의 ASP (Application Service Provider)와 구분되는 가장 큰 특징은 하나의 소프트웨어 인스턴스로 여러 사용자(tenant)에게 커스터마이징 된 어플리케이션을 제공해 주는 것으로서 이러한 기능을 멀티 테넌시(multi-tenancy)라고 한다. 멀티 테넌시 제공으로 고효율, 저비용의 어플리케이션 제공이 클라우드 컴퓨팅 환경에서 가능하다.
이러한 멀티 테넌시 기능을 제공하는 서비스 플랫폼에서 각각의 테넌트들은 엔티티(entity), 속성(attribute), 관계(relationship), 폼(form), 뷰(view), 코드-레벨 확장성 플러그인(code-level extensibility plug-in), 기타 등등을 추가/삭제/수정함으로써 테넌트 자신의 어플리케이션 또는 소프트웨어을 커스터마이즈할 수 있다. 서로 다른 테넌트에 의해 구현된 커스터마이제이션(customization)을 구별하기 위해, 커스터마이징에 필요한 테넌트별 데이터들이 하나의 데이터베이스 또는 다수의 데이터베이스에 존재하는 개별적인 테이블들로 분할될 수 있다.
이러한 데이터 분할(data partitioning)에 따라 테넌트별 커스터마이징 과정에서 데이터베이스로부터 테넌트별 데이터를 읽어오는 데에 많은 시간과 비용이 소요되는 바, 캐시 메모리 등을 이용하여 테넌트별 커스터마이징 과정의 성능을 개선하는 기술이 필요하다.
본 발명이 이루고자 하는 기술적 과제는, 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법에 관한 것으로, 멀티 테넌시 서비스 플랫폼에서 복수의 테넌트들이 공통적으로 참조하는 항목의 데이터인 공통데이터를 캐시메모리에 캐싱함으로써, 테넌트별 커스터마이징 과정의 성능을 개선하는 테넌트 데이터 캐싱 방법을 제공하는 데에 있다.
상기의 기술적 과제를 이루기 위한, 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법은 복수의 테넌트들이 참조하는 테넌트 데이터의 구성을 테넌트별로 나타내는 테넌트별 논리 스키마로부터 복수의 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터인 공통데이터와 공통데이터를 제외한 나머지인 독립데이터를 별도로 추출하고, 추출된 공통데이터 및 독립데이터에 테넌트들의 메타데이터를 추가하여 데이터베이스에 저장할 테이블 형태의 물리 스키마로 변환하는 스키마 매핑 단계; 및 추출된 공통데이터를 캐시 메모리에 캐싱하는 메모리 캐싱 단계 를 포함한다.
보다 바람직하게는, 물리 스키마의 테이블 형태는 확장 테이블, 전체 테이블, 피봇 테이블, 청크 테이블 중 적어도 하나 이상을 포함할 수 있다.
보다 바람직하게는, 메모리 캐싱 단계는 추출된 공통데이터의 용량과 캐시 메모리의 가용량을 비교하는 용량비교단계를 더 포함할 수 있다.
보다 바람직하게는, 메모리 캐싱 단계는 추출된 공통데이터의 용량이 캐시 메모리의 가용량을 초과하는 경우에는 공통데이터에 대응되는 테넌트들 각각의 우선순위에 따라 공통데이터의 일부를 캐싱하는 단계를 더 포함할 수 있다.
보다 바람직하게는, 메모리 캐싱 단계는 캐시 메모리의 가용량이 추출된 공통데이터의 용량을 초과하는 경우에는 독립데이터 각각의 우선순위에 따라 독립데이터의 일부를 캐싱하는 단계를 더 포함할 수 있다.
보다 바람직하게는, 독립데이터 각각의 우선순위는 독립데이터들 각각의 참조 횟수, 독립데이터들 각각에 대응되는 테넌트들 각각의 우선순위 및 독립데이터들 각각에 대응되는 항목의 유효 컬럼수 중 적어도 하나 이상을 기초로 결정될 수 있다.
보다 바람직하게는, 테넌트들 각각의 우선순위는 테넌트들 각각에 속하는 사용자의 수 및 테넌트들 각각에 대하여 체결된 서비스 수준 약정에 따라 보장되는 서비스 수준 중 적어도 하나 이상을 기초로 결정될 수 있다.
상기의 기술적 과제를 이루기 위한, 본 발명에 의한, 다중 테넌트 서비스 플랫폼에서의 테넌트 데이터 캐싱 기능을 포함하는 프로그램을 수록한 컴퓨터로 읽을 수 있는 기록매체는 복수의 테넌트들이 참조하는 테넌트 데이터의 구성을 테넌트별로 나타내는 테넌트별 논리 스키마로부터 복수의 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터인 공통데이터와 공통데이터를 제외한 나머지인 독립데이터를 별도로 추출하고, 추출된 공통데이터 및 독립데이터에 테넌트들의 메타데이터를 추가하여 데이터베이스에 저장할 테이블 형태의 물리 스키마로 변환하는 기능 및 추출된 공통데이터를 캐시 메모리에 캐싱하는 기능을 포함하는 것을 특징으로 하는 프로그램을 수록한다.
본 발명에 의하면, 멀티 테넌시 서비스 플랫폼에서 복수의 테넌트들이 공통적으로 참조하는 항목의 데이터인 공통데이터를 캐시 메모리에 두어 테넌트별 커스터마이징 과정에서 신속하게 참조할 수 있도록 함으로써, 테넌트별 커스터마이징 과정의 성능을 보다 효율적으로 개선할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 테넌트 데이터 캐싱 방법의 흐름을 도시한 도면이다.
도 2a 내지 도 2c는 본 발명의 바람직한 일 실시예에 따른 테넌트 데이터 캐싱 방법에 따르는 경우에 캐시 메모리에 결과적으로 캐싱되는 테넌트 데이터를 설명하기 위한 예를 도시한 도면이다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블록을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략하거나 간략하게 설명하는 것으로 한다.
한편 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라, 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 첨부된 도면을 참조하여 바람직한 실시예에 따른 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 테넌트 데이터 캐싱 방법의 흐름을 도시한 도면이다.
도 1을 참조하면, 먼저, 멀티 테넌시 서비스 플랫폼의 복수의 테넌트들이 참조하는 테넌트 데이터의 구성을 테넌트별로 나타내는 논리 스키마를 실제 적어도 하나 이상의 데이터베이스에 저장할 테이블 형태의 물리 스키마로 변환(매핑)하는 스키마 매핑을 수행한다(S101).
스키마 매핑이 이루어지면, 태넌트별 커스터마이징 과정에서 테넌트별 논리 스키마에 대한 질의가 발생하면, 이를 물리 스키마에 대한 질의로 변환하여 데이터베이스에 질의할 수 있게 된다.
물리 스키마의 테이블 형태로는 확장 테이블(Extension Table), 전체 테이블(Universal Table), 피봇 테이블(Pivot Table) 및 청크 테이블(Chunk Table) 등이 있다.
예컨대, 확장 테이블(Extension Table) 형태의 물리 스키마로 변환하는 스키마 매핑은 각 테넌트별로 특화된 항목의 테넌트 데이터(독립데이터)만을 별도로 분리하여 이들에 테넌트들의 메타데이터를 추가하여 테넌트별 확장 테이블로 구축하는 과정으로 진행되며, 전체 테이블(Universal Table)은 모든 논리 스키마의 테넌트 데이터들에 테넌트들의 메타데이터를 추가하여 하나의 큰 테이블에 통합하여 구축하는 과정으로 진행된다.
즉, 이러한 스키마 매핑(S101)을 진행함에 있어서, 멀티 테넌시 서비스 플랫폼의 모든 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터와 그외 나머지인 각 테넌트별로 특화된 항목의 테넌트 데이터를 별도로 분리해서 추출할 수 있으며, 본 실시예에서는 양자를 구별하기 위해 이하에서, 각각 공통데이터와 독립데이터로 칭하도록 한다.
공통데이터는 모든 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터로서, 모든 커스터마이징 과정에서 참조되는 것이므로, 본 실시예에서는 이러한 공통데이터를 독립데이터에 비해 우선적으로 캐시 메모리에 캐싱되도록 함으로써, 테넌트별 커스터마이징 과정의 전체적인 성능을 보다 효율적으로 개선한다.
이를 위해, 먼저, S101 단계에서 추출된 공통데이터의 용량과 캐시 메모리의 가용량을 비교한다(S102).
S102 단계에서의 비교 결과, 공통데이터의 용량이 캐시 메모리의 가용량을 초과하는 경우(S103)에는 공통데이터 전부를 캐시 메모리에 캐싱할 수 없는 상태이기 때문에, 공통데이터에 대응되는 테넌트들 각각의 우선순위에 따라 공통데이터의 일부를 캐시 메모리에 캐싱한다(S104).
본 실시예에서, 테넌트들 각각의 우선순위는 멀티 테넌시 서비스를 제공하는 서비스 제공자에 의해 부여되는 것으로, 테넌트들 각각에 속하는 사용자의 수 및 테넌트들 각각에 대하여 체결된 서비스 수준 약정(Service Level Agreement, SLA)에 따라 보장되는 서비스 수준(Service Level) 등에 따라 정해지는 것이 바람직하나, 이는 하나의 실시예에 불과하며, 본 발명이 이에 한정되는 것은 아니다.
S102 단계에서의 비교 결과, 캐시 메모리의 가용량이 공통데이터의 용량을 초과하는 경우에는(S105), 오히려, 공통데이터 전부를 캐시 메모리에 캐싱하더라도 캐시 메모리의 잔여 공간이 발생하기 때문에, 이렇게 발생할 캐시 메모리의 잔여공간에 독립데이터 각각의 우선순위에 따라 독립데이터의 일부를 캐시 메모리에 캐싱할 수 있게 된다(S106).
본 실시예에서, 독립데이터 각각의 우선순위는 멀티 테넌시 서비스를 제공하는 서비스 제공자의 정책에 따라 달라질 수 있는 것으로, 독립데이터들 각각의 참조 횟수(frequency), 독립데이터들 각각에 대응되는 테넌트들 각각의 우선순위 및 독립데이터들 각각에 대응되는 항목의 유효 컬럼수 등에 따라 정해지는 것이 바람직하나, 이는 하나의 실시예에 불과하며, 본 발명이 이에 한정되는 것은 아니다.
그리고, 공통데이터 전부를 캐시 메모리에 캐싱한다(S107).
본 실시예에서, (S105 내지 S106)의 과정과 S107 단계는 기재의 편의를 위해 (S105~S106)->S107의 순으로 예시한 것에 불과하며, 양자는 서로 순서를 바꾸어 실행해도 되며, 또는 동시에 병렬적으로 실행해도 무방하며, 본 발명은 이들 단계의 실행 순서에 의해 한정되지 않는다.
이처럼 본 실시예는 테넌트별 커스터마이징 과정에서 우선순위가 높은 공통데이터 및 독립데이터의 일부를 캐싱하여 접근 속도가 빠른 캐시 메모리에 보관해둠으로써, 테넌트별 커스터마이징 과정의 성능을 보다 효율적으로 개선할 수 있는 것이다.
도 2a 내지 도 2c는 본 발명의 바람직한 일 실시예에 따른 테넌트 데이터 캐싱 방법에 따르는 경우에 캐시 메모리에 결과적으로 캐싱되는 테넌트 데이터를 설명하기 위한 예를 도시한 도면이다.
먼저, 도 2a는 세 테넌트(테넌트 17, 35, 42)를 위한 Account 테이블(논리 스키마)을 예시한다.
도 2a를 참조하면, 테넌트 17은 헬스 케어 산업을 위한 테넌트로, 테넌트 17의 논리 스키마는 병원 이름과 병원에 구비된 침대들의 개수 등과 같은 헬스 케어 산업에 특화된 항목의 데이터를 포함하도록 구성된다.
테넌트 35는 기본적으로 설정되는 테넌트로, 테넌트 35의 논리 스키마는 모든 테넌트들에 공통되는 항목의 데이터만을 포함하도록 구성된다.
테넌트 42는 자동차 산업을 위한 테넌트로서, 테넌트 42의 논리 스키마는 자동차 딜러 수등과 같은 자동차 산업에 특화된 항목의 데이터를 포함하도록 구성된다.
도 2b는 도 2a에 도시된 논리 스키마를 스키마 매핑을 통해 확장 테이블 (Extension Table) 형태의 물리 스키마로 변환한 결과를 예시한다.
확장 테이블(Extension Table) 형태의 물리 스키마로 변환하는 스키마 매핑은 모든 테넌트들에 공통되는 항목의 테넌트 데이터인 공통데이터(201)와, 각 테넌트별로 특화된 항목의 테넌트 데이터인 독립데이터(202)를 분리하여 추출한 다음에, 공통데이터(201)는 하나의 테이블로 저장하고, 독립데이터(202)는 각 테넌트별로 별도의 확장테이블로 저장한다.
공통데이터(201)와 독립데이터(202)를 테이블로 저장하는 과정에서 테넌트의 메타데이터인 테넌트의 식별번호(tenant) 및 테넌트별 논리 스키마에서의 줄번호(row) 등을 추가하여 도 2b에 도시된 것과 같은 레이아웃을 형성한다.
이러한 확장 테이블 형태로의 스키마 매칭 방법은 질의문 실행시 관련 있는 테이블만 접근하면 되며 통합 정도가 높다는 장점을 가지나, 관련된 행들이 클러스터링되어 있지 않으면, 논리 스키마 재구성시 추가적인 join 연산이나 기타 입출력 연산이 필요해 오버헤드가 증가할 수 있다는 한계가 있다.
도 2c는 도 2a에 도시된 논리 스키마를 스키마 매핑을 통해 전체 테이블 (Universal Table) 형태의 물리 스키마로 변환한 결과를 예시한다.
전체 테이블(Universal Table) 형태의 물리 스키마로 변환하는 스키마 매핑은 모든 테넌트들에 공통되는 항목의 테넌트 데이터인 공통데이터(201) 및 각 테넌트별로 특화된 항목의 테넌트 데이터인 독립데이터(202) 모두를 하나의 테이블로 저장하는 방법으로, 공통데이터(201) 및 독립데이터(202)에 테넌트의 메타데이터인 테넌트의 식별번호(tenant) 및 테넌트별 논리 스키마에서의 줄번호(row) 등을 추가하여 도 2c에 도시된 것과 같은 레이아웃을 형성한다.
이러한 전체 테이블 형태로의 스키마 매칭 방법은 이후에 논리 스키마를 재구성할 필요가 없다는 장점이 있으나, 적은 필드 수를 갖는 테넌트들의 컬럼 들은 많은 null 값을 갖게 되어 통합의 정도가 낮으며, 정교한 인덱싱이 불가능하다는 단점을 갖는다.
본 실시예에 따르면, 캐시 메모리의 가용량이 공통데이터(201)를 저장하기에 충분한 경우에, 공통데이터(201)를 전부 캐싱할 수 있으며, 공통데이터(201) 전부를 저장하더라도 캐시 메모리에 잔여공간이 발생할 경우에는 독립데이터(202)의 일부를 그 우선순위에 따라 캐싱할 수 있다.
본 발명에 의하면, 멀티 테넌시 서비스 플랫폼에서 복수의 테넌트들이 공통적으로 참조하는 항목의 데이터인 공통데이터 및 우선순위가 높은 독립데이터의 일부를 캐시 메모리에 두어 테넌트별 커스터마이징 과정에서 신속하게 참조할 수 있도록 함으로써, 테넌트별 커스터마이징 과정의 성능을 보다 효율적으로 개선할 수 있다.
본 발명에 따른 테넌트 데이터 캐싱 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 케리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 첨부된 도면에 도시된 일 실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 수 있을 것이다. 따라서, 본 발명의 진정한 보호 범위는 첨부된 청구 범위에 의해서만 정해져야 할 것이다.

Claims (7)

  1. 복수의 테넌트들이 참조하는 테넌트 데이터의 구성을 테넌트별로 나타내는 테넌트별 논리 스키마로부터 복수의 테넌트들이 공통적으로 참조하는 항목의 테넌트 데이터인 공통데이터와 상기 공통데이터를 제외한 나머지인 독립데이터를 별도로 추출하고, 추출된 공통데이터 및 독립데이터에 상기 테넌트들의 메타데이터를 추가하여 데이터베이스에 저장할 테이블 형태의 물리 스키마로 변환하는 스키마 매핑 단계; 및
    상기 추출된 공통데이터를 캐시 메모리에 캐싱하는 메모리 캐싱 단계를 포함하는 것을 특징으로 하는 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
  2. 제1항에 있어서,
    상기 물리 스키마의 테이블 형태는 확장 테이블, 전체 테이블, 피봇 테이블, 청크 테이블 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 중 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
  3. 제1항에 있어서,
    상기 메모리 캐싱 단계는 상기 추출된 공통데이터의 용량과 캐시 메모리의 가용량을 비교하는 용량비교단계를 더 포함하는 것을 특징으로 하는 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
  4. 제3항에 있어서,
    상기 메모리 캐싱 단계는 상기 추출된 공통데이터의 용량이 상기 캐시 메모리의 가용량을 초과하는 경우에는 상기 공통데이터에 대응되는 테넌트들 각각의 우선순위에 따라 상기 공통데이터의 일부를 캐싱하는 단계를 더 포함하는 것을 특징으로 하는 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
  5. 제3항에 있어서,
    상기 메모리 캐싱 단계는 상기 캐시 메모리의 가용량이 상기 추출된 공통데이터의 용량을 초과하는 경우에는 상기 독립데이터 각각의 우선순위에 따라 상기 독립데이터의 일부를 캐싱하는 단계를 더 포함하는 것을 특징으로 하는 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
  6. 제5항에 있어서,
    상기 독립데이터 각각의 우선순위는 상기 독립데이터들 각각의 참조 횟수, 상기 독립데이터들 각각에 대응되는 테넌트들 각각의 우선순위 및 상기 독립데이터들 각각에 대응되는 항목의 유효 컬럼수 중 적어도 하나 이상을 기초로 결정되는 것을 특징으로 하는 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
  7. 제4항 또는 제6항에 있어서,
    상기 테넌트들 각각의 우선순위는 상기 테넌트들 각각에 속하는 사용자의 수 및 상기 테넌트들 각각에 대하여 체결된 서비스 수준 약정에 따라 보장되는 서비스 수준 중 적어도 하나 이상을 기초로 결정되는 것을 특징으로 하는 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법.
KR1020110034410A 2011-04-13 2011-04-13 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법 KR20120116772A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110034410A KR20120116772A (ko) 2011-04-13 2011-04-13 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110034410A KR20120116772A (ko) 2011-04-13 2011-04-13 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법

Publications (1)

Publication Number Publication Date
KR20120116772A true KR20120116772A (ko) 2012-10-23

Family

ID=47284971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110034410A KR20120116772A (ko) 2011-04-13 2011-04-13 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법

Country Status (1)

Country Link
KR (1) KR20120116772A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160016443A (ko) * 2014-08-05 2016-02-15 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
KR101677372B1 (ko) * 2015-06-10 2016-11-17 한양대학교 에리카산학협력단 디스크 블록 요청 예측 장치 및 방법
KR20160132606A (ko) * 2015-05-11 2016-11-21 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 공통 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
CN109302465A (zh) * 2018-09-18 2019-02-01 天津字节跳动科技有限公司 多端服务资源的管理方法及系统

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160016443A (ko) * 2014-08-05 2016-02-15 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
KR20160132606A (ko) * 2015-05-11 2016-11-21 엔트릭스 주식회사 클라우드 스트리밍 서비스 시스템, 공통 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR20210154785A (ko) * 2015-05-11 2021-12-21 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 시스템, 공통 캐시를 이용한 이미지 클라우드 스트리밍 서비스 방법 및 이를 위한 장치
KR101677372B1 (ko) * 2015-06-10 2016-11-17 한양대학교 에리카산학협력단 디스크 블록 요청 예측 장치 및 방법
CN109302465A (zh) * 2018-09-18 2019-02-01 天津字节跳动科技有限公司 多端服务资源的管理方法及系统

Similar Documents

Publication Publication Date Title
US11663205B2 (en) Technologies for asynchronous querying
US11789978B2 (en) System and method for load, aggregate and batch calculation in one scan in a multidimensional database environment
US20200073987A1 (en) Technologies for runtime selection of query execution engines
US9454548B1 (en) Pluggable storage system for distributed file systems
US11075991B2 (en) Partitioning data according to relative differences indicated by a cover tree
US20120054182A1 (en) Systems and methods for massive structured data management over cloud aware distributed file system
KR20170019352A (ko) 데이터 질의 방법 및 장치
US9742860B2 (en) Bi-temporal key value cache system
US10904316B2 (en) Data processing method and apparatus in service-oriented architecture system, and the service-oriented architecture system
US10176205B2 (en) Using parallel insert sub-ranges to insert into a column store
US11030169B1 (en) Data re-sharding
EP3543843B1 (en) System and method of rolling upgrades of data traits
US11151081B1 (en) Data tiering service with cold tier indexing
KR101621385B1 (ko) 클라우드 스토리지 서비스의 파일 검색 시스템 및 방법, 및 파일 제어 방법
US10262024B1 (en) Providing consistent access to data objects transcending storage limitations in a non-relational data store
CN112905630A (zh) 数据操作方法、服务器和计算机可读介质
KR20120116772A (ko) 멀티 테넌시 서비스 플랫폼에서의 테넌트 데이터 캐싱 방법
US10685134B1 (en) Database proxy service
US20220342888A1 (en) Object tagging
US9875248B2 (en) System and method for identifying a file path using tree data structure
US11222036B1 (en) Data warehouse access reporting
US11630856B2 (en) Handling of Point of Interest (POI) data content
US9092466B1 (en) Trait definitions
CN104239576A (zh) 查找HBase表列值中所有行的方法和装置
KR102100513B1 (ko) 프리미티브 생성 방법과 그를 이용한 질의처리 방법

Legal Events

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