KR20110064486A - System for controlling consistency of metadata cache in saas platform capable of providing multi-tenancy and method thereof - Google Patents
System for controlling consistency of metadata cache in saas platform capable of providing multi-tenancy and method thereof Download PDFInfo
- Publication number
- KR20110064486A KR20110064486A KR1020090121125A KR20090121125A KR20110064486A KR 20110064486 A KR20110064486 A KR 20110064486A KR 1020090121125 A KR1020090121125 A KR 1020090121125A KR 20090121125 A KR20090121125 A KR 20090121125A KR 20110064486 A KR20110064486 A KR 20110064486A
- Authority
- KR
- South Korea
- Prior art keywords
- metadata
- web application
- application server
- cache
- database
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 멀티테넌시(multi-tenancy)를 지원하는 SaaS 플랫폼(platform)에 관한 것으로, 특히 데이터베이스(data base)에 저장된 메타데이터(meta data)를 통해 멀티테넌시를 지원하는 SaaS 플랫폼에서 성능 향상을 위해 여러 웹 어플리케이션 서버(web application server)에 메타데이터 캐시(cache)를 두는 경우 데이터베이스와 메타데이터 캐시간 데이터의 일관성을 유지시킬 수 있도록 하는 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법에 관한 것이다.The present invention relates to a SaaS platform that supports multi-tenancy, and in particular, to improve performance in a SaaS platform that supports multi-tenancy through metadata stored in a database. Consistency of metadata caches on SaaS platforms that support multi-tenancy to ensure that the database and metadata cache data are consistent when metadata caches are placed on multiple web application servers. It relates to a control method.
본 발명은 지식경제부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2009-S-033-01, 과제명: 중소기업 SW 서비스를 위한 SaaS 플랫폼 개발].The present invention is derived from a study conducted as part of the IT growth engine technology development project of the Ministry of Knowledge Economy [Task management number: 2009-S-033-01, Task name: Development of SaaS platform for SME SW service].
멀티테넌시를 지원하는 SaaS 플랫폼은 SaaS 서비스에 대해 테넌트(tenant)별 커스트마이즈(customize)를 지원하기 위해, 사용자 인터페이스(interface)를 위한 웹 유저인터페이스(web user interface), 서비스 처리를 위한 워크 플로우(work flow), 그리고 서비스에 정의된 데이터 구조를 위한 데이터 스키마(data schema) 정보를 모두 메타데이터 형태로 데이터베이스에 저장 및 관리한다. 이를 통해 테넌트별 사용자의 서비스 요청에 대해 메타데이터로부터 읽고 해석하여 해당 워크플로우를 실행하고, 필요한 데이터를 가져와서, 사용자 웹 유저인터페이스 (즉, 웹 페이지)를 넘겨준다.The SaaS platform that supports multi-tenancy supports tenant-specific customization of SaaS services, a web user interface for the user interface, and a workflow for service processing. (work flow) and data schema information for the data structure defined in the service are all stored and managed in the database in the form of metadata. It reads and interprets metadata from tenant users' service requests, executes the corresponding workflow, imports the necessary data, and passes the user web user interface (ie, web page).
SaaS 플랫폼은 사용자 요청을 처리하기 위해서는 양이 적고 갱신이 거의 없는 메타데이터를 매번 네트워크(network)를 통해 데이터베이스로부터 읽어 와야 한다. 그래서 메타데이터를 웹 어플리케이션 캐시(web application cache)에 둠으로써, 네트워크를 통해 데이터베이스에 접근하지 않고 필요한 메타데이터를 캐시에서 가져와서 처리할 수 있다. To handle user requests, the SaaS platform needs to read metadata from the database each time over a network with small amounts and few updates. So by putting metadata in a web application cache, you can retrieve and process the necessary metadata from the cache without accessing the database over the network.
도 1은 종래 일반적인 SaaS 플랫폼 시스템의 구성을 도시한 것으로, SaaS 플랫폼 시스템은 n개의 웹 어플리케이션 서버(100, 101, 102), 데이터베이스(120)로 구성되어 있으며, 각 웹 어플리케이션 서버(100, 101, 102)는 데이터베이스(120)에 있는 메타데이터를 캐시하기 위하여 메타데이터 캐시(110, 111, 112)를 구비한다. FIG. 1 illustrates a configuration of a conventional SaaS platform system. A SaaS platform system includes n
위 도 1에서 보여지는 바와 같이 종래 웹 어플리케이션 서버(100, 101, 102)는 메타데이터 캐시(110, 111, 112)를 이용하여 사용자 요청을 처리 시마다 메타데이터를 네트워크를 통해 데이터베이스(120)로부터 얻어오는 오버헤드(overhead) 없이 웹 어플리케이션 서버(100, 101, 102)에 구비된 메타데이터 캐시(110, 111, 112)에서 메타데이터를 읽어와서 처리할 수 있다.As shown in FIG. 1, the conventional
그러나, 메타데이터 캐시를 구비하는 웹 어플리케이션 서버와 메타데이터를 저장하고 있는 데이터 베이스로 구성되는 종래 SaaS 플랫폼 시스템에서는 데이터베이스에 있는 메타데이터가 테넌트 관리자(customization tool)에 의해 커스트마이즈 결과로 변경이 되는 경우 데이터베이스의 변경된 메타데이터와 웹 어플리케이션 서버에 구비되는 메타데이터 캐시에 저장된 메타데이터간에 데이터 불일치가 발생하는 문제점이 있었다.However, in the conventional SaaS platform system including a web application server having a metadata cache and a database storing metadata, when the metadata in the database is changed as a result of customization by a tenant administrator (customization tool). There is a problem in that data inconsistency occurs between changed metadata of a database and metadata stored in a metadata cache provided in a web application server.
따라서, 본 발명은 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 데이터베이스에 메타데이터 캐시를 추적 관리할 수 있는 메타데이터 캐시 추적 리스트와 리스 설정 데이터 테이블을 구현하고, 메타데이터의 변경 시 해당되는 웹 어플리케이션 서버를 추적하여 메타데이터의 변경 사항이 해당 웹 어플리케이션의 메타데이터 캐시에 반영되도록 함으로서 메타데이터 캐시의 일관성이 유지되도록 하는 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법을 제공하고자 한다.Accordingly, the present invention provides a method for controlling the consistency of a metadata cache in a SaaS platform supporting multi-tenancy, and implements a metadata cache trace list and a lease configuration data table for tracking and managing a metadata cache in a database. Of the metadata cache on the SaaS platform that supports multi-tenancy that keeps the metadata cache consistent by tracking the web application server when the change is made and reflecting the metadata changes in the metadata cache of the web application. We want to provide a consistency control method.
상술한 본 발명은 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 시스템으로서, 메타데이터 캐시를 구비하는 웹 어플리케이션 서버와, 상기 메타데이터 캐시에 저장되는 메타데이터의 변경이 있는 경우 상기 변경 요청된 메타데이터의 이전 버전 메타데이터를 가지고 있는 상기 웹 어플리케이션을 추적하고, 상기 웹 어플리케션 서버로 상기 변경된 메타데이터를 전송하여 상기 메터데이터 캐시를 갱신시키는 데이터베이스를 포함한다.The present invention described above is a system for controlling consistency of a metadata cache in a SaaS platform supporting multi-tenancy, and includes a web application server including a metadata cache and a change in metadata stored in the metadata cache. And a database that tracks the web application having previous version metadata of the requested metadata and sends the modified metadata to the web application server to update the metadata cache.
또한, 상기 데이터베이스는, 상기 웹 어플리케이션 서버의 메타데이터 갱신 여부를 추적하기 위한 메타데이터 캐시 서버 추적 리스트를 구비하는 것을 특징으로 한다.The database may include a metadata cache server tracking list for tracking whether the web application server has updated the metadata.
또한, 상기 메타데이터 캐시 서버 추적 리스트는, 상기 웹 어플리케이션 서버의 IP 주소 정보와, 메타데이터 버전 번호 정보와 상기 메타데이터를 획득한 리스 획득 시간 정보를 포함하는 것을 특징으로 한다.The metadata cache server tracking list may include IP address information of the web application server, metadata version number information, and lease acquisition time information obtained from the metadata.
또한, 상기 데이터베이스는, 상기 웹 어플리케이션 서버로 제공하는 메타데이터에 대해 상기 메타데이터가 유효한지를 보증하는 리스 유효 시간을 설정하여, 상기 리스 유효 시간 경과 시마다 상기 웹 어플리케이션 서버가 상기 메타데이터에 대한 리스 연장 요청을 통해 상기 메타데이터의 갱신을 수행하도록 하는 것을 특징으로 한다.In addition, the database sets a lease validity time for ensuring that the metadata is valid for metadata provided to the web application server, and the web application server extends a lease for the metadata every time the lease validity time elapses. The metadata may be updated by request.
또한, 상기 데이터베이스는, 상기 웹 어플리케이션 서버로부터 상기 메타데이터 캐시에 대한 갱신 요청을 수신하는 경우, 상기 갱신 요청된 테넌트 식별자와 서비스 식별자에 대한 메타데이터를 검색하여 변경된 메타데이터를 상기 웹 어플리케이션 서버로 전송하는 것을 특징으로 한다.In addition, when receiving the update request for the metadata cache from the web application server, the database retrieves the metadata for the updated tenant identifier and service identifier and transmits the changed metadata to the web application server. Characterized in that.
또한, 상기 데이터베이스는, 상기 메타데이터의 갱신 수행 시 상기 웹 어플리케이션 서버로 전송한 메타데이터의 리스 획득 시간을 상기 메타데이터를 상기 웹 어플리케이션 서버로 전송하는 시간으로 변경하는 것을 특징으로 한다.The database may change the lease acquisition time of the metadata transmitted to the web application server to a time for transmitting the metadata to the web application server when the metadata is updated.
또한, 상기 데이터베이스는, 상기 메타데이터 캐시에 대한 갱신 요청 수신 시, 상기 갱신 요청된 테넌트 식별자와 서비스 식별자에 대한 메타데이터를 검색되지 않는 경우, 상기 테넌트 식별자와 서비스 식별자에 대해 새로운 리스트 엔트리를 구성하고 메타데이터를 생성하여 제공하는 것을 특징으로 한다.The database may further configure a new list entry for the tenant identifier and the service identifier when the metadata for the updated tenant identifier and the service identifier is not retrieved when the update request for the metadata cache is received. Characterized by generating and providing the metadata.
또한, 상기 데이터베이스는, 상기 웹 어플리케이션 서버로의 메타데이터 갱신 요청이 실패되는 경우, 상기 메타데이터 갱신 요청의 실패를 로그 정보를 기록하는 것을 특징으로 한다.In addition, the database, when the metadata update request to the web application server fails, characterized in that for recording the log information of the failure of the metadata update request.
또한, 상기 웹 어플리케이션 서버는, 상기 데이터베이스로부터 상기 변경된 메타데이터를 전송 받는 경우, 상기 메타데이터 캐시에서 상기 변경된 메타데이터에 해당하는 리스트 엔트리를 검색하여 상기 리스트 엔트리내 메타데이터 필드에 저장된 메타데이터를 상기 변경된 메타데이터로 갱신시키는 것을 특징으로 한다.In addition, when the web application server receives the changed metadata from the database, the web application server searches for a list entry corresponding to the changed metadata in the metadata cache and stores the metadata stored in the metadata field in the list entry. And updating the changed metadata.
또한, 상기 웹 어플리케이션 서버는, 상기 변경된 메타데이터를 전송 받아, 상기 메타데이터의 갱신 시 상기 리스트 엔트리내 리스 획득 시간을 상기 메타데이터의 갱신이 수행된 시간으로 갱신시키는 것을 특징으로 한다.The web application server may receive the changed metadata, and update the lease acquisition time in the list entry to the time at which the metadata is updated when the metadata is updated.
또한, 상기 웹 어플리케이션 서버는, 상기 메타데이터 캐시내 각 테넌트별 리스트 엔트리내 메타데이터에 대한 리스 유효 시간 정보를 구비하여 상기 리스 유효 시간이 만료되는 리스트 엔트리의 메타데이터에 대해서는 상기 데이터베이스로 상기 메타데이터에 대한 리스 연장 요청을 수행하여 상기 메타데이터 캐시의 갱신을 수행하는 것을 특징으로 한다.The web application server may also have lease valid time information for metadata in list entries for each tenant in the metadata cache, and the metadata may be stored in the database for metadata of list entries for which the lease valid time expires. And updating the metadata cache by performing a lease extension request.
또한, 상기 웹 어플리케이션 서버는, 상기 메타데이터 캐시내 각 테넌트별 리스트 엔트리에 저장된 메타데이터에 대한 최종 접속 시간을 검사하여 최종 접속 시간으로부터 경과된 시간이 미리 설정된 타임아웃시간을 초과하는 경우 해당 메타데이터를 상기 메타데이터 캐시에서 삭제시키는 것을 특징으로 한다.In addition, the web application server checks the last access time for the metadata stored in the list entry for each tenant in the metadata cache, and if the elapsed time from the last access time exceeds the preset timeout time, the corresponding metadata It is characterized in that to delete from the metadata cache.
또한, 본 발명은 웹 어플리케이션 서버와 데이터베이스를 포함하는 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 상기 데이터베이스에서 상기 웹 어플리케이션 서버로 리스 기반의 메타데이터를 제공하는 단계와, 상기 데이터베이스에서 상기 웹 어플리케이션 서버의 메타데이터 캐시내 저장되는 상기 메타데이터에 대한 변경이 발생하는지 검사하는 단계와, 상기 메타데이터에 대한 변경이 발생하는 경우 상기 변경이 발생한 메타데이터를 가지고 있는 상기 웹 어플리케이션 서버를 추적하는 단계와, 상기 추적된 웹 어플리케이션 서버로 상기 변경이 발생한 메타데이터를 전송하여 상기 메타데이터 캐시를 갱신시키는 단계를 포함한다.In addition, the present invention provides a method for controlling the consistency of a metadata cache in a SaaS platform that supports multi-tenancy including a web application server and a database, the method comprising: providing lease-based metadata from the database to the web application server; Checking if a change to the metadata stored in the metadata cache of the web application server occurs in the database; and if the change occurs to the metadata, the web application having the changed metadata. Tracking a server, and updating the metadata cache by sending the changed metadata to the tracked web application server.
또한, 상기 메타데이터 캐시의 갱신단계 이후, 상기 웹 어플리케이션 서버에서 상기 메타데이터의 리스 획득 시간을 상기 메타데이터가 수신된 시간으로 변경시키는 단계를 더 포함하는 것을 특징으로 한다. The method may further include changing, by the web application server, the lease acquisition time of the metadata to the time at which the metadata is received after the updating of the metadata cache.
또한, 상기 웹 어플리케이션 서버는, 상기 리스 기반의 메타데이터내 리스 유효 시간이 만료되는 경우 상기 데이터베이스로 해당 메타데이터의 리스 유효 시간 연장을 요청하는 것을 특징으로 한다.In addition, when the lease valid time in the lease-based metadata expires, the web application server requests the database to extend the lease valid time of the corresponding metadata.
또한, 본 발명은 웹 어플리케이션 서버와 데이터베이스를 포함하는 멀티테넌 시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 상기 웹 어플리케이션 서버로부터 메타데이터 캐시에 대한 갱신 요청을 수신하는 단계와,The present invention also provides a method for controlling the consistency of a metadata cache in a SaaS platform that supports a multi-tenancy including a web application server and a database, the method comprising: receiving an update request for a metadata cache from the web application server;
상기 데이터베이스에서 상기 갱신 요청된 메타데이터에 대한 테넌트 식별자와 서비스 식별자를 읽어오는 단계와, 상기 웹 어플리케이션 서버별 관리되는 메타데이터 캐시 서버 추적 리스트에서 상기 테넌트 식별자와 서비스 식별자에 대응되는 메타데이터를 검색하는 단계와, 상기 검색된 메타데이터를 상기 웹 어플리케이션 서버로 전송하여 상기 메타데이터 캐시의 갱신을 수행하는 단계를 포함한다.Reading a tenant identifier and a service identifier for the updated requested metadata from the database, and searching for metadata corresponding to the tenant identifier and a service identifier in the managed metadata cache server tracking list for each web application server; And transmitting the retrieved metadata to the web application server to update the metadata cache.
또한, 상기 메타데이터 캐시 서버 추적 리스트는, 상기 웹 어플리케이션 서버의 IP 주소 정보와, 메타데이터 버전 번호 정보와 상기 메타데이터를 획득한 리스 획득 시간 정보를 포함하는 것을 특징으로 한다.The metadata cache server tracking list may include IP address information of the web application server, metadata version number information, and lease acquisition time information obtained from the metadata.
또한, 상기 메타데이터 캐시의 갱신을 수행한 이후, 상기 데이터베이스에서 상기 메타데이터의 리스 획득 시간을 상기 메타데이터가 상기 웹 어플리케이션 서버로 전송된 시간으로 변경시키는 단계를 더 포함하는 것을 특징으로 한다.The method may further include, after updating the metadata cache, changing the lease acquisition time of the metadata in the database to a time when the metadata is transmitted to the web application server.
또한, 본 발명은 웹 어플리케이션 서버와 데이터베이스를 포함하는 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 외부로부터 상기 웹 어플리케이션 서버의 메타데이터 캐시에 대한 갱신 요청을 수신하는 단계와, 상기 데이터베이스에서 상기 갱신 요청된 메타데이터에 대한 테넌트 식별자와 서비스 식별자 및 해당 웹 어플리케이션 IP 주소를 읽어오는 단계와, 상기 웹 어플리케이션 서버별 관리되는 메타데이터 캐시 서버 추적 리스트에서 상기 테 넌트 식별자와 서비스 식별자에 대응되는 메타데이터를 검색하는 단계와, 상기 검색된 메타데이터를 상기 IP 주소에 대응되는 해당 웹 어플리케이션 서버로 전송하여 상기 메타데이터 캐시의 갱신을 수행하는 단계를 포함한다.The present invention also provides a method for controlling the consistency of a metadata cache in a SaaS platform that supports multi-tenancy including a web application server and a database, the method comprising: receiving an update request for the metadata cache of the web application server from an external source; Reading a tenant identifier and service identifier for the updated requested metadata from the database, and a corresponding web application IP address; and the tenant identifier and service identifier in the managed metadata cache server tracking list for each web application server. Retrieving the metadata corresponding to the and transmitting the retrieved metadata to a corresponding web application server corresponding to the IP address to update the metadata cache.
또한, 본 발명은 웹 어플리케이션 서버와 데이터베이스를 포함하는 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 상기 웹 어플리케이션 서버에서 메타데이터 캐시내 저장된 메타데이터별 최종 접속 시간을 검사하는 단계와, 상기 메타데이터별 최종 접속 시간으로부터 현재 시간까지 경과된 경과시간을 검사하는 단계와, 상기 경과 시간이 미리 설정된 일정 타인아웃 시간을 초과하는 경우 해당 메타데이터를 상기 메타데이터 캐시에서 삭제시키는 단계를 포함한다.In addition, the present invention is a method of controlling the consistency of the metadata cache in a SaaS platform that supports multi-tenancy including a web application server and a database, the web application server to check the last access time for each metadata stored in the metadata cache Checking the elapsed time that elapsed from the last access time for each metadata to the current time; and deleting the corresponding metadata from the metadata cache when the elapsed time exceeds a preset predetermined tine out time. It includes.
본 발명에서는 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 데이터베이스에 메타데이터 캐시를 추적 관리할 수 있는 메타데이터 캐시 추적 리스트와 리스 설정 데이터 테이블을 구현하고, 메타데이터의 변경 시 해당되는 웹 어플리케이션 서버를 추적하여 메타데이터의 변경 사항이 해당 웹 어플리케이션의 메타데이터 캐시에 반영되도록 함으로서 메타데이터 캐시의 일관성이 유지되도록 하는 이점이 있다. In the present invention, as a method for controlling the consistency of the metadata cache in a SaaS platform supporting multi-tenancy, a metadata cache trace list and a lease configuration data table for tracking and managing a metadata cache in a database are implemented, and the metadata is changed. By tracking the web application server corresponding to the time, the metadata change is reflected in the metadata cache of the web application, thereby maintaining the consistency of the metadata cache.
또한, 데이터베이스에서 웹 어플리케이션 서버로 메타데이터를 제공할 때 메타데이터의 유효기간을 나타내는 리스를 설정하여 일정 리스 기간이 경과한 후에는 데이터베이스로 메타데이터의 리스 기간의 재설정을 요청하도록 함으로써, 웹 어플리케이션 서버로 메타데이터의 갱신 요청 수행 시, 웹 어플리케이션 서버의 동작 중단으로 인해 메타데이터 갱신 요청이 전달되지 못하는 경우에도 각 웹 어플리케이션 서버가 리스 기간 재설정을 위해 데이터베이스에 접근하는 때에 변경된 메타데이터를 가져가서 메타데이터를 갱신시키도록 함으로써 메타데이터 캐시의 일관성이 유지되도록 하는 이점이 있다. In addition, when providing metadata from the database to the web application server, a lease indicating the validity period of the metadata is set so that after a predetermined lease period has elapsed, the database is requested to be reset to the lease period of the metadata. When performing a metadata update request, even if the metadata update request is not delivered due to the failure of the web application server, the metadata is taken when each web application server accesses the database to reset the lease period. There is an advantage to maintaining the consistency of the metadata cache by having to update.
또한, 메타데이터 캐시에 저장된 메타데이터 중 일정 기준 시간이상 사용되지 않는 메타데이터에 대해서는 웹 어플리케이션 서버에서 주기적으로 이를 검사하여 삭제하도록 함으로써, 메타데이터 캐시의 불필요한 점유 공간을 줄여 사용 효율을 높일 수 있는 이점이 있다.In addition, the metadata stored in the metadata cache that is not used for a certain reference time is periodically checked and deleted by the web application server, thereby reducing the unnecessary occupied space of the metadata cache and increasing the efficiency of use. There is this.
이하, 첨부된 도면을 참조하여 본 발명의 동작 원리를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. Hereinafter, with reference to the accompanying drawings will be described in detail the operating principle of the present invention. In the following description of the present invention, if it is determined that a detailed description of a known function or configuration may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intentions or customs of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.
도 2는 본 발명의 실시 예에 따른 SaaS 플랫폼 시스템의 구성을 도시한 것으로, 본 발명에서는 메타데이터 캐시의 일관성 유지를 위한 데이터 베이스상에 메타데이터 캐시 서버 추적 테이블과 리스 설정 데이터 테이블을 포함한다.FIG. 2 illustrates a configuration of a SaaS platform system according to an exemplary embodiment of the present invention. The present invention includes a metadata cache server tracking table and a lease configuration data table on a database for maintaining consistency of the metadata cache.
이하, 도 2를 참조하여 SaaS 플랫폼 시스템에서 웹 어플리케이션 서버(200, 201, 202)와 데이터베이스(220)간 메타데이터 캐시(210, 211, 212)의 일관성을 유지시키는 동작을 상세히 설명하기로 한다.Hereinafter, an operation of maintaining the consistency of the
먼저, 테넌트 관리자(customization tool)(203)에 의해 데이터베이스(220)의 메타데이터에 대한 갱신이 요청되는 경우, 갱신요청을 받은 데이터베이스(220)은 메타데이터를 갱신한 후에 누가 그리고 어떤 메타데이터를 캐시한지를 추적 및 관리하는 메타데이터 캐시 서버 추적 리스트(230)을 참조하여, 메타데이터를 갱신하기 위해서 해당 웹 어플리케이션 서버(200, 201, 202)에게 캐시 갱신 요청을 보낸다. First, when an update of the metadata of the
한편, 이때 데이터베이스(220)가 캐시 갱신 요청을 웹 어플리케이션 서버(200, 201, 202)에게 보냈을 때, 해당 웹 어플리케이션 서버가 관리자에 의한 중단, CPU, 보드, 전원장치, 네트워크 인터페이스 카드(NIC), 네트워크 케이블(network cable), 스위치 오류(switch error) 등의 문제로 인해 캐시 갱신 요청을 수신하지 못하는 상황이 발생할 수 있다. On the other hand, when the
이를 위해, 본 발명에서는 웹 어플리케이션 서버(200, 201, 202)가 메타데이터를 캐시할 때 리스(lease)(일정한 시간 동안만 그 메타데이터 캐시가 유효함)를 각 웹 어플리케이션 서버(200, 201, 202)에게 발급함으로써 유효한 시간이 경과된 리스를 가지는 웹 어플리케이션 서버(200, 201, 202)는 다시 리스를 요청하도록 함으로써 여러 오류로 인해 발생한 캐시 불일치 문제를 해결한다. 이와 같은 리스 설정 정보는 데이터베이스(220)에 리스 설정 데이터 테이블(240)에 저장 및 관리된다To this end, in the present invention, when the
도 3은 본 발명의 실시 예에 따른 메타 데이터 캐시의 구조를 도시한 것으로, 메타데이터 캐시는 테넌트(tenant)와 서비스(service) 단위로 되어 있으며, 이들 전체는 리스트 헤드(list head)(300)를 시작으로 리스트 엔트리(list entry)(310, 320) 형태로 구성되어 있다.FIG. 3 illustrates a structure of a metadata cache according to an embodiment of the present invention. The metadata cache includes tenant and service units, and the entirety of the metadata cache is a
각 리스트 엔트리(310, 320)는 테넌트 식별자(tenant ID)(311, 321), 서비스 식별자(service ID)(312, 322), 캐시한 메타데이터의 버전 번호(version number)(313, 323), 리스를 획득한 시간(lease time)(314, 324), 리스의 유효 시간(lease period)(315, 325), 캐시 데이터를 접근한 최근 접근 시간(last access time)(316, 326), 그리고 실제 메타데이터(317, 327)로 캐시를 구성하고 있다. Each
도 4는 본 발명의 실시 예에 따른 리스 설정 데이터의 구성을 도시한 것이다. 4 illustrates a configuration of lease setting data according to an embodiment of the present invention.
데이터베이스(220)에 저장 및 관리되는 리스 설정은, 위 도 4에서 보여지는 바와 같이 테넌트 식별자(tenant ID)(411, 421, 431), 서비스 식별자(service ID)(412, 422, 432), 최신 메타데이터 버전 번호(last version number)(413, 413, 414), 리스 유효 시간(lesase period)(414, 424, 434)으로 구성된다. The lease settings stored and managed in the
즉, 본 발명에서는 웹 어플리케이션 서버의 모든 종류의 장애에 대처하기 위해서 리스를 사용하여 캐시 일관성을 유지하도록 한다. 리스는 일정한 시간 동안만 해당 메타 데이터 캐시가 유효함을 나타내는 인자로 이러한 리스 유효 시간은 테넌트별 그리고 서비스별로 관리한다.That is, in the present invention, in order to cope with all kinds of failures of the web application server, the lease is used to maintain cache consistency. The lease indicates that the metadata cache is valid only for a certain time. The lease validity time is managed by tenant and service.
도 5는 본 발명의 실시 예에 따른 메타데이터 캐시 추적 리스트 구성을 도시한 것이다.5 illustrates a configuration of a metadata cache tracking list according to an embodiment of the present invention.
도 5를 참조하면, 메타데이터 캐시 서버 추적 리스트는 추적 및 관리할 대상인 테넌트 식별자(501)와 서비스 식별자(502)로 구성되는 추적 관리 엔트리(500)와 리스트 헤드(list head)(503)를 포함하고 있다. 이 리스트 헤드(503)에는 해당 메타데이터를 캐시한 웹 어플리케이션 서버의 리스트 엔트리(514, 524, 534)가 포함되어 있다.Referring to FIG. 5, the metadata cache server trace list includes a
각 리스트 엔트리(514, 524, 534)는 캐시한 메타데이터의 버전 번호(version number)(511, 521, 531), 리스를 발급한 시간(lease time)(512, 522, 532), 그리고 웹 어플리케이션 서버(web application server)의 IP(Internet Protocol) 주소(513, 523, 533)로 구성되어 있다.Each
위와 같이, 구성된 메타데이터 캐시 서버 추적 리스트 구성도는 메타데이터를 갱신할 때, 데이터베이스(220)가 어느 웹 어플리케이션 서버에게 갱신요청을 보낼 지 판단할 때 활용된다. 그리고 오류로 인해 갱신 요청을 받지 못한 웹 어플리케이션 서버에 대해서는 최대 리스 유효 시간 동안 기다린 이후 캐시한 메타데이터의 리스 갱신을 요청함과 동시에 갱신된 메타데이터를 다시 받아옴으로써, 일관성을 유지시키게 된다.As described above, the configured metadata cache server tracking list diagram is used when the
도 6은 본 발명의 실시 예에 따른 웹 어플리케이션 서버에서 메타데이터를 처리하는 동작 제어 흐름을 도시한 것이다. 이하, 도 2, 도 3 및 도 6을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.6 is a flowchart illustrating an operation control process of processing metadata in a web application server according to an exemplary embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 2, 3, and 6.
먼저, 테넌트 소속의 사용자가 웹 어플리케이션 서버(200)로 서비스(service)를 요청한다(S600). 그러면 웹 어플리케이션 서버(200)는 서비스를 요청한 사용자의 테넌트 식별자(tenant ID)와 요청된 서비스에 대한 서비스 식별자(service ID)를 구한다(S602).First, a user belonging to a tenant requests a service to the web application server 200 (S600). Then, the
이어, 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에서 리스트 헤드(300)를 읽어온 후(S604), 리스트 헤드(300)를 시작으로 순차적으로 메타데이터 캐시(210)로부터 리스트 엔트리(310, 320)를 가져와서(S610), 리스트 엔트리(310, 320)의 테넌트 식별자/서비스 식별자가 서비스 요청한 사용자의 테넌트 식별자/서비스 식별자와 같은지를 검사한다(S620).Subsequently, the
이때, 리스트 엔트리(310, 320)의 테넌트 식별자/서비스 식별자가 서비스 요청한 사용자의 테넌트 식별자/서비스 식별자와 같지 않은 경우 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에서 다음 리스트 엔트리를 가져온다(S610).In this case, when the tenant identifier / service identifier of the
그리고, 웹 어플리케이션 서버(200)는 두 번째로 가져온 리스트 엔트리의 테넌트 식별자/서비스 식별자가 서비스 요청한 사용자의 테넌트 식별자/서비스 식별자와 같은지를 검사한다(S620). 이와 같은 방법으로 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에 포함된 모든 리스트 엔트리(310, 320)에 대해 검사를 수행하게 된다(S610, S620, S622).The
이때 만일, 리스트 엔트리(310, 320)의 테넌트 식별자/서비스 식별자가 서비 스 요청한 사용자의 테넌트 식별자/서비스 식별자와 같게 되는 경우 이는 서비스 요청한 사용자의 테넌트 식별자와 서비스 식별자가 메타데이터 캐시(210)에서 검색된 것을 의미한다. In this case, if the tenant identifier / service identifier of the
이에 따라, 웹 어플리케이션 서버(200)는 검색된 테넌트 식별자와 서비스 식별자에 해당하는 리스트 엔트리에서 리스 획득 시간(lease time)(314, 324)과 리스 유효 시간(lease period)(315, 325)을 읽어와서 사용자가 서비스를 요청한 현재 시간이 리스 획득 시간(314, 324)과 리스 유효 시간(315, 325)을 합한 기준 시간보다 작은지를 검사한다(S630).Accordingly, the
이때, 현재 시간이 기준 시간보다 작은 경우 웹 어플리케이션 서버(200)는 해당 리스트 엔트리(310, 320)에 포함된 메타데이터(317, 327)를 가져오고(S646), 리스트 엔트리(310, 320)내 최종 접속 시간(last access time) 필드(field)를 현재 시간으로 갱신한다(S648). 이어 웹 어플리케이션 서버(200)는 메타데이터를 해석하여 사용자 서비스를 처리한다(S650).At this time, when the current time is smaller than the reference time, the
그러나, 이와 달리, 현재 시간이 기준 시간보다 큰 경우 이는 해당 리스트 엔트리(310, 320)의 메타데이터에 대한 리스 유효 시간이 만료된 것을 의미하므로, 웹 어플리케이션 서버(200)는 데이터베이스(220)에게 서비스 요청한 사용자의 테넌트 식별자, 서비스 식별자 및 버전번호를 가지고 새로운 리스를 요청한다(S632).Alternatively, however, if the current time is greater than the reference time, this means that the lease validity time for the metadata of the
이때, 데이터베이스(220)내 해당 테넌트 식별자, 서비스 식별자에 대해 메타데이터의 변경이 없는 상태여서 리스 요청이 성공되는 경우(S640), 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)내 해당 리스트 엔트리(310, 320)의 리스 획 득시간(lease time)을 갱신하고(S644), 해당 테넌트 식별자, 서비스 식별자에 대해 메타데이터 변경이 발생하여 리스 요청이 실패되는 경우(S640), 웹 어플리케이션 서버(200)는 테넌트 식별자와 서비스 식별자에 대한 리스 유효 시간과 변경된 메타데이터를 가져온다(S642).At this time, if the lease request is successful because there is no change of metadata for the corresponding tenant identifier and the service identifier in the database 220 (S640), the
한편, (S610)단계에서 메타데이터 캐시(210)에서 리스트 헤드(300)를 읽어온 후, 리스트 헤드(300)를 시작으로 순차적으로 메타데이터 캐시(210)로부터 리스트 엔트리(310, 320)를 가져와서 리스트 엔트리(310, 320)의 테넌트 식별자/서비스 식별자가 서비스 요청한 사용자의 테넌트 식별자/서비스 식별자와 같은지를 마지막 리스트 엔트리까지 검사한 결과, 메타데이터 캐시(210)내 서비스 요청한 사용자의 테넌트 식별자/서비스 식별자와 일치하는 리스트 엔트리가 없는 경우, 웹 어플리케이션 서버(200)는 새로운 리스트 엔트리를 생성한다(S612).Meanwhile, after reading the
이어, 웹 어플리케이션 서버(200)는 위와 같이 생성한 리스트 엔트리에 사용자의 테넌트 식별자와 서비스 식별자를 설정하고(S614), 리스트 엔트리를 리스트 헤드(300)에 추가하고, 리스트 엔트리의 버전 번호(version number)를 '0'으로 설정한다(S618). 이와 같이 버전 번호를 '0'으로 설정함에 따라 데이터베이스(220)로부터 새로운 테넌트 식별자와 서비스 식별자로 인식되게 된다.Subsequently, the
도 7은 본 발명의 실시 예에 따른 데이터베이스에서 리스 요청을 처리하는 동작 제어 흐름을 도시한 것이다. 이하, 도 2, 도 3, 도 5 및 도 7을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.7 illustrates an operation control flow for processing a lease request in a database according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 2, 3, 5, and 7.
먼저, 데이터베이스(220)는 웹 어플리케이션 서버(200)로부터 리스 요청을 받는 경우(S700), 리스를 요청한 웹 어플리케이션 서버(200)의 IP 주소를 얻고(S702), 리스 요청에 따라 전송되는 테넌트 식별자(tenant ID)와 서비스 식별자(service ID) 그리고 버전 번호(version number)를 가져온다(S704). First, when receiving a lease request from the web application server 200 (S700), the
이어, 데이터베이스(220)는 요청을 처리하기 위해 메타데이터 캐시 서버 추적 리스트(230)를 읽어온 후(S706), 리스트 헤드(503)를 시작으로 순차적으로 메타데이터 캐시 서버 추적 리스트(230)로부터 리스트 엔트리(514, 524, 534)를 가져와서(S708), 리스트 엔트리(514, 524, 534)의 테넌트 식별자(tenant ID)/서비스 식별자(service ID)가 서비스 요청된 테넌트 식별자/서비스 식별자와 같은지를 검사한다(S720).Subsequently, the
이때, 리스트 엔트리(514, 524, 534)의 테넌트 식별자/서비스 식별자가 서비스 요청된 테넌트 식별자/서비스 식별자와 같지 않은 경우 데이터베이스(220)는 메타데이터 캐시 서버 추적 리스트(230)에서 다음 리스트 엔트리를 가져온다(S710).At this time, if the tenant identifier / service identifier of the
그리고, 데이터베이스(220)는 두 번째로 가져온 리스트 엔트리의 테넌트 식별자/서비스 식별자가 서비스 요청된 테넌트 식별자/서비스 식별자와 같은지를 다시 검사한다(S720). 이와 같은 방법으로 데이터베이스(220)는 메타데이터 캐시 서버 추적 리스트(230)에 포함된 모든 리스트 엔트리(514, 524, 534)에 대해 검사를 수행하게 된다(S710, S720, S722).Then, the
이때 만일, 리스트 엔트리(514, 524, 534)의 테넌트 식별자/서비스 식별자가 서비스 요청된 테넌트 식별자/서비스 식별자와 같게 되는 경우 이는 서비스 요청된 테넌트 식별자와 서비스 식별자가 메타데이터 캐시 서버 추적 리스트(230)에서 검 색된 것을 의미한다.In this case, if the tenant identifier / service identifier of the
이에 따라, 데이터베이스(220)는 리스 요청 시 수신된 버전 번호와 검색된 리스트 엔트리의 버전 번호 필드에 기록된 버전 번호(version number)(511, 521, 531)가 같은지를 검사한다(S730). Accordingly, the
이때, 버전 번호가 같은 경우 이는 리스 요청된 테넌트 식별자와 서비스 식별자에 대응되는 메타데이터가 변경되지 않은 상태를 의미하므로, 데이터베이스(220)는 리스 요청 결과 값을 성공으로 설정하고(S732), 검색된 리스트 엔트리의 리스 획득 시간(lease time)(512, 522, 532)을 현재 시간으로 갱신한다(S740). In this case, when the version number is the same, this means that the metadata corresponding to the lease requested tenant identifier and the service identifier has not changed, and the
이어, 데이터베이스(220)는 리스 요청에 대한 결과값과 버전 번호를 서비스 요청한 웹 어플리케이션 서버(200)로 전송하고(S742), 웹 어플리케이션 서버(200)로 전송할 리스 유효 시간값과 메타데이터가 있는 경우에는 이를 전송한다(S744).Subsequently, the
그러나, 이와 달리, 리스 요청시 수신된 버전 번호와 검색된 리스트 엔트리의 버전 번호 필드에 기록된 버전 번호가 서로 다른 경우 이는 리스 요청된 테넌트 식별자와 서비스 식별자에 대응되는 메타데이터가 버전 업되어 변경된 상태를 의미하므로, 데이터베이스(220)는 리스 요청 결과값을 실패로 설정하고(S734), 서비스 요청된 테넌트 식별자와 서비스 식별자에 대해 변경된 메타데이터 캐시를 얻어 이를 웹 어플리케이션 서버(200)로 제공한다(S736).However, in contrast, when the version number received in the lease request and the version number recorded in the version number field of the retrieved list entry are different, this means that the metadata corresponding to the lease requested tenant identifier and the service identifier are upgraded and changed. Therefore, the
한편, (S710)단계에서 메타데이터 캐시 서버 추적 리스트(230)에서 리스트 헤드(503)를 읽어온 후, 리스트 헤드(503)를 시작으로 순차적으로 메타데이터 캐시 서버 추적 리스트(230)로부터 리스트 엔트리(514, 524, 534)를 가져와서 리스트 엔 트리(514, 524, 534)의 테넌트 식별자/서비스 식별자가 서비스 요청된 테넌트 식별자/서비스 식별자와 같은지를 마지막 리스트 엔트리까지 검사한 결과, 메타데이터 캐시 서버 추적 리스트(230)내 서비스 요청된 테넌트 식별자/서비스 식별자와 일치하는 리스트 엔트리가 없는 경우 데이터베이스(220)는 메타데이터 캐시 서버 추적 리스트(230)내 새로운 리스트 엔트리를 생성한다(S712).On the other hand, after reading the
이어, 데이터베이스(220)는 위와 같이 생성한 리스트 엔트리에 서비스 요청된 테넌트 식별자, 서비스 식별자와 웹 어플리케이션 서버의 IP 주소를 설정한다(S714). Subsequently, the
그런 후, 데이터베이스(220)는 버전 번호와 리스 유효 시간값을 설정하고(S716), 리스트 엔트리를 메타데이터 캐시 서버 추적 리스트(230)의 리스트 헤드(503)에 추가한다(S718).Thereafter, the
도 8은 본 발명의 실시 예에 따른 데이터베이스에서 테넌트 관리자로부터의 메타데이터 갱신 요청에 따라 메타데이터를 갱신시키는 동작 제어 흐름을 도시한 것이다. 이하, 도 2, 도 3, 도 5 및 도 8을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.8 illustrates an operation control flow for updating metadata in response to a metadata update request from a tenant manager in a database according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 2, 3, 5, and 8.
먼저, 데이터베이스(220)는 테넌트 관리자(203)로부터 메타데이터 갱신 요청을 받는 경우(S800), 갱신 요청된 테넌트 식별자(tenant ID)와 서비스 식별자(service ID)를 가져온다(S802).First, when receiving a metadata update request from the tenant manager 203 (S800), the
이어, 데이터베이스(220)는 테넌트 식별자와 서비스 식별자에 해당하는 메타데이터를 변경하고 리스 설정 데이터 테이블(240)의 해당 메타데이터의 버전 번호 값을 1 증가시킨다(S804). 또한 데이터베이스(220)는 메타데이터 캐시 서버 추적 리스트(230)를 검색하여 테넌트 식별자와 서비스 식별자에 대한 추적 관리 엔트리(500)를 가져온다(S806). Subsequently, the
이어, 추적 관리 엔트리(500)의 리스트 헤드(503)를 가져와서(S808) 현재 시간이 리스트 헤드(503)의 리스 획득 시간과 리스 유효 시간을 합한 기준 시간 값보다 작은지를 검사한다(S810).Subsequently, the
이때, 현재 시간이 기준 시간보다 작은 경우 해당 리스트 엔트리(514, 524, 534)의 메타데이터에 대한 리스 유효 시간이 아직 만료되지 않은 것을 의미하므로, 해당 리스트 엔트리(514, 524, 534)의 웹 어플리케이션 서버로 메타데이터 갱신 요청을 보내지 않는다.At this time, if the current time is less than the reference time, it means that the lease valid time for the metadata of the
그러나, 이와 달리, 현재 시간이 기준시간보다 큰 경우 이는 해당 리스트 엔트리의 메타데이터에 대한 리스 유효기간이 만료된 것을 의미하므로, 데이터베이스(220)는 해당 리스트 엔트리의 웹 어플리케이션 서버에게 메타데이터 갱신 요청을 전송하게 된다(S812).However, in contrast, if the current time is greater than the reference time, it means that the lease expiration date for the metadata of the corresponding list entry has expired, and thus the
이때, 해당 웹 어플리케이션 서버는 관리자에 의한 중단, CPU, 보드, 전원장치, 네트워크 인터페이스 카드(NIC), 네트워크 케이블, 스위치 오류 등의 문제로 인해 메타데이터 갱신 요청을 수신하지 못하는 상황이 발생할 수 있다. In this case, the web application server may not receive the metadata update request due to an interruption caused by an administrator, a CPU, a board, a power supply, a network interface card (NIC), a network cable, a switch error, or the like.
위와 같이, 웹 어플리케이션 서버로의 메타데이터 갱신 요청이 실패하는 경우(S814), 데이터베이스(220)는 갱신 요청 실패에 대한 로그를 저장한다(S816).As described above, when the metadata update request to the web application server fails (S814), the
도 9는 본 발명의 실시 예에 따라 웹 어플리케이션 서버에서 메타데이터 갱 신을 처리하는 동작 제어 흐름을 도시한 것이다. 이하, 도 2, 도 3 및 도 9를 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.9 illustrates an operation control flow for processing metadata update in a web application server according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 2, 3, and 9.
먼저, 데이터베이스(220)로부터 메타데이터 갱신 요청을 수신하는 경우(S900), 웹 어플리케이션 서버(200)는 갱신 요청으로부터 테넌트 식별자(tenant ID)와 서비스 식별자(service ID)를 얻는다(S902). First, when receiving a metadata update request from the database 220 (S900), the
이어, 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에서 리스트 헤드(300)를 읽어온 후(S904), 리스트 헤드(300)를 시작으로 순차적으로 메타데이터 캐시(210)로부터 리스트 엔트리(310, 320)를 가져와서(S910) 리스트 엔트리(300)의 테넌트 식별자/서비스 식별자가 갱신 요청된 테넌트 식별자/서비스 식별자와 같은지를 검사한다(S920).Subsequently, the
이때, 리스트 엔트리(310, 320)의 테넌트 식별자/서비스 식별자가 갱신 요청된 테넌트 식별자/서비스 식별자와 같지 않은 경우 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에서 다음 리스트 엔트리를 가져온다(S924).At this time, when the tenant identifier / service identifier of the
그리고, 웹 어플리케이션 서버(200)는 두 번째로 가져온 리스트 엔트리의 테넌트 식별자/서비스 식별자가 갱신 요청된 테넌트 식별자/서비스 식별자와 같은지를 검사한다(S920). 이와 같은 방법으로 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에 포함된 모든 리스트 엔트리에 대해 검사를 수행하게 된다(S910, S920, S922).Then, the
이때 만일, 리스트 엔트리(310, 320)의 테넌트 식별자/서비스 식별자가 갱신 요청된 테넌트 식별자/서비스 식별자와 같게 되는 경우 이는 갱신 요청된 테넌트 식별자/서비스 식별자가 메타데이터 캐시에서 검색된 것을 의미한다.In this case, if the tenant identifier / service identifier of the
이에 따라, 웹 어플리케이션 서버(200)는 검색된 리스트 엔트리(310, 320)의 리스 획득 시간(lease time)(314, 324)을 현재시간에서 리스 유효 시간(lease period)(315, 325)을 감산한 시간으로 갱신 설정한다(S922). 즉, 해당 갱신 요청된 메타데이터의 리스 유효 시간이 경과되도록 변경하여 변경된 메타데이터 캐시를 다시 받아오도록 하는 것이다.Accordingly, the
도 10은 본 발명의 실시 예에 따라 웹 어플리케이션 서버에서 메타데이터 캐시 중 사용되지 않는 캐시를 제거하는 동작 제어 흐름을 도시한 것이다. 이하, 도 2, 도 3 및 도 10을 참조하여 본 발명의 실시 예를 상세히 설명하기로 한다.FIG. 10 illustrates an operation control flow for removing an unused cache from among metadata caches in a web application server according to an embodiment of the present invention. Hereinafter, embodiments of the present invention will be described in detail with reference to FIGS. 2, 3, and 10.
먼저, 웹 어플리케이션 서버(200)는 실행 주기 값을 가져오고(S1000), 타임아웃(time out) 설정값을 가져온다(S1002). First, the
이어, 웹 어플리케이션 서버(200)는 서버의 동작이 중단되었는지를 검사하고(S1010), 서버의 동작이 중단되지 않은 경우, 메타데이터 캐시(210)에서 리스트 헤드를 가져온 후(S1012), 리스트 헤드(300)를 시작으로 순차적으로 메타데이터 캐시(210)로부터 리스트 엔트리(310, 320)를 가져와서(S102), 리스트 엔트리(310, 320)내 메타데이터에 접근한 최종 접속 시간(last access time)(316, 326)이 현재시간에서 타임아웃 설정 시간을 감산한 기준시간보다 작은지를 검사한다(S1030).Subsequently, the
이때, 리스트 엔트리의 최종 접속 시간(316, 326)이 기준시간보다 큰 경우에는 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에서 다음 리스트 엔트리를 가져온다(S1036).At this time, when the last access time (316, 326) of the list entry is greater than the reference time, the
그리고, 웹 어플리케이션 서버(200)는 두 번째로 가져온 리스트 엔트리의 최종 접속 시간이 기준 시간보다 작은지를 다시 검사한다(S1030). 이와 같은 방법으로 웹 어플리케이션 서버(200)는 메타데이터 캐시(210)에 포함된 모든 리스트 엔트리에 대해 최종 접속 시간에 대한 검사를 수행하게 된다(S1020, S1030, S1036).Then, the
이때 만일, 리스트 엔트리의 최종 접속 시간이 기준 시간 보다 작은 경우, 이는 해당 리스트 엔트리내 메타데이터가 최종 접속 시간이후 타임아웃 설정된 시간이 경과하도록 사용되지 않은 것을 의미하므로, 웹 어플리케이션 서버(200)는 이러한 리스트 엔트리에 대해서는 메타데이터 캐시(210)의 불필요한 공간 점유를 방지하고자 메타데이터 캐시(210)에서 제거시킨다(S1032).In this case, if the last access time of the list entry is less than the reference time, this means that the metadata in the list entry has not been used so that the timeout set after the last access time has elapsed. The list entry is removed from the
한편, (S1010)단계에서 메타데이터 캐시(210)내 모든 리스트 엔트리에 대해서 최종 접속 시간을 검사한 경우 웹 어플리케이션 서버(200)는 미리 설정된 일정 실행 주기만큼 슬립(sleep)한 후, 다시 메타데이터 캐시(210)내 사용되지 않는 캐시를 제거하는 동작을 수행하게 된다.Meanwhile, when the final access time is checked for all list entries in the
상기한 바와 같이, 본 발명은 멀티테넌시를 지원하는 SaaS 플랫폼에서 메타데이터 캐시의 일관성 제어 방법으로서, 데이터베이스에 메타데이터 캐시를 추적 관리할 수 있는 메타데이터 캐시 서버 추적 리스트와 리스 설정 데이터 테이블을 구현하고, 메타데이터의 변경 시 해당되는 웹 어플리케이션 서버를 추적하여 메타데이터의 변경 사항이 해당 웹 어플리케이션의 메타데이터 캐시에 반영되도록 함으로서 메타데이터 캐시의 일관성이 유지되도록 한다. As described above, the present invention provides a method for controlling the consistency of a metadata cache in a SaaS platform supporting multi-tenancy, and implements a metadata cache server trace list and a lease configuration data table for tracking and managing a metadata cache in a database. When the metadata is changed, the corresponding web application server is tracked so that the metadata change is reflected in the metadata cache of the web application to maintain the consistency of the metadata cache.
또한, 데이터베이스에서 웹 어플리케이션 서버로 메타데이터를 제공할 때 메 타데이터의 유효기간을 나타내는 리스를 설정하여 일정 리스 기간이 경과한 후에는 데이터베이스로 메타데이터의 리스 기간의 재설정을 요청하도록 함으로써, 웹 어플리케이션 서버로 메타데이터의 갱신 요청 수행 시, 웹 어플리케이션 서버의 동작 중단으로 인해 메타데이터 갱신 요청이 전달되지 못하는 경우에도 각 웹 어플리케이션 서버가 리스 기간 재설정을 위해 데이터베이스에 접근하는 때에 변경된 메타데이터를 가져가서 메타데이터를 갱신시키도록 함으로써 메타데이터 캐시의 일관성이 유지되도록 한다. Also, when providing metadata from a database to a web application server, a lease indicating the validity period of the metadata is set so that after a certain lease period has elapsed, the database is requested to reset the lease period of the metadata. When performing a metadata update request to the server, even if the metadata update request is not delivered due to the interruption of the web application server, the metadata is changed when each web application server accesses the database to reset the lease period. By updating the data, you ensure that the metadata cache is consistent.
한편 상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시될 수 있다. 따라서 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.While the invention has been shown and described with reference to certain preferred embodiments thereof, it will be understood by those skilled in the art that various changes and modifications may be made without departing from the spirit and scope of the invention. Accordingly, the scope of the invention should not be limited by the described embodiments but should be defined by the appended claims.
도 1은 종래 SaaS 플랫폼의 구성도,1 is a configuration diagram of a conventional SaaS platform,
도 2는 본 발명의 실시 예에 따른 멀티테넌시를 지원하는 SaaS 플랫폼의 구성도,2 is a configuration diagram of a SaaS platform supporting multi-tenancy according to an embodiment of the present invention;
도 3은 본 발명의 실시 예에 따른 웹 어플리케이션 서버의 캐시 구성도,3 is a cache configuration diagram of a web application server according to an embodiment of the present invention;
도 4는 본 발명의 실시 예에 따른 리스 설정 데이터 구성도,4 is a configuration diagram of the lease setting data according to an embodiment of the present invention;
도 5는 본 발명의 실시 예에 따른 메타데이터 캐시 서버 추적 리스트 구성도,5 is a block diagram of a metadata cache server tracking list according to an embodiment of the present invention;
도 6은 본 발명의 실시 예에 따른 웹 어플리케이션 서버에서 메타데이터 처리 흐름도,6 is a flowchart illustrating metadata processing in a web application server according to an embodiment of the present invention;
도 7은 본 발명의 실시 예에 따른 데이터베이스에서 리스 요청 처리 흐름도,7 is a flowchart illustrating a lease request processing in a database according to an embodiment of the present invention;
도 8은 본 발명의 실시 예에 따른 데이터베이스에서 메타데이터 갱신 요청을 처리하는 동작 제어 흐름도,8 is an operation control flowchart of processing a metadata update request in a database according to an embodiment of the present invention;
도 9는 본 발명의 실시 예에 따른 웹 어플리케이션 서버에서 메타데이터 갱신을 처리하는 동작 제어 흐름도,9 is an operation control flowchart for processing metadata update in a web application server according to an embodiment of the present invention;
도 10은 본 발명의 실시 예에 따른 웹 어플리케이션 서버에서 메타데이터 캐시 중 사용되지 않는 캐시를 제거하는 동작 제어 흐름도.FIG. 10 is a flowchart illustrating an operation control for removing an unused cache among metadata caches in a web application server according to an exemplary embodiment of the present invention. FIG.
<도면의 주요 부호에 대한 간략한 설명><Brief description of the major symbols in the drawings>
200 : 웹 어플리케이션 서버 220 : 데이터베이스200: web application server 220: database
203 : 테넌트 관리자 230 : 메타데이터 캐시 서버 추적 리스트203: Tenant Manager 230: Metadata Cache Server Trace List
240 : 리스 설정 데이터 테이블240: lease setting data table
Claims (20)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090121125A KR20110064486A (en) | 2009-12-08 | 2009-12-08 | System for controlling consistency of metadata cache in saas platform capable of providing multi-tenancy and method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090121125A KR20110064486A (en) | 2009-12-08 | 2009-12-08 | System for controlling consistency of metadata cache in saas platform capable of providing multi-tenancy and method thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20110064486A true KR20110064486A (en) | 2011-06-15 |
Family
ID=44397919
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020090121125A KR20110064486A (en) | 2009-12-08 | 2009-12-08 | System for controlling consistency of metadata cache in saas platform capable of providing multi-tenancy and method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20110064486A (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013141517A1 (en) * | 2012-03-18 | 2013-09-26 | 엘지전자 주식회사 | Control device and method for operating same, and server and method for operating same |
WO2014193166A1 (en) * | 2013-05-28 | 2014-12-04 | 엘지전자 주식회사 | Gateway and control method therefor |
KR20170102725A (en) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | Apparatus and method for managing data |
KR20180117401A (en) * | 2017-04-19 | 2018-10-29 | 한국전자통신연구원 | Apparatus and method for managing metadata |
-
2009
- 2009-12-08 KR KR1020090121125A patent/KR20110064486A/en not_active Application Discontinuation
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013141517A1 (en) * | 2012-03-18 | 2013-09-26 | 엘지전자 주식회사 | Control device and method for operating same, and server and method for operating same |
WO2014193166A1 (en) * | 2013-05-28 | 2014-12-04 | 엘지전자 주식회사 | Gateway and control method therefor |
KR20170102725A (en) * | 2016-03-02 | 2017-09-12 | 한국전자통신연구원 | Apparatus and method for managing data |
KR20180117401A (en) * | 2017-04-19 | 2018-10-29 | 한국전자통신연구원 | Apparatus and method for managing metadata |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11388251B2 (en) | Providing access to managed content | |
US9639546B1 (en) | Object-backed block-based distributed storage | |
US8281376B2 (en) | Authentication system and authentication method | |
JP4394493B2 (en) | File management method, file management apparatus, and file management program | |
US8396938B2 (en) | Providing direct access to distributed managed content | |
EP1701280B1 (en) | File server and method for translating user identifier | |
EP3022708B1 (en) | Content source discovery | |
US20100094979A1 (en) | Network System, Server Apparatus, and Printer Driver | |
US20120265836A1 (en) | File sharing system and file sharing method | |
JP2008519362A (en) | Content address storage device for maintaining content address mapping | |
US20160042056A1 (en) | System and Method for Storing Data in Clusters Located Remotely from Each Other | |
US9602614B1 (en) | Distributed caching cluster client configuration | |
KR20070076619A (en) | Operating method of domain name system for updating adress information of server and domain name system of enabling the method | |
US20200134043A1 (en) | Duplicate Request Checking for File System Interfaces | |
RU2008118893A (en) | DEFINITION SERVICE, DIGITAL CERTIFICATE WAS CANCELLATED | |
JP2019535060A (en) | Software update system, firmware over-the-air update system, and method for updating client device | |
US20090157694A1 (en) | Method and system for managing file metadata transparent about address changes of data servers and movements of their disks | |
KR20110064486A (en) | System for controlling consistency of metadata cache in saas platform capable of providing multi-tenancy and method thereof | |
US20090165011A1 (en) | Resource management method, information processing system, information processing apparatus, and program | |
JP2012146083A (en) | Session management system, session management apparatus, server device and session management method | |
JP2008152553A (en) | Data update processor, data update processing method and data update processing program | |
US20140025630A1 (en) | Data-store management apparatus, data providing system, and data providing method | |
JP2004062443A (en) | Service management system and method, server management device, communication terminal, and server device | |
WO2012046585A1 (en) | Distributed storage system, method of controlling same, and program | |
US11442960B2 (en) | Edge key value store for a distributed platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E601 | Decision to refuse application |