KR100921876B1 - 데이터 격납 시스템 및 데이터 격납 프로그램 - Google Patents

데이터 격납 시스템 및 데이터 격납 프로그램 Download PDF

Info

Publication number
KR100921876B1
KR100921876B1 KR1020097011526A KR20097011526A KR100921876B1 KR 100921876 B1 KR100921876 B1 KR 100921876B1 KR 1020097011526 A KR1020097011526 A KR 1020097011526A KR 20097011526 A KR20097011526 A KR 20097011526A KR 100921876 B1 KR100921876 B1 KR 100921876B1
Authority
KR
South Korea
Prior art keywords
block
aggregate
atomic
generation
data
Prior art date
Application number
KR1020097011526A
Other languages
English (en)
Other versions
KR20090077979A (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 KR20090077979A publication Critical patent/KR20090077979A/ko
Application granted granted Critical
Publication of KR100921876B1 publication Critical patent/KR100921876B1/ko

Links

Images

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
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/221Column-oriented storage; Management thereof
    • 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/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • 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/1474Saving, restoring, recovering or retrying in transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Indexing, Searching, Synchronizing, And The Amount Of Synchronization Travel Of Record Carriers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

아토믹성이 있는 데이터는 하드 디스크상의 블록에 격납된다. 블록은 하드 디스크상에만 존재하는 확정 블록 집합체(P1)와, 소정의 타이밍에서 확정 블록 집합체로 변환되는 차세대 확정 블록 집합체(C1)와, 확정 블록 집합체(C1)에 의거하여, 유저마다 작성되는 아토믹 블록 집합체(S3)를 포함한다. 유저(A)는, S3에 대해 소망하는 데이터의 변경 등을 행하고, 데이터 처리를 종료할 때에는, 데이터를 격납하는 블록의 집합체를 아토믹 블록 집합체(S4)로부터 확정 블록 집합체(C2)와 일체화시켜서 확정 블록 집합체(P3)로서 하드 디스크상에 격납한다.

Description

데이터 격납 시스템 및 데이터 격납 프로그램{DATA STORAGE SYSTEM AND DATA STORAGE PROGRAM}
본 발명은, 아토믹 트랜잭션(부분적으로 커미트할 수가 없는 트랜잭션이고, 완전히 실행되던지, 전혀 실행되지 않던지의 어느 하나밖에 없는)이 가능한 데이터 격납 시스템 및 데이터 격납 프로그램에 관한 것이다.
종래의 아토믹 트랜잭션이 가능한 데이터 격납 시스템이, 예를 들면, 일본 특개2006-106868호 공보(특허 문헌 1)에 개시되어 있다. 특허 문헌 1은, 파일 관리 시스템으로서, 로그 방식과 사이드 파일 방식이 있는 점, 및, 사이드 파일 방식의 섀도우 페이지 방식의 결점을 들음과 함께, 그것을 해결하는 파일 시스템이 개시되어 있다.
종래의 아토믹성을 갖는 데이터 격납 시스템은 상기한 바와 같이 구성되어 있다. 로그 방식의 파일 시스템이 유리하다고 기재되어 있지만, 로그 방식의 파일 시스템은 비용이 높다는 문제가 있다. 또한, 종래의 파일 시스템에서는, 복수의 유저가 액세스하는 하드 디스크와 같은 불휘발성 기록 매체에 있어서, 유저마다 제각기 사용된 파일에 관해, 어떤 유저가 어떤 파일을 확정하려고 하면, 다른 유저가 처리하고 있는 다른 파일도 동시에 확정되는 경우가 있기 때문에, 예를 들면, 전원 단(電源斷; power failure)시에, 개개의 유저의 의도하지 않는 데이터가 격납되고, 유저가 다른 유저의 처리의 영향을 받는다는 문제가 있다.
본 발명은, 상기한 바와 같은 문제를 해소하기 위해 이루어진 것으로, 아토믹 트랜잭션이 가능하고, 또한, 각 유저가 타인의 데이터 처리의 영향을 받지 않는 데이터 격납 시스템 및 데이터 격납 프로그램을 제공하는 것을 목적으로 한다.
본 발명에 관한 데이터 격납 시스템은, 복수의 유저가 액세스 가능한 데이터를 갖는 불휘발성 기록 매체의 데이터 격납 시스템이다. 데이터는 소정의 블록 내에 보존되고, 복수의 유저중의 1인이 블록을 처리중에는, 다른 유저는 처리중의 블록의 처리는 불능이다. 소정의 블록은, 각각이 개별적으로 마련된, 확정 블록과, 차세대 확정 블록과, 아토믹 블록을 포함하고, 확정 블록, 차세대 확정 블록, 및, 아토믹 블록은 각각이 복수 집합한, 확정 블록 집합체와, 차세대 확정 블록 집합체와, 아토믹 블록 집합체에 포함되고, 확정 블록 집합체는, 불휘발성 기록 매체상에만 존재하고, 확정 블록 집합체의 일부의 블록을 카피함에 의해 확정 블록 집합체로부터, 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 차세대 확정 블록 집합체를 형성하는 제 1 블록 형성 수단과, 차세대 확정 블록 집합체의 일부의 블록을 카피함에 의해, 차세대 확정 블록으로부터 유저마다, 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 아토믹 블록 집합체를 형성하는 제 2 블록 형성 수단과, 유저마다, 제 2 블록 형성 수단에 의해 형성된 아토믹 블록 집합체에 대해 아토믹성을 유지한 블록 집합체의 조작을 접수하는 블록 조작 접수 수단과, 블록 조작 접수 수단에 의한 조작이 종료된 아토믹 블록 집합체를 유저마다 아토믹성을 유지하면서, 블록 조작 접수 수단에 의해 수정을 접수한 블록을 차세대 확정 블록 집합체에 포함되는 수정 전의 블록과 치환함에 의해 차세대 확정 블록 집합체에 병합하는 병합 수단과, 병합 수단에 의해 병합된 차세대 확정 블록 집합체를 아토믹성을 유지한 상태로, 차세대 확정 블록 집합체에 포함되는 불휘발성 기록 매체 이외에 존재하는 모든 블록을, 불휘발성 기록 매체에 기록함에 의해, 확정 블록 집합체로 천이시키는 천이 수단을 포함한다.
또한, 여기서, 불휘발성 기록 매체상 이외의 장소란, RAM상(上), CPU의 일부에 마련된 캐시 등을 포함한다.
바람직하게는, 천이 수단은, 병합 수단에 의해, 복수의 아토믹 블록 집합체상에서 수정된 블록을 병합한 차세대 확정 블록 집합체를 확정 블록 집합체로 천이시킨다.
더욱 바람직하게는, 병합 수단은, 복수 병행하여 존재할 수 있는 아토믹 블록 집합체를, 임의의 타이밍에서 차세대 확정 블록 집합체에 병합한다.
천이 수단은, 아토믹성을 갖는 데이터를 격납한 확정 블록 집합체의 위치를 특정하는 아토믹 블록 위치 특정 수단을 포함하는 것이 바람직하다.
아토믹 블록 위치 특정 수단은, 각각이, 아토믹성을 갖는 데이터를 보존한 블록 집합체를 특정하는 블록 번호와, 잉크리먼트 카운터를 갖는, 한 쌍의 슈퍼 블록을 포함하고, 아토믹성을 갖는 데이터가 새로운 블록 집합체에 기록될 때마다, 한 쌍의 블록 번호중의 한쪽의 블록 번호 및 잉크리먼트 카운터의 값이 차례로 갱신되는 것이 바람직하다.
각각의 슈퍼 블록은, 한 쌍의, 아토믹성을 갖는 데이터를 보존한 블록 집합체를 특정하는 블록 번호와, 잉크리먼트 카운터를 가지며, 한 쌍의, 아토믹성을 갖는 데이터를 보존한 블록 집합체를 특정하는 블록 번호와, 잉크리먼트 카운터에는, 동일한 데이터가 격납되어도 좋다.
또한, 블록 집합체의 각각의 블록은, 블록 번호 관리 테이블을 포함하고, 블록 번호 관리 테이블은, 데이터가 격납된 물리적인 블록 번호와 블록 ID와의 관계를 격납하여도 좋다.
또한, 확정 블록 집합체, 차세대 확정 블록 집합체 및 아토믹 블록 집합체는 유저마다 변경이 가능한 데이터를 격납하는 유저 데이터 블록과, 유저 데이터 블록을 관리하는 블록 번호 관리 테이블을 포함하여도 좋다.
본 발명의 다른 국면에서는, 데이터 격납 프로그램은, 컴퓨터를, 복수의 유저가 액세스 가능한 데이터를 갖는 불휘발성 기록 매체의 데이터 격납 시스템으로서 작동시키는 데이터 격납 프로그램이다. 데이터는 소정의 블록 내에 보존되고, 복수의 유저중의 1인이 블록을 처리중에는, 다른 유저는 상기 처리중의 블록의 처리는 불능이고, 소정의 블록은, 각각이 개별적으로 마련된, 확정 블록과, 차세대 확정 블록과, 아토믹 블록을 포함하고, 확정 블록, 차세대 확정 블록, 및, 아토믹 블록은 각각이 복수 집합한, 확정 블록 집합체와, 차세대 확정 블록 집합체와, 아토믹 블록 집합체에 포함된다. 확정 블록 집합체는, 불휘발성 기록 매체상에만 존재한다. 프로그램은, 컴퓨터를, 확정 블록 집합체의 일부의 블록을 카피함에 의해 확정 블록 집합체로부터, 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 차세대 확정 블록 집합체를 형성하는 제 1 블록 형성 수단과, 차세대 확정 블록 집합체의 일부의 블록을 카피함에 의해, 차세대 확정 블록으로부터 유저마다, 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 아토믹 블록 집합체를 형성하는 제 2 블록 형성 수단과, 유저마다, 제 2 블록 형성 수단에 의해 형성된 아토믹 블록 집합체에 대해 아토믹성을 유지한 블록 집합체의 조작을 접수하는 블록 조작 접수 수단과, 블록 조작 접수 수단에 의한 조작이 종료된 아토믹 블록 집합체를 유저마다 아토믹성을 유지하면서, 블록 조작 접수 수단에 의해 수정을 접수한 블록을 차세대 확정 블록 집합체에 포함되는 수정 전의 블록과 치환함에 의해 차세대 확정 블록 집합체에 병합하는 병합 수단과, 병합 수단에 의해 병합된 차세대 확정 블록 집합체를 아토믹성을 유지한 상태로, 차세대 확정 블록 집합체에 포함되는 불휘발성 기록 매체 이외에 존재하는 모든 블록을, 불휘발성 기록 매체에 기록함에 의해, 확정 블록 집합체로 천이시키는 천이 수단으로서 작동시킨다.
아토믹 블록 집합체에 대해 유저가 기대하는 아토믹성을 유지한 블록의 조작을 접수하면, 아토믹 블록 집합체는 확정 블록 집합체에 아토믹성을 유지한 상태로 천이되어 확정된다.
그 결과, 아토믹 트랜잭션이 가능하고, 또한, 각 유저가 타인의 데이터 처리의 영향을 받지 않는 불휘발성 기록 매체용의 데이터 격납 시스템을 제공할 수 있다.
도 1은 본 발명에 관한 데이터 격납 시스템이 적용된 컴퓨터 시스템의 구성을 도시하는 블록도.
도 2는 데이터 격납 시스템의 위치 결정을 도시하는 도면.
도 3은 데이터 격납 시스템에서의 데이터를 격납하는 블록의 집합체의 존재 위치를 도시하는 도면.
도 4는 데이터 격납 시스템에서의 통상시의 처리를 도시하는 플로우 차트.
도 5는 시스템 초기화 처리의 내용을 도시하는 플로우 차트.
도 6은 슈퍼 블록 판정 처리 내용을 도시하는 플로우 차트.
도 7은 차세대 확정 블록 집합체 오픈 처리를 도시하는 플로우 차트. 시스템 종료 처리를 도시하는 플로우 차트.
도 8은 시스템 종료 처리를 도시하는 플로우 차트.
도 9는 아토믹 조작 시작 선언 및 아토믹 ID 취득 시스템을 도시하는 플로우 차트.
도 10은 아토믹 조작 종료 선언 처리를 도시하는 플로우 차트.
도 11은 새 블록 ID 취득 처리 내용을 도시하는 플로우 차트.
도 12는 블록 데이터 판독 처리 내용을 도시하는 플로우 차트.
도 13은 블록 데이터 기록 처리 내용을 도시하는 플로우 차트.
도 14는 블록 개방 처리 내용을 도시하는 플로우 차트.
도 15는 동기 처리 내용을 도시하는 플로우 차트.
도 16은 슈퍼 블록의 내용과 그 위치를 도시하는 도면.
도 17은 블록 집합체의 천이 상태를 도시하는 도면.
도 18은 블록 집합체의 천이에서의, 구체적인 물리 블록 번호 등의 변천례를 도시하는 도면.
도 19는 블록 집합체의 천이에서의, 구체적인 물리 블록 번호 등의 변천례를 도시하는 도면.
도 20은 블록 집합체의 천이에서의, 구체적인 물리 블록 번호 등의 변천례를 도시하는 도면.
도 21은 블록 집합체의 천이에서의, 구체적인 물리 블록 번호 등의 변천례를 도시하는 도면.
도 22는 블록 집합체의 천이에서의, 구체적인 물리 블록 번호 등의 변천례를 도시하는 도면.
도 23은 블록 집합체의 천이에서의, 구체적인 물리 블록 번호 등의 변천례를 도시하는 도면.
이하, 본 발명의 실시의 형태를, 도면을 참조하여 설명한다. 도 1은 본 발명에 관한 데이터 격납 시스템이 적용되는 컴퓨터 시스템의 구성을 도시하는 블록도이다. 도 1을 참조하면, 컴퓨터 시스템(10)은, 시스템 전체를 제어하는 CPU(Central Processing Unit)(11)와, CPU(11)에 버스(18)를 통하여 접속된 RAM(Random Access Memory)(12), 디스플레이(13), 키보드(14), 하드 디스크(15), 통신 장치(16)를 포함한다. 복수의 유저가 각각의 컴퓨터로부터 통신 장치(16)를 통하여 이 컴퓨터 시스템의 하드 디스크(15)에 액세스하는 것으로 한다.
도 2는 이 실시의 형태에서의 데이터 격납 시스템의 위치 결정을 도시하는 도면이다. 도 2를 참조하면, 데이터 격납 시스템은, 유저가 하드 디스크(15)를 이용하여 데이터를 격납하는 경우에 사용된다. 하드 디스크(15)는, 소정의 바이트 단위로 판독기록 가능(재기록 가능)하다. 이 시스템에서는, 하드 디스크(15)가 갖는 복수의 데이터 격납 블록에, 유저가 소망하는 데이터를 격납하는 것으로 하여 설명한다.
또한, 이 데이터 격납 시스템에서는, 데이터는 아토믹성을 갖고 있고, 개개의 유저가 파일을 닫을 때에는, 유저마다 파일은 아토믹성을 갖도록 하여 닫혀진다. 또한, 어떤 블록의 데이터를 어느 유저가 처리중에는, 다른 유저는 그 블록의 데이터를 처리할 수가 없다.
또한, 여기서, 하드 디스크(15)는, 판독중의 불의의 전원 단(power failure)에서는, 모든 블록의 상태에 아무런 영향을 주지 않고, 기록중의 불의의 전원 단에서는, 기록중이였던 단일한 블록만이 부정(否定)의 상태가 되고, 그 이외의 블록에는 영향을 주지 않는 것이 보증되는 복수의 블록을 갖는 것으로 한다.
도 3은, 이 실시의 형태에서의 데이터 격납 시스템에서의 데이터를 격납하는 블록의 집합체를 설명하기 위한 도면이다. 이 실시의 형태에서는, 각각의 블록 집합체는, 확정 블록 집합체, 차세대 확정 블록 집합체, 및, 아토믹 블록 집합체의 3개의 형태를 갖는다. 확정 블록 집합체란, 하드 디스크(15)상의 블록의 일부를 사용하고, 유저에게 있어서 의미가 있는 데이터를 격납한 복수의 유저 데이터 블록과 유저 데이터 블록을 관리하는 하나 이상의 관리 블록으로 구성되는 일관성이 취해진 블록의 집합체이다.
여기서, 유저 데이터 블록과 관리 블록에 관해서는 후술하지만, 도 18로 설명하는, 물리 블록 번호 PB2에 격납된 블록 번호 관리 테이블이, 관리 블록의 한 예이고, 유저의 데이터가 격납된 물리 블록 번호 PB3 등이 유저 데이터 블록의 한 예이다.
차세대 확정 블록 집합체는 하드 디스크(15)와 예를 들면, RAM(12)에 걸쳐서 존재하고, 확정 블록 집합체로 이전하는 준비가 되어 있는 상태를 말한다. 이것도 항상 하나만 존재한다. 이 블록 집합체는, 확정 블록 집합체에 포함되는 모든 블록을 결코 재기록 수정하지 않고, 수정할 필요가 있는 유저 데이터 블록 및 관리 블록만을, 하드 디스크(15)상의 확정 블록 집합체에 포함되지 않는 블록만을 사용하여 수정함으로써 일관성이 취해지는 상태를 만드는 것이 가능하다.
아토믹 블록 집합체는 하드 디스크(15)와 RAM(12)에 걸쳐서 존재한다. 트랜잭션에 대응하고, 트랜잭션 시작시에 차세대 확정 블록 집합체로부터 분기된다. 트랜잭션 종료시에 차세대 확정 블록 집합체에 변경 부분을 머지(합병)하고, 소멸한다. 복수 존재하여도 좋고, 존재하지 않아도 좋다.
즉, 이 블록은, 유저가 아토믹한 처리를 기대하는 하나 이상의 유저 데이터 블록에 대한 수정을, 확정 집합체이면서 차세대 확정 블록 집합체에 포함되지 않는, 하드 디스크(15)상의 블록을 사용하여 수정하고, 아토믹한 처리가 끝났던 시점에서, 그 수정한 모든 유저 데이터 블록을, 차세대 확정 블록 집합체의 관리 블록 의 수정만으로, 차세대 확정 블록 집합체의 구성 블록에 병합하는 것이 가능하다.
다음에, 데이터 격납 시스템에서의 CPU(11)의 동작에 관해 설명한다. 도 4 내지 도 15는 이 데이터 격납 시스템을 작동시키는 CPU(11)가 행하는 동작을 도시하는 플로우 차트이다.
도 4는, 이 실시의 형태에서의 데이터 격납 시스템에서의 통상시의 처리를 도시하는 플로우 차트이다. 도 4를 참조하면, 통상시는, 전원이 온 되면, 시스템이 초기화되고(스텝 S11, 이하, 스텝을 생략한다), 유저의 조작을 접수한다(S12). 이 유저의 처리는, 키보드(14) 등으로 행하여진다. 유저의 조작은, 아토믹 조작 시작 선언 및 아토믹 ID 취득(S14), 아토믹 조작 종료 선언(S15), 새 블록 ID 취득(S16), 블록 데이터 판독(S17), 블록 데이터 기록(S18), 블록 개방(S19), 또는, 동기(sync, S20)의 어느 하나를 포함한다. 이들의 처리를 종료하면, 시스템 종료 처리를 행하고(S21), 전원이 오프 된다.
여기서, 아토믹 조작 시작 선언란, 유저가 아토믹성을 유지하면서 데이터 처리를 시작하는 것을 말한다. 아토믹 ID란, 유저를 식별하기 위해 사용되는 것이다. 즉, 이 실시의 형태에서는, 아토믹 ID와 블록 ID를 이용하여 데이터가 격납된 블록을 특정한다. 또한, 블록 ID라는 것은, 하드 디스크(15)의 물리 블록 번호를 간접적으로 지시하는 것이다.
또한, 이 실시의 형태에서는, 동기 처리에 의해, 유저의 의사에 의한 임의의 타이밍에서, 작성된 데이터 등이, 하드 디스크(15)상에 격납된다.
또한, 여기서 도시한 유저의 복수의 조작중의 임의의 타이밍에서 전원 단이 생길 수 있다. 다음에, 도 4의 S11로 도시한 시스템 초기화 처리에 관해 설명한다. 도 5는 시스템 초기화 처리의 내용을 도시하는 플로우 차트이다. 도 5를 참조하면, 시스템 초기화 처리에서는, 우선, 슈퍼 블록 판정을 행하고(S111), 계속해서, 차세대 확정 블록 집합체 오픈 처리를 행한다(S112).
여기서, 슈퍼 블록에 관해 설명한다. 슈퍼 블록이란, 아토믹성을 갖는 데이터를 격납한 최신의 블록을 특정하기 위해 사용되는 한 쌍의 블록이다. 도 16에 슈퍼 블록의 한 예를 도시한다. 슈퍼 블록도 통상의 데이터와 마찬가지로, 하드 디스크(15)의 소정의 블록에 격납되어 있다. 여기서는, 이해의 용이를 위해, 하드 디스크(15)의 물리 블록 번호의 0과 1에 한 쌍의 슈퍼 블록(21, 22)이 격납되어 있는 예에 관해 설명한다.
슈퍼 블록(21, 22)은 하드 디스크(15)상의 물리 블록 번호 0, 1을 사용한다. 도 16에 도시하는 바와 같이 슈퍼 블록(21)은 각각 내부에 잉크리먼트 카운터와 블록 번호 관리 테이블이 놓여지는 블록의 물리 블록 번호와의 조(21a, 21b)를 2조 갖고 있다. 슈퍼 블록 22도 마찬가지이다. 데이터가 아토믹성을 갖고서 닫혀진 때에, CPU(11)는, 슈퍼 블록(21과 22)을 교대로 잉크리먼트 카운터를 증가시키면서 아토믹성을 갖는 데이터를 격납한 블록을 기록한다. 이 때, 동일한 데이터를 21a, 21b, 및, 22a, 22b에 차례로 기록한다.
따라서 기록중에 전원 단이 생긴 때에는, 슈퍼 블록(21a와 21b, 또는, 22a와 22b)에 기록된 데이터가 다른 것으로 된다. 따라서 슈퍼 블록(21a, 21b, 또는, 22a, 22b)의 데이터를 보면, 어느 슈퍼 블록에 기록된 블록 번호 관리 테이블의 물 리 블록 번호가 최신의 아토믹성이 있는 데이터를 관리하는 물리 블록 번호인지를 알 수 있다.
이 판정 처리에 관해 설명한다. 도 6은 슈퍼 블록 판정 처리 내용을 도시하는 플로우 차트이다. 도 6을 참조하면, 슈퍼 블록 판정 처리(S111)는, 제 1, 제 2의 슈퍼 블록 판독(S1111), 오류 판정을 행한다(S1112). 제 1의 슈퍼 블록에 오류가 있으면, 제 2의 슈퍼 블록 내에 있는 블록 번호의 물리 블록 번호를 확정 블록 집합체의 것으로 간주한다(S1113). 제 2의 슈퍼 블록에 오류가 있으면, 제 1의 슈퍼 블록 내에 있는 물리 블록 번호를 확정 블록 집합체의 것으로 간주한다(S1115). 함께 오류가 없으면, 잉크리먼트 카운터가 큰 쪽의 슈퍼 블록 내에 있는 물리 블록 번호를 확정 블록 집합체의 것으로 간주한다(S1114). 따라서 슈퍼 블록은, 블록 위치 특정 수단으로서 작동한다.
또한, 여기서, 양 슈퍼 블록에 오류가 있는 것은, 하드 디스크(15)가 미(未)포맷시(時)이거나, 물리적 장애 발생시뿐이다.
다음에, 도 5의 S112로 도시한 차세대 확정 블록 집합체 오픈 처리에 관해 설명한다. 도 7은 차세대 확정 블록 집합체 오픈 처리를 도시하는 플로우 차트이다. 도 7을 참조하면, 차세대 확정 블록 집합체 오픈 처리(S112)에서는, 모든 블록 집합체에서 사용하지 않는 물리 블록 번호를 탐색하고(S1121), 취득한 민 물리 블록 번호의 블록에, 확정 블록 집합체의 블록 번호 관리 테이블의 내용을 카피한다(S1122). 카피처(先)의 블록의 물리 블록 번호를, 차세대 확정 블록 집합체의 블록 번호 관리 테이블 위치로 하여, RAM상에 보존한다(S1123).
따라서 CPU(11)는, 확정 블록 집합체로부터 파생하고, 차세대 확정 블록 집합체를 형성하는 제 1 블록 형성 수단으로서 기능한다.
또한, 빈 블록 탐색의 비용을 내리기 위해, 확정 블록 집합체에서 사용중의 블록 번호를 관리하는 비트맵이, 하드 디스크(15)상에 보존되는 구성이 바람직하다.
다음에, 도 4의 S21로 도시한 시스템 종료 처리에 관해 설명한다. 도 8은 시스템 종료 처리를 도시하는 플로우 차트이다. 도 8을 참조하면, 시스템 종료 처리는 동기 처리(「sync」, S211)를 포함한다.
다음에, 도 4의 S14로 도시한 아토믹 조작 시작 선언 및 아토믹 ID 취득 시스템에 관해 설명한다. 도 9는 아토믹 조작 시작 선언 및 아토믹 ID 취득 처리를 도시하는 플로우 차트이다. 도 9를 참조하면, 아토믹 조작 시작 선언 및 아토믹 ID 취득 처리는, 모든 블록 집합체에서 사용하지 않는 물리 블록 번호를 탐색한다(S141). 취득한 빈 물리 블록 번호의 블록에, 차세대 확정 블록 집합체의 블록 번호 관리 테이블의 내용을 카피한다(S142). 카피처의 블록의 물리 블록 번호를, 그 아토믹 블록 집합체의 블록 번호 관리 테이블 위치로 하여, 아토믹 ID와 함께, RAM상에 보존한다(S143). 아토믹 ID를 유저에게 되돌린다(S144). 따라서 CPU(11)는, 차세대 확정 블록 집합체로부터 파생하고, 아토믹 블록 집합체를 형성하는, 제 2 블록 형성 수단으로서 기능한다.
다음에, 도 4의 S15로 도시한 아토믹 조작 종료 선언에 관해 설명한다. 도 10은 아토믹 조작 종료 선언 처리를 도시하는 플로우 차트이다. 도 10을 참조하면, 아토믹 조작 종료 선언 처리는, 유저로부터 지정되는 아토믹 ID에 대응하는 아토믹 블록 집합체에 대해 행하여진 모든 블록 조작(개방, 할당)을, 차세대 확정 블록 집합체의 블록 번호 관리 테이블에 반영한다(S151). RAM상에 보존하고 있는, 아토믹 ID와 블록 관리 테이블의 물리 블록 번호를 파기한다(S152). 따라서 CPU(11)는, 아토믹 블록 집합체에 대해 유저가 기대하는 아토믹성을 유지한 블록의 조작을 접수하는 블록 조작 접수 수단으로서 기능한다.
다음에, 도 4의 S16으로 도시한 새 블록 ID 취득 처리에 관해 설명한다. 도 11은 새 블록 ID 취득 처리 내용을 도시하는 플로우 차트이다. 도 11을 참조하면, 새 블록 ID 취득 처리에서는, 모든 블록 집합체에서, 미사용의 블록 ID를 탐색하고(S161), 모든 블록 집합체에서, 미사용의 물리 블록 번호를 탐색하고(S162), 블록 ID와 물리 블록 번호의 매핑 정보를, 유저로부터 지정되는 아토믹 ID에 대응하는 아토믹 블록 집합체의 블록 번호 관리 테이블에 기억하고(S163), 유저에게 블록 ID를 돌려 준다(S164).
다음에, 도 4의 S17로 도시한 블록 데이터 판독 처리에 관해 설명한다. 도 12는 블록 데이터 판독 처리 내용을 도시하는 플로우 차트이다. 도 12를 참조하면, 블록 데이터 판독 처리에서는, 유저로부터 지정되는 아토믹 ID에 대응하는 아토믹 블록 집합체의 블록 번호 관리 테이블을 판독하고, 지정되는 블록 ID에 대응하는 물리 블록 번호를 구한다(S171). 물리 블록 번호의 블록 데이터를 판독하고, 유저에게 돌려 준다(S172).
다음에, 도 4의 S18로 도시한 블록 데이터 기록 처리에 관해 설명한다. 도 13은 블록 데이터 기록 처리 내용을 도시하는 플로우 차트이다. 도 13을 참조하면, 블록 데이터 기록 처리에서는, 유저로부터 지정되는 아토믹 ID에 대응하는 아토믹 블록 집합체에 있어서, 지정되는 블록 ID의 블록이, 대상 아토믹 블록 집합체에서 카피 완료인지를 검사한다(S181, S182). 대상 아토믹 블록 집합체의 블록 번호 관리 테이블을 보고, 지정되는 블록 ID의 물리 블록 번호를 구한다(S183). 계속해서, 유저로부터 건네받는 데이터를, 구한 물리 블록 번호의 블록에 기록한다(S186).
S182에서 카피 완료가 아니면, 전 블록 집합체에서, 미사용의 물리 블록 번호를 탐색한다(S184). 대상 아토믹 블록 집합체의 블록 번호 관리 테이블에, 지정되는 블록 ID와 탐색한 물리 블록 번호의 매핑 정보를 등록한다(S185). 그 후, S186으로 이행한다.
다음에, 도 4의 S19로 도시한 블록 개방 처리에 관해 설명한다. 도 14는 블록 개방 처리 내용을 도시하는 플로우 차트이다. 도 14를 참조하면, 블록 개방 처리에서는, 지정되는 아토믹 ID에 대응하는 아토믹 블록 집합체의 블록 번호 관리 테이블로부터, 지정되는 블록 ID에 대응하는 엔트리를 삭제한다(S191).
다음에, 도 4의 S20으로 도시한 동기 처리에 관해 설명한다. 도 15는 동기 처리를 도시하는 플로우 차트이다. 도 15를 참조하면, 유저가 키보드(14) 등을 통하여 자신의 데이터 처리의 종료를 지시하면, 차세대 확정 블록 집합체의 블록 번호 관리 테이블을 보고, 차세대 확정 블록 집합체에 포함되는 모든 물리 블록 번호(관리용 블록도 포함한다)에 대해, RAM상의 캐시, 하드 디스크(15)가 갖는 캐시 등, 모든 캐시상의 데이터를 하드 디스크(15)상에 기록한다(S201).
이 「동기 처리」로서는, 유저가, 「아토믹 조작 종료 선언」 지시를 한 후, 명시적으로, 「동기 처리」를 행하는 경우와, CPU(11)가 자동으로 정기적으로 「동기 처리」를 행하는 경우가 있다. 전자의 방법이면, 유저는, 확실하게 자신의 처리를 확정 블록 집합체에 반영된 것을 보증할 수 있다. 후자는, 유저가 「아토믹 조작 종료 선언」 후에 「동기 처리」를 행하지 않았기 때문에, 차세대 확정 블록 집합체로 머무르고 있는 유저 블록을, 확정 블록 집합체로 확정시킨다. 후자의 처리이면 CPU(11)가 정기적으로 행하기 때문에, 유저의 개입은 불필요해지고, 전체로서의 처리의 효율화를 도모할 수 있다. 여기서는, 유저에게 선택에 의해 어느 하나가 실행되는 것으로 한다.
현재, 확정 블록용으로서 유효하지 않은 쪽의 슈퍼 블록에 대해, 유효한 슈퍼 블록의 잉크리먼트 카운터 값에 1 가산한 내용과, 차세대 확정 블록 집합체의 블록 번호 관리 테이블의 물리 블록 번호를 기록한다(S202). 뒤이어, 도 7로 도시한 차세대 확정 블록 집합체 오픈 처리를 행한다. 따라서 CPU(11)는, 조작 접수 수단이 유저로부터의 블록 조작을 접수한 때, 상기 아토믹 블록 집합체를 상기 확정 블록 집합체에 아토믹성을 유지한 상태로 천이시키는 천이 수단으로서 기능한다.
다음에, 구체적인, 블록 집합체의 천이에 관해 설명한다. 도 17은 블록 집합체의 천이 상태를 도시하는 도면이다. 도 17에서, 점선보다 아래가 하드 디스크(15)상에 존재하는 블록 집합체이고, 위가 하드 디스크(15) 이외의 RAM상 등의 장소에 존재하는 블록 집합체이다. 상기한 바와 같이, 확정 블록 집합체는 하드 디스크(15)상에만 존재한다. 시스템 초기화 처리중의 슈퍼 블록 판정에서, 아토믹성 을 갖는 확정 블록 집합체(P1)가, 하드 디스크(15)상에서 특정된다. 시스템 초기화 처리중의 차세대 확정 블록 집합체 오픈 처리에서, 확정 블록 집합체(P1)로부터 차세대 확정 블록 집합체(C1)가 작성된다.
여기서, 유저(A)가 아토믹 조작 시작 선언를 행하면, 아토믹 블록 집합체(S1)가 작성되고, 새 블록 ID 취득이나 블록 데이터가 판독, 기록, 블록의 개방 등의 처리에 의해, 아토믹 블록 집합체(S2)가 작성된다. 데이터 처리를 종료하고, 유저가 아토믹 조작 종료 선언를 행함으로써, 차세대 확정 블록 집합체(C2)가 생성되고, 유저가 명시적으로 지시하는 동기 처리(sync), 또는, CPU(11)에 의해 일정 시간마다 실행되는 동기 처리(sync)에 의해, 차세대 확정 블록 집합체(C2)는 확정 블록(P2)으로 이행되어 하드 디스크(15)상에 격납된다.
다음에, 복수의 유저(A와 B)가, 데이터 처리를 행하는 경우에 있어서의, 블록 집합체의 천이와, 그 경우의 구체적인 블록 ID 및 아토믹 ID와의 관계에 관해, 도 17부터 도 23을 참조하여 설명한다. 여기서, 아토믹 ID란, 후에 설명하는 도 19에서의, 유저(A)의 아토믹 블록 집합체나 유저(B)의 아토믹 블록 집합체를 유저가 식별하기 위한 식별 번호이다.
도 17에서의 확정 블록 집합체(P2)의 데이터를 유저(A)와 유저(B)가 아토믹 처리하는 것으로 한다. 도 18은 시스템 초기화 직후의 슈퍼 블록과, 확정 블록 집합체, 및 차세대 확정 블록 집합체의 상세를 도시하는 도면이다. 여기서는, 물리 블록 번호를 PB0, PB1, …, 블록 ID를 ID0, ID1, …와 같이 나타내고 있다. 여기서, 슈퍼 블록(PB0과 PB1)이란 도 18에 도시하는 바와 같은 값을 갖고 있는 것으로 한다. CPU(11)는 슈퍼 블록(PB0과 PB1)의 잉크리먼트 카운터의 값을 참조하여, 최신의 확정 블록 집합체를 갖는 슈퍼 블록은 PB0이라고 판단할 수 있기 때문에, 이 블록 번호 관리 테이블(PB2)을 사용한다. 여기서, PB2의 확정 블록 집합체의 관리 테이블은 51에 나타내는 내용을 갖고 있다. 테이블(51)은 블록(ID0)에 PB3, ID1에 PB4, ID2에 PB5를 물리 블록 번호로서 격납하고 있다. 도 18에는 각각의 물리 블록(PB3부터 PB5)이 어느 유저의 데이터 블록인지, 및 블록 ID도 나타내고 있다.
이 상태로부터 CPU(11)가 차세대 확정 블록 집합체(C2)를 작성할 때는, 그를 위해, 그때까지 사용되지 않은 물리 블록인 물리 블록(PB6)을 이용하여 확정 블록 집합체의 블록 번호 관리 테이블(51)을 카피한 차세대 확정 블록 집합체 블록 번호 관리 테이블(52)을 작성한다.
다음에, 유저(A)는 자신의 데이터의 변경을 지시하면, 아토믹 블록 집합체(S3)가 작성된다. 이 때, 도 19에 도시하는 바와 같이, 차세대 확정 블록 집합체 블록 번호 관리 테이블(52)을 카피한 유저(A)에 대한 아토믹 블록 집합체 블록 번호 관리 테이블(53)이 작성된다. 여기서도, 이 아토믹 블록 집합체 관리 테이블(53)은, 지금까지 사용되지 않은 물리 블록(PB7)에 작성된다.
한편, 유저(B)도 자신의 데이터의 변경을 지시하면, 아토믹 블록 집합체(S5)가 작성된다. 이 때, 도 19에 도시하는 바와 같이, 차세대 확정 블록 집합체 블록 번호 관리 테이블(52)을 카피한 유저(B)에 대한 아토믹 블록 집합체 블록 번호 관리 테이블(54)이 작성된다. 여기서도, 이 아토믹 블록 집합체 관리 테이블(54)도, 지금까지 사용되지 않은 물리 블록(PB8)에 작성된다.
유저(A)에 의한 블록(ID0) 및 하나의 수정 직후의 차세대 확정 블록 집합체와 아토믹 블록 집합체와의 상세를 도 20에 도시한다. 유저(A)는, 물리 블록(PB9 및 PB10)에 PB3 및 PB4의 데이터를 카피하여 수정한다. 그 결과, 유저(A)에 대한 아토믹 블록 집합체 관리 테이블(53)은, 아토믹 블록 집합체 관리 테이블(55)로 변경되고 물리 블록(PB7)에 격납된다.
유저(B)에 의한 블록(ID2)의 수정 직후의 차세대 확정 블록 집합체와 아토믹 블록 집합체와의 상세를 도 21에 도시한다. 유저(B)는, 물리 블록(PB11)에 PB5의 데이터를 카피하여 수정한다. 그 결과, 유저(B)에 대한 아토믹 블록 집합체 관리 테이블(54)은, 아토믹 블록 집합체 관리 테이블(56)로 변경되고 물리 블록(PB8)에 격납된다.
이상과 같은 데이터 처리를 행한 후에, 유저(A)가 아토믹 조작 종료 선언하면, 차세대 확정 블록 집합체(C3)가 작성된다. 이 유저(A)에 의한 아토믹 조작 종료 선언 직후의 차세대 확정 블록 집합체의 상세를 도 22에 도시한다. 차세대 확정 블록 집합체(C3)는 도면에서, 타원형으로 둘러싼, 차세대 확정 블록 집합체 블록 번호 관리 테이블과, 유저(A)의 데이터 블록(1, 2)과, 유저(B)의 데이터 블록(1)을 포함하고, 물리 블록(PB6)에 격납된 차세대 확정 블록 집합체 블록 번호 관리 테이블은 55와 같이 된다.
여기서, 동기 처리가 행하여지면, 확정 블록 집합체(P3)가 작성된다. 도 23은 동기 처리에서의 슈퍼 블록과 확정 블록 집합체의 상세를 도시하는 도면이다. 도 23에 도시하는 바와 같이, 차세대 확정 블록 집합체는 그대로 확정 블록 집합체 로 이행됨과 함께, 슈퍼 블록(2)의 잉크리먼트 카운터가 슈퍼 블록(1)의 잉크리먼트 카운터보다 하나 업되여 11이 되고, 여기서 확정된 확정 블록 집합체 블록 번호 관리 테이블을 격납한 물리 블록 번호인 PB6이 블록 번호 관리 테이블의 물리 블록 번호로서 격납된다.
이와 같이, 이 실시의 형태에서는, 데이터를 변경 등 할 때는, 항상, 그때까지 사용되지 않은 블록 번호에, 새로운 데이터를 카피하면서 행하고, 아토믹 처리의 종료시에 그 위치를 블록 번호 관리 테이블에 격납하도록 하였기 때문에, 그 블록 번호를 이용하여 하드 디스크상에 확정 블록 집합체의 데이터를 격납할 수 있다. 또한, 어떤 타이밍에서, 전원 단이 생겨도, 반드시, 원래의 데이터는 확실하게 보호된다.
또한, 각각의 블록 집합체에서 변경이 없는 블록은, 블록 집합체 사이에서 공유하여 소유되는 것으로 한다.
다음에, 유저의 처리중에 전원 단이 생긴 때의 하드 디스크(15)의 상태에 관해 설명한다. 도 17에 도시한 블록 집합체의 천이를 도시하는 도면에서, 시각(t1, t2, t3, t4)의 각각에서 전원 단이 생긴 때의 상태에 관해 설명한다.
(1) 시각(t1)에서, 전원 단(斷)이 생긴 때
도 17을 참조하면, 데이터 격납 시스템이 초기화되어 차세대 확정 블록 집합체(C1)가 형성되고, 유저가 아토믹 블록 집합체(S1)을 이용하여, 데이터 처리를 시작한 단계에서 전원 단이 생긴 경우이다.
이 경우, 하드 디스크(15)상에 확정하고 있는 것은 확정 블록 집합체(P1)뿐 이고, 그 이후에 확정 블록 집합체에 기록된 데이터는 없다. 따라서 슈퍼 블록의 잉크리먼트 카운터나 블록 번호는 재기록되어 있지 않다.
따라서 이 상태에서 복귀한 때는, 같은 확정 블록 집합체(P1)로 확정되어 있는 슈퍼 블록의 데이터가 사용된다.
(2)시각(t2)에서, 전원 단이 생긴 때
유저(A)가 아토믹 블록 집합체(S3)를 이용하여 데이터를 기록하고, 다른 유저(B)가 아토믹 블록 집합체(S5)를 이용하여 데이터를 기록하고 있는 한창중에 전원 단이 생긴 경우이다. 이 경우는, 하드 디스크(15)상에는 CPU(11)가 자동적으로 동기 처리를 행한 확정 블록 집합체(P2)가 기록되어 있다.
따라서 이 상태에서 복귀한 때는, 확정 블록 집합체(P2)로 확정되어 있는 슈퍼 블록의 데이터가 사용된다.
(3) 시각(t3)에서, 전원 단이 생긴 때
유저(A)는 아토믹 블록 집합체(S4)에, 아토믹한 데이터 처리를 마치고, 아토믹 조작 종료 선언를 행함으로써, 처리한 블록이 차세대 확정 블록 집합체(C3)으로서 병합되고, 유저가 명시적, 또는 시스템이 자동적으로 행하는 동기 처리에 의해, C3은, 확정 블록 집합체(P3)로 천이하고, 유저(B)는, 아토믹 블록 집합체(S6)에 대한 처리를 행하고 있는 한창중에, 전원 단이 생긴 경우이다. 이 경우는 유저(A)의 데이터는, 동기 처리에 의해 확정 블록 집합체(P3)로서 하드 디스크상에 확정하여 있다. 그러나, 유저(B)는 이와 같은 처리를 하고 있지 않기 때문에, 아토믹 블록 집합체(S6)는 소실한다.
이 상태에서 복귀한 때는, 확정 블록 집합체(P3)로 확정되어 있는 슈퍼 블록의 데이터가 사용된다.
(4) 시각(t4)에서, 전원 단이 생긴 때
유저(B)가 처리를 종료한 단계에서 전원 단이 생긴 경우이다. 이 상태에서 복귀한 때는, 확정 블록 집합체(P3)로 확정되어 있는 슈퍼 블록의 데이터가 사용된다.
이상과 같이, 이 실시의 형태에서는, 복수의 유저가 각각의 데이터의 처리중에 돌연의 전원 단이 생겨도, 다음번의 전원 투입시는, 정상적인 상태로서 시스템의 초기화 처리를 할 수가 있고, 유저가, 자신의 소망하는 타이밍에서 자신의 데이터를 확정 블록 집합체로서 하드 디스크(15)상에 확정할 수 있기 때문에, 병행하여 처리를 행하는 복수의 유저가 기대하는, 처리의 아토믹성을 유지할 수 있음과 함께, 전원 단시에 타인의 영향을 받는 일은 없다.
또한, 데이터의 확정을 서두르지 않는 유저는, 명시적으로 동기 처리는 행하지 않고, 시스템이 정기적으로 행하는 동기 처리에 맡김에 의해, 시스템 전체의 퍼포먼스를 올리는 것이 가능해진다.
또한, 상기 실시의 형태에서는, 불휘발성 기록 매체로서, 하드 디스크를 이용한 경우에 관해 설명하였지만, 이것으로 한하지 않고, 플래시 메모리를 포함하는, 임의의 불휘발성 기록 매체에 적용할 수 있다.
또한, 상기 실시의 형태에서는, 아토믹성을 갖는 데이터를 구성하는 블록을 검출하기 위해, 한 쌍의 슈퍼 블록을 이용한 경우에 관해 설명하였지만, 이것으로 한하지 않고, 하드 디스크의 블록에 기록된 것, 블록이 완전히 기록된 것을 보증할 수 있는 구조(예를 들면, 전데이터의 체크 섬을 취하는)라면 임의의 방법을 이용할 수 있다.
또한, 상기 실시의 형태에서는, 복수의 유저가 액세스하는 데이터 격납 시스템에 관해 설명하였지만, 여기서 말하는 복수의 유저란, 하드 디스크상에 격납되어 있는 복수의 프로그램이 RAM상에 판독되고 CPU에서 병렬로 처리되는 경우에, 복수의 프로그램도 포함한 것으로 한다.
또한, 상기 실시의 형태에서는, 각 블록 집합체에 포함되는 블록 번호 관리 테이블은, 단일한 블록안에 수속되는 것으로 하여 설명하였지만, 단일한 블록에 수속되지 않는 경우는, 복수의 블록에 블록 번호 관리 테이블을 구성하고, 그것을 트리 구조로 관리함으로써, 용이하게 확장할 수 있다.
이상, 도면을 참조하여 본 발명의 실시 형태를 설명하였지만, 본 발명은, 도시한 실시 형태의 것으로 한정되지 않는다. 도시된 실시 형태에 대해, 본 발명과 동일한 범위 내에서, 또는 균등한 범위 내에서, 여러가지의 수정이나 변형을 가하는 것이 가능하다.
본 발명에 관한 데이터 격납 시스템은, 아토믹 트랜잭션이 가능하고, 또한, 각 유저가 타인의 데이터 처리의 영향을 받지 않기 때문에, 불휘발성 기록 매체용의 데이터 격납 시스템으로서 유리하게 이용된다.

Claims (9)

  1. 복수의 유저가 액세스 가능한 데이터를 갖는 불휘발성 기록 매체의 데이터 격납 시스템으로서,
    상기 데이터는 소정의 블록 내에 보존되고,
    복수의 유저중의 1인이 상기 블록을 처리중에는, 다른 유저는 상기 처리중의 블록의 처리는 불능이고,
    상기 소정의 블록은, 각각이 개별적으로 마련된, 확정 블록과, 차세대 확정 블록과, 아토믹 블록을 포함하고,
    상기 확정 블록, 상기 차세대 확정 블록, 및, 상기 아토믹 블록은 각각이 복수 집합한, 확정 블록 집합체와, 차세대 확정 블록 집합체와, 아토믹 블록 집합체에 포함되고,
    상기 확정 블록 집합체는, 상기 불휘발성 기록 매체상에만 존재하고,
    상기 확정 블록 집합체의 일부의 블록을 카피함에 의해 상기 확정 블록 집합체로부터, 상기 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 상기 차세대 확정 블록 집합체를 형성하는 제 1 블록 형성 수단과,
    상기 차세대 확정 블록 집합체의 일부의 블록을 카피함에 의해, 상기 차세대 확정 블록으로부터 유저마다, 상기 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 상기 아토믹 블록 집합체를 형성하는 제 2 블록 형성 수단과,
    유저마다, 상기 제 2 블록 형성 수단에 의해 형성된 상기 아토믹 블록 집합 체에 대해 아토믹성을 유지한 블록 집합체의 조작을 접수하는 블록 조작 접수 수단과,
    상기 블록 조작 접수 수단에 의한 조작이 종료된 아토믹 블록 집합체를 유저마다 아토믹성을 유지하면서, 상기 블록 조작 접수 수단에 의해 수정을 접수한 블록을 상기 차세대 확정 블록 집합체에 포함되는 수정 전의 블록과 치환함에 의해 상기 차세대 확정 블록 집합체에 병합하는 병합 수단과,
    상기 병합 수단에 의해 병합된 차세대 확정 블록 집합체를 아토믹성을 유지한 상태로, 상기 차세대 확정 블록 집합체에 포함되는 상기 불휘발성 기록 매체 이외에 존재하는 모든 블록을, 상기 불휘발성 기록 매체에 기록함에 의해, 상기 확정 블록 집합체로 천이시키는 천이 수단을 포함하는 것을 특징으로 하는 데이터 격납 시스템.
  2. 제 1항에 있어서,
    상기 천이 수단은, 상기 병합 수단에 의해, 복수의 아토믹 블록 집합체상에서 수정된 블록을 병합한 차세대 확정 블록 집합체를 상기 확정 블록 집합체로 천이시키는 것을 특징으로 하는 데이터 격납 시스템.
  3. 제 2항에 있어서,
    상기 병합 수단은, 복수 병행하여 존재할 수 있는 아토믹 블록 집합체를, 임의의 타이밍에서 차세대 확정 블록 집합체에 병합하는 것을 특징으로 하는 데이터 격납 시스템.
  4. 제 1항에 있어서,
    상기 천이 수단은, 아토믹성을 갖는 데이터를 격납한 확정 블록 집합체의 위치를 특정하는 아토믹 블록 위치 특정 수단을 포함하는 것을 특징으로 하는 데이터 격납 시스템.
  5. 제 4항에 있어서,
    상기 아토믹 블록 위치 특정 수단은, 각각이, 아토믹성을 갖는 데이터를 보존한 블록 집합체를 특정하는 블록 번호와, 잉크리먼트 카운터를 갖는, 한 쌍의 슈퍼 블록을 포함하고,
    아토믹성을 갖는 데이터가 새로운 블록 집합체에 기록될 때마다, 상기 한 쌍의 블록 번호중의 한쪽의 블록 번호 및 잉크리먼트 카운터의 값이 차례로 갱신되는 것을 특징으로 하는 데이터 격납 시스템.
  6. 제 5항에 있어서,
    상기 각각의 슈퍼 블록은, 한 쌍의, 아토믹성을 갖는 데이터를 보존한 블록 집합체를 특정하는 블록 번호와, 잉크리먼트 카운터를 가지며,
    상기 한 쌍의, 아토믹성을 갖는 데이터를 보존한 블록 집합체를 특정하는 블록 번호와, 잉크리먼트 카운터에는, 동일한 데이터가 격납되는 것을 특징으로 하는 데이터 격납 시스템.
  7. 제 1항에 있어서,
    상기 블록 집합체의 각각의 블록은, 블록 번호 관리 테이블을 포함하고, 상기 블록 번호 관리 테이블은, 데이터가 격납되는 물리적인 블록 번호와 블록 ID와의 관계를 격납하는 것을 특징으로 하는 데이터 격납 시스템.
  8. 제 1항에 있어서,
    상기 확정 블록 집합체, 상기 차세대 확정 블록 집합체 및 상기 아토믹 블록 집합체는 유저마다 변경이 가능한 데이터를 격납하는 유저 데이터 블록과, 상기 유저 데이터 블록을 관리하는 블록 번호 관리 테이블을 포함하는 것을 특징으로 하는 데이터 격납 시스템.
  9. 컴퓨터를, 복수의 유저가 액세스 가능한 데이터를 갖는 불휘발성 기록 매체의 데이터 격납 시스템으로서 작동시키는 데이터 격납 프로그램으로서,
    상기 데이터는 소정의 블록 내에 보존되고,
    복수의 유저중의 1인이 상기 블록을 처리중에는, 다른 유저는 상기 처리중의 블록의 처리는 불능이고,
    상기 소정의 블록은, 각각이 개별적으로 마련된, 확정 블록과, 차세대 확정 블록과, 아토믹 블록을 포함하고,
    상기 확정 블록, 상기 차세대 확정 블록, 및, 상기 아토믹 블록은 각각이 복수 집합한, 확정 블록 집합체와, 차세대 확정 블록 집합체와, 아토믹 블록 집합체에 포함되고,
    상기 확정 블록 집합체는, 상기 불휘발성 기록 매체상에만 존재하고,
    상기 프로그램은, 컴퓨터를,
    상기 확정 블록 집합체의 일부의 블록을 카피함에 의해 상기 확정 블록 집합체로부터, 상기 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 상기 차세대 확정 블록 집합체를 형성하는 제 1 블록 형성 수단과,
    상기 차세대 확정 블록 집합체의 일부의 블록을 카피함에 의해, 상기 차세대 확정 블록으로부터 유저마다, 상기 불휘발성 기록 매체와 그 이외에 걸쳐서 존재하는 것이 가능한 상기 아토믹 블록 집합체를 형성하는 제 2 블록 형성 수단과,
    유저마다, 상기 제 2 블록 형성 수단에 의해 형성된 상기 아토믹 블록 집합체에 대해 아토믹성을 유지한 블록 집합체의 조작을 접수하는 블록 조작 접수 수단과,
    상기 블록 조작 접수 수단에 의한 조작이 종료된 아토믹 블록 집합체를 유저마다 아토믹성을 유지하면서, 상기 블록 조작 접수 수단에 의해 수정을 접수한 블록을 상기 차세대 확정 블록 집합체에 포함되는 수정 전의 블록과 치환함에 의해 상기 차세대 확정 블록 집합체에 병합하는 병합 수단과,
    상기 병합 수단에 의해 병합된 차세대 확정 블록 집합체를 아토믹성을 유지한 상태로, 상기 차세대 확정 블록 집합체에 포함되는 상기 불휘발성 기록 매체 이 외에 존재하는 모든 블록을, 상기 불휘발성 기록 매체에 기록함에 의해, 상기 확정 블록 집합체로 천이시키는 천이 수단으로서 작동시키는 것을 특징으로 하는 데이터 격납 프로그램.
KR1020097011526A 2007-11-28 2008-11-04 데이터 격납 시스템 및 데이터 격납 프로그램 KR100921876B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2007307639A JP4210318B1 (ja) 2007-11-28 2007-11-28 データ格納システムおよびデータ格納プログラム
JPJP-P-2007-307639 2007-11-28

Publications (2)

Publication Number Publication Date
KR20090077979A KR20090077979A (ko) 2009-07-16
KR100921876B1 true KR100921876B1 (ko) 2009-10-13

Family

ID=40325720

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011526A KR100921876B1 (ko) 2007-11-28 2008-11-04 데이터 격납 시스템 및 데이터 격납 프로그램

Country Status (6)

Country Link
US (1) US8055853B2 (ko)
EP (1) EP2216721A4 (ko)
JP (1) JP4210318B1 (ko)
KR (1) KR100921876B1 (ko)
CN (2) CN101981547B (ko)
WO (1) WO2009069436A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424030B (zh) * 2013-08-22 2020-01-14 腾讯科技(深圳)有限公司 多进程操作共享内存的方法和装置
JP6256606B2 (ja) * 2014-06-24 2018-01-10 株式会社島津製作所 分析装置管理システム
CN104778223B (zh) * 2015-03-25 2018-08-21 广州多益网络股份有限公司 一种手游房屋的数据模型建立方法及装置
US20190155507A1 (en) * 2017-11-21 2019-05-23 Silicon Motion Inc. Method for performing system backup in a memory device, associated memory device and controller thereof, and associated electronic device

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
JP2006012153A (ja) 2004-06-29 2006-01-12 Microsoft Corp 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)
JP2006106868A (ja) 2004-09-30 2006-04-20 Toshiba Corp ファイル管理機能を備えたファイルシステム及びファイル管理方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5414840A (en) * 1992-06-25 1995-05-09 Digital Equipment Corporation Method and system for decreasing recovery time for failed atomic transactions by keeping copies of altered control structures in main memory
US7526599B2 (en) * 2002-10-28 2009-04-28 Sandisk Corporation Method and apparatus for effectively enabling an out of sequence write process within a non-volatile memory system
US7174440B2 (en) * 2002-10-28 2007-02-06 Sandisk Corporation Method and apparatus for performing block caching in a non-volatile memory system
TWI254947B (en) * 2004-03-28 2006-05-11 Mediatek Inc Data managing method and data access system for storing all management data in a management bank of a non-volatile memory
US7257690B1 (en) * 2004-10-15 2007-08-14 Veritas Operating Corporation Log-structured temporal shadow store
US7516268B2 (en) * 2005-08-01 2009-04-07 Infortrend Technology, Inc. Method for improving writing data efficiency and storage subsystem and system implementing the same

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07175700A (ja) * 1993-12-20 1995-07-14 Fujitsu Ltd データベース管理方式
JP2006012153A (ja) 2004-06-29 2006-01-12 Microsoft Corp 同時トランザクション(concurrenttransactions)とページ同期(pagesynchronization)
JP2006106868A (ja) 2004-09-30 2006-04-20 Toshiba Corp ファイル管理機能を備えたファイルシステム及びファイル管理方法

Also Published As

Publication number Publication date
JP4210318B1 (ja) 2009-01-14
US8055853B2 (en) 2011-11-08
US20110022813A1 (en) 2011-01-27
CN104063185B (zh) 2018-05-15
EP2216721A4 (en) 2011-02-23
CN104063185A (zh) 2014-09-24
JP2009134346A (ja) 2009-06-18
CN101981547B (zh) 2014-07-16
WO2009069436A1 (ja) 2009-06-04
KR20090077979A (ko) 2009-07-16
EP2216721A1 (en) 2010-08-11
CN101981547A (zh) 2011-02-23

Similar Documents

Publication Publication Date Title
CN103744961B (zh) 用可重构的文件系统目录树提高非易失性存储寿命的方法
US9773017B2 (en) Method of configuring a virtual application
US10248556B2 (en) Forward-only paged data storage management where virtual cursor moves in only one direction from header of a session to data field of the session
CN1983266B (zh) 闪速类介质中存储事务记录的文件系统
EP3103025B1 (en) Content based organization of file systems
KR20210057835A (ko) 압축한 키-값 저장소 트리 데이터 블록 유출
US7809777B2 (en) File system having deferred verification of data integrity
US7970803B2 (en) Optimized startup verification of file system integrity
US8176009B2 (en) Performing a pre-update on a non volatile memory
KR100921876B1 (ko) 데이터 격납 시스템 및 데이터 격납 프로그램
EP2452275A1 (en) Method and device for a memory system
KR20130030237A (ko) 비휘발성 메모리를 갖는 시스템에 대한 비정상 셧다운의 핸들링
US20090112951A1 (en) Apparatus and method of managing files and memory device
CN105988899B (zh) 实现数据缓存的方法和装置
JP4962483B2 (ja) 情報処理装置
KR101456104B1 (ko) 비휘발성 메모리를 위한 듀얼 버퍼링 파일 관리 방법, 파일 관리 시스템 및 대용량 저장 장치
US12014070B2 (en) Method, device, and computer program product for storage management
US20220100415A1 (en) Method, device, and computer program product for storage management
Srivastava Extremely fast (a, b)-trees at all contention levels
JP6644427B2 (ja) Fatファイルシステム及びそのプログラム
WO2019204853A1 (en) Filesystems
JPWO2004031957A1 (ja) データベース複製方法、データベース複製装置、データベース創成方法およびデータベース創成装置
KR20160056694A (ko) 테이블스페이스 속성 변경 방법 및 그 장치

Legal Events

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

Payment date: 20120723

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20130913

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20140805

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150806

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20160804

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20170807

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180809

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20190808

Year of fee payment: 11