KR100396722B1 - 트랜잭션에 의하여 복수개의 화일의 어토믹 갱신을실현하는 트랜잭션 화일 시스템 - Google Patents

트랜잭션에 의하여 복수개의 화일의 어토믹 갱신을실현하는 트랜잭션 화일 시스템 Download PDF

Info

Publication number
KR100396722B1
KR100396722B1 KR10-2000-0056431A KR20000056431A KR100396722B1 KR 100396722 B1 KR100396722 B1 KR 100396722B1 KR 20000056431 A KR20000056431 A KR 20000056431A KR 100396722 B1 KR100396722 B1 KR 100396722B1
Authority
KR
South Korea
Prior art keywords
transaction
log entry
files
memory device
file system
Prior art date
Application number
KR10-2000-0056431A
Other languages
English (en)
Other versions
KR20010050644A (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 KR20010050644A publication Critical patent/KR20010050644A/ko
Application granted granted Critical
Publication of KR100396722B1 publication Critical patent/KR100396722B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/466Transaction processing
    • 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/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1865Transactional file systems
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Abstract

트랜잭션에 의한 복수의 화일들의 어토믹 갱신을 실현할 수 있는 트랜잭션 화일 시스템을 개시한다. 본 발명의 트랜잭션 화일 시스템에 있어서, 트랜잭션에 의해 안정한 메모리 장치에 집단으로 이루어지는 모든 갱신들의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리가 트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여 생성된다. 그리고, 로그 엔트리는 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 를 기록된다.

Description

트랜잭션에 의하여 복수개의 화일의 어토믹 갱신을 실현하는 트랜잭션 화일 시스템 {TRANSACTIONAL FILE SYSTEM FOR REALIZING ATOMIC UPDATE OF PLURAL FILES BY TRANSACTIONS}
본 발명은 화일(file)들에 대한 연산 요청에 응답하여 화일들을 갱신하는 트랜잭션(transaction) 화일 시스템에 관한 것이다.
일반적으로, 정보 시스템은 필요한 처리를 실행하여 단말장치나 네트워크로부터 수신된 처리요청에 응답하여 처리결과를 복귀시킨다. 어쨌든 활성화되는 처리를 실행하는 이러한 흐름을 트랜잭션이라 하고, 이러한 정보시스템의 처리를 트랜잭션 처리라 하고, 트랜잭션 처리를 수행하는 시스템을 트랜잭션 처리 시스템이라 할 것이다.
트랜잭션 처리 시스템에 있어서, 여러 데이터가 판독되어 그 내용이 수정되거나 또는 트랜잭션 처리의 프로세스에서 요구하는 바에 따라 새로운 데이터가 기록된다. 이러한 데이터 갱신은 트랜잭션이 커미트(commit)된 후에, 즉 트랜잭션이 정상적으로 완료되어 그 처리결과가 복귀된 후에 장해 등에 의해 소실되지 않아야 한다. 반대로, 처리의 프로세스에서 장해나 에러에 의해 트랜잭션이 정상적으로 완료될 수 없는 경우, 트랜잭션을 어보트(abort)함으로써, 즉 그 시점까지 이루어진 데이터 갱신을 취소함으로써 데이터의 일관성이 유지되어야 한다. 복수의 트랜잭션이 동시에 병렬로 처리되어야 하는 경우에도 이러한 조건이 만족되도록 트랜잭션을 관리할 필요가 있다.
종래의 트랜잭션 처리시스템에 있어서, 데이터베이스 관리 시스템이 트랜잭션을 실행하는 컴퓨터의 화일 시스템에 제공되며, 트랜잭션에 의해 갱신될 데이터는 트랜잭션 처리 시스템에서 이러한 조건들을 만족시키기 위하여 데이터베이스 관리 시스템을 통해 억세스된다. 이러한 방식으로 트랜잭션 처리 시스템을 실현하는 방법은 이미 주지되어 있다.
일반적으로, 범용 컴퓨터에 운영체제가 제공되는데, 이 운영체제는 화일을 관리하기 위한 화일 시스템을 가진다. 응용 프로그램들은 화일들을 사용하여 여러가지 복잡한 구조로 데이터를 기록하게 된다.
장해에 강한 화일 시스템을 구성하는 방법으로서, 저널링(journaling)이나 로깅(logging)이라 불리는 방법이 사용되어 왔다. 이러한 방법에서, 화일 시스템의 메타(meta) 정보, 즉 하드 디스크와 같은 안정한 메모리 장치에 레코드(record)된화일의 위치 정보 또는 비트 맵 등의 영역관리를 위한 정보를 수정하는 경우에 그 변화(차이)는 안정한 메모리 장치상의 연속영역에 로그(또는 저널)로서 집단으로 기록되며, 그 후 이 변화가 하드 디스크상의 메타 정보에 실제로 적용된다. 화일의 연산에 의해 변화되는 메타 정보가 로그에 계속해서 기록되어 화일 시스템의 상태는 장해가 발생한 후 재활성화되는 시점에서 미리 기억된 위치로부터 로그를 판독하여 메타정보의 변화를 메타 정보에 반영함으로써 재빨리 복구될 수 있다.
로그가 화일의 메타 정보뿐만 아니라 화일의 내용정보, 즉 사용자 프로그램에 의하여 화일에 기록된 데이터를 포함하고, 내용정보와 메타 정보는 로그에만 존재하도록 모두 관리되는 로그 구조 화일 시스템이 있을 수 있다.
트랜잭션이 복수의 데이터를 갱신하는 트랜잭션 처리를 수행하는 시스템에서, 표적 데이터는 통상적으로 데이터베이스 관리 시스템에 의하여 관리된다. 그러나, 데이터베이스 관리 시스템은 특정 억세스 방법에 의하여 테이블과 같은 특정 유형의 데이터를 취급할 수만 있는데, 상기 억세스 방법은 트랜잭션 처리용 프로그램을 개발함에 있어서 심각한 제한을 가하게 된다.
현재, 여러가지 트랜잭션 처리 요청이 인터넷을 통해 교환되며, 문서 데이터, 멀티미디어 데이터, 설계 데이터, 카탈로그 데이터, 전자 상거래 데이터 등의 여러가지 복잡한 구조를 갖는 데이터가 자주 사용되어, 종래에 행해지던 것처럼 단순히 데이터베이스 관리 시스템을 사용하여 효율적으로 트랜잭션 처리를 실현하는 것이 점점 불가능해지고 있다.
한편, 화일 시스템은 화일들이라 불리는 매우 일반적이고 유연한 데이터를취급할 수 있다. 특히, 저널이나 로그를 사용하는 화일 시스템은 장해에 대하여 강하다는 점에서 탁월한 성질을 갖는다. 그러나, 범용 컴퓨터의 운영체제에 의해 제공되는 화일 시스템은 개별적인 트랜잭션에 의해 화일 갱신 상태를 관리하지 않아서, 어토믹(atomic) 갱신, 즉 각 트랜잭션의 갱신이 커미트되거나 어보트되는지에 따라 일관된 상태로 화일 시스템을 유지하고 관리하는 것을 실현하는 것이 불가능하다.
본 발명의 목적은 트랜잭션에 위해 복수의 화일들의 어토믹 갱신을 실현할 수 있는 트랜잭션 화일 시스템을 제공하는 것이다.
도 1은 본 발명의 일실시예에 따른 트랜잭션 처리 시스템의 예시적 구성을 나타내는 블록도이다.
도 2는 도 1의 트랜잭션 처리 시스템에 사용된 트랜잭션 관리를 설명하는 도면이다.
도 3은 도 1의 트랜잭션 처리 시스템에 사용된 하드 디스크 영역 관리를 설명하는 도면이다.
도 4는 도 1의 트랜잭션 처리 시스템에서 화일들과 세그멘트들 사이의 대응관계를 나타내는 도면이다.
도 5는 도 1의 트랜잭션 처리 시스템에 사용된 세그멘트 관리 정보의 예를 나타내는 도면이다.
도 6은 도 1의 트랜잭션 처리 시스템에 사용된 화일 배치 정보의 예를 나타내는 도면이다.
도 7은 도 1의 트랜잭션 처리 시스템에 사용된 로그 엔트리 구조를 설명하는도면이다.
도 8은 도 1의 트랜잭션 처리 시스템에 사용된 메타 정보의 차이를 설명하는 도면이다.
도 9는 도 1의 트랜잭션 처리 시스템에서 복구처리를 위한 예시적 절차를 나타내는 흐름도이다.
도 10은 도 1의 트랜잭션 처리 시스템에서 미리 기록하는 것이 이루어진 트랜잭션을 위한 로그 엔트리를 설명하는 도면이다.
도 11은 도 1의 트랜잭션 처리 시스템에서 미리 기록하는 것을 사용하는 경우에 메타 정보의 차이를 설명하는 도면이다.
본 발명의 일 태양에 따르면, (a) 트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여, 트랜잭션에 의해 안정한 메모리 장치에 집단으로 이루어지는 모든 갱신들의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리를 생성하는 단계; 및 (b) 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하는 단계를 구비하는 트랜잭션 화일 관리방법이 제공된다.
본 발명의 다른 태양에 따르면, 안정한 메모리 장치에 저장된 화일들을 관리하고 트랜잭션에 의해 처리에 화일들을 제공하는 트랜잭션 화일 시스템으로서, 트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여, 안전한 메모리 장치에 집단으로 트랜잭션에 의해 이루어지는 모든 갱신의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리를 생성하는 로그 엔트리 생성유닛; 및 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하는 로그 엔트리 기록 유닛을 구비하는 트랜잭션 화일 시스템을 제공한다.
본 발명의 또 다른 태양에 따르면, 안정한 메모리 장치에 저장된 화일들을 관리하며 트랜잭션에 의해 화일들을 처리에 제공하는 복수의 화일 트랜잭션 시스템에 의해 형성된 복합 트랜잭션 화일 시스템으로서, 각 트랜잭션 화일 시스템은 트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여, 안전한 메모리 장치에 집단으로 트랜잭션에 의해 이루어지는 모든 갱신의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리를 생성하는 로그 엔트리 생성유닛; 및 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하는 로그 엔트리 기록 유닛을 구비하고, 여기에서 하나의 트랜잭션이 하나 이상의 트랜잭션 화일 시스템 내의 복수의 화일들을 갱신할 때, 각 트랜잭션 화일 시스템의 로그 엔트리 생성 유닛은 상기 각 트랜잭션 화일 시스템내에서 상기 하나의 트랜잭션에 의해 갱신된 하나 이상의 화일들을 위한 상기 정보를 포함하는 로그 엔트리를 생성하고, 그리고 각 트랜잭션 화일 시스템의 로그 엔트리 기록 유닛은 다른 트랜잭션 화일 시스템에서 생성되는 상기 하나의 트랜잭션을 위한 다른 로그 엔트리를 확인하는 다른 정보를 로그 엔트리에 내장함으로써 상기 각 트랜잭션 화일 시스템에 대응하는 안정한 메모리 장치에 로그 엔트리를 기록하는 복합 트랜잭션 화일 시스템을 제공한다.
본 발명의 또 다른 태양에 따르면, 컴퓨터로 하여금 안정한 메모리 장치 내에 저장된 화일들을 관리하고 트랜잭션에 의한 처리에 화일들을 제공하기 위한 트랜잭션 화일 시스템으로서의 기능을 하도록 하는 컴퓨터로 판독가능한 프로그램 코드들이 내장된 컴퓨터 사용가능한 매체로서, 상기 컴퓨터로 판독가능한 프로그램 코드들은 트랜잭션 처리의 개시에서 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼 영역에 갱신된 하나 이상의 화일들을 위하여, 상기 컴퓨터로 하여금 안정한 메모리 장치에 집단으로 트랜잭션에 의해 이루어진 모든 갱신의 타당성을 입증하는 정보를 포함하는 로그 엔트리를 생성하도록 하는 컴퓨터로 판독가능한 제1 프로그램 코드; 및 상기 컴퓨터로 하여금 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하도록 하는 컴퓨터로 판독가능한 제2 프로그램 코드를 포함하는 컴퓨터 사용가능한 매체를 제공한다.
본 발명의 다른 특징 및 장점은 첨부도면을 참조하면서 설명된 이하의 기재로부터 명료해질 것이다.
도 1 내지 도 11을 참조하면서, 본 발명에 따른 트랜잭션 화일 시스템의 일실시예를 상세히 설명한다.
도 1은 본 발명의 일실시예에 따른 트랜잭션 처리 시스템의 예시적 구성을 나타낸다.
본 실시예에 대한 이하의 설명에서, 하드 디스크가 안정한 메모리 장치로서사용될 것이지만, 안정한 메모리 장치로서 다른 적절한 메모리 장치가 사용될 수 있음은 물론이다. 또한, 이하의 설명에서 트랜잭션은 사용자 프로그램에 의해 생성되지만 사용자 프로그램이외의 다른 것에 의헤 생성되는 경우에도 유사하다는 것은 자명하다.
도 1에 도시된 바와 같이, 본 실시예의 트랜잭션 화일 시스템(6)은 사용자 프로그램(2)으로부터 화일에 대한 연산요청을 수신할 때 필요한 처리를 수행하는 운영유닛(61)과, 임시로 화일을 저장하는 버퍼영역(63)과, 이 버퍼영역(63) 및 하드 디스크(10) 사이에서 화일들의 데이터를 전송하는 입력/출력 관리유닛(62), 및 현재 실행되고 있는 각 트랜잭션에 의하여 갱신되는 화일들의 리스트를 관리하는 트랜잭션 관리 테이블(64)을 구비한다.
먼저, 트랜잭션 화일 시스템(6)의 개요를 설명한다.
트랜잭션 화일 시스템(6)은 하나 또는 복수개의 하드 디스크(10) 상의 영역들을 관리하며, 그 영역안의 복수개의 화일들의 메타 정보와 내용정보를 레코드(record)한다.
여기서, 화일들의 내용정보는 사용자 프로그램(2)에 의해 화일들에 기록된 데이터이며, 메타 정보는 화일 시스템의 관리를 위하여 필요한 화일들의 위치에 관한 정보와 그리고 하드 디스크(10) 상의 영역들을 관리하는 정보같은 정보이다.
사용자 프로그램(2)이 화일을 기록하거나 판독하고자 하는 경우에, 화일의 개시는 먼저 트랜잭션 화일 시스템(6)에 화일의 이름을 특정함으로써 명해진다.
특정된 화일이 버퍼 영역(63)에 존재하지 않는다면, 운영유닛(61)은 입력/출력 관리유닛(62)으로 하여금 버퍼영역(63)으로 그 화일을 읽어들이도록 요청한다. 이 개시 처리가 끝나면, 화일이 버퍼영역(63)으로 읽어들여져 그 화일에 대하여 데이터를 판독/기록하는 동작을 위한 명령을 수신하는 운영유닛(62)이 버퍼영역(63)에서 그 화일의 데이터에 대하여 판독/기록 동작을 수행하게 된다. 새로운 화일을 생성하는 경우에, 화일의 데이터(내용정보)는 먼저 버퍼영역(63)에 생성된다는 것을 주목하라.
입력/출력 관리유닛(62)은 소정의 타이밍에서 버퍼영역(63) 상의 화일을 하드 디스크(10)에 재기록한다. 이 재기록 타이밍이 종래에는 일정한 시간간격으로 설정되거나 또는 무작위(random)로 설정되거나 또는 버퍼영역이 불충분하게 될 때와 같은 한정된 타이밍으로 설정되었다. 대조적으로, 본 실시예에서는 이 재기록 타이밍이 이하 설명되는 바와 같이 트랜잭션의 커미트의 타이밍으로 설정된다.
본 실시예에서, 사용자 프로그램(2)이 트랜잭션 화일 시스템(6)으로 화일의 개시 또는 판독/기록과 같은 처리를 요청하는 경우에 트랜잭션 식별자(identifier)가 또한 동시에 특정되게 된다. 도 1에 도시된 바와 같이 트랜잭션 관리자(8)가 존재하는 트랜잭션 처리 시스템의 구성을 사용하는 경우에, 이 트랜잭션 식별자는 사용자 프로그램(2)에 의한 트랜잭션 처리의 시작 타이밍에서의 요청에 응답하여 트랜잭션 관리자(8)로부터 발해진다. 이와는 별도로, 사용자 프로그램(2) 자체가 트랜잭션 관리자(8)를 사용하지 않고 트랜잭션 식별자에 대응하는 정보를 생성하는 체계(scheme)를 채택할 수도 있다.
트랜잭션 화일 시스템(6)은 사용자 프로그램(2)으로부터의 처리요청에 첨부된 트랜잭션 식별자를 참조하며, 트랜잭션 관리 테이블(64)을 사용하여 어떤 화일이 각 트랜잭션에 의해 갱신되는지를 관리한다. 도 2는 이를 위한 예시적인 관리체계를 나타낸다.
도 2의 예제에서, 사용자 프로그램 #0은 트랜잭션 식별자 = 0과 함께 처리를 수행하며, 사용자 프로그램 #1은 트랜잭션 식별자 = 1과 함께 처리를 수행하며, 사용자 프로그램 #n은 트랜잭션 식별자 = n과 함께 처리를 수행한다. 각 트랜잭션에 의해 억세스될 화일은 하드 디스크(10)로부터 판독되어 버퍼영역(63)에 복사되거나, 또는 새로 생성된 화일의 경우 그 엔티티(entity)가 버퍼영역(63)에 직접 생성된다. 버퍼영역(63)에 존재하는 화일들중에서 몇몇 트랜잭션에 의해 갱신되거나 생성되는 화일들은 트랜잭션 관리 테이블(64)에 레코드되는 그들의 대응관계를 가진다. 트랜잭션 관리 테이블(64)은 각 트랜잭션과 그리고 이 트랜잭션에 의해 갱신, 생성 또는 삭제된 화일들의 리스트 사이의 대응관계를 관리한다. 도 2에서, 트랜잭션 식별자 = 0을 가지는 트랜잭션을 실행하는 사용자 프로그램 #0은 예를 들어 4개의 화일 A, B, C, D를 갱신한다.
또한, 도 2의 예에 도시된 바와 같이, 트랜잭션 화일 시스템(6)의 버퍼영역(63)은 메타 정보를 또한 레코드한다. 메타 정보는 하드 디스크(10)상의 비어있는 영역을 관리하는데 필요한 정보와 하드 디스크(10) 상에서 관리되는 모든 화일들의 이름 및 레코딩 위치 사이의 대응관계를 나타내는 정보와 같은 화일 시스템을 관리하는데 필요한 정보이다. 메타 정보는 하드 디스크(10) 상에 레코드되며, 메타 정보의 일부분 또는 전체는 실행시점에서 버퍼영역(63)으로 읽혀져 화일들의추가, 삭제 또는 갱신과 함께 다시 기록되며, 버퍼영역(63) 상의 화일들과 마찬가지로 트랜잭션의 커미트 시점에서 하드 디스크(10)에 재기록된다.
본 실시예의 트랜잭션 화일 시스템(6)에 있어서, 하드 디스크(10)는 도 3에 도시된 바와 같이 세그멘트라 불리는 일정한 크기의 영역으로 분할하여 관리된다. 세그멘트는 예를 들어 번호와 함께 할당되어, 그 번호에 의해 유일하게 식별될 수 있다. 세그멘트의 크기는 임의로 결정될 수 있지만 하드 디스크(10)의 탐색 시간에 기인한 오버헤드(overhead)가 랜덤 억세스의 경우에도 작게 되도록 예컨대 128 KB와 같이 충분히 크게 하는 것이 바람직하다. 물론, 하나의 하드 디스크(10)를 사용하거나 또는 동시에 복수개의 하드 디스크(10)를 사용하는 것이 가능하다.
세그멘트들과 화일들 사이의 대응관계는 예컨대 도 4에 도시된 것과 같이 관리된다. 즉, 하드 디스크(10) 상의 영역이 일정한 크기의 세그멘트 집합으로서 관리되어, 세그멘트 크기보다 큰 화일들은 세그멘트 크기와 동일한 크기를 갖는 하나의 블록 또는 복수개의 블록 및 세그멘트 크기보다 작은 하나의 블록으로 분할된다. 도 4의 예에서, 세그멘트 크기보다 큰 화일 A는 세그멘트 크기와 동일한 크기를 갖는 블록들(A0, A1)과 세그멘트 크기보다 작은 블록(A2)로 분할된다. 복수개의 블록으로 분할되는 이러한 화일의 각 블록은 적절한 비어있는 세그멘트에 레코드된다. 이 시점에서, 하나의 화일을 구성하는 블록이 반드시 인접하는 세그멘트들에 기록될 필요는 없다.
세그멘트 크기보다 작은 화일 또는 세그멘트 크기보다 큰 화일의 마지막 블록은 적절한 비어 있는 세그멘트에 레코드된다. 이 시점에서, 이러한 크기의 화일들이나 복수개의 블록들이 하나의 세그멘트에 입력될 수 있다면, 함께 하나의 세그멘트에 레코드될 수 있다. 또한, 세그멘트 크기보다 작은 화일 또는 하나의 이러한 블록이 2개의 세그멘트에 나누어 레코드될 수 있지만, 판독시점에서 단일명령에 의하여 연속적으로 판독될 수 있도록 하나의 세그멘트에 레코드되는 것이 바람직하다.
세그멘트들의 이용상태, 즉 어떤 세그멘트가 사용중이고 어떤 세그멘트가 비어 있는지가 메타 정보에 "세그멘트 관리 정보"로서 레코드된다. 세그멘트 관리 정보는 도 5의 예에 도시된 것과 같이 각 세그멘트 번호와 그 이용상태 사이의 대응관계를 관리한다.
어떤 세그멘트 번호를 갖는 세그멘트가 사용중에 있지 않은 경우, 그 이용상태는 도 5의 예에서 세그멘트 번호 "1"에서와 같이 "비어있음"으로 레코드된다.
어떤 세그멘트 번호를 갖는 세그멘트가 그 세그멘트 크기보다 큰 화일을 구성하는 세그멘트 크기를 갖는 블록을 레코드하는데 사용되는 경우와 같이 전체 세그멘트가 사용중인 경우, 그 이용상태는 도 5의 예에서 세그멘트 번호 "2"와 같이 "사용중"으로 레코드된다.
또한, 세그멘트 크기보다 작은 복수개의 화일들이나 블록들이 어떤 세그멘트에 레코드되어 있는 경우, 도 5의 예에서 세그멘트 번호 "3"과 같이 그 세그멘트의 어떤 부분이 사용중인지가 세그멘트 내에서의 오프셋(offset)과 길이의 한쌍에 의해 레코드된다. 세그멘트 번호 "3"의 이용상태는 "0/16", "32/64" 및 "96/8"을 레코드하는데, 이는 세그멘트 번호 "3"의 세그멘트에서 오프셋 0 KB로부터 길이 16KB의 영역과 오프셋 32 KB로부터 길이 64 KB의 영역 및 오프셋 96 KB로부터 길이 8 KB의 영역이 사용중에 있고 나머지는 비어 있다는 것을 나타내는바, 오프셋과 길이는 본 예의 경우 KB의 단위로 표현된다.
각 화일을 구성하는 세그멘트들은 메타 정보 내에 "화일 배치 정보"로서 레코드된다. 화일 배치 정보는 도 6의 예에 도시된 바와 같이 각 화일 이름과 그 화일크기 및 화일이 레코드되는 세그멘트의 리스트 사이의 대응관계의 테이블의 형태로 주어진다. 세그멘트 크기보다 큰 화일의 경우에, 세그멘트 리스트는 그 화일을 구성하는 하나 또는 복수의 세그멘트 크기의 블록을 레코드하는 세그멘트들의 세그멘트 번호와, 그리고 세그멘트 크기보다 크지 않은 마지막 블록을 레코드하는 세그멘트의 세그멘트 번호 및 그 세그멘트 내의 오프셋을 가진다. 세그멘트 크기보다 작은 화일의 경우에, 세그멘트 리스트는 그 화일을 레코드하는 세그멘트의 세그멘트 번호 및 그 세그멘트 내의 오프셋을 가진다.
도 6은 화일 A가 301980 바이트의 크기를 가지며, 세그멘트 크기를 갖는 선두블록(top block)은 세그멘트 번호 "2"의 세그멘트 내에 레코드되며, 세그멘트 크기를 갖는 제2 블록은 세그멘트 번호 "6"의 세그멘트에 레코드되고, 마지막 블록은 예를 들어 0 KB의 오프셋에서의 위치로부터 세그멘트 번호 "4"의 세그멘트에 레코드된다는 것을 나타낸다.
다음에, 본 실시예의 트랜잭션 화일 시스템에서 트랜잭션을 커미트하는 시점에서의 처리를 설명한다.
트랜잭션 식별자를 특정함으로써 커미트가 명해지는 경우, 트랜잭션 화일 시스템(6)의 운영유닛(61)은 입력/출력 관리 유닛(62)으로 커미트 처리를 명한다. 이하에서, 커미트 처리가 명해지는 입력/출력 관리 유닛(62)의 운영을 도 7의 예를 참조하면서 설명한다.
여기서, 도 7의 부분 (a)에 도시된 바와 같이, 커미트될 트랜잭션은 4개의 화일 A, B, C, D를 갱신한다고 하자. 이들 중에서 화일 B는 세그멘트 크기보다 큰 화일이고, 화일 A, C 및 D는 세그멘트 크기보다 작은 화일이라 하자.
트랜잭션의 커미트 시점에서 하드 디스크(10)에 기록될 한 세트의 갱신정보를 "로그 엔트리(log entry)"라 한다. 이 로그 엔트리는 트랜잭션에 의해 갱신되는 화일에 관한 정보 모두를 포함한다.
도 7의 부분 (b)에는 예시적인 로그 엔트리가 도시되어 있다. 또한, 도 7의 부분 (b)와 (c)에는 로그 엔트리와 하드 디스크의 세그멘트들 사이의 예시적인 관계가 도시되어 있다.
본 실시예의 트랜잭션 화일 시스템(6)에 의해 관리되는 로그 엔트리는 하나 또는 복수개의 세그멘트(도 7의 부분 (b)에서 3개의 세그멘트들 1004, 2005 및 2003)를 구비하고, 매 로그 엔트리는 다음번 엔트리가 기록되는 세그멘트 번호(도 7의 부분 (b)에서 1002)를 가져서, 로그 엔트리들이 계속해서 추적될 수 있다.
도 7에서, 세그멘트 1004는 커미트될 트랜잭션의 로그 엔트리가 입력될 첫번째 세그멘트이다. 커미트될 트랜잭션의 로그 엔트리는 여기서 3개의 세그멘트에 대응하는 크기를 가져서, 다른 비어있는 세그멘트들(2003, 2005)이 로그 엔트리에 사용되게 된다. 이러한 추가 세그멘트들을 서브 세그멘트라 한다. 또한, 다음번 로그엔트리를 레코드하기 위하여 비어있는 세그멘트(1002)가 미리 보존된다.
커미트될 트랜잭션의 로그 엔트리는 여기서 도 7에 도시된 바와 같이 세그멘트(1004)로부터 시작한다. 로그 엔트리는 (필요에 따라 복수의 세그멘트에 걸쳐 분배함으로써) 다음 정보를 레코드한다.
(1) 다음번 로그 엔트리의 세그멘트 번호 (도 7의 세그멘트 1002)
(2) 로그 엔트리에 첨부되는 시간 스탬프
(3) 로그 엔트리를 구성하는 서브 세그멘트들의 세그멘트 번호 (도 7에서 세그멘트 2003 및 2005)
(4) 전체 로그 엔트리가 정확하게 기록되었는지의 여부를 판단하기 위한 체크 코드
(5) 갱신된 화일들의 내용 정보 및
(6) 화일 갱신에 의한 재기록으로부터 야기되는 메타 정보의 차이에 관한 정보
단일 화일의 세그멘트 크기보다 크지 않은 내용 정보가 2개의 세그멘트들로 분할되지 않도록 적절한 채워넣기를 사용하여, 세그멘트들이 상기 정보들로 꽉 차게 된다.
이 정보들중에서, 로그 엔트리를 구성하는 모든 세그멘트(도 7의 세그멘트 1004, 2005 및 2003)의 데이터로부터 생성된 체크섬(checksum)이나 CRC 코드에 의해 체크 코드가 주어진다. 이 체크 코드가 하드 디스크(10)에 레코드된 로그 엔트리에 대하여 올바른지의 여부를 체크함으로써, 전체 로그엔트리가 올바르게 기록되었는지의 여부를 판단할 수 있다.
시간스탬프는 실제 시간으로 주어지거나, 또는 로그 엔트리가 기록될 때마다 증가하는 시퀀스 번호로 주어질 수 있다. 이 시간스탬프는 로그 엔트리내에 사용된 세그멘트가 올바르게 기록된 새로운 로그 세그멘트인지 또는 이 세그멘트가 로그엔트리 내에서도 사용되었던 초기의 경우로부터 계속하여 남겨진 옛 로그 세그멘트인지를 판단하는데 사용된다.
도 7의 예에서의 메타 정보의 차이는 도 8의 예에 도시되어 있다. 메타정보의 차이는 세그멘트 관리 정보로부터 추출된 로그 엔트리에 포함된 세그멘트 번호(1004, 2003, 2005)에 관한 정보와, 그리고 화일 관리 정보로부터 추출되는 커미트될 트랜잭션에 의해 갱신되는 화일 A, B, C, D에 관한 정보를 포함한다.
이 로그 엔트리를 구성하는 세그멘트들의 데이터가 이런 식으로 결정되는 경우, 각 로그 세그멘트는 하드 디스크(10)에 기록된다. 로그 엔트리를 구성하는 모든 세그멘트들이 하드 디스크(10)에 기록되는 경우, 이 트랜잭션은 커미트된 것으로 간주된다.
요약하면, 입력/출력 관리 유닛(62)에 의해 수행될 커미트 처리의 절차는 다음과 같다.
(1) 커미트될 트랜잭션에 의해 갱신되는 화일들의 리스트가 트랜잭션 관리 테이블(64)을 참조하여 얻어진다.
(2) 로그 엔트리를 생성하는데 필요한 세그멘트들의 수가 갱신된 화일들의 리스트와 화일 배치 정보를 비교함으로써 체크된다.
(3) 상기 로그 엔트리의 선두 세그멘트가 될 세그멘트가 미리 보존되어, 다른 세그멘트들이 필요하다면 비어있는 세그멘트들이 세그멘트 관리 정보를 참조하여 탐색되며 그 이용상태가 "사용중"으로 설정된다.
(4) 다음번 트랜잭션의 로그 엔트리를 레코드하는 비어있는 세그멘트가 세그멘트 관리 정보를 참조하여 탐색되며, 그 이용상태가 "사용중"으로 설정되어 그 세그멘트를 보존하게 된다.
(5) 이 트랜잭션에 의해 갱신된 메타 정보의 메타정보차이가 다음 단계들에 의해 추출된다.
(5-1) 이 로그 엔트리에 포함된 세그멘트들의 정보만이 세그멘트 관리 정보로부터 추출된다.
(5-2) 커미트될 트랜잭션에 의해 갱신된 화일들의 정보만이 화일배치정보로부터 추출된다.
(6) 로그 엔트리가 생성되어 하드 디스크(10)에 기록된다. 이렇게 되면 커미트 처리가 완료된다.
트랜잭션 화일 시스템(6)은 또한 어보트 처리를 수행할 필요성이 있다. 본 실시예의 트랜잭션 화일 시스템(6)에서는 커미트된 트랜잭션에 기인하는 갱신 정보만이 하드 디스크(10)에 레코드된다. 이러한 이유로, 트랜잭션을 위한 어보트 처리는 버퍼영역(63)에서 그 트랜잭션에 의해 갱신된 화일들의 내용정보를 단순히 폐기하고 이 화일들에 관련된 메타 정보의 갱신을 취소함으로써 완료될 수 있다.
이제 각 로그 엔트리는 그 로그 엔트리에 포함된 화일들을 갱신하는데 필요한 메타정보의 차이를 포함한다. 실행시점에서, 버퍼영역(63) 내의 메타정보는 필요할 때마다 갱신되지만 완전한 메타정보는 하드 디스크(10)에 존재하지 않아서, 버퍼영역(63) 내의 메타 정보가 장해 등에 의하여 유실될 때 복구처리를 수행하는 경우 하드 디스크(10)상의 메타정보에 대한 메타정보의 차이를 사용하여 메타정보를 다시 구축할 필요는 없다. 이 복구처리를 고속으로 하기 위하여, 메타정보의 일부분 또는 전체를 적절한 타이밍에서 로그 엔트리에 기록할 수 있다. 또한 안정한 위치로서 소정의 위치(예컨대 이러한 용도로 배타적으로 사용되는 세그멘트 번호 "0")에 그 로그 엔트리의 위치를 레코드할 수 있다. 이런 식으로, 장해 등이 발생한 후에 복구처리를 수행하는 시점에서 레코드된 안정한 포인트(point)에서 로그 엔트리로부터의 차이를 사용하여 메타 정보를 재구성하는데 충분하여, 고속복구처리를 실현할 수 있다. 하드 디스크(10) 상의 소정의 위치에 또는 로그 엔트리가 아닌 그로부터 추적가능한 위치에 메타 정보를 또한 기록할 수 있다.
도 9는 안정한 포인트에서 로그 엔트리를 사용하는 복구처리의 예시적인 절차를 나타낸다.
먼저, 안정적인 포인트에서의 로그 엔트리가 판독되어 E로 설정되며, 그 순간에서의 메타 정보는 버퍼 영역에 저정된다 (단계 S11).
다음에, E의 다음번 로그 엔트리가 판독되어 새로운 E로 설정된다 (단계 S12).
그리고, E가 완전하다면, E 내의 메타정보의 차이는 버퍼영역 내의 메타 정보에 적용된다. (단계 S14).
상술한 단계 S12 내지 단계 S14의 처리는 E가 단계 S13에서 완전한 동안 반복된다.
E가 단계 S13에서 불완전한 경우, 복구처리가 끝나게 된다 (단계 S15).
여기서, 복구처리를 수행하는 시점에서, 로그 엔트리는 도 9의 절차에 의해 안정한 포인트로부터 계속하여 판독되며, 로그 엔트리가 올바르게 커미트된 것인지에 대하여 판단할 필요가 있다. 본 실시예의 트랜잭션 화일 시스템(6)에 있어서, 로그 엔트리에 레코드된 시간 스탬프와 체크 코드를 사용하여 로그 엔트리가 올바르게 커미트된 것인지의 여부를 판단할 수 있다. 로그 엔트리를 구성하는 세그멘트들이 모두 기록되지 않았다면, 계산된 체크 코드는 레코드된 체크 코드와는 다르게 되어, 이 로그 엔트리가 올바르지 않은 것을 용이하게 체크할 수 있다.
지금까지의 설명에 있어서, 하나의 트랜잭션에 의해 갱신된 화일들의 정보만이 하나의 로그 엔트리에 입력되지만, 하나의 로그엔트리에 복수개의 트랜잭션을 위한 화일갱신정보를 집단으로 입력하고 이 트랜잭션들을 집단으로 커미트하는 것이 또한 가능하다.
이 경우에, 집단으로 커미트될 이 트랜잭션들중에서 하나 이상의 트랜잭션에 의해 계속적으로 갱신되는 화일이 존재한다면, 이 화일을 마지막으로 갱신시킨 트랜잭션에 의한 갱신에 관한 정보만이 로그 엔트리에 남겨질 수 있고, 다른 트랜잭션들에 의한 갱신에 관한 정보는 폐기될 수 있다. 이런식으로, 많은 트랜잭션에 의해 자주 갱신되는 소위 핫 스폿(hot spot)화일의 갱신에 관한 정보를 위하여 하드 디스크(10)에 기록될 데이터의 양을 줄일 수 있어서, 성능이 개선될 수 있다.
도 6의 예에서, 하나의 트랜잭션에 의해 갱신된 화일들에 관한 정보는 모두 로그 엔트리로 입력되어 커미트 시점에서 하드 디스크(10)에 기록된다. 이러한 이유로, 하나의 트랜잭션이 더 큰 화일의 갱신을 행하는 경우에 커미트 처리는 시간이 낭비되게 되는 경우일 수 있다. 이러한 경우, 트랜잭션에 의해 갱신된 화일의 전체 내용정보중 일부분, 즉 트랜잭션에 의해 기록되는 데이터는 커미트전에 하드 디스크(10)에 기록되고, 아직 기록되지 않고 남아 있는 내용정보와 메타정보차이 정보는 트랜잭션을 커미트하는 시점에서 로그엔트리에 포함되는 최적화를 수행할 수 있다. 이 최적화는 커다란 화일이 그 선두로부터 계속해서 처리되어야 하는 경우에 성능을 개선시킬 수 있고 처리된 부분은 커미트를 기다리지 않고 하드디스크(10)에 기록될 수 있다. 이 경우에, 이 트랜잭션이 어보트되면, 화일의 내용정보가 기록되는 세그멘트들을 비어 있는 영역으로 단순히 리셋함으로써 갱신이 취소될 수 있다.
이런 방식으로 갱신된 화일의 내용정보를 미리 기록하는 것이 이루어지는 트랜잭션을 위한 예시적인 커미트 처리를 이하 도 10을 참조하면서 설명한다. 도 10의 부분 (a)는 커미트될 트랜잭션에 의해 갱신된 예시적인 화일들을 나타내며, 도 7의 부분 (b)는 로그 엔트리를 구성하는 예시적인 세그멘트들을 나타낸다. 이 예에서, 커미트될 트랜잭션은 4개의 화일들 A, B, C, D를 도 7의 예에서와 유사하게 갱신시키는 것으로 하자. 그러나, 여기서 화일 B의 선두블록 B1은 도 7의 예와는 달리 커미트 처리전에 세그멘트 번호 2015의 세그멘트에 이미 기록되어 있다. 이러한 상태에서, 이 트랜잭션의 로그 엔트리는 도 10의 부분 (b)에 도시된 것처럼 형성된다. 즉, 블록 B1은 도 7의 경우와 달리 로그 엔트리에 포함되지 않는다. 이 로그 엔트리에 포함된 메타정보의 차이는 도 11에 도시된 바와 같다. 도 11의 메타 정보의 차이는 블록 B1의 세그멘트에 관한 정보를 포함한다. 달리 말하면, 미리 기록이 이루어진 세그멘트의 메타 정보는 그 트랜잭션의 커미트 시점에서 로그 엔트리에 포함된다.
미리 기록하는 것이 이루어진 경우에 있어서, 미리 기록하는 것이 완전히 끝난 것을 확인한 후에 그 트랜잭션의 로그 엔트리의 기록을 수행할 필요가 있다는 점에 주목하자. 또한, 미리 기록하는 것에 사용된 세그멘트에 대응하는 세그멘트 관리 정보는 그 트랜잭션의 로그 엔트리가 기록될 때까지 버퍼 영역(63)상에 "사용중"으로 남아 있지만, 하드 디스크(10)상에는 "비어 있음"으로 남아 있는다. 이러한 이유로, 이 세그멘트는 시스템이 장해에 기인하여 불능상태에 있기 때문에 그 트랜잭션이 커미트되지 않은 경우에 자동적으로 "비어있음"으로 리셋되게 될 것이다.
지금까지의 설명에서, 트랜잭션 처리 시스템이 하나의 트랜잭션 화일 시스템을 가지는 경우에 대하여 고려하였다. 그러나, 트랜잭션 처리 시스템이 복수의 트랜잭션 화일을 가지는 것도 물론 가능하다. 예를 들어, 2개의 트랜잭션 화일 시스템이 데이터 유형에 따라 별개로 사용되도록 2개의 디스크 어레이(array)가 2개의 트랜잭션 화일 시스템과 함께 사용되는 경우를 고려할 수 있다. 이러한 경우에도, 하나의 트랜잭션이 양쪽 트랜잭션 화일 시스템의 화일을 갱신시킨다면, 모든 화일에 대하여 어토믹 방식으로 트랜잭션을 커미트할 필요가 있다. 그러나, 이 트랜잭션 화일 시스템이 각각의 로그 엔트리를 독립적으로 관리한다면, 하나의 트랜잭션 화일 시스템 내의 로그 엔트리는 올바르게 기록되지만 다른 트랜잭션 화일 시스템의 로그 엔트리가 기록되기 전에 시스템이 장해에 기인하여 불능상태에 있어서 한쪽의 로그 엔트리만이 유효하고 시스템은 전체적인 일관성이 없는 상태에 빠지는 경우가 있을 수 있다.
시스템이 이러한 전체적인 일관성이 없는 상태에 빠지지 않도록, 동일한 트랜잭션이 복수의 트랜잭션 화일 시스템 내에서 화일을 갱신할 때, 다른 트랜잭션 화일 시스템의 로그 엔트리를 확인하는 정보가 각 트랜잭션 화일 시스템의 로그 엔트리에 내장되어 각 트랜잭션 화일 시스템에 대응하는 안정한 메모리 장치에 기록된다. 이 트랜잭션은 모든 트랜잭션 화일 시스템의 로그 엔트리들이 기록되는 시점에서 커미트된 것으로 간주된다.
이러한 방식으로 로그 엔트리를 생성함으로써, 하나의 트랜잭션 화일 시스템의 로그 엔트리는 그 안에 내장된 다른 트랜잭션 화일 시스템의 로그 엔트리가 역시 동시에 유효할 때에만 유효하다. 이러한 이유로, 복구처리 시점에서, 도 9의 절차에 따라 각각의 트랜잭션 화일 시스템내의 로그 엔트리를 추적함으로써 메타 정보가 복구되어야 할 때, 로그 엔트리에 내장된 다른 트랜잭션 화일 시스템의 로그 엔트리가 올바르게 복구되는지의 여부가 체크되고, 만약 올바르게 복구되지 않는다면 이어지는 로그 엔트리들은 무효이다. 이런 방식으로, 전체적인 일관성을 가지고 상태를 복구할 수 있다.
본 트랜잭션 화일 시스템은 비디오 데이터와 같은 연속 데이터나스트림(stream) 데이터를 취급하는 멀티미디어 화일 시스템과 용이하게 병합될 수 있다. 이러한 경우에, 본 발명의 트랜잭션 화일 시스템은 하드 디스크와 같이 안정한 메모리 장치내로 화일 갱신을 로그로서 기록함으로써 성능을 개선하기 위하여 커다란 세그멘트 크기로 입력/출력을 수행하는 것이 가능하다. 스트림 데이터를 취급하는 경우에도, 연속성을 유지하면서 하드 디스크와 같은 안정한 메모리 장치의 이용효율을 개선시키기 위하여 커다란 크기로 입력/출력을 수행하여 스트림 데이터가 인터럽트되지 않도록 하는 것이 바람직하다. 이를 위하여, 본 발명의 트랜잭션 화일 시스템과 스트림 데이터를 취급하는 멀티미디어 화일 시스템은 통일된 세그멘트 영역 관리를 수행할 수 있다. 예를 들어, 본 발명의 트랜잭션 화일 시스템의 세그멘트 크기는 연속 데이터의 입력/출력을 위해 사용된 데이터 크기와 동일하게 설정될 수 있다.
본 발명에 따르면, 트랜잭션에 의해 갱신된 복수개의 화일들이 커미트 시점에서 어토믹 방식으로 화일 시스템에 반영될 수 있고, 어보트 전에 이루어진 갱신들이 어보트 시점에서 취소될 수 있는 고성능의 트랜잭션 화일 시스템을 실현하는 것이 가능하다.
또한, 본 발명에 따르면, 커다란 크기로의 기록이 수행되고 따라서 헤드 등에 의한 탐색에 기인하는 오버헤드가 줄어들 수 있도록, 트랜잭션에 의해 이루어진 갱신들에 관한 정보를 포함하는 로그 엔트리가 예를 들어 세그멘트 단위로 하드 디스크와 같은 안정한 메모리 장치에 기록된다. 또한, 화일들이 기껏해야 세그멘트 크기의 단위로 안정한 메모리 장치 상의 연속영역에 레코드되어, 판독 시점에서 탐색 등에 기인하는 오버헤드가 역시 줄어들 수 있다. 결과적으로, 디스크들의 입력/출력 성능을 효율적으로 이용함으로써 고성능의 트랜잭션 화일 시스템을 실현하는 것이 가능해진다.
또한, 본 발명에 따르면, 장해가 발생하는 시점에서의 복구 처리에 의해, 커미트되지 않은 트랜잭션에 의해 이루어진 갱신들을 취소하는 동안에 커미트된 트랜잭션에 의해 갱신된 화일들이 유실되는 것을 피할 수 있다. 복구 처리는 각 로그 엔트리가 올바른지의 여부를 체크하는 동안 로그 엔트리들의 체인(chain)을 추적함으로써 간단한 절차에 의해 고속으로 수행될 수 있다.
또한, 본 발명의 트랜잭션 화일 시스템에 있어서, 로그 엔트리는 세그멘트 크기의 블록들로 분할되며 로그 엔트리들 사이의 체인이 관리되어, 물리적으로 인접하는 영역에 계속하여 로그 엔트리들을 기록하는 것이 필요하지 않다. 이러한 이유로, 쓰레기 수집(garbage collection)을 사용하여 하드 디스크 상의 사용되지 않은 영역을 수집함으로써 로그 엔트리들을 위한 인접영역을 확보할 필요가 없어서, 안정한 메모리 장치상의 영역 관리가 간단해지고 오버헤드가 줄어들 수 있다.
따라서, 본 발명에 따르면, 트랜잭션에 의해 갱신된 복수의 화일들에 관한 갱신정보를 포함하는 로그 엔트리는 트랜잭션의 커미트 시점에서 생성되고, 이 로그 엔트리는 안정한 메모리 장치에 기록되어, 트랜잭션에 의해 갱신된 복수의 화일들이 커미트 시점에서 어토믹 방식으로 화일 시스템에 반영될 수 있고, 어보트 전에 이루어진 갱신들은 어보트 시점에서 취소될 수 있으며, 복구처리가 간단한 절차에 의해 고속으로 수행될 수 있다.
여기서, 복수의 화일들이 다양한 크기들을 가질 수 있다. 또한 갱신은 새로운 화일의 생성, 기존 화일 내용의 수정 및 화일의 삭제를 포함할 수 있다. 또한, 갱신된 화일들의 메타 정보는 효율적으로는 집단으로 안정한 메모리 장치 상에서 갱신된 화일들의 타당성을 입증하는 정보이다. 또한, 안정한 메모리 장치는 하드 디스크 등과 같이 전원이 꺼졌을 때에도 그 저장된 내용이 사라지지 않는 메모리 장치이다.
본 발명에 있어서, 상술한 로그 엔트리를 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 기록함으로써, 그 처리의 개시부터 커미트 시점까지 하나 또는 복수개의 화일들에 대하여 하나의 트랜잭션에 의해 이루어진 모든 갱신들이 안정한 메모리 장치상에서 유효한 (커미트) 상태나 또는 모두 무효인 (어보트) 상태중 어느 하나에 시스템이 놓이게 되는 것을 보장할 수 있다. 시스템에 장해가 발생한 경우에도, 하나의 트랜잭션에 의해 이루어진 갱신들의 일부분만이 유효하고 반면에 다른 것들은 무효인 상태를 가지는 것은 불가능하다. 본 발명의 화일 관리방법에 따르면, 화일 시스템 자체는 트랜잭션들의 어토믹성(atomicity)을 실현할 수 있다 (어토믹 기록).
본 발명에 따른 상기 실시예는 컴퓨터 분야의 당업자에게 명백한 바와 같이 본 명세서의 개시에 따라 프로그램된 통상적인 범용 디지탈 컴퓨터를 사용하여 편리하게 개선될 수 있다. 본 발명의 개시에 의거하여 적절한 소프트웨어 코딩(coding)이 숙련된 프로그래머에 의해 용이하게 준비될 수 있는데, 이는 소프트웨어 분야의 당업자에게는 자명하다.
특히, 상기 실시예의 트랜잭션 화일 시스템은 소프트웨어 패키지의 형태로 편리하게 개선될 수 있다.
이러한 소프트웨어 패키지는 본 발명의 개시된 기능과 프로세스를 수행하기 위하여 컴퓨터를 프로그램하는데 사용되는 저장된 컴퓨터 코드를 포함하는 저장매체를 채용한 컴퓨터 프로그램물일 수 있다. 저장매체는 종래의 플로피 디스크, 광디스크, CD-ROM, 광자기디스크, ROM, RAM, EPROM, EEPROM, 자기 또는 광학 카드 또는 기타 전자적인 명령을 저장하는 적절한 매체를 포함할 수 있는데, 이에 반드시 제한되는 것은 아니다.
상술한 것 이외에도, 본 발명 실시예의 다양한 변형예 및 수정예가 본 발명의 신규하고 유리한 특징들을 벗어나지 않으면서 이루어질 수 있다. 따라서, 이러한 모든 수정예 및 변형예들은 청부된 특허청구의 범위 내에 포함되는 것으로 간주되어야 한다.
이상 설명한 바와 같이, 본 발명에 따르면, 트랜잭션에 의해 갱신된 복수개의 화일들이 커미트 시점에서 어토믹 방식으로 화일 시스템에 반영될 수 있고, 어보트 전에 이루어진 갱신들이 어보트 시점에서 취소될 수 있는 고성능의 트랜잭션 화일 시스템을 실현하는 것이 가능하다.
또한, 본 발명에 따르면, 커다란 크기로 기록이 수행되고 따라서 헤드 등에 의한 탐색에 기인하는 오버헤드가 줄어들 수 있도록, 트랜잭션에 의해 이루어진 갱신들에 관한 정보를 포함하는 로그 엔트리가 예를 들어 세그멘트 단위로 하드 디스크와 같은 안정한 메모리 장치에 기록된다. 또한, 화일들이 기껏해야 세그멘트 크기의 단위로 안정한 메모리 장치 상의 연속영역에 레코드되어, 판독 시점에서 탐색 등에 기인하는 오버헤드가 역시 줄어들 수 있다. 결과적으로, 디스크들의 입력/출력 성능을 효율적으로 이용함으로써 고성능의 트랜잭션 화일 시스템을 실현하는 것이 가능해진다.
또한, 본 발명에 따르면, 장해가 발생하는 시점에서의 복구 처리에 의해, 커미트되지 않은 트랜잭션에 의해 이루어진 갱신들을 취소하는 동안에 커미트된 트랜잭션에 의해 갱신된 화일들이 유실되는 것을 피할 수 있다. 복구 처리는 각 로그 엔트리가 올바른지의 여부를 체크하는 동안 로그 엔트리들의 체인(chain)을 추적함으로써 간단한 절차에 의해 고속으로 수행될 수 있다.
또한, 본 발명의 트랜잭션 화일 시스템에 있어서, 로그 엔트리는 세그멘트 크기의 블록들로 분할되며 로그 엔트리들 사이의 체인이 관리되어, 물리적으로 인접하는 영역에 계속하여 로그 엔트리들을 기록하는 것이 필요하지 않다. 이러한 이유로, 쓰레기 수집(garbage collection)을 사용하여 하드 디스크 상의 사용되지 않은 영역을 수집함으로써 로그 엔트리들을 위한 인접영역을 확보할 필요가 없어서, 안정한 메모리 장치상의 영역 관리가 간단해지고 오버헤드가 줄어들 수 있다.
따라서, 본 발명에 따르면, 트랜잭션에 의해 갱신된 복수의 화일들에 관한 갱신정보를 포함하는 로그 엔트리는 트랜잭션의 커미트 시점에서 생성되고, 이 로그 엔트리는 안정한 메모리 장치에 기록되어, 트랜잭션에 의해 갱신된 복수의 화일들이 커미트 시점에서 어토믹 방식으로 화일 시스템에 반영될 수 있고, 어보트 전에 이루어진 갱신들은 어보트 시점에서 취소될 수 있으며, 복구처리가 간단한 절차에 의해 고속으로 수행될 수 있다.
본 발명에 있어서, 상술한 로그 엔트리를 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 기록함으로써, 그 처리의 개시부터 커미트 시점까지 하나 또는 복수개의 화일들에 대하여 하나의 트랜잭션에 의해 이루어진 모든 갱신들이 안정한 메모리 장치상에서 유효한 (커미트) 상태나 또는 모두 무효인 (어보트) 상태중 어느 하나에 시스템이 놓이게 되는 것을 보장할 수 있다. 시스템에 장해가 발생한 경우에도, 하나의 트랜잭션에 의해 이루어진 갱신들의 일부분만이 유효하고 반면에 다른 것들은 무효인 상태를 가지는 것은 불가능하다. 본 발명의 화일 관리방법에 따르면, 화일 시스템 자체는 트랜잭션들의 어토믹성(atomicity)을 실현할 수 있다 (어토믹 기록).

Claims (12)

  1. (a) 트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여, 트랜잭션에 의해 안정한 메모리 장치에 집단으로 이루어지는 모든 갱신들의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리를 생성하는 단계; 및
    (b) 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하는 단계를 구비하는 트랜잭션 화일 관리방법.
  2. 제1항에 있어서, 상기 단계 (a)는 트랜잭션에 의해 갱신된 하나 이상의 화일들 모두를 위한 내용정보 및 메타 정보를 포함하는 로그 엔트리를 생성하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  3. 제1항에 있어서, 트랜잭션의 커미트전에 트랜잭션에 의해 안정한 메모리 장치에 갱신된 하나 이상의 화일들의 내용정보 전체 또는 일부분을 기록하는 단계를 더 구비하고,
    여기에서 상기 단계 (a)는 트랜잭션에 의해 갱신된 하나 이싱의 화일들 모두를 위한 메타정보와 그리고 안정한 메모리에 아직 기록되지 않은 내용정보중 임의의 부분을 포함하는 로그엔트리를 생성하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  4. 제1항에 있어서, 상기 단계 (a)는 로그 엔트리가 안정한 메모리 장치에 완전히 기록되었는지의 여부가 체크될 수 있는 정보를 내장함으로써 로그 엔트리를 생성하고, 그리고
    로그 엔트리가 불완전하게 기록되었다는 것을 장해발생후에 안정한 메모리로부터 판독된 로그엔트리가 표시하는 경우 트랜잭션에 의해 집단으로 이루어진 모든 갱신들을 무효로 하는 단계를 더 구비하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  5. 제1항에 있어서, 상기 단계 (b)는 다음에 커미트될 다른 트랜잭션에 대응하는 다음번 로그 엔트리를 기록하기 위하여 안정한 메모리 장치 상의 위치정보를 로그 엔트리에 내장함으로써 안정한 메모리 장치에 로그 엔트리를 기록하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  6. 제1항에 있어서, 상기 단계 (a)는 복수의 트랜잭션이 집단으로 커미트되는경우 복수의 트랜잭션에 의해 이루어진 갱신들을 위하여 통일된 로그 엔트리를 생성하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  7. 제6항에 있어서, 2개 이상의 트랜잭션이 버퍼영역상에서 동일한 화일을 갱신하고 있을 때 로그 엔트리가 2개 이상의 트랜잭션중 마지막으로 커미트되는 하나의 트랜잭션에 의한 동일한 화일의 갱신내용만을 포함하도록 상기 단계 (a)는 로그 엔트리를 생성하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  8. 제1항에 있어서, 로그 엔트리를 일정한 크기의 세그멘트들로 분할함으로써 상기 단계 (b)는 로그 엔트리를 안정한 메모리 장치에 기록하는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  9. 제8항에 있어서, 세그멘트들의 일정한 크기는 연속 데이터의 입력/출력을 위해 사용되는 데이터의 크기와 같게 설정되는 것을 특징으로 하는 트랜잭션 화일 관리방법.
  10. 안정한 메모리 장치에 저장된 화일들을 관리하고 트랜잭션에 의한 처리에 화일들을 제공하는 트랜잭션 화일 시스템으로서,
    트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여, 안전한 메모리 장치에 집단으로 트랜잭션에 의해 이루어지는 모든 갱신의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리를 생성하는 로그 엔트리 생성유닛; 및
    트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하는 로그 엔트리 기록 유닛을 구비하는 트랜잭션 화일 시스템.
  11. 안정한 메모리 장치에 저장된 화일들을 관리하며 화일들을 트랜잭션에 의한 처리에 제공하는 복수의 트랜잭션 화일 시스템에 의해 형성된 복합 트랜잭션 화일 시스템으로서, 각 트랜잭션 화일 시스템은
    트랜잭션의 처리개시부터 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼영역 상에서 갱신된 하나 이상의 화일들을 위하여, 안전한 메모리 장치에 집단으로 트랜잭션에 의해 이루어지는 모든 갱신의 타당성을 입증하기 위한 정보를 포함하는 로그 엔트리를 생성하는 로그 엔트리 생성유닛; 및
    트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하는 로그 엔트리 기록 유닛을 구비하고,
    여기에서 하나의 트랜잭션이 하나 이상의 트랜잭션 화일 시스템 내의 복수의화일들을 갱신할 때, 각 트랜잭션 화일 시스템의 로그 엔트리 생성 유닛은 상기 각 트랜잭션 화일 시스템내에서 상기 하나의 트랜잭션에 의해 갱신된 하나 이상의 화일들을 위한 상기 정보를 포함하는 로그 엔트리를 생성하고, 그리고 각 트랜잭션 화일 시스템의 로그 엔트리 기록 유닛은 다른 트랜잭션 화일 시스템에서 생성되는 상기 하나의 트랜잭션을 위한 다른 로그 엔트리를 확인하는 다른 정보를 로그 엔트리에 내장함으로써 상기 각 트랜잭션 화일 시스템에 대응하는 안정한 메모리 장치에 로그 엔트리를 기록하는 복합 트랜잭션 화일 시스템.
  12. 컴퓨터로 하여금 안정한 메모리 장치 내에 저장된 화일들을 관리하고 트랜잭션에 의한 처리에 화일들을 제공하기 위한 트랜잭션 화일 시스템으로서의 기능을 하도록 하는 컴퓨터로 판독가능한 프로그램 코드들이 내장된 컴퓨터 사용가능한 매체로서, 상기 컴퓨터로 판독가능한 프로그램 코드들은
    트랜잭션 처리의 개시에서 트랜잭션의 커미트까지 트랜잭션에 의해 버퍼 영역에 갱신된 하나 이상의 화일들을 위하여, 상기 컴퓨터로 하여금 안정한 메모리 장치에 집단으로 트랜잭션에 의해 이루어진 모든 갱신의 타당성을 입증하는 정보를 포함하는 로그 엔트리를 생성하도록 하는 컴퓨터로 판독가능한 제1 프로그램 코드; 및
    상기 컴퓨터로 하여금 트랜잭션의 커미트 시점에서 안정한 메모리 장치에 로그 엔트리를 기록하도록 하는 컴퓨터로 판독가능한 제2 프로그램 코드를 포함하는컴퓨터 사용가능한 매체.
KR10-2000-0056431A 1999-09-29 2000-09-26 트랜잭션에 의하여 복수개의 화일의 어토믹 갱신을실현하는 트랜잭션 화일 시스템 KR100396722B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP27626399A JP2001101044A (ja) 1999-09-29 1999-09-29 トランザクショナルファイル管理方法、トランザクショナルファイルシステム及び複合トランザクショナルファイルシステム
JP1999-276263 1999-09-29

Publications (2)

Publication Number Publication Date
KR20010050644A KR20010050644A (ko) 2001-06-15
KR100396722B1 true KR100396722B1 (ko) 2003-09-02

Family

ID=17567009

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2000-0056431A KR100396722B1 (ko) 1999-09-29 2000-09-26 트랜잭션에 의하여 복수개의 화일의 어토믹 갱신을실현하는 트랜잭션 화일 시스템

Country Status (6)

Country Link
US (2) US6779001B1 (ko)
EP (1) EP1089176A3 (ko)
JP (1) JP2001101044A (ko)
KR (1) KR100396722B1 (ko)
CN (1) CN1153142C (ko)
TW (1) TWI235923B (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6856993B1 (en) * 2000-03-30 2005-02-15 Microsoft Corporation Transactional file system
US20050120039A1 (en) * 2002-09-19 2005-06-02 Upstream Software, Inc. System, method and software for acquiring, storing and retrieving electronic transactions
US7103597B2 (en) * 2002-10-03 2006-09-05 Mcgoveran David O Adaptive transaction manager for complex transactions and business process
US20050256859A1 (en) * 2004-05-13 2005-11-17 Internation Business Machines Corporation System, application and method of providing application programs continued access to frozen file systems
CN100407202C (zh) * 2004-10-27 2008-07-30 株式会社理光 文件管理服务或验证服务的器件和方法
US7548918B2 (en) * 2004-12-16 2009-06-16 Oracle International Corporation Techniques for maintaining consistency for different requestors of files in a database management system
US7627574B2 (en) * 2004-12-16 2009-12-01 Oracle International Corporation Infrastructure for performing file operations by a database server
US7716260B2 (en) * 2004-12-16 2010-05-11 Oracle International Corporation Techniques for transaction semantics for a database server performing file operations
US20060136508A1 (en) * 2004-12-16 2006-06-22 Sam Idicula Techniques for providing locks for file operations in a database management system
US7809675B2 (en) * 2005-06-29 2010-10-05 Oracle International Corporation Sharing state information among a plurality of file operation servers
US20070005874A1 (en) * 2005-07-01 2007-01-04 Dan Dodge File system storing transaction records in flash-like media
US7970803B2 (en) 2005-07-01 2011-06-28 Qnx Software Systems Gmbh & Co. Kg Optimized startup verification of file system integrity
US8959125B2 (en) 2005-07-01 2015-02-17 226008 Ontario Inc. File system having inverted hierarchical structure
US7809777B2 (en) 2005-07-01 2010-10-05 Qnx Software Systems Gmbh & Co. Kg File system having deferred verification of data integrity
US7873683B2 (en) 2005-07-01 2011-01-18 Qnx Software Systems Gmbh & Co. Kg File system having transaction record coalescing
US8250030B2 (en) * 2005-09-21 2012-08-21 Infoblox Inc. Provisional authority in a distributed database
US8533169B1 (en) * 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
US7610304B2 (en) * 2005-12-05 2009-10-27 Oracle International Corporation Techniques for performing file operations involving a link at a database management system
US8799882B2 (en) * 2005-12-07 2014-08-05 Microsoft Corporation Compiler support for optimizing decomposed software transactional memory operations
US8266609B2 (en) * 2005-12-07 2012-09-11 Microsoft Corporation Efficient placement of software transactional memory operations around procedure calls
KR100775141B1 (ko) * 2005-12-28 2007-11-12 엘지전자 주식회사 저널링이 적용된 fat 파일 시스템의 구현 방법
KR100678926B1 (ko) * 2006-01-05 2007-02-06 삼성전자주식회사 로그 정보 관리 시스템 및 방법
US8341123B2 (en) 2006-01-27 2012-12-25 El Fresko Technologies Limited Event structured file system (ESFS)
FI20060427L (fi) * 2006-05-03 2007-11-04 Tellabs Oy Menetelmä ja laitteisto peräkkäistiedoston käsittelemiseksi
US20080059510A1 (en) * 2006-08-31 2008-03-06 Daniel Cardamore Multimedia system framework having layer consolidating access to multiple media devices
US7908276B2 (en) 2006-08-25 2011-03-15 Qnx Software Systems Gmbh & Co. Kg Filesystem having a filename cache
US8566503B2 (en) 2006-08-25 2013-10-22 Qnx Software Systems Limited Multimedia filesystem having unified representation of content on diverse multimedia devices
US20080065667A1 (en) * 2006-09-11 2008-03-13 Hopkins Donald F Transaction oriented resilient file system
US20080147747A1 (en) * 2006-12-14 2008-06-19 Dan Cardamore Media system having synchronization with preemptive prioritization of synchronization order
US7802136B2 (en) * 2006-12-28 2010-09-21 Intel Corporation Compiler technique for efficient register checkpointing to support transaction roll-back
EP2118756A4 (en) * 2008-03-01 2010-12-15 Toshiba Kk MEMORY SYSTEM
KR100954603B1 (ko) * 2008-05-16 2010-04-26 주식회사 휴원 파일 시스템의 로그 파일 및 상기 파일 시스템의 오류 복구방법
CN102112959B (zh) * 2008-05-29 2013-09-18 惠普开发有限公司 包括原子地更新的存储器的可更换打印机部件
JP5467625B2 (ja) * 2008-07-30 2014-04-09 インターナショナル・ビジネス・マシーンズ・コーポレーション トランザクションを処理する本番システムと該本番システムのバックアップ・システムである代行システムとを含む本番−代行システム
US8200627B2 (en) * 2008-10-30 2012-06-12 International Business Machines Corporation Journaling database changes using a bit map for zones defined in each page
KR101583716B1 (ko) 2009-01-30 2016-01-08 삼성전자주식회사 비트 로깅을 이용한 데이터 복구 방법 및 그 장치
CN102065192B (zh) * 2009-11-18 2013-12-04 中国移动通信集团安徽有限公司 一种话单排重方法和装置
CN102073655B (zh) * 2009-11-20 2015-09-02 腾讯科技(深圳)有限公司 一种保存数据的方法和装置
KR101043238B1 (ko) * 2009-11-25 2011-06-30 주식회사 바우압텍 고전압용 정전기 방전 보호 소자
US8224780B2 (en) * 2010-06-15 2012-07-17 Microsoft Corporation Checkpoints for a file system
US20120078966A1 (en) * 2010-09-29 2012-03-29 International Business Machines Corporation File System With Content Identifiers
JP2013127748A (ja) * 2011-12-19 2013-06-27 Fujitsu Ltd 情報処理装置、データ記憶方法及びプログラム
WO2013091183A1 (zh) * 2011-12-21 2013-06-27 华为技术有限公司 一种键值对的操作方法及装置
US9473561B2 (en) * 2013-03-15 2016-10-18 International Business Machines Corporation Data transmission for transaction processing in a networked environment
KR102094475B1 (ko) 2013-04-29 2020-03-27 삼성전자주식회사 멀티-트랜잭션의 아토믹 라이트 방법
CN104462127B (zh) * 2013-09-22 2018-07-20 阿里巴巴集团控股有限公司 一种记录数据更新方法及装置
CN103778030B (zh) * 2013-12-30 2017-09-22 上海晨思电子科技有限公司 日志子系统写入方法、错误追踪方法及处理器
WO2016120884A1 (en) * 2015-01-30 2016-08-04 Hewlett-Packard Development Company, L.P. Failure atomic update of a single application data file
CN107180051B (zh) * 2016-03-11 2021-02-12 华为技术有限公司 一种日志管理方法、服务器
US10536476B2 (en) 2016-07-21 2020-01-14 Sap Se Realtime triggering framework
US10482241B2 (en) 2016-08-24 2019-11-19 Sap Se Visualization of data distributed in multiple dimensions
US10542016B2 (en) 2016-08-31 2020-01-21 Sap Se Location enrichment in enterprise threat detection
US10630705B2 (en) 2016-09-23 2020-04-21 Sap Se Real-time push API for log events in enterprise threat detection
US10673879B2 (en) 2016-09-23 2020-06-02 Sap Se Snapshot of a forensic investigation for enterprise threat detection
US10534908B2 (en) 2016-12-06 2020-01-14 Sap Se Alerts based on entities in security information and event management products
US10338855B2 (en) * 2016-12-08 2019-07-02 International Business Machines Corporation Optimized reading of multiple objects from tape
US10530792B2 (en) 2016-12-15 2020-01-07 Sap Se Using frequency analysis in enterprise threat detection to detect intrusions in a computer system
US10534907B2 (en) * 2016-12-15 2020-01-14 Sap Se Providing semantic connectivity between a java application server and enterprise threat detection system using a J2EE data
US11470094B2 (en) 2016-12-16 2022-10-11 Sap Se Bi-directional content replication logic for enterprise threat detection
US10552605B2 (en) 2016-12-16 2020-02-04 Sap Se Anomaly detection in enterprise threat detection
US10764306B2 (en) 2016-12-19 2020-09-01 Sap Se Distributing cloud-computing platform content to enterprise threat detection systems
US10530794B2 (en) 2017-06-30 2020-01-07 Sap Se Pattern creation in enterprise threat detection
US10986111B2 (en) 2017-12-19 2021-04-20 Sap Se Displaying a series of events along a time axis in enterprise threat detection
US10681064B2 (en) 2017-12-19 2020-06-09 Sap Se Analysis of complex relationships among information technology security-relevant entities using a network graph
CN110928890B (zh) * 2019-11-08 2023-01-24 广州华多网络科技有限公司 数据存储方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04361338A (ja) * 1991-06-10 1992-12-14 Nec Corp 取引ログデータ引継ぎ方式
KR930023848A (ko) * 1992-05-28 1993-12-21 세키자와 스토무 복합 시스템의 로그 파일 제어 시스템

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4507751A (en) * 1982-06-21 1985-03-26 International Business Machines Corporation Method and apparatus for logging journal data using a log write ahead data set
US5245615A (en) * 1991-06-06 1993-09-14 International Business Machines Corporation Diagnostic system and interface for a personal computer
US5469562A (en) * 1992-06-26 1995-11-21 Digital Equipment Corporation Durable atomic storage update manager
EP0839352B1 (en) * 1995-07-20 2002-10-16 Novell, Inc. Transaction log management in a disconnectable computer and network
US5870757A (en) * 1995-09-11 1999-02-09 Sun Microsystems, Inc. Single transaction technique for a journaling file system of a computer operating system
US5668958A (en) * 1995-09-12 1997-09-16 International Business Machines Corporation Heterogeneous filing system with common API and reconciled file management rules
US6014673A (en) * 1996-12-05 2000-01-11 Hewlett-Packard Company Simultaneous use of database and durable store in work flow and process flow systems
US6035297A (en) * 1996-12-06 2000-03-07 International Business Machines Machine Data management system for concurrent engineering
US5907848A (en) * 1997-03-14 1999-05-25 Lakeview Technology, Inc. Method and system for defining transactions from a database log
US5987621A (en) * 1997-04-25 1999-11-16 Emc Corporation Hardware and software failover services for a file server
WO1999042934A2 (en) * 1998-02-20 1999-08-26 Storm Systems, Llc File system performance enhancement
US6289382B1 (en) * 1999-08-31 2001-09-11 Andersen Consulting, Llp System, method and article of manufacture for a globally addressable interface in a communication services patterns environment
US6389420B1 (en) * 1999-09-30 2002-05-14 Emc Corporation File manager providing distributed locking and metadata management for shared data access by clients relinquishing locks after time period expiration

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04361338A (ja) * 1991-06-10 1992-12-14 Nec Corp 取引ログデータ引継ぎ方式
KR930023848A (ko) * 1992-05-28 1993-12-21 세키자와 스토무 복합 시스템의 로그 파일 제어 시스템

Also Published As

Publication number Publication date
EP1089176A2 (en) 2001-04-04
EP1089176A3 (en) 2003-05-02
US6779001B1 (en) 2004-08-17
CN1153142C (zh) 2004-06-09
JP2001101044A (ja) 2001-04-13
KR20010050644A (ko) 2001-06-15
US20040236793A1 (en) 2004-11-25
TWI235923B (en) 2005-07-11
US7349927B2 (en) 2008-03-25
CN1289966A (zh) 2001-04-04

Similar Documents

Publication Publication Date Title
KR100396722B1 (ko) 트랜잭션에 의하여 복수개의 화일의 어토믹 갱신을실현하는 트랜잭션 화일 시스템
US11308071B2 (en) Update and query of a large collection of files that represent a single dataset stored on a blob store
US6311193B1 (en) Computer system
KR100398753B1 (ko) 효과적인 파일 갱신 처리 및 복구 처리를 이용하는트랜잭션 처리 시스템
US9183236B2 (en) Low level object version tracking using non-volatile memory write generations
EP1739535B1 (en) File system storing transaction records in flash-like media
JP5007350B2 (ja) ハードウェアベースのファイルシステムのための装置および方法
US8280858B2 (en) Storage pool scrubbing with concurrent snapshots
US8738845B2 (en) Transaction-safe fat file system improvements
US8156165B2 (en) Transaction-safe FAT files system
EP1744246B1 (en) File system having deferred verification of data integrity
JP4799936B2 (ja) 条件別スナップショット取得方法及びシステム
US6128630A (en) Journal space release for log-structured storage systems
EP1744247B1 (en) Optimized startup verification of file system integrity
CN103038767B (zh) 用于文件克隆的数据共享的方法和系统
JP5012628B2 (ja) メモリデータベース、メモリデータベースシステム及びメモリデータベース更新方法
CN1555527A (zh) 重组所存储的数据的系统和方法
US6684226B1 (en) Method for storing data in one or more files so that both previous and new versions of the data are separately accessible
JP4390618B2 (ja) データベース再編成プログラム、データベース再編成方法、及びデータベース再編成装置

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

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee