[go: up one dir, main page]

KR101278818B1 - 트랜잭션 일관 및 문제 상태 - Google Patents

트랜잭션 일관 및 문제 상태 Download PDF

Info

Publication number
KR101278818B1
KR101278818B1 KR1020087005704A KR20087005704A KR101278818B1 KR 101278818 B1 KR101278818 B1 KR 101278818B1 KR 1020087005704 A KR1020087005704 A KR 1020087005704A KR 20087005704 A KR20087005704 A KR 20087005704A KR 101278818 B1 KR101278818 B1 KR 101278818B1
Authority
KR
South Korea
Prior art keywords
transaction
resource
state
resource manager
manager
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020087005704A
Other languages
English (en)
Other versions
KR20080042881A (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 KR20080042881A publication Critical patent/KR20080042881A/ko
Application granted granted Critical
Publication of KR101278818B1 publication Critical patent/KR101278818B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1474Saving, restoring, recovering or retrying in transactions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/82Solving problems relating to consistency

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본원에 기술된 본 발명의 양상들은 트랜잭션들에 관한 것이다. 양상들에 있어서, 섀도 복사 서비스와 같은 일관성 요청자는 리소스 세트의 일관된 뷰를 갖도록 요청한다. 응답 시, 문제 상태에 있는 트랜잭션들은 문제 상태를 탈출하도록 허가되며, 반면에 문제 상태에 있지 않은 새로운 트랜잭션 및 기존의 트랜잭션들은 그들을 문제 상태로 들어가게 하는 작업 외의 임의의 작업을 수행하도록 허가된다. 문제 상태에 있는 트랜잭션들이 존재하지 않게 된 후에, 리소스 세트의 일관된 뷰가 이용가능하다. 이런 뷰는 일관성 요청자에 의해 소망에 따라 사용될 수 있다. 그 후에, 일관성 요청자는 일관된 뷰가 더 이상 필요로 되지 않는다는 것을 나타낼 수 있다. 그런 다음, 트랜잭션들은 문제 상태로 들어가도록 허가된다. 트랜잭션들은 또한 타임아웃이 경과한다면, 문제 상태로 들어가도록 허가된다.
리소스 관리자, 트랜잭션 관리자, 애플리케이션, 리소스 저장소

Description

트랜잭션 일관 및 문제 상태{TRANSACTION CONSISTENCY AND PROBLEMATIC STATES}
시스템의 백업을 행하는 경우, 시스템상의 리소스는 트랜잭션들에 관여될 수 있다. 백업을 생성하기 위해, 리소스가 저장되어 있는 저장장치에 대한 섀도 복사(shadow copy)가 생성될 수 있다. 그런 다음 섀도 복사는 백업을 행하는 데 사용될 수 있다. 하지만, 트랜잭션에 관여된 저장장치의 섀도 복사는 일관되지 않은(inconsistent) 데이터를 가지는 이미지를 생성할 수 있다.
[요약]
간단히 말하면, 본원에 기술된 본 발명의 양상들은 트랜잭션에 관한 것이다. 양상들에 있어서, 섀도 복사 서비스와 같은 일관성 요청자(consistency requestor)는 리소스 세트의 일관된 뷰(consistent view)를 갖도록 요청한다. 응답 시, 문제 상태에 있는 트랜잭션들은 문제 상태를 탈출하도록 허가되며, 반면에 문제 상태에 있지 않은 새로운 트랜잭션 및 기존의 트랜잭션들은 그들을 문제 상태로 들어가게 하는 작업 외에 임의의 작업을 수행하도록 허가된다. 문제 상태에 있는 트랜잭션이 없으면, 리소스 세트의 일관된 뷰가 이용가능하다. 이런 뷰는 일관성 요청자에 의해 소망에 따라 사용될 수 있다. 그 후에, 일관성 요청자는 일관된 뷰가 더 이상 필요로 되지 않음을 나타낼 수 있다. 그런 다음 트랜잭션들은 문제 상태로 들어가도록 허가된다. 또한, 트랜잭션들은, 타임아웃(timeout)이 경과하면, 문제 상태로 들어가도록 허가될 수 있다.
이 요약은 이하의 상세한 설명에 더 기술되는 본 발명의 몇몇 양상을 간략하게 확인하기 위해 제공된다. 이 요약은 청구된 발명의 주요 특징 또는 필수적인 특징을 확인하기 위한 것이 아니며, 청구된 발명의 범위를 정하는 데 사용하기 위한 것도 아니다.
"본원에 기술된 발명"이라는 문구는, 그 문맥이 달리 분명하게 나타내지 않는 한, 상세한 설명에 기술된 발명을 지칭한다. "양상"이라는 용어는 "적어도 하나의 양상"으로서 판독되어야 한다. "상세한 설명에 기술된 본 발명의 양상들을 확인하는 것"은 청구된 본 발명의 주요 특징 또는 필수적인 특징을 확인하기 위한 것이 아니다.
본원에 기술된 본 발명의 전술된 양상 및 다른 양상은 일례로서 도시되어 있으며 첨부된 도면에 한정되는 것은 아니며, 도면에서 같은 참조 부호는 같은 구성요소를 나타낸다.
도 1은 본원에 기술된 본 발명의 양상들이 구현될 수 있는 예시적 범용 컴퓨팅 환경을 나타내는 블록도이다.
도 2는 본원에 기술된 본 발명의 양상들이 동작할 수 있는 시스템의 컴포넌트들의 예시적 배치를 나타내는 블록도이다.
도 3은 본원에 기술된 본 발명의 양상들에 따른 트랜잭션을 커밋하는(committing) 데 있어 발생할 수 있는 액션들을 나타내는 타이밍도이다.
도 4는 본원에 기술된 본 발명의 양상들에 따른, 2개의 리소스 관리자의 로그 파일을 일반적으로 나타내는 블록도이다.
도 5는 본원에 기술된 본 발명의 양상들에 따른, 진행중인 트랜잭션 세트를 일반적으로 나타내는 블록도이다.
도 6은 본원에 기술된 본 발명의 양상들에 따른, 트랜잭션에 관여된 컴포넌트들의 예시적 계층구조를 일반적으로 나타내는 블록도이다.
도 7A 및 도 7B는 본원에 기술된 본 발명의 양상들에 따른, 리소스 세트의 일관된 뷰를 획득하는 데 있어 발생할 수 있는 예시적 액션을 일반적으로 나타내는 흐름도이다.
예시적 운영 환경
도 1은 본원에 기술된 본 발명의 양상들이 구현되기에 적합한 컴퓨팅 시스템 환경(100)의 일례를 도시하고 있다. 컴퓨팅 시스템 환경(100)은 적합한 컴퓨팅 환경의 일례에 불과하며, 본원에 기술된 본 발명 양상들의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(100)이 예시적인 운영 환경(100)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
본원에 기술된 본 발명의 양상들은 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 본원에 기술된 본 발명의 양상들에 사용하는 데 적합할 수 있는 잘 알려진 컴퓨팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
본원에 기술된 본 발명 양상들은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 개체, 컴포넌트, 데이터 구조 등을 포함한다. 본원에 기술된 본 발명의 양상들은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시되도록 설계될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 1과 관련하여, 본원에 기술된 본 발명의 양상들을 구현하는 예시적인 시스템은 컴퓨터(110) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(110)의 컴포넌트들은 처리 장치(120), 시스템 메모리(130), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(120)에 연결시키는 시스템 버스(121)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(121)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스, 그리고 메자닌 버스(mezzanine bus)로도 알려진 PCI(peripheral component interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(110)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(110)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 기타 전송 메커니즘(transport mechanism)과 같은 피변조 데이터 신호(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프 로그램 모듈 또는 기타 데이터 등을 구현하고 모든 정보 전달 매체를 포함한다. "피변조 데이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 접속(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(130)는 판독 전용 메모리(ROM)(131) 및 랜덤 액세스 메모리(RAM)(132)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(110) 내의 구성요소들 사이의 정보 전송을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(133)은 통상적으로 ROM(131)에 저장되어 있다. RAM(132)은 통상적으로 처리 장치(120)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 1은 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136) 및 프로그램 데이터(137)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(110)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 1은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(141), 이동식·비휘발성 자기 디스크(152)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(151), CD- ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(156)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(155)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(141)는 통상적으로 인터페이스(140)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(121)에 접속되고, 자기 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 통상적으로 인터페이스(150)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(121)에 접속된다.
위에서 설명되고 도 1에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(110)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 1에서, 예를 들어, 하드 디스크 드라이브(141)는 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146) 및 프로그램 데이터(147)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(162), 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(161) 등의 입력 장치를 통 해 명령 및 정보를 컴퓨터(110)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너, 핸드-헬드 PC 또는 기입 태블릿의 터치-감응 스크린, 또는 기타 등등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스에 결합된 사용자 입력 인터페이스(160)를 통해 처리 장치(120)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(191) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(190) 등의 인터페이스를 통해 시스템 버스(121)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(197) 및 프린터(196) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(195)를 통해 접속될 수 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(180)는 또 하나의 퍼스널 컴퓨터, 핸드-헬드 장치, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 도 1에는 메모리 저장 장치(181)만이 도시되었지만 통상적으로 컴퓨터(110)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함한다. 도 1에 도시된 논리적 접속으로는 LAN(171) 및 WAN(173)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스 또는 어댑터(170)를 통해 LAN(171)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 통상적으로 인터넷과 같은 WAN(173)을 통해 통신을 설정하기 위한 모뎀(172) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(172)은 사용자 입력 인터페이스(160) 또는 기타 적절한 메커니즘을 통해 시스템 버스(121)에 접속된다. 네트워크화된 환경에서, 컴퓨터(110) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 1은 원격 애플리케이션 프로그램(185)이 메모리 저장 장치(181)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
트랜잭션
도 2는 본원에 기술된 본 발명의 양상들이 동작할 수 있는 시스템의 컴포넌트들의 예시적 배치를 나타내는 블록도이다. 일 실시예에서, 본 시스템은 애플리케이션(205 내지 207), I/O 관리자(210), 일관성 요청자(215), 트랜잭션 관리자(220), 리소스 저장소(221 및 222), 및 리소스 관리자(225 및 226)를 포함한다. 다른 실시예에서는, 더 많거나 혹은 더 적은 애플리케이션(205 내지 207), 더 많거나 혹은 더 적은 리소스 저장소(221 및 222), 및 더 많거나 혹은 더 적은 리소스 관리자(225 및 226)가 존재할 수 있다. 또 다른 실시예에서는, 하기에 보다 상세히 기술된 바와 같이 트랜잭션 관리자의 계층구조가 존재할 수 있다.
애플리케이션(205 내지 207)은 트랜잭션을 사용하여 리소스를 생성, 삭제, 또는 갱신할 수 있는 임의의 프로세스를 포함한다. 이들 프로세스는 사용자 모드 또는 커널 모드에서 실행될 수 있다. 애플리케이션(205 내지 207)은 파일 시스템 요청(예컨대, 함수/메소드 호출을 통해)을 API(230)를 통해서 I/O 관리자(210)에게 행할 수 있다. I/O 관리자(210)는 각각의 요청을 충족시키기 위해 어떤 I/O 요청 또는 요청들을 리소스 관리자(225 내지 226)에게 발행할 것인가를 판정할 수 있다. I/O 관리자(210)는 또한, 파일 시스템 요청과 연관된 동작들이 진행, 완료, 또는 실패할 때, 데이터를 그 애플리케이션(205)에 반환할 수 있다. 파일 시스템 요청이 트랜잭션을 필요로 하는 경우, 트랜잭션 관리자(220)는 알게 되어서, 그 트랜잭션을 올바르게 관리할 수 있게 된다.
일 실시예에서, 트랜잭션은 다음의 속성(원자성(atomic), 일관성(consistent), 고립성(isolated), 및 지속성(durable))을 갖는 동작들의 그룹이다. 다른 실시예에서, 트랜잭션은 상기 속성들 중 하나 이상의 속성을 갖는 동작들의 그룹을 포함할 수 있다.
원자성은 그룹 내의 모든 동작이 성공하는 것, 또는 그룹 내의 동작들의 실체적인 효과(예컨대, 파일 변동)가 실행취소(또는 롤백으로서 알려짐)되는 것 중 어느 한 경우를 나타낸다. 예를 들어, 은행 송금(bank transfer)은 2개의 동작(하나의 계좌로부터의 데빗(debit)과 다른 한 계좌로의 크레딧(credit))의 단일 세트로서 구현될 수 있다. 2개의 동작이 모두 성공하지 않으면, 송금은 은행 또는 계좌 보유자를 수취인으로 하여 불공정하게 된다. 그러므로, 트랜잭션 내의 양쪽 동 작이 성공해야 하거나, 또는 성공했던 임의의 동작의 실체적인 효과(예컨대, 디스크 또는 메모리에 저장된 데이터)가 실행취소되어야 하거나, 둘 중 한 경우이어야 한다.
일관성은, 트랜잭션이 시작되기 전에 데이터가 일관된 경우, 송금이 종료된 후에도 데이터는 일관될 것임을 의미한다. 상기의 은행 송금의 예에서, 일관성은 2개의 계좌에 대한 조합된 계좌 잔고가 불변하는 것으로서 규정될 수 있다. 은행 송금의 예에서 일관성을 구현하기 위해서는, 데빗 및 크레딧 동작은 단순히 동일한 액수의 돈에 대한 것이며, 그 데빗 및 크레딧 동작은 계좌 각각에 대해 모두 완료되거나, 또는 모두 완료되지 않아야 할 필요가 있다.
고립성은 진행중인 트랜잭션 내에서 실행된 작업이, 다른 트랜잭션과 연관된 작업을 수행하거나, 또는 그 트랜잭션의 외부에 있는 쓰레드 또는 프로세스에 의해 관측될 수 없는 것을 의미한다. 예를 들어, 갱신 시에, 전자 상거래 사이트는 새로운 제품을 설명하는 제품 상세 페이지가 나타나는 시점과 동일한 시점에 새로운 제품 카테고리 탐색 페이지가 나타나도록 할 필요가 있을 수 있다. 탐색 페이지가 제품 상세 페이지 전에 나타난다면, 이는 현재 그 탐색 페이지를 사용하여 쇼핑하는 고객에 대하여 페이지 누락(missing pages)을 야기할 수 있다. 탐색 페이지와 제품 상세 페이지가 동시에 나타나도록 하는 것은, 트랜잭션의 제어하에서 다수의 파일 및 디렉토리 엔트리들을 갱신 및 추가함으로써 구현될 수 있다.
지속성은, 갱신이 종료된 후에, 시스템이 응답을 중단하는 경우조차도(예컨대, 정전으로 인해), 그 효과가 지속되는 것을 의미한다. 전자 상거래 사이트의 예에서, 지속성은 갱신들을 하드 디스크와 같은 비휘발성 저장장치에 기입함으로써 제공될 수 있다.
리소스 관리자(225 및 226) 각각은 그 대응하는 리소스 관리자에 의해 관리되는 리소스 세트의 트랜잭션널(transactional) 뷰를 제공한다. 리소스 관리자가 관리하는 리소스 세트는 하나 이상의 디스크 볼륨상의 파일들 및 디렉토리들, 범용 데이터베이스, 레지스트리(registry), 플랫 파일(flat file), XML 파일, HTML 파일 등의 특수한(specialized) 데이터베이스, 휘발성 또는 비휘발성 메모리에 저장되는 하나 이상의 데이터 구조, 상기 것들의 임의의 서브셋, 조합 또는 열거, 및 기타 등등을 포함할 수 있다. 예를 들어, 리소스 관리자는 볼륨의 파일들 및 디렉토리들의 전부 또는 서브셋을 관리할 수 있다. 다른 예로서, 리소스 관리자는 레지스트리의 전부 또는 일부를 관리할 수 있다. 다른 예로서, 리소스 관리자는 디스크상에 저장된 한 세트의 데이터 구조를 관리할 수 있다. 여러 다른 예들은 당업자에게 자명할 것이다.
리소스 관리자가 관심을 갖는 트랜잭션 각각에 대해, 리소스 관리자는 트랜잭션과 관련된 메시지들을 수신하기 위해 트랜잭션 관리자(220)에 등재된다(enlist with). 트랜잭션에 대하여 등재한 후에, 리소스 관리자는 준비(prepare), 커밋(commit), 롤백(rollback) 등의 트랜잭션 메시지를 트랜잭션 관리자(220)로부터 수신한다. 리소스 관리자는 트랜잭션이 커밋 또는 롤백할 수 있는지의 여부에 대해 투표할 수 있다. 예를 들어, 준비 메시지에 응답하여, 리소스 관리자는 커밋을 준비하기 위해 필요로 되는 정보를 디스크에 저장할 수 없을 수 있다. 결과적으 로, 리소스 관리자는, 트랜잭션이 롤백되는 것에 투표함으로써, 트랜잭션 관리자(220)에게 이런 문제에 대해 알릴 수 있다.
리소스 관리자는 휘발성 또는 지속성을 가질 수 있다. 지속성의 리소스 관리자는 데이터를 지속성의 저장장치에 지속시켜서, 리소스 관리자가 고장나거나(crashes), 또는 그렇지 않다면 작동하지 않는 경우, 복구 시에 리소스 관리자가 모든 미결의 트랜잭션의 상태를 복구할 수 있게 한다. 리소스 관리자는 리소스의 세트 또는 로그를 비휘발성 저장장치에 저장할 수 있으며, 이는 필요하다면 리소스 관리자가 트랜잭션 작업을 취소 또는 재실행하는 것을 허용한다. 휘발성의 리소스 관리자는 데이터를 휘발성 메모리에 저장할 수 있다.
트랜잭션 관리자(220)는 등재된 리소스 관리자를 이용하여 트랜잭션 액션들을 조정한다. 일 실시예에서, 트랜잭션 관리자(220)는, 애플리케이션이 트랜잭션이 커밋하도록 요청할 때, 두 단계의 커밋 프로토콜을 개시한다. 두 단계의 커밋 프로토콜에서는, 트랜잭션 관리자가 트랜잭션을 커밋하라는 요청을 수신한 후에, 트랜잭션 관리자(220)는 각각의 목록화된 리소스 관리자에게 그것들이 트랜잭션을 커밋 또는 롤백하기 위해 준비되어 있는가를 묻는다. 리소스 관리자가 커밋 또는 롤백을 준비할 수 없는 경우, 리소스 관리자는 트랜잭션 관리자(220)에게 알림으로써 트랜잭션을 롤백하는 것에 투표할 수 있다. 트랜잭션 관리자(220)가 롤백 투표를 수신하면, 트랜잭션 관리자(220)는 롤백 명령을 트랜잭션에 목록화된 리소스 관리자 각각에게 전송할 수 있다.
리소스 관리자 각각이 그것이 트랜잭션을 커밋하기 위해 준비되어 있음을 나 타낸 후에, 트랜잭션 관리자(220)는 커밋 레코드를 비휘발성 저장장치에 기입할 수 있고, 그런 다음 등재된 리소스 관리자 각각에게 트랜잭션을 커밋하도록 요청할 수 있다. 커밋 요청을 수신한 후에, 리소스 관리자 각각은 커밋 레코드를 자신의 로그 파일에 기입하고, 그 트랜잭션을 완료하는 데 필요로 되는 임의의 다른 액션을 수행할 수 있다.
임의의 시점에서, 둘 이상의 리소스 관리자의 스냅샷 뷰(snapshot view)는 활동중인 트랜잭션의 원자성을 포함할 수 있다. 예를 들어, 트랜잭션이 하나의 리소스 관리자에 의해 관리되는 볼륨(예컨대, 볼륨 D)에서 다른 리소스 관리자에 의해 관리되는 볼륨(예컨대, 볼륨 E)으로 파일을 이동하는 것을 포함하는 경우, 파일은 볼륨 D로부터 삭제되고, 볼륨 E상에 생성될 수 있다. 볼륨 D와 연관된 로그에 커밋 레코드가 기입된 후지만 볼륨 E와 연관된 로그에 커밋 레코드가 기입되기 전에 프로세스(예컨대, 백업 애플리케이션)가 볼륨들을 참조하는 경우, 프로세스는 파일의 일관되지 않은 상태(예컨대, D로부터는 삭제되고 E상에는 생성되지 않음)를 얻을 수 있다. 이는 데이터 손실을 야기할 수 있다.
일관된 상태의 리소스 세트의 뷰를 획득하기 위해, 일관성 요청자(215)는 트랜잭션 관리자(220)에게 요청(예컨대, 프리즈(freeze))을 행할 수 있다. 응답 시에, 트랜잭션 관리자(220)는 하기에 보다 상세히 기술된 바와 같이 애플리케이션으로 하여금 문제 상태를 야기하는 트랜잭션 작업 외의 임의의 트랜잭션널 작업을 포함하는 추가 동작을 리소스 세트에 대하여 수행하게끔 할 수 있다. 요청이 행해진 시점에서 문제 상태의 트랜잭션을 가진 애플리케이션은, 문제 상태를 탈출하기 위해 트랜잭션에 관한 후속 트랜잭션널 작업을 행하도록 허가될 수 있다.
문제 상태에 있는 트랜잭션이 존재하지 않게 된 후에, 트랜잭션 관리자(220)는 일관성 요청자(215)에게 일관된 리소스 세트가 이용가능하다는 것을 알릴 수 있다. 이 시점에서, 일관성 요청자(215)는 리소스 세트가 일관된 상태에 있다는 것을 알면서 그것이 원하는 어떤 동작이라도 수행할 수 있다. 일관성 요청자(215)가 수행할 수 있는 한 가지 예시적 동작은 리소스 세트의 섀도 복사(예컨대, 시점 스냅샷(a point in time snapshot))를 생성하는 것이다. 일관성 요청자(215)가 그것이 수행하길 원하는 임의의 동작을 완료한 후에, 일관성 요청자(215)는 트랜잭션 관리자(220)에게 알릴 수 있고, 그런 다음 트랜잭션 관리자는 트랜잭션들이 문제 상태로 들어가는 것을 허가할 수 있다.
모든 트랜잭션이 문제 상태를 떠날 때까지 트랜잭션 관리자(220)가 얼마나 오랫동안 대기할 수 있는가에 관한 타임아웃이, 부여될 수 있다. 타임아웃은, 일관성 요청자, 시스템 관리자, 사용자, 또는 기타 등등에 의해 선택될 수 있거나, 또는 트랜잭션 관리자(220) 또는 그 밖의 다른 장소에 하드-코드(hard-coded)될 수 있다. 일관성에 대한 요청이 수신된 후에 타임아웃만큼의 시간이 경과하면, 트랜잭션 관리자(220)는 일관성 요청자(215)에게 리소스 세트의 일관된 뷰가 이용불가능하다는 것을 알릴 수 있고, 그 이유(예컨대, 타임아웃)를 나타낼 수 있다.
도 3은 본원에 기술된 본 발명의 양상들에 따른 트랜잭션을 커밋하는 데 있어 발생할 수 있는 액션들을 나타낸 타이밍도이다. 애플리케이션은 트랜잭션 T1에 대한 커밋을 요청한다. 응답 시에, 트랜잭션 관리자는 리소스 관리자 A 및 리소스 관리자 B에게 커밋 또는 롤백을 준비할 것을 통지한다.
응답 시에, 리소스 관리자 (A 및 B)는 트랜잭션의 커밋 또는 롤백을 준비하기 위한 임의의 필요한 액션을 취한다. 예를 들어, 그것들은 데이터를 디스크에 플러쉬(flush)할 수 있다.
리소스 관리자가 커밋 또는 롤백할 준비가 된 후에, 리소스 관리자는 준비 레코드를 로그 파일에 기입할 수 있다. 준비 레코드를 기입한 후에, 리소스 관리자는 트랜잭션 관리자에게 리소스 관리자가 준비되어 있다는 것을 알리 수 있다.
트랜잭션 관리자가 리소스 관리자 각각이 준비되어 있다는 것을 나타내는 메시지들을 수신한 후에, 트랜잭션 관리자는 리소스 관리자 각각이 트랜잭션을 커밋하도록 요청할 수 있다. 트랜잭션 관리자가 트랜잭션을 롤백하는 것에 투표하거나, 또는 모든 메시지를 수신하기 전에 타임아웃이 만료되는 경우, 트랜잭션 관리자는 대신 리소스 관리자 각각에게 트랜잭션을 롤백할 것을 명령할 수 있다.
리소스 관리자가 트랜잭션을 커밋하기 위한 모든 필요한 작업을 행한 후에, 리소스 관리자는 커밋을 자신의 로그 파일에 기입하고, 트랜잭션 관리자에게 리소스 관리자가 트랜잭션을 커밋하였음을 알리는 통지를 보낸다.
리소스 관리자가 시간 TI 또는 T2에서 복구될 필요가 있다면, 일관되지 않은 상태가, 트랜잭션 관리자가 이용불가능한 경우에, 발생할 수 있다. 복구 동안에, 트랜잭션 관리자가 이용가능한 경우, 트랜잭션 관리자를 이용하여 트랜잭션의 최종 결과(예컨대, 커밋됨 또는 롤백됨)를 판정할 수 있다. 트랜잭션 관리자가 이용불가능한 경우, 트랜잭션은 "불확실한(in-doubt)"것으로 간주되고, 트랜잭션 관리자가 이용가능하게 될 때까지 그대로 유지될 것이다.
일 실시예에서, 트랜잭션 관리자가 이용가능하게 되는 것(이는, 몇몇 경우에, 절대 발생할 수 없음)에 의존, 또는 트랜잭션 관리자가 이용가능하게 되는 것을 대기하는 것 대신에, 리소스 관리자는 트랜잭션의 최종 결과를 나타내기 위해 복구 동안 규칙을 적용시킬 수 있다. 한 가지 예시적 규칙은 준비 레코드를 갖지만 커밋 레코드를 갖지 않은 임의의 트랜잭션을 롤백되게 하는 것이다. 다른 규칙은 준비 레코드를 갖지만 커밋 레코드를 갖지 않은 임의의 트랜잭션을 커밋되게 하는 것이다.
상기 첫번째 규칙하에서, 리소스 관리자 A 및 B가 시간 T3에서 복구되면, 리소스 관리자 A상의 트랜잭션 작업은 커밋된 채로 유지될 것이며, 반면에 리소스 관리자 B상의 트랜잭션 작업은 롤백될 것이다. 상기 두번째 규칙하에서, 리소스 관리자 A 및 B가 시간 T1에서 복구되면, 리소스 관리자 A상의 트랜잭션 작업은 커밋될 것이며, 반면에 리소스 관리자 B상의 트랜잭션 작업(설사 있다손 치더라도)은 롤백될 것이다. 이들 상태 모두는, 복구가 일관되지 않은 상태를 생성하는 문제 상태가 있다.
한편, 상기 첫번째 규칙하에서, 리소스 관리자 A 및 B가 시간 T1에서 복구되면, 리소스 관리자 A 및 B상의 트랜잭션 작업은 롤백되며 복구는 일관된 상태를 생성한다. 이와 마찬가지로, 상기 두번째 규칙하에서, 리소스 관리자 A 및 B가 시간 T3에서 복구되면, 복구 동안, 리소스 관리자 B상의 트랜잭션 작업은 커밋되고, 복구는 일관된 상태를 생성한다.
어느 규칙하에서도, 복구가 시간 T0, T2, 또는 T4에서 일어나면, 복구는 일관된 상태를 생성한다.
일 실시예에서, 리소스 세트의 일관된 섀도 복사는, 임의의 새로운 트랜잭션이 문제 상태로 들어가지 않도록 방지하고, 모든 현재의 미결의 트랜잭션이 문제 상태로부터 빠져나올 때까지 대기하고, 모든 현재의 미결의 트랜잭션이 문제 상태로부터 빠져나온 후에 섀도 복사를 생성하고, 상기 규칙들 중 한 규칙을 적용하여 트랜잭션 관리자의 참여없이 섀도 복사의 복구를 수행함으로써, 생성될 수 있다.
논리적으로, 섀도 복사는, 섀도 복사를 생성하는 데 있어서 (예컨대, 복사-동시-기입(copy-on-write)을 통해) 리소스 세트가 전체 복사될 수 없는 경우조차도, 소정의 시점에서의 리소스 세트의 사본이다. 섀도 복사는 운영 체제 및 임의의 실행중인 애플리케이션에 의해 분리된 볼륨에서 관측될 수 있다. 예를 들어, 섀도 복사는 볼륨 장치, 볼륨 이름, 드라이브 레터(drive letter), 장착 지점(mount point), 및 실제 볼륨의 임의의 속성을 가질 수 있다.
도 4는 본원에 기술된 본 발명의 양상들에 따른, 2개의 리소스 관리자의 로그 파일을 일반적으로 나타내는 블록도이다. 로그 파일(405 및 406)은 리소스 관리자 A 및 B에 의해, 각각 트랜잭션에 행해진 작업을 로깅하기 위해 기입된다.
리소스 관리자 A가 커밋 또는 롤백 준비를 마칠 때, 리소스 관리자 A는 준비 레코드(410)를 로그 파일(405)에 기입한다. 이와 마찬가지로, 리소스 관리자 B가 커밋 또는 롤백 준비를 마칠 때, 리소스 관리자 B는 준비 레코드(411)를 로그 파일(406)에 기입한다.
리소스 관리자 A가 트랜잭션을 커밋하는 것을 마칠 때, 리소스 관리자 A는 커밋 레코드를 로그 파일(405)에 기입한다. 이와 마찬가지로, 리소스 관리자 B가 트랜잭션을 커밋하는 것을 마칠 때, 리소스 관리자 B는 커밋을 로그 파일(406)에 기입한다.
다음의 복구 규칙에 따라, 섀도 복사가 기간 T1 또는 T2 동안 행해지면, 일관되지 않은 데이터가 생성될 수 있다.
도 5는 본원에 기술된 본 발명의 양상들에 따라, 진행중인 한 세트의 트랜잭션을 일반적으로 나타내는 블록도이다. 일관성 요청자(도시 생략)가 리소스 세트의 일관된 뷰를 요청할 때, 트랜잭션(화살표를 갖는 선에 의해 나타내어짐)은 다양한 상태들에 있을 수 있다. 한 세트의 트랜잭션이 문제 상태에 있을 수 있으며 반면에 하나 이상의 다른 세트의 트랜잭션은 문제 상태에 존재하지 않을 수 있거나, 또는 한 세트의 트랜잭션이 문제 없는 상태에 있을 수 있다.
일관성 요청자가 일관된 상태를 요청한 후에, 트랜잭션 관리자는, 임의의 트랜잭션이 문제 상태로 들어가는 것을 방지하고, 이미 문제 상태에 있는 트랜잭션이 OK 상태로 바뀔 때까지 기다린다. 문제 상태의 트랜잭션이 타임아웃 기간 내에 문제가 없는 상태로 바뀌지 않는다면, 트랜잭션 관리자는 일관성 요청자에게 일관된 상태가 이용가능하지 않다는 것을 알릴 수 있다. 일관성 요청자가 일관된 뷰를 갖고 그것이 원하는 어떤 것이든 행한(예컨대, 섀도 복사를 행했음) 후에, 일관성 요청자는 트랜잭션 관리자에게 자신이 더 이상 일관된 뷰를 필요로 하지 않는다는 것을 알릴 수 있다. 일관된 뷰가 더 이상 필요로 되지 않다는 것이 알려진 후에, 또는 타임아웃 기간이 경과한 후에, 트랜잭션 관리자는 트랜잭션들이 문제 상태로 들어가는 것을 다시 허가한다.
주목할 점은, 문제 상태에 있지 않은 트랜잭션에 관여된 애플리케이션들은 그것들이 문제 상태로 들어가는 것을 시도하지 않는 한 추가 작업을 수행할 수 있다는 것이다. 그것들이 문제 상태로 들어가는 것을 시도하는 경우(예컨대, 트랜잭션을 커밋하는 것을 요청함으로써), 트랜잭션 관리자는, 일관성 요청자가 일관된 뷰가 더 이상 필요로 되지 않는다는 것을 나타낼 때까지, 또는 타임아웃 기간이 경과할 때까지, 단순히 그 요청을 보류하거나, 또는 요청에 응답하지 않는다.
도 5에는 몇몇 트랜잭션이 나타내어져 있지만, 컴퓨팅 환경에서는, 임의의 시점에서 현재 미결인 수십 개, 수백 개, 수천 개, 수개의 트랜잭션이 존재할 수 있다. 트랜잭션과 연관된 리소스 세트의 일관된 뷰를 제공하는 것은, 전술된 바와 같이 달성될 수 있다.
또한, 특정 트랜잭션은 다수의 리소스 관리자를 포함할 수 있다. 이런 실시예에서, 문제 상태는, 트랜잭션에 관여된 상이한 리소스 관리자가 상이한 트랜잭션 상태에 있는 상태로서 정의될 수 있다. 특히, 상기 첫번째 규칙이 사용된다면, 문제 상태는, 트랜잭션에 관여된 하나 이상의 리소스 관리자가 준비 상태에 있으며 준비 레코드를 그들의 로그에 기입하며, 반면에 트랜잭션에 관여된 하나 이상의 다른 리소스 관리자는 커밋 상태에 있으며 커밋 레코드를 그들의 로그에 기입했을 경우, 발생한다. 상기 두번째 규칙이 사용된다면, 문제 상태는, 트랜잭션에 관여된 하나 이상의 리소스 관리자가 준비 상태에 있으며 준비 레코드를 기입하며, 반면에 트랜잭션에 관여된 하나 이상의 다른 리소스 관리자는 준비 레코드를 아직 기입하지 않았을 경우, 발생한다. 더 적은 또는 더 많은 상태를 갖는 트랜잭션에서, 가능한 수의 문제 상태는 본원에 기술된 본 발명의 양상 또는 범위 내에서 적절하게 감소 또는 증가될 수 있다.
도 6은 본원에 기술된 본 발명의 양상에 따른, 트랜잭션에 관여된 컴포넌트들의 예시적 계층구조를 일반적으로 나타내는 블록도이다. 이전에 언급한 바와 같이, 일부 실시예에서는, 트랜잭션에 관여된 트랜잭션 관리자의 계층구조가 존재할 수 있다. 예를 들어, 트랜잭션 관리자(605)는 트랜잭션 관리자(606 및 607) 및 리소스 관리자(615)를 포함하는 트랜잭션들에 대하여 상급의(superior) 트랜잭션 관리자일 수 있다. "상급의" 트랜잭션 관리자라는 것은, 트랜잭션 관리자가 자신의 하급 컴포넌트들에게 트랜잭션 이벤트(예컨대, 준비, 커밋 등)를 언제 알려줄지를 결정하는 것을 의미한다.
트랜잭션 관리자(606)는 트랜잭션 관리자(608 및 609)를 포함하는 트랜잭션들에 대하여 상급의 트랜잭션 관리자일 수 있다. 트랜잭션 관리자(607)는 리소스 관리자(616 및 617)를 포함하는 트랜잭션들을 관리할 수 있다.
트랜잭션 관리자(608)는 리소스 관리자(618 및 619)를 포함하는 트랜잭션들을 관리할 수 있고, 반면에 트랜잭션 관리자(609)는 리소스 관리자(620 및 621)를 포함하는 트랜잭션들을 관리할 수 있다. 각 레벨에서의 더 많은 또는 더 적은 컴포넌트들 및 컴포넌트들의 상이한 구성뿐만 아니라, 더 많은 또는 더 적은 레벨의 계층구조가 본원에 기술된 본 발명의 정신 또는 범위 내에서 포함될 수 있다.
트랜잭션 관리자(605)를 (간접적으로 및 직접적으로) 포함하는 트랜잭션들에 관여될 수 있는 리소스의 일관된 뷰를 획득하기 위해, 일관성 요청자는 요청(예컨대, 프리즈)을 트랜잭션 관리자(605)에게 제시할 수 있다. 응답 시에, 자신의 하급자 각각에 대해, 트랜잭션 관리자(605)는, 현재 문제 상태에 있는 트랜잭션들은 문제 상태로부터 빠져나오도록 허용하면서, 다른 트랜잭션들이 문제 상태로 들어가는 것을 방지한다.
일 실시예에서, 계층구조 중 한 레벨에 있는 모든 컴포넌트와 연관된 트랜잭션들이 문제 상태를 탈출한 후에, 그들의 하급자 각각에 대해, 그 레벨의 트랜잭션 관리자는 현재 문제 상태에 있는 트랜잭션들이 문제 상태로부터 빠져나오도록 허용하면서, 다른 트랜잭션들이 문제 상태로 들어가는 것을 방지한다. 이는 트랜잭션 관리자의 마지막 레벨에 도달할 때까지 계속된다. 마지막 레벨에 도달하고, 마지막 레벨에 있는 모든 문제 상태의 트랜잭션이 문제 상태를 떠날 때, 계층구조 내의 컴포넌트들에 의해 관리되는 리소스의 일관된 뷰가 일관성 요청자에게 이용가능하다. 일 실시예에서, 전체 또는 레벨마다의 타임아웃이 적용될 수 있으며, 그 후에 일관된 뷰에 도달하는 것에 대한 실패가 일관성 요청자에게 보고될 수 있다.
일관성 요청자는 자신이 원하는 어떤 동작이든 완료한 후에, 일관성 요청자는 (예컨대, 쏘(thaw) 통지를 통해) 트랜잭션 관리자(605)에게 알릴 수 있어서, 트랜잭션 관리자(605)는 트랜잭션들로 하여금 문제 상태로 들어가게 하는 것을 재개할 수 있다. 일 실시예에서, 트랜잭션 관리자(605)는 자신의 하급자에게 그들이 그들의 하급자에게 통지한다는 것 등을 알려줄 수 있다. 다른 실시예에서, 일관성 요청자는 리소스 세트와 연관된 트랜잭션 관리자 각각에게 통지할 수 있다.
도 7A 및 도 7B는 본원에 기술된 본 발명의 양상들에 따른 리소스 세트의 일관된 뷰를 획득하는 데 있어 발생할 수 있는 예시적 액션을 일반적으로 나타낸 흐름도이다. 단계(705)에서, 액션이 시작된다.
단계(710)에서, 리소스 세트의 일관된 뷰를 제공하라는 요청이 송신된다. 예를 들어, 도 2를 참조해 보면, 일관성 요청자(215)가 리소스 저장소(221 및 222)상에 포함된 리소스의 일관된 뷰를 요청하는 요청을 트랜잭션 관리자(220)에게 송신할 수 있다
단계(715)에서, 요청을 수신한다. 일 실시예에서, 그 요청은 계층구조의 가장 높은 레벨에 있는 트랜잭션 관리자에 의해 수신된다. 다른 실시예에서, 그 요청은 다른 트랜잭션 관리자들의 계층구조에 존재하지 않는 하나의 트랜잭션 관리자에 의해 수신된다.
단계(720)에서, 리소스 관리자가 문제 상태로 들어가는 것을 방지한다. 이런 리소스 관리자는 새로운 트랜잭션들에 관여될 수 있고, 그들이 문제 상태로 들어가지 바로 직전까지 기존의 트랜잭션들을 진행시킬 수 있다. 예를 들어, 도 5를 참조해 보면, 첫번째 수직선 왼쪽의 OK 상태의 트랜잭션들은 첫번째 수직선까지 진행하도록 허가되고 더 이상은 허가되지 않는다. 두번째 수직선의 오른쪽의 트랜잭션들(설령 있다손 치더라도)은 완료될 때까지 진행하도록 허가된다.
단계(725)에서, 문제 상태의 트랜잭션들에 관여된 임의의 리소스 관리자는 문제 상태를 탈출하기 위한 트랜잭션들을 진행하도록 허가된다. 예를 들어, 도 5 를 참조해 보면, 2개의 수직선 사이의 문제 상태의 트랜잭션 관리자는 OK 상태로 진행하도록 허가된다.
일 실시예에서, 단계(720 및 725)와 연관된 액션들은 하나의 단계에서 결합될 수 있고/있거나 병렬로 수행될 수 있다.
단계(730)에서, 리소스 관리자들 중 임의의 리소스 관리자가 문제 상태의 트랜잭션에 관여되는가에 대한 판정이 행해진다. 그렇다면, 액션은 단계(735)로 진행하고, 그렇지 않다면 액션은 단계(740)로 진행한다.
단계(735)에서는, 단계(715)에서 요청을 수신한 후에 타임아웃이 경과하였는지의 여부에 관한 판정이 행해진다. 그렇다면, 액션은 단계(750)로 진행하고, 그렇지 않다면 단계(725)로 진행한다. 단계(725, 730, 및 735)와 연관된 액션은, 리소스 관리자가 문제 상태의 트랜잭션에 관여되지 않을 때까지, 또는 타임아웃이 경과할 때까지 계속된다.
단계(740)에서, 일관된 뷰가 이용가능하다는 것을 나타내는 메시지가 전송된다. 예를 들어, 도 2를 참조해 보면, 트랜잭션 관리자(220)는 일관성 요청자(215)에게 일관된 뷰가 이용가능하다는 것을 알리는 메시지를 전송한다.
단계(745)에서, 일관성 요청자는 리소스 세트에 대해 동작을 수행할 수 있다. 한 가지 예시적 동작은 섀도 복사를 수행하는 것이다. 단계(745) 이후에, 액션은 도 7B의 단계(755)에서 계속된다.
단계(750)에서, 일관된 뷰가 이용가능하지 않다는 것을 나타내는 메시지가 전송된다. 메시지는 또한 타임아웃이 경과하였다는 것을 나타낼 수 있다. 단계(750) 이후에, 액션은 도 7B의 단계(760)에서 계속된다.
단계(755)에서, 일관된 뷰가 더 이상 필요로 되지 않는다는 것을 나타내는 메시지(예컨대, 쏘)가 전송된다. 예를 들어, 도 2를 참조해 보면, 일관성 요청자(220)는 트랜잭션 관리자(220)에게 일관된 뷰가 더 이상 필요로 되지 않는다는 것을 나타내는 메시지를 전송할 수 있다. 트랜잭션 관리자(200)가 트랜잭션 관리자들의 계층구조 중 일부분인 경우, 트랜잭션 관리자(220)는 메시지를 자신의 하급 관리자 각각에게 전달할 수 있고, 그들은 예컨대, 그들의 하급 관리자 각각에게 메시지를 전달할 수 있다. 다른 실시예에서, 일관성 요청자(215)는 계층구조 내의 트랜잭션 관리자 각각에게 메시지(예컨대, 쏘)를 전송할 수 있다.
단계(760)에서, 리소스 관리자는 트랜스그레션(transgressions)을 문제 상태로 진행시키는 것이 허가된다. 예를 들어, 도 5를 참조해 보면, 첫번째 수직선의 왼쪽의 트랜잭션들은 문제 상태로 진행하도록 허가된다.
단계(765)에서, 액션은 종료한다.
일 실시예에서, 도 6A 및 도 6B와 관련하여 기술된 액션들은 일관된 뷰를 생성하는 데 있어 취해질 수 있는 모든 액션들을 모두 포함하고 있는 것은 아니다. 또한, 액션들이 특정 순서로 발생하는 것으로 기술되어 있지만, 다른 실시예에서, 액션들 중 일부는 본원에 기술된 본 발명의 정신 또는 범위 내에서 병렬로 발생할 수 있거나, 다른 액션들과 함께 수행될 수 있거나, 또는 다른 순서로 수행될 수 있다. 예를 들어, 단계(720 및 725)와 연관된 액션들은 병렬로 발생할 수 있고, 단계(750 및 760)와 연관된 액션들은 순서가 뒤바뀔 수 있다.
상기의 상세한 설명에서 알 수 있는 바와 같이, 본 양상들은 트랜잭션과 관련하여 기술되었다. 본원에 기술된 본 발명의 양상들에 대한 다양한 수정 및 대체 구성이 가능하지만, 본 발명에 대한 특정 예시적 실시예들이 도면들에 도시되어 있으며 상기에 상세히 기술되었다. 청구된 본 발명의 양상들은 개시된 특정 형태에 제한되는 것은 아니며, 이와는 대조적으로 본원에 기술된 본 발명의 다양한 양상들의 정신 및 범위 내에 있는 모든 수정, 대체 구성, 및 등가물들을 포함하는 것임을 이해해야 한다.

Claims (20)

  1. 컴퓨터 실행가능 명령어들을 갖는 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어들은 컴퓨터의 시스템 메모리에 저장되고 상기 컴퓨터의 처리 장치에 의해 실행될 때,
    상기 컴퓨터에 의해 관리되는 리소스 세트의 일관된 뷰(consistent view)를 제공하라는 섀도 복사 서비스 요청(shadow copy service request)을 수신하는 단계 - 상기 리소스 세트 중 적어도 하나의 리소스에 영향을 주는 트랜잭션에 제1 리소스 관리자가 잠재적으로 관여되고, 상기 제1 리소스 관리자는 적어도 부분적으로 상기 처리 장치에 의해 실행됨 -;
    상기 섀도 복사 서비스 요청이 수신된 후 상기 트랜잭션이 상기 제1 리소스 관리자로 하여금 일관되지 않은 뷰를 야기하는 문제 상태로 들어가게 하지 않는다면 상기 제1 리소스 관리자가 상기 트랜잭션에 들어가는 것을 허용하는 단계;
    상기 섀도 복사 서비스 요청이 수신된 후 상기 트랜잭션이 상기 제1 리소스 관리자로 하여금 일관되지 않은 뷰를 야기하는 문제 상태로 들어가게 하는 경우 상기 제1 리소스 관리자가 상기 트랜잭션에 들어가는 것을 방지하는 단계;
    상기 일관된 뷰가 이용가능한 후 적어도 제1 리소스의 섀도 복사를 생성하는 단계; 및
    상기 섀도 복사의 복구를 수행하는 단계를
    포함하는 동작들을 수행하는 컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    상기 섀도 복사 서비스 요청이 있을 때 상기 제1 리소스 관리자를 문제 상태에 있게 하는 트랜잭션에 상기 제1 리소스 관리자가 관여된 경우 상기 제1 리소스 관리자가 롤백(rollback)없이 진행하는 것을 허용하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  3. 제1항에 있어서,
    상기 처리 장치에 의해 적어도 부분적으로 실행되고 상기 트랜잭션에 잠재적으로 관여된 제2 리소스 관리자가 문제 상태로 들어가는 것을 방지하는 단계와,
    상기 섀도 복사 서비스 요청에 응답하여, 적어도 상기 제1 및 제2 리소스 관리자가 일관되지 않은 뷰를 야기한 문제 상태에 있지 않은 경우 상기 일관된 뷰가 이용가능하다는 것을 나타내는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  4. 제1항에 있어서,
    상기 일관된 뷰는, 상기 트랜잭션에 관여된 다른 리소스 관리자가 상기 트랜잭션에 대하여 커밋된 상태(committed state)에 있을 때, 상기 트랜잭션에 관여된 어떤 리소스 관리자도 상기 트랜잭션에 대하여 준비된 상태(prepared state)에 있지 않은 상태를 포함하는,
    컴퓨터 판독가능 저장 매체.
  5. 제1항에 있어서,
    상기 일관된 뷰는, 상기 트랜잭션에 관여된 다른 리소스 관리자가 상기 트랜잭션에 대하여 준비된 상태 전의 상태에 있을 때, 상기 트랜잭션에 관여된 어떤 리소스 관리자도 상기 트랜잭션에 대하여 준비된 상태에 있지 않은 상태를 포함하는,
    컴퓨터 판독가능 저장 매체.
  6. 제1항에 있어서,
    상기 섀도 복사를 생성한 후, 상기 제1 리소스 관리자가 상기 트랜잭션에 대한 문제 상태로 들어가는 것을 허용하는 단계를 포함하는
    컴퓨터 판독가능 저장 매체.
  7. 제1항에 있어서,
    상기 복구를 수행하는 단계는 트랜잭션 관리자를 이용하여 트랙잭션의 결과를 판정할 수 없는 경우 상기 트랜잭션의 결과를 판정하기 위한 규칙을 적용하는 것을 포함하는
    컴퓨터 판독가능 저장 매체.
  8. 제1항에 있어서,
    상기 문제 상태는 복구 시에 따르는 절차(procedure)를 나타내는 규칙에 의해 규정되는
    컴퓨터 판독가능 저장 매체.
  9. 제8항에 있어서,
    상기 규칙은, 준비된 상태의 트랜잭션을 갖는 임의의 리소스 관리자가 복구 동안 상기 트랜잭션을 롤백하는 것을 지시하는,
    컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    상기 문제 상태는, 상기 제1 리소스 관리자가 상기 트랜잭션에 대하여 준비 상태에 있는 반면 다른 리소스 관리자는 상기 트랜잭션에 대하여 커밋된 상태에 있는 것을 포함하는,
    컴퓨터 판독가능 저장 매체.
  11. 제8항에 있어서,
    상기 규칙은, 준비된 상태의 상기 트랜잭션을 갖는 임의의 리소스 관리자가 복구 동안에 상기 트랜잭션을 커밋하는 것을 지시하는,
    컴퓨터 판독가능 저장 매체.
  12. 제11항에 있어서,
    상기 문제 상태는, 상기 제1 리소스 관리자가 상기 트랜잭션에 대하여 준비된 상태 이전의 상태에 있는 반면 다른 리소스 관리자는 상기 트랜잭션에 대하여 준비된 상태에 있는 것을 포함하는,
    컴퓨터 판독가능 저장 매체.
  13. 컴퓨터의 시스템 메모리에 저장되고 상기 컴퓨터의 처리 장치에 의해 실행되는 컴퓨터 실행가능 명령어들에 의해 적어도 부분적으로 구현되는 방법으로서,
    상기 처리 장치에 의해 적어도 부분적으로 실행되는 리소스 관리자가 상기 컴퓨터에 액세스가능한 리소스 저장소 세트에 저장된 리소스 세트에 영향을 주는 트랜잭션들에 대하여 문제 상태로 들어가는 것이 방지되도록 요청하는 단계- 상기 리소스 관리자가 문제 상태로 들어가게 하지 않는 트랜잭션으로 상기 리소스 관리자가 들어가는 것은 방지되지 않음 -;
    가장 이른 타임아웃 기간(earliest of a timeout period)이 경과할 때까지 또는 문제 상태에 있는 모든 리소스 관리자가 문제 상태를 탈출할 때까지 대기하는 단계;
    상기 타임아웃 기간이 경과하지 않았다면, 어떤 리소스 관리자도 문제 상태에 있지 않다는 것을 나타내는 통지를 수신하는 단계; 및
    타임아웃 기간이 경과하였다면, 상기 리소스 세트의 섀도 복사를 행하는 것을 중단하는 단계
    를 포함하는 방법.
  14. 제13항에 있어서,
    상기 리소스 세트의 섀도 복사를 생성하는 단계; 및
    상기 섀도 복사가 생성된 후 상기 리소스 세트에 영향을 주는 트랜잭션들에 대하여 상기 리소스 관리자가 문제 상태로 들어가도록 허용됨을 지시하는 단계를 포함하는, 방법.
  15. 제13항에 있어서,
    상기 문제 상태는, 상기 리소스 관리자 중 적어도 하나가 트랜잭션에 대하여 준비된 상태에 있는 반면에 적어도 하나의 다른 리소스 관리자는 상기 트랜잭션에 대하여 준비되어 있지 않은 상태에 있는 상태를 포함하는, 방법.
  16. 제13항에 있어서,
    상기 리소스 세트의 상기 섀도 복사가 생성된 이후, 상기 리소스 세트의 상기 섀도 복사에 대한 복구를 수행하는 단계를 포함하되, 상기 복구는 트랜잭션 관리자의 관여없이 수행되는, 방법.
  17. 제13항에 있어서,
    상기 리소스 관리자는 계층구조 내에 있는 트랜잭션 관리자들과 대화(interacting)하며, 하급 관리자들이 문제 상태로 들어가는 것을 방지할 것을 상기 트랜잭션 관리자들에게 상기 계층구조에 기초한 순서대로 통지하는 단계를 포함하는, 방법.
  18. 제17항에 있어서,
    상기 계층구조의 첫번째 레벨에 있는 트랜잭션 관리자가 하급 관리자들이 다른 관리자들이 문제 상태로 들어가는 것을 방지하기 전에 상기 하급 관리자들이 문제 상태로 들어가는 것을 방지하는 단계를 포함하는, 방법.
  19. 컴퓨터 실행가능 명령어들을 저장하도록 구성된 컴퓨터의 시스템 메모리와 상기 컴퓨터의 실행가능 명령어들을 실행하도록 구성된 컴퓨터의 처리 장치를 구비한 컴퓨팅 환경에서의 장치로서,
    상기 컴퓨터에 액세스가능한 적어도 하나의 리소스 저장소에 저장된 적어도 하나의 리소스를 관리하도록 구성된 제1 리소스 관리자;
    상기 적어도 하나의 리소스의 일관된 뷰를 요청하도록 구성된 일관성 요청자; 및
    상기 요청을 수신하며, 그 요청에 응답하여 상기 요청이 수신된 이후 트랜잭션이 상기 제1 리소스 관리자를 일관되지 않은 뷰를 생성하는 문제 상태로 들어가게 하는 경우 상기 제1 리소스 관리자가 상기 트랜잭션으로 들어가는 것을 방지하고, 상기 요청이 수신된 이후 제2 트랜잭션이 상기 제1 리소스 관리자를 일관되지 않은 뷰를 생성하는 문제 상태로 들어가지 않게 하는 경우 상기 제1 리소스 관리자가 상기 제2 트랜잭션으로 들어가는 것을 허용하도록 구성된 트랜잭션 관리자를 포함하되,
    상기 일관성 요청자는 상기 일관된 뷰가 이용가능한 후 상기 적어도 하나의 리소스의 섀도 복사를 생성하도록 구성되되 상기 섀도 복사의 복구가 상기 트랜잭션 관리자의 관여없이 수행될 수 있도록 구성되고, 상기 제1 리소스 관리자, 상기 일관성 요청자 및 상기 트랜잭션 관리자 중 적어도 하나의 적어도 일부는 상기 처리 장치에 의해 적어도 부분적으로 구현되는
    장치.
  20. 제19항에 있어서,
    상기 트랜잭션 관리자는, 상기 제1 리소스 관리자가 일관되지 않은 뷰를 생성하는 문제 상태에 있게 하는, 상기 요청이 수신되는 때의 트랜잭션에 상기 제1 리소스 관리자가 관여되는 경우 상기 제1 리소스 관리자가 롤백없이 진행하는 것을 허용하도록 구성되는
    장치.
KR1020087005704A 2005-09-09 2006-09-08 트랜잭션 일관 및 문제 상태 Expired - Fee Related KR101278818B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US71602405P 2005-09-09 2005-09-09
US60/716,024 2005-09-09
US11/515,557 2006-09-05
US11/515,557 US7991971B2 (en) 2005-09-09 2006-09-05 State management for transactional backup consistency
PCT/US2006/035228 WO2007030805A1 (en) 2005-09-09 2006-09-08 Transaction consistency and problematic states

Publications (2)

Publication Number Publication Date
KR20080042881A KR20080042881A (ko) 2008-05-15
KR101278818B1 true KR101278818B1 (ko) 2013-06-25

Family

ID=37836169

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087005704A Expired - Fee Related KR101278818B1 (ko) 2005-09-09 2006-09-08 트랜잭션 일관 및 문제 상태

Country Status (3)

Country Link
US (1) US7991971B2 (ko)
KR (1) KR101278818B1 (ko)
WO (1) WO2007030805A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7991971B2 (en) * 2005-09-09 2011-08-02 Microsoft Corporation State management for transactional backup consistency
US8650272B2 (en) * 2008-07-16 2014-02-11 Hewlett-Packard Development Company, L.P. Distributed transaction processing system having resource managers that collaborate to decide whether to commit or abort a transaction in response to failure of a transaction manager
TWI468930B (zh) * 2008-10-30 2015-01-11 Ibm 於儲存裝置執行資料寫入
EP2304569B1 (en) * 2008-10-30 2011-09-21 International Business Machines Corporation Performing a data write on a storage device
US9201684B2 (en) 2009-08-28 2015-12-01 International Business Machines Corporation Aiding resolution of a transaction
US9417906B2 (en) * 2010-04-01 2016-08-16 Red Hat, Inc. Transaction participant registration with caveats
US9110940B2 (en) 2012-02-29 2015-08-18 Red Hat, Inc. Supporting transactions in distributed environments using a local copy of remote transaction data and optimistic locking
US9201919B2 (en) 2013-05-07 2015-12-01 Red Hat, Inc. Bandwidth optimized two-phase commit protocol for distributed transactions
GB2533578A (en) * 2014-12-22 2016-06-29 Ibm Recovery of local resource
US9792163B1 (en) 2016-06-28 2017-10-17 Vmware, Inc. Decentralized control plane for a computing system
KR20230020124A (ko) 2021-08-03 2023-02-10 이지케어텍(주) 아웃박스 패턴에서의 메시지 처리 방법, 장치, 시스템 및 컴퓨터 프로그램

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0836160A2 (en) * 1996-10-08 1998-04-15 International Business Machines Corporation Method and means for limiting adverse use of counterfeit credit cards, access badges, electronic accounts or the like
US6522631B2 (en) * 1995-08-10 2003-02-18 Computer Associates Think, Inc. Response time measurement apparatus and method
US6557082B1 (en) * 2000-03-30 2003-04-29 International Business Machines Corporation Method and apparatus for ensuring cache coherency for spawned dependent transactions in a multi-system environment with shared data storage devices

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4498145A (en) * 1982-06-30 1985-02-05 International Business Machines Corporation Method for assuring atomicity of multi-row update operations in a database system
US5799323A (en) 1995-01-24 1998-08-25 Tandem Computers, Inc. Remote duplicate databased facility with triple contingency protection
US5799322A (en) 1995-01-24 1998-08-25 Tandem Computer, Inc. System and method for stopping updates at a specified timestamp in a remote duplicate database facility
GB2311391A (en) * 1996-03-19 1997-09-24 Ibm Restart and recovery of OMG compliant transaction systems
US5826239A (en) * 1996-12-17 1998-10-20 Hewlett-Packard Company Distributed workflow resource management system and method
US6073128A (en) 1997-10-31 2000-06-06 Oracle Corporation Method and apparatus for identifying files used to restore a file
GB2335516A (en) 1998-03-18 1999-09-22 Ibm Failure recovery in distributed transaction avoids heuristic damage
US6564215B1 (en) 1999-12-16 2003-05-13 International Business Machines Corporation Update support in database content management
GB2359154B (en) * 2000-02-11 2003-10-22 Int Computers Ltd Data processing
US6748447B1 (en) * 2000-04-07 2004-06-08 Network Appliance, Inc. Method and apparatus for scalable distribution of information in a distributed network
US6718361B1 (en) * 2000-04-07 2004-04-06 Network Appliance Inc. Method and apparatus for reliable and scalable distribution of data files in distributed networks
US6718447B2 (en) 2001-06-28 2004-04-06 Hewlett-Packard Development Company, L.P. Method and system for providing logically consistent logical unit backup snapshots within one or more data storage devices
US6877016B1 (en) 2001-09-13 2005-04-05 Unisys Corporation Method of capturing a physically consistent mirrored snapshot of an online database
US20030093443A1 (en) 2001-11-15 2003-05-15 Huxoll Vernon F. System and method for creating online snapshots
US7296125B2 (en) 2001-11-29 2007-11-13 Emc Corporation Preserving a snapshot of selected data of a mass storage system
US6981177B2 (en) 2002-04-19 2005-12-27 Computer Associates Think, Inc. Method and system for disaster recovery
US6988099B2 (en) * 2002-06-27 2006-01-17 Bea Systems, Inc. Systems and methods for maintaining transactional persistence
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US7047379B2 (en) 2003-07-11 2006-05-16 International Business Machines Corporation Autonomic link optimization through elimination of unnecessary transfers
US7640545B2 (en) * 2003-07-14 2009-12-29 Sun Microsytems, Inc. Transaction manager freezing
JP4321705B2 (ja) 2003-07-29 2009-08-26 株式会社日立製作所 スナップショットの取得を制御するための装置及び記憶システム
US7107420B2 (en) 2003-08-29 2006-09-12 International Business Machines Corporation Apparatus and method to adjust data transfer rate
US7168001B2 (en) * 2004-02-06 2007-01-23 Hewlett-Packard Development Company, L.P. Transaction processing apparatus and method
US7991971B2 (en) * 2005-09-09 2011-08-02 Microsoft Corporation State management for transactional backup consistency

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6522631B2 (en) * 1995-08-10 2003-02-18 Computer Associates Think, Inc. Response time measurement apparatus and method
EP0836160A2 (en) * 1996-10-08 1998-04-15 International Business Machines Corporation Method and means for limiting adverse use of counterfeit credit cards, access badges, electronic accounts or the like
US6557082B1 (en) * 2000-03-30 2003-04-29 International Business Machines Corporation Method and apparatus for ensuring cache coherency for spawned dependent transactions in a multi-system environment with shared data storage devices

Also Published As

Publication number Publication date
US20070072163A1 (en) 2007-03-29
US7991971B2 (en) 2011-08-02
WO2007030805A1 (en) 2007-03-15
KR20080042881A (ko) 2008-05-15

Similar Documents

Publication Publication Date Title
US8185499B2 (en) System and method for transactional session management
US5923833A (en) Restart and recovery of OMG-compliant transaction systems
US10942823B2 (en) Transaction processing system, recovery subsystem and method for operating a recovery subsystem
JP2644188B2 (ja) フォールト・トレラント・トランザクション指向データ処理システムおよび方法
US5465328A (en) Fault-tolerant transaction-oriented data processing
EP1062569B1 (en) Isolation levels and compensating transactions in an information system
US10360113B2 (en) Transaction recovery in a transaction processing computer system employing multiple transaction managers
US6338146B1 (en) Method and apparatus for fault-tolerant, scalable and non-blocking three-phase flushing for committing database transactions in a cluster of multiprocessors
US6895529B2 (en) Rebuilding “in-doubt” states reliably after multiple system failures in a data processing system performing two-phase transaction processing
CN113396407A (zh) 用于利用区块链技术扩充数据库应用的系统和方法
US20060123211A1 (en) Method for optimizing a snapshot operation on a file basis
EP1349085A2 (en) Collision avoidance in database replication systems
US20020035590A1 (en) Guaranteed end-to-end transaction execution in a client/server environment
US8078639B2 (en) File system filters and transactions
JP2000020364A (ja) 補償するリソ―ス・マネ―ジャ
US7899897B2 (en) System and program for dual agent processes and dual active server processes
CN108845866B (zh) 处理分布式事务的方法和装置
KR101278818B1 (ko) 트랜잭션 일관 및 문제 상태
US10282364B2 (en) Transactional replicator
CN113656149B (zh) 一种应用处理方法、装置及相关设备
US20070043784A1 (en) Advanced fine-grained administration of recovering transactions
US9189303B2 (en) Shadow queues for recovery of messages
US8095826B1 (en) Method and apparatus for providing in-memory checkpoint services within a distributed transaction
US8589362B1 (en) Cluster metadata recovery
CN114356888A (zh) 事务处理方法及装置、存储介质及电子设备

Legal Events

Date Code Title Description
PA0105 International application

St.27 status event code: A-0-1-A10-A15-nap-PA0105

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

A201 Request for examination
P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U12-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R14-asn-PN2301

FPAY Annual fee payment

Payment date: 20160517

Year of fee payment: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

FPAY Annual fee payment

Payment date: 20170522

Year of fee payment: 5

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

FPAY Annual fee payment

Payment date: 20180516

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

FPAY Annual fee payment

Payment date: 20190515

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

R17-X000 Change to representative recorded

St.27 status event code: A-5-5-R10-R17-oth-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 8

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 9

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 10

PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20230620

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20230620