[go: up one dir, main page]

KR102837532B1 - Method to solve the problem that file operation is blocked because of journal conflict - Google Patents

Method to solve the problem that file operation is blocked because of journal conflict

Info

Publication number
KR102837532B1
KR102837532B1 KR1020210167383A KR20210167383A KR102837532B1 KR 102837532 B1 KR102837532 B1 KR 102837532B1 KR 1020210167383 A KR1020210167383 A KR 1020210167383A KR 20210167383 A KR20210167383 A KR 20210167383A KR 102837532 B1 KR102837532 B1 KR 102837532B1
Authority
KR
South Korea
Prior art keywords
pages
transaction
group
file system
page
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
KR1020210167383A
Other languages
Korean (ko)
Other versions
KR20220074804A (en
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 KR20220074804A publication Critical patent/KR20220074804A/en
Application granted granted Critical
Publication of KR102837532B1 publication Critical patent/KR102837532B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계 및 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계를 포함하는 트랜잭션 방법을 공개한다.A transaction method is disclosed, including a first step of creating a shadow page of the first group by copying pages of a first group among a plurality of transaction pages prepared by a running transaction, and a second step of transferring pages of a second group among the plurality of transaction pages and the shadow pages of the first group to a storage.

Description

저널 충돌에 의한 파일 연산 중단 현상 해결 기법 및 장치{METHOD TO SOLVE THE PROBLEM THAT FILE OPERATION IS BLOCKED BECAUSE OF JOURNAL CONFLICT}METHOD TO SOLVE THE PROBLEM THAT FILE OPERATION IS BLOCKED BECAUSE OF JOURNAL CONFLICT

본 발명은 컴퓨팅 기술에 관한 것으로서, 특히 파일 시스템의 일관성 보장을 위한 트랜잭션을 실행하는 기술에 관한 것이다.The present invention relates to computing technology, and more particularly, to technology for executing a transaction to ensure consistency of a file system.

EXT4, XFS를 포함한 대부분의 종래 파일 시스템은 파일 시스템의 일관성을 보장하기 위해 저널링이라는 메커니즘을 사용한다. 파일 시스템 변경 사항을 바로 반영하지 않고 파일 시스템과 분리된 영역인 저널 영역에 기록한다. 저널 영역에 변경사항들을 기록할 때는 원자적으로 실행되는 다수의 쓰기 연산의 집합으로 정의되는 트랜잭션의 형태로 기록한다. 변경된 내용을 저장장치의 쓰기 및 읽기 최소 단위인 블록 단위로 모아 트랜잭션을 구성한다. 블록의 내용이 휘발성 메모리에 캐싱된 형태를 페이지라고 한다. 트랜잭션은 블록 쓰기의 집합으로 정의될 수도 있고 페이지 쓰기의 집합으로 정의될 수도 있다. 트랜잭션을 저널 영역에 저장하는 동작을 커밋이라고 한다. 트랜잭션이 저널 영역에 성공적으로 커밋되면, 해당 트랜잭션이 갖고 있던 변경 사항들을 파일 시스템 상의 원위치에 반영한다. 파일 시스템에 크래시가 발생하면 저널 영역에 커밋된 트랜잭션들이 갖고 있는 변경 사항들을 파일 시스템 상 원위치에 반영한다.Most conventional file systems, including EXT4 and XFS, use a mechanism called journaling to ensure file system consistency. Instead of reflecting file system changes immediately, they are recorded in a journal area, which is an area separate from the file system. When recording changes in the journal area, they are recorded in the form of a transaction, which is defined as a set of multiple write operations that are executed atomically. The changed contents are collected into blocks, which are the minimum units of writing and reading in storage devices, to form a transaction. The contents of a block are cached in volatile memory and are called pages. A transaction can be defined as a set of block writes or a set of page writes. The operation of saving a transaction in the journal area is called a commit. If a transaction is successfully committed to the journal area, the changes contained in the transaction are reflected to the original location in the file system. If a file system crashes, the changes contained in the transactions committed to the journal area are reflected to the original location in the file system.

일반 파일 연산이 저널 영역에 커밋되고 있는 과정에 있는 내용을 변경하려고 할 수 있다. 본 발명에서는 이 현상을 저널 충돌이라고 정의한다. 상기 저널 충돌이 발생하면 사용자가 호출한 파일 연산은 충돌을 야기한 블록의 기록이 완료될 때까지 대기해야 한다는 문제가 발생한다. A general file operation may attempt to change the content that is in the process of being committed to the journal area. This phenomenon is defined in the present invention as a journal conflict. When the journal conflict occurs, the file operation called by the user must wait until the writing of the block that caused the conflict is completed.

저널 충돌을 야기한 내용을 캐싱하고 있는 페이지를 충돌 페이지라고 정의한다. 일반 파일 연산은 충돌 페이지를 수정할 수 없다. 충돌 페이지는 커밋 중인 페이지다. 저장장치 내 저널 영역에 그 내용이 전송 중이다. 커밋이 시작되었을 때의 페이지 내용을 유지해야 트랜잭션의 원자성을 보장할 수 있다. 만약 충돌 페이지를 일반 파일 연산이 수정하면 일반 파일 연산의 원자성이 깨질 수 있다. 일반 파일 연산이 수정하는 메타데이터 중 일부인 충돌 페이지 내용만 커밋 중인 트랜잭션에 의해 커밋될 수 있기 때문이다.A page that caches the content that caused a journal conflict is defined as a conflict page. A conflict page cannot be modified by a normal file operation. A conflict page is a page that is being committed. Its content is being transferred to the journal area in the storage device. The content of the page when the commit started must be maintained to ensure the atomicity of the transaction. If a conflict page is modified by a normal file operation, the atomicity of the normal file operation may be broken. This is because only the content of the conflict page, which is part of the metadata modified by the normal file operation, can be committed by the transaction being committed.

종래 기술은 트랜잭션을 커밋할 때 충돌 페이지의 복사본을 만든다. 커밋에 참여하는 페이지는 충돌 페이지가 아니라 충돌 페이지의 복사본이다. 충돌 페이지의 복사본이 커밋에 참여한 상태기 때문에 일반 파일 연산은 원본 페이지를 자유롭게 수정할 수 있다.The prior art makes a copy of the conflict page when committing a transaction. The page participating in the commit is not the conflict page, but a copy of the conflict page. Since the copy of the conflict page participates in the commit, normal file operations can freely modify the original page.

종래기술에서 충돌 페이지의 복사본을 만드는 주체는 일반 파일 연산이다. 즉, 일반 파일 연산이 충돌 페이지의 복사본을 만든다. 그리고 종래기술에서 상기 충돌 페이지의 복사본을 만드는 시점은 상기 일반 파일 연산이 페이지를 수정하기 직전이다. 그리고 종래기술에서 상기 충돌 페이지의 복사본 생성 여부를 판단하는 기준은, 수정하려고 하는 페이지가 커밋 연산에 의해 커밋 중이고 해당 페이지가 스토리지로 전송되기 직전인 경우에. 커밋 연산은 일반 파일 연산이 만든 복사본이 있는지 확인하고 복사본이 있으면 복사본을 스토리지 전송에 참여시킨다. 종래 기술은 이 경우 저널 충돌을 야기한 일반 파일 연산을 트랜잭션 커밋이 완료될 때까지 중단시킨다는 문제가 있다.In the prior art, the entity that creates a copy of a conflict page is a general file operation. That is, the general file operation creates a copy of the conflict page. And in the prior art, the time at which the copy of the conflict page is created is immediately before the general file operation modifies the page. And in the prior art, the criterion for determining whether a copy of the conflict page is created is when the page to be modified is being committed by a commit operation and the page is immediately before being transferred to storage. The commit operation checks whether there is a copy created by the general file operation, and if there is a copy, it causes the copy to participate in the storage transfer. In this case, the prior art has a problem in that the general file operation that caused the journal conflict is suspended until the transaction commit is completed.

본 발명은 저널 충돌로 인한 파일 연산 중단 현상을 해결하기 위하여 저널 영역에 기록할 블록의 복사본을 항상 유지하는 기술을 제공하고자 한다. 본 발명은 일반 파일 연산이 저널 충돌에 의해 중단되는 현상을 제거하는 기술을 제공하고자 한다. The present invention seeks to provide a technology that always maintains a copy of a block to be recorded in a journal area in order to resolve the phenomenon of file operation interruption due to journal collision. The present invention seeks to provide a technology that eliminates the phenomenon of general file operations being interrupted due to journal collision.

본 발명의 일 관점에 따라, 저널 충돌 때문에 파일 연산이 중단되는 현상을 해결하는 방법을 제공할 수 있다. 본 명세서에서 본 발명의 일 관점에 따라 제공되는 페이징 방법을 Semantics-aware Shadow Paging이라고 지칭할 수 있다. 이 방법에서, 충돌이 자주 발생하는 페이지를 판별하고 충돌이 자주 발생하는 페이지는 항상 그 페이지의 복사본이 트랜잭션 커밋에 참여하도록 한다.According to one aspect of the present invention, a method for resolving a phenomenon in which a file operation is interrupted due to a journal conflict can be provided. The paging method provided in this specification according to one aspect of the present invention can be referred to as Semantics-aware Shadow Paging. In this method, a page where conflicts frequently occur is determined, and a copy of a page where conflicts frequently occur is always made to participate in a transaction commit.

도 1은 본 발명의 일 관점에 따라 제공되는 Semantics-aware Shadow Paging 방법의 작용원리를 설명한다. Figure 1 illustrates the working principle of a Semantics-aware Shadow Paging method provided according to one aspect of the present invention.

상기 Semantics-aware Shadow Paging 방법은 메타데이터를 Hot 메타데이터와 Warm 메타데이터로 나눈다. The above Semantics-aware Shadow Paging method divides metadata into Hot metadata and Warm metadata.

Hot 메타데이터(110)는 충돌이 자주 발생하는 메타데이터이며, 수퍼 블록, 블록 비트맵 등 대부분의 파일 연산들이 수정하는 메타데이터가 Hot 메타데이터(110)에 속한다. Hot 메타데이터(110)를 커밋할 때는 항상 복사본을 만들도록 한다. Hot metadata (110) is metadata that frequently causes collisions, and metadata that is modified by most file operations, such as super blocks and block bitmaps, belongs to hot metadata (110). When committing hot metadata (110), always make a copy.

Warm 메타데이터(120)는 충돌이 자주 발생하지 않는 메타데이터이며, 아이노드, 디렉토리 블록 등 Hot 메타데이터(110)에 속하지 않는 메타데이터들이 Warm 메타데이터(120)에 속한다. Warm 메타데이터(120) 블록들 중에서는 충돌이 상대적으로 더 자주 발생하는 블록만 복사본을 만들도록 한다. Warm metadata (120) is metadata in which collisions do not occur frequently, and metadata that do not belong to hot metadata (110), such as inodes and directory blocks, belong to warm metadata (120). Among the warm metadata (120) blocks, copies are made only of blocks in which collisions occur relatively more frequently.

Warm 메타데이터(120)는 상기 Hot 메타데이터(110)을 제외한 메타데이터일 수 있으며, Warm 메타데이터(120) 중 상대적으로 충돌이 더 자주 발생하는 것을 Warm[H] 메타데이터(121)라고 지칭하고 상대적으로 충돌이 더 드물게 발생하는 것을 Warm[L] 메타데이터(122)라고 지칭할 수 있다. 상기 Hot 메타데이터(110)와 상기 Warm[H] 메타데이터(121)를 서로 구분하는 저널충돌빈도의 값을 제1임계값이라고 정의하고, 상기 Warm[H] 메타데이터(121)와 상기 Warm[L] 메타데이터(122)를 서로 구분하는 저널충돌빈도의 값을 제2임계값이라고 지칭할 수 있다. 상기 제2임계값은 상기 제1임계값 이하일 수 있다.Warm metadata (120) may be metadata other than the Hot metadata (110), and among the Warm metadata (120), metadata in which collisions occur relatively more frequently may be referred to as Warm[H] metadata (121), and metadata in which collisions occur relatively less frequently may be referred to as Warm[L] metadata (122). The value of the journal collision frequency that distinguishes the Hot metadata (110) and the Warm[H] metadata (121) from each other may be defined as a first threshold, and the value of the journal collision frequency that distinguishes the Warm[H] metadata (121) and the Warm[L] metadata (122) from each other may be referred to as a second threshold. The second threshold may be less than or equal to the first threshold.

충돌이 더 자주 발생하는 Warm 메타데이터(120) 블록은 LRU(Least Recently Used) 알고리즘(701)을 통해 선별한다. Warm metadata (120) blocks where collisions occur more frequently are selected through the LRU (Least Recently Used) algorithm (701).

여기서 '충돌이 자주 발생'한다는 것은 충돌이 발생하는 빈도가 소정의 기준 빈도보다 크다는 것을 의미하고, '충돌이 자주 발생하지 않는'다는 것은 충돌이 발생하는 빈도가 상기 소정의 기준 빈도보다 크지 않다는 것을 의미할 수 있다. Here, 'collisions occur frequently' may mean that the frequency with which collisions occur is greater than a given reference frequency, and 'collisions do not occur frequently' may mean that the frequency with which collisions occur is not greater than the given reference frequency.

예컨대, 특정 타입의 메타데이터에 대한 파일 연산이 N번 발생하는 동안 상기 특정 타입의 메타데이터에 대한 충돌이 소정의 값 N1보다 크다면 상기 특정 타입의 메타데이터는 상기 Hot 메타데이터(100)인 것으로 볼 수 있다(N>N1). 그러나 상기 빈도의 정의는 다양한 방식에 의해 이루어질 수 있으며, 본 발명이 상기 빈도를 정의하는 특정한 하나의 방식에 의해 제한되는 것은 아니다. For example, if the number of collisions for a specific type of metadata is greater than a predetermined value N1 while file operations for the specific type of metadata occur N times, the specific type of metadata can be considered as the Hot metadata (100) (N>N1). However, the definition of the frequency can be made in various ways, and the present invention is not limited to a specific method of defining the frequency.

도 2는 본 발명의 일 관점에 따라 제공되는 Semantics-aware Shadow Paging 방법이 적용된 저널 트랜잭션의 커밋 과정을 보여준다. FIG. 2 shows a commit process of a journal transaction to which a Semantics-aware Shadow Paging method is applied according to one aspect of the present invention.

파일 시스템(12)은, 커밋을 시작(S201)한 후에, 가장 먼저 트랜잭션의 상태를 커밋팅으로 변경한다(S202). 이는 다른 파일 연산들이 해당 트랜잭션에 접근하는 것을 막기 위함이다. The file system (12) first changes the status of the transaction to committing (S202) after starting the commit (S201). This is to prevent other file operations from accessing the transaction.

상기 파일 시스템(12)은, 커밋팅 트랜잭션으로의 변환이 완료되면 트랜잭션의 데이터 전송을 준비한다. The above file system (12) prepares for data transmission of the transaction once conversion to a committing transaction is completed.

트랜잭션의 데이터 전송은 3단계다. 저널 디스크립터 준비 단계(S210), 전송할 데이터 준비 단계(S200; S221~S226), 그리고 전송 단계(S230)다. The data transmission of a transaction consists of three stages: the journal descriptor preparation stage (S210), the data to be transmitted preparation stage (S200; S221~S226), and the transmission stage (S230).

저널 디스크립터 준비 단계(S210)에서는, 저널 디스크립터 블록을 생성하고 트랜잭션에 포함된 데이터들의 정보, 즉 저널링할 블록의 원래 블록 주소를 저장한다. In the journal descriptor preparation step (S210), a journal descriptor block is created and information about data included in the transaction, i.e., the original block address of the block to be journaled, is stored.

전송할 데이터 준비 단계(S220)에서는 트랜잭션에 포함된 블록들을 순회(S223)하면서 DMA 전송에 참여시킬 페이지들을 설정한다. 본 발명에서는 블록이 Hot 메타데이터 인지 아니면 Warm 메타데이터 여부를 판단하는 단계(S224), 충돌 빈도 등을 참조하여 Warm[H] 메타데이터인지 아니면 Warm[L] 메타데이터인지를 판단하는 단계(S225)를 거쳐, 쉐도우 페이지를 생성하는 단계(S226)가 실행될 수 있다. In the data preparation step (S220) to be transmitted, the pages to be involved in the DMA transmission are set while traversing the blocks included in the transaction (S223). In the present invention, a step (S224) of determining whether a block is Hot metadata or Warm metadata, a step (S225) of determining whether it is Warm[H] metadata or Warm[L] metadata by referring to the collision frequency, etc., may be performed, and a step (S226) of generating a shadow page may be performed.

전송 단계(S230)에서는 전송할 데이터 준비 단계에서 준비한 페이지의 내용들을 스토리지로 전송되도록 저장장치 명령어를 전송한다.In the transmission step (S230), a storage device command is transmitted so that the contents of the page prepared in the data preparation step to be transmitted are transmitted to storage.

이러한 단계들은 파일 시스템이 실행할 수 있다.These steps can be executed by the file system.

본 발명의 일 관점에 따라 제공되는 저널 충돌에 의한 파일 연산 중단 현상 해결 방법에서는, 충돌 페이지의 복사본을 만드는 주체는 커밋 연산이다. 즉, 커밋 연산이 충돌 페이지의 복사본을 만든다. 그리고 이때, 충돌 페이지의 복사본을 만드는 시점은 커밋 동작 중 전송이 시작되기 직전이다. 그리고 이때, 복사본 생성 여부를 판단하는 기준은, 본 명세서에서 공개하여 제안한 알고리즘으로 판단한다. 즉, 판단의 대상이 되는 페이지가 Hot 메타데이터의 페이지인지, Warm[H] 메타데이터의 페이지인지, 또는 Warm[L] 메타데이터의 페이지인지를 판별하는 알고리즘을 이용하여 판단할 수 있다. 본 발명에서 상기 'Warm[H] 메타데이터' 및 'Warm[L] 메타데이터'라는 용어는 본 명세서에 기재하지 않은 다른 단어로 대체될 수 있다.In a method for resolving a file operation interruption phenomenon due to a journal collision provided according to one aspect of the present invention, the subject that creates a copy of a collision page is a commit operation. That is, the commit operation creates a copy of the collision page. And at this time, the point in time when the copy of the collision page is created is right before transmission starts during the commit operation. And at this time, the criterion for determining whether a copy is created is determined by an algorithm proposed and disclosed in this specification. That is, it can be determined using an algorithm that determines whether a page to be determined is a page of Hot metadata, a page of Warm[H] metadata, or a page of Warm[L] metadata. In the present invention, the terms 'Warm[H] metadata' and 'Warm[L] metadata' may be replaced with other words not described in this specification.

본 발명의 일 관점에 따라 제공되는 트랜잭션 방법은, 호스트의 파일 시스템이, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및 상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계를 포함할 수 있다.According to one aspect of the present invention, a transaction method provided may include a first step in which a file system of a host copies pages of a first group among a plurality of transaction pages prepared by a running transaction to create shadow pages of the first group; and a second step in which the file system transfers pages of a second group among the plurality of transaction pages and shadow pages of the first group to a storage.

이때, 상기 제1그룹의 페이지들은 상기 복수 개의 트랜젝션 페이지들 중 복사가 필요한 모든 페이지들로 구성된 것일 수 있다.At this time, the pages of the first group may be composed of all pages among the plurality of transaction pages that require copying.

이때, 상기 전송은 상기 제1단계가 완료된 이후에 시작되는 것을 특징으로 할 수 있다.At this time, the transmission may be characterized in that it starts after the first step is completed.

이때, 상기 트랜잭션 방법은, 상기 제1단계 이전에, 상기 파일 시스템이, 상기 런닝 트랜잭션을 실행하여 상기 복수 개의 트랜잭션 페이지들을 준비하는 단계; 상기 파일 시스템이, 커밋을 시작하는 단계; 및 상기 파일 시스템이, 트랜잭션의 상태를 커밋 상태로 변경하는 단계;를 더 포함할 수 있다. 이때, 상기 제2단계 이후에, 상기 파일 시스템이 커밋을 종료하는 단계를 더 포함할 수 있다.At this time, the transaction method may further include, before the first step, a step in which the file system prepares the plurality of transaction pages by executing the running transaction; a step in which the file system initiates a commit; and a step in which the file system changes the state of the transaction to a commit state. At this time, after the second step, the file system may further include a step in which the file system terminates the commit.

이때, 상기 제2그룹의 페이지들은 상기 호스트에 포함된 메인 버퍼에 저장된 것이고, 상기 제1그룹의 쉐도우 페이지들은 상기 호스트에 포함된 쉐도우 버퍼에 저장된 것일 수 있다.At this time, the pages of the second group may be stored in the main buffer included in the host, and the shadow pages of the first group may be stored in the shadow buffer included in the host.

이때, 상기 복수 개의 트랜잭션 페이지들은 상기 호스트에 포함된 메인 버퍼에 저장된 것이고, 상기 제2그룹의 페이지들은 상기 복수 개의 트랜잭션 페이지들 중에서 상기 제1그룹의 페이지들을 제외한 나머지 페이지들로 구성된 것일 수 있다.At this time, the plurality of transaction pages are stored in the main buffer included in the host, and the pages of the second group may be composed of the remaining pages excluding the pages of the first group among the plurality of transaction pages.

이때, 상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제1임계값 이상인 메타데이터의 페이지들을 포함하며, 상기 제2그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제1임계값보다 작은 메타데이터들의 페이지들을 포함할 수 있다.At this time, the pages of the first group may include pages of metadata in which a journal collision frequency is greater than a predetermined first threshold value, and the pages of the second group may include pages of metadata in which a journal collision frequency is less than a predetermined first threshold value.

이때, 상기 제1단계는, 상기 파일 시스템이, 저널 디스크립터를 생성하는 단계; 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제1임계값 이상인 메타데이터의 페이지인지 여부를 결정하는 단계; 및 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제1임계값 이상인 메타데이터의 페이지인 경우에만 상기 트랜잭션 페이지를 복사하는 단계를 포함할 수 있다.At this time, the first step may include: a step in which the file system generates a journal descriptor; a step in which the file system determines, for each transaction page, whether the transaction page is a page of metadata in which a journal collision occurs at a frequency greater than or equal to the first threshold; and a step in which the file system copies the transaction page only if the transaction page is a page of metadata in which a journal collision occurs at a frequency greater than or equal to the first threshold.

또는, 상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제1임계값 이상인 메타데이터의 페이지들을 포함하며, 상기 제2그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제2임계값보다 작은 메타데이터들의 페이지들을 포함하며, 상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 상기 제1임계값 보다 작고 상기 제2임계값 이상인 메타데이터들의 페이지들을 더 포함하며, 상기 제2임계값은 상기 제1임계값보다 작을 수 있다.Alternatively, the pages of the first group include pages of metadata having a journal collision frequency greater than or equal to a first threshold value, the pages of the second group include pages of metadata having a journal collision frequency less than or equal to a second threshold value, and the pages of the first group further include pages of metadata having a journal collision frequency less than or equal to the first threshold value and greater than or equal to the second threshold value, wherein the second threshold value may be less than the first threshold value.

이때, 상기 제1단계는, 상기 파일 시스템이, 저널 디스크립터를 생성하는 단계; 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제2임계값 이상인 메타데이터의 페이지인지 여부를 결정하는 단계; 및 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제2임계값 이상인 메타데이터의 페이지인 경우에만 상기 트랜잭션 페이지를 복사하는 단계를 포함할 수 있다.At this time, the first step may include: a step in which the file system generates a journal descriptor; a step in which the file system determines, for each transaction page, whether the transaction page is a page of metadata in which a journal collision occurs at a frequency greater than or equal to the second threshold; and a step in which the file system copies the transaction page only if the transaction page is a page of metadata in which a journal collision occurs at a frequency greater than or equal to the second threshold.

본 발명의 일 관점에 따라 처리부; 및 통신부;를 포함하는 호스트가 제공될 수 있다. 상기 처리부는 상기 호스트의 파일 시스템을 실행하도록 되어 있다. 상기 파일 시스템은, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및 상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;를 실행하도록 되어 있다.According to one aspect of the present invention, a host including a processing unit; and a communication unit; may be provided. The processing unit is configured to execute a file system of the host. The file system is configured to execute a first step of copying pages of a first group among a plurality of transaction pages prepared by a running transaction to create a first group of shadow pages; and a second step of transmitting pages of a second group among the plurality of transaction pages and the first group of shadow pages to a storage.

이때, 상기 전송은 상기 제1단계가 완료된 이후에 시작된다.At this time, the transmission starts after the first step is completed.

이때, 상기 파일 시스템은, 상기 제1단계 이전에, 상기 파일 시스템이, 상기 런닝 트랜잭션을 실행하여 상기 복수 개의 트랜잭션 페이지들을 준비하는 단계; 상기 파일 시스템이, 커밋을 시작하는 단계; 및 상기 파일 시스템이, 트랜잭션의 상태를 커밋 상태로 변경하는 단계;를 더 실행하도록 되어 있을 수 있다. 그리고 상기 파일 시스템은, 상기 제2단계 이후에, 상기 파일 시스템이 커밋을 종료하는 단계;를 더 실행하도록 되어 있을 수 있다.At this time, the file system may be further configured to perform, prior to the first step, a step in which the file system prepares the plurality of transaction pages by executing the running transaction; a step in which the file system initiates a commit; and a step in which the file system changes the state of the transaction to a commit state. And the file system may be further configured to perform, after the second step, a step in which the file system terminates the commit.

본 발명의 다른 관점에 따라 호스트 및 스토리지를 포함하는 컴퓨팅 장치가 제공될 수 있다. 상기 호스트는 파일 시스템을 실행하도록 되어 있다. 그리고 상기 파일 시스템은, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및 상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;를 실행하도록 되어 있다. According to another aspect of the present invention, a computing device including a host and storage may be provided. The host is configured to execute a file system. And the file system is configured to execute a first step of copying pages of a first group among a plurality of transaction pages prepared by a running transaction to create a first group of shadow pages; and a second step of transferring pages of a second group among the plurality of transaction pages and the first group of shadow pages to a storage.

이때, 상기 제2그룹의 페이지들은 상기 호스트에 포함된 메인 버퍼에 저장된 것이고, 상기 제1그룹의 쉐도우 페이지들은 상기 호스트에 포함된 쉐도우 버퍼에 저장된 것일 수 있다.At this time, the pages of the second group may be stored in the main buffer included in the host, and the shadow pages of the first group may be stored in the shadow buffer included in the host.

본 발명의 일 관점에 따라 제공되는 페이징 방법은, EXT4, XFS 등 저널링 메커니즘을 사용하는 파일 시스템과 SQLite, MySQL 등 저널링 메커니즘을 사용하는 데이터베이스 시스템을 포함한 저널링을 사용하는 모든 소프트웨어에 적용될 수 있을 뿐만 아니라, 또한, 데이터센터 서버, 스마트폰 등의 임베디드 기기를 포함한 저널링을 사용하는 소프트웨어가 탑재된 모든 상용 제품과 이를 이용한 모든 서비스에 적용될 수 있다.The paging method provided according to one aspect of the present invention can be applied to all software using journaling, including file systems using journaling mechanisms such as EXT4 and XFS, and database systems using journaling mechanisms such as SQLite and MySQL, and also can be applied to all commercial products equipped with software using journaling, including embedded devices such as data center servers and smartphones, and all services using the same.

본 발명은 저널링을 사용하는 모든 소프트웨어에 적용 가능하다. 저널링은 소프트웨어가 사용하는 파일 구조의 일관성을 지켜주는 가장 기본적인 기술이기 때문에, 저널링은 파일 관리의 필수 기술이다. 저널링을 사용하는 소프트웨어는 임베디드 기기에 탑재되는 소형 어플리케이션부터 대형 데이터 센터에 탑재되는 시스템까지 다양하다. 본 발명은 저널링 성능 향상을 통해 임베디드 기기에서 서버에 이르기까지 다양한 서비스의 품질을 향상시킬 수 있다.The present invention is applicable to all software using journaling. Since journaling is the most basic technology that maintains the consistency of the file structure used by software, journaling is an essential technology for file management. Software using journaling ranges from small applications installed in embedded devices to systems installed in large data centers. The present invention can improve the quality of various services from embedded devices to servers by improving journaling performance.

본 발명에 따르면 저널 충돌로 인한 파일 연산 중단 현상을 해결하기 위하여 저널 영역에 기록할 블록의 복사본을 항상 유지하는 기술을 제공할 수 있다. 그리고 일반 파일 연산이 저널 충돌에 의해 중단되는 현상을 제거하는 기술을 제공할 수 있다.According to the present invention, in order to solve the phenomenon of file operation interruption due to journal collision, a technology can be provided that always maintains a copy of a block to be recorded in a journal area. In addition, a technology can be provided that eliminates the phenomenon of general file operations being interrupted due to journal collision.

도 1은 본 발명의 일 관점에 따라 제공되는 Semantics-aware Shadow Paging 방법의 작용원리를 설명한다.
도 2는 본 발명의 일 관점에 따라 제공되는 Semantics-aware Shadow Paging 방법이 적용된 저널 트랜잭션의 커밋 과정을 보여준다.
도 3은 일 실시예에 따라 호스트가 스토리지에 정보를 기록하는 개념을 나타낸 것이다.
도 4a 내지 도 4e는 일 실시예에서 파일 시스템이 허용하는 트랙잭션의 실행 기준을 설명한 것이다.
도 5는 두 개의 서로 다른 트랜잭션들이 발생하여 종료되는 과정의 일 예를 나타낸 것이다.
도 6은 본 발명의 일 실시예에 따라 제공되는 트랜잭션 수행방법을 나타낸 흐름도이다.
Figure 1 illustrates the working principle of a Semantics-aware Shadow Paging method provided according to one aspect of the present invention.
FIG. 2 shows a commit process of a journal transaction to which a Semantics-aware Shadow Paging method is applied according to one aspect of the present invention.
Figure 3 illustrates a concept in which a host writes information to storage according to one embodiment.
Figures 4a to 4e illustrate execution criteria for transactions allowed by a file system in one embodiment.
Figure 5 shows an example of a process in which two different transactions occur and are terminated.
FIG. 6 is a flowchart illustrating a transaction execution method provided according to one embodiment of the present invention.

이하, 본 발명의 실시예를 첨부한 도면을 참고하여 설명한다. 그러나 본 발명은 본 명세서에서 설명하는 실시예에 한정되지 않으며 여러 가지 다른 형태로 구현될 수 있다. 본 명세서에서 사용되는 용어는 실시예의 이해를 돕기 위한 것이며, 본 발명의 범위를 한정하고자 의도된 것이 아니다. 또한, 이하에서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다.Hereinafter, embodiments of the present invention will be described with reference to the attached drawings. However, the present invention is not limited to the embodiments described in this specification and may be implemented in various other forms. The terminology used in this specification is intended to help understanding of the embodiments and is not intended to limit the scope of the present invention. In addition, the singular forms used below also include the plural forms unless the phrases clearly indicate the opposite meaning.

도 3은 일 실시예에 따라 호스트가 스토리지에 정보를 기록하는 개념을 나타낸 것이다.Figure 3 illustrates a concept in which a host writes information to storage according to one embodiment.

호스트(10)와 저장소(20)는 각각 전원장치로부터 전력을 공급하여 동작하는 컴퓨팅 장치일 수 있다. 상기 호스트(10)와 상기 저장소(20)는 한 개 이상의 전송채널들(30)을 통해 데이터 및 명령을 교환할 수 있다. 상기 전송채널들(30)은 무선채널 또는 유선채널일 수 있다. 상기 호스트(10)와 상기 저장소(20)는 한 개의 전원장치로부터 제공되는 전원을 공유할 수도 있고, 또는 서로 다른 두 개의 전원장치들로부터 각각 전력을 공급받을 수도 있다.The host (10) and the storage (20) may each be computing devices that operate by supplying power from a power supply. The host (10) and the storage (20) may exchange data and commands through one or more transmission channels (30). The transmission channels (30) may be wireless channels or wired channels. The host (10) and the storage (20) may share power provided from one power supply, or may each receive power from two different power supplies.

상기 호스트(10)는 CPU, 메모리, 전원장치, 및 통신장치를 포함할 수 있다. The above host (10) may include a CPU, memory, power supply, and communication device.

상기 저장소(20)는 콘트롤러(21), 휘발성 메모리(22), 및 비휘발성 메모리(23)를 포함할 수 있다.The above storage (20) may include a controller (21), volatile memory (22), and non-volatile memory (23).

상기 호스트(10)는 상기 전송채널들(30)을 통해 각종 명령 및 데이터를 상기 저장소(20)에게 전송할 수 있다. 상기 명령에는 쓰기 명령이 포함될 수 있다.The above host (10) can transmit various commands and data to the storage (20) through the above transmission channels (30). The commands may include a write command.

상기 저장소(20)의 상기 콘트롤러(21)는 상기 전송채널들(30)로부터 수신한 명령을 기초로 상기 전송채널들(30)로부터 수신한 데이터를 상기 휘발성 메모리(22)에 저장할 수 있다. 상기 휘발성 메모리(22)에 저장된 데이터는 상기 콘트롤러(21)가 따르는 규칙에 의해 상기 비휘발성 메모리(23)에 저장될 수 있다. 상기 휘발성 메모리(22) 저장된 데이터는 상기 저장소(20)에 공급되는 전원이 차단되면 삭제될 수 있지만, 상기 비휘발성 메모리(23)에 저장된 데이터는 상기 저장소(20)에 공급되는 전원이 차단되더라도 삭제되지 않는다.The controller (21) of the storage (20) can store data received from the transmission channels (30) in the volatile memory (22) based on the command received from the transmission channels (30). The data stored in the volatile memory (22) can be stored in the nonvolatile memory (23) according to the rule followed by the controller (21). The data stored in the volatile memory (22) can be deleted when the power supplied to the storage (20) is cut off, but the data stored in the nonvolatile memory (23) is not deleted even when the power supplied to the storage (20) is cut off.

상기 호스트(10)는 어플리케이션(11)과 파일 시스템(12)을 실행할 수 있다. 상기 어플리케이션(11)과 상기 파일 시스템(12)은 상기 호스트(10)가 액세스하는 메모리에 저장된 소정의 명령코드들이 상기 호스트(10)에 포함된 CPU에 의해 실행됨으로써 실행되는 것일 수 있다. The above host (10) can execute an application (11) and a file system (12). The above application (11) and the above file system (12) may be executed by executing predetermined command codes stored in a memory accessed by the host (10) by a CPU included in the host (10).

일 실시예에서, 상기 어플리케이션(11)은 상기 호스트(10)는 사용하는 사용자가 상기 호스트(10)이 제공하는 사용자 인터페이스를 통해 사용자 입력을 제공함으로써 실행되거나 종료되는 프로그램일 수 있다. In one embodiment, the application (11) may be a program that is executed or terminated by a user providing user input through a user interface provided by the host (10).

일 실시예에서, 상기 파일 시스템(12)는 상기 호스트(10)에 전원이 인가되거나 리셋이 이루어지면 상기 호스트(10)에 의해 자동으로 실행되는 프로그램일 수 있다.In one embodiment, the file system (12) may be a program that is automatically executed by the host (10) when power is applied to the host (10) or a reset is performed.

상기 어플리케이션(11)은 상기 파일 시스템(12)에게 다양한 시스템 콜을 보낼 수 있다. 상기 파일 시스템(12)은 상기 시스템 콜에 대응하는 작업을 실행할 수 있다. The above application (11) can send various system calls to the file system (12). The file system (12) can execute a task corresponding to the system call.

상기 호스트(10)는 트랜잭션을 실행할 수 있다. 특정 트랜잭션이 시작되어 종료될 때까지 소정의 시간이 소요될 수 있다. 특정 시점에, 상기 호스트(10)는 한 개의 트랜잭션을 수행할 수 있다.The host (10) can execute a transaction. It may take a certain amount of time from the time a particular transaction starts until it ends. At a particular point in time, the host (10) can perform one transaction.

트랜잭션의 시작 및 커밋을 상기 어플리케이션(11)이 제어할 수 있다. 그리고 상기 트랜잭션 도중 실행되어야 하는 한 개 이상의 오퍼레이션들을 상기 어플리케이션(11)이 제어할 수 있다. 도 3에 제시하였듯이, 상기 어플리케이션(11)은 스타트 콜, 한 세트의 오퍼레이션 콜, 및 커밋 콜을 포함하는 시스템 콜들을 상기 파일 시스템(12)에 전송할 수 있다. The application (11) can control the start and commit of a transaction. And the application (11) can control one or more operations to be executed during the transaction. As shown in Fig. 3, the application (11) can transmit system calls including a start call, a set of operation calls, and a commit call to the file system (12).

상기 스타트 콜에 의해 특정 트랜잭션이 시작되고, 상기 한 세트의 오퍼레이션 콜들에 의해 상기 호스트(10)으로부터 상기 저장소(20)에게 전달되어야 하는 명령들이 준비되고, 그리고 상기 커밋 콜에 의해 상기 준비된 명령들이 상기 전송채널들(30)을 통해 상기 저장소(20)에게 전달될 수 있다.A specific transaction is started by the start call, commands to be transmitted from the host (10) to the storage (20) are prepared by the set of operation calls, and the prepared commands can be transmitted to the storage (20) through the transmission channels (30) by the commit call.

한편, 파일 시스템(12)에서 실행되는 특정 트랜잭션의 시작은 어플리케이션(11)의 트랜잭션 시작 콜을 필요로 하지 않을 수 있다. 본 발명의 일 실시예에서 다루는 트랜잭션의 시작은 어플리케이션(11)의 트랜잭션 시작 콜을 필요로 하지 않는 것일 수 있다.Meanwhile, the start of a specific transaction running in the file system (12) may not require a transaction start call from the application (11). The start of a transaction covered in one embodiment of the present invention may not require a transaction start call from the application (11).

도 4a 내지 도 4e는 일 실시예에서 파일 시스템이 허용하는 트랙잭션의 실행 기준을 설명한 것이다.Figures 4a to 4e illustrate execution criteria for transactions allowed by a file system in one embodiment.

상기 파일 시스템(12)은 런닝 트랜잭션(71) 및 커밋 트랜잭션(72)을 실행할 수 있다. The above file system (12) can execute a running transaction (71) and a commit transaction (72).

한 개의 런닝 트랜잭션(71)이 종료되면 다른 한 개의 런닝 트랜잭션(71)이 실행될 수 있다. 또한 한 개의 커밋 트랜잭션(72)이 종료되면 다른 한 개의 커밋 트랜잭션(72)이 실행될 수 있다.When one running transaction (71) ends, another running transaction (71) can be executed. Also, when one commit transaction (72) ends, another commit transaction (72) can be executed.

그러나 한 개의 런닝 트랜잭션(71)이 종료되기 이전에 다른 한 개의 런닝 트랜잭션(71)이 실행될 수는 없다. 또한, 한 개의 커밋 트랜잭션(72)이 종료되기 이전에 다른 한 개의 커밋 트랜잭션(72)이 실행될 수는 없다.However, another running transaction (71) cannot be executed before one running transaction (71) ends. Also, another commit transaction (72) cannot be executed before one commit transaction (72) ends.

그러나 한 개의 런닝 트랜잭션(71)이 종료되기 이전에 다른 한 개의 커밋 트랜잭션(72)이 실행되는 것은 가능하며, 한 개의 커밋 트랜잭션(72)이 종료되기 이전에 다른 한 개의 런닝 트랜잭션(71)이 실행될 수 있다. However, it is possible for another commit transaction (72) to be executed before one running transaction (71) ends, and another running transaction (71) can be executed before one commit transaction (72) ends.

즉, 도 4a에 나타낸 것과 같이, 서로 다른 두 개의 런닝 트랜잭션(71)들이 시간차를 두고 실행되는 것은 허용된다. 마찬가지로, 도 4b에 나타낸 것과 같이, 서로 다른 두 개의 커밋 트랜잭션(72)들이 시간차를 두고 실행되는 것은 허용된다. That is, as shown in Fig. 4a, it is allowed for two different running transactions (71) to be executed with a time difference. Similarly, as shown in Fig. 4b, it is allowed for two different commit transactions (72) to be executed with a time difference.

그러나 도 4c에 나타낸 것과 같이, 서로 다른 두 개의 런닝 트랜잭션(71)들이 시간 축에서 중첩되는 것은 허용되지 않는다. 마찬가지로 서로 다른 두 개의 커밋 트랜잭션(72)들이 시간 축에서 중첩되는 것은 허용되지 않는다. However, as shown in Fig. 4c, it is not allowed for two different running transactions (71) to overlap on the time axis. Similarly, it is not allowed for two different commit transactions (72) to overlap on the time axis.

그러나 도 4e에 나타낸 것과 같이, 한 개의 런닝 트랜잭션(71)과 한 개의 커밋 트랜잭션(72)이 시간 축에 중첩되는 것은 허용된다. However, as shown in Fig. 4e, it is allowed for one running transaction (71) and one commit transaction (72) to overlap on the time axis.

도 5는 두 개의 서로 다른 트랜잭션들이 발생하여 종료되는 과정의 일 예를 나타낸 것이다.Figure 5 shows an example of a process in which two different transactions occur and are terminated.

도 5에서 오른쪽이 먼저 발생한 시각이고 왼쪽이 나중에 발생한 시각이다.In Figure 5, the time on the right is the time that occurred first, and the time on the left is the time that occurred later.

파일 시스템(12)은 제1런닝 트랜잭션을 시구간 t11~t12에 실행하고, 제1커밋 트랜잭션을 시구간 t13~t14에 실행할 수 있다. 이로써 제1트랜잭션이 완료될 수 있다.The file system (12) can execute the first running transaction in the time period t11 to t12 and the first commit transaction in the time period t13 to t14. As a result, the first transaction can be completed.

파일 시스템(12)은 제2런닝 트랜잭션을 시구간 t21~t22에 실행하고, 제2커밋 트랜잭션을 시구간 t23~t24에 실행할 수 있다. 이로써 제2트랜잭션이 완료될 수 있다. The file system (12) can execute the second running transaction in the time period t21 to t22 and execute the second commit transaction in the time period t23 to t24. As a result, the second transaction can be completed.

이때, 파일 시스템(12)는 상기 제1커밋 트랜잭션이 실행되는 동안에 상기 제2런닝 트랜잭션을 실행하는 것을 허용한다.At this time, the file system (12) allows the second running transaction to be executed while the first commit transaction is being executed.

도 6은 본 발명의 일 실시예에 따라 제공되는 트랜잭션 수행방법을 나타낸 흐름도이다. FIG. 6 is a flowchart illustrating a transaction execution method provided according to one embodiment of the present invention.

도 6에서, 참조번호 51의 박스는 상기 런닝 트랜잭션에서 처리되어야 하는 페이지들을 저장하는 메인 버퍼(51)를 나타내고, 참조번호 52의 박스는 상기 메인 버퍼(51)에 저장된 페이지들 중 쉐도우 되어야 하는 페이지를 복제하여 저장하는 쉐도우 버퍼(52)를 나타내고, 참조번호 53의 박스는 상기 런닝 트랜잭션에 대응하는 커밋 트랜잭션에서 전송되어야 할 페이지들의 위치를 가리키는 포인터들을 저장하는 포인터 버퍼(53)을 나타낸다.In FIG. 6, a box with reference number 51 represents a main buffer (51) that stores pages to be processed in the running transaction, a box with reference number 52 represents a shadow buffer (52) that copies and stores pages to be shadowed among the pages stored in the main buffer (51), and a box with reference number 53 represents a pointer buffer (53) that stores pointers indicating the locations of pages to be transferred in a commit transaction corresponding to the running transaction.

상기 메인 버퍼(51), 상기 쉐도우 버퍼(52), 및 상기 포인터 버퍼(53)는 각각 제1세트의 버퍼, 제2세트의 버퍼, 및 제3세트의 버퍼로 호칭될 수 있다.The above main buffer (51), the above shadow buffer (52), and the above pointer buffer (53) may be referred to as a first set of buffers, a second set of buffers, and a third set of buffers, respectively.

참조번호 54의 사각형은 상기 메인 버퍼(51) 중 상기 Hot 메타데이터의 페이지가 저장된 페이지 버퍼(54)를 나타내고, 참조번호 55의 원형은 상기 메인 버퍼(51) 중 상기 Warm[H] 메타데이터(121)의 페이지가 저장된 페이지 버퍼(55)를 나타내고, 그리고 참조번호 56의 마름모는 상기 메인 버퍼(51) 중 상기 Warm[L] 메타데이터(122)의 페이지가 저장된 페이지 버퍼(56)를 나타낸다.The square of reference number 54 represents a page buffer (54) in which a page of the Hot metadata is stored among the main buffer (51), the circle of reference number 55 represents a page buffer (55) in which a page of the Warm[H] metadata (121) is stored among the main buffer (51), and the diamond of reference number 56 represents a page buffer (56) in which a page of the Warm[L] metadata (122) is stored among the main buffer (51).

상기 페이지 버퍼(54), 페이지 버퍼(55), 및 페이지 버퍼(56)는 각각 Hot 페이지 버퍼(54), Warm[H] 페이지 버퍼(55), 및 Warm[L] 페이지 버퍼(56)로 표현거나, 또는 제1페이지 버퍼(54), 제2페이지 버퍼(55), 및 제3페이지 버퍼(56)로 표현될 수 있다.The above page buffer (54), page buffer (55), and page buffer (56) may be expressed as a hot page buffer (54), a warm [H] page buffer (55), and a warm [L] page buffer (56), respectively, or may be expressed as a first page buffer (54), a second page buffer (55), and a third page buffer (56).

참조번호 57의 빗금친 사각형은 상기 메인 버퍼(51)에 저장된 Hot 메타데이터의 페이지를 복제하여 만든 Hot 쉐도우 페이지가 저장된 쉐도우 페이지 버퍼(57)를 나타낸다. 상기 쉐도우 페이지 버퍼(57)는 상기 쉐도우 버퍼(52)에 속한 것일 수 있다.The hatched rectangle of reference number 57 represents a shadow page buffer (57) in which a hot shadow page created by duplicating a page of hot metadata stored in the main buffer (51) is stored. The shadow page buffer (57) may belong to the shadow buffer (52).

참조번호 58의 빗금친 원형은 상기 메인 버퍼(51)에 저장된 상기 Warm[H] 메타데이터(121)의 페이지를 복제하여 만든 Warm 쉐도우 페이지가 저장된 쉐도우 페이지 버퍼(58)를 타나낸다. 상기 쉐도우 페이지 버퍼(58)는 상기 쉐도우 버퍼(52)에 속한 것일 수 있다.The hatched circle of reference number 58 represents a shadow page buffer (58) in which a Warm shadow page created by duplicating a page of the Warm[H] metadata (121) stored in the main buffer (51) is stored. The shadow page buffer (58) may belong to the shadow buffer (52).

상기 쉐도우 페이지 버퍼(57)와 상기 쉐도우 페이지 버퍼(57)는 각각 Hot 쉐도우 페이지 버퍼(57) 및 Warm 쉐도우 페이지 버퍼(58) 또는 제1쉐도우 페이지 버퍼(57) 및 제2쉐도우 페이지 버퍼(58)로 표현될 수 있다.The above shadow page buffer (57) and the above shadow page buffer (57) may be expressed as a hot shadow page buffer (57) and a warm shadow page buffer (58) or a first shadow page buffer (57) and a second shadow page buffer (58), respectively.

도 6에서 왼쪽 사이드에서 세로로 연장된 선은 시간축이며, 여기서 위쪽은 먼저 발생한 시각을 나타내고 아래쪽은 나중에 발생한 시각을 나타낸다.In Figure 6, the vertical line extending from the left side is the time axis, where the upper part indicates the time that occurred first and the lower part indicates the time that occurred later.

단계(S100)는 제1런닝 트랜잭션이 실행되는 단계이다. 상기 제1런닝 트랜잭션이 실행되는 동안, 상기 제1런닝 트랜잭션에서 처리되어야 하는 페이지들이 메인 버퍼(51)에 저장된다. Step (S100) is a step in which the first running transaction is executed. While the first running transaction is executed, pages to be processed in the first running transaction are stored in the main buffer (51).

도 6의 예에서, 상기 제1런닝 트랜잭션이 실행되는 동안, 상기 Hot 페이지 버퍼(54)에 저장된 페이지(P0)는 상기 Hot 메타데이터(110)이며, 상기 Warm[H] 페이지 버퍼(55)에 저장된 페이지(P1)는 충돌이 자주 발생한 Warm 메타데이터(120)이며, 그리고 상기 Warm[L] 페이지 버퍼(56)에 저장된 페이지(P2)는 충돌이 자주 발생하지 않은 Warm 메타데이터(120)이다. In the example of FIG. 6, while the first running transaction is being executed, the page (P 0 ) stored in the Hot page buffer (54) is the Hot metadata (110), the page (P 1 ) stored in the Warm[H] page buffer ( 55 ) is the Warm metadata (120) in which collisions frequently occur, and the page (P 2 ) stored in the Warm[L] page buffer (56) is the Warm metadata (120) in which collisions do not frequently occur.

단계(S200)는, 상기 제1런닝 트랜잭션에 대응하는 제1커밋 트랜잭션이 실행되는 단계를 나타낸다. 도 6에 나타낸 단계(S200)는 도 2에 나타낸 단계(S200)에 대응한다. 도 6에서는 편의상, 도 2의 단계(S201), 단계(202), 및 단계(S240)는 그 도시를 생략하였다.Step (S200) represents a step in which a first commit transaction corresponding to the first running transaction is executed. Step (S200) illustrated in Fig. 6 corresponds to step (S200) illustrated in Fig. 2. In Fig. 6, for convenience, steps (S201), (202), and (S240) of Fig. 2 are omitted from the illustration.

단계(S210)에서, 상기 파일 시스템(12)은 저널 디스크립터를 준비한다.In step (S210), the file system (12) prepares a journal descriptor.

도 2에서 단계(S220)에서는 변수 i의 초기값을 설정한다. 도 6의 단계(S220)에서도 변수 i의 값을 초기화한다. 도 6의 예에서, 상기 제1런닝 트랜잭션에서 메인 버퍼(51)에 저장한 페이지가 총 3개이므로, 변수 i는 3으로 초기화 된다.In step (S220) of Fig. 2, the initial value of variable i is set. In step (S220) of Fig. 6, the value of variable i is also initialized. In the example of Fig. 6, since there are a total of three pages stored in the main buffer (51) in the first running transaction, variable i is initialized to 3.

단계(S220)에서, i=2일 때에, i=2에 대응하는 페이지(P2)(=Pi=2)는 충돌이 자주 발생하지 않은 상기 Warm[L] 메타데이터(122)의 페이지이다. 본 발명의 일 실시예에서 상기 Warm[L] 메타데이터(122)의 페이지는 복제하지 않는다. 따라서 페이지(P2)(=Pi=2)는 상기 쉐도우 버퍼(52)에 복제하지 않는다. 그리고 이때, 상기 포인터 버퍼(53)에는 상기 메인 버퍼(51)에 저장된 원본 페이지(P2)의 위치를 가리키는 포인터(ptr2)가 저장된다.In step (S220), when i=2, the page (P 2 )(=P i=2 ) corresponding to i=2 is a page of the Warm[L] metadata (122) where collisions do not occur frequently. In one embodiment of the present invention, the page of the Warm[L] metadata (122) is not replicated. Therefore, the page (P 2 )(=P i=2 ) is not replicated in the shadow buffer (52). At this time, a pointer (ptr2) pointing to the location of the original page (P 2 ) stored in the main buffer (51) is stored in the pointer buffer (53).

i의 값은 스텝마다 감소할 수 있다.The value of i can decrease with each step.

단계(S220)에서, i=1일 때에, i=1에 대응하는 페이지(P1)(=Pi=1)는 충돌이 자주 발생하는 상기 Warm[H] 메타데이터(121)의 페이지이다. 본 발명의 일 실시예에서 상기 Warm[H] 메타데이터(121)의 원본 페이지를 복제한 Warm 쉐도우 페이지를 생성한다. 상기 복제된 Warm 쉐도우 페이지는 상기 Warm[H] 페이지 버퍼(55)에 저장된 페이지를 상기 Warm 쉐도우 페이지 버퍼(58)에 복제하여 저장한다. 결국 단계(S220)에서 상기 Warm[H] 메타데이터(121)의 페이지의 원본은 상기 메인 버퍼(51)에 저장된 상태를 유지하고, 상기 Warm[H] 메타데이터(121)의 페이지의 복사본은 상기 쉐도우 버퍼(52)에 저장된다. 그리고 이때, 상기 Warm[H] 메타데이터(121)의 페이지의 복사본인 Warm 쉐도우 페이지(P1)의 위치를 가리키는 포인터(ptr1)가 상기 포인터 버퍼(53)에 저장된다.In step (S220), when i=1, the page (P 1 ) (=P i=1 ) corresponding to i=1 is a page of the Warm[H] metadata (121) where collisions frequently occur. In one embodiment of the present invention, a Warm shadow page that is a copy of the original page of the Warm[H] metadata (121) is created. The copied Warm shadow page copies the page stored in the Warm[H] page buffer (55) and stores it in the Warm shadow page buffer (58). As a result, in step (S220), the original of the page of the Warm[H] metadata (121) is maintained in the state of being stored in the main buffer (51), and the copy of the page of the Warm[H] metadata (121) is stored in the shadow buffer (52). At this time, a pointer (ptr1) indicating the location of the Warm shadow page (P 1 ), which is a copy of the page of the Warm[H] metadata (121), is stored in the pointer buffer (53).

단계(S220)에서, i=0일 때에, i=0에 대응하는 페이지(P0)(=Pi=0)는 상기 Hot 메타데이터(100)의 페이지이다. 본 발명의 일 실시예에서 상기 Hot 메타데이터(100)의 페이지를 복제한 Hot 쉐도우 페이지를 생성한다. 상기 복제된 Hot 쉐도우 페이지는 상기 쉐도우 버퍼(52)의 상기 Hot 쉐도우 페이지 버퍼(57)에 저장한다. 결국 단계(S220)에서 상기 Hot 메타데이터(100)의 페이지의 원본은 상기 메인 버퍼(51)에 저장된 상태를 유지하고, 상기 Hot 메타데이터(100)의 페이지의 복사본은 상기 쉐도우 버퍼(52)에 저장된다. 그리고 이때, 상기 Hot 메타데이터(100)의 페이지의 복사본인 Hot 쉐도우 페이지(P0)의 위치를 가리키는 포인터(ptr0)가 상기 포인터 버퍼(53)에 저장된다.In step (S220), when i=0, the page (P 0 ) (=P i=0 ) corresponding to i=0 is the page of the Hot metadata (100). In one embodiment of the present invention, a Hot shadow page that is a copy of the page of the Hot metadata (100) is created. The copied Hot shadow page is stored in the Hot shadow page buffer (57) of the shadow buffer (52). As a result, in step (S220), the original of the page of the Hot metadata (100) is maintained in the state of being stored in the main buffer (51), and the copy of the page of the Hot metadata (100) is stored in the shadow buffer (52). At this time, a pointer (ptr0) indicating the position of the Hot shadow page (P 0 ), which is a copy of the page of the Hot metadata (100), is stored in the pointer buffer (53).

단계(S220)에서, 상기 메인 버퍼(51), 상기 쉐도우 버퍼(52), 및 상기 포인터 버퍼(53)을 완성함으로써 전송할 데이터의 준비를 완료할 수 있다. In step (S220), preparation of data to be transmitted can be completed by completing the main buffer (51), the shadow buffer (52), and the pointer buffer (53).

단계(S230)에서, 단계(S220)에서 준비한 페이지의 내용들을 스토리지로 전송되도록 저장장치 명령어를 전송한다. 구체적으로, 일 실시예에서 상기 파일 시스템(12)은 상기 포인터 버퍼(53)의 포인터들이 가리키는 위치에 저장된 페이지들을 읽을 수 있으며, 상기 파일 시스템(12)는 상기 읽은 페이지들을 상기 저장소(20)에 기록하는 명령을 상기 저장소(20)에게 전달할 수 있다. In step (S230), a storage device command is transmitted so that the contents of the page prepared in step (S220) are transmitted to the storage. Specifically, in one embodiment, the file system (12) can read pages stored at locations pointed to by the pointers of the pointer buffer (53), and the file system (12) can transmit a command to the storage (20) to write the read pages to the storage (20).

도 6에 제시한 예에서는, 상기 포인터 버퍼(53)의 포인터들이 가리키는 상기 Warm[L] 페이지 버퍼(56)에 저장된 원본 페이지(P2), 상기 Hot 쉐도우 페이지 버퍼(57)에 저장된 쉐도우 페이지(P0), 및 상기 Warm 쉐도우 페이지 버퍼(58)에 저장된 쉐도우 페이지(P1)가 단계(S230)에서 전송될 수 있다.In the example presented in Fig. 6, the original page (P 2 ) stored in the Warm[L] page buffer (56) pointed to by the pointers of the pointer buffer (53), the shadow page (P 0 ) stored in the Hot shadow page buffer (57), and the shadow page (P 1 ) stored in the Warm shadow page buffer (58) can be transmitted in step (S230).

만일, 단계(S230) 동안 또 다른 제2의 런닝 프로세스가 상기 메인 버퍼(51)의 상기 Hot 페이지 버퍼(54)에 저장된 원본 페이지(P0) 또는 상기 메인 버퍼(51)의 상기 Warm[H] 페이지 버퍼(55)에 저장된 원본 페이지(P1)을 변경한다고 하더라도, 단계(S230)에서 상기 저장소(20)에게 전송되는 데이터들의 원자성은 훼손되지 않는 것이 보장된다.Even if, during step (S230), another second running process changes the original page (P 0 ) stored in the Hot page buffer (54) of the main buffer ( 51 ) or the original page (P 1 ) stored in the Warm [H] page buffer (55) of the main buffer ( 51 ), it is guaranteed that the atomicity of the data transmitted to the storage (20) in step (S230) is not damaged.

본 발명의 일 실시예이 특징은, 원자성이 보장되어야 하는 한 세트의 페이지들에 대한 전송이 시작되기 이전에, 상기 한 세트의 페이지들에 중 미리 결정된 조건을 만족하는 페이지들의 복제를 완료한다는 점이다. 그리고 복제된 페이지에 대해서는, 원본 페이지를 전송하지 않고 복제된 페이지를 전송한다는 점이 특징이다.One embodiment of the present invention is characterized in that, before transmission of a set of pages for which atomicity must be guaranteed begins, replication of pages satisfying a predetermined condition among the set of pages is completed. In addition, for the replicated pages, the replicated pages are transmitted instead of the original pages.

본 발명의 일 실시예에 따라 제공되는 트랜잭션 방법은, 호스트의 파일 시스템이, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및 상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계를 포함할 수 있다. A transaction method provided according to one embodiment of the present invention may include a first step in which a file system of a host copies pages of a first group among a plurality of transaction pages prepared by a running transaction to create shadow pages of the first group; and a second step in which the file system transfers pages of a second group among the plurality of transaction pages and shadow pages of the first group to a storage.

여기서, 상기 제1그룹의 페이지들은 상기 Hot 메타데이터(110)의 페이지를 포함할 수 있다. 그리고 상기 제2그룹의 페이지들은 상기 Warm[L] 메타데이터(122)를 포함할 수 있다.Here, the pages of the first group may include pages of the Hot metadata (110). And the pages of the second group may include the Warm[L] metadata (122).

또한, 상기 제1그룹의 페이지들은 상기 Warm[H] 메타데이터(121)의 페이지를 더 포함할 수도 있다. Additionally, the pages of the first group may further include pages of the Warm[H] metadata (121).

이때, 상기 제1그룹의 페이지들은 상기 복수 개의 트랜젝션 페이지들 중 복사가 필요한 모든 페이지들로 구성된 것일 수 있다. 여기서 상기 복사가 필요한 모든 페이지들은 상기 Hot 메타데이터(110)의 페이지를 포함한다. 또한, 상기 복사가 필요한 모든 페이지들은 상기 Warm[H] 메타데이터(121)의 페이지를 더 포함할 수도 있다. At this time, the pages of the first group may be composed of all pages among the plurality of transaction pages that require copying. Here, all pages that require copying include pages of the Hot metadata (110). In addition, all pages that require copying may further include pages of the Warm [H] metadata (121).

이때, 상기 트랜잭션 방법은, 상기 제1단계 이전에, 상기 파일 시스템이, 상기 런닝 트랜잭션을 실행하여 상기 복수 개의 트랜잭션 페이지들을 준비하는 단계를 더 포함할 수 있다. 여기서 상기 준비된 복수 개의 트랜잭션 페이지들은 상기 메인 버퍼(51)에 저장된 것일 수 있다.At this time, the transaction method may further include, prior to the first step, a step in which the file system prepares the plurality of transaction pages by executing the running transaction. Here, the prepared plurality of transaction pages may be stored in the main buffer (51).

이때, 상기 제1그룹의 페이지들은 저널 충돌이 발생하는 빈도가 소정의 제1임계값 이상인 메타데이터의 페이지들을 포함하며 상기 제2그룹의 페이지들은 저널 충돌이 발생하는 빈도가 소정의 제1임계값보다 작은 메타데이터들의 페이지들을 포함할 수 있다. 이때, 상기 제1단계는, 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제1임계값 이상인 메타데이터의 페이지인지 여부를 결정하는 단계; 및 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제1임계값 이상인 메타데이터의 페이지인 경우에만 상기 트랜잭션 페이지를 복사하는 단계를 포함할 수 있다. 여기서 상기 제1그룹의 페이지들은 상기 Hot 메타데이터(110)의 페이지들이고, 상기 제2그룹의 페이지들은 상기 Warm[H] 메타데이터(121)의 페이지들 및 상기 Warm[L] 메타데이터(122)의 페이지들이다. At this time, the pages of the first group may include pages of metadata having a journal collision frequency greater than or equal to a first threshold value, and the pages of the second group may include pages of metadata having a journal collision frequency less than or equal to the first threshold value. At this time, the first step may include: a step in which, for each of the transaction pages, the file system determines whether the transaction page is a page of metadata having a journal collision frequency greater than or equal to the first threshold value; and a step in which, for each of the transaction pages, the file system copies the transaction page only when the transaction page is a page of metadata having a journal collision frequency greater than or equal to the first threshold value. Here, the pages of the first group are pages of the Hot metadata (110), and the pages of the second group are pages of the Warm[H] metadata (121) and pages of the Warm[L] metadata (122).

이때, 상기 제1그룹의 페이지들은 저널 충돌이 발생하는 빈도가 소정의 제1임계값 이상인 메타데이터(=Hot 메타데이터)의 페이지들을 포함하며; 상기 제2그룹의 페이지들은 저널 충돌이 발생하는 빈도가 소정의 제2임계값보다 작은 메타데이터(=Warm[L] 메타데이터)의 페이지들을 포함하며; 그리고 상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 상기 제1임계값 보다 작고 상기 제2임계값 이상인 메타데이터(=Warm[H] 메타데이터)의 페이지들을 더 포함할 수 있다. 이때, 상기 제2임계값은 상기 제1임계값보다 작다. 이때, 상기 제1단계는, 상기 각각의 트랙잰션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가 저널 충돌이 발생하는 빈도가 상기 제2임계값 이상인 메타데이터의 페이지인지 여부를 결정하는 단계; 및 상기 파일 시스템이, 상기 트랜잭션 페이지가 저널 충돌이 발생하는 빈도가 상기 제2임계값 이상인 메타데이터의 페이지인 경우에만 상기 트랜잭션 페이지를 복사하는 단계;를 포함할 수 있다.At this time, the pages of the first group include pages of metadata (=Hot metadata) having a journal collision frequency greater than or equal to a first threshold value; the pages of the second group include pages of metadata (=Warm[L] metadata) having a journal collision frequency less than or equal to a second threshold value; and the pages of the first group may further include pages of metadata (=Warm[H] metadata) having a journal collision frequency less than or equal to the first threshold value and greater than or equal to the second threshold value. At this time, the second threshold value is less than the first threshold value. At this time, the first step may include, for each transaction page, a step in which the file system determines whether the transaction page is a page of metadata having a journal collision frequency greater than or equal to the second threshold value; and a step in which the file system copies the transaction page only if the transaction page is a page of metadata having a journal collision frequency greater than or equal to the second threshold value.

상술한 본 발명의 실시예들을 이용하여, 본 발명의 기술 분야에 속하는 자들은 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에 다양한 변경 및 수정을 용이하게 실시할 수 있을 것이다. 특허청구범위의 각 청구항의 내용은 본 명세서를 통해 이해할 수 있는 범위 내에서 인용관계가 없는 다른 청구항에 결합될 수 있다.By using the embodiments of the present invention described above, those who belong to the technical field of the present invention will be able to easily perform various changes and modifications within the scope that does not depart from the essential characteristics of the present invention. The content of each claim of the patent claims can be combined with other claims that do not have a citation relationship within the scope that can be understood through this specification.

[사사][Sasa]

본 발명은 대한민국 정부가 지원한 다음 연구과제의 지원을 받아 창작된 것이다.This invention was created with the support of the following research project supported by the Government of the Republic of Korea.

1. 연구과제11. Research project 1

*부처명: 과학기술정보통신부*Ministry Name: Ministry of Science and ICT

*과제고유번호: 20180005490031001*Task ID Number: 20180005490031001

*연구사업명: SW컴퓨팅산업원천기술개발사업*Research Project Name: SW Computing Industry Core Technology Development Project

*연구과제명: 매니코어 초대용량 메모리를 위한 확장형 순서보장 운영체제 개발*Research Project Name: Development of an Expandable Order-Guaranteed Operating System for Manycore Large-Capacity Memory

*주관기관: 한국과학기술원*Organization: Korea Advanced Institute of Science and Technology

*연구관리전문기관: 정보통신기획평가원*Research management specialist organization: Information and Communications Technology Planning and Evaluation Institute

*연구기간: 2018.04.01.~2022.12.31*Research period: 2018.04.01.~2022.12.31

2. 연구과제22. Research project 2

*부처명: 과학기술정보통신부*Ministry Name: Ministry of Science and ICT

*과제고유번호: 2020R1A2C300852511*Task ID: 2020R1A2C300852511

*연구사업명: 이공분야기초연구사업*Research Project Name: Basic Research Project in Science and Engineering

*연구과제명: 초저지연 저장장치를 위한 무경쟁 확장형 입출력 서브시스템 연구(2020)*Research Project Name: Research on a Non-Competitive Scalable I/O Subsystem for Ultra-Low-Latency Storage Devices (2020)

*연구관리전문기관: 한국연구재단*Research Management Specialist Organization: National Research Foundation of Korea

Claims (15)

호스트의 파일 시스템이, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 복사가 필요한 모든 페이지들로 구성된 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및
상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;
를 포함하는,
트랜잭션 방법.
A first step in which the host's file system creates a first group of shadow pages by copying a first group of pages consisting of all pages that need to be copied among a plurality of transaction pages prepared by a running transaction; and
A second step in which the file system transfers pages of the second group among the plurality of transaction pages and shadow pages of the first group to storage;
Including,
Transaction method.
제1항에 있어서, 상기 전송은 상기 제1단계가 완료된 이후에 시작되는 것을 특징으로 하는, 트랜잭션 방법.A transaction method according to claim 1, characterized in that the transmission is initiated after the first step is completed. 제1항에 있어서,
상기 제1단계 이전에,
상기 파일 시스템이, 상기 런닝 트랜잭션을 실행하여 상기 복수 개의 트랜잭션 페이지들을 준비하는 단계;
상기 파일 시스템이, 커밋을 시작하는 단계; 및
상기 파일 시스템이, 트랜잭션의 상태를 커밋 상태로 변경하는 단계;
를 더 포함하며,
상기 제2단계 이후에,
상기 파일 시스템이 커밋을 종료하는 단계;
를 더 포함하는,
트랜잭션 방법.
In the first paragraph,
Before the above step 1,
A step in which the above file system prepares the plurality of transaction pages by executing the running transaction;
The above file system, the step of starting a commit; and
The above file system changes the state of a transaction to a commit state;
Including more,
After the above second step,
The step where the above file system terminates the commit;
Including more,
Transaction method.
제1항에 있어서,
상기 제2그룹의 페이지들은 상기 호스트에 포함된 메인 버퍼에 저장된 것이고,
상기 제1그룹의 쉐도우 페이지들은 상기 호스트에 포함된 쉐도우 버퍼에 저장된 것인,
트랜잭션 방법.
In the first paragraph,
The pages of the second group are stored in the main buffer included in the host,
The shadow pages of the first group are stored in a shadow buffer included in the host.
Transaction method.
제1항에 있어서,
상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제1임계값 이상인 메타데이터의 페이지들을 포함하며,
상기 제2그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제1임계값보다 작은 메타데이터들의 페이지들을 포함하며,
트랜잭션 방법.
In the first paragraph,
The pages of the first group above include pages of metadata for which the frequency of journal collision occurrence is greater than a predetermined first threshold value,
The pages of the second group above include pages of metadata for which the frequency of journal collision occurrence is less than a predetermined first threshold,
Transaction method.
제5항에 있어서,
상기 제1단계는,
상기 파일 시스템이, 저널 디스크립터를 생성하는 단계;
상기 각각의 트랙잭션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제1임계값 이상인 메타데이터의 페이지인지 여부를 결정하는 단계; 및
상기 각각의 트랙잭션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제1임계값 이상인 메타데이터의 페이지인 경우에만 상기 트랜잭션 페이지를 복사하는 단계;
를 포함하는,
트랜잭션 방법.
In paragraph 5,
The above first step is,
The above file system creates a journal descriptor;
For each of the above transaction pages, the file system determines whether the transaction page is a page of metadata whose frequency of journal conflict occurrence is greater than or equal to the first threshold; and
For each of the above transaction pages, the file system copies the transaction page only if the transaction page is a page of metadata whose frequency of journal conflict occurrence is greater than or equal to the first threshold;
Including,
Transaction method.
제1항에 있어서,
상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제1임계값 이상인 메타데이터의 페이지들을 포함하며,
상기 제2그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제2임계값보다 작은 메타데이터들의 페이지들을 포함하며,
상기 제1그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 상기 제1임계값 보다 작고 상기 제2임계값 이상인 메타데이터들의 페이지들을 더 포함하며,
상기 제2임계값은 상기 제1임계값보다 작은,
트랜잭션 방법.
In the first paragraph,
The pages of the first group above include pages of metadata for which the frequency of journal collision occurrence is greater than a predetermined first threshold value,
The pages of the second group above include pages of metadata for which the frequency of journal collision occurrence is less than a predetermined second threshold,
The pages of the first group further include pages of metadata in which the frequency of journal collision occurrence is less than the first threshold and greater than or equal to the second threshold,
The above second threshold is smaller than the above first threshold.
Transaction method.
호스트의 파일 시스템이, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및
상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;
를 포함하며,
상기 복수 개의 트랜잭션 페이지들은 상기 호스트에 포함된 메인 버퍼에 저장된 것이고,
상기 제2그룹의 페이지들은 상기 복수 개의 트랜잭션 페이지들 중에서 상기 제1그룹의 페이지들을 제외한 나머지 페이지들로 구성된 것인,
트랜잭션 방법.
A first step in which the host's file system creates a first group of shadow pages by copying pages of a first group among a plurality of transaction pages prepared by a running transaction; and
A second step in which the file system transfers pages of the second group among the plurality of transaction pages and shadow pages of the first group to storage;
Including,
The above multiple transaction pages are stored in the main buffer included in the host,
The pages of the second group are composed of the remaining pages among the plurality of transaction pages, excluding the pages of the first group.
Transaction method.
삭제delete 호스트의 파일 시스템이, 런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및
상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;
를 포함하며,
상기 제2그룹의 페이지들은, 저널 충돌이 발생하는 빈도가 소정의 제2임계값보다 작은 메타데이터들의 페이지들을 포함하며,
상기 제1단계는,
상기 파일 시스템이, 저널 디스크립터를 생성하는 단계; 및
상기 각각의 트랙잭션 페이지에 대하여, 상기 파일 시스템이, 상기 트랜잭션 페이지가, 저널 충돌이 발생하는 빈도가 상기 제2임계값 이상인 메타데이터의 페이지인 경우에만 상기 트랜잭션 페이지를 복사하는 단계;
를 포함하는,
트랜잭션 방법.
A first step in which the host's file system creates a first group of shadow pages by copying pages of a first group among a plurality of transaction pages prepared by a running transaction; and
A second step in which the file system transfers pages of the second group among the plurality of transaction pages and shadow pages of the first group to storage;
Including,
The pages of the second group above include pages of metadata for which the frequency of journal collision occurrence is less than a predetermined second threshold,
The above first step is,
The above file system comprises a step of creating a journal descriptor; and
For each of the above transaction pages, the file system copies the transaction page only if the transaction page is a page of metadata whose journal conflict frequency is greater than or equal to the second threshold;
Including,
Transaction method.
호스트로서,
처리부; 및 통신부;를 포함하며,
상기 처리부는 상기 호스트의 파일 시스템을 실행하도록 되어 있고,
상기 파일 시스템은,
런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 복사가 필요한 모든 페이지들로 구성된 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및
상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;
를 실행하도록 되어 있는 것을 특징으로 하는,
호스트.
As a host,
Processing unit; and communication unit; including;
The above processing unit is configured to execute the file system of the host,
The above file system,
A first step of creating a first group of shadow pages by copying pages of a first group consisting of all pages that need to be copied among a plurality of transaction pages prepared by a running transaction; and
A second step in which the file system transfers pages of the second group among the plurality of transaction pages and shadow pages of the first group to storage;
characterized by being configured to execute,
Host.
제11항에 있어서, 상기 전송은 상기 제1단계가 완료된 이후에 시작되는 것을 특징으로 하는, 호스트.A host, characterized in that in claim 11, the transmission is started after the first step is completed. 제11항에 있어서,
상기 파일 시스템은,
상기 제1단계 이전에,
상기 파일 시스템이, 상기 런닝 트랜잭션을 실행하여 상기 복수 개의 트랜잭션 페이지들을 준비하는 단계;
상기 파일 시스템이, 커밋을 시작하는 단계; 및
상기 파일 시스템이, 트랜잭션의 상태를 커밋 상태로 변경하는 단계;
를 더 실행하도록 되어 있고,
상기 제2단계 이후에,
상기 파일 시스템이 커밋을 종료하는 단계;
를 더 실행하도록 되어 있는,
호스트.
In Article 11,
The above file system,
Before the above step 1,
A step in which the above file system prepares the plurality of transaction pages by executing the running transaction;
The above file system, the step of starting a commit; and
The above file system changes the state of a transaction to a commit state;
is designed to run more,
After the above second step,
The step where the above file system terminates the commit;
is supposed to run more,
Host.
호스트 및 스토리지를 포함하는 컴퓨팅 장치로서,
상기 호스트는 파일 시스템을 실행하도록 되어 있고,
상기 파일 시스템은,
런닝 트랜잭션에 의해 준비된 복수 개의 트랜잭션 페이지들 중 복사가 필요한 모든 페이지들로 구성된 제1그룹의 페이지들을 복사하여 제1그룹의 쉐도우 페이지를 생성하는 제1단계; 및
상기 파일 시스템이, 상기 복수 개의 트랜잭션 페이지들 중 제2그룹의 페이지들과 상기 제1그룹의 쉐도우 페이지들을 저장소에 전송하는 제2단계;
를 실행하도록 되어 있는 것을 특징으로 하는,
컴퓨팅 장치.
A computing device comprising a host and storage,
The above host is configured to run a file system,
The above file system,
A first step of creating a first group of shadow pages by copying pages of a first group consisting of all pages that need to be copied among a plurality of transaction pages prepared by a running transaction; and
A second step in which the file system transfers pages of the second group among the plurality of transaction pages and shadow pages of the first group to storage;
characterized by being configured to execute,
Computing device.
제14항에 있어서,
상기 제2그룹의 페이지들은 상기 호스트에 포함된 메인 버퍼에 저장된 것이고,
상기 제1그룹의 쉐도우 페이지들은 상기 호스트에 포함된 쉐도우 버퍼에 저장된 것인,
컴퓨팅 장치.
In Article 14,
The pages of the second group are stored in the main buffer included in the host,
The shadow pages of the first group are stored in a shadow buffer included in the host.
Computing device.
KR1020210167383A 2020-11-27 2021-11-29 Method to solve the problem that file operation is blocked because of journal conflict Active KR102837532B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200162261 2020-11-27
KR20200162261 2020-11-27

Publications (2)

Publication Number Publication Date
KR20220074804A KR20220074804A (en) 2022-06-03
KR102837532B1 true KR102837532B1 (en) 2025-07-23

Family

ID=81983181

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210167383A Active KR102837532B1 (en) 2020-11-27 2021-11-29 Method to solve the problem that file operation is blocked because of journal conflict

Country Status (1)

Country Link
KR (1) KR102837532B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106868A (en) * 2004-09-30 2006-04-20 Toshiba Corp File system having file management function and file management method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101674176B1 (en) * 2014-07-24 2016-11-08 성균관대학교산학협력단 Method and apparatus for fsync system call processing using ordered mode journaling with file unit
KR102007117B1 (en) * 2018-01-19 2019-08-02 전북대학교산학협력단 Method and system for processing transaction
KR102123616B1 (en) * 2018-02-09 2020-06-17 한양대학교 산학협력단 Method and apparatus for parallel journaling using conflict page list

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006106868A (en) * 2004-09-30 2006-04-20 Toshiba Corp File system having file management function and file management method

Also Published As

Publication number Publication date
KR20220074804A (en) 2022-06-03

Similar Documents

Publication Publication Date Title
EP3531292B1 (en) Methods and apparatus for supporting persistent memory
JP2916420B2 (en) Checkpoint processing acceleration device and data processing method
JP6470300B2 (en) Method and processor for data processing
KR102263040B1 (en) Method for management of Multi-Core Solid State Driver
JP4378335B2 (en) Device for dynamically switching transaction / data writing method to disk, switching method, and switching program
US10140194B2 (en) Storage system transactions
CN115292407A (en) Synchronization method, apparatus and storage medium
US9058244B2 (en) Durable and coherent cache transactions between volatile and non-volatile memories
CN111124255B (en) Data storage method, electronic device and computer program product
US20120226832A1 (en) Data transfer device, ft server and data transfer method
KR20210096153A (en) A method of compressing data for storage in cache memories in a hierarchy of cache memories
CN110515705B (en) Scalable persistent transactional memory and how it works
CN107341114A (en) A kind of method of directory management, Node Controller and system
US20170366612A1 (en) Parallel processing device and memory cache control method
CN110990133A (en) Edge computing service migration method and device, electronic equipment and medium
KR102837532B1 (en) Method to solve the problem that file operation is blocked because of journal conflict
EP3183675B1 (en) Systems and methods for highly-available file storage with fast online recovery
US9164904B2 (en) Accessing remote memory on a memory blade
US9323671B1 (en) Managing enhanced write caching
EP3256957B1 (en) Externalized execution of input method editor
KR20160086820A (en) Concurrently accessing memory
KR101881038B1 (en) Method for atomic update of memory mapped files stored in non-volatile memory and control apparatus thereof
CN114145005B (en) Cluster coherent cloud read caching without coherent messaging
US20250036654A1 (en) Quorum-based scalable database system
JP2009157880A (en) Server device and file system

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

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

P11-X000 Amendment of application requested

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

P13-X000 Application amended

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

PG1501 Laying open of application

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

R18-X000 Changes to party contact information recorded

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

R18-X000 Changes to party contact information recorded

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

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

E902 Notification of reason for refusal
PE0902 Notice of grounds for rejection

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

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

T11-X000 Administrative time limit extension requested

St.27 status event code: U-3-3-T10-T11-oth-X000

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

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

P13-X000 Application amended

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

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

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

PR0701 Registration of establishment

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

PR1002 Payment of registration fee

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

PG1601 Publication of registration

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