WO2022114899A1 - 다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치 - Google Patents

다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치 Download PDF

Info

Publication number
WO2022114899A1
WO2022114899A1 PCT/KR2021/017784 KR2021017784W WO2022114899A1 WO 2022114899 A1 WO2022114899 A1 WO 2022114899A1 KR 2021017784 W KR2021017784 W KR 2021017784W WO 2022114899 A1 WO2022114899 A1 WO 2022114899A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage
block
file
transaction
inode
Prior art date
Application number
PCT/KR2021/017784
Other languages
English (en)
French (fr)
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 WO2022114899A1 publication Critical patent/WO2022114899A1/ko

Links

Images

Classifications

    • 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
    • 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
    • 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/461Saving or restoring of program or task context
    • G06F9/463Program control block organisation

Landscapes

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

Abstract

호스트의 파일 시스템이, 복수 개의 파일들 각각에 대하여, 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계 및 상기 파일 시스템이, 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계를 포함하는 다중파일 트랜잭션 방법을 공개한다.

Description

다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치
본 발명은 컴퓨팅 기술에 관한 것으로서, 특히 파일 시스템이 트랜잭션 기능을 지원할 때, 트랜잭션이 수정하는 다수의 파일을 관리하는 기법에 관한 것이다.
원자적으로 실행되는 다수의 쓰기연산의 집합을 트랜잭션이라 정의한다. 종래의 로그기반 파일 시스템들 중에 트랜잭션을 지원하는 파일 시스템이 존재한다. F2FS와 BTRFS등이 그것이다. 종래 로그기반 파일 시스템의 트랜잭션은 단일파일에 대한 쓰기 연산만을 지원한다.
로그 기반 파일 시스템은 변경된 파일 내용을 기록할 때, 기존 위치에 변경된 내용을 덮어쓰는 것이 아니라, 새로운 블럭을 할당받아, 변경된 내용을 기록하고, 파일의 각블럭 위치에 참조정보(파일 맵)를 새로운 블럭을 가리키도록 갱신한다. 갱신된 참조 정보도 새로운 블럭을 할당 받아 기록한다.
파일에 관련된 일련의 정보를 나타내는 자료구조를 아이노드라 한다. 아이노드에는 파일의 크기, 접근권한에 대한 정보, 파일에 속한 각 블럭의 디스크 상에서의 위치 등이 존재한다. 아이노드에는 해당 아이노드의 내용이 최신임을 나타내기 위한 비트가 존재한다. 이를 본 명세서에서 복구비트라 고 지칭할 수 있다. F2FS 파일 시스템의 경우는 해당 비트를 FSYNC_BIT라 한다. 시스템이 크래쉬 되었을 경우, 복구 모듈은 디스크를 스캔하게 된다. 스캔하는 과정에서 복구비트가 '1'로 설정되어 있는 아이노드를 발견하게 되면, 복구 모듈은 해당 아이노드에 저장된 정보를 최신정보로 간주하고, 해당 내용을 반영하여 시스템을 복구한다.
트랜잭션 기능을 지원하는 종래 기술은 트랜잭션 시작 시스템 콜과 트랜잭션 커밋 시스템 콜을 제공한다. 두 시스템 콜의 인자는 파일이다. 정확히는, 사용자 애플리케이션(사용자)이 파일을 열었을 때 파일마다 부여 받는 파일 디스크립터를 인자로 갖는다. 사용자가 트랜잭션 시작 시스템 콜을 호출하면 인자로 전달받은 파일의 변경 사항들이 트랜잭션에 추가된다. 변경 사항을 다루는 단위는 저장장치의 내용을 메모리에 캐싱하는 단위인 페이지다. 즉, 사용자가 트랜잭션 시작 시스템 콜을 호출하면 인자로 전달받은 파일의 변경된 페이지들이 트랜잭션에 추가된다. 사용자가 트랜잭션 커밋 시스템 콜을 호출하면 트랜잭션에 포함된 모든 페이지가 저장장치에 반영된다.
종래 기술에서의 단일 파일 트랜잭션은 트랜잭션의 원자성 보장을 위해 트랜잭션의 페이지 쓰기와 아이노드 쓰기 간의 순서를 보장한다. 이 때, 페이지와의 쓰기 순서를 보장하는 대상은 아이노드가 아닌 페이지들의 저장장치 상 위치를 갖는 참조 정보를 갖는 다른 자료구조일 수도 있다. 종래 기술에서는 해당 자료구조와 아이노드를 통칭하여 노드라고 한다. 노드를 여러 개 쓰는 경우, 가장 마지막으로 쓰는 노드에만 복구 비트를 저장하고 나머지 페이지들과 노드들 이후에 써지도록 쓰기 순서를 강제한다. 쓰기 순서가 보장되면 트랜잭션이 전부 써졌을 때만 복구 모듈이 복구 비트를 발견하고 복구한다. 트랜잭션의 내용이 전부 써졌을 때만 파일 시스템에 트랜잭션 내용이 반영되므로 원자성이 보장된다.
종래 기술은 아이노드와 트랜잭션 내용 간의 쓰기 순서를 강제함으로써 원자성을 보장한다. 다중파일 트랜잭션은 다수의 아이노드를 써야 한다. 다중파일 트랜잭션이란 원자적으로 수행되는 다수의 파일에 대한 쓰기 요청의 집합이다. 다중파일 트랜잭션은 내용뿐만 아니라 아이노드들 쓰기의 원자성도 보장해야 한다. 아이노드들이 전부 써졌을 때만 트랜잭션 내용들을 복구해야 한다.
로그 기반 파일 시스템에서, 종래 기술은 단일 아이노드만으로 트랜잭션의 완료 여부를 확인하기 때문에 다중파일 트랜잭션의 원자성을 보장할 수 없다는 문제가 있다.
본 발명에서는, 다중파일 트랜잭션의 커밋을 가능하게 하는 로그 기반 파일 시스템을 제공하고자 한다.
본 발명의 일 관점에 따라, 로그 기반 파일 시스템에서 다중파일 트랜잭션을 커밋하는 방법과 그 장치가 제공될 수 있다. 구체적으로는, 다중파일 트랜잭션을 커밋하기 위한 새로운 자료구조인 마스터 커밋 블록을 정의하고 이를 이용해 다중 트랜잭션 파일 그룹을 커밋하는 방법을 제시한다.
본 발명은 로그 기반 파일 시스템의 다중파일 트랜잭션을 커밋하는 방법과 이를 위한 장치를 정의한다. 종래 기술은 단일 파일 트랜잭션의 커밋 방법만을 정의하거나 저널링 파일 시스템의 커밋 방법만을 정의한다. 본 발명은 종래 기술의 한계를 해결하기 위해 새로운 자료구조를 정의하고 해당 자료구조를 통해 다중파일 트랜잭션을 커밋하는 방법을 정의한다.
본 발명의 일 관점에 따라 새로운 마스터 커밋 블록의 자료구조가 제공될 수 있다. 마스터 커밋 블록은 트랜잭션과 관련된 아이노드들의 블록 위치들을 갖는 온-디스크 자료구조이다.
본 발명의 일 관점에 따라 제공되는 마스터 커밋 블록은, 다중파일 트랜잭션에 포함되는 파일들의 개수에 관한 정보, 상기 파일들의 아이노드가 저장된 블록의 위치를 나타내는 값이 기록되는 정보, 그리고 FSYNC_BIT 플래그를 나타내는 정보를 포함할 수 있다.
일 구현예에서 상기 마스터 커밋 블록의 총 크기는 4,096바이트다. 이때, 가장 상위 4바이트에는 다중파일 트랜잭션에 속한 파일들의 개수가 저장된다. 나머지 4,092바이트 공간에는 다중파일 트랜잭션으로 수정된 블럭들의 주소가 저장된다. 최대 1,023개까지 저장이 가능하다.
사용자가 다중파일 트랜잭션 커밋을 요청하면 파일 시스템은 마스터 커밋 블록을 생성한다. 마스터 커밋 블록에는 다중파일 트랜잭션이 변경하는 파일들에 쓰는 아이노드들의 블록 위치(블록 번호)가 저장될 수 있다. 다중파일 트렌젝션에서는 아이노드 블록에 존재하는 FSYNC_BIT를 설정하는 대신, 마스터 커밋 블록에 FSYNC_BIT를 할당하고, 이값을 1로 설정하여, 트랜잭션을 복구하는 데, 사용할 수 있다. 아이노드와 트랜잭션 내용 간의 순서도 보장하지 않을 수 있다. 대신 아이노드를 포함한 트랜잭션 전체 내용와 마스터 커밋 블록 간의 순서가 보장될 수 있다.
로그 기반 파일 시스템에 크래시가 발생하면 저장장치에서 FSYNC_BIT 플래그가 붙은 마스터 커밋 블록을 찾을 수 있다. 마스터 커밋 블록은 나머지 트랜잭션 내용과의 쓰기 순서가 보장된 상태로 기록(written)된 것이다. 따라서 마스터 커밋 블록이 발견되었다는 것은 다른 트랜잭션 내용들이 전부 기록되었다(written)는 것을 의미한다. 마스터 커밋 블록이 가리키는 아이노드 블록들을 참조해서 다중파일 트랜잭션의 내용을 복구할 수 있다.
본 발명의 일 관점에 따라 제공되는 다중파일 트랜잭션을 커밋하는 방법은, 마스터 커밋 블록을 생성하여 스토리지에 저장하는 과정을 이용할 수 있다. 사용자가 다중파일 트랜잭션 커밋을 요청하면 파일 시스템은 마스터 커밋 블록을 생성할 수 있다. 그후, 파일 시스템은 다중파일 트랜잭션에 속한 파일들을 순서대로 저장장치에 반영할 수 있다. 그리고 상기 각 파일들의 아이노드 블록 위치는 마스터 커밋 블록에 저장될 수 있다. 파일들이 스토리지에 전부 반영되면 마스터 커밋 블록에 FSYNC_BIT 플래그가 붙을 수 있다. 그 다음, 트랜잭션 내용과 마스터 커밋 블록 간의 쓰기 순서 보장을 위해 저장장치에 플러쉬를 호출할 수 있다. 그 다음에 마스터 커밋 블록을 저장장치에 반영할 수 있다.
본 발명의 일 관점에 따라 제공되는 다중파일 트랜잭션 방법은, 호스트의 파일 시스템이, 복수 개의 파일들 각각에 대하여, 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계; 및 상기 파일 시스템이, 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계;를 포함한다.
이때, 상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있을 수 있다.
이때, 상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있을 수 있다. 그리고 상기 제1단계와 상기 제2단계 사이에, 상기 스토리지가 상기 복수 개의 파일들에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있을 수 있다. 그리고 상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있을 수 있다.
이때, 상기 다중파일 트랜잭션 방법은, 상기 제1단계 이전에, 상기 파일 시스템이, 상기 호스트의 어플리케이션으로부터 커밋 콜을 수신하면 상기 마스터 커밋 블록을 생성하는 단계를 더 포함할 수 있다. 그리고 상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있을 수 있다.
이때, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하면, 상기 스토리지는 상기 트랜잭션의 내용을 상기 스토리지의 휘발성 메모리에 저장하도록 되어 있을 수 있다.
이때, 상기 다중파일 트랜잭션 방법은, 상기 제1단계와 상기 제2단계 사이에, 상기 파일 시스템이, 상기 마스터 커밋 블록에 제1플래그를 저장하는 단계를 더 포함할 수 있다. 그리고 상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 스토리지가 읽은 제1블록에 상기 제1플래그가 존재하는 것으로 확인되면, 상기 스토리지는 상기 제1블록이 상기 마스터 커밋 블록인 것으로 판단하도록 되어 있을 수 있다.
이때, 상기 파일 시스템이 상기 마스터 커밋 블록에 제1플래그를 저장하면, 상기 마스트 커밋 블록의 미리 지정된 부분에 소정의 값이 저장되도록 되어 있을 수 있다. 그리고 상기 파일 시스템이 상기 마스터 커밋 블록에 제1플래그를 저장하지 않으면, 상기 마스트 커밋 블록의 미리 지정된 부분에 상기 소정의 값과는 다른 값이 저장되도록 되어 있을 수 있다.
이때, 상기 스토리지는 상기 제1블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있을 수 있다.
이때, 상기 다중파일 트랜잭션 방법은, 상기 제1단계와 상기 제2단계 사이에, 상기 파일 시스템이 상기 스토리지를 플러쉬하는 단계를 더 포함할 수 있다.
이때, 상기 파일 시스템이 상기 스토리지를 플러쉬하면, 상기 스토리지는 상기 스토리지 내의 휘발성 메모리에 기록된 정보 중에서 상기 복수 개의 파일에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있을 수 있다.
본 발명의 다른 관점에 따라 처리부; 및 통신부;를 포함하는 호스트(=호스트 컴퓨팅 장치)가 제공될 수 있다. 이때, 상기 처리부는 상기 호스트의 파일 시스템을 실행하도록 되어 있다. 그리고 상기 파일 시스템은, 복수 개의 파일들 각각에 대하여, 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계; 및 상기 통신부를 이용하여 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계;를 실행하도록 되어 있다.
이때, 상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있을 수 있다. 그리고 상기 제1단계와 상기 제2단계 사이에, 상기 스토리지가 상기 복수 개의 파일들에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있을 수 있다. 그리고 상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있을 수 있다.
본 발명의 다른 관점에 따라 호스트 및 스토리지를 포함하는 컴퓨팅 장치가 제공될 수 있다. 이때, 상기 호스트는 파일 시스템을 실행하도록 되어 있다. 그리고 상기 파일 시스템은, 복수 개의 파일들 각각에 대하여, 상기 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계; 및 상기 파일 시스템이, 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계;를 실행하도록 되어 있다. 그리고 상기 스토리지는, 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 스토리지에 저장되어 있는 상기 마스터 커밋 블록이 발견되면, 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있다.
이때, 상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있을 수 있다. 그리고 상기 제1단계와 상기 제2단계 사이에, 상기 스토리지가 상기 복수 개의 파일들에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있을 수 있다.
이때, 상기 처리부는 상기 호스트의 CPU이며, 상기 통신부는 상기 호스트와 상기 스토리지를 연결하는 유선 또는 무선의 전송채널을 통해 교환되는 물리계층신호의 구동부를 포함할 수 있다.
본 발명의 일 관점에 따라 제공되는 다중파일 트랜잭션을 복구하는 방법은, 상술한 마스터 커밋 블록을 이용할 수 있다. 로그 기반 파일 시스템에 크래시가 발생하면 복구 과정을 수행할 수 있다. 본 발명에서, 스토리지는 상기 복구 과정에서 블록들을 순차적으로 읽을 수 있다. 그 다음, 각 블록에 FSYNC_BIT 플래그가 붙어있는지 확인할 수 있다. 그 다음, 상기 스토리지는, FSYNC_BIT 플래그가 붙어있다면 복구해야 할 파일이라고 판단할 수 있다. 만약 FSYNC_BIT 플래그가 붙어있는 블록이 마스터 커밋 블록이라면 마스터 커밋 블록이 가리키는 모든 아이노드들을 전부 복구할 수 있다.
본 발명은 F2FS, BtrFS, Stripe LFS, BSD-LFS와 같은 로그 기반 파일 시스템, RocksDB, MongoDB, LevelDB와 같은 로그 기반 자료구조를 사용하는 데이터베이스 시스템을 포함한 로그 기반 구조를 사용하는 모든 분야에 적용될 수 있다. 즉, 본 발명은 로그 기반 구조를 사용하는 모든 서버 및 임베디드 기기 혹은 이를 이용한 모든 서비스에 적용될 수 있다.
본 발명은 로그 기반 구조를 사용하는 모든 소프트웨어에 적용될 수 있다. 본 발명은 해당 소프트웨어들이 다중파일 트랜잭션을 보다 효율적으로 지원하도록 한다. 예를 들어, F2FS의 단일 파일 트랜잭션을 다중파일 트랜잭션으로 확장하고 RocksDB의 Compaction 동작이 다중파일 트랜잭션 과정을 기록하는 MANIFEST 파일을 제거하고 운영체제의 다중파일 트랜잭션을 통해 원자성을 보장하도록 한다.
본 발명에 따르면, 다중파일 트랜잭션의 커밋을 가능하게 하는 로그 기반 파일 시스템을 제공할 수 있다.
도 1은 일 실시예에 따라 호스트가 스토리지에 정보를 기록하는 개념을 나타낸 것이다.
도 2는 호스트가 실행하는 트랜잭션을 나타낸 것이다.
도 3은 본 발명의 일 실시예에 따라 제공되는 로그 기반 파일 시스템의 다중파일 트랜잭션의 커밋 방법을 나타낸 순서도이다.
도 4는 본 발명의 일 관점에 따라 제공되는 마스터 커밋 블록의 구조를 보여준다.
도 5는 도 3에 설명한 다중파일 트랜잭션의 커밋 방법에 의해 스토리지에 저장된 MCB 및 아이노드 정보의 관계를 나타낸 것이다.
도 6은 도 3에서 설명한 다중파일 트랜잭션의 커밋 방법을 다른 관점에서 설명한 순서도이다.
도 7은 본 발명의 일 실시예에 따라 스토리지가 데이터를 복구하는 방법을 나타낸 순서도이다.
이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.
도 1은 일 실시예에 따라 호스트가 스토리지에 정보를 기록하는 개념을 나타낸 것이다.
호스트(10)와 저장소(20)는 각각 전원장치로부터 전력을 공급하여 동작하는 컴퓨팅 장치일 수 있다. 상기 호스트(10)와 상기 저장소(20)는 한 개 이상의 전송채널들(30)을 통해 데이터 및 명령을 교환할 수 있다. 상기 전송채널들(30)은 무선채널 또는 유선채널일 수 있다. 상기 호스트(10)와 상기 저장소(20)는 한 개의 전원장치로부터 제공되는 전원을 공유할 수도 있고, 또는 서로 다른 두 개의 전원장치들로부터 각각 전력을 공급받을 수도 있다.
상기 호스트(10)는 CPU, 메모리, 전원장치, 및 통신장치를 포함할 수 있다.
상기 저장소(20)는 콘트롤러(21), 휘발성 메모리(22), 및 비휘발성 메모리(23)를 포함할 수 있다.
상기 호스트(10)는 상기 전송채널들(30)을 통해 각종 명령 및 데이터를 상기 저장소(20)에게 전송할 수 있다. 상기 명령에는 쓰기 명령이 포함될 수 있다.
상기 저장소(20)의 상기 콘트롤러(21)는 상기 전송채널들(30)로부터 수신한 명령을 기초로 상기 전송채널들(30)로부터 수신한 데이터를 상기 휘발성 메모리(22)에 저장할 수 있다. 상기 휘발성 메모리(22)에 저장된 데이터는 상기 콘트롤러(21)가 따르는 규칙에 의해 상기 비휘발성 메모리(23)에 저장될 수 있다. 상기 휘발성 메모리(22) 저장된 데이터는 상기 저장소(20)에 공급되는 전원이 차단되면 삭제될 수 있지만, 상기 비휘발성 메모리(23)에 저장된 데이터는 상기 저장소(20)에 공급되는 전원이 차단되더라도 삭제되지 않는다.
상기 호스트(10)는 어플리케이션(11)과 파일 시스템(12)을 실행할 수 있다. 상기 어플리케이션(11)과 상기 파일 시스템(12)은 상기 호스트(10)가 액세스하는 메모리에 저장된 소정의 명령코드들이 상기 호스트(10)에 포함된 CPU에 의해 실행됨으로써 실행되는 것일 수 있다.
일 실시예에서, 상기 어플리케이션(11)은 상기 호스트(10)는 사용하는 사용자가 상기 호스트(10)이 제공하는 사용자 인터페이스를 통해 사용자 입력을 제공함으로써 실행되거나 종료되는 프로그램일 수 있다.
일 실시예에서, 상기 파일 시스템(12)는 상기 호스트(10)에 전원이 인가되거나 리셋이 이루어지면 상기 호스트(10)에 의해 자동으로 실행되는 프로그램일 수 있다.
상기 어플리케이션(11)은 상기 파일 시스템(12)에게 다양한 시스템 콜을 보낼 수 있다. 상기 파일 시스템(12)은 상기 시스템 콜에 대응하는 작업을 실행할 수 있다.
상기 호스트(10)는 트랜잭션을 실행할 수 있다. 특정 트랜잭션이 시작되어 종료될 때까지 소정의 시간이 소요될 수 있다.
트랜잭션의 시작 및 커밋을 상기 어플리케이션(11)가 제어할 수 있다. 그리고 상기 트랜잭션 도중 실행되어야 하는 한 개 이상의 오퍼레이션들을 상기 어플리케이션(11)가 제어할 수 있다. 도 1에 제시하였듯이, 상기 어플리케이션(11)는 스타트 콜, 한 세트의 오퍼레이션 콜, 및 커밋 콜을 포함하는 시스템 콜들을 상기 파일 시스템(12)에 전송할 수 있다.
상기 스타트 콜에 의해 특정 트랜잭션이 시작되고, 상기 한 세트의 오퍼레이션 콜들에 의해 상기 호스트(10)으로부터 상기 저장소(20)에게 전달되어야 하는 명령들이 준비되고, 그리고 상기 커밋 콜에 의해 상기 준비된 명령들이 상기 전송채널들(30)을 통해 상기 저장소(20)에게 전달될 수 있다.
도 2는 호스트가 실행하는 트랜잭션을 나타낸 것이다.
복수 개의 오퍼레이션들의 집합이 하나의 트랜잭션을 구성할 수 있다.
제1트랜잭션(41)은 4개의 쓰기 오퍼레이션들(WO#1~WO#4)로 구성될 수 있다. 도 2에서는 각 트랜잰션에 쓰기 오퍼레이션들만일 포함된 예를 제시하였지만, 다른 종류의 오퍼레이션들도 포함될 수 있다.
도 3은 본 발명의 일 실시예에 따라 제공되는 로그 기반 파일 시스템의 다중파일 트랜잭션의 커밋 방법을 나타낸 순서도이다.
단계(S110)에서, 상기 어플리케이션(11)은 상기 파일 시스템(12)에게 스타트 콜을 송신(transmit)할 수 있다. 이로써 제1트랜잭션일 시작될 수 있다. 상기 파일 시스템(12)은 상기 스타트 콜을 수신하면 제1트랜잭션을 위한 프로세스를 시작할 수 있다.
단계(S121)에서, 상기 어플리케이션(11)은 상기 파일 시스템(12)에게 제1파일의 제1페이지에 대한 쓰기 오퍼레이션 콜(WO#1)을 호출할 수 있다.
단계(S122)에서, 상기 어플리케이션(11)은 상기 파일 시스템(12)에게 제1파일의 제1아이노드에 대한 쓰기 오퍼레이션 콜(WO#2)을 호출할 수 있다.
단계(S131)에서, 상기 어플리케이션(11)은 상기 파일 시스템(12)에게 제2파일의 제2페이지에 대한 쓰기 오퍼레이션 콜(WO#3)을 호출할 수 있다.
단계(S132)에서, 상기 어플리케이션(11)은 상기 파일 시스템(12)에게 제2파일의 제2아이노드에 대한 쓰기 오퍼레이션 콜(WO#4)을 호출할 수 있다.
단계(S140)에서, 상기 어플리케이션(11)은 상기 파일 시스템(12)에게 커밋 콜을 호출할 수 있다.
단계(S150)에서, 상기 파일 시스템(12)은 상기 커밋 콜에 대응하여 상기 제1트랜잭션을 처리할 수 있다. 즉, 상기 제1트랜잭션에 포함된 모든 파일의 페이지들을 상기 저장소(20)에 반영할 수 있다.
단계(S150)는 단계(S151) 내지 단계(S158)을 포함할 수 있다.
단계(S151)에서, 상기 파일 시스템(12)은 본 발명의 일 실시예에 따른 구조를 작는 한 개의 MCB(Master Commit Block)을 생성할 수 있다.
도 4는 본 발명의 일 관점에 따라 제공되는 마스터 커밋 블록의 구조를 보여준다.
일 구현예에서 상기 마스터 커밋 블록(300)의 총 크기는 N바이트다(ex: N=4,096).
이때, 가장 상위 N1 바이트(301)(ex: N1=4)에는 마스터 커밋 블록(300)이 갖고 있는 아이노드 블록 위치들의 개수가 저장된다. 상기 마스터 커밋 블록(300) 중 나머지 {N-N1}바이트 공간에는 N1 바이트 크기의 블록 주소들이 N/N1??1 개만큼 저장될 수 있다.
상기 마스터 커밋 블록(300)의 각 부분(302, 303, 304)에는 상기 제1트랜잭션에 의한 다중파일 트랜잭션이 쓰는 아이노드들의 블록 위치(블록 번호)가 저장될 수 있다.
여기서 상기 각각의 아이노드들의 블록 위치는, 상기 저장소(20) 내에서 상기 아이노드가 저장된 블록의 위치를 나타내는 주소일 수 있다.
예컨대 제1부분(302)에는 제1파일(File#1)(401)의 제1아이노드의 블록 위치가 저장될 수 있고, 제2부분(303)에는 제2파일(File#2)(402)의 제2아이노드의 블록 위치가 저장될 수 있다. 여기서 상기 제1파일(File#1)(401) 및 상기 제2파일(File#2)(402)은 상기 제1트랜잭션에 포함된 파일들이다.
아이노드 블록에는 FSYNC_BIT 플래그를 붙이지 않고, 그 대신, 마스터 커밋 블록에 FSYNC_BIT 플래그(307)를 붙일 수 있다.
아이노드와 트랜잭션 내용 간의 순서도 보장하지 않을 수 있다.
대신 아이노드를 포함한 트랜잭션 전체 내용와 마스터 커밋 블록(300) 간의 순서가 보장될 수 있다.
로그 기반 파일 시스템에 크래시가 발생하면 저장장치에서 FSYNC_BIT 플래그(307)가 붙은 마스터 커밋 블록(300)을 찾을 수 있다.
마스터 커밋 블록(300)은 나머지 트랜잭션 내용과의 쓰기 순서가 보장된 상태로 기록된 것이다. 따라서 마스터 커밋 블록(300)이 발견되었다는 것은 다른 트랜잭션 내용들이 전부 기록되었다는 것을 의미한다.
다시 도 3으로 돌아가면, 단계(S152)에서, 상기 파일 시스템(12)은 상기 저장소(20)에게 상기 쓰기 오퍼레이션 콜(WO#1, WO#2)에 대응하는 쓰기명령(WC#1, WC#2)를 전송할 수 있다. 상기 쓰기명령(WC#1, WC#2)에는 제1파일(File#1)의 제1아이노드(Inode#1)에 관한 정보가 포함되어 있을 수 있다.
단계(S153)에서, 상기 파일 시스템(12)은 상기 마스터 커밋 블록(300)의 일부분에 상기 제1아이노드(Inode#1)의 블록 위치(블록 번호)를 저장할 수 있다.
도 3의 단계(S153)는 후술하는 도 6의 단계(S216)에 해당한다. 도 6의 단계(S215)는 트랜잭션에 포함된 파일들 중 i번째 파일의 내용을 저장장치에 반영하는 단계이다. 이때 파일 내용에는 i번째 파일의 아이노드도 포함된다. 즉, 도 3의 단계(S153)는 아이노드가 비휘발성 메모리에 저장된 직후의 동작이기 때문에, 상기 파일 시스템(12)은 아이노드의 블록 위치를 알 수 있다.
단계(S152) 및 단계(S153)는 상기 제1트랜재션에 포함된 다른 모든 파일들에 대하여 반복하여 실행될 수 있다.
예컨대, 단계(S154)에서, 상기 파일 시스템(12)은 상기 저장소(20)에게 상기 쓰기 오퍼레이션 콜(WO#3, WO#4)에 대응하는 쓰기명령(WC#3, WC#4)를 전송할 수 있다. 상기 쓰기명령(WC#3, WC#4)에는 제3파일(File#1)의 제3아이노드(Inode#3)에 관한 정보가 포함되어 있을 수 있다.
단계(S155)에서, 상기 파일 시스템(12)은 상기 마스터 커밋 블록(300)의 일부분에 상기 제2아이노드(Inode#2)의 블록 위치(블록 번호)를 저장할 수 있다.
상기 제1트랜잭션에 포함된 모든 파일들이 상기 저장소(20)의 상기 휘발성 메모리(22)에 기록되면, 단계(S157)에서 상기 파일 시스템(12)은 플러시 명령(FC)을 상기 저장소(20)에게 전송할 수 있다.
그 다음, 단계(S158)에서, 상기 파일 시스템(12)은 상기 마스터 커밋 블록(300)를 상기 저장소(20)에 기록하라는 MCB 쓰기 명령을 상기 저장소(20)에게 전송할 수 있다. 상기 MCB 쓰기 명령에는 상기 마스터 커밋 블록(300)의 내용이 포함될 수 있다.
상기 저장소(20)는 상기 파일 시스템(12)으로부터 수신한 명령들에 대응하여 다음과 같은 단계들을 수행할 수 있다.
단계(S161)에서, 상기 저장소(20)가 상기 쓰기명령(WC#1, WC#2)을 수신하면, 상기 휘발성 메모리(22)에 제1페이지(Page#1) 및 상기 제1아이노드(Inode#1)를 저장한다.
단계(S162)에서, 상기 저장소(20)가 상기 쓰기명령(WC#3, WC#4)을 수신하면, 상기 휘발성 메모리(22)에 제2페이지(Page#2) 및 상기 제2아이노드(Inode#2)를 저장한다.
단계(S163)에서, 상기 저장소(20)가 상기 플러시 명령(FC)을 수신하면, 상기 저장소(20)는 상기 휘발성 메모리(22)에 저장되어 있던 상기 제1트랜잭션에 관한 정보를 상기 비휘발성 메모리(23)에 저장한다.
단계(S164)에서, 상기 저장소(20)가 상기 마스터 커밋 블록(300)를 상기 비휘발성 메모리(23)에 저장할 수 있다.
만일 단계(S152)가 시작된 이후, 그리고 상기 단계(S164)가 완료되기 이전에 상기 저장소(20)에 정전 등 문제가 발생한다면, 상기 비휘발성 메모리(23)에 기록된 상기 제1트랜잭션에 관련된 파일들의 내용은 무효화 된다.
도 5는 도 3에 설명한 다중파일 트랜잭션의 커밋 방법에 의해 스토리지에 저장된 MCB 및 아이노드 정보의 관계를 나타낸 것이다.
도 5에서, 참조번호 231은 제1아이노드(Inode#1)가 저장된 제1블록(231)을 나타내고, 참조번호 232는 제2아이노드(Inode#2)가 저장된 제2블록(232)을 나타내고, 그리고 참조번호 233은 상기 마스터 커밋 블록(300)이 저장된 제3블록(233)을 나타낸다.
상기 제3블록(233)에 포함된 상기 제1아이노드 포인터(2331)는 상기 제1블록(231)의 주소에 관한 값을 갖고, 상기 제2아이노드 포인터(2332)는 상기 제2블록(232)의 주소에 관한 값을 갖는다.
도 6은 도 3에서 설명한 다중파일 트랜잭션의 커밋 방법을 다른 관점에서 설명한 순서도이다.
단계(S210)에서, 상기 파일 시스템(12)은 상기 어플리케이션(11)으로부터 커밋 콜을 수신하면 상기 제1트랜잭션에 대한 커밋을 시작할 수 있다.
단계(S211)에서, 상기 파일 시스템(12)은 상기 제1트랜잭션에 대한 상기 마스터 커밋 블록(300)을 생성할 수 있다.
단계(S212)에서, 상기 파일 시스템(12)은 변수 i를 다중파일 트랜잭션인 상기 제1트랜잭션에 참여한 파일의 개수로 설정할 수 있다.
단계(S213)에서, 상기 파일 시스템(12)는 상기 변수 i의 값이 0인지 확인할 수 있다. 상기 변수 i의 값이 0면 단계(S217)로 진행하고, 상기 변수 i의 값이 0이 아니면 단계(S214)로 진행할 수 있다.
단계(S214)에서, 상기 변수 i의 값을 '1'만큼 감소시킬 수 있다.
단계(S215)에서, 상기 파일 시스템(12)은 상기 제1트랜잭션에 참여한 파일 중 i번째 파일의 내용을 상기 저장소(20)에 반영할 수 있다. 이때, 상기 i번째 파일 중 변경된 페이지 및 상기 i번째 파일의 아이노드를 상기 저장소(20)에 반영할 수 있다.
단계(S216)에서, 상기 파일 시스템(12)은 상기 i번째 파일의 아이노드의 블록 위치를 상기 마스터 커밋 블록(300)에 저장할 수 있다.
단계(S217)에서, 상기 파일 시스템(12)은 상기 마스터 커밋 블록(300)에 FSYNC_BIT 플래글르 저장할 수 있다.
단계(S218)에서, 상기 파일 시스템(12)은 상기 저장소(20)에 플러쉬를 호출할 수 있다.
단계(S219)에서, 상기 저장소(20)는 상기 마스터 커밋 블록(300)을 상기 저장소(20)에 저장할 수 있다.
단계(S220)에서, 상기 파일 시스템(12)은 커밋을 종료할 수 있다.
도 7은 본 발명의 일 실시예에 따라 스토리지가 데이터를 복구하는 방법을 나타낸 순서도이다.
도 7에 나타낸 방법은 상기 저장소(20)가 도 3 또는 도 6에 제시한 다중파일 트랜잭션의 커밋 방법을 기초로 데이터를 저장한 경우에 유효하게 이용될 수 있다.
단계(S510)에서, 상기 저장소(20)는 상기 저장소(20)의 복구를 시작할 수 있다.
상기 복구의 시작은 다양한 조건에 의해 트리거될 수 있다.
단계(S520)에서, 상기 저장소(20)는 상기 비휘발성 메모리(23)에 존재하는 블록들을 읽는다.
단계(S530)에서, 상기 저장소(20)는 읽은 블록에 FSYNC_BIT이 존재하는지 여부를 판단한다. FSYNC_BIT이 존재한다면 단계(S540)로 진행하고, FSYNC_BIT이 존재하지 않는다면, 다시 단계(S520)로 돌아가 다른 블록을 읽을 수 있다.
읽은 블록에 FSYNC_BIT이 존재한다는 것은, 읽은 블록 중 미리 지정된 위치의 bit가 미리 결정된 값을 갖는다는 것을 의미할 수 있다. 이와 달리, 읽은 블록에 FSYNC_BIT이 존재하지 않는다는 것은, 상기 읽은 블록 중 상기 미리 지정된 위치의 bit가 상기 미리 결정된 값과는 다른 값을 갖는다는 것을 의미할 수 있다.
단계(S540)에서, 상기 저장소(20)는 변수 i를, 상기 FSYNC_BIT이 존재하는 블록에 포함된 상기 마스터 커밋 블록(300)이 나타내는 아이노드들의 개수로 설정한다.
단계(S550)에서, 상기 저장소(20)는 상기 변수 i의 값이 0인지 확인할 수 있다. 상기 변수 i의 값이 0면 단계(S580)로 진행하고, 상기 변수 i의 값이 0이 아니면 단계(S560)로 진행할 수 있다.
단계(S560)에서, 상기 저장소(20)는 상기 변수 i의 값을 '1'만큼 감소시킬 수 있다.
단계(S570)에서, 상기 저장소(20)는 상기 변수 i에 대응하는 아이노드가 가리키는 내용을 복구할 수 있다.
단계(S580)에서, 상기 저장소(20)는 복구를 종료할 수 있다.
도 7의 각 단계들은 상기 저장소(20)의 상기 콘트롤러(21)가 실행할 수 있다.
상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.
[사사]
본 발명은 다음 연구과제의 지원을 받아 창작된 것이다.
1. 연구과제1
*과제고유번호: 2018900054
*과제번호:20180005490031001
*부처명:과학기술정보통신부
*과제관리(전문)기관명:정보통신기획평가원
*연구사업명:SW컴퓨팅산업원천기술개발사업
*연구과제명:매니코어 초대용량 메모리를 위한 확장형 순서보장 운영체제 개발
*과제수행기관명:한국과학기술원
2. 연구과제2
*과제고유번호: 2020123008
*과제번호: 2020R1A2C300852511
*부처명:과학기술정보통신부
*과제관리(전문)기관명:한국연구재단
*연구사업명:이공분야기초연구사업
*연구과제명:초저지연 저장장치를 위한 무경쟁 확장형 입출력 서브시스템 연구(2020)
*과제수행기관명:한국과학기술원

Claims (15)

  1. 호스트의 파일 시스템이, 복수 개의 파일들 각각에 대하여, 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계; 및
    상기 파일 시스템이, 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계;
    를 포함하는,
    다중파일 트랜잭션 방법.
  2. 제1항에 있어서, 상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있는, 다중파일 트랜잭션 방법.
  3. 제1항에 있어서,
    상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있고,
    상기 제1단계와 상기 제2단계 사이에, 상기 스토리지가 상기 복수 개의 파일들에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있고,
    상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있는,
    다중파일 트랜잭션 방법.
  4. 제1항에 있어서,
    상기 제1단계 이전에, 상기 파일 시스템이, 상기 호스트의 어플리케이션으로부터 커밋 콜을 수신하면 상기 마스터 커밋 블록을 생성하는 단계를 더 포함하고,
    상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있는,
    다중파일 트랜잭션 방법.
  5. 제4항에 있어서, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하면, 상기 스토리지는 상기 트랜잭션의 내용을 상기 스토리지의 휘발성 메모리에 저장하도록 되어 있는, 다중파일 트랜잭션 방법.
  6. 제1항에 있어서,
    상기 제1단계와 상기 제2단계 사이에, 상기 파일 시스템이, 상기 마스터 커밋 블록에 제1플래그를 저장하는 단계를 더 포함하며,
    상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 스토리지가 읽은 제1블록에 상기 제1플래그가 존재하는 것으로 확인되면, 상기 스토리지는 상기 제1블록이 상기 마스터 커밋 블록인 것으로 판단하도록 되어 있는,
    다중파일 트랜잭션 방법.
  7. 제6항에 있어서,
    상기 파일 시스템이 상기 마스터 커밋 블록에 제1플래그를 저장하면, 상기 마스트 커밋 블록의 미리 지정된 부분에 소정의 값이 저장되도록 되어 있고,
    상기 파일 시스템이 상기 마스터 커밋 블록에 제1플래그를 저장하지 않으면, 상기 마스트 커밋 블록의 미리 지정된 부분에 상기 소정의 값과는 다른 값이 저장되도록 되어 있는,
    다중파일 트랜잭션 방법.
  8. 제6항에 있어서, 상기 스토리지는 상기 제1블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있는, 다중파일 트랜잭션 방법.
  9. 제1항에 있어서, 상기 제1단계와 상기 제2단계 사이에, 상기 파일 시스템이 상기 스토리지를 플러쉬하는 단계를 더 포함하는, 다중파일 트랜잭션 방법.
  10. 제9항에 있어서, 상기 파일 시스템이 상기 스토리지를 플러쉬하면, 상기 스토리지는 상기 스토리지 내의 휘발성 메모리에 기록된 정보 중에서 상기 복수 개의 파일에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있는, 다중파일 트랜잭션 방법.
  11. 호스트로서,
    처리부; 및 통신부;를 포함하며,
    상기 처리부는 상기 호스트의 파일 시스템을 실행하도록 되어 있고,
    상기 파일 시스템은,
    복수 개의 파일들 각각에 대하여, 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계; 및
    상기 통신부를 이용하여 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계;
    를 실행하도록 되어 있는 것을 특징으로 하는,
    호스트.
  12. 제11항에 있어서,
    상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있고;
    상기 제1단계와 상기 제2단계 사이에, 상기 스토리지가 상기 복수 개의 파일들에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있고,
    상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있는,
    호스트.
  13. 제11항에 있어서, 상기 스토리지가 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 마스터 커밋 블록을 발견하면, 상기 스토리지는 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있는, 호스트.
  14. 호스트 및 스토리지를 포함하는 컴퓨팅 장치로서,
    상기 호스트는 파일 시스템을 실행하도록 되어 있고,
    상기 파일 시스템은,
    복수 개의 파일들 각각에 대하여, 상기 스토리지 내에서 상기 파일의 아이노드가 기록된 블록인 아이노드 블록의 위치를 마스터 커밋 블록에 저장하는 제1단계; 및
    상기 파일 시스템이, 상기 마스터 커밋 블록을 상기 스토리지에 저장하는 제2단계;
    를 실행하도록 되어 있고,
    상기 스토리지는, 상기 스토리지의 블록들을 복구하는 프로세스를 수행하는 동안 상기 스토리지에 저장되어 있는 상기 마스터 커밋 블록이 발견되면, 상기 마스터 커밋 블록에 저장되어 있는 복수 개의 상기 아이노드 블록에 기록된 아이노드가 가리키는 내용을 복구하도록 되어 있는,
    컴퓨팅 장치.
  15. 제14항에 있어서,
    상기 제1단계에서, 상기 파일의 아이노드 블록의 위치를 마스터 커밋 블록에 저장하기 이전에, 상기 파일 시스템이 상기 파일에 관한 트랜잭션의 내용을 상기 스토리지에 제공하도록 되어 있고,
    상기 제1단계와 상기 제2단계 사이에, 상기 스토리지가 상기 복수 개의 파일들에 관한 트랜잭션의 내용을 상기 스토리지의 비휘발성 메모리에 기록하도록 되어 있는,
    컴퓨팅 장치.
PCT/KR2021/017784 2020-11-27 2021-11-29 다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치 WO2022114899A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200163274 2020-11-27
KR10-2020-0163274 2020-11-27

Publications (1)

Publication Number Publication Date
WO2022114899A1 true WO2022114899A1 (ko) 2022-06-02

Family

ID=81755895

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/017784 WO2022114899A1 (ko) 2020-11-27 2021-11-29 다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치

Country Status (2)

Country Link
KR (1) KR20220074807A (ko)
WO (1) WO2022114899A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078244A1 (en) * 2000-12-18 2002-06-20 Howard John H. Object-based storage device with improved reliability and fast crash recovery
JP2009282752A (ja) * 2008-05-22 2009-12-03 Hitachi Systems & Services Ltd ストレージデバイス及びファイルシステムの記録方法
US9075813B2 (en) * 2011-09-15 2015-07-07 Red Hat, Inc. Saving a snapshot of free space of a file system on persistent storage
KR20200037584A (ko) * 2018-10-01 2020-04-09 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 데이터베이스 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020078244A1 (en) * 2000-12-18 2002-06-20 Howard John H. Object-based storage device with improved reliability and fast crash recovery
JP2009282752A (ja) * 2008-05-22 2009-12-03 Hitachi Systems & Services Ltd ストレージデバイス及びファイルシステムの記録方法
US9075813B2 (en) * 2011-09-15 2015-07-07 Red Hat, Inc. Saving a snapshot of free space of a file system on persistent storage
KR20200037584A (ko) * 2018-10-01 2020-04-09 에스케이하이닉스 주식회사 메모리 시스템, 그것의 동작방법 및 메모리 시스템을 포함하는 데이터베이스 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
HU YIGE, ZHU ZHITING, NEAL IAN, KWON YOUNGJIN, CHENG TIANYU, CHIDAMBARAM VIJAY, WITCHEL EMMETT: "TxFS : Leveraging File-system Crash Consistency to Provide ACID Transactions", ACM TRANSACTIONS ON STORAGE, vol. 15, no. 2, 1 May 2019 (2019-05-01), US , pages 1 - 20, XP055933759, ISSN: 1553-3077, DOI: 10.1145/3318159 *

Also Published As

Publication number Publication date
KR20220074807A (ko) 2022-06-03

Similar Documents

Publication Publication Date Title
US7860836B1 (en) Method and apparatus to recover data in a continuous data protection environment using a journal
JP3335801B2 (ja) 異種ファイルへのアクセスを可能とする情報処理システム及びその制御方法
US7197615B2 (en) Remote copy system maintaining consistency
US7340489B2 (en) Virtual storage devices
WO2011105860A2 (en) Method and apparatus for generating minimum boot image
US7356658B2 (en) Snapshot system
US8209498B2 (en) Method and system for transferring duplicate files in hierarchical storage management system
US6944726B2 (en) Distributed background track processing
US20010049755A1 (en) DMA doorbell
EP1111509A2 (en) Apparatus for enabling independent access to replicated data
JP2005128861A (ja) リモートサイト及び/又はローカルサイトのストレージシステム及びリモートサイトストレージシステムのファイル参照方法
JP2001034426A (ja) 記憶システム故障に続き、ミラー論理データ・ボリュームの動的再同期化を有するデータ・プロセッサ記憶システム
WO2016204529A1 (ko) 전원 손실 이후 데이터 손실을 방지하기 위한 메모리 저장 장치 및 방법
WO2018227772A1 (zh) 柜员机控件更新方法、装置、计算机设备及存储介质
WO2012159436A1 (zh) 一种在windows下调整磁盘分区的方法及装置
WO2018124331A1 (ko) 그래프 처리 시스템 및 그래프 처리 시스템의 동작 방법
WO2022114899A1 (ko) 다중파일 트랜잭션을 위한 커밋 블럭 구조 및 장치
JP2008033527A (ja) ストレージ装置、ディスク装置及びデータ復元方法
JP3848268B2 (ja) 計算機システム、計算機装置、計算機システムにおけるデータアクセス方法及びプログラム
JP2830826B2 (ja) 分散ファイルの同期システムと方法
JPH04242842A (ja) データベースバッファ制御装置
WO2019156279A1 (ko) 랜부팅 환경 기반 파일 보안 및 중앙화를 위한 장치, 이를 위한 방법 및 이 방법을 수행하기 위한 프로그램이 기록된 컴퓨터 판독 가능한 기록매체
WO2022114754A1 (ko) 파일 시스템 기반 차량 진단 이벤트 메모리 관리 장치 및 방법
JP2009020753A (ja) データ同期システム及びデータ同期プログラム
JP2004038349A (ja) ネットワーク上のデータベース更新システム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21898724

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21898724

Country of ref document: EP

Kind code of ref document: A1