KR20110114699A - 데이터 무결성 유지를 위한 장치 - Google Patents

데이터 무결성 유지를 위한 장치 Download PDF

Info

Publication number
KR20110114699A
KR20110114699A KR1020117020532A KR20117020532A KR20110114699A KR 20110114699 A KR20110114699 A KR 20110114699A KR 1020117020532 A KR1020117020532 A KR 1020117020532A KR 20117020532 A KR20117020532 A KR 20117020532A KR 20110114699 A KR20110114699 A KR 20110114699A
Authority
KR
South Korea
Prior art keywords
instance
lock
layer file
component
processes
Prior art date
Application number
KR1020117020532A
Other languages
English (en)
Other versions
KR101581072B1 (ko
Inventor
앤드류 존 스코필드
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20110114699A publication Critical patent/KR20110114699A/ko
Application granted granted Critical
Publication of KR101581072B1 publication Critical patent/KR101581072B1/ko

Links

Images

Classifications

    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/22Microcontrol or microprogram arrangements

Landscapes

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

Abstract

소프트웨어 컴포넌트의 다수의 인스턴스들 각각이, 공유 자원을 액세스할 수 있는 다수의 프로세스들을 포함하는 환경에서 데이터 무결성 유지를 위한 장치가 제공된다. 소프트웨어 컴포넌트의 각 인스턴스는 (데이터 업데이트가 허용되는) “활성 (active)”인스턴스 또는 (데이터 업데이트가 허용되지 않는) “대기 (stanby)” 인스턴스 둘 중 하나이다. 어떤 시점 (point in time)에서든, 상기 환경은 하나보다 많은 활성 인스턴스를 포함하지 않으나, 하나보다 많은 대기 인스턴스는 있을 수 있다. 단일 대기 인스턴스가 활성 인스턴스의 완전한 고장 (즉, 현재 활성 인스턴스의 모든 프로세스와 연관된 고장)이 발생하는 경우에 새로운 활성 인스턴스가 될 수 있다는 것은 바람직하다.

Description

데이터 무결성 유지를 위한 장치{AN APPARATUS FOR MAINTAINING DATA INTEGRITY}
본 발명은 데이터 무결성 유지를 위한 장치 (apparatus)에 관한 것이다.
“고가용성 (highly available)” 상업 컴퓨팅 환경에서, 하드웨어 및 소프트웨어의 고장으로부터 크리티컬 프로그램들 (critical programs)의 빠른 복구를 제공하기 위해 하드웨어 및 소프트웨어 기술이 통상적으로 결합된다. 상기 환경은 단일 고장점 (single point of failure, SPOF)들을 제거하도록 설계된다.
예를 들면, 통상적인 고가용성 환경은 일반적으로 디스크 드라이브와 같은 자원들 (resources)을 공유하는 느슨하게 결합된 많은 컴퓨터들을 포함한다. 크리티컬 프로그램들은 어떤 컴퓨터 집단 (set)에서도 실행이 가능하다. 더욱이, (예를 들면 디스크 드라이브와 같은) 하드웨어 자원들은 컴퓨터들 간에 공유된다. 크리티컬 프로그램을 이용할 수 없게 되는 하드웨어 또는 소프트웨어의 고장은 크리티컬 프로그램을 다른 컴퓨터에 옮겨서 크리티컬 프로그램의 가용성을 복구시킴으로써 치료할 수 있다.
통상적인 고가용성 환경들은 역사적으로 고가용성 (HA) 소프트웨어로 알려진 소프트웨어에 의해서 관리 되었다. HA 소프트웨어는 통상적으로 하드웨어 및 소프트웨어 컴포넌트들을 관리해 주는데, 상기 컴포넌트들을 모니터하고 고장들에 응답해서 자원들을 이동시키는 책임을 맡음으로써 관리해준다.
이러한 고가용성 환경 (100)의 예는 도 1a에 도시되며 이 예는 제 1 HA 소프트웨어 (117)와 고가용성 소프트웨어 컴포넌트 (110)의 제 1 인스턴스 (instance)를 갖는 제 1 컴퓨터 (105)를 포함하며, 소프트웨어 컴포넌트 (110)는 공유 자원 (예를 들면 데이터를 포함하는 공유 디스크 (120))을 액세스하도록 동작할 수 있다.
고가용성 환경 (100)은 또한 제 2 HA 소프트웨어 (119)를 갖는 제 2 컴퓨터 (115)를 포함하며, 상기 제 2 HA 소프트웨어는 제 1 HA 소프트웨어 (117)와 통신하도록 동작할 수 있다.
한 예에서, 제 1 컴퓨터 (105)의 제 1 인스턴스 (110)는 공유 디스크 (120)에 액세스 한다. 제 1 HA 소프트웨어 (117)는 공유 디스크 (120)에 대한 “소유권”을 갖는다.
제 1 컴퓨터 (105)에 고장이 발생할 경우에, (예를 들면, 제 2 HA 소프트웨어 (119)가 제 1 HA 소프트웨어 (117)와 더 이상 통신할 수 없는 것에 응답하여) 제 2 HA 소프트웨어 (119)는 상기 고장을 검출하도록 동작할 수 있다.
도 1b를 참조하면, 상기 고장에 응답하여, 제 2 HA 소프트웨어 (119)는, 제 1 인스턴스 (110)를 종료하고, 공유 디스크 (120)의 소유권을 자신에게로 이전하여(move) 그리고 이어서 제 2 컴퓨터 (115) 상의 소프트웨어 컴포넌트 (125)의 제 2 인스턴스를 시작하도록 동작할 수 있다. 제 2 컴퓨터 (115)는 이어서 제 1 컴퓨터 (105)로부터 책임 (responsibility)을 “인계(take over)”받도록 동작 할 수 있고, 제 2 컴퓨터 상에서 실행되는 제 2 인스턴스 (125)는 공유 디스크 (120)에 액세스할 수 있다.
도 1a와 1b의 환경 (100)은 소프트웨어 컴포넌트의 보증된 단일 활성화 (a guaranteed single activation)를 제공한다 - 즉, 소프트웨어 컴포넌트의 두 인스턴스들이 서로 다른 컴퓨터 상에서 동시에 시작하는 것은 가능하지 않다. 소프트웨어 컴포넌트의 두 인스턴스들이 서로 다른 컴퓨터 상에서 동시에 시작한다면, 이는 공유 디스크 (120) 상의 데이터의 손상 (corruption of data)과 같은 에러들을 야기할 수 있다.
상기 설명된 환경 (100)이 크리티컬 프로그램의 고가용성과 상기 크리티컬 프로그램의 보증된 단일 활성화를 제공하긴 하지만, 특별 하드웨어 (예를 들면, 다수의 컴퓨터들에 의해서 액세스 될 수 있도록 구체적으로 (specifically) 구성되어야 하는 공유 디스크 (120))와 특별 소프트웨어 (예를 들면, HA 소프트웨어)가 요구된다.
더 현대적인 기술들을 이용하면, 특별 하드웨어 및/또는 소프트웨어가 필요 없이 고가용성과 보증된 단일 활성화를 성취하는 것도 가능하다.
이러한 환경 (200)의 표시 (representation)가 도 2에 도시되며, 상기 환경 (200)은 동일 소프트웨어 컴포넌트의 두 인스턴스들을 포함한다. 부연하면, 환경 (200)은 고가용성 소프트웨어 컴포넌트의 제 3 인스턴스(210)를 갖는 제 3 컴퓨터 (205)를 포함하며, 제 3 인스턴스 (210)는 공유 자원, 예를 들면, 데이터를 포함하는 공유 디스크 (220)를 액세스 하도록 동작할 수 있다. 환경 (200)은 또한 고가용성 소프트웨어 컴포넌트의 제 4 인스턴스(225)를 갖는 제 4 컴퓨터 (215)를 포함하며, 제 4 인스턴스 (225)는 또한 공유 디스크 (220)를 액세스 하도록 동작할 수 있다.
도 1a와 1b의 예들에서, 소프트웨어 컴포넌트는 보증된 단일 활성화에 대한 책임을 질 필요가 없다. 왜냐하면 환경 (100)이 HA 소프트웨어를 포함하고 있기 때문이다. 도 2의 환경 (200)이 HA 소프트웨어를 포함하고 있지 않으므로, 소프트웨어 컴포넌트는 상기 공유 디스크 상의 데이터가 컴퓨터들 (205, 215) 모두로부터 조정되지 않고 동시에 액세스됨으로써 손상되는 일이 없도록 보장할 수 있는 능력이 필요하다.
소프트웨어 컴포넌트의 각 인스턴스가 각각 단일 프로세스로 이루어져 있다면 그리고 공유 데이터 상의 데이터가 소수의 파일들에만 포함되어 있다면, 데이터 무결성이 유지되도록 보장하기 위해서 공유 디스크 상의 데이터 파일에 파일 잠금 (file locking) 기능을 사용하는 것은 충분히 가능하다.
예를 들면, 전용 파일 잠금 (exclusive file locking)은 한 번에 단지 하나의 소프트웨어 컴포넌트 실행 인스턴스만이 데이터 파일들을 읽거나 쓰는 것을 보장하기 위해 사용될 수 있다. 좀 더 복잡한 접근방식으로는, 상기 데이터 파일들의 영역들의 “범위 잠금 (range-locking)”이 사용될 수 있는데, 이는 소프트웨어 컴포넌트의 다수의 인스턴스들이 조정되지 않은 액세스들에 의해서 데이터 파일들을 손상시키지 않도록 보장하는데 사용될 수 있다.
소프트웨어 컴포넌트의 복잡성이 증가하면 추가적인 개선이 필요하다.
본 발명의 바람직한 실시 예의 제 1예에 따라서 데이터 무결성 (data integrity) 유지를 위한 장치 (apparatus)가 제공되며, 상기 장치는 제 1 복수 (plurality) 프로세스들을 갖는 제 1 소프트웨어 인스턴스 및 제 2 소프트웨어 인스턴스를 포함하는 환경에서 사용되고, 제 1 소프트웨어 인스턴스와 제 2 소프트웨어 인스턴스는 각각 공유 데이터를 액세스 하도록 동작 가능하며, 상기 공유 데이터와 연관된 파일은 잠금에 사용되며, 상기 장치는: 제 1 계층 파일 로크 (a first hierarchical file lock)가 제 1 복수 프로세스들의 제 1 부모 (parent) 프로세스에 의해서 보유 (hold)되지 않음에 응답하여, 제 2 인스턴스를 대신해서 제 1 계층 파일 로크를 획득하기 위한 제 1 로크 컴포넌트 (lock component); 상기 제 1 계층 파일 로크가 상기 제 2 인스턴스를 대신해서 획득됨에 응답하여, 제 2 로크 컴포넌트를 활성화하기 위한 수단 (means) - 상기 제 2 로크 컴포넌트는, 제 1 계층 파일 로크의 자식 (child)인 제 2 계층 파일 로크가 제 1 복수 프로세스들 중 어느 것에 의해서도 보유되지 않음에 응답하여, 제 2 인스턴스를 대신해서 제 2 계층 파일 로크를 획득하도록 동작 가능함 -; 및 상기 제 1 로크 컴포넌트가 상기 제 1 계층 파일 로크를 획득하는 것에 응답하여 그리고 상기 제 2 로크 컴포넌트가 상기 제 2 계층 파일 로크를 획득하는 것에 응답하여, 상기 제 1 인스턴스가 공유 데이터를 액세스 하는 것을 막고 상기 제 2 인스턴스가 공유 데이터에 액세스 하도록 허용하는 수단을 포함한다.
본 발명의 바람직한 실시 예의 제 2 예에 따라서 데이터 무결성 유지를 위한 방법이 제공되며, 상기 방법은 제 1 복수 프로세스들을 갖는 제 1 소프트웨어 인스턴스와 제 2 소프트웨어 인스턴스를 포함하는 환경에서 사용되며, 제 1 소프트웨어 인스턴스와 제 2 소프트웨어 인스턴스는 각각 공유 데이터를 액세스 하도록 동작 가능하고 상기 공유 데이터와 연관된 파일은 잠금을 위해 사용되며, 상기 방법은: 제 1 계층 파일 로크가 제 1 복수 프로세스들의 제 1 부모 프로세스에 의해서 보유되지 않음에 응답하여, 제 2 인스턴스를 대신해서 제 1 계층 파일 로크를 획득하는 단계; 상기 제 1 계층 파일 로크가 제 2 인스턴스를 대신해서 획득되고 상기 제 1 계층 파일 로크의 자식인 제 2 계층 파일 로크가 제 1 복수 프로세스들 중 어느 것에 의해서도 보유되지 않음에 응답하여, 상기 제 2 인스턴스를 대신해서 제 2 계층 파일 로크를 획득하는 단계; 및 상기 제 1 계층 파일 로크 및 제 2 계층 파일 로크가 획득됨에 응답하여, 상기 제 1 인스턴스가 공유 데이터를 액세스 하는 것을 막고 상기 제 2 인스턴스가 공유 데이터에 액세스 하도록 허용하는 단계를 포함한다.
본 발명의 바람직한 실시 예의 제 3 예에 따라서, 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램이 제공되는데, 상기 프로그램이 컴퓨터 상에서 실행될 때 상기 방법의 모든 단계들을 수행하도록 구성된 프로그램 코드 수단을 포함하는 컴퓨터 프로그램이 제공된다.
이제 본 발명에 대해서 바람직한 실시 예들을 참조하여 단지 예시의 방식으로 다음 도면들에 도시된 대로 설명할 것이다.
도 1a는 선행 기술인 고가용성 제 1 환경의 블록도이다.
도 1b는 고가용성 제 1 환경에서 컴퓨터에 고장이 발생한 경우의, 도 1의 선행 기술인 고가용성 제 1 환경의 블록도이다.
도 2는 선행 기술인 고가용성 제 2 환경의 블록도이다.
도 3은 바람직한 실시 예에 따른 고가용성 제 2 환경의 블록도이다.
도 4는 도 3의 환경의 부모 프로세스와 연관된 프로세스에 포함된 동작 단계들을 도시하는 흐름도이다.
도 5는 도 3의 환경의 자식 프로세스와 연관된 프로세스에 포함된 동작 단계들을 도시하는 흐름도이다.
도 6a는 제 1 부모 프로세스와 연관된 컴포넌트들의 블록도이다.
도 6b는 제 2 부모 프로세스와 연관된 컴포넌트들의 블록도이다.
도 7a는 도 6a의 부모 프로세스의 제 1 자식 프로세스와 연관된 컴포넌트들의 블록도이다.
도 7b는 도 6a의 부모 프로세스의 제 2 자식 프로세스와 연관된 컴포넌트들의 블록도이다.
소프트웨어 컴포넌트의 다수의 인스턴스들 각각이, 공유 자원의 데이터를 액세스할 수 있는, 다수의 프로세스들을 포함하는 환경에서는 개선된 접근방법이 요구된다.
본 명세서의 예들에서, 바람직한 점은, 소프트웨어 컴포넌트의 다수의 인스턴스들이 동시에 다수의 컴퓨터 상에서 시작되는 것이 가능하다는 것이다. 각 인스턴스는 상기 환경에서 데이터를 액세스 하도록 동작 가능하고 각 인스턴스는 하나 또는 그 이상의 운영 체제 (operating system) 프로세스들을 포함한다.
소프트웨어 컴포넌트의 각 인스턴스는 (데이터 업데이트가 허용되는) “활성 (active)”인스턴스 또는 (데이터 업데이트가 허용되지 않는) “대기 (stanby)” 인스턴스 둘 중 하나이다.
어떤 시점 (point in time)에서든, 상기 환경은 하나보다 많은 활성 인스턴스를 포함하지 않으며 - 그러나, 하나보다 많은 대기 인스턴스는 있을 수 있다 - 이것은 크리티컬 프로그램의 단일 활성화를 보장해준다.
단일 대기 인스턴스가 활성 인스턴스의 완전한 고장 (즉, 현재 활성 인스턴스의 모든 프로세스와 연관된 고장)이 발생하는 경우에 새로운 활성 인스턴스가 될 수 있다는 것은 바람직하다. 더 바람직한 것은, 활성 인스턴스의 부분 고장 (즉, 현재 활성 인스턴스의 프로세스들의 부분 집단 (subset)과 연관된 고장이지만 현재 활성 인스턴스의 모든 프로세스와 연관된 고장은 아닌)은 단일 대기 인스턴스가 새로운 활성 인스턴스가 되는 것을 막는 것이다.
이제 도면들을 참조하여 바람직한 실시 예의 구현을 설명할 것이다.
도 3은 고가용성 소프트웨어 컴포넌트 (310)의 제 5 인스턴스를 갖는 제 5 컴퓨터 (305)를 포함하는 고가용성 환경 (300)의 표시 (representation)를 도시한다.
제 5 인스턴스 (310)는 복수의 프로세스들 (311, 312 및 313)을 포함하고, 상기 프로세스들의 각각은 공유 자원, 예를 들면, 데이터를 포함하는 공유 디스크 (320)에 액세스 하도록 동작할 수 있다. 한 예에서, 공유 디스크 (320)는 네트워크 파일 시스템과 연관된다.
제 1 프로세스 (311)는 두 개의 자식 프로세스 (즉, 제 2 프로세스 (312) 및 제 3 프로세스 (313))를 갖는 부모 프로세스이며, 상기 부모 프로세스는 자식 프로세스들을 시작 (initiate)한다.
상기 환경 (300)은 또한 고가용성 소프트웨어 컴포넌트 (325)의 제 6 인스턴스를 갖는 제 6 컴퓨터 (315)를 포함하며, 제 6 인스턴스 (325)는 복수의 프로세스들 (326, 327 및 328)을 포함하고, 상기 프로세스들의 각각은 공유 디스크 (320)에 액세스 하도록 동작할 수 있다.
제 4 프로세스 (326)는 두 개의 자식 프로세스 (즉, 제 5 프로세스 (327) 및 제 6 프로세스 (328))를 갖는 부모 프로세스이며, 상기 부모 프로세스는 자식 프로세스들을 시작한다.
도 6a는 제 1 프로세스 (311)와 연관된 컴포넌트들의 블록도이고, 제 1 프로세스 (311)는 제 1 모니터 컴포넌트 (600)와 제 1 로크 컴포넌트 (605)를 포함하되, 상기 컴포넌트들 각각은 공유 디스크 (320)에 액세스 하도록 동작할 수 있다. 제 1 프로세스 (311)는 또한 제 1 시작자 (initiator) 컴포넌트 (610)를 포함한다.
도 6b는 제 4 프로세스 (326)와 연관된 컴포넌트들의 블록도이고, 제 4 프로세스 (326)는 제 2 모니터 컴포넌트 (615)와 제 2 로크 컴포넌트 (620)를 포함하되, 상기 컴포넌트들 각각은 공유 디스크 (320)에 액세스 하도록 동작할 수 있다. 제 4 프로세스 (326)는 또한 제 2 시작자 컴포넌트 (625)를 포함한다.
도 7a는 제 2 프로세스 (312)와 연관된 컴포넌트들의 블록도이고, 제 2 프로세스 (312)는 제 3 모니터 컴포넌트 (700)와 제 3 로크 컴포넌트 (705)를 포함하되, 상기 컴포넌트들 각각은 공유 디스크 (320)에 액세스 하도록 동작할 수 있다. 제 2 프로세스 (312)는 또한 제 1 터미네이터 (terminator) (710)를 포함한다.
도 7b는 제 3 프로세스 (313)와 연관된 컴포넌트들의 블록도이고, 제 3 프로세스 (313)는 제 4 모니터 컴포넌트 (715)와 제 4 로크 컴포넌트 (720)를 포함하며, 상기 컴포넌트들 각각은 공유 디스크 (320)에 액세스 하도록 동작할 수 있다. 부모 프로세스와 자식 프로세스 각각은 하나 또는 그 이상의 로크들에 액세스 하도록 동작할 수 있는 것이 바람직하다.
공유 디스크 (320) 상에 저장된 파일들은 잠금에 사용된다.
본 예에서, 전용 모드에서 잠길 수 있는 마스터 로크 (master lock)와 전용 모드 또는 공유 모드에서 잠길 수 있는 활성 로크 (active lock)가 제공된다.
본 발명은 권고적 또는 의무적 로크들로 구현될 수 있다.
바람직하게도, 로크 (lock)는 인스턴스 - 상기 인스턴스의 부모 프로세스가 상기 로크를 보유함 - 와 연관된 식별자 (identifier)를 포함한다. 한 예에서, 상기 식별자는 공유 디스크 (320)에서 잠금을 위해 사용되는 파일에 저장된다. 다른 예에서, 상기 식별자는 잠금에 사용되는 상기 파일과 분리된 파일에 저장된다.
이제 도 3에서 도 8까지를 참조하여 한 예를 설명할 것이다.
한 예에서, 제 1 프로세스 (311)는 실행 (execution)을 시작하여, 제 5 인스턴스 (310)가 시작되도록 한다.
도 4를 참조하면, 제 1 프로세스 (311)의 제 1 모니터 컴포넌트 (600)는 로크의 전용 모드가 획득될 수 있는지를 결정 (400 단계)하기 위해서 마스터 로크를 모니터 한다.
제 1 모니터 컴포넌트 (600)는 마스터 로크 상에서 전용 모드가 획득될 수 있음을 결정하고 응답으로, 제 1 로크 컴포넌트 (605)는 마스터 로크 상에서 전용 모드를 획득한다. 제 1 프로세스 (311)와 연관된 식별자는 마스터 로크와 연관되는 것이 바람직하다.
제 1 프로세스 (311)의 제 1 모니터 컴포넌트 (600)는 로크의 전용 모드가 획득될 수 있는지를 결정하기 위하여 활성 로크를 모니터 한다.
제 1 모니터 컴포넌트 (600)가 활성 로크 상에서 전용 모드가 획득될 수 있다고 결정하면 이에 응답해서, 제 1 로크 컴포넌트 (605)는 활성 로크 상에서 상기 전용 모드를 획득한다. 제 1 프로세스 (311)와 연관된 식별자는 활성 로크와 연관되는 것이 바람직하다.
이에 응답하여, 제 5 인스턴스 (310)는 활성 인스턴스가 된다 (제 5 인스턴스 (310)는 유일한 활성 인스턴스가 된다는 것에 유의한다).
이에 응답하여, 제 1 로크 컴포넌트 (605)는 활성 로크 상의 전용 모드의 잠금을 풀고 이어서 공유 모드에 활성 로크를 잠근다.
제 1 시작자 컴포넌트 (610)는 하나 또는 그 이상의 자식 프로세스들을 시작한다. 본 예에서, 제 1 시작자 컴포넌트 (610)는 제 2 프로세스 (312)와 제 3 프로세스 (313)를 시작한다.
이와 달리, 제 2 프로세스 (312)와 제 3 프로세스 (313) 중 적어도 하나는 독립적으로 시작될 수 있다(예를 들면, 제 1 프로세스 (311)로부터 분리된 다른 프로세스에 의해서).
바람직하게도, 제 2 프로세스와 제 3 프로세스는 그들이 활성 로크의 보유자가 제 1 프로세스라는 것을 확인 (validate)하기까지는 어떠한 일도 하지 않는다 - 제 3 모니터 컴포넌트 (700)와 제 4 모니터 컴포넌트 (715) 각각은 활성 로크와 연관된 식별자를 검사 (check)하는데, 이는 상기 식별자가 제 2 프로세스와 제 3 프로세스 각각의 부모 프로세스와 연관되는지를 결정하기 위함이다. 상기 식별자가 부모 프로세스와 연관되지 않는다면, 제 2 프로세스와 제 3 프로세스는, 부모 프로세스가 고장이 났고 자신들 또한 종료되어야 한다고 간주한다 - 종료 절차는 아래에 더 상세하게 설명할 것이다.
상기 예에서, 상기 식별자는 부모 프로세스 (즉, 제 1 프로세스 (311))와 연관된다. 응답으로, 도 5를 참조하면, 시작 (initiation)된 후, 제 3 모니터 컴포넌트 (700)와 제 4 모니터 컴포넌트 (715)는 각각 로크의 공유 모드가 획득될 수 있는지를 결정 (500 단계)하기 위해서 활성 로크를 모니터 한다.
제 3 모니터 컴포넌트 (700)가 활성 로크 상에서 공유 모드가 획득될 수 있다고 결정하면 이에 응답해서, 제 3 로크 컴포넌트 (705)는 활성 로크 상에서 상기 공유 모드를 획득 (505 단계)한다.
제 4 모니터 컴포넌트 (715)가 활성 로크 상에서 공유 모드가 획득될 수 있다고 결정하면 이에 응답해서, 제 4 로크 컴포넌트 (720)는 활성 로크 상에서 상기 공유 모드를 획득 (505 단계)한다.
그 결과로, 제 1 프로세스 (311)는 전용 모드에서 마스터 로크를 보유하고 제 1 프로세스 (311), 제 2 프로세스 (312) 및 제 3 프로세스 (313)의 각각은 공유 모드에서 활성 로크를 보유한다.
그 결과, 다른 단일 인스턴스는 새로운 활성 인스턴스가 될 수 없고 제 1 프로세스 (311), 제 2 프로세스 (312) 및 제 3 프로세스 (313)의 각각은 공유 디스크에 있는 데이터에 안전하게 액세스 할 수 있다. 제 1 프로세스 (311), 제 2 프로세스 (312) 및 제 3 프로세스 (313)는 동일한 인스턴스 (즉, 제 5 인스턴스 (310))와 연관되므로, 제 1 프로세스 (311), 제 2 프로세스 (312) 및 제 3 프로세스 (313)에 의하여 공유 디스크 (320)에 액세스 하는 것은 기존의 메커니즘들을 사용해서 조정될 (co-ordinated) 수 있다는 것을 이해해야 한다.
도 4를 참조하면, 상기 예에서, 제 4 프로세스 (326)는 제 6 인스턴스 (325)에 의해서 시작된다.
제 4 프로세스 (326)의 제 4 모니터 컴포넌트 (615)는 로크의 전용 모드가 획득될 수 있는지를 결정하기 위해서 마스터 로크를 모니터 한다.
제 4 모니터 컴포넌트 (615)는 마스터 로크 상에서 전용 모드가 획득될 수 없다고 결정하는데 - 이것은 마스터 로크의 전용 모드가 이미 제 1 프로세스 (311)에 의해서 획득되었기 때문이다.
유리하게도, 제 4 모니터 컴포넌트 (615)은, 다른 인스턴스가 활성인지를 또한 결정하기 위해 마스터 로크의 전용 모드가 획득될 수 있는 지와 연관된 결정을 사용할 수 있다. 제 4 모니터 컴포넌트 (615)가 마스터 로크의 전용 모드를 획득할 수 없다면, 제 4 모니터 컴포넌트 (615)는 또 다른 인스턴스가 이미 마스터 로크의 전용 모드를 보유하고 있다고 결정한다.
430 단계에서, 제 6 인스턴스 (325)는 자신이 새로운 활성 인스턴스가 되기 위해 재시도 할 것인지를 결정한다. 제 6 인스턴스 (325)가 새로운 활성 인스턴스가 되기 위해 재시도 (435 단계)를 하지 않기로 함에 응답하여, 도 4의 프로세스는 종료된다.
제 6 인스턴스 (325)가 새로운 활성 인스턴스가 되기 위해 재시도 하기로 함에 응답하여, 제 6 인스턴스 (325)는 대기 인스턴스 (435 단계)로서 마크된다.
상기 예에서, 제 6 인스턴스 (325)는 새로운 활성 인스턴스가 되기 위해 재시도 (435 단계)하고, 이어서 제 4 모니터 컴포넌트 (615)는 로크의 전용 모드가 획득될 수 있는지를 결정 (400 단계)하기 위해서 마스터 로크를 모니터 한다.
제 4 모니터 컴포넌트 (615)는 전용 모드가 마스터 로그 상에서 획득될 수 있다고 결정하는데 - 이는 상기 예에서, 마스터 로크의 전용 모드가 제 1 프로세스 (311)의 로크 컴포넌트 (605)에 의해서 해제되었기 (released) 때문이다 (예를 들면, 제 1 프로세스 (311)는 작업을 마쳤기 때문에 명시적으로 (explicitly) 해제되었고; 제 1 프로세스 (311)는 고장이 났기 (failed) 때문에 묵시적으로 (implicitly) 해제된 것이다).
이어서, 제 4 로크 컴포넌트 (720)는 마스터 로크 상에서 전용 모드를 획득한다 (405 단계).
이제 제 6 인스턴스 (325)는 새로운 활성 인스턴스가 되기 위해 시도한다.
이에 응답하여, 제 4 모니터 컴포넌트 (615)는 이어서 로크의 전용 모드가 획득 가능한지를 결정하기 (410 단계) 위해서 활성 로크를 모니터 한다.
제 1 모니터 컴포넌트 (600)는 전용 모드가 활성 로크 상에서 획득될 수 없다고 결정하는데 - 본 예에서, 이것은 제 2 프로세스 (312) 또는 제 3 프로세스 (313) 중 적어도 하나는 여전히 공유 모드에서 활성 로크를 보유하고 있기 때문이다.
이어서, 제 4 로크 컴포넌트 (720)는 마스터 로크 상의 전용 모드를 해제하고 제 6 인스턴스 (325)는 대기 인스턴스로 유지된다 (430 단계).
바람직한 실시 예는 “계층” 로크들, 즉 마스터 로크와 활성 로크를 제공하며, 먼저 마스터 로크가 획득되고, 이어서 활성 로크가 획득될 수 있다는 것을 이해해야 한다. 계층 로크들을 사용함으로써, 본 발명은 하나의 타이밍 윈도우(a timing window)를 둠으로써 (accounting for) 신뢰성 (reliability)을 제공하며, 이 기간 동안 현재 활성 인스턴스의 부모 프로세스는 종료되었을 수도 있지만 연관된 자식 프로세스는 아직 종료되지 않을 수 있다 - 이 때문에 마스터 로크 상의 전용 모드는 부모 프로세스에 의해서 해제되고 활성 로크 상의 공유 모드는 자식 프로세스에 의해서 해제되지 않는 결과를 초래한다. 따라서, 제 6 인스턴스 (325)는, 제 4 프로세스 (326)가 마스터 로크 상에서 전용 모드를 획득할 수 있을지라도 대기 인스턴스로 남는다 (즉, 왜냐하면 제 4 프로세스 (326)는 여전히 공유 모드에서 활성 로크를 보유 중인 제 2 프로세스 (312) 또는 제 3 프로세스 (313) 중 적어도 하나로 인해서 활성 로크 상에서 전용 모드를 획득할 수 없기 때문이다).
제 6 인스턴스 (325)가 새로운 활성 인스턴스가 되기 위해 재시도 (435 단계)하지 않기로 함에 응답하여, 상기 프로세스는 종료된다.
상기 예에서, 제 6 인스턴스 (325)가 새로운 활성 인스턴스가 되기 위해 (435 단계) 재시도 (435 단계)하기로 함에 응답하여, 제 4 모니터 컴포넌트 (615)는 로크의 전용 모드가 획득될 수 있는지를 결정 (400 단계)하기 위해 마스터 로크를 모니터 한다.
제 4 모니터 컴포넌트 (615)는 마스터 로크 상에서 전용 모드가 획득될 수 있다고 결정하는데 - 상기 예에서, 이것은 마스터 로크의 전용 모드가 제 1 프로세스 (311)의 제 1 로크 컴포넌트 (605)에 의해서 해제되었기 때문이다.
이어서, 제 4 로크 컴포넌트 (720)는 마스터 로크 상에서 전용 모드를 획득한다.
제 4 모니터 컴포넌트 (615)는 이어서 로크의 전용 모드가 획득될 수 있는지를 결정 (410 단계)하기 위해서 활성 로크를 모니터 한다.
제 1 모니터 컴포넌트 (600)는 활성 로크 상에서 전용 모드가 획득될 수 있다고 결정하는데 - 본 예에서, 이것은 제 2 프로세스 (312)와 제 3 프로세스 (313) 어느 것도 여전히 공유 모드에서 활성 로크를 보유하고 있지 않기 때문이다.
상기 제 2 프로세스 (312)와 제 3 프로세스 (313) 어느 것도 여전히 공유 모드에서 활성 로크를 보유하고 있지 않은 이벤트 (event)가, 예를 들면, 제 2 프로세스와 제 3 프로세스 중 각각이 명시적으로 (explicitly) 또는 묵시적으로 (implicitly) 종료되는 것에 의해서 발생할 (caused) 수 있거나; 또는 제 1 프로세스 (311)가 (고장에 의해서 명시적으로 또는 묵시적으로 어느 쪽으로든지) 종료되고 이어서 제 3 모니터 컴포넌트 (700)와 제 4 모니터 컴포넌트 (715) 각각이, 폴링 기능 (polling function) (510 단계) 사용에 의해서 제 1 프로세스 (311)가 종료되었다는 것을 결정하는 것에 의해서 발생할 (caused) 수 있다 - 이어서 각 제 2 프로세스와 제 3 프로세스의 제 1 터미네이터 (710)와 제 2 터미네이터 (725)의 각각은 종료하고 (520 단계) 공유 모드에 있는 활성 로크를 해제한다. 제 1 프로세스 (311)가 종료되지 않았다면, 자식 프로세스는 계속 작업 (515 단계)할 수 있다는 것을 이해해야 한다.
제 1 모니터 컴포넌트 (600)가 활성 로크 상에서 전용 모드가 획득될 수 있다고 결정하는 것에 응답하여, 제 4 로크 컴포넌트 (720)는 활성 로크 상에서 상기 전용 모드를 획득한다.
이에 응답하여, 제 6 인스턴스 (325)는 새로운 활성 인스턴스가 된다.
상기 예시에서, 실행중인 제 5 인스턴스 (310) (즉, 이전의(previous) 활성 인스턴스)의 자식 프로세스들이 없으므로, 제 4 로크 컴포넌트 (720)는 활성 로크 상에서 전용 모드를 획득하도록 동작할 수 있다. 또한, 제 5 인스턴스 (310)와 연관된 프로세스들 (311, 312 및 313)의 각각은 실행 중이지 않으므로, 제 4 로크 컴포넌트 (720)는 마스터 로크와 활성 로크 각각에서 전용 모드를 획득하도록 동작할 수 있다.
다른 구현에서, 복수의 활성 로크들이 제공된다. 마스터 로크 상의 전용 모드가 해제되었다면, 활성 인스턴스의 모든 프로세스들은 다른 인스턴스가 새로운 활성 인스턴스가 되도록 시도할 수 있게 하기 위해서 모든 복수의 활성 로크들을 해제해야 하는 것이 바람직하다.
이어서, 제 4 로크 컴포넌트 (720)는 활성 로크 상의 전용 모드의 잠금을 풀고 (unlock) 이어서 공유 모드에서 활성 로크를 잠근다.
제 2 시작자 컴포넌트 (625)는 하나 또는 그 이상의 자식 프로세스들, 예를 들면, 제 5 프로세스 (327)와 제 6 프로세스 (328)를 시작할 수 있다.
본 발명의 장점은 각 인스턴스가 다수의 프로세스들을 포함할 수 있는 환경에서 한 번에 소프트웨어 컴포넌트 중 하나의 인스턴스만 (예를 들면 “계층”잠금을 사용함으로써 - 예를 들면 전용 마스터 로크와 전용/공유 활성 로크를 사용함으로써) 공유 데이터를 액세스할 수 있도록 고가용성 (예를 들면 인스턴스가 새로운 활성 인스턴스가 될 수 있다)과 인스턴스의 보증된 단일 활성화를 허용해준다는 것이다.
하나의 인스턴스가 다른(another) 인스턴스의 위치에 구성 (configure)될 필요가 없으며 단일 활성화를 보장하기 위해 네트워크가 인스턴스들 사이에서 하트비팅 (heartbeating)할 필요가 없는 것이 장점이다. 이것은 단일 활성화가 파일 잠금을 사용해서 보증될 수 있기 때문이다. 대기 인스턴스가 고장난 (failed) 인스턴스와 연관된 데이터 (예를 들면 고장난 인스턴스가 실행되고 있던 곳과 연관된 위치)를 알 필요 없이 상기 고장난 인스턴스를 대체할 수 있다는 것이 장점이다.
HA 소프트웨어가 필요하지 않다는 것이 장점이다. 이것은 사용성을 높이고 대기 인스턴스들이 더 쉽게 도입될 수 있도록 해준다.
또한, 일 예로 네트워크의 사용불능이 발생할 경우에, 로크를 보유하고 있는 프로세스 식별자의, 상기 로크와의 결합 (association)이 장점이다. 상기 사용불능에 뒤이어, 부모 프로세스는 상기 로크를 재-획득할 수 있고 상기 식별자가 자신의 것(its own)인지를 결정하도록 상기 식별자에 질의(inquiry)를 할 수 있다. 만약 식별자가 자신의 것이면, 상기 프로세스는 사용불능 발생 전에 로크를 보유하고 있었다는 것과 다른 인스턴스는 사용불능 중에 로크를 획득하지 않았음을 알게 된다. 식별자가 자신의 것이 아니면, 상기 프로세스는 또 다른 인스턴스가 사용불능 중에 로크를 획득했음을 알게 된다. 이러한 경우에, 상기 인스턴스와 연관된 부모 프로세스 및 다른 프로세스들은 무결성을 보장하기 위해 종료되어야 한다 (그리고 필요하다면, 부모 프로세스는 재실행되어 로크 획득을 시도할 수 있다).
복수의 대기 인스턴스들이 있다면, 현재 활성 인스턴스가 더 이상 상기 활성 인스턴스가 아닐 때, 새로운 활성 인스턴스가 될 단일 대기 인스턴스를 선택하기 위하여 선택 프로세스 (selection process)가 실행되는데, 예를 들어 상기 복수의 대기 인스턴스들은 새로운 활성 인스턴스가 되기 위해 경쟁 (race)하고 ; 상기 복수의 대기 인스턴스들은 그들 중 어느 것이 새로운 활성 인스턴스가 되어야 하는지를 결정한다는 것을 이해해야 한다. 또한, 대기 인스턴스들을 조정하고 (co-ordinate) 모니터 하기 위해 추가의 로크 파일이 사용될 수 있다.

Claims (7)

  1. 데이터 무결성 (data integrity) 유지 장치에 있어서,
    상기 장치는, 제 1 복수 (plurality) 프로세스를 갖는 제 1 소프트웨어 인스턴스 및 제 2 소프트웨어 인스턴스를 포함하는 환경에서 사용되고, 제 1 소프트웨어 인스턴스 및 제 2 소프트웨어 인스턴스는 각각 공유 데이터를 액세스 하도록 동작 가능하고, 상기 공유 데이터와 연관된 파일은 잠금을 위해 사용되며, 상기 장치는:
    제 1 계층 파일 로크가 제 1 복수 프로세스들의 제 1 부모 프로세스에 의해서 보유되지 않는 것에 응답하여, 제 2 인스턴스를 대신해서 상기 제 1 계층 파일 로크 (the first hierarchical file lock)를 획득하기 위한, 제 1 로크 컴포넌트;
    상기 제 1 계층 파일 로크가 제 2 인스턴스를 대신해서 획득되는 것에 응답하여, 제 2 로크 컴포넌트를 활성화시키기 위한, 수단 - 상기 제 2 로크 컴포넌트는, 상기 제 1 계층 파일 로크의 자식인 제 2 계층 파일 로크가 상기 제 1 복수 프로세스들 중 어느 것에 의해서도 보유되지 않는 것에 응답하여, 상기 제 2 인스턴스를 대신해서 상기 제 2 계층 파일 로크를 획득하도록 동작할 수 있음 -; 및
    상기 제 1 로크 컴포넌트가 상기 제 1 계층 파일 로크를 획득하는 것에 응답하고 상기 제 2 로크 컴포넌트가 상기 제 2 계층 파일 로크를 획득하는 것에 응답하여, 상기 제 1 인스턴스가 공유 데이터를 액세스 하는 것을 막고 상기 제 2 인스턴스가 공유 데이터를 액세스 하도록 허용하기 위한, 수단을 포함하는
    데이터 무결성 유지 장치.
  2. 제 1항에 있어서, 상기 제 2 로크 컴포넌트는, 상기 제 2 모니터 컴포넌트가 상기 제 2 계층 파일 로크가 상기 제 1 복수 프로세스들 중 적어도 하나에 의해서 획득되었음을 결정하는 것에 응답하여, 상기 제 2 인스턴스를 대신해서 제 2 계층 파일 로크를 획득하는 것을 막도록 동작 가능한
    장치.
  3. 제 1항에 있어서, 상기 제 2 소프트웨어 인스턴스는 제 2 복수 프로세스들을 포함하고 상기 제 2 로크 컴포넌트는 상기 제 2 복수 프로세스들 중 적어도 하나를 대신해서 상기 제 2 계층 파일 로크를 획득하도록 동작 가능한
    장치.
  4. 제 1항에 있어서, 상기 장치는 상기 제 1 계층 파일 로크가 획득되기 위해 이용 가능한 지(available to be obtained)를 결정하기 위한 제 1 모니터 컴포넌트를 더 포함하는
    장치.
  5. 제 1항에 있어서, 상기 장치는 상기 제 2 계층 파일 로크가 획득되기 위해 이용 가능한 지를 결정하기 위한 제 2 모니터 컴포넌트를 더 포함하는
    장치.
  6. 데이터 무결성 (data integrity) 유지 방법에 있어서, 상기 방법은 제 1 복수 프로세스를 갖는 제 1 소프트웨어 인스턴스 및 제 2 소프트웨어 인스턴스를 포함하는 환경에서 사용되고, 상기 제 1 소프트웨어 인스턴스 및 상기 제 2 소프트웨어 인스턴스는 각각 공유 데이터를 액세스 하도록 동작 가능하며, 상기 공유 데이터와 연관된 파일은 잠금을 위해 사용되며, 상기 방법은:
    제 1 계층 파일 로크가 상기 제 1 복수 프로세스들의 제 1 부모 프로세스에 의해서 보유되지 않음에 응답하여, 상기 제 2 인스턴스를 대신해서 상기 제 1 계층 파일 로크를 획득하는 단계;
    상기 제 1 계층 파일 로크가 상기 제 2 인스턴스를 대신해서 획득되고 상기 제 1 계층 파일 로크의 자식인 제 2 계층 파일 로크가 상기 제 1 복수 프로세스들 중 어느 것에 의해서도 보유되지 않음에 응답하여, 상기 제 2 인스턴스를 대신해서 제 2 계층 파일 로크를 획득하는 단계; 및
    상기 제 1 계층 파일 로크와 상기 제 2 계층 파일 로크가 획득됨에 응답하여, 제 상기 1 인스턴스가 공유 데이터를 액세스 하는 것을 막고 상기 제 2 인스턴스가 상기 공유 데이터를 액세스 하도록 허용하는 단계를 포함하는
    방법.
  7. 컴퓨터 프로그램에 있어서, 상기 프로그램이 컴퓨터 상에서 실행될 때 청구항 6의 모든 단계들을 수행하도록 구성된 프로그램 코드 수단을 포함하는
    컴퓨터 프로그램.
KR1020117020532A 2009-02-06 2010-01-26 데이터 무결성 유지를 위한 장치 KR101581072B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP09152290 2009-02-06
EP09152290.4 2009-02-06

Publications (2)

Publication Number Publication Date
KR20110114699A true KR20110114699A (ko) 2011-10-19
KR101581072B1 KR101581072B1 (ko) 2015-12-30

Family

ID=42104432

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117020532A KR101581072B1 (ko) 2009-02-06 2010-01-26 데이터 무결성 유지를 위한 장치

Country Status (5)

Country Link
US (1) US10372682B2 (ko)
JP (1) JP5466717B2 (ko)
KR (1) KR101581072B1 (ko)
CN (1) CN102301368B (ko)
WO (1) WO2010089222A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8561080B2 (en) * 2011-04-26 2013-10-15 Sap Ag High-load business process scalability
US9053141B2 (en) * 2011-10-31 2015-06-09 International Business Machines Corporation Serialization of access to data in multi-mainframe computing environments
US9032484B2 (en) 2011-10-31 2015-05-12 International Business Machines Corporation Access control in a hybrid environment
US9741040B2 (en) 2013-08-30 2017-08-22 Sap Se High-load business process scalability
US9722908B2 (en) 2013-10-17 2017-08-01 International Business Machines Corporation Problem determination in a hybrid environment
US10666443B2 (en) * 2016-10-18 2020-05-26 Red Hat, Inc. Continued verification and monitoring of application code in containerized execution environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414839A (en) * 1992-06-19 1995-05-09 Digital Equipment Corporation Hybrid lock escalation and de-escalation protocols
US5566319A (en) * 1992-05-06 1996-10-15 International Business Machines Corporation System and method for controlling access to data shared by a plurality of processors using lock files
JP2002123412A (ja) * 2000-10-16 2002-04-26 Toshiba Corp ファイルアクセス制御システム
US20070185872A1 (en) * 2006-02-03 2007-08-09 Eugene Ho Adaptive region locking

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5115499A (en) * 1986-05-14 1992-05-19 Sequoia Systems, Inc. Shared computer resource allocation system having apparatus for informing a requesting computer of the identity and busy/idle status of shared resources by command code
US4819159A (en) * 1986-08-29 1989-04-04 Tolerant Systems, Inc. Distributed multiprocess transaction processing system and method
US5319780A (en) * 1987-10-19 1994-06-07 International Business Machines Corporation System that implicitly locks a subtree or explicitly locks a node based upon whether or not an explicit lock request is issued
JPH01207833A (ja) * 1988-02-16 1989-08-21 Fujitsu Ltd 排他制御方式
US5355477A (en) * 1991-12-23 1994-10-11 International Business Machines Corporation Method for updating a block using record-level locks by committing the update if the block has not been updated by another process otherwise spinning
US5555388A (en) * 1992-08-20 1996-09-10 Borland International, Inc. Multi-user system and methods providing improved file management by reading
CA2213371C (en) * 1996-08-28 2003-01-28 Hitachi, Ltd. Process executing method and resource accessing method in computer system
US5895494A (en) * 1997-09-05 1999-04-20 International Business Machines Corporation Method of executing perform locked operation instructions for supporting recovery of data consistency if lost due to processor failure, and a method of recovering the data consistency after processor failure
US6240414B1 (en) 1997-09-28 2001-05-29 Eisolutions, Inc. Method of resolving data conflicts in a shared data environment
US6026401A (en) * 1997-10-14 2000-02-15 International Business Machines Corporation Locking tool data objects in a framework environment
US6178421B1 (en) * 1998-06-05 2001-01-23 International Business Machines Corporation Method of performing parallel cleanup of segments of a lock structure
US8099758B2 (en) * 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US6625602B1 (en) * 2000-04-28 2003-09-23 Microsoft Corporation Method and system for hierarchical transactions and compensation
US6944133B2 (en) * 2001-05-01 2005-09-13 Ge Financial Assurance Holdings, Inc. System and method for providing access to resources using a fabric switch
US6687709B2 (en) * 2001-06-29 2004-02-03 International Business Machines Corporation Apparatus for database record locking and method therefor
US7904804B1 (en) * 2001-11-20 2011-03-08 Vignette Software Llc System and method for web sites in hierarchical relationship to share assets
US7120631B1 (en) * 2001-12-21 2006-10-10 Emc Corporation File server system providing direct data sharing between clients with a server acting as an arbiter and coordinator
US7814488B1 (en) * 2002-09-24 2010-10-12 Oracle America, Inc. Quickly reacquirable locks
US7496574B2 (en) * 2003-05-01 2009-02-24 International Business Machines Corporation Managing locks and transactions
US7284151B2 (en) * 2003-07-21 2007-10-16 Oracle International Corporation Conditional data access after database system failure
US7383368B2 (en) * 2003-09-25 2008-06-03 Dell Products L.P. Method and system for autonomically adaptive mutexes by considering acquisition cost value
US7409525B1 (en) * 2006-03-29 2008-08-05 Emc Corporation Implicit locks in a shared virtual memory system
US7500037B2 (en) * 2007-01-30 2009-03-03 International Business Machines Corporation System, method and program for managing locks
US20090307707A1 (en) * 2008-06-09 2009-12-10 International Business Machines Corporation System and method for dynamically adaptive mutual exclusion in multi-threaded computing environment
US8510281B2 (en) * 2008-12-18 2013-08-13 Sap Ag Ultimate locking mechanism
US8510334B2 (en) * 2009-11-05 2013-08-13 Oracle International Corporation Lock manager on disk

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5566319A (en) * 1992-05-06 1996-10-15 International Business Machines Corporation System and method for controlling access to data shared by a plurality of processors using lock files
US5414839A (en) * 1992-06-19 1995-05-09 Digital Equipment Corporation Hybrid lock escalation and de-escalation protocols
JP2002123412A (ja) * 2000-10-16 2002-04-26 Toshiba Corp ファイルアクセス制御システム
US20070185872A1 (en) * 2006-02-03 2007-08-09 Eugene Ho Adaptive region locking

Also Published As

Publication number Publication date
US20100205164A1 (en) 2010-08-12
JP5466717B2 (ja) 2014-04-09
JP2012517057A (ja) 2012-07-26
CN102301368B (zh) 2014-01-22
US10372682B2 (en) 2019-08-06
WO2010089222A1 (en) 2010-08-12
CN102301368A (zh) 2011-12-28
KR101581072B1 (ko) 2015-12-30

Similar Documents

Publication Publication Date Title
US8788579B2 (en) Clustered client failover
US10372384B2 (en) Method and system for managing storage system using first and second communication areas
US7266722B2 (en) System and method for efficient lock recovery
KR100974156B1 (ko) 파일 서버 재초기화 장치, 방법 및 컴퓨터 판독 가능한 기록 매체
KR100553920B1 (ko) 컴퓨터 클러스터 운영 방법
US7962915B2 (en) System and method for preserving state for a cluster of data servers in the presence of load-balancing, failover, and fail-back events
US8495131B2 (en) Method, system, and program for managing locks enabling access to a shared resource
KR20110114699A (ko) 데이터 무결성 유지를 위한 장치
US20100211829A1 (en) Failure detection and recovery of host computers in a cluster
JP5559316B2 (ja) コンピュータ実装多重リソース共有ロック
US7966516B2 (en) Automatic JTA migration
US10324811B2 (en) Opportunistic failover in a high availability cluster
CN110825487B (zh) 一种虚拟机防脑裂的管理方法及主服务器
Cisco Appendix C: Installation Troubleshooting Guides
US20240272989A1 (en) High availability for backup and restore applications in public clouds
CN118035199A (zh) 防高可用切换时读写异常的nfs服务端控制方法及装置
US20070083867A1 (en) Method and system to recover from control block hangs in a heterogenous multiprocessor environment
JP2008242742A (ja) クラスタシステム
Shaw et al. Clusterware
CN117667296A (zh) 目标容器的重启方法及装置
CN114710976A (zh) 一种锁重申方法、锁管理方法以及服务器
CN116361073A (zh) 数据安全管理方法、装置、设备及存储介质
JPS62204360A (ja) システム間デ−タベ−ス共用方式
JP2000353101A (ja) データ共有管理装置およびデータ共有管理方法
NZ622122B2 (en) Clustered client failover

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20191126

Year of fee payment: 5