KR20110066940A - 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템 - Google Patents

복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템 Download PDF

Info

Publication number
KR20110066940A
KR20110066940A KR20117008669A KR20117008669A KR20110066940A KR 20110066940 A KR20110066940 A KR 20110066940A KR 20117008669 A KR20117008669 A KR 20117008669A KR 20117008669 A KR20117008669 A KR 20117008669A KR 20110066940 A KR20110066940 A KR 20110066940A
Authority
KR
South Korea
Prior art keywords
mode
transition
distributed
shared data
concentrated
Prior art date
Application number
KR20117008669A
Other languages
English (en)
Inventor
히로시 호리이
요스케 오자와
미키 에노키
타미야 오노데라
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110066940A publication Critical patent/KR20110066940A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/161Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/176Support for shared access to files; File sharing support
    • G06F16/1767Concurrency control, e.g. optimistic or pessimistic approaches
    • G06F16/1774Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2336Pessimistic concurrency control approaches, e.g. locking or multiple versions without time stamps
    • G06F16/2343Locking methods, e.g. distributed locking or locking implementation details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 시간대에 관계없이 효율 좋게 동작시키는 시스템에 관한 것이다. 본 발명은 공유 데이터에 액세스하는 복수의 어플리케이션 서버와, 복수의 어플리케이션 서버 각각에 의한 공유 데이터의 록을 집중 관리하는 집중 관리부를 포함하고, 복수의 어플리케이션 서버 각각은, 상기 어플리케이션 서버에 의한 공유 데이터의 록을 관리하는 분산 관리부, 분산 관리부로부터 록을 취득하는 분산 모드, 또는 집중 관리부로부터 록을 취득하는 집중 모드 중 하나를 선택하는 선택부를 포함하는 시스템이다.

Description

복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템{SYSTEM ACCESSING SHARED DATA BY A PLURALITY OF APPLICATION SERVERS}
본 발명은, 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템, 해당 시스템에서 어플리케이션 서버, 프로그램 및 방법에 관한 것이다.
데이터 베이스를 저장하는 데이터 베이스 서버와, 각각이 데이터 베이스를 액세스하는 복수의 어플리케이션 서버를 포함하는 시스템이 알려져 있다. 이와 같은 시스템은, 어플리케이션 서버에 데이터 베이스의 참조 결과를 캐시 시키고, 데이터 베이스 서버의 부하를 경감할 수 있다.
어플리케이션 서버에 데이터 베이스의 참조 결과를 캐시 시키는 시스템에서는, 데이터 베이스와 맞지 않는 캐시 데이터의 참조 방지를 목적으로, 복수의 어플리케이션 서버 사이에서 록 제어를 해야 한다. 록 제어의 수법으로는, 예를 들면, 각 어플리케이션 서버가 각각 개별로 록을 관리하는 분산 록 방식, 및, 록 서버 등이 록을 집중해서 관리하는 집중 록 방식이 알려져 있다. 또한, 이하, 분산 록 방식의 록 제어를 캐시 모드, 집중 록 방식의 록 제어를 데이터 베이스 모드라고 한다.
캐시 모드가 적용된 시스템에서, 데이터 베이스를 참조하는 경우, 어플리케이션 서버는, 참조하기 전에 로컬에서 관리하는 참조 록을 취득한다. 또한, 캐시 모드가 적용된 시스템에서 데이터 베이스를 갱신할 경우, 어플리케이션 서버는, 갱신하기 전에 다른 모든 어플리케이션 서버 내에서 관리하는 배타 록을 취득한다. 또한, 데이터 베이스 모드가 적용된 시스템에서, 데이터 베이스를 참조 또는 갱신할 경우, 어플리케이션 서버는, 참조 또는 갱신하기 전에 록 서버에서 관리하는 참조 록 또는 배타 록을 취득한다.
여기에서, 캐시 모드는, 참조 록을 취득할 때의 레이턴시(latency)가 짧게 되지만, 배타 록을 복수의 어플리케이션 서버의 각각에서 취득해야 하고, 처리가 번잡해진다. 이에 비해서, 데이터 베이스 모드는, 배타 록을 하나의 록 서버에서만 취득하면 되기 때문에 처리가 간단하지만, 참조 록을 취득할 때의 레이턴시는 길게 된다. 따라서, 참조의 많은 어플리케이션을 실현하는 시스템에서는, 캐시 모드를 적용하고, 갱신이 많은 어플리케이션을 실현하는 시스템에서는, 데이터 베이스 모드를 적용하는 것이 바람직하다.
그러나, 은행 업무 등을 실현하는 시스템은, 낮 시간대에는 데이터 베이스의 갱신 보다 참조가 많고, 또, 고객에 의한 이용이 비교적으로 적은 밤 시간대에는, 데이터 베이스의 배치 갱신이 수행된다. 이와 같은 시스템에 캐시 모드를 적용한 경우, 참조가 비교적으로 많은 낮 시간대에서는 동작 효율이 좋지만, 배치 갱신이 수행되는 밤 시간대에서는 동작 효율이 나빠진다. 반대로, 이와 같은 시스템에 데이터 베이스 모드를 적용한 경우에는, 배치 갱신이 수행되는 밤 시간대에는 동작 효율이 좋고, 참조가 비교적으로 많은 낮 시간대에는 동작 효율이 나빠진다. 따라서, 예를 들면 어느 특정 시간대에서 갱신이 비교적으로 많아지는 어플리케이션을 실현하는 시스템에서는, 시간대에 관계없이 동작 효율을 좋게 하는 것은 어렵다.
따라서 본 발명은, 상기의 과제를 해결할 수 있는 시스템, 어플리케이션 서버, 프로그램 및 방법을 제공하는 것을 목적으로 한다. 이 목적은 특허 청구의 범위에 있어서 독립항의 기재의 특징의 조합에 의해 달성된다. 또 종속 항은 본 발명의 유리한 구체 예를 규정한다.
상기 과제를 해결하기 위해서, 본 발명의 제 1 측면에서는, 공유 데이터를 액세스하는 복수의 어플리케이션 서버, 상기 복수의 어플리케이션 서버의 각각에 의한 상기 공유 데이터의 록을 집중 관리하는 집중 관리부를 포함하고, 상기 복수의 어플리케이션 서버의 각각은, 상기 어플리케이션 서버에 의한 상기 공유 데이터의 록을 관리하는 분산 관리부, 상기 분산 관리부에서 록을 취득하는 분산 모드 또는 상기 집중 관리부에서 록을 취득하는 집중 모드를 선택하는 선택부, 를 가진 시스템을 제공한다. 또한, 상기 시스템에서 어플리케이션 서버, 상기 어플리케이션 서버로서 컴퓨터를 기능시키는 프로그램 및 방법을 제공한다. 또한, 상기의 발명의 개요는, 본 발명의 필요한 특징의 모든 것을 열거한 것은 아니다. 또, 이것들의 특징 군의 서브 콤비네이션도 발명이 될 수 있다.
도 1은 본 발명의 실시 형태에 관계되는 정보 처리 시스템(10)의 구성을 나타낸다.
도 2는 복수의 어플리케이션 서버(30)의 각각의 구성을 나타낸다.
도 3은 공유 데이터(ITEM 테이블)의 데이터 구조를 정의하는 스키마의 한 예를 나타낸다.
도 4는 도 3에 나타내는 ITEM 테이블에서 값을 참조하기 위한 참조 쿼리(query)의 한 예를 나타낸다.
도 5는 캐시부(56)가 캐싱하는 데이터의 한 예를 나타낸다.
도 6은 선택부(60)에 의해 선택되는 모드의 한 예를 나타낸다.
도 7은 모드를 천이시키는 경우의 천이 조건의 한 예를 나타낸다.
도 8은 각 모드에서, 캐시 참조의 가부(可否), 데이터 베이스의 참조의 가부 및 데이터 베이스의 갱신의 가부의 한 예를 나타낸다.
도 9는 정보 처리 시스템(10)에서, 어느 하나의 어플리케이션 서버(30(A1)) 및 다른 복수의 어플리케이션 서버(30(A2~An))에 의한 처리 흐름의 한 예를 나타낸다.
도 10은 정보 처리 시스템(10)에 새로운 어플리케이션 서버(30)가 추가된 경우에, 상기 새로운 어플리케이션 서버(30)의 모드의 결정의 흐름을 나타낸다.
도 11은 본 발명의 실시 형태에 관계되는 컴퓨터(1900)의 하드웨어 구성의 한 예를 나타낸다.
이하, 발명의 실시 형태를 통해서 본 발명을 설명하지만, 이하의 실시 형태는 특허 청구의 범위에 관계되는 발명을 한정하는 것은 아니다. 또한, 실시 형태의 중에서 설명된 특징의 조합 모든 것이 발명의 해결 수단에 필수적인 것으로 한정하는 것은 아니다.
도 1은, 본 실시 형태에 관계되는 정보 처리 시스템(10)의 구성을 나타낸다. 정보 처리 시스템(10)은, 데이터 베이스 서버(20), 복수의 어플리케이션 서버(30), 집중 관리부(40)를 포함한다.
데이터 베이스 서버(20)는, 공유 데이터를 기억한다. 본 실시 형태에서는, 공유 데이터는, 데이터 베이스 내의 테이블이다.
복수의 어플리케이션 서버(30) 각각은, 어플리케이션 프로그램을 실행하는 것으로, 상기 어플리케이션 프로그램에 기술된 정보 처리를 수행한다. 또, 복수의 어플리케이션 서버(30) 각각은, 어플리케이션 프로그램의 기술에 따라서, 데이터 베이스 서버(20)에 기억된 공유 데이터를 네트워크를 통해 액세스한다. 즉, 복수의 어플리케이션 서버(30) 각각은, 공유 데이터의 참조 및 공유 데이터의 갱신을 한다.
집중 관리부(40)는, 복수의 어플리케이션 서버(30) 각각에 의한 공유 데이터의 록을 집중 관리한다. 본 실시 형태에서는, 집중 관리부(40)는, 공유 데이터의 레코드마다 록을 관리한다.
보다 상세하게는, 집중 관리부(40)는, 하나의 레코드에 대해서, 하나의 어플리케이션 서버(30)로부터 참조 록(read lock)의 취득 요구를 받은 경우, 다른 어플리케이션 서버(30)가 다른 록을 취득하지 않는 것을 조건으로서, 상기 하나의 어플리케이션 서버(30)가 상기 참조 록을 취득하도록 한다. 또, 집중 관리부(40)는 하나의 레코드에 대해서, 하나의 어플리케이션 서버(30)로부터 배타 록의 취득 요구를 받은 경우, 다른 어플리케이션 서버(30)가 참조 록 또는 배타 록을 취득하지 않는 것을 조건으로, 상기 하나의 어플리케이션 서버(30)가 배타록을 취득하도록 한다. 그리하여, 복수의 어플리케이션 서버(30)는, 서로에 부정합(inconsistency)하지 않고 공유 데이터를 참조(read) 및 갱신(update)할 수 있다. 또한, 데이터 베이스 서버(20) 및 집중 관리부(40)는, 동일의 시스템에 의해 관리되는 구성이어도 된다.
도 2는, 복수의 어플리케이션 서버(30)의 각각의 구성을 나타낸다. 복수의 어플리케이션 서버(30)의 각각은, 실행부(52), 액세스 제어부(54), 캐시부(56), 분산 관리부(58)를 포함한다. 이와 같은 어플리케이션 서버(30)는, 컴퓨터가 프로그램을 실행하는 것으로 실현된다.
실행부(52)는, 어플리케이션 프로그램에 의해 제공되는 정보 처리를 실행한다. 실행부(52)는, 예를 들면 주어진 요구(request)에 따른 처리를 실행하여, 처리 결과를 응답(response)으로서 답신한다. 또, 실행부(52)는, 공유 데이터를 참조 또는 갱신할 처리를 실행하는 경우에는, 데이터 베이스 서버(20)에, 액세스 제어부(54)를 통해서 참조 요구 또는 갱신 요구를 발행한다. 실행부(52)는, 한 예로서, SQL(Structured Query Language)에 의해 기술된 참조 요구 또는 갱신 요구를 발행해도 된다.
액세스 제어부(54)는, 실행부(52)에 의해 발행된 공유 데이터에 대한 참조 요구 또는 갱신 요구를, 데이터 베이스 서버(20)에 네트워크를 통해서 송신한다. 그리고, 액세스 제어부(54)는, 데이터 베이스 서버(20)에 송신한 요구에 따른 처리 결과를 취득하여, 실행부(52)에 답신한다.
또한, 액세스 제어부(54)는, 데이터 베이스 서버(20)에 대한 액세스의 트랜잭션이 시작된 경우, 선택부(60)를 통해서, 집중 관리부(40) 또는 분산 관리부(58)에서 록을 취득한다. 보다 자세하게는, 액세스 제어부(54)는, 갱신 요구를 포함하는 트랜잭션(transaction)(이하, 갱신 트랜잭션(update transaction)이라고 칭한다)을 시작할 경우에는, 배타 록(exclusive lock)을 취득한다. 또, 액세스 제어부(54)는, 갱신 요구를 포함하지 않는 트랜잭션(이하, 참조 트랜잭션(read transaction)이라고 칭한다)을 시작할 경우에는, 참조 록을 취득한다. 액세스 제어부(54)는, 록을 취득할 수 없는 경우에는, 공유 데이터에 대한 액세스를 수행하지 않는다.
또한, 트랜잭션이란, 데이터 베이스 서버(20)와의 사이에서 주고 받는 예를 들면 불가분(不可分)한 복수의 처리를 정리한 단위를 말한다. 데이터 베이스 서버(20)가 예를 들어 SQL 서버라면, 트랜잭션은, “Begin”에서 ”Commit” 또는 “Roll back”까지의 일련의 처리를 말한다.
캐시부(56)는, 액세스 제어부(54)가 참조한 공유 데이터를 캐싱한다. 캐시부(56)는, 트랜잭션이 종료한 경우, 캐싱한 공유 데이터를 무효화(invalidate)해도 된다.
분산 관리부(58)는, 상기 어플리케이션 서버(30)에 의한 공유 데이터의 록을 관리한다. 본 실시 형태에서는, 분산 관리부(58)는, 공유 데이터의 레코드마다 록을 관리한다.
보다 상세하게는, 분산 관리부(58)는, 하나의 레코드에 대해서, 액세스 제어부(54)로부터 참조 록의 취득 요구를 수신한 경우, 다른 어플리케이션 서버(30)의 액세스 제어부(54)가 배타 록을 취득하지 않았다는 것을 조건으로 하고, 상기 액세스 제어부(54)가 참조 록을 취득하도록 한다. 또, 분산 관리부(58)는, 하나의 레코드에 대해서, 액세스 제어부(54)로부터 배타 록의 취득 요구를 수신한 경우, 다른 어플리케이션 서버(30)의 각각에 물어보고, 다른 어플리케이션 서버(30)의 모든 것이 참조 록 또는 배타 록을 취득하지 않았다는 것을 조건으로 해서, 상기 액세스 제어부(54)가 배타 록을 취득하도록 한다. 이러한 방법으로, 분산 관리부(58)는, 다른 어플리케이션 서버(30)와 부정합 없이 공유 데이터를 참조 및 갱신할 수 있다.
선택부(60)는, 분산 관리부(58)로부터 록을 취득하는 분산 모드, 또는 집중 관리부(40)로부터 록을 취득하는 집중 모드를 선택한다. 선택부(60)는, 분산 모드를 선택한 경우, 액세스 제어부(54)로부터 취득 요구를 분산 관리부(58)에 주고, 액세스 제어부(54)가 분산 관리부(58)로부터 록을 취득하도록 한다. 또, 선택부(60)는, 집중 모드를 선택한 경우, 액세스 제어부(54)로부터의 록의 취득 요구를 네트워크를 통해서 집중 관리부(40)에 주고, 액세스 제어부(54)가 집중 관리부(40)로부터 록을 취득하도록 한다.
여기서, 선택부(60)는, 다른 어플리케이션 서버(30) 내의 각각의 선택부(60)와 통신을 수행한다. 선택부(60)는, 복수의 어플리케이션 서버(30) 중 적어도 하나가 공유 데이터를 갱신하는 것을 조건으로 하여, 집중 모드로 천이(change)한다. 또, 선택부(60)는, 복수의 어플리케이션 서버(30)의 모든 것이 공유 데이터를 갱신하지 않은 것을 조건으로 하여, 분산 모드로 천이한다. 그리고, 액세스 제어부(54)는, 분산 모드에서, 공유 데이터의 참조를 허가하고 또한 갱신을 금지해도 된다. 또, 액세스 제어부(54)는, 집중 모드에서, 공유 데이터의 참조 및 갱신을 허가해도 된다.
이와 같은 어플리케이션 서버(30)는, 공유 데이터를 갱신할 경우, 집중 관리부(40)로부터 배타 록을 취득하기 때문에, 다른 어플리케이션 서버와의 사이의 주고 받기를 생략하는 것이 가능하다. 또한, 어플리케이션 서버(30)는, 공유 데이터를 갱신하지 않는 경우, 분산 관리부(58)로부터 참조 록을 취득하기 때문에, 참조 록을 취득하는 레이턴시를 짧게 할 수 있다. 따라서, 어플리케이션 서버(30)에 의하면, 효율 좋게 분산 록을 제어할 수 있다.
도 3은, 공유 데이터(ITEM 테이블)의 데이터 구조를 정의하는 스키마의 한 예를 나타낸다. 도 4는, 도 3에 나타낸 ITEM 테이블에서 값을 참조하기 위한 참조 쿼리(read query)의 한 예를 나타낸다. 도 5는, 캐시부(56)가 캐싱하는 데이터의 한 예를 나타낸다.
캐시부(56)는, 한 예로서 SQL에 의해 기술된 참조 쿼리에 의해, 데이터베이스 서버(20) 내의 공유 데이터를 참조한 결과를 저장한다. 예를 들면, 데이터베이스 서버(20)는, 도 3의 스키마에 나타낸 것 같은 ITEM 테이블을 공유 데이터로서 기억한다고 하자. 이 경우에서는, 액세스 제어부(54)는, 데이터 베이스 서버(20)에 대해서 도 4의 참조 쿼리를 발행(issue)하면, 도 5에 나타낸 것처럼 쿼리 결과를 데이터베이스 서버(20)로부터 취득할 수 있다. 캐시부(56)는, 도 5에 나타낸 것과 같이 액세스 제어부(54)에 의해 취득된 쿼리 결과를 캐시한다.
그리고, 액세스 제어부(54)는, 실행부(52)로부터 도 5에 나타낸 데이터의 전부 또는 일부에 대해서 재차 참조 요구를 수신하면, 데이터 베이스 서버(20)에 대해서 참조 쿼리를 발행하는 것을 대신하여, 캐시부(56)로부터 공유 데이터를 취득하여 쿼리 결과로서 실행부(52)에 답신한다. 그리하여, 액세스 제어부(54)는, 데이터 베이스 서버(20)의 부하를 줄이고, 또한, 공유 데이터를 참조하는 레이턴시를 짧게 할 수 있다.
도 6은, 선택부(60)에 의해 선택된 모드의 한 예를 나타낸다. 도 7은, 모드를 천이시키는 경우의 천이 조건(change conditions)의 한 예를 나타낸다. 선택부(60)는, 도 6 및 도 7에 나타낸 것처럼, 분산 모드, 분산 모드로부터 집중 모드로 천이시키기 위한 집중 천이 모드, 집중 모드의 한 유형인 집중 참조 모드, 집중 모드의 한 유형인 집중 갱신 모드 및 집중 모드로부터 분산 모드에 천이시키기 위한 분산 천이 모드 중 어느 하나를 선택한다.
선택부(60)는, 분산 모드에서, 공유 데이터를 갱신할 경우, 분산 모드로부터 집중 천이 모드로 천이한다. 선택부(60)는, 한 예로서, 갱신 트랜잭션의 실행이 시작된 경우, 분산 모드로부터 집중 천이 모드로 천이해도 된다. 또한, 선택부(60)는, 분산 모드에서, 다른 적어도 하나의 어플리케이션 서버(30)가 집중 천이 모드인 것을 조건으로, 분산 모드로부터 집중 천이 모드로 천이한다. 이것으로 인해, 복수의 어플리케이션 서버(30)는, 어느 하나의 어플리케이션 서버(30)가 공유 데이터를 갱신할 경우(예를 들면, 갱신 트랜잭션의 실행이 시작된 경우), 모두 분산 모드로부터 집중 천이 모드로 천이할 수 있다.
또한, 선택부(60)는, 집중 천이 모드에서, 모든 어플리케이션 서버(30)가 집중 천이 모드, 집중 모드의 한 유형인 집중 참조 모드 또는 집중 모드의 한 유형인 집중 갱신 모드 중 어느 하나라는 것을 조건으로, 집중 천이 모드로부터, 집중 모드인 집중 참조 모드로 천이한다. 이에 따라, 복수의 어플리케이션 서버(30)는, 모두 분산 모드로부터 집중 천이 모드로 천이한 것을 조건으로, 집중 모드(집중 참조 모드 또는 집중 천이 모드)로 천이할 수 있다. 또한, 복수의 어플리케이션 서버(30)는, 집중 천이 모드로부터 집중 모드인 집중 참조 모드로, 서로 동기하여 천이해도 된다.
또, 선택부(60)는, 집중 참조 모드에서, 공유 데이터를 갱신할 경우, 집중 참조 모드로부터 집중 갱신 모드로 천이한다. 선택부(60)는, 한 예로서, 갱신 트랜잭션을 실행하는 경우, 집중 참조 모드로부터 집중 갱신 모드로 천이해도 된다.
또한, 선택부(60)는, 집중 갱신 모드에서, 공유 데이터의 갱신을 종료한 경우, 집중 갱신 모드로부터 집중 참조 모드로 천이한다. 선택부(60)는, 한 예로서, 모든 갱신 트랜잭션의 실행이 종료한 경우, 집중 갱신 모드로부터 집중 참조 모드로 천이해도 된다.
또한, 선택부(60)는, 집중 참조 모드에서, 모든 어플리케이션 서버(30)가 집중 참조 모드 또는 집중 갱신 모드 중 어느 하나인 것을 조건으로 하거나, 또는, 적어도 하나의 어플리케이션 서버(30)가 분산 천이 모드인 것을 조건으로 해서, 집중 참조 모드로부터 분산 천이 모드로 천이한다. 또는, 선택부(60)는, 집중 참조 모드로 천이하고 나서 일정 기간 경과한 것을 조건으로, 집중 참조 모드로부터 분산 천이 모드로 천이해도 된다. 이것으로, 각 어플리케이션 서버(30)는, 집중 모드에서 공유 데이터를 갱신하지 않는 경우에는, 분산 천이 모드로 천이할 수 있다.
또, 선택부(60)는, 분산 천이 모드에서, 모든 어플리케이션 서버(30)가, 분산 천이 모드, 분산 모드 또는 집중 천이 모드 중 어느 하나인 것을 조건으로, 집중 천이 모드로부터 분산 모드로 천이한다. 이것으로, 복수의 어플리케이션 서버(30)는, 모든 것이 집중 모드로부터 분산 천이 모드로 천이하는 것을 조건으로, 분산 모드로 천이할 수 있다. 또한, 복수의 어플리케이션 서버(30)는, 분산 천이 모드로부터 분산 모드로, 서로 동기하여 천이해도 된다.
또한, 선택부(60)는, 분산 천이 모드에서, 공유 데이터를 갱신하는 경우, 모든 어플리케이션 서버(30)가, 분산 천이 모드, 집중 참조 모드 또는 집중 갱신 모드 중 어느 하나인 것을 조건으로, 분산 천이 모드로부터 집중 참조 모드로 천이하는 구성이어도 된다. 이것으로, 어플리케이션 서버(30)는, 분산 천이 모드에서, 공유 데이터를 갱신할 경우(예를 들면, 갱신 트랜잭션의 실행을 개시한 경우), 분산 천이 모드로부터, 집중 참조 모드를 통하여 집중 갱신 모드로 천이할 수 있다.
도 8은, 각 모드에서, 캐시의 참조 가부(可否), 데이터 베이스의 참조의 가부 및 데이터 베이스의 갱신의 가부의 한 예를 나타낸다. 선택부(60)는, 분산 모드에서, 분산 관리부(58)로부터 록을 취득한다. 또, 선택부(60)는, 집중 천이 모드, 집중 참조 모드, 집중 갱신 모드 및 분산 천이 모드에서, 집중 관리부(40)로부터 록을 취득한다.
또한, 분산 모드에서 분산 관리부(58)로부터 록을 취득한 경우, 선택부(60)는, 분산 모드로부터 집중 천이 모드로의 천이에 있어서, 집중 관리부(40)로부터 록을 취득하고, 분산 관리부(58)로부터 취득한 록을 개방한다. 또, 분산 천이 모드에서 집중 관리부(40)로부터 록을 취득한 경우, 선택부(60)는, 분산 천이 모드로부터 분산 모드로의 천이에 있어서, 분산 관리부(58)로부터 록을 취득하고, 집중 관리부(40)로부터 취득한 록을 개방한다. 그리하여, 선택부(60)는, 록의 취득 처를 변경할 경우, 공유 데이터의 부정합을 없앨 수 있다.
또한, 액세스 제어부(54)는, 도 8에 나타낸 것처럼, 분산 모드에서, 캐시부(56)에 캐시된 공유 데이터 및 데이터 베이스 서버(20)에 기억된 공유 데이터의 참조를 허가한다. 즉, 액세스 제어부(54)는, 분산 모드에서, 캐시부(56)를 이용하여 공유 데이터를 참조한다. 그리하여, 액세스 제어부(54)는, 분산 모드에서, 데이터 베이스 서버(20)의 부담을 경감할 뿐만 아니라 공유 데이터로의 액세스를 빠르게 할 수 있다. 또한, 액세스 제어부(54)는, 분산 모드에서, 데이터 베이스 서버(20)에 기억된 공유 데이터의 갱신을 금지한다. 그리하여, 액세스 제어부(54)는, 분산 모드에서, 다른 복수의 어플리케이션 서버(30)로부터 배타 록을 취득하는 처리를 없애고 분산 록 제어를 간단하게 할 수 있다.
또한, 액세스 제어부(54)는, 도 8에 나타낸 것처럼, 집중 갱신 모드에서, 캐시부(56)에 캐시된 공유 데이터의 참조를 금지하고, 데이터 베이스 서버(20)에 기억된 공유 데이터의 참조를 허가한다. 즉, 액세스 제어부(54)는, 집중 갱신 모드에서, 캐시부(56)를 이용하지 않고 공유 데이터를 참조한다. 또한, 액세스 제어부(54)는, 집중 갱신 모드에서, 데이터 베이스 서버(20)에 기억된 공유 데이터의 갱신을 허가한다. 그리하여, 액세스 제어부(54)는, 집중 갱신 모드에서, 캐시 액세스를 금지하고 공유 데이터가 부정합하게 되는 것을 없앨 수 있다.
또한, 액세스 제어부(54)는, 도 8에 나타낸 것처럼, 집중 천이 모드, 집중 참조 모드 및 분산 천이 모드에서, 캐시부(56)에 캐시된 공유 데이터의 참조를 금지하고, 데이터 베이스 서버(20)에 기억된 공유 데이터의 참조를 허가한다. 즉, 액세스 제어부(54)는, 집중 천이 모드, 집중 참조 모드 및 분산 천이 모드에서, 캐시부(56)를 이용하지 않고 공유 데이터를 참조한다. 또한, 액세스 제어부(54)는, 집중 천이 모드, 집중 참조 모드 및 분산 천이 모드에서, 데이터 베이스 서버(20)에 기억된 공유 데이터의 갱신을 금지한다. 그리하여, 액세스 제어부(54)는, 분산 모드로부터 집중 갱신 모드로의 천이 및 집중 갱신 모드로부터 분산 모드로의 천이에 있어서, 캐시 액세스를 금지하고 공유 데이터가 부정합하게 되는 것을 없앨 수 있다.
또한, 선택부(60)는, 분산 천이 모드로부터 분산 모드로 천이할 때에는, 캐시부(56)에 캐시된 공유 데이터를 무효로 해도 된다. 또 다르게는, 선택부(60)는, 분산 천이 모드로부터 분산 모드로 천이할 때에는, 캐시부(56)에 캐시된 공유 데이터 중 어느 하나의 어플리케이션 서버(30)에 의해 갱신된 데이터의 통지를 수신하고, 통지를 수신한 데이터를 선택적으로 무효화해도 된다. 그리하여, 선택부(60)는, 캐시부(56)에 캐시된 공유 데이터와, 데이터 베이스 서버(20)에 기억된 공유 데이터와의 사이의 부정합을 없앨 수 있다.
도 9는, 정보 처리 시스템(10)에서, 어느 하나의 어플리케이션 서버(30(A1)), 및, 다른 복수의 어플리케이션 서버(30(A2~An))에 따른 처리 흐름의 한 예를 나타낸다. 모든 어플리케이션 서버(30(A1~An))가 분산 모드인 경우, 어느 하나의 어플리케이션 서버(30(A1))가 갱신 트랜잭션의 실행을 시작하면, 상기 하나의 어플리케이션 서버(30(A1)), 및, 다른 복수의 어플리케이션 서버(30(A2~An))는, 도 9의 흐름에 따라서 동작을 한다.
우선, 하나의 어플리케이션 서버(30(A1))에서 갱신 트랜잭션이 시작되면, 상기 하나의 어플리케이션 서버(30(A1))는, 집중 천이 모드로 천이한다(S101, S102, S103). 다른 복수의 어플리케이션 서버(30(A2~An)) 각각은, 하나의 어플리케이션 서버(30(A1))로부터 통지(S103A)를 수신하고, 하나의 어플리케이션 서버(30(A1))가 집중 천이 모드인 것을 확인하고, 집중 천이 모드로 천이한다(S201, S204, S205). 그 결과, 모든 어플리케이션 서버(30(A1~An))는 집중 천이 모드가 된다.
복수의 어플리케이션 서버(30(A1~An)) 각각은, 다른 어플리케이션 서버(30(A1~An)) 각각으로부터 통지(S205A)를 수신하고, 모든 어플리케이션 서버(30(A1~An))가 집중 천이 모드인 것을 확인하고(S106, S206), 집중 참조 모드로 천이한다(S107, S207). 여기서, 복수의 어플리케이션 서버(30(A1~An)) 각각은, 서로 동기하여, 집중 천이 모드로부터 집중 참조 모드로 천이해도 된다.
다음으로, 다른 어플리케이션 서버(30(A2~An)) 각각은, 집중 참조 모드로 천이하고 나서 일정 기간 경과하면(S212), 분산 천이 모드로 천이한다(S213).
또한, 하나의 어플리케이션 서버(30(A1))는, 집중 참조 모드로부터 집중 갱신 모드로 천이한다(S108). 다음으로, 하나의 어플리케이션 서버(30(A1))는 공유 데이터의 갱신을 실행한다(S109). 다음으로, 하나의 어플리케이션 서버(30(A1))는, 모든 갱신 트랜잭션이 종료하면(S110), 집중 갱신 모드로부터 집중 참조 모드로 천이한다(S111). 하나의 어플리케이션 서버(30(A1))는, 집중 참조 모드로 천이하고 나서 일정 기간을 경과하면(S112), 분산 천이 모드로 천이한다(S113). 그 결과, 모든 어플리케이션 서버(30(A1~An))는 분산 천이 모드가 된다.
복수의 어플리케이션 서버(30(A1~An)) 각각은, 다른 어플리케이션 서버(30(A1~An))으로부터 통지(S113A, S213A)를 수신하고, 모든 어플리케이션 서버(30(A1~An))가 분산 천이 모드인 것을 인식하고(S114, S214), 분산 모드로 천이한다(S115, S215). 여기서, 복수의 어플리케이션 서버(30(A1~An)) 각각은 서로 동기하여 분산 천이 모드로부터 분산 모드로 천이해도 된다.
이상과 같이 복수의 어플리케이션 서버(30) 각각은, 분산 모드에서 어느 하나의 어플리케이션 서버(30)에 갱신 트랜잭션이 시작되면, 분산 모드에서 집중 천이 모드를 통해서 집중 참조 모드로 천이할 수 있다. 또한, 하나의 어플리케이션 서버(30)는, 집중 참조 모드로부터 집중 갱신 모드로 천이하여, 갱신을 실행할 수 있다. 그리고, 복수의 어플리케이션 서버(30) 각각은, 하나의 어플리케이션 서버(30)에 갱신이 종료하면, 집중 참조 모드로부터 분산 천이 모드를 통하여 분산 모드로 천이할 수 있다.
도 10은, 정보 처리 시스템(10)에 새로운 어플리케이션 서버(30)가 추가된 경우, 상기 새로운 어플리케이션 서버(30)의 모드의 결정 흐름을 나타낸다. 상기 정보 처리 시스템(10)은 새로운 어플리케이션 서버(30)를 추가할 수 있다. 정보 처리 시스템(10)에 새롭게 추가된 어플리케이션 서버(30)의 선택부(60)는, 도 10에 나타낸 결정에 따라 모드를 선택한다.
우선, 선택부(60)는 적어도 하나의 다른 어플리케이션 서버(30)가 집중 천이 모드인지 아닌지를 결정한다(S301). 선택부(60)는, 적어도 하나의 어플리케이션 서버(30)가 집중 천이 모드인 것을 조건으로(S301의 예 분기), 집중 천이 모드로 천이한다(S302).
다른 모든 어플리케이션 서버(30)가 집중 천이 모드가 아닌 경우(S301의 아니오 분기), 다음으로, 선택부(60)는 적어도 하나의 어플리케이션 서버(30)가 분산 모드인지 아닌지를 결정한다(S303). 선택부(60)는, 다른 모든 어플리케이션 서버(30)가 집중 천이 모드가 아니고, 또한, 적어도 하나의 다른 어플리케이션 서버(30)가 분산 모드인 것을 조건으로(S303의 예 분기), 분산 모드로 천이한다(S304).
다음으로, 다른 모든 어플리케이션 서버(30)가 집중 천이 모드 또는 분산 모드 중 어느 것도 아닌 경우(S303의 아니오 분기), 다음으로, 선택부(60)는 적어도 하나의 다른 어플리케이션 서버(30)가 분산 천이 모드인지 아닌지를 결정한다(S305). 선택부(60)는, 다른 모든 어플리케이션 서버(30)가 집중 천이 모드 또는 분산 모드 중 어느 것도 아니고, 또한, 적어도 하나의 다른 어플리케이션 서버(30)가 분산 천이 모드인 것을 조건으로(S305의 예 분기), 분산 천이 모드로 천이한다(S306).
그리고, 선택부(60)는, 다른 모든 어플리케이션 서버(30)가 집중 천이 모드, 분산 모드 또는 분산 천이 모드 중 어느 것도 아닌 것을 조건으로(S305의 아니오 분기), 집중 참조 모드로 천이한다(S307). 이상과 같이 모드를 결정하는 것으로, 어플리케이션 서버(30)는, 정보 처리 시스템(10)에 새롭게 추가된 경우에도, 다른 어플리케이션 서버(30)와 정합성을 유지하여 공동 데이터로 액세스할 수 있다.
도 11은, 본 실시 형태에 관계되는 컴퓨터(1900)의 하드웨어 구성의 한 예를 나타낸다. 본 실시 형태에 관계되는 컴퓨터(1900)는, 호스트 컨트롤러(2082)에 의해 상호에 접속되는 CPU(2000), RAM(2020), 그래픽 컨트롤러(2075), 및 표시 장치(2080)을 포함하는 CPU 주변부, 입출력 컨트롤러(2084)에 의해 호스트 컨트롤러(2082)에 접속되는 통신 인터페이스(2030), 하드 디스크 드라이브(2040), 및 CD-ROM 드라이브(2060)을 포함하는 입출력부, 입출력 컨트롤러(2084)에 접속되는 ROM(2010), 플랙시블 디스크 드라이브(2050), 및 입출력 칩(2070)을 포함하는 레거시 입출력부를 갖춘다.
호스트 컨트롤러(2082)는, RAM(2020)과, 높은 전송 레이트로 RAM(2020)을 액세스하는 CPU(2000) 및 그래픽 컨트롤러(2075)로 접속한다. CPU(2000)는, ROM(2010) 및 RAM(2020)에 저장된 프로그램에 근거하여 동작하고, 각 부의 제어를 수행한다. 그래픽 컨트롤러(2075)는 CPU(2000) 등이 RAM(2020) 내에 설치된 프레임 버퍼 상에 생성할 화상 데이터를 취득하고, 표시 장치(2080) 상에 표시시킨다. 이것에 대신하여, 그래픽 컨트롤러(2075)는, CPU(2000) 등이 생성할 화상 데이터를 저장하는 프레임 버퍼를, 내부에 포함해도 된다.
입출력 컨트롤러(2084)는, 호스트 컨트롤러(2082)와, 비교적 고속인 입출력 장치인 통신 인터페이스(2030), 하드 디스크 드라이브(2040), CD-ROM 드라이브(2060)를 접속한다. 통신 인터페이스(2030)는, 네트워크를 통하여 다른 장치와 통신한다. 하드 디스크 드라이브(2040)는, 컴퓨터(1900) 내의 CPU(2000)가 사용하는 프로그램 및 데이터를 저장한다. CD-ROM 드라이브(2060)는, CD-ROM(2095)에서 프로그램 또는 데이터를 읽고, RAM(2020)을 통해서 하드 디스크 드라이브(2040)에 제공한다.
또한, 입출력 컨트롤러(2084)에는, ROM(2010)과, 플랙시블 디스크 드라이브(2050), 및 입출력 칩(2070)의 비교적 저속인 입출력 장치가 접속된다. ROM(2010)은, 컴퓨터(1900)가 기동할 때에 실행할 부팅 프로그램, 및/또는, 컴퓨터(1900)의 하드웨어에 의존하는 프로그램 등을 저장한다. 플랙시블 디스크 드라이브(2050)는, 플랙시블 디스크(2090)에서 프로그램 또는 데이터를 읽고, RAM(2020)을 통해서 하드 디스크 드라이브(2040)에 제공한다. 입출력 칩(2070)은, 플랙시블 디스크 드라이브(2050)를 입출력 컨트롤러(2084)에 접속하는 것과 함께, 예를 들면 병렬 포트, 직렬 포트, 키보드 포트, 마우스 포트 등을 통해서 각종의 입출력 장치를 입출력 컨트롤러(2084)에 접속한다.
RAM(2020)을 통해 하드 디스크 드라이브(2040)에 제공되는 프로그램은, 플랙시블 디스크(2090), CD-ROM(2095), 또는 IC 카드 등의 기록 매체에 저장되어 이용자에 의해 제공된다. 프로그램은, 기록 매체에서 읽어 내어져, RAM(2020)을 통해 컴퓨터(1900) 내의 하드 디스크 드라이브(2040)에 인스톨되어, CPU(2000)에서 실행된다.
컴퓨터(1900)에 인스톨되어, 컴퓨터(1900)를 어플리케이션 서버(30)로서 기능시키는 프로그램은, 실행 모듈, 액세스 제어 모듈, 캐시 모듈, 분산 관리 모듈, 및 선택 모듈을 포함한다. 이것들의 프로그램 또는 모듈은, CPU(2000) 등에 활용하여, 컴퓨터(1900)를, 실행부(52), 액세스 제어부(54), 캐시부(56), 분산 관리부(58) 및 선택부(60)로서 각각 기능시킨다.
이것들의 프로그램에 기술된 정보 처리는, 컴퓨터(1900)에 읽혀지는 것으로, 소프트웨어와 상술한 각종의 하드웨어 자원이 협동한 구체적 수단인 실행부(52), 액세스 제어부(54), 캐시부(56), 분산 관리부(58) 및 선택부(60)로서 기능한다. 그리고, 이것들의 구체적 수단에 의해서, 본 실시 형태에서 컴퓨터(1900)의 사용 목적에 따른 정보의 연산 또는 가공을 실현하는 것으로, 사용 목적에 따른 특유의 어플리케이션 서버(30)가 구축된다.
한 예로서, 컴퓨터(1900)와 외부의 장치 등의 사이에서 통신을 수행하는 경우에는, CPU(2000)는 RAM(2020) 상에 로드 된 통신 프로그램을 실행하고, 통신 프로그램에 기술된 처리 내용에 근거하여, 통신 인터페이스(2030)에 대해서, 통신 처리를 지시한다. 통신 인터페이스(2030)는, CPU(2000)의 제어를 받아, RAM(2020), 하드 디스크 드라이브(2040), 플랙시블 디스크(2090), 또는 CD-ROM(2095) 등의 기억 장치 상에 설치된 송신 버퍼 영역 등에 기억된 송신 데이터를 읽어내서 네트워크에 송신하고, 또는, 네트워크로부터 수신한 수신 데이터를 기억 장치 상에 설치된 수신 버퍼 영역 등에 기록한다. 이와 같이, 통신 인터페이스(2030)는, DMA(다이렉트 메모리 액세스) 방식에 따라 기억 장치와의 사이에서 송수신 데이터를 전송해도 되고, 이것에 대신하여, CPU(2000)가 전송 처의 기억 장치 또는 인터페이스(2030) 또는 기억 장치에 데이터를 기록하는 것으로 송수신 데이터를 전송해도 된다.
또한, CPU(2000)는, 하드 디스크 드라이브(2040), CD-ROM 드라이브(2060)(CD-ROM(2095)), 플랙시블 디스크 드라이브(2050)(플랙시블 디스크(2090)) 등의 외부 기억 장치에 저장된 파일 또는 데이터 베이스 등의 중에서, 전부 또는 필요한 부분을 DMA 전송 등에 의해 RAM(2020)이 읽도록 하고, RAM(2020) 상에 데이터에 대해서 각종의 처리를 수행한다. 그리고, CPU(2000)는, 처리가 종료된 데이터를, DMA 전송 등에 의해 외부 기억 장치에 다시 기록한다. 이와 같은 처리에서, RAM(2020)은, 외부 기억 장치의 내용을 일시적으로 보지하는 것으로 간주하기 때문에, 본 실시 형태에서는, RAM(2020) 및 외부 기억 장치 등을 메모리, 기억부, 또는 기억 장치 등이라고 총칭한다. 본 실시 형태에서 각종의 프로그램, 데이터, 테이블, 데이터 베이스 등의 각종의 정보는, 이와 같은 기억 장치 상에 저장되어, 정보 처리의 대상이 된다. 또한, CPU(2000)는, RAM(2020)의 일부를 캐시 메모리에 보지하고, 캐시 메모리 상에서 읽고 쓰기를 수행할 수도 있다. 이와 같은 형태에서도, 캐시 메모리는 RAM(2020)의 기능의 일부를 담당하기 때문에, 본 실시 형태에서는, 구별해서 나타내는 경우를 제외하고, 캐시 메모리도 RAM(2020), 메모리, 및/또는 기억 장치에 포함되는 것으로 한다.
또한, CPU(2000)는, RAM(2020)으로부터 읽어낸 데이터에 대해서, 프로그램의 명령 열에 따라 지정된, 본 실시 형태 중에 기재된 각종의 연산, 정보의 가공, 조건 결정, 정보의 검색, 치환 등을 포함하는 각종의 처리를 수행하고, RAM(2020)에 다시 기록한다. 예를 들면, CPU(2000)는, 조건 결정을 수행할 경우에는, 본 실시 형태에서 나타낸 각종의 변수가, 다른 변수 또는 정수와 비교해서, 크다, 작다, 이상, 이하, 같다 등의 조건을 만족하는지를 결정하고, 조건이 성립한 경우(또는 불 성립인 경우)에, 명령 열에 분기하고, 또는 서브루틴을 불러낸다.
또한, CPU(2000)는, 기억 장치 내의 파일 또는 데이터 베이스 등에 저장된 정보를 검색할 수 있다. 예를 들면, 제 1 속성의 속성값에 대해 제 2 속성의 속성값이 각각 대응된 복수의 엔트리가 기억 장치에 저장된 경우에, CPU(2000)는, 기억 장치에 저장된 복수의 엔트리 중에서 제 1 속성의 속성 값이 지정된 조건과 일치하는 엔트리를 검색하고, 그 엔트리에 저장된 제 2 속성의 속성 값을 읽어내는 것으로, 소정의 조건을 만족하는 제 1 속성에 대응된 제 2 속성의 속성값을 얻을 수 있다.
이상으로 나타낸 프로그램 또는 모듈은, 외부의 기록 매체에 저장되어도 된다. 기록 매체로는, 플랙시블 디스크(2090), CD-ROM(2095) 그 외에, DVD또는 CD등의 광학 기록 매체, MO 등의 광자기 기록 매체, 테이프 매체, IC 카드 등의 반도체 메모디 들을 이용할 수 있다. 또, 전용 통신 네트워크 또는 인터넷에 접속된 서버 시스템에 설치된 하드 디스크 또는 RAM 등의 기억 장치를 기록 매체로서 사용하고, 네트워크를 통해 프로그램을 컴퓨터(1900)에 제공해도 된다.
이상, 본 발명을 실시의 형태를 이용해서 설명하였는데, 본 발명의 기술적 범위는 상기 실시 형태에 기재의 범위에는 한정되지 않는다. 상기 기술 형태에, 다양한 변경 또는 개량을 가하는 것이 가능하다는 것을 당업자라면 알 수 있다. 이러한 변경 또는 개량을 가한 형태도 본 발명의 기술적 범위에 포함될 수 있다는 것은 특허 청구 범위에 기재로부터 알 수 있다.
특허 청구 범위, 명세서, 및 도면 중에 나타낸 장치, 시스템, 프로그램, 및 방법에서 동작, 순서, 단계, 및 단계 등의 각 처리의 실행 순서는, 특단, “보다 전에”, “먼저 앞서” 등이라고 명시하지 않았고, 또, 전의 처리의 출력을 후의 처리에서 이용하지 않는 한, 임의의 순서로 실현할 수 있는 것에 유의해야 한다. 특허 청구의 범위, 명세서 및 도면 중의 동작 흐름에 관해서, 편의상 “우선”, “다음으로” 등을 이용해서 설명했다고 해도, 이 순서로 실시하는 것이 필수라고 의미하는 것은 아니다.
10 정보 처리 시스템
20 데이터 베이스 서버
30 어플리케이션 서버
40 집중 관리부
52 실행부
54 액세스 제어부
56 캐시부
58 분산 관리부
60 선택부
1900 컴퓨터
2000 CPU
2010 ROM
2020 RAM
2030 통신 인터페이스
2040 하드 디스크 드라이브
2050 플랙시블 디스크 드라이브
2060 CD-ROM 드라이브
2070 입출력 칩
2075 그래픽 컨트롤러
2080 표시 장치
2082 호스트 컨트롤러
2084 입출력 컨트롤러
2090 플랙시블 디스크
2095 CD-ROM

Claims (14)

  1. 공유 데이터로 액세스하는 복수의 어플리케이션 서버와,
    상기 복수의 어플리케이션 서버 각각에 의한 상기 공유 데이터 록을 집중 관리하는 집중 관리부를 포함하고,
    상기 복수의 어플리케이션 서버 각각은,
    상기 어플리케이션 서버에 의한 상기 공유 데이터의 록을 관리하는 분산 관리부와,
    상기 분산 관리부로부터 록을 취득하는 분산 모드, 및 상기 집중 관리부로부터 록을 취득하는 집중 모드 중 하나를 선택하는 선택부 - 상기 선택부는 상기 공유 데이터의 갱신을 금지하는 액세스 제어부를 포함함 - 를 포함하되,
    상기 선택부는, 상기 복수의 어플리케이션 서버의 모든 것이 상기 공유 데이터를 갱신하지 않은 것을 조건으로, 상기 어플리케이션 서버의 모드를 상기 분산 모드로 천이시키고,
    상기 선택부는, 상기 복수의 어플리케이션 서버 중 적어도 하나가 상기 공유 데이터를 갱신하는 것을 조건으로, 상기 어플리케이션 서버의 모드를 상기 집중 모드로 천이시키는
    시스템.
  2. 청구항 1에 있어서, 상기 선택부는,
    상기 분산 모드에서, 상기 공유 데이터를 갱신하는 경우, 상기 분산 모드로부터 집중 천이 모드로 천이하고,
    상기 분산 모드에서, 다른 적어도 하나의 상기 어플리케이션 서버가 상기 집중 천이 모드인 것을 조건으로, 상기 분산 모드로부터 상기 집중 천이 모드로 천이하고,
    상기 집중 천이 모드에서, 모든 상기 어플리케이션 서버가 상기 집중 천이 모드 또는 상기 집중 모드 중 어느 하나인 것을 조건으로, 상기 집중 천이 모드로부터 상기 집중 모드로 천이하는
    시스템.
  3. 청구항 2에 있어서, 상기 선택부는, 상기 집중 천이 모드에서, 상기 집중 관리부로부터 록을 취득하고,
    상기 액세스 제어부는, 상기 집중 천이 모드에서, 상기 공유 데이터의 갱신을 금지하는
    시스템.
  4. 청구항 3에 있어서, 상기 선택부는,
    상기 집중 천이 모드에서, 모든 상기 어플리케이션 서버가 상기 집중 천이 모드 또는 상기 집중 모드 중 어느 하나인 것을 조건으로, 상기 집중 천이 모드로부터 상기 집중 모드인 집중 참조 모드로 천이하고,
    상기 집중 참조 모드에서, 상기 공유 데이터를 갱신할 경우, 상기 집중 참조 모드로부터 상기 집중 모드인 집중 갱신 모드로 천이하고,
    상기 집중 갱신 모드에서, 상기 공유 데이터의 갱신이 종료된 경우, 상기 집중 갱신 모드로부터 상기 집중 참조 모드로 천이하는
    시스템.
  5. 청구항 4에 있어서, 상기 액세스 제어부는, 상기 집중 참조 모드에서, 상기 공유 데이터의 갱신을 금지하는
    시스템.
  6. 청구항 5에 있어서, 상기 선택부는,
    상기 집중 참조 모드에서, 모든 상기 어플리케이션 서버가 상기 집중 참조 모드 또는 상기 집중 갱신 모드 중 어느 하나인, 또는, 적어도 하나의 상기 어플리케이션 서버가 분산 천이 모드인 것을 조건으로, 상기 집중 참조 모드로부터 상기 분산 천이 모드로 천이하고,
    상기 분산 천이 모드에서, 모든 상기 어플리케이션 서버가, 상기 분산 천이 모드, 상기 분산 모드 또는 상기 집중 천이 모드 중 어느 하나인 것을 조건으로, 상기 집중 천이 모드로부터 상기 분산 모드로 천이하는
    시스템.
  7. 청구항 6에 있어서, 상기 선택부는, 상기 분산 천이 모드에서, 상기 집중 관리부로부터 록을 취득하고,
    상기 액세스 제어부는, 상기 분산 천이 모드에서, 상기 공유 데이터의 갱신을 금지하는
    시스템.
  8. 청구항 7에 있어서, 상기 시스템은, 새로운 상기 어플리케이션 서버를 추가하는 것이 가능하고,
    새롭게 추가된 상기 어플리케이션 서버의 상기 선택부는,
    적어도 하나의 다른 상기 어플리케이션 서버가 상기 집중 천이 모드인 것을 조건으로, 상기 집중 천이 모드로 천이하고,
    다른 모든 상기 어플리케이션 서버가 상기 집중 천이 모드가 아니고, 또한 적어도 하나의 다른 상기 어플리케이션 서버가 상기 분산 모드인 것을 조건으로, 상기 분산 모드로 천이하고,
    다른 모든 상기 어플리케이션 서버가 상기 집중 천이 모드 또는, 상기 분산 모드 중 어느 것도 아니고, 또한, 적어도 하나의 다른 상기 어플리케이션 서버가 상기 분산 천이 모드인 것을 조건으로, 상기 분산 천이 모드로 천이하고,
    다른 모든 상기 어플리케이션 서버가 상기 집중 천이 모드, 상기 분산 모드 또는 상기 분산 천이 모드 중 어느 것도 아닌 것을 조건으로, 상기 집중 참조 모드로 천이하는
    시스템.
  9. 청구항 2 내지 5 중 어느 한 항에 있어서, 상기 선택부는, 상기 분산 모드로부터 상기 집중 천이 모드로의 천이에서, 상기 집중 관리부로부터 록을 취득하고, 상기 분산 관리부로부터 취득한 록을 개방하는
    시스템.
  10. 청구항 1 내지 9 중 어느 한 항에 있어서, 상기 복수의 어플리케이션 서버의 각각은,
    상기 공유 데이터에 액세스하는 액세스 제어부,
    상기 공유 데이터를 캐시 하는 캐시부를 포함하고,
    상기 액세스 제어부는, 상기 분산 모드에서, 상기 캐시부를 이용하여 상기 공유 데이터를 참조하고, 상기 집중 모드에서, 상기 캐시부를 이용하지 않고 상기 공유 데이터를 참조하고,
    상기 선택부는, 상기 분산 모드로 천이할 때, 상기 캐시부에 캐시된 상기 공유 데이터를 무효로 하는
    시스템.
  11. 공유 데이터를 액세스하는 복수의 어플리케이션 서버,
    상기 복수의 어플리케이션 서버 각각에 의한 상기 공유 데이터의 록을 집중 관리하는 집중 관리부를 포함하고,
    상기 복수의 어플리케이션 서버 각각은,
    상기 어플리케이션 서버에 의한 상기 공유 데이터의 록을 관리하는 분산 관리부,
    상기 분산 관리부로부터 록을 취득하는 분산 모드, 또는, 상기 집중 관리부로부터 록을 취득하는 집중 천이 모드, 집중 참조 모드, 집중 갱신 모드 및 분산 천이 모드 중 어느 하나를 선택하는 선택부를 포함하고,
    상기 선택부는,
    상기 분산 모드에서, 상기 공유 데이터를 갱신할 경우, 상기 분산 모드로부터 집중 천이 모드로 천이하고,
    상기 분산 모드에서, 다른 적어도 하나의 상기 어플리케이션 서버가 상기 집중 천이 모드인 것을 조건으로, 상기 분산 모드로부터 상기 집중 천이 모드로 천이하고,
    상기 집중 천이 모드에서, 모든 상기 어플리케이션 서버가 상기 집중 천이 모드, 상기 집중 참조 모드 또는 상기 집중 갱신 모드 중 어느 하나인 것을 조건으로, 상기 집중 천이 모드로부터 상기 집중 참조 모드로 천이하고,
    상기 집중 참조 모드에서, 상기 공유 데이터를 갱신할 경우, 상기 집중 참조 모드로부터 상기 집중 갱신 모드로 천이하고,
    상기 집중 갱신 모드에서, 상기 공유 데이터의 갱신이 종료된 경우, 상기 집중 갱신 모드로부터 상기 집중 참조 모드로 천이하고,
    상기 집중 참조 모드에서, 모든 상기 어플리케이션 서버가 상기 집중 참조 모드 또는 상기 집중 갱신 모드 중 어느 하나인, 또는, 적어도 하나의 상기 어플리케이션 서버가 분산 천이 모드인 것을 조건으로, 상기 집중 참조 모드로부터 상기 분산 천이 모드로 천이하고,
    상기 분산 천이 모드에서, 모든 상기 어플리케이션 서버가, 상기 분산 천이 모드, 상기 분산 모드 또는 상기 집중 천이 모드 중 어느 하나인 것을 조건으로, 상기 집중 천이 모드로부터 상기 분산 모드로 천이하는
    시스템.
  12. 공유 데이터에 액세스하는 복수의 어플리케이션 서버와, 상기 복수의 어플리케이션 서버 각각에 의한 상기 공유 데이터의 록을 집중 관리하는 집중 관리부를 포함하는 시스템에서의 상기 어플리케이션 서버로서,
    상기 어플리케이션 서버에 의한 상기 공유 데이터의 록을 관리하는 분산 관리부,
    상기 분산 관리부로부터 록을 취득하는 분산 모드, 및 상기 집중 관리부로부터 록을 취득하는 집중 모드 중 하나를 선택하는 선택부 - 상기 선택부는 상기 공유 데이터의 갱신을 금지하는 액세스 제어부를 포함함 - 를 포함하되,
    상기 선택부는, 상기 복수의 어플리케이션 서버의 모든 것이 상기 공유 데이터를 갱신하지 않은 것을 조건으로, 상기 분산 모드로 천이하고,
    상기 선택부는, 상기 복수의 어플리케이션 서버 중 적어도 하나가 상기 공유 데이터를 갱신하는 것을 조건으로, 상기 집중 모드로 천이하는
    어플리케이션 서버.
  13. 공유 데이터에 액세스하는 복수의 어플리케이션 서버, 상기 복수의 어플리케이션 서버 각각에 의한 상기 공유 데이터의 록을 집중 관리하는 집중 관리부를 포함하는 시스템에서의 상기 어플리케이션 서버에서, 컴퓨터를 기능시키는 프로그램으로서,
    상기 컴퓨터를,
    상기 어플리케이션 서버에 의한 상기 공유 데이터의 록을 관리하는 분산 관리부와,
    상기 분산 관리부로부터 록을 취득하는 분산 모드, 및 상기 집중 관리부로부터 록을 취득하는 집중 모드 중 하나를 선택하는 선택부 - 상기 선택부는 상기 공유 데이터의 갱신을 금지하는 액세스 제어부를 포함함 - 로 기능시키고,
    상기 선택부는, 상기 복수의 어플리케이션 서버의 모든 것이 상기 공유 데이터를 갱신하지 않은 것을 조건으로, 상기 분산 모드로 천이하고,
    상기 선택부는, 상기 복수의 어플리케이션 서버 중 적어도 하나가 상기 공유 데이터를 갱신하는 것을 조건으로, 상기 집중 모드로 천이하는
    프로그램.
  14. 공유 데이터에 액세스하는 복수의 어플리케이션 서버, 상기 복수의 어플리케이션 서버 각각에 의한 상기 공유 데이터의 록을 집중 관리하는 집중 관리부를 포함하는 시스템에서의 상기 어플리케이션 서버에서, 컴퓨터를 기능시키는 방법으로,
    상기 컴퓨터를, 상기 어플리케이션 서버에 의한 상기 공유 데이터의 록을 관리하는 분산 관리부로서 기능시키는 단계,
    상기 컴퓨터를, 상기 분산 관리부로부터 록을 취득하는 분산 모드, 또는 상기 집중 관리부로부터 록을 취득하는 집중 모드 중 하나를 선택하는 선택부 - 상기 선택부는 상기 공유 데이터의 갱신을 금지하는 액세스 제어부를 포함함 - 로서 기능시키는 단계를 포함하고,
    상기 선택부는, 상기 복수의 어플리케이션 서버의 모든 것이 상기 공유 데이터를 갱신하지 않은 것을 조건으로, 상기 분산 모드로 천이하고,
    상기 선택부는, 상기 복수의 어플리케이션 서버 중 적어도 하나가 상기 공유 데이터를 갱신하는 것을 조건으로, 상기 집중 모드로 천이하는
    방법.
KR20117008669A 2008-10-06 2009-08-13 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템 KR20110066940A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2008-259926 2008-10-06
JP2008259926 2008-10-06

Publications (1)

Publication Number Publication Date
KR20110066940A true KR20110066940A (ko) 2011-06-17

Family

ID=42100471

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20117008669A KR20110066940A (ko) 2008-10-06 2009-08-13 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템

Country Status (6)

Country Link
US (2) US8589438B2 (ko)
EP (1) EP2352090B1 (ko)
JP (1) JP5213077B2 (ko)
KR (1) KR20110066940A (ko)
CN (1) CN102165420B (ko)
WO (1) WO2010041515A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930323B2 (en) 2011-09-30 2015-01-06 International Business Machines Corporation Transaction processing system, method, and program
KR20160057944A (ko) * 2014-11-14 2016-05-24 주식회사 인프라웨어 분산 시스템에서의 데이터베이스 동기화 방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5213077B2 (ja) 2008-10-06 2013-06-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーションサーバにより共有データをアクセスするシステム
CN102238203A (zh) * 2010-04-23 2011-11-09 中兴通讯股份有限公司 一种实现物联网业务的方法及系统
US8620998B2 (en) * 2010-09-11 2013-12-31 Steelcloud, Inc. Mobile application deployment for distributed computing environments
US8484649B2 (en) 2011-01-05 2013-07-09 International Business Machines Corporation Amortizing costs of shared scans
US9088569B2 (en) * 2011-05-12 2015-07-21 International Business Machines Corporation Managing access to a shared resource using client access credentials
GB2503266A (en) * 2012-06-21 2013-12-25 Ibm Sharing aggregated cache hit and miss data in a storage area network
US20140280347A1 (en) * 2013-03-14 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Managing Digital Files with Shared Locks
WO2019177591A1 (en) * 2018-03-13 2019-09-19 Google Llc Including transactional commit timestamps in the primary keys of relational databases
US11176121B2 (en) * 2019-05-28 2021-11-16 International Business Machines Corporation Global transaction serialization
US11032361B1 (en) * 2020-07-14 2021-06-08 Coupang Corp. Systems and methods of balancing network load for ultra high server availability

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07120333B2 (ja) * 1985-12-16 1995-12-20 株式会社日立製作所 共用データ管理方法
JPH08202567A (ja) * 1995-01-25 1996-08-09 Hitachi Ltd システム間ロック処理方法
US6516351B2 (en) * 1997-12-05 2003-02-04 Network Appliance, Inc. Enforcing uniform file-locking for diverse file-locking protocols
US7200623B2 (en) * 1998-11-24 2007-04-03 Oracle International Corp. Methods to perform disk writes in a distributed shared disk system needing consistency across failures
US7149853B2 (en) 2001-09-21 2006-12-12 Polyserve, Inc. System and method for synchronization for enforcing mutual exclusion among multiple negotiators
US7406473B1 (en) * 2002-01-30 2008-07-29 Red Hat, Inc. Distributed file system using disk servers, lock servers and file servers
US7240058B2 (en) * 2002-03-01 2007-07-03 Sun Microsystems, Inc. Lock mechanism for a distributed data system
US6732171B2 (en) * 2002-05-31 2004-05-04 Lefthand Networks, Inc. Distributed network storage system with virtualization
US20050289143A1 (en) * 2004-06-23 2005-12-29 Exanet Ltd. Method for managing lock resources in a distributed storage system
US20070011667A1 (en) * 2005-05-25 2007-01-11 Saravanan Subbiah Lock management for clustered virtual machines
US8103642B2 (en) * 2006-02-03 2012-01-24 Oracle International Corporation Adaptive region locking
US20080243847A1 (en) * 2007-04-02 2008-10-02 Microsoft Corporation Separating central locking services from distributed data fulfillment services in a storage system
JP5213077B2 (ja) 2008-10-06 2013-06-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 複数のアプリケーションサーバにより共有データをアクセスするシステム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8930323B2 (en) 2011-09-30 2015-01-06 International Business Machines Corporation Transaction processing system, method, and program
KR20160057944A (ko) * 2014-11-14 2016-05-24 주식회사 인프라웨어 분산 시스템에서의 데이터베이스 동기화 방법

Also Published As

Publication number Publication date
US20100106697A1 (en) 2010-04-29
EP2352090A1 (en) 2011-08-03
JP5213077B2 (ja) 2013-06-19
JPWO2010041515A1 (ja) 2012-03-08
US20140082127A1 (en) 2014-03-20
US8589438B2 (en) 2013-11-19
EP2352090A4 (en) 2015-05-06
US9031923B2 (en) 2015-05-12
CN102165420A (zh) 2011-08-24
EP2352090B1 (en) 2019-09-25
WO2010041515A1 (ja) 2010-04-15
CN102165420B (zh) 2014-07-16

Similar Documents

Publication Publication Date Title
KR20110066940A (ko) 복수의 어플리케이션 서버에 의해 공유 데이터를 액세스하는 시스템
JP2505939B2 (ja) デ―タのキャストアウトを制御する方法
US10803047B2 (en) Accessing data entities
US5276835A (en) Non-blocking serialization for caching data in a shared cache
US5537574A (en) Sysplex shared data coherency method
JP2721780B2 (ja) データベースアクセス方法およびシステム
US8271739B2 (en) Memory control apparatus, program, and method
US6557082B1 (en) Method and apparatus for ensuring cache coherency for spawned dependent transactions in a multi-system environment with shared data storage devices
US20040049636A1 (en) Technique for data transfer
US20040111422A1 (en) Concurrency classes for shared file systems
JP2003006036A (ja) クラスタ化したアプリケーションサーバおよびデータベース構造を持つWebシステム
US9734157B1 (en) Method for sub-block operations on a journal block using ranged locking
WO2022095366A1 (zh) 基于Redis的数据读取方法、装置、设备及可读存储介质
US11880318B2 (en) Local page writes via pre-staging buffers for resilient buffer pool extensions
US20200073972A1 (en) Data templates associated with non-relational database systems
CN112540982A (zh) 具有可更新逻辑表指针的虚拟数据库表
US6584550B1 (en) System and method for updating a head entry from read-only to read-write and allowing a list to expand in a cache-coherence sharing list
JP4306023B2 (ja) トランザクション処理向けストレージ方法および装置、トランザクショナルストレージ
JP2765672B2 (ja) データ転送及びデータ除去のための制御方法並びにコンピュータ・システム
Fritchey et al. Memory-Optimized OLTP Tables and Procedures
JP2002063055A (ja) 書き込み遅延データベース管理方式及びシステム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application