KR20010002763A - Method for agent processor management in heterogenous multidatabase systems - Google Patents

Method for agent processor management in heterogenous multidatabase systems Download PDF

Info

Publication number
KR20010002763A
KR20010002763A KR1019990022728A KR19990022728A KR20010002763A KR 20010002763 A KR20010002763 A KR 20010002763A KR 1019990022728 A KR1019990022728 A KR 1019990022728A KR 19990022728 A KR19990022728 A KR 19990022728A KR 20010002763 A KR20010002763 A KR 20010002763A
Authority
KR
South Korea
Prior art keywords
surrogate
processor
processors
global
request
Prior art date
Application number
KR1019990022728A
Other languages
Korean (ko)
Other versions
KR100323588B1 (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 KR1019990022728A priority Critical patent/KR100323588B1/en
Publication of KR20010002763A publication Critical patent/KR20010002763A/en
Application granted granted Critical
Publication of KR100323588B1 publication Critical patent/KR100323588B1/en

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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/256Integrating or interfacing systems involving database management systems in federated or virtual databases

Landscapes

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

Abstract

PURPOSE: A method for managing deputy processor in a different kind multi-database system is provided to manage the deputy processor by using a deputy processor caching method and to supply a recording medium for reading a program operating the managing method. CONSTITUTION: Deputy processors(33) are generated for the number of minimum deputy processor. Thus, one deputy processor supports plural entire clients(31) accessing local databases at the same time within a lifespan. By demand of the local databases from the entire clients, plural entire clients share one deputy processor with time difference. Therefore, different kind multi-database system is connected to corresponding local database.

Description

이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법{METHOD FOR AGENT PROCESSOR MANAGEMENT IN HETEROGENOUS MULTIDATABASE SYSTEMS}TECHNICAL FOR AGENT PROCESSOR MANAGEMENT IN HETEROGENOUS MULTIDATABASE SYSTEMS

본 발명은 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법 및 그를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것으로서, 특히 대리 프로세서 캐슁(cashing)기법을 이용하여 여러 전역 클라이언트가 하나의 대리 프로세서에 시차를 두고 공유하게 함으로써, 시스템의 성능을 향상시킬 수 있도록 한 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법 및 그를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.The present invention relates to a method of managing a surrogate processor in a heterogeneous multi-database system and a computer-readable recording medium recording a program for realizing the same. In particular, a global agent is represented by one global agent by using a surrogate processor cashing technique. The present invention relates to a method of managing a surrogate processor in a heterogeneous multi-database system capable of improving the performance of a system by allowing a processor to time-divisionally share the same, and a computer-readable recording medium recording a program for realizing the same.

본 발명에 사용되는 용어를 정의하면 다음과 같다.The terms used in the present invention are defined as follows.

이기종 다중 데이터베이스 시스템은 서로 다른 방식으로 운용되는 지역 데이터베이스를 통합하여 사용자에게 여러 개의 이기종 지역 데이터베이스를 마치 하나의 동일한 데이터베이스 시스템을 사용하는 것과 같은 환경을 제공하는 시스템이다.Heterogeneous multi-database systems integrate local databases that operate in different ways to provide users with an environment that is like using multiple heterogeneous regional databases as if they were using the same database system.

전역 클라이언트는 이기종 다중 데이터베이스 시스템을 통하여 여러 지역 데이터베이스에 동시에 접근하는 클라이언트이다.Global clients are clients that access multiple local databases simultaneously through heterogeneous multiple database systems.

지역 클라이언트는 각 지역 데이터베이스 시스템에 직접 접근하는 클라이언트이다.Local clients are clients that directly access each local database system.

지역 데이터베이스는 이기종 다중 데이터베이스 시스템에 의하여 통합되는 단위 데이터베이스이다.Regional databases are unit databases that are integrated by heterogeneous multiple database systems.

대리 프로세서는 지역 다중 데이터베이스 시스템이 지역 데이터베이스에 대해 요청하는 작업을 대신하여 요구해주는 프로그램이다.The surrogate processor is a program that local multi-database systems request on behalf of the local database.

대리 프로세서 캐쉬는 유휴한 대리 프로세서를 보관하는 논리적 장소이다.The surrogate processor cache is a logical place to store idle surrogate processors.

도 1은 일반적인 프로세서 관리시스템의 구성도이다.1 is a block diagram of a general processor management system.

서로 다른 데이터 모델 및 사용 환경을 갖는 지역 데이터베이스 관리시스템(15)을 통합하여 사용자에게 마치 하나의 데이터베이스 시스템을 사용하는 것과 같은 환경을 제공하는 시스템이다.It is a system that integrates a local database management system 15 having different data models and usage environments to provide a user with an environment as if using a single database system.

여기서, 이기종 다중 데이터베이스 시스템(12)에는 전역 스키마 관리기능, 전역 질의어 처리기능, 전역 트랜잭션 처리기능, 대리 프로세서 관리기능이 있다.Here, the heterogeneous multiple database system 12 has a global schema management function, a global query processing function, a global transaction processing function, and a surrogate processor management function.

이러한 이기종 다중 데이터베이스 시스템(12)은 지역 데이터베이스 관리시스템(15)과의 통신을 위해 대리 프로세서(13)를 사용한다. 즉, 대리 프로세서(13)는 이기종 다중 데이터베이스 시스템(12)을 대신해 지역 데이터베이스 관리시스템(15)에 접근하여 필요한 정보를 검색/수정/삭제하는 역할을 수행하는데, 지역 데이터베이스 관리시스템(15) 측면에서 보면 이 대리 프로세서(13)는 자신의 클라이언트(14)로 볼 수 있다.(즉, 대리 프로세서(13)와 지역 클라이언트(14)는 동일한 프로세서이다.) 단, 이기종 다중 데이터베이스 시스템(12)의 측면에서는 "대리 프로세서(13)"이고, 지역 데이터베이스(16) 측면에서는 "지역 클라이언트(14)"로 간주된다.This heterogeneous multiple database system 12 uses a surrogate processor 13 for communication with the local database management system 15. That is, the surrogate processor 13 accesses the local database management system 15 on behalf of the heterogeneous multiple database system 12 and performs a role of searching / modifying / deleting necessary information, in terms of the local database management system 15. This surrogate processor 13 can be seen as its client 14 (ie, the surrogate processor 13 and the local client 14 are the same processor). However, the heterogeneous multiple database system 12 side. In the following description, it is referred to as "substitute processor 13" and "local client 14" from the local database 16 side.

예를 들면, 한국인이 중국인과 대화를 하기 위해서 통역자가 필요한 것과 마찬가지로 서로 다른 메카니즘으로 동작하고 있는 이기종 다중 데이터베이스 시스템(12)과 지역 데이터베이스 관리시스템(15)이 서로 통신하기 위해서는 일종의 통역자(즉, 대리 프로세서(13))가 필요한 것이다.For example, a heterogeneous multi-database system 12 and a local database management system 15, which operate in different mechanisms as a Korean needs an interpreter to communicate with a Chinese, may be a kind of interpreter (ie, representative). Processor 13).

전역 클라이언트(11)와 이기종 다중 데이터베이스 시스템(12), 대리 프로세서(13), 그리고 지역 데이터베이스 관리시스템(15)으로 이루어진 프로세서 관리시스템에서 시스템간의 관계를 살펴보면 다음과 같다.The relationship between the systems in the processor management system including the global client 11, the heterogeneous multiple database system 12, the surrogate processor 13, and the local database management system 15 is as follows.

도 2는 종래의 대리 프로세서 관리방법을 나타낸 설명도이다. 이는 전역 클라이언트(21)와 지역 데이터베이스(24)가 각각 세 개이고 전역 클라이언트1(21)이 지역 데이터베이스1(24)에, 전역 클라이언트2(21)가 지역 데이터베이스2,3(24)에, 전역 클라이언트3(21)이 지역 데이터베이스2,3(24)에 각각 접근하는 경우에, 기존의 대리 프로세서 관리 기법의 예를 나타낸 것이다.2 is a diagram illustrating a conventional surrogate processor management method. This means that there are three global clients (21) and three local databases (24), global client 1 (21) to local database 1 (24), global client 2 (21) to local databases 2 and 3 (24), and global clients. In the case where 3 (21) accesses local databases 2 and 3 (24), respectively, an example of the existing surrogate processor management scheme is shown.

여기서, 전역 클라이언트(21)는 접근하고자 하는 지역 데이터베이스(24)에 대한 정보와 수행하고자 하는 작업을 질의문 형태로 변환하여 이기종 다중 데이터베이스 시스템(22)에 전달한다. 이때, 이기종 다중 데이터베이스 시스템(22)은 전역 클라이언트(21)로부터 받은 데이터 접근 요청을 분석하여 어떤 지역 데이터베이스(24)에 전달할 것인가를 결정한 후 해당 지역 데이터베이스(24)에 접근할 수 있는 대리 프로세서(23)에게 전달한다.Here, the global client 21 converts the information about the local database 24 to be accessed and the operation to be performed into a query form and transmits the information to the heterogeneous multiple database system 22. At this time, the heterogeneous multi-database system 22 analyzes the data access request received from the global client 21, determines which local database 24 to transfer, and then substitutes the surrogate processor 23 capable of accessing the local database 24. To).

요청을 전달받은 대리 프로세서(23)는 전역 클라이언트(21)의 요청을 해당 지역 데이터베이스(24)가 이해할 수 있는 질의문 형태로 변환하여 지역 데이터베이스 서버에게 전달한 후, 이 서버의 질의문 수행 결과를 이기종 다중 데이터베이스 시스템(22)에게 다시 전달한다.Upon receiving the request, the proxy processor 23 converts the request of the global client 21 into a query form that can be understood by the corresponding local database 24 and delivers the result to the local database server. Pass back to multiple database system 22.

마찬가지로, 이기종 다중 데이터베이스 시스템(22)은 대리 프로세서(23)로부터 얻은 결과를 데이터베이스 접근 요청을 한 전역 클라이언트(21)에게 전달한다. 이때, 하나의 전역 클라이언트(21)는 동시에 여러 개의 지역 데이터베이스(24)에 접근할 수 있으며, 또한 여러 개의 전역 클라이언트(21)가 동시에 같은 지역 데이터베이스(24)에 접근이 가능하다.Similarly, the heterogeneous multiple database system 22 delivers the results obtained from the surrogate processor 23 to the global client 21 which made the database access request. In this case, one global client 21 may access several local databases 24 at the same time, and several global clients 21 may simultaneously access the same local database 24.

이기종 다중 데이터베이스 시스템(22)은 서로 다른 방식으로 운용되는 지역 데이터베이스(24)에 접근하기 위해서 각 지역 데이터베이스(24)별로 대리 프로세서(23)를 구축해 놓고 전역 클라이언트(21)로부터 데이터 접근 요청이 접수되면 필요한 대리 프로세서(23)를 생성하여 사용한다.The heterogeneous multiple database system 22 constructs a surrogate processor 23 for each regional database 24 to access the regional database 24 operated in different ways, and when a data access request is received from the global client 21. Create and use the necessary surrogate processor 23.

예를 들어, 전역 클라이언트1(21)이 지역 데이터베이스1(24)에 접근하려고 하면, 이기종 다중 데이터베이스 시스템(22)은 지역 데이터베이스1(24)에 접근할 수 있는 대리 프로세서1(23)을 생성하여 전역 클라이언트1(21)이 요청한 요구를 수행한다. 만약, 이기종 다중 데이터베이스 시스템(22)이 세 개의 지역 데이터베이스(24)를 통합하려 한다면 세 개의 대리 프로세서(23)가 필요하다.For example, if global client 1 (21) tries to access local database 1 (24), heterogeneous multiple database system 22 creates surrogate processor 1 (23) that can access local database 1 (24). The global client 1 (21) fulfills the request. If the heterogeneous multiple database system 22 is to integrate three local databases 24, three proxy processors 23 are required.

이처럼, 종래에는 대리 프로세서(23) 관리시에 전역 클라이언트(21)와 대리 프로세서(23)를 일대다(one-to-many)로 매핑시켰다.As described above, the global client 21 and the surrogate processor 23 are mapped in a one-to-many manner in managing the surrogate processor 23.

예를 들어, 지역 데이터베이스(24)가 세 개이면 세 가지 종류의 대리 프로세서(23)를 준비해 놓고 전역 클라이언트(21)가 특정 지역 데이터베이스(24)에 각각 모두 다 접근하고자 하면 필요한 대리 프로세서(23)를 생성한 후 해당 전역 클라이언트(21)에게 할당하는데, 할당된 대리 프로세서(23)는 해당 전역 클라이언트(21)만을 사용할 수 있다. 따라서, 세 개의 전역 클라이언트(21)가 세 개의 지역 데이터베이스(24)에 각각 모두다 접근하고자 한다면 3 × 3 즉, 다음과 같은 아홉 개의 대리 프로세서(23)가 필요하다.For example, if there are three regional databases 24, three types of surrogate processors 23 are prepared, and if the global client 21 wants to access all of the specific regional databases 24, the necessary surrogate processors 23 are required. After generating and assigning to the global client 21, the assigned surrogate processor 23 may use only the global client 21. Thus, if three global clients 21 want to access all three local databases 24, three surrogate processors 23 are required.

첫 번째로, 전역 클라이언트1(21)이 지역 데이터베이스1(24)에 접근하고자 하는 경우에는 대리 프로세서1(23)이 필요하다.First, if the global client 1 21 wants to access the local database 1 24, the surrogate processor 1 23 is required.

두 번째로, 전역 클라이언트1(21)이 지역 데이터베이스2(24)에 접근하고자 하는 경우에는 대리 프로세서2(23)이 필요하다.Second, if global client 1 (21) wants to access local database 2 (24), proxy processor 2 (23) is required.

세 번째로, 전역 클라이언트1(21)이 지역 데이터베이스3(24)에 접근하고자 하는 경우에는 대리 프로세서3(23)이 필요하다.Third, if the global client 1 21 wants to access the local database 3 24, then the surrogate processor 3 23 is required.

네 번째로, 전역 클라이언트2(21)이 지역 데이터베이스1(24)에 접근하고자 하는 경우에는 대리 프로세서1(23)이 필요하다.Fourth, if the global client 2 (21) wants to access the local database 1 (24), the surrogate processor 1 (23) is required.

다섯 번째로, 전역 클라이언트2(21)이 지역 데이터베이스2(24)에 접근하고자 하는 경우에는 대리 프로세서2(23)이 필요하다.Fifth, if the global client 2 (21) wants to access the local database 2 (24), proxy processor 2 (23) is required.

여섯 번째로, 전역 클라이언트2(21)이 지역 데이터베이스3(24)에 접근하고자 하는 경우에는 대리 프로세서3(23)이 필요하다.Sixth, proxy 3 (23) is required if global client 2 (21) wants to access local database 3 (24).

일곱 번째로, 전역 클라이언트3(21)이 지역 데이터베이스1(24)에 접근하고자 하는 경우에는 대리 프로세서1(23)이 필요하다.Seventh, if global client 3 (21) wants to access local database 1 (24), then surrogate processor 1 (23) is required.

여덟 번째로, 전역 클라이언트3(21)이 지역 데이터베이스2(24)에 접근하고자 하는 경우에는 대리 프로세서2(23)이 필요하다.Eighth, proxy processor 2 (23) is needed if global client 3 (21) wants to access local database 2 (24).

아홉 번째로, 전역 클라이언트3(21)이 지역 데이터베이스3(24)에 접근하고자 하는 경우에는 대리 프로세서3(23)이 필요하다.Ninth, a surrogate processor 3 (23) is required if global client 3 (21) wants to access local database 3 (24).

이상에서와 같이, 세 개의 전역 클라이언트(21)가 세 개의 지역 데이터베이스(24)에 각각 모두다 접근하는 경우에, 대리 프로세서1(23)이 세 개, 대리 프로세서2(23)가 세 개, 대리 프로세서3(23)이 세 개씩 생성된다.As described above, when three global clients 21 each access all three local databases 24, three surrogate processors 1 23, three surrogate processors 2 23, and surrogate Three processors 3 (23) are generated.

이렇게, 전역 클라이언트(21)와 지역 데이터베이스(24)와의 일대다 매핑 기법을 이용하여 대리 프로세서(23)를 관리하는 방법은 전역 클라이언트(21)의 수가 많으면 상대적으로 필요한 대리 프로세서(23)의 수도 급속히 많아져 매번 대리 프로세서(23)를 새로 생성시켜야 하므로 시스템 자원을 심하게 낭비하고, 응답시간이 오래 걸리는 등 전체 시스템의 성능을 급격히 저하시키는 문제점이 있었다.In this way, the method of managing the surrogate processor 23 by using the one-to-many mapping technique between the global client 21 and the local database 24 rapidly increases the number of surrogate processors 23 relatively necessary when the number of the global clients 21 is large. Since the surrogate processor 23 has to be newly generated every time, there is a problem in that the performance of the entire system is drastically reduced, such as excessively wasting system resources and taking a long response time.

상기와 같은 문제점을 해결하기 위하여 안출된 본 발명은, 이기종 다중 데이터베이스 시스템에서 대리 프로세서 캐슁 기법을 이용한 대리 프로세서 관리방법 및 그를 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공하는데 그 목적이 있다.Disclosure of Invention The present invention has been made to solve the above problems, and the object of the present invention is to provide a method for managing a surrogate processor using a surrogate processor caching technique in a heterogeneous multi-database system and a computer-readable recording medium recording a program for realizing the surrogate processor. have.

도 1은 일반적인 프로세서 관리시스템의 구성도.1 is a block diagram of a general processor management system.

도 2는 종래의 대리 프로세서 관리방법을 나타낸 설명도.2 is an explanatory diagram showing a conventional surrogate processor management method;

도 3은 본 발명이 적용되는 프로세서 관리시스템의 구성 예시도.3 is an exemplary configuration diagram of a processor management system to which the present invention is applied.

도 4는 본 발명에 따른 대리 프로세서 관리방법을 나타낸 설명도.4 is an explanatory diagram showing a surrogate processor management method according to the present invention;

도 5는 본 발명에 따른 대리 프로세서 관리방법에 대한 일실시예 전체 흐름도.5 is a flowchart illustrating an embodiment of a surrogate processor management method according to the present invention;

도 6a 및 6b는 본 발명에 따른 대리 프로세서 관리방법중 이기종 다중 데이터베이스 서버에 접수된 요청을 처리하는 과정에 대한 일실시예 상세 흐름도.6A and 6B are detailed flowcharts illustrating a process of processing a request received by a heterogeneous multiple database server in a surrogate processor management method according to the present invention.

*도면의 주요 부분에 대한 부호의 설명* Explanation of symbols for the main parts of the drawings

31 : 전역 클라이언트 32 : 이기종 다중 데이터베이스 시스템31: Global Client 32: Heterogeneous Multiple Database System

33 : 대리 프로세서 캐쉬 34 : 지역 데이터베이스33: surrogate processor cache 34: local database

상기 목적을 달성하기 위한 본 발명은, 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법에 있어서, 상기 이기종 다중 데이터베이스 시스템에, 하나의 대리 프로세서가 그 생명주기 동안 다수의 지역 데이터베이스로 동시에 접근하는 다수의 전역 클라이언트를 지원할 수 있도록, 최소 대리 프로세서 수만큼 대리 프로세서를 생성하는 제 1 단계; 및 상기 다수의 전역 클라이언트로부터의 상기 다수의 지역 데이터베이스에 대한 요청에 따라, 상기 이기종 다중 데이터베이스 시스템이 상기 다수의 전역 클라이언트가 상기 하나의 대리 프로세서에 시차를 두고 공유하도록 하여 해당 지역 데이터베이스를 연결하는 제 2 단계를 포함한다. 또한, 상기 이기종 다중 데이터베이스 시스템의 서버에 요청이 없는 경우에, 대리 프로세서 관리 작업을 수행하는 제 3 단계를 더 포함한다.In order to achieve the above object, the present invention provides a method for managing a surrogate processor in a heterogeneous multiple database system, the heterogeneous multiple database system comprising: a plurality of global regions in which one surrogate processor simultaneously accesses multiple local databases during its life cycle. Generating a surrogate processor by a minimum number of surrogate processors to support a client; And in response to a request for the plurality of local databases from the plurality of global clients, the heterogeneous multiple database system connects the local databases by allowing the plurality of global clients to time-share to the one surrogate processor. Includes two steps. The method may further include performing a surrogate processor management task when there is no request from the server of the heterogeneous multiple database system.

그리고, 본 발명은, 프로세서를 구비한 이기종 다중 데이터베이스 시스템에, 하나의 대리 프로세서가 그 생명주기 동안 다수의 지역 데이터베이스로 동시에 접근하는 다수의 전역 클라이언트를 지원할 수 있도록, 최소 대리 프로세서 수만큼 대리 프로세서를 생성하는 제 1 기능; 및 상기 다수의 전역 클라이언트로부터의 상기 다수의 지역 데이터베이스에 대한 요청에 따라, 상기 이기종 다중 데이터베이스 시스템이 상기 다수의 전역 클라이언트가 상기 하나의 대리 프로세서에 시차를 두고 공유하도록 하여 해당 지역 데이터베이스를 연결하는 제 2 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다. 또한, 상기 이기종 다중 데이터베이스 시스템의 서버에 요청이 없는 경우에, 대리 프로세서 관리 작업을 수행하는 제 3 기능을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.In addition, the present invention provides a heterogeneous multi-database system with a processor so that a single surrogate processor can support a plurality of global clients simultaneously accessing multiple local databases during its life cycle. Generating a first function; And in response to a request for the plurality of local databases from the plurality of global clients, the heterogeneous multiple database system connects the local databases by allowing the plurality of global clients to time-share to the one surrogate processor. A computer readable recording medium having recorded thereon a program for realizing the functions is provided. The present invention also provides a computer-readable recording medium having recorded thereon a program for realizing a third function of performing surrogate processor management when there is no request from a server of the heterogeneous multiple database system.

본 발명은 이기종 다중 데이터베이스 시스템에서의 대리 프로세서를 효율적으로 관리함에 있어, 대리 프로세서 캐슁 기법을 이용하여 여러 전역 클라이언트가 하나의 대리 프로세서에 시차를 두고 공유하게 함으로써, 전반적인 시스템을 향상시킬 수 있다.The present invention can efficiently manage surrogate processors in a heterogeneous multi-database system. By using a surrogate processor caching technique, multiple global clients can be shared with one surrogate processor at different times, thereby improving the overall system.

상술한 목적, 특징들 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다.The above objects, features and advantages will become more apparent from the following detailed description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 3은 본 발명이 적용되는 프로세서 관리시스템의 구성 예시도로서, 이기종 다중 데이터베이스 시스템(32)이 관리하는 대리 프로세서 캐슁(cashing)의 예를 나타낸다.3 is an exemplary configuration diagram of a processor management system to which the present invention is applied and shows an example of a surrogate processor cashing managed by a heterogeneous multiple database system 32.

대리 프로세서의 재사용을 가능하게 하는 대리 프로세서 캐쉬(33)는 하나의 대리 프로세서가 그 생명주기 동안 여러 개의 전역 클라이언트(31)를 지원할 수 있도록 하여 매번 전역 클라이언트(31)와 지역 데이터베이스(34)간의 연결 때마다 새로운 대리 프로세서를 생성시킬 필요가 없도록 한다. 따라서, 전역 클라이언트(31)와 대리 프로세서는 다대다(many-to-many) 매핑이 가능하다.The surrogate processor cache 33, which enables the reuse of surrogate processors, enables one surrogate processor to support multiple global clients 31 during its lifecycle, thereby connecting the global client 31 and the local database 34 each time. You don't have to create a new surrogate processor every time. Thus, the global client 31 and the surrogate processor are capable of many-to-many mapping.

도 3에 도시된 바와 같이, 이기종 다중 데이터베이스 시스템(32)은 통합된 각각의 지역 데이터베이스(34)에 대해 대리 프로세서 캐쉬(33)를 유지한다. 예를 들면, 세 개의 지역 데이터베이스(34)가 통합된 경우에, 이기종 다중 데이터베이스 시스템(32)은 세 개의 대리 프로세서 캐쉬(33)를 유지한다. 즉, 이기종 다중 데이터베이스 시스템(32)이 통합하는 지역 데이터베이스(34)가 세 개이기 때문에 대리 프로세서 캐쉬(33)도 세 개를 유지한다.As shown in FIG. 3, the heterogeneous multiple database system 32 maintains a surrogate processor cache 33 for each consolidated local database 34. For example, if three regional databases 34 are integrated, the heterogeneous multiple database system 32 maintains three surrogate processor caches 33. That is, since there are three local databases 34 integrated by the heterogeneous multiple database system 32, the surrogate processor cache 33 also maintains three.

대리 프로세서 캐쉬1(33)과 대리 프로세서 캐쉬3(33)은 사용 가능한 유휴 대리 프로세서를 두 개 가지고 있으나, 대리 프로세서 캐쉬2(33)는 유휴 대리 프로세서가 하나도 없다.The surrogate processor cache 1 33 and the surrogate processor cache 3 33 have two idle surrogate processors available, but the surrogate processor cache 2 33 has no idle surrogate processors.

이기종 다중 데이터베이스 시스템(32)은 전역 클라이언트1(31)로부터 지역 데이터베이스1(34)과 지역 데이터베이스3(34)에 대한 접근 요청을 전달받으면 대리 프로세서 캐쉬1(33)과 대리 프로세서 캐쉬3(33)을 검색하여 유휴한 대리 프로세서가 있는지를 검사한다. 이때, 대리 프로세서 캐쉬1(33)과 대리 프로세서 캐쉬3(33)에 유휴한 대리 프로세서가 각각 두 개 있으므로 이 중 하나씩을 전역 클라이언트1(31)에게 할당한다.The heterogeneous multiple database system 32 receives the request for access to the local database 1 (34) and the local database 3 (34) from the global client 1 (31) proxy server cache 1 (33) and proxy processor cache 3 (33) Search for an idle surrogate processor. At this time, since there are two surrogate processors in the surrogate processor cache 1 33 and the surrogate processor cache 3 33, one of them is allocated to the global client 1 31.

또한, 이기종 다중 데이터베이스 시스템(32)은 전역 클라이언트2(31)로부터 지역 데이터베이스1(34)에 대한 접근 요청을 전달받으면, 대리 프로세서 캐쉬1(33)을 검색하여 유휴한 대리 프로세서가 있는지를 검사한다. 이때, 대리 프로세서 캐쉬1(33)에 유휴한 대리 프로세서가 하나 남아 있으므로 이를 전역 클라이언트2(31)에게 할당한다.In addition, when the heterogeneous multiple database system 32 receives a request for access to the local database 1 34 from the global client 2 31, the heterogeneous multiple database system 32 searches for the surrogate processor cache 1 33 to check whether there is an idle surrogate processor. . At this time, since one surrogate processor remains in the surrogate processor cache 1 33, it is allocated to the global client 2 31.

만약 전역 클라이언트3(31)이 지역 데이터베이스1(34)에 대한 접근 요청을 보내면, 이제 유휴한 대리 프로세서가 없으므로 이기종 다중 데이터베이스 시스템(32)은 전역 클라이언트3(31)을 대리 프로세서 캐쉬1(33)의 대기 전역 클라이언트로 등록한 후 전역 클라이언트1(31)이나 전역 클라이언트2(31)의 작업이 끝난 후에 할당되었던 대리 프로세서를 다시 대리 프로세서 캐쉬1(33)에게 반환하여 전역 클라이언트3(31)이 사용할 수 있도록 한다.If global client 3 (31) sends an access request to local database 1 (34), the heterogeneous multiple database system 32 replaces global client 3 (31) with proxy processor cache 1 (33) because there is no idle surrogate processor. After registering as the standby global client of the global client 1 (31) or global client 2 (31), the assigned surrogate processor is returned to the surrogate processor cache 1 (33) for use by the global client 3 (31). Make sure

도 4는 본 발명에 따른 대리 프로세서 관리방법을 나타낸 설명도로서, 대리 프로세서 캐슁(cashing)예를 나타낸다.4 is an explanatory diagram showing a method for managing a surrogate processor according to the present invention, and shows an example of surrogate processor cashing.

전역 클라이언트(31)의 작업은 트랜잭션 단위로 이루어진다. 이는 일반적인 지역 데이터베이스(34)의 경우와 마찬가지로 하나의 트랜잭션은 여러 가지 명령들로 구성되어 있으며, 트랜잭션 시작 명령(begin transaction)/커밋(commit)/철회(abort) 명령 사이에 존재한다. 이러한 단위 트랜잭션은 반드시 전부 성공적으로 수행되거나(즉, 커밋으로 끝나는 경우) 전부 수행이 철회되어야(즉, 철회로 끝나는 경우) 하는 특성을 가진다. 예를 들면, 전역 클라이언트(31)의 작업은 다음과 같이 표현될 수 있다.The work of the global client 31 is carried out in units of transactions. As in the case of the general local database 34, one transaction consists of several commands, and exists between a start transaction / commit / abort command. These unit transactions must be either fully successful (i.e. they end with a commit) or they must be withdrawn (i.e. end with a withdraw). For example, the work of the global client 31 can be expressed as follows.

트랜잭션 1Transaction 1

트랜잭션 시작;Start of transaction;

작업 1;Task 1;

작업 2;Work 2;

커밋;Commit;

트랜잭션 2Transaction 2

트랜잭션 시작;Start of transaction;

작업 1;Task 1;

철회;Withdrawal;

이와 같이, 명시적으로 트랜잭션의 시작과 끝을 지정하지 않는 경우는 자동커밋 모드(Auto commit mode)로 해석하고 각 명령문은 묵시적으로 항상 커밋하고자는 하나의 트랜잭션으로 간주된다.As such, if you do not explicitly specify the start and end of a transaction, it is interpreted as auto commit mode and each statement is considered to be a transaction that you want to always implicitly commit.

여기서, 트랜잭션은 모두 커밋 또는 철회되어야 하는 특성을 가지고 있으므로 이기종 다중 데이터베이스 시스템(32)은 트랜잭션 중간에 할당한 대리 프로세서를 트랜잭션이 끝날 때까지 반드시 해당 전역 클라이언트(31)에게 계속적으로 할당하여야 하며, 트랜잭션이 끝나는 순간(즉, 커밋이나 철회 요구를 받는 순간) 대리 프로세서를 대리 프로세서 캐쉬(33)에 반환하여 다른 전역 클라이언트(31)가 사용할 수 있도록 한다.In this case, since the transactions all have to be committed or withdrawn, the heterogeneous multiple database system 32 must continuously allocate the surrogate processor allocated in the middle of the transaction to the corresponding global client 31 until the transaction is completed. At the end of this (i.e., upon receipt of a commit or withdrawal request), the surrogate processor is returned to the surrogate processor cache 33 for use by other global clients 31.

대리 프로세서 캐슁 기법에 융통성을 제공하기 위해서는 각각의 지역 데이터베이스별로 대리 프로세서 캐슁 기법에 필요한 환경 변수를 사용해야 하는데, 이러한 환경 변수들로는 최소 대리 프로세서의 수, 최대 대리 프로세서의 수, 대리 프로세서의 최대 유휴시간 등이 있다. 각 환경 변수들을 구체적으로 살펴보면 다음과 같다.To provide flexibility for the surrogate processor caching scheme, you must use the environment variables required for the surrogate processor caching scheme for each local database. These environment variables include the minimum number of surrogate processors, the maximum surrogate processors, and the maximum idle time of the surrogate processors. There is this. Each environment variable is explained in detail as follows.

우선, 최소 대리 프로세서의 수는 대리 프로세서를 생성시키는데 필요한 시간을 절약하기 위해 전역 클라이언트(31)가 요청을 보내기 전에 미리 생성시켜 대리 프로세서 캐쉬(33)에서 관리해야 하는 대리 프로세서의 수를 말한다.First, the minimum number of surrogate processors refers to the number of surrogate processors that must be created and managed in the surrogate processor cache 33 before the global client 31 sends a request in order to save the time required to generate the surrogate processors.

그리고, 최대 대리 프로세서의 수는 너무 많은 수의 대리 프로세서를 생성시키지 않기 위해서 특정 지역 데이터베이스(34)에 접근하는 최대 대리 프로세서의 수로서, 이 개수보다 많은 전역 클라이언트(33)가 대리 프로세서를 요청하는 경우 그 클라이언트는 이 프로세서를 기다리게 된다.In addition, the maximum number of surrogate processors is the maximum number of surrogate processors that access a specific local database 34 so as not to generate too many surrogate processors, and more than this number of global clients 33 request surrogate processors. The client then waits for this processor.

또한, 대리 프로세서의 최대 유휴 시간은 최소 대리 프로세서의 수보다 더 많은 대리 프로세서가 프로세서의 캐쉬에서 유휴 상태로 오래 남아 있는 경우 시스템 자원을 절약하기 위해 여분의 대리 프로세서를 제거할 때 사용하는 시간 간격을 의미한다.In addition, the maximum idle time for a surrogate processor is the time interval that is used when removing surrogate surrogate processors to save system resources if more surrogate processors remain idle in the processor's cache for longer. it means.

예를 들면, 지역 데이터베이스1(34)에 대한 최소 대리 프로세서의 수가 1, 최대 대리 프로세서의 수가 2, 대리 프로세서의 최대 유휴 시간이 10초라고 가정하면, 이기종 다중 데이터베이스 시스템(32)은 지역 데이터베이스1(34)에 접근할 수 있는 한 개의 대리 프로세서를(미리 정의된 최소 대리 프로세서의 수만큼) 대리 프로세서 캐쉬1(33)에 미리 생성해 놓는다. 이후에, 연속적으로 두 개의 전역 클라이언트(31)가 지역 데이터베이스1(34)에 접근하기를 원한다면, 첫 번째 전역 클라이언트인 전역 클라이언트1(31)에게는 미리 생성시킨 한 개의 대리 프로세서들을 할당하고, 두 번째 전역 클라이언트인 전역 클라이언트2(31)에 대해서는 새로 대리 프로세서를 생성하여 할당한다. 이는 최대 대리 프로세서의 수가 2로 지정되어 있으므로 두 개의 대리 프로세서를 한꺼번에 운용할 수 있기 때문이다.For example, assuming that the minimum number of surrogate processors for local database 1 34 is 1, the maximum number of surrogate processors is 2, and the maximum idle time of the surrogate processors is 10 seconds, then the heterogeneous multiple database system 32 may have a local database 1. One surrogate processor capable of accessing (34) (by the number of predefined minimum surrogate processors) is created in advance in surrogate processor cache 1 (33). Subsequently, if two global clients 31 want to access the local database 1 34 in succession, the first global client, global client 1 31, is assigned one surrogate processor, and the second For global client 2 (31), which is a global client, a new surrogate processor is created and assigned. This is because the maximum number of surrogate processors is set to 2, so that two surrogate processors can be operated at once.

시간이 흘러 모든 전역 클라이언트(31)가 각자의 작업을 마치고 사용하던 대리 프로세서를 대리 프로세서 캐쉬(33)에 반환한 시각이 3시 50분 35초였다고 가정하고 이후로 10초 동안 지역 데이터베이스1(34)에 대한 접근 요청을 하는 전역 클라이언트(31)가 없다면 모든 대리 프로세서는 10초 동안 유휴 상태로 남아있게 된다. 이러한 경우 이기종 다중 데이터베이스 시스템(32)은 최소 대리 프로세서 수인 한 개의 대리 프로세서만 남기고 여분의 대리 프로세서 하나를 대리 프로세서 캐쉬(33)에서 제거함으로써 시스템 자원을 절약할 수 있다.Time passed and all the global clients 31 returned their surrogate processors to the surrogate processor cache 33 at 3:50:35. Without a global client 31 making a request for access, all surrogate processors remain idle for 10 seconds. In this case, the heterogeneous multiple database system 32 may save system resources by removing one surrogate processor from the surrogate processor cache 33 while leaving only one surrogate processor, which is the minimum surrogate processor.

한편, 대리 프로세서의 캐슁을 위한 자료구조에 대해서 살펴보면, 이기종 다중 데이터베이스 시스템(32)은 대리 프로세서 캐슁 기법을 위해 다음과 같은 자료구조를 유지한다.On the other hand, the data structure for caching the surrogate processor, heterogeneous multiple database system 32 maintains the following data structure for the surrogate processor caching technique.

대리_ 프로세서{Proxy_ processor {

time 마지막_ 사용_ 시간;time Last used time;

boolean 대리_ 프로세서_ 상태; /* 유휴 또는 전역 클라이언트 지원*/boolean surrogate_processor_state; / * Idle or global client support * /

integer 할당된_ 전역_ 클라이언트;integer assigned_global_ client;

} (3)} (3)

대리_ 프로세서_ 캐쉬{Proxy_ processor_ cache {

integer 최대_ 대리_ 프로세서_ 수;integer maximum number of surrogate processors;

integer 최대_ 대리_ 프로세서_ 수;integer maximum number of surrogate processors;

integer 현재_ 대리_ 프로세서_ 수;integer The current number of surrogate processors;

time_ interval 대리_ 프로세서의_ 최대_ 유휴_ 시간;time_ interval surrogate_ max_ idle_ time of the processor;

대리_프로세서 대리_ 프로세서_ 리스트;Surrogate_processor surrogate_processor_list;

integer_ list 대기_ 전역_ 클라이언트_ 리스트;integer_ list wait_global_client_list;

} (2)} (2)

대리_ 프로세서_ 캐쉬_ 리스트 대리_ 프로세서_ 캐쉬[n]; (1)Surrogate_processor_cache_list surrogate_processor_cache [n]; (One)

대리_프로세서_캐쉬_리스트는 이기종 다중 데이터베이스 서버가 유지하는 대리 프로세서 캐쉬들을 리스트로 관리하기 위한 구조이며, 통합하고자 하는 지역 데이터베이스 개수만큼 대리 프로세서 캐쉬(33)를 가지게 된다. 즉, 위의 선언중 선언 (1)에서 사용된 n은 이기종 다중 데이터베이스 시스템(32)에 통합된 지역 데이터베이스(34)의 수를 의미한다. (2)에서 선언된 각각의 대리_프로세서_캐쉬를 표현하기 위한 자료 구조는 다음과 같은 요소로 구성된다.The surrogate_processor_cache_list is a structure for managing surrogate processor caches maintained by heterogeneous multiple database servers as a list, and has surrogate processor cache 33 as many as local databases to be integrated. That is, n used in declaration (1) in the above declaration means the number of local databases 34 integrated in the heterogeneous multiple database system 32. The data structure for each proxy_processor_cache declared in (2) consists of the following elements.

"최소_대리_프로세서_수"는 이기종 다중 데이터베이스 서버가 해당 지역 데이터베이스(34)에 대해 유지할 수 있는 대리 프로세서의 최대수이다."Minimum_Agent_Processors" is the maximum number of surrogate processors that heterogeneous multiple database servers can maintain for the local database 34.

"최대_대리_프로세서_수"는 이기종 다중 데이터베이스 서버가 해당 지역 데이터베이스(34)에 대해 최소한 유지해야 하는 대리 프로세서의 수이다."Maximum_Agent_Processors" is the number of surrogate processors that heterogeneous multiple database servers must maintain at least for the local database 34.

"현재_대리_프로세서_수"는 현재 이기종 다중 데이터베이스 서버가 해당 지역 데이터베이스(34)에 대해 생성한 대리 프로세서의 수이다."Current_Agent_Processors" is the number of surrogate processors currently created for the local database 34 by heterogeneous multiple database servers.

"대리_프로세서의_최대_유휴_시간"은 대리 프로세서가 대리 프로세서 캐쉬(33)에서 유휴 상태로 있을 수 있는 최대 시간을 의미한다. 이때. 최대 유휴 시간을 넘겨 계속해서 대리 프로세서 캐쉬(33)에 남아 있는 경우에는 이기종 다중 데이터베이스 서버가 시스템에서 해당 대리 프로세서를 삭제한다."Maximum_id_id_time" of the surrogate processor means the maximum time that the surrogate processor can be idle in the surrogate processor cache 33. At this time. If the remaining idle processor cache remains above the maximum idle time, the heterogeneous multiple database server deletes the surrogate processor from the system.

"대리_프로세서_리스트"는 대리 프로세서 캐쉬(33)에서 관리되는 대리_프로세서_리스트((3)에서 정의됨)이다.The "substitute_processor_list" is a surrogate_processor_list (defined in (3)) managed in the surrogate processor cache 33.

"대기_전역_클라이언트_리스트"는 유휴한 대리 프로세서가 캐쉬안에 하나도 없으면서 해당 대리 프로세서를 요청한 전역 클라이언트(31)가 있는 경우라면 이를 "대기_전역_클라이언트_리스트"에 요청한 순서대로 저장하고 유휴한 대리 프로세서가 생기면 대리_전역_클라이언트_리스트의 첫 번째 전역 클라이언트(31)에게 할당하는 것을 말한다."Standby_global_client_list" means that if there is no idle surrogate processor in the cache and there is a global client (31) that requested that surrogate processor, it is stored in the order requested in "wait_global_client_list" and idled. When a surrogate processor is created, it is allocated to the first global client 31 in the surrogate_global_client_list.

(3)에서 정의된 대리_프로세서 자료 구조는 다음과 같은 요소로 구성된다.The proxy_processor data structure defined in (3) consists of the following elements:

"마지막_사용_시간"은 해당 대리 프로세서가 (2)에서 정의된 "대리_프로세서_최대_유휴_시간"을 초과하여 유휴한 상태로 남아 있는지를 판단하기 위해 마지막으로 사용된 시간을 저장한다."Last_use_time" stores the last used time to determine if the surrogate processor remains idle for more than the "surrogate_processor_max_idle_time" defined in (2). .

"대리_프로세서_상태"는 해당 대리 프로세서가 현재 특정 전역 클라이언트(31)에 의해 사용되고 있는지 아니면 유휴한 상태로 남아 있는지에 대한 정보를 저장한다."A surrogate_processor_state" stores information on whether the surrogate processor is currently being used by a particular global client 31 or remains idle.

"할당된_전역_클라이언트"는 대리 프로세서가 현재 특정 전역 클라이언트(31)에 의해 사용되고 있다면 해당 전역 클라이언트(31)의 식별자를 저장한 것이다."Assigned_Global_Client" stores the identifier of the global client 31 if the surrogate processor is currently being used by a particular global client 31.

도 5 는 본 발명에 따른 대리 프로세서 관리방법에 대한 일실시예 전체 흐름도이다.5 is a flowchart illustrating an embodiment of a method for managing a surrogate processor according to the present invention.

도 5에 도시된 바와 같이, 본 발명에 따른 대리 프로세서 관리방법은, 먼저 이기종 다중 데이터베이스 시스템(32)을 초기화한 후에(501) 이기종 다중 데이터베이스의 서버에 접수된 요청을 처리한다(502). 여기서, 이기종 다중 데이터베이스 시스템(32)을 초기화(501)하기 위해서는 이기종 다중 데이터베이스 시스템(32)을 기동하여 각각의 지역 데이터베이스(34)에 대해 최소 대리 프로세서의 수만큼 대리 프로세서를 미리 생성하여 대리 프로세서 캐쉬(33)에 저장한다.As shown in FIG. 5, the surrogate processor management method according to the present invention first initializes the heterogeneous multiple database system 32 (501) and then processes the request received at the server of the heterogeneous multiple database (502). Here, in order to initialize the heterogeneous multi-database system 32 (501), the heterogeneous multi-database system 32 is started, and the surrogate processor cache is generated in advance by generating the number of surrogate processors for each local database 34 at least. Save to 33.

이후, 이기종 다중 데이터베이스 서버에 접수된 요청이 없어 이기종 다중 데이터베이스 서버가 휴지중일 경우에 대리 프로세서 관리 작업을 수행한다(503).Subsequently, when there is no request received by the heterogeneous multiple database server, the surrogate processor management operation is performed when the heterogeneous multiple database server is idle (503).

즉, 미리 저장된 대리 프로세서의 최소 수보다 많은 대리 프로세서가 대리 프로세서 캐쉬(33)에 있는 경우에, 각각의 대리 프로세서의 마지막 사용 시간과 대리 프로세서의 상태를 조사하여 정의된 최대 유휴_시간보다 오래 유휴한 상태로 남아 있는 대리 프로세서에 대해 초과된 수만큼을 대리 프로세서 캐쉬(33)에서 제거한다.In other words, if there are more surrogate processors in the surrogate processor cache 33 than the minimum number of surrogate processors stored in advance, the idle time for each surrogate processor and the surrogate processor's state are idle for longer than the maximum idle_time defined. The surplus number of surrogate processors remaining in one state are removed from the surrogate processor cache 33.

도 6a 및 6b는 본 발명에 따른 대리 프로세서 관리방법중 이기종 다중 데이터베이스 서버에 접수된 요청을 처리하는 과정에 대한 일실시예 상세 흐름도이다.6A and 6B are detailed flowcharts illustrating a process of processing a request received by a heterogeneous multiple database server in a surrogate processor management method according to the present invention.

도 6a 및 6b에 도시된 바와 같이, 본 발명에 따른 프로세서 관리방법중 이기종 다중 데이터베이스 서버에 접수된 요청을 처리하는 과정(502)은, 먼저 이기종 다중 데이터베이스 시스템(32)이 이기종 다중 데이터베이스 서버에 접수된 요청을 처리하기 위해서는 접수된 요청이 있는지를 판단한다(601).As shown in FIGS. 6A and 6B, a process 502 of processing a request received by a heterogeneous multiple database server in the processor management method according to the present invention is first performed by the heterogeneous multiple database system 32 at the heterogeneous multiple database server. In order to process the received request, it is determined whether there is a received request (601).

판단결과, 접수된 요청이 없으면, 이기종 다중 데이터베이스 서버가 휴지 중일때 대리 프로세서 관리 작업을 수행한 후에(503) 다시 접수된 요청이 있는지를 판단하는 단계(601)로 넘어간다.As a result of the determination, if there is no received request, after performing the surrogate processor management task when the heterogeneous multiple database server is idle (503), the process proceeds to step 601 to determine whether there is a received request.

판단결과, 접수된 요청이 있으면, 접수된 요청이 시스템 종료 요청(즉, 이기종 다중 데이터베이스 서버 중지 요청)인지를 분석한다(602).As a result of the determination, if there is a received request, it is analyzed whether the received request is a system shutdown request (ie, a heterogeneous multiple database server stop request) (602).

분석결과, 이기종 다중 데이터베이스 서버 중지 요청이면, 모든 대리 프로세서를 제거하고(603) 이기종 다중 데이터베이스 시스템(32)을 종료한다.If the analysis result is that the heterogeneous multiple database server stop request, all surrogate processors are removed (603) and the heterogeneous multiple database system 32 is terminated.

분석결과, 시스템 종료 요청이 아니면, 이기종 다중 데이터베이스 서버에 접수된 전역 클라이언트(31)로부터의 요청 내역을 검사한다(604).If the result of the analysis is not a system shutdown request, the request details from the global client 31 received by the heterogeneous multiple database server are examined (604).

검사결과, 전역 클라이언트(31)의 커밋 요청이거나 철회 요청일 경우에, 전역 클라이언트(31)가 접근한 모든 지역 데이터베이스(34)에 대해 사용했던 대리 프로세서를 대리 프로세서 캐쉬(33)에 반환하고(605) 반환된 각각의 대리 프로세서에 대해 해당 대리 프로세서를 기다리고 있던 다른 전역 클라이언트(31)가 있으면 반환한 대리 프로세서를 기다리고 있던 전역 클라이언트(31)에 연결하여 사용할 수 있도록 한 후에(606) 접수된 요청이 있는지를 판단하는 단계(601)로 넘어간다.If the result of the check is a commit request or a withdrawal request of the global client 31, the surrogate processor used for all the local databases 34 accessed by the global client 31 is returned to the surrogate processor cache 33 (605). For each surrogate processor returned, if there is another global client 31 waiting for that surrogate processor, the request received after the connection is made available to the global client 31 that was waiting for the returned surrogate processor (606). The process proceeds to step 601 to determine if there is any.

검사결과, 전역 클라이언트(31)의 지역 데이터베이스(34)에 대한 접근 요청인 경우에, 현재 요청을 보낸 전역 클라이언트(31)가 접근하고자 하는 지역 데이터베이스(34)에 대해 이미 할당된 대리 프로세서가 연결되어 있는지를 판단한다(607).As a result of the check, in the case of a request for access to the local database 34 of the global client 31, a surrogate processor already allocated to the local database 34 to which the global client 31 which has sent the current request is to be connected is connected. Determine if there is (607).

판단결과, 현재 요청을 보내 전역 클라이언트(31)가 접근하고자 하는 지역 데이터베이스(34)에 대한 대리 프로세서가 연결되어 있으면, 연결된 대리 프로세서에게 지역 데이터베이스(34)의 접근 요청을 전달한 후에(608) 접수된 요청이 있는지를 판단하는 단계(601)로 넘어간다.As a result, if the surrogate processor is connected to the local database 34 to which the global client 31 wants to access by sending a current request, the access request of the local database 34 is forwarded to the connected surrogate processor (608). Proceed to step 601 to determine if there is a request.

판단결과, 해당 대리 프로세서가 연결되어 있지 않으면, 해당 지역 데이터베이스에 대한 대리 프로세서 캐쉬(33)를 검색하여 유휴인 대리 프로세서가 있는지를 분석한다(609).As a result of the determination, if the corresponding surrogate processor is not connected, the surrogate processor cache 33 for the local database is searched to analyze whether there is an idle surrogate processor (609).

분석결과, 유휴한 대리 프로세서가 있으면, 현재 대리 프로세서의 수를 하나 증가시키고(610) 유휴 대리 프로세서를 현재 전역 클라이언트(34)에게 연결하여 데이터베이스 접근을 요청을 전달한 후에(611), 접수된 요청이 있는지를 판단하는 단계(601)로 넘어간다.The analysis shows that if there is an idle surrogate processor, the number of surrogate surrogate processors is increased by one (610) and the idle surrogate processor is connected to the current global client 34 to forward a database access request (611). The process proceeds to step 601 to determine if there is any.

분석결과, 유휴한 대리 프로세서가 없으면, 현재 대리 프로세서의 수가 최대 대리 프로세서의 수를 초과하는지를 검사한다(612).As a result of the analysis, if there is no idle surrogate processor, it is checked whether the current surrogate processor number exceeds the maximum surrogate processor (612).

검사결과, 현재 대리 프로세서의 수가 최대 프로세서의 수를 초과하면, 현재 전역 클라이언트(31)가 접근하고자 하는 지역 데이터베이스(34)의 대기_전역_클라이언트_리스트에 추가하여 해당 지역 데이터베이스(34)에 대해 유휴한 대리 프로세서가 생길 때까지 기다리도록 하고(613) 접수된 요청이 있는지를 판단하는 단계(601)로 넘어간다.If the current number of surrogate processors exceeds the maximum number of processors, the local database 34 is added to the standby_global_client_list of the local database 34 that the current global client 31 wants to access. Wait until an idle surrogate processor is created (613) and go to step 601 to determine if there is a received request.

검사결과, 현재 대리 프로세서의 수가 최대 프로세서의 수를 초과하지 않으면, 새로운 대리 프로세서를 생성하여 해당 전역 클라이언트에게 연결하고 데이터베이스 접근 요청을 전달하여 현재 대리 프로세서의 수를 하나 증가시킨 후에(614) 접수된 요청이 있는지를 판단하는 단계(601)로 넘어간다.As a result of the check, if the current number of surrogate processors does not exceed the maximum number of processors, a new surrogate processor is created, connected to the corresponding global client, and the database access request is increased to increase the current surrogate processor by one (614). Proceed to step 601 to determine if there is a request.

이상에서 설명한 본 발명은 전술한 실시예 및 첨부된 도면에 한정되는 것이 아니고, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하다는 것이 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 명백할 것이다.The present invention described above is not limited to the above-described embodiments and the accompanying drawings, and it is common in the art that various substitutions, modifications, and changes can be made without departing from the technical spirit of the present invention. It will be evident to those who have knowledge of.

상기한 바와 같은 본 발명은, 대리 프로세서 캐슁 기법을 이용하여 여러 전역 클라이언트가 하나의 대리 프로세서에 시차를 두고 공유하게 함으로써, 매번 전역 클라이언트와 지역 데이터베이스간의 연결 때마다 새로운 대리 프로세서를 생성시킬 필요가 없으므로 전반적인 시스템 향상을 가져올 수 있고 또한, 이기종 다중 데이터베이스 시스템의 대리 프로세서 관리에 드는 비용 및 자원을 절감할 수 있는 효과가 있다.As described above, the present invention uses a surrogate processor caching scheme to allow multiple global clients to share the same time on one surrogate processor, thereby eliminating the need to create a new surrogate processor for each connection between the global client and the local database. This can result in overall system improvements and can reduce the cost and resources of managing surrogate processors in heterogeneous multiple database systems.

Claims (8)

이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법에 있어서,In the surrogate processor management method in a heterogeneous multiple database system, 상기 이기종 다중 데이터베이스 시스템에, 하나의 대리 프로세서가 그 생명주기 동안 다수의 지역 데이터베이스로 동시에 접근하는 다수의 전역 클라이언트를 지원할 수 있도록, 최소 대리 프로세서 수만큼 대리 프로세서를 생성하는 제 1 단계; 및Generating a surrogate processor for the heterogeneous multiple database system by at least the surrogate processor so that one surrogate processor can support a plurality of global clients simultaneously accessing multiple local databases during its life cycle; And 상기 다수의 전역 클라이언트로부터의 상기 다수의 지역 데이터베이스에 대한 요청에 따라, 상기 이기종 다중 데이터베이스 시스템이 상기 다수의 전역 클라이언트가 상기 하나의 대리 프로세서에 시차를 두고 공유하도록 하여 해당 지역 데이터베이스를 연결하는 제 2 단계In response to a request for the plurality of local databases from the plurality of global clients, the heterogeneous multi-database system connects the local databases by causing the plurality of global clients to share the staggered time in the one surrogate processor. step 를 포함하여 이루어진 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법.A surrogate processor management method in a heterogeneous multiple database system comprising a. 제 1 항에 있어서,The method of claim 1, 상기 이기종 다중 데이터베이스 시스템의 서버에 요청이 없는 경우에, 대리 프로세서 관리 작업을 수행하는 제 3 단계A third step of performing a surrogate processor management task when there is no request from the server of the heterogeneous multiple database system; 를 더 포함하여 이루어진 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법.The surrogate processor management method in a heterogeneous multiple database system further comprising. 제 2 항에 있어서,The method of claim 2, 상기 제 3 단계는,The third step, 미리 정의된 대리 프로세서의 수보다 많은 대리 프로세서가 대리 프로세서 캐쉬에 있는 경우 각각의 대리 프로세서의 마지막 사용 시간을 조사하여 지정된 최대 유휴 시간보다 오래 대기한 대리 프로세서를 초과된 수만큼 캐쉬에서 제거하는 것을 특징으로 하는 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법.If there are more surrogate processors in the surrogate processor cache than the number of predefined surrogate processors, the surviving time of each surrogate processor is examined and the surrogate surrogate processor has been removed from the cache for an excess of the specified maximum idle time. A surrogate processor management method in heterogeneous multiple database systems. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 3, 상기 제 2 단계는,The second step, 상기 이기종 다중 데이터베이스 시스템이 이기종 다중 데이터베이스 서버에 접수된 요청이 있는지를 판단하는 제 4 단계;A fourth step of the heterogeneous multiple database system determining whether there is a request received by the heterogeneous multiple database server; 상기 제 4 단계의 판단결과, 상기 이기종 다중 데이터베이스 서버에 접수된 요청이 있으면, 접수된 요청이 시스템 종료 요청인지를 분석하는 제 5 단계;A fifth step of analyzing whether the received request is a system termination request if there is a request received by the heterogeneous multiple database server as a result of the determination of the fourth step; 상기 제 5 단계의 분석결과, 상기 이기종 다중 데이터베이스 서버에 접수된 요청이 시스템 종료 요청이면 (이기종 다중 데이터베이스 서버 중지 요청)이면, 모든 대리 프로세서를 제거하는 제 6 단계;A sixth step of removing all surrogate processors if the result of the analysis of the fifth step is a request for shutting down the heterogeneous multiple database server (stop heterogeneous multiple database server stop request); 상기 제 5 단계의 분석결과, 시스템 종료 요청이 아니면, 상기 이기종 다중 데이터베이스 서버에 접수된 전역 클라이언트로부터의 요청 내역을 검사하는 제 7 단계;A seventh step of checking a request history from a global client received by the heterogeneous multiple database server if the analysis result of the fifth step is not a system shutdown request; 상기 제 7 단계의 검사결과, 상기 전역 클라이언트의 상기 지역 데이터베이스에 대한 접근 요청인 경우에, 현재 요청을 보낸 상기 전역 클라이언트가 접근하고자 하는 상기 지역 데이터베이스에 대해 기 할당된 대리 프로세서가 있는지를 판단하는 제 8 단계;A result of judging whether there is a pre-allocated surrogate processor for the local database to which the global client which has sent the current request wants to access, in the case of the check result of the seventh step; 8 steps; 상기 제 8 단계의 판단결과, 상기 기 할당된 대리 프로세서가 있으면 상기 기 할당된 대리 프로세서에게 상기 지역 데이터베이스에 대한 접근 요청을 전달 후에 상기 제 4 단계로 넘어가는 제 9 단계;A ninth step of transferring the access request to the local database to the pre-allocated surrogate processor if the pre-allocated surrogate processor is present as a result of the determination of the eighth step; 상기 제 8 단계의 판단결과, 상기 기 할당된 대리 프로세서가 없으면, 해당 지역 데이터베이스에 대한 대리 프로세서 캐쉬를 검색하여 유휴 대리 프로세서가 있는지를 분석하는 제 10 단계;A tenth step of analyzing whether there is an idle surrogate processor by searching the surrogate processor cache for a corresponding local database if there is no surrogate surrogate processor as a result of the determination of the eighth step; 상기 제 10 단계의 분석결과, 상기 유휴 대리 프로세서가 있으면, 현재 대리 프로세서의 수를 하나 증가시키고, 상기 유휴 대리 프로세서를 상기 전역 클라이언트에게 연결하여 데이터베이스 접근 요청을 전달한 후에, 상기 제 4 단계로 넘어가는 제 11 단계;As a result of the analysis of the tenth step, if there is the idle surrogate processor, the number of current surrogate processors is increased by one, and after connecting the idle surrogate processor to the global client to transmit a database access request, the process proceeds to the fourth step. Eleventh step; 상기 제 10 단계의 분석결과, 상기 유휴 대리 프로세서가 없으면, 현재 대리 프로세서의 수가 최대 대리 프로세서의 수를 초과하는지를 검사하는 제 12 단계;A twelfth step of checking whether the current surrogate number of processors exceeds the maximum surrogate number of processors if there is no idle surrogate processor as a result of the analysis of the tenth step; 상기 제 12 단계의 검사결과, 현재 대리 프로세서의 수가 최대 대리 프로세서의 수를 초과하면, 현재 전역 클라이언트를 접근하고자 하는 지역 데이터베이스의 대기_전역_클라이언트_리스트에 추가하여 해당 지역 데이터베이스에 대해 유휴한 대리 프로세서가 생길 때까지 기다리도록 하고 상기 제 4 단계로 넘어가는 제 13 단계; 및As a result of the check in the twelfth step, if the current number of surrogate processors exceeds the maximum number of surrogate processors, an idle surrogate for the local database is added to the standby_global_client_list of the local database to which the current global client is to be accessed. A thirteenth step of waiting for a processor to appear and skipping to the fourth step; And 상기 제 12 단계의 검사결과, 현재 대리 프로세서의 수가 최대 프로세서의 수를 초과하지 않으면, 새로운 대리 프로세서를 생성하여 해당 전역 클라이언트에게 연결하고 데이터베이스 접근 요청을 전달하여 현재 대리 프로세서의 수를 하나 증가시킨 후에 상기 제 4 단계로 넘어가는 제 14 단계As a result of the check in the twelfth step, if the number of current surrogate processors does not exceed the maximum number of processors, a new surrogate processor is created, connected to the corresponding global client, and a database access request is transmitted to increase the number of surrogate processors by one. Fourteenth step that goes to the fourth step 를 포함하여 이루어진 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법.A surrogate processor management method in a heterogeneous multiple database system comprising a. 제 4 항에 있어서,The method of claim 4, wherein 상기 제 7 단계의 검사결과, 상기 전역 클라이언트의 커밋 요청이거나 철회 요청일 경우에, 상기 전역 클라이언트가 접근한 모든 지역 데이터베이스에 대해 사용했던 상기 대리 프로세서를 대리 프로세서 캐쉬에 반환하는 제 15 단계; 및A fifteenth step of returning, to the surrogate processor cache, the surrogate processor used for all the local databases accessed by the global client when the check result of the seventh step is a commit request or a withdrawal request of the global client; And 반환한 각각의 대리 프로세서에 대해 해당 대리 프로세서를 기다리고 있던 상기 전역 클라이언트에 연결하여 사용할 수 있도록 한 후에 상기 제 4 단계로 넘어가는 제 16 단계For each surrogate agent returned, a sixteenth step of allowing the surrogate to connect to and use the surrogate global client, and then proceed to the fourth step. 를 더 포함하여 이루어진 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법.The surrogate processor management method in a heterogeneous multiple database system further comprising. 제 1 항에 있어서,The method of claim 1, 상기 이기종 다중 데이터베이스 시스템은,The heterogeneous multiple database system, 대리 프로세서 캐슁을 위해 마지막 사용 시간, 대리 프로세서 상태, 할당된Last Used Time, Surrogate Processor State, and Allocated for Surrogate Processor Caching 전역 클라이언트, 최대 대리 프로세서 수, 최소 대리 프로세서 수, 현재 생성된 대리 프로세서 수, 최대 유휴 시간 및 대리 프로세서를 기다리고 있는 상기 다수의 전역 클라이언트들에 관한 정보 등을 포함하는 각 지역 데이터베이스 별로 관리하여 상기 대리 프로세서에 관한 정보를 관리하는 것을 특징으로 하는 이기종 다중 데이터베이스 시스템에서의 대리 프로세서 관리방법.The surrogate is managed for each local database including global clients, the maximum number of surrogate processors, the minimum number of surrogate processors, the number of surrogate processors currently created, the maximum idle time, and information about the plurality of global clients waiting for surrogate processors. A method for managing a surrogate processor in a heterogeneous multiple database system, characterized by managing information about a processor. 프로세서를 구비한 이기종 다중 데이터베이스 시스템에,In heterogeneous multiple database systems with processors, 하나의 대리 프로세서가 그 생명 주기동안 다수의 지역 데이터베이스로 동시에 접근하는 다수의 전역 클라이언트를 지원할 수 있도록, 최소 대리 프로세서 수만큼 대리 프로세서를 생성하는 제 1 기능; 및A first function of creating a surrogate processor by a minimum number of surrogate processors so that one surrogate processor can support multiple global clients simultaneously accessing multiple local databases during its life cycle; And 상기 다수의 전역 클라이언트로부터의 상기 다수의 지역 데이터베이스에 대한 요청에 따라, 상기 이기종 다중 데이터베이스 시스템이 상기 다수의 전역 클라이언트가 상기 하나의 대리 프로세서에 시차를 두고 공유하도록 하여 해당 지역 데이터베이스를 연결하는 제 2 기능In response to a request for the plurality of local databases from the plurality of global clients, the heterogeneous multi-database system connects the local databases by causing the plurality of global clients to share the staggered time in the one surrogate processor. function 을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium having recorded thereon a program for realizing this. 제 7 항에 있어서,The method of claim 7, wherein 상기 이기종 다중 데이터베이스 시스템의 서버에 요청이 없는 경우에, 대리 프로세서 관리 작업을 수행하는 제 3 기능A third function of performing a surrogate processor management task when there is no request from a server of the heterogeneous multiple database system; 을 더 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.A computer-readable recording medium that records a program for further realization.
KR1019990022728A 1999-06-17 1999-06-17 Method for agent processor management in heterogenous multidatabase systems KR100323588B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019990022728A KR100323588B1 (en) 1999-06-17 1999-06-17 Method for agent processor management in heterogenous multidatabase systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019990022728A KR100323588B1 (en) 1999-06-17 1999-06-17 Method for agent processor management in heterogenous multidatabase systems

Publications (2)

Publication Number Publication Date
KR20010002763A true KR20010002763A (en) 2001-01-15
KR100323588B1 KR100323588B1 (en) 2002-02-19

Family

ID=19593079

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019990022728A KR100323588B1 (en) 1999-06-17 1999-06-17 Method for agent processor management in heterogenous multidatabase systems

Country Status (1)

Country Link
KR (1) KR100323588B1 (en)

Also Published As

Publication number Publication date
KR100323588B1 (en) 2002-02-19

Similar Documents

Publication Publication Date Title
CN107247808B (en) Distributed NewSQL database system and picture data query method
US6466965B1 (en) Centralized affinity maintenance in a workload managed client/server data processing system
US5812996A (en) Database system with methods for optimizing query performance with a buffer manager
US5751962A (en) Object-based systems management of computer networks
US6820085B2 (en) Web system having clustered application servers and clustered databases
CA2744925C (en) Method and system for executing a database query
US6078955A (en) Method for controlling a computer system including a plurality of computers and a network processed as a user resource
US20110161281A1 (en) Distributed Transaction Management in a Distributed Shared Disk Cluster Environment
US20130080386A1 (en) Database caching utilizing asynchronous log-based replication
US20070143340A1 (en) System and method of time-based cache coherency maintenance in user file manager of object-based storage system
JP2002049601A (en) Method for automatically composing cluster of computing environment, system therefor, and program product
JPH06110808A (en) Method and apparatus for using client interface for orientation and calling of object of application
US20120059791A1 (en) Automating the Logging of Table Changes in a Database
CN112035420B (en) Data sharing method, sharing device and system
CN104423982A (en) Request processing method and device
CN109165078B (en) Virtual distributed server and access method thereof
US20090100082A1 (en) Replication and mapping mechanism for recreating memory durations
US9009098B1 (en) Methods and apparatus for creating a centralized data store
KR100323588B1 (en) Method for agent processor management in heterogenous multidatabase systems
CN110019113B (en) Database service processing method and database server
JP3806609B2 (en) Parallel database system and distributed file system
Watson The design of an ODMG compatible parallel object database server
KR20050026306A (en) Shared-nothing database cluster server system and on-line scaling method
KR100450419B1 (en) A Method of the Multi-thread Client Liberary's Operating in Database System
US20230342355A1 (en) Diskless active data guard as cache

Legal Events

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

Payment date: 20100108

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee