KR101231135B1 - 시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법 - Google Patents

시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법 Download PDF

Info

Publication number
KR101231135B1
KR101231135B1 KR1020100024308A KR20100024308A KR101231135B1 KR 101231135 B1 KR101231135 B1 KR 101231135B1 KR 1020100024308 A KR1020100024308 A KR 1020100024308A KR 20100024308 A KR20100024308 A KR 20100024308A KR 101231135 B1 KR101231135 B1 KR 101231135B1
Authority
KR
South Korea
Prior art keywords
metadata
list entry
service
database server
identifier
Prior art date
Application number
KR1020100024308A
Other languages
English (en)
Other versions
KR20110070667A (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 KR20110070667A publication Critical patent/KR20110070667A/ko
Application granted granted Critical
Publication of KR101231135B1 publication Critical patent/KR101231135B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0808Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
    • 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • 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
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0815Cache consistency protocols
    • G06F12/0817Cache consistency protocols using directory methods
    • 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
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/466Metadata, control data

Landscapes

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

Abstract

본 발명의 시간 기반 메타데이터 캐시 일관성 제어 방법은, 메타데이터 캐시에서 사용자로부터의 서비스 요청에 포함된 테넌트 식별자 및 서비스 식별자와 동일한 테넌트 식별자 및 서비스 식별자를 갖는 리스트 엔트리가 존재하는 지를 판단하는 단계; 포함된 테넌트 식별자 및 서비스 식별자와 동일한 테넌트 식별자 및 서비스 식별자가 기록된 리스트 엔트리가 존재하면, 현재시간에서 해당 리스트의 타임 스탬프값을 뺀 결과값이 해당 리스트 엔트리의 타임 아웃값보다 작은지를 판단하는 단계; 및 결과값이 타임 아웃값보다 작으면, 데이터베이스 서버에 해당 리스트 엔트리의 유효성 검사를 요청하고, 유효성 검사 결과에 따라 데이터베이스 서버로부터 최신버전의 메타데이터를 획득하여 해당 리스트 엔트리를 갱신하는 단계를 포함한다.

Description

시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법{System for controlling time-based metadata cache coherence and method thereof}
본 발명은 캐시 일관성 제어 시스템 및 그 방법에 관한 것이다. 보다 상세하게는, SaaS 플랫폼에서의 시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법에 관한 것이다.
SaaS 플랫폼은 SaaS 서비스에 대해 다수의 테넌트(tenant)를 지원하기 위해 각 테넌트 별로 유저 인터페이스, 워크 플로우, 데이터 스키마 정보 등의 정보를 메타데이터화하여 데이터베이스에 저장 및 관리한다.
그리고, 테넌트의 사용자 요청에 따라 해당 메타데이터를 데이터베이스에서 읽고 해석하여 멀티테넌시를 지원한다. 즉, 테넌트별 사용자 요청에 대해 데이터베이스로부터 해당 메타데이터를 읽어와 이를 해석하여 해당 워크플로우를 실행하고, 필요한 데이터를 가져와서 사용자의 웹 유저 인터페이스로 넘겨준다.
SaaS 플랫폼의 메타데이터는 테넌트 데이터의 용량에 비해 적으면서, 자주 읽혀지고, 변경이 자주 일어나지 않는 특성이 있다. 이러한 메타데이터를 데이터베이스가 아닌 웹 어플리케이션 서버에 캐시를 두면 성능을 높일 수 있다.
그러나, 메타데이터는 서비스 중에 테넌트 서비스를 커스터마이즈한 결과로 인해 변경된다. 이때 하나 이상의 메타데이터 캐시를 둔 웹 어플리케이션 서버에서 이를 감지하지 못하면 메타데이터 캐시에 저장된 메타데이터와 데이터베이스에 저장된 메타데이터 간에 불일치가 발생하게 되는 문제점이 있다.
본 발명은 상기한 바와 같은 문제점을 해결하기 위하여 제안된 것으로서,
리스 기반 웹 어플리케이션 서버들의 메타데이터 캐시에 저장된 메타데이터와 데이터베이스에 저장된 메타데이터를 시간 기반으로 일관성을 유지시키는 방법을 제공하는 것을 목적으로 한다.
즉, 관리자가 메타데이터를 변경하면, 데이터베이스에 저장된 메타데이터뿐만 아니라 일정한 시간 후에 메타데이터 캐시에 저장된 메타데이터를 갱신하여, 변경된 서비스를 테넌트 사용자에게 제공할 수 있는 방법을 제공하는 것을 목적으로 한다.
본 발명의 시간 기반 메타데이터 캐시 일관성 제어 방법은, 메타데이터 캐시에서 사용자로부터의 서비스 요청에 포함된 테넌트 식별자 및 서비스 식별자와 동일한 테넌트 식별자 및 서비스 식별자를 갖는 리스트 엔트리가 존재하는 지를 판단하는 단계; 상기 포함된 테넌트 식별자 및 서비스 식별자와 동일한 테넌트 식별자 및 서비스 식별자가 기록된 리스트 엔트리가 존재하면, 현재시간에서 해당 리스트의 타임 스탬프값을 뺀 결과값이 해당 리스트 엔트리의 타임 아웃값보다 작은지를 판단하는 단계; 및 상기 결과값이 상기 타임 아웃값보다 작으면, 데이터베이스 서버에 해당 리스트 엔트리의 유효성 검사를 요청하고, 상기 유효성 검사 결과에 따라 상기 데이터베이스 서버로부터 최신버전의 메타데이터를 획득하여 해당 리스트 엔트리를 갱신하는 단계를 포함한다.
본 발명에 따르면 다음과 같은 효과를 기대할 수 있다.
SaaS 플랫폼에서 웹 어플리케이션 서버들의 메타데이터 캐시에 저장된 메타데이터와 데이터베이스에 저장된 메타데이터를 시간에 기반하여 일관성을 유지시켜줌으로써, 구현하기 용이한 방법으로 캐시 일관성으로 유지시켜줄 수가 있다.
또한, 웹 어플리케이션 서버의 하드웨어 또는 소프트웨어 장애와 네트워크 오류에도 갱신된 메타데이터를 반영해줄 수가 있다.
도 1은 일반적인 SaaS 플랫폼의 구성을 설명하기 위한 도면이다.
도 2는 본 발명에 따른 SaaS 플랫폼에서 캐시 일관성을 유지시키는 방법을 설명하기 위한 도면이다.
도 3은 본 발명의 SaaS 플랫폼에서 웹 어플리케이션 서버의 구성을 구체적으로 설명하기 위한 도면이다.
도 4는 본 발명에 따른 웹 어플리케이션 서버에서의 메타데이터 캐시의 캐시 구성을 설명하기 위한 도면이다.
도 5는 본 발명의 SaaS 플랫폼에서 데이터베이스 서버의 구성을 구체적으로 설명하기 위한 도면이다.
도 6은 본 발명에 따른 데이터베이스 서버에서 메타데이터를 관리하기 위한 메타데이터 버전 관리 테이블의 구성을 설명하기 위한 도면이다.
도 7 및 도 8은 본 발명의 웹 어플리케이션 서버에서 사용자의 서비스 요청 시 메타데이터 캐시를 통해 서비스 요청을 처리하는 과정을 설명하기 위한 흐름도이다.
도 9는 본 발명의 데이터베이스 서버에서 웹 어플리케이션 서버로부터의 유효성 검사 요청에 따라 유효성 검사를 수행하는 과정을 설명하기 위한 흐름도이다.
도 10은 본 발명의 데이터베이스 서버에서 메타데이터 갱신 도구로부터의 메타데이터 갱신 요청에 따라 저장된 메타데이터를 갱신하는 과정을 설명하기 위한 흐름도이다.
도 11은 본 발명의 웹 어플리케이션 서버에서 주기적으로 메타데이터 캐시의 리스트 엔트리를 검사하여 접근되지 않는 리스트 엔트리를 제거하는 과정을 설명하기 위한 흐름도이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
도 1은 일반적인 SaaS 플랫폼의 구성을 설명하기 위한 도면이다.
일반적인 SaaS 플랫폼은 도 1에 도시한 바와 같이, 데이터베이스 서버(10)와 n 개의 웹 어플리케이션 서버(20a~20n)로 구성된다.
데이터베이스 서버(10)는 다수의 테넌트(tenant)를 지원하기 위해 각 테넌트 별로 유저 인터페이스, 워크 플로우, 데이터 스키마 정보 등의 정보를 메타데이터화하여 저장 및 관리한다.
그리고, 웹 어플리케이션 서버(20a~20n)는 테넌트 사용자 요청에 대해 해당 메타데이터를 읽어와 이를 해석하여 워크플로우를 실행하고, 필요한 데이터를 가져와서 사용자의 웹 유저 인터페이스(예컨대, 웹 페이지)로 넘겨주어 사용자가 요청한 서비스가 실행될 수 있도록 한다.
이때, 각 웹 어플리케이션 서버(20a~20n)는 데이터베이스 서버(10)에 있는 메타데이터를 캐싱(caching)하는 메타데이터 캐시(25a~25n)가 있다. 그래서 각각의 웹 어플리케이션 서버(20a~20n)는 테넌트 사용자의 서비스 요청을 처리하기 위하여 메타데이터를 네트워크를 통해 데이터베이스 서버(10)로부터 얻어옴으로 인해 발생하는 오버헤드 없이 해당 메타데이터를 읽을 수 있다.
도 2는 본 발명에 따른 SaaS 플랫폼에서 캐시 일관성을 유지시키는 방법을 설명하기 위한 도면이다.
본 발명에 따른 SaaS 플랫폼은 데이터베이스 서버(100)에서 메타데이터 갱신이 발생하는 경우, 일정 시간 이후에 이를 감지하여 갱신된 메타데이터를 다시 읽어와서 캐시 일관성을 유지하도록 한다.
도 2를 참조하면, 본 발명의 SaaS 플랫폼은 데이터베이스 서버(100)와 n 개의 웹 어플리케이션 서버(200a~200n)로 구성된다.
데이터베이스 서버(100)에 저장된 메타데이터는 메타데이터 갱신 도구(Customization Tool,300)를 통해 관리자에 의해 갱신될 수 있다. 메타데이터 갱신 도구(300)를 통해 갱신 요청을 수신한 메타데이터 서버(100)는 메타데이터 버전 관리 테이블(150)을 이용하여 메타데이터를 관리한다.
각각의 웹 어플리케이션 서버(200a~200b)는 정해진 주기로 메타데이터 캐시(250a~250n)에 있는 메타데이터의 버전과 데이터베이스(100)에 있는 해당 메타데이터의 버전을 비교한다. 그리고, 각 웹 어플리케이션 서버(200a~200b)는 자신 가지고 있는 메타데이터의 버전이 데이터베이스(100)에 있는 메타데이터의 버전과 다르다면, 데이터베이스(100)에 있는 최신 버전의 메타데이터를 가져와 메타데이터 캐시에 저장된 기존 메타데이터를 갱신하여 캐시 일관성을 유지시킨다.
도 3은 본 발명의 SaaS 플랫폼에서 웹 어플리케이션 서버의 구성을 구체적으로 설명하기 위한 도면이고, 도 4는 본 발명에 따른 웹 어플리케이션 서버에서의 메타데이터 캐시의 캐시 구성을 설명하기 위한 도면이다.
도 3을 참조하면, 본 발명의 웹 어플리케이션 서버(200)는 메타데이터 관리부(210), 통신부(220), 인터페이스부(230), 서비스 처리부(240), 및 메타데이터 캐시(250)를 구비한다.
메타데이터 관리부(210)는 주기적으로 메타데이터 캐시(250)의 리스트 엔트리를 검사하여 오랫동안 접근되지 않는 리스트 엔트리를 제거하는 역할을 수행한다.
그리고, 메타데이터 관리부(210)는 인터페이스부(230)를 통해 사용자로부터의 서비스 요청이 수신되면, 수신한 서비스 요청에 포함되어 있는 테넌트 식별자 및 서비스 식별자를 추출한다. 그리고 추출한 정보를 이용하여 그에 해당하는 유효한 메타데이터를 메타데이터 캐시(250)로부터 획득하고, 이를 서비스 처리부(240)에 전달하여 사용자에게 해당 서비스가 제공될 수 있도록 처리한다. 메타데이터 관리부(210)에서 유효한 메타데이터를 메타데이터 캐시(250)로부터 획득하는 구체적인 과정에 대해서는 도 7 및 도 8을 통해 보다 상세하게 설명하기로 한다.
통신부(220)는 네트워크를 통해 데이터베이스 서버(100)와 통신한다. 보다 상세하게는, 통신부(220)는 메타데이터 관리부(210)로부터의 요청에 따라 데이터베이스 서버(100)에 메타데이터에 대한 유효성 검사를 요청하고, 그에 따른 결과값을 데이터베이스 서버(100)로부터 수신하여 메타데이터 관리부(210)에 전달한다. 또한, 통신부(220)는 사용자에게 멀티테넌시를 지원하기 위해 필요한 메타데이터, 그 메타데이터와 관련된 최신버전번호 및 타임 아웃값 등을 데이터베이스 서버(100)로부터 수신한다.
인터페이스부(230)는 테넌트 사용자로부터 서비스 요청을 수신하고, 해당 서비스가 사용자에게 제공될 수 있도록 처리한다.
서비스 처리부(240)는 사용자로부터의 서비스 요청에 대하여 메타데이터 캐시(250)에 저장된 해당 서비스에 대한 메타데이터를 읽고 해석하여 서비스 요청을 처리한다.
한편, 멀티테넌시를 지원하는 SaaS 플랫폼에서의 메타데이터는 테넌트 별 그리고 서비스별 메타데이터로 구성되어 있다.
그래서 본 발명의 메타데이터 캐시(250)는, 도 4에 도시한 바와 같이, 테넌트 그리고 서비스 단위의 리스트 엔트리(260,290)로 구성된다. 그리고, 이들 전체는 리스트 헤드(252)를 시작으로 하는 리스트(list) 형태로 구성되어 있다.
각 리스트 엔트리(260,290)는 테넌트 식별자(테넌트 ID,261,291), 서비스 식별자(서비스 ID,262,292), 캐싱한 메타데이터의 버전번호(263,293), 가장 최근에 유효성 검사(버전 검사)를 수행한 시간인 타임 스탬프(264,294), 해당 메타데이터에 최근 접근한 시간(265,295), 그리고 실제 메타데이터(267,297)로 구성된다.
도 5는 본 발명의 SaaS 플랫폼에서 데이터베이스 서버의 구성을 구체적으로 설명하기 위한 도면이고, 도 6은 본 발명에 따른 데이터베이스 서버에서 메타데이터를 관리하기 위한 메타데이터 버전 관리 테이블의 구성을 설명하기 위한 도면이다.
도 5를 참조하면, 본 발명에 따른 데이터베이스 서버(100)는 통신부(110), 갱신 처리부(120), 유효성 검사부(130), 메타데이터 저장부(140), 및 메타데이터 버전 관리 테이블(150)을 구비한다.
통신부(110)는 네트워크를 통해 하나 이상의 웹 어플리케이션 서버(200)와 통신한다.
갱신 처리부(120)는 메타데이터 갱신 도구(300)로부터 메타데이터 갱신 요청이 수신되면, 그 요청에 포함된 테넌트 식별자 및 서비스 식별자 등을 이용하여 해당하는 메타데이터를 갱신하고, 메타데이터 버전 관리 테이블(150)에서 해당 메타데이터의 최신버전번호를 증가시킨다.
유효성 검사부(130)는 웹 어플리케이션 서버(200)로부터 특정 메타데이터에 대한 유효성 검사(버전 검사) 요청이 수신되면, 수신한 요청에 포함된 테넌트 식별자, 서비스 식별자, 버전번호 등을 이용하여 해당 메타데이터의 유효성을 검사하고, 그에 대한 결과값을 생성하여 통신부(110)를 통해 웹 어플리케이션 서버(200)로 전송되도록 처리한다.
메타데이터 저장부(140)는 테넌트별 그리고 서비스별 메타데이터를 저장한다.
본 발명은 타임 아웃값에 기반하여 주기적으로 캐시 일관성을 유지한다. 여기서 타임 아웃값(또는 리스 허용 기간)은 정해진 시간 동안만 해당 메타데이터가 유효함을 나타내며, 테넌트별 그리고 서비스별로 관리된다. 이를 위해 데이터베이스 서버(100)에서는 도 6과 같은 구조를 갖는 메타데이터 버전 관리 테이블(150)을 이용하여 시간 기반으로 캐시 일관성을 유지한다.
메타데이터 버전 관리 테이블(150)은 테넌트 식별자(테넌트 ID,162,172,182), 서비스 식별자(서비스 ID,412,422,432), 해당 메타데이터의 최신 버전 번호(166,176,186), 및 타임 아웃값(160,170,180)으로 구성되어 있다.
도 7 및 도 8은 본 발명의 웹 어플리케이션 서버에서 사용자의 서비스 요청 시 메타데이터 캐시를 통해 서비스 요청을 처리하는 과정을 설명하기 위한 흐름도이다.
도 7 및 도 8을 참조하면, 본 발명의 웹 어플리케이션 서버가 테넌트 사용자로부터 특정 서비스에 대한 요청을 수신하면(S100), 웹 어플리케이션 서버는 수신한 서비스 요청에 포함되어 있는 소속 테넌트 식별자 및 사용할 서비스에 대한 서비스 식별자를 추출한다(S105). 그리고 메타데이터 캐시에 대한 타임 아웃값을 획득한다(S110).
다음으로, 웹 어플리케이션 서버는 사용자로부터의 서비스 요청을 처리하기 위해 다음과 같은 과정을 수행한다.
S105단계를 통해 추출된 테넌트 식별자 및 서비스 식별자에 대응하는 메타데이터를 획득하기 위해 리스트 헤드를 획득하고(S115), 획득한 리스트 헤드를 시작으로 첫번째 리스트 엔트리에 기록된 테넌트 식별자와 서비스 식별자를 비교하여 일치하는 지를 판단한다(S120,S125).
S125 단계의 판단 결과, S105단계를 통해 추출된 테넌트 식별자 및 서비스 식별자와 해당 리스트 엔트리의 테넌트 식별자 및 서비스 식별자가 동일하지 않으면, 다음 리스트 엔트리를 획득하여 다시 비교한다(S130).
한편, S125 단계의 판단 결과, S105단계를 통해 추출된 테넌트 식별자 및 서비스 식별자와 리스트 엔트리의 테넌트 식별자 및 서비스 식별자가 동일하면, 현재시간에서 해당 리스트의 타임 스탬프값을 뺀 결과값이 해당 리스트 엔트리의 타임 아웃값 보다 작은지를 판단한다(S135).
S135 단계의 판단 결과, [현재시간-타임 스탬프]값이 해당 리스트 엔트리의 타임 아웃값 보다 작으면(즉, 해당 리스트 엔트리가 유효하다고 판단되면), 해당 리스트 엔트리로부터 메타데이터를 추출한다(S180).
그리고, 해당 리스트 엔트리에 기록되어 있는 최근접근시간을 현재시간으로 갱신하고(S180), 추출한 메타데이터를 해석하여 사용자 서비스를 처리한다.
한편, S135 단계의 판단 결과, [현재시간-타임 스탬프]값이 해당 리스트 엔트리의 타임 아웃값 보다 작지 않으면(즉, 해당 리스트 엔트리가 유효하지 않다고 판단되면), 해당 리스트 엔트리의 테넌트 식별자, 서비스 식별자, 및 버전번호를 가지고 데이터베이스 서버에 유효성 검사를 요청한다(S140).
다음으로, 웹 어플리케이션 서버는 S140 단계에서의 요청에 따라 데이터베이스 서버로부터 유효성 검사의 성공 또는 실패여부를 나타내는 결과값을 수신한다(S145).
데이터베이스 서버로부터 수신한 결과값이 성공을 나타내면, 해당 엔트리의 타임 스탬프값을 갱신하고, 전술한 S180 단계로 이동한다.
그러나, 데이터베이스 서버로부터 수신한 결과값이 실패를 나타내면, S105단계를 통해 추출된 테넌트 식별자 및 서비스 식별자에 대한 메타데이터와 최신버전번호를 획득하고(S155), 획득한 메타데이터와 최신버전번호를 이용하여 해당 리스트 엔트리를 갱신하고(S160), 전술한 S180 단계로 이동한다.
한편, S120 단계의 판단 결과, 메타데이터 캐시에 리스트 엔트리가 존재하지 않는 경우에는, S160 단계로 이동하여 새로운 리스트 엔트리를 생성한다(S160).
그리고, 생성된 리스트 엔트리에 S105단계를 통해 추출된 테넌트 식별자 및 서비스 식별자를 부여하고(S165), 해당 테넌트 식별자 및 서비스 식별자에 대응하는 메타데이터를 데이터베이스 서버에 요청한다. 상기 요청에 따라 데이터베이스 서버로부터 메타데이터를 수신하면, 수신한 메타데이터를 이용하여 새로 생성한 리스트 엔트리값을 설정하고, 이렇게 설정된 리스트 엔트리를 리스트 헤드에 추가한 다음(S170), 해당 리스트 엔트리의 버전번호를 초기 번호(예컨대, '0')로 설정한다.
도 9는 본 발명의 데이터베이스 서버에서 웹 어플리케이션 서버로부터의 유효성 검사 요청에 따라 유효성 검사를 수행하는 과정을 설명하기 위한 흐름도이다.
도 9를 참조하면, 본 발명의 데이터베이스 서버가 웹 어플리케이션 서버로부터 유효성 검사 요청을 수신하면 다음과 같은 과정을 수행한다(S200).
데이터베이스 서버는, S200 단계에서 수신한 유효성 검사 요청에 포함되어 있는 테넌트 식별자, 서비스 식별자, 및 버전번호를 추출한다(S205).
그리고, S205 단계에서 추출한 테넌트 식별자 및 서비스 식별자를 이용하여 메타데이터 버전 관리 테이블로부터 해당 메타데이터에 대한 최신버전번호를 추출한다(S210).
다음으로, S205 단계에서 추출한 버전번호와 S210 단계에서 추출한 최신버전번호를 비교하여 동일한지 여부를 판단한다(S215).
S215 단계의 판단 결과, 두 번호가 서로 동일하면, 결과값을 성공(예컨대,'0')으로 설정하고, 결과값 및 최신버전번호를 해당 웹 어플리케이션 서버로 전송한다(S220).
S215 단계의 판단 결과, 두 번호가 서로 동일하지 않은 경우에는, 결과값을 실패(예컨대, '-1')로 설정하고, S205 단계에서 추출한 테넌트 식별자 및 서비스 식별자에 대응하는 메타데이터를 메타데이터 저장부로부터 추출한다(S235).
그리고, 데이터베이스 서버는 유효성 검사 실패를 알리는 결과값, 최신버전번호, 타임 아웃값, 및 S235 단계에서 추출한 메타데이터를 해당 웹 어플리케이션 서버로 전송한다(S240).
도 10은 본 발명의 데이터베이스 서버에서 메타데이터 갱신 도구로부터의 메타데이터 갱신 요청에 따라 저장된 메타데이터를 갱신하는 과정을 설명하기 위한 흐름도이다.
도 10을 참조하면, 본 발명의 데이터베이스 서버가 메타데이터 갱신 도구로부터 메타데이터 갱신 요청을 수신하면(S300), 데이터베이스 서버는 갱신 요청에 포함되어 있는 터넨트 식별자 및 서비스 식별자를 추출한다(S305).
그리고, 메타데이터 갱신 도구를 통해 수신한 변경된 메타데이터를 이용하여 해당 메타데이터를 갱신하고(S310), 메타데이터 버전 관리 테이블에 기록된 해당 메타데이터의 버전번호를 증가시킨다(S315).
도 11은 본 발명의 웹 어플리케이션 서버에서 주기적으로 메타데이터 캐시의 리스트 엔트리를 검사하여 접근되지 않는 리스트 엔트리를 제거하는 과정을 설명하기 위한 흐름도이다.
더 이상 접근되지 않는 리스트 엔트리는 한정된 메타데이터 캐시의 자원을 불필요하게 점유한다. 본 발명에서는 이러한 문제점을 해결하기 위해 주기적으로 메타데이터 캐시의 리스트 엔트리를 검사하여 오랫동안 접근되지 않은 리스트 엔트리를 제거한다.
도 11을 참조하면, 본 발명의 웹 어플리케이션 서버 저장수단에 저장되어 있는 실행 주기값 및 캐시유지기간 설정값을 추출한다(S400,S405).
그리고, 서버의 동작이 중단되었는지를 판단하여 그렇지 않다면, 메타데이터 캐시의 리스트 헤드를 추출하고(S415), 추출한 리스트 헤드에 리스트 엔트리가 존재하는 지를 판단한다(S420).
S420 단계의 판단 결과, 리스트 엔트리가 존재하는 경우에는, 존재하는 리스트 엔트리 중 어느 하나의 리스트 엔트리(예컨대, 첫번째 리스트 엔트리)를 선택한다. 그리고, 해당 리스트 엔트리에 기록된 최근접근시간이 현재시간에서 캐시유지기간 설정값을 뺀 결과값 보다 작은지를 판단한다(S425).
S425 단계에서의 판단 결과, 최근접근시간이 [현재시간-캐시유지기간]값 보다 작으면, 해당 리스트 엔트리를 제거하고 S420 단계로 다시 이동하여 리스트 엔트리가 존재하는 지를 판단하다.
그러나, S425 단계에서의 판단 결과, 최근접근시간이 [현재시간-캐시유지기간]값 보다 작지 않으면, 해당 리스트 엔트리를 그대로 유지하며, S425 단계로 이동하여 다른 리스트 엔트리를 검사한다.
한편, S420 단계의 판단 결과, 리스트 헤드에 리스트 엔트리가 존재하지 않는 경우에는, 상기한 실행주기만큼 슬립(sleep)하고(S435), 그 시간이 경과하면 S410 단계로 이동하여 다시 리스트 엔트리 제거 여부를 판단한다.
전술한 바와 같은 본 발명에 의하면, SaaS 플랫폼에서 웹 어플리케이션 서버들의 메타데이터 캐시에 저장된 메타데이터와 데이터베이스에 저장된 메타데이터를 시간에 기반하여 일관성을 유지시켜줌으로써, 구현하기 용이한 방법으로 캐시 일관성으로 유지시켜줄 수가 있다. 또한, 웹 어플리케이션 서버의 하드웨어 또는 소프트웨어 장애와 네트워크 오류에도 갱신된 메타데이터를 반영해줄 수가 있다.
이상에서와 같이 도면과 명세서에서 최적의 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로, 본 기술 분야의 통상의 지식을 가진자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
100:데이터베이스 서버 110,220:통신부
120:갱신 처리부 130:유효성 검사부
140:메타데이터 저장부 150:메타데이터 버전 관리 테이블
200:웹 어플리케이션 서버 210:메타데이터 관리부
230:인터페이스부 240:서비스 처리부
250:메타데이터 캐시 300:메타데이터 갱신 도구

Claims (10)

  1. 메타데이터 캐시에 저장된 복수 개의 리스트 엔트리들 중에서 서비스 요청에 대응되는 리스트 엔트리가 존재하는지를 판단하는 단계;
    상기 서비스 요청에 대응되는 리스트 엔트리가 존재하면, 상기 리스트 엔트리의 타임 스탬프값 및 타임 아웃값을 이용하여 상기 리스트 엔트리가 유효한지를 판단하는 단계;
    상기 리스트 엔트리가 유효하지 않다고 판단되면, 데이터베이스 서버에 상기 리스트 엔트리의 유효성 검사를 요청하는 단계; 및
    상기 데이터베이스 서버로부터 수신되는 유효성 검사 결과에 따라 상기 리스트 엔트리를 갱신하는 단계를 포함하는 시간 기반 메타데이터 캐시 일관성 제어 방법.
  2. 청구항 1에 있어서,
    상기 리스트 엔트리를 갱신하는 단계는
    상기 유효성 검사 결과가 성공을 나타내면, 상기 리스트 엔트리의 타임 스탬프값을 갱신하는 단계; 및
    상기 유효성 검사 결과가 실패를 나타내면, 상기 데이터베이스 서버로부터 최신버전의 메타데이터를 획득하여 상기 리스트 엔트리를 갱신하는 단계를 포함하는 시간 기반 메타데이터 캐시 일관성 제어 방법.
  3. 청구항 2에 있어서,
    상기 유효성 검사를 요청하는 단계는
    상기 리스트 엔트리의 테넌트 식별자, 서비스 식별자, 및 버전정보를 이용하여 상기 데이터베이스 서버에 상기 리스트 엔트리의 유효성 검사를 요청하는 시간 기반 메타데이터 캐시 일관성 제어 방법.
  4. 청구항 1에 있어서,
    상기 리스트 엔트리가 유효한지를 판단하는 단계는
    현재시간에서 상기 리스트 엔트리의 타임 스탬프값을 뺀 결과값을 상기 리스트 엔트리의 타임 아웃값과 비교하여 상기 리스트 엔트리가 유효한지를 판단하는 시간 기반 메타데이터 캐시 일관성 제어 방법.
  5. 청구항 1에 있어서,
    상기 서비스 요청에 대응되는 리스트 엔트리가 존재하는지를 판단하는 단계는
    상기 복수 개의 리스트 엔트리들 중에서 상기 서비스 요청에 포함된 테넌트 식별자와 서비스 식별자에 대응되는 리스트 엔트리가 존재하는지를 판단하는 시간 기반 메타데이터 캐시 일관성 제어 방법.
  6. 청구항 5에 있어서,
    상기 서비스 요청에 대응되는 리스트 엔트리가 존재하지 않으면, 상기 데이터베이스 서버로부터 상기 테넌트 식별자와 상기 서비스 식별자에 대응되는 메타데이터를 수신하여 상기 메타데이터를 포함하는 리스트 엔트리를 생성하는 단계를 더 포함하는 시간 기반 메타데이터 캐시 일관성 제어 방법.
  7. 복수 개의 메타데이터들 각각의 테넌트 식별자, 서비스 식별자, 최신 버전 번호 및 타임 아웃값으로 구성되는 메타데이터 버전 관리 테이블을 포함하는 데이터베이스 서버에 저장된 상기 복수 개의 메타데이터들을 캐싱(caching)하며, 캐싱된 메타데이터, 상기 캐싱된 메타데이터에 대한 테넌트 식별자, 서비스 식별자, 버전 번호, 타임 스탬프, 및 타임 아웃값을 포함하는 리스트 엔트리를 구성하여 복수 개의 리스트 엔트리들을 저장하는 메타데이터 캐시;
    서비스 요청이 수신되면, 상기 메타데이터 캐시로부터 상기 서비스 요청에 대응되는 유효한 메타데이터를 획득하는 메타데이터 관리부; 및
    상기 유효한 메타데이터를 읽고 해석하여 상기 서비스 요청을 처리하는 서비스 처리부를 포함하는 웹 어플리케이션 서버.
  8. 청구항 7에 있어서,
    상기 메타데이터 캐시는
    상기 메타데이터 버전 관리 테이블을 이용하여 상기 리스트 엔트리에 포함된 버전 번호를 상기 캐싱된 메타데이터의 최신 버전 번호와 비교하고, 상기 리스트 엔트리에 포함된 버전 번호가 상기 캐싱된 메타데이터의 최신 버전 번호와 다르면 상기 데이터베이스 서버에서 상기 캐싱된 메타데이터에 대응되는 최신 버전의 메타데이터를 가져와 상기 캐싱된 메타데이터를 갱신하는 웹 어플리케이션 서버.
  9. 청구항 7에 있어서,
    상기 메타데이터 관리부는
    상기 서비스 요청에 대응되는 상기 캐싱된 메타데이터가 유효한지를 판단하고, 상기 캐싱된 메타데이터가 유효하지 않으면 상기 데이터베이스 서버로 상기 캐싱된 메타데이터의 유효성 검사를 요청하는 웹 어플리케이션 서버.
  10. 청구항 9에 있어서,
    상기 메타데이터 관리부는
    상기 리스트 엔트리에 포함된 타임 스탬프, 및 타임 아웃값을 이용하여 상기 캐싱된 메타데이터가 유효한지를 판단하는 웹 어플리케이션 서버.
KR1020100024308A 2009-12-18 2010-03-18 시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법 KR101231135B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20090126726 2009-12-18
KR1020090126726 2009-12-18

Publications (2)

Publication Number Publication Date
KR20110070667A KR20110070667A (ko) 2011-06-24
KR101231135B1 true KR101231135B1 (ko) 2013-02-15

Family

ID=44402145

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100024308A KR101231135B1 (ko) 2009-12-18 2010-03-18 시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101231135B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070061120A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법
KR20080068687A (ko) * 2005-10-03 2008-07-23 아마데우스 에스.에이.에스. 대용량 데이터베이스와 인터페이스하기 위한 다 계층소프트웨어 시스템에서 캐쉬 콘텐츠의 일관성을 유지하는시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080068687A (ko) * 2005-10-03 2008-07-23 아마데우스 에스.에이.에스. 대용량 데이터베이스와 인터페이스하기 위한 다 계층소프트웨어 시스템에서 캐쉬 콘텐츠의 일관성을 유지하는시스템 및 방법
KR20070061120A (ko) * 2005-12-08 2007-06-13 한국전자통신연구원 객체 기반 스토리지 시스템에서 사용자 파일 관리자 내의시간 기반 캐쉬 일관성 유지 시스템 및 방법

Also Published As

Publication number Publication date
KR20110070667A (ko) 2011-06-24

Similar Documents

Publication Publication Date Title
US10536523B2 (en) File service using a shared file access-rest interface
US8832130B2 (en) System and method for implementing on demand cloud database
US9697253B2 (en) Consistent client-side cache
CN110046133B (zh) 一种存储文件系统的元数据管理方法、装置及系统
US20130036136A1 (en) Transaction processing system, method and program
US20070245311A1 (en) Mirrored file system
KR20080106431A (ko) 기업 자원 계획 시스템 내에서의 동시성 제어 방법, 컴퓨터판독가능 매체 및 컴퓨터
CN108363641B (zh) 一种主备机数据传递方法、控制节点以及数据库系统
WO2013041055A1 (en) Improving database caching utilizing asynchronous log-based replication
KR20110128846A (ko) 장치와 웹 서비스 간에 브라우저 캐시를 동기화하는 프로그래밍 모델
CN111475519B (zh) 数据缓存方法及装置
CN106777085A (zh) 一种数据处理方法、装置及数据查询系统
JP6134390B2 (ja) 動的ファームウェア更新
JP2011242949A (ja) ファイル管理プログラム、ファイル管理方法、及び情報処理装置
CN111858677A (zh) 本地缓存数据访问方法、装置、设备及存储介质
CN104133783A (zh) 处理分散式缓存数据的方法和装置
US20090165011A1 (en) Resource management method, information processing system, information processing apparatus, and program
JP2012146083A (ja) セッション管理システム、セッション管理装置、サーバ装置およびセッション管理方法
CN110275793B (zh) 一种用于MongoDB数据分片集群的检测方法及设备
US7287144B2 (en) Hit ratio estimation device, hit ratio estimation method, hit ratio estimation program and recording medium
US8266634B2 (en) Resource assignment system with recovery notification
US9317432B2 (en) Methods and systems for consistently replicating data
Elver et al. RC3: Consistency directed cache coherence for x86-64 with RC extensions
US20230376470A1 (en) Moving Window Data Deduplication in Distributed Storage
KR101231135B1 (ko) 시간 기반 메타데이터 캐시 일관성 제어 시스템 및 그 방법

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: 20160121

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190131

Year of fee payment: 7