KR20190003091A - Device and method on file system journaling using atomic operation - Google Patents

Device and method on file system journaling using atomic operation Download PDF

Info

Publication number
KR20190003091A
KR20190003091A KR1020170083572A KR20170083572A KR20190003091A KR 20190003091 A KR20190003091 A KR 20190003091A KR 1020170083572 A KR1020170083572 A KR 1020170083572A KR 20170083572 A KR20170083572 A KR 20170083572A KR 20190003091 A KR20190003091 A KR 20190003091A
Authority
KR
South Korea
Prior art keywords
write
information
atomic
pieces
write request
Prior art date
Application number
KR1020170083572A
Other languages
Korean (ko)
Other versions
KR101966399B1 (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 단국대학교 산학협력단
Priority to KR1020170083572A priority Critical patent/KR101966399B1/en
Publication of KR20190003091A publication Critical patent/KR20190003091A/en
Application granted granted Critical
Publication of KR101966399B1 publication Critical patent/KR101966399B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a device and a method for file system journaling using an atomic operation. More specifically, the device and method: receive a write request and a plurality of pieces of information including additional information for an atomic operation from an application; determine whether an atomic write request exists in the received write request; record the plurality of pieces of information in a write buffer in a storage if the atomic write request exists as a result of determination; and control to commit a mapping table of a flash translation layer (FTL) when the plurality of pieces of information are completely recorded in the write buffer. Accordingly, consistency problems of a file system can be resolved by efficiently using the storage.

Description

원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법{Device and method on file system journaling using atomic operation}Technical Field [0001] The present invention relates to a file system journaling apparatus and method using an atomic operation,

본 발명은 저널링 장치 및 방법에 관한 것으로, 구체적으로는 별도의 저널영역의 사용 없이 원자적 연산을 지원하여 저널링의 부하를 줄이는 원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법에 관한 것이다.The present invention relates to a journaling apparatus and method, and more particularly, to an apparatus and method for journaling a file system using an atomic operation that supports atomic operations without using a separate journal area to reduce the load of journaling.

파일 시스템은 컴퓨터를 사용하기 위한 필수적인 운영체제의 구성요소로서, 이러한 파일 시스템의 동작은 파일과 디렉터리 생성을 위해 여러 개의 쓰기 동작으로 이루어져 있다. 구체적으로는 파일과 디렉터리 엔트리(entry)를 수정하고, 데이터 비트맵(bitmap), 아이노드(inode) 비트맵과 아이노드 블록을 수정하며, 데이파일 시스템은 컴퓨터를 사용하기 위한 필수적인 운영체제의 구성요소로서, 이러한 파일 시스템의 동작은 파일과 디렉터리 생성을 위해 여러 개의 쓰기 동작으로 이루어져 있다. 구체적으로는 파일과 디렉터리 엔트리(entry)를 수정하고, 데이터 비트맵(bitmap), 아이노드(inode) 비트맵과 아이노드 블록을 수정하며, 데이터를 데이터 영역에 기록한다. 이 때 중요한 것은 쓰기 요청이 모두 쓰여지거나 또는 하나도 쓰여지지 말아야 일관성이 유지된다는 것이다. 이러한 여러 개의 쓰기 동작 도중 의도치 않게 시스템이 멈추거나, 정전으로 컴퓨터가 꺼지게 되는 경우, 일부 데이터만 쓰여지는 경우가 발생할 수 있으며 파일 시스템이 비정상적인 상태에 놓이게 된다. 예를 들어 아이노드만 쓰여지고 데이터가 쓰여지지 않은 경우, 가비지 데이터를 읽을 수 있다.A file system is a component of an operating system essential for using a computer, and the operation of such a file system is composed of a plurality of write operations for file and directory creation. Specifically, it modifies file and directory entries, modifies data bitmaps, inode bitmaps and inode blocks, and the data file system is an essential component of an operating system , And the operation of such a file system consists of several write operations for file and directory creation. Specifically, it modifies file and directory entries, modifies data bitmaps, inode bitmaps and inode blocks, and writes data to the data area. The important thing is that all requests for writing should be written, or none should be written, so that consistency is maintained. If the system is unintentionally stopped during these multiple write operations, or if the computer is turned off due to a power outage, some data may be written, and the file system may be in an abnormal state. For example, if only the inode is written and no data is written, the garbage data can be read.

이를 해결하기 위해 파일 시스템의 일관성 체크를 위한 fsck(file system check) 기능이 존재한다. fsck는 파일 시스템을 마운트(mount)하는 시점에 기존의 파일 시스템이 정상적으로 마운트해제(unmount)되지 않았다면 검사를 수행하게 되며, 저장장치 내에 있는 모든 아이노드와 비트맵 데이터 등의 메타데이터를 검사하며 일관성 문제를 해결한다. 그러나 저장장치의 용량 증가로 인해 모든 메타데이터를 검사하면 많은 시간이 소요되는 문제가 발생하게 되고, 이 때문에 빅데이터나 클라우드 환경에서 사용하기에는 한계가 있다.To solve this problem, there is a file system check (fsck) function for checking the consistency of the file system. fsck will check if the existing file system has not been unmounted properly at the time the file system is mounted and will check the metadata of all the inodes and bitmap data in the storage device, Solve the problem. However, due to the increase in the capacity of the storage device, it takes a lot of time to examine all the metadata. Therefore, there is a limit to use in a big data or a cloud environment.

파일 시스템에서 다중 쓰기 요청에 대한 일관성 유지의 또 다른 기법이 저널링(Journaling)이다. 저널링 기법은 파일 시스템의 일관성 향상을 위한 보편적인 기법으로서, 저널링 성능 및 수명 문제는 중요한 이슈로 다루어지고 있다. 이러한 저널링 기법을 구체적으로 설명하면 다음과 같다.Another technique for maintaining consistency in multiple write requests in the file system is journaling. Journaling techniques are a common technique for improving the consistency of file systems. Journaling performance and lifetime issues are considered as important issues. This journaling technique will be described in detail as follows.

저널링 기법은 다중 쓰기 요청에 대해 데이터 저장장치에 직접 갱신(in-place update)하는 것이 아니라, 저널이라 불리는 영역에 기록한다. 모든 쓰기에 대한 저널이 완료되면 커밋(commit)한다. 그 이후 저널의 내용을 저장장치의 실제 위치에 갱신하는 체크포인트(checkpoint)를 한다. 따라서 시스템이 갑자기 종료되더라도 커밋 여부에 따라 undo 또는 redo를 수행할 수 있기 때문에, 시스템은 항상 일관된 상태를 보장할 수 있다. 구체적으로 undo를 하게 되면 기존의 일관된 상태로 돌아가게 되며(rollback), redo를 하게 되면 새로운 일관된 상태로 바뀌게 된다. 또한 저장장치 전체를 검사하는 것이 아니라 저널 영역만 조사를 하면 되기 때문에 fsck와 같은 전체 검사의 필요성도 없다. 이를 도면과 함께 설명하면 다음과 같다.The journaling technique does not perform in-place updates directly to the data storage device for multiple write requests, but rather writes to an area called a journal. When the journal for all writes is completed, commit. Thereafter, a checkpoint is made to update the contents of the journal to the actual location of the storage device. Therefore, even if the system abruptly ends, the system can always perform a consistent state, since undo or redo can be performed depending on whether or not the system is committed. Specifically, undoing will roll back to a consistent state, and redoing will change to a new, consistent state. Also, there is no need for a full scan such as fsck, since only the journal area needs to be examined rather than the entire storage device. This will be described with reference to the drawings.

도 3은 종래의 저널링 파일 시스템인 Ext3과 Ext4의 구체적인 구조를 나타낸 도면이고, 도 4a는 종래의 저널링 과정을 나타낸 도면이다. 도 3 및 도 4a에 도시된 바와 같이, 저널은 저널 장치를 관리하는 저널 수퍼 블록(Journal super block)과 저널 로그들로 구성된다. 저널 로그는 트랙잭션(Transaction) 구조를 가지며, 내부적으로는 디스크립터(Descriptor), 변경된 데이터/아이노드/비트맵, 커밋 블록으로 구성된다. FIG. 3 is a diagram illustrating a specific structure of a conventional journaling file system, Ext3 and Ext4, and FIG. 4a is a diagram illustrating a conventional journaling process. As shown in FIG. 3 and FIG. 4A, the journal is composed of a journal super block managing journal devices and journal logs. The journal log has a transaction structure, and internally consists of a descriptor, changed data / inode / bitmap, and a commit block.

파일이나 디렉터리 내용이 변경될 때 관련된 다중 쓰기 요청(예를 들어, 데이터 쓰기, 아이노드 쓰기, 비트맵 쓰기 요청)들을 트랙잭션에 모으고, 이를 저널 영역에 쓴다. 그리고 커밋이 되면 실제 저장장치에 체크포인팅한다. 즉 트랜잭션에 커밋이 기록되어 있으면, 변경된 내용들이 모두 쓰여진 것을 의미하여 체크포인팅인 redo를 하게 된다. 반면 커밋이 기록되어있지 않으면, 다중 쓰기가 진행되는 도중 문제가 발생하였다는 의미이며, undo를 하게 된다.When a file or directory contents changes, the associated multiple write requests (for example, data write, inode write, bitmap write request) are collected in the transaction and written to the journal area. Then, when the commit is done, checkpoints to the actual storage device. That is, if a commit is recorded in the transaction, it means that all the changed contents have been written, and the checkpointing redo is done. On the other hand, if the commit is not written, it means that the problem occurred while the multiple writes are going on, and the undo is done.

하지만 기존 저널링 기법은 데이터를 저장장치에 두 번 쓰는 셈(한 번은 저널 영역에, 또 다른 한 번은 체크포인팅 과정에서 실제 저장장치에)이기 때문에 성능 저하를 야기하게 된다. 더 큰 문제는 플래시 메모리(flach memory)와 같은 수명 제한이 있는 저장장치에 쓰기 횟수를 증폭시켜, 수명을 크게 저하시킨다. 이러한 문제를 해결하기 위하여 저널링에 메타데이터만 기록하는 순서(order) 모드 저널링 기법도 제안되었지만, 여전히 쓰기 증폭의 문제가 있다.However, existing journaling techniques cause performance degradation because data is written twice to the storage device (once in the journal area and once in the actual storage device during checkpointing). The bigger problem is the increase in the number of writes to the storage device with the life limitation such as the flash memory (flach memory), and the life span greatly decreases. To solve this problem, an order mode journaling technique for only recording metadata in journaling has been proposed, but there is still a problem of write amplification.

한국등록특허공보 제1529651호Korean Patent Registration No. 1529651 한국등록특허공보 제1533042호Korean Patent Registration No. 1533042 미국등록특허공보 제9594520호U.S. Patent No. 5,959,520

이에 본 발명은 상기와 같은 제반 사항을 고려하여 제안된 것으로, 갑작스러운 전원 차단과 시스템 충돌 등으로 인해 발생할 수 있는 파일 시스템의 일관성 문제를 해결하는 것을 목적으로 한다.SUMMARY OF THE INVENTION The present invention has been made in view of the above circumstances, and an object of the present invention is to solve a file system consistency problem that may occur due to a sudden power shutdown and system collision.

또한 기존 저널링 파일 시스템의 트랜잭션, 저널 디스크립터 블록, 추가적인 쓰기와 커밋, 체크포인팅 등 없이, 시스템의 성능을 향상시키고 플래시 메모리 수명이 저하되는 것을 방지하는 것을 목적으로 한다.It also aims to improve the performance of the system and prevent the degradation of the flash memory lifetime without any transactions, journal descriptor blocks, additional writes and commits, checkpointing, etc. of existing journaling file systems.

또한 저장장치 내의 저널영역의 사용 없이, 효율적으로 저장장치를 사용하여 추가적인 저장 공간의 확보 및 공간 활용이 가능한 것을 목적으로 한다.It is another object of the present invention to provide an apparatus and a method for efficiently allocating additional storage space and utilizing space without using a journal area in a storage apparatus.

또한 저장장치에서 쓰기 동작을 수행할 때 필요한 쓰기 횟수를 줄여 쓰기 성능을 향상시키는 것을 목적으로 한다.It is also intended to improve the write performance by reducing the number of writes required when a write operation is performed in a storage device.

본 발명의 목적들은 이상에서 언급한 목적들로 제한되지 않으며, 언급되지 않은 또 다른 목적들은 아래의 기재로부터 당업자에게 명확하게 이해할 수 있을 것이다.The objects of the present invention are not limited to the above-mentioned objects, and other objects not mentioned can be clearly understood by those skilled in the art from the following description.

상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 원자적 연산을 이용한 파일 시스템 저널링 장치는 응용 프로그램(Application)으로부터 쓰기 요청과 함께 원자적 연산을 위한 추가 정보를 포함하는 복수 개의 정보를 수신하는 수신부, 상기 수신된 쓰기 요청 중 원자적 쓰기 요청이 있는지 여부를 판단하는 판단부, 상기 판단된 결과가 원자적 쓰기 요청이 있는 결과일 경우, 상기 수신된 복수 개의 정보를 저장장치(Storage) 내부 쓰기 버퍼(Write buffer)에 기록하는 기록부, 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되면, 플래시 변환 레이어(FTL : Flash translation layer)의 매핑 테이블(Mapping table)을 커밋(Commit)하도록 제어하는 커밋제어부를 포함하는 것을 특징으로 한다.In order to achieve the above object, a file system journaling apparatus using an atomic operation according to the technical idea of the present invention receives a plurality of information including additional information for an atomic operation together with a write request from an application program A determination unit for determining whether or not there is an atomic write request among the received write requests, and a controller for determining whether there is an atomic write request among the received write requests, A write unit that writes data in a write buffer and a commit control unit that controls a mapping table of a flash translation layer to be committed when the plurality of pieces of information are all written in the write buffer, And a control unit.

이 때 상기 원자적 연산을 위한 추가 정보는 FIS(Frame information structure) 인터페이스에 추가된 정보로서, 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing)를 포함하는 복수 개의 데이터인 것을 특징으로 한다.In this case, the additional information for the atomic operation is information added to a frame information structure (FIS) interface and is a plurality of data including a request type and a logical block addressing (LBA).

또한 상기 판단된 결과가 원자적 쓰기 요청이 없는 결과일 경우, 일련번호에 해당하는 적어도 하나 이상의 쓰기 요청을 수행하지 않는 미수행부를 더 포함하는 것을 특징으로 한다.And a non-performing unit that does not perform at least one write request corresponding to the serial number when the determined result is a result that there is no atomic write request.

상기 커밋제어부는 커밋이 완료되면, 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되었다는 완료 결과를 인터럽트(Interrupt)를 통해 상기 기록부에 알리는 것을 특징으로 한다.And the commit control unit informs the recording unit of the completion result indicating that the plurality of pieces of information are all written in the write buffer, through an interrupt, when the commit is completed.

상기와 같은 목적을 달성하기 위하여 본 발명의 기술적 사상에 의한 원자적 연산을 이용한 파일 시스템 저널링 방법은 수신부가 응용 프로그램(Application)으로부터 쓰기 요청과 함께 원자적 연산을 위한 추가 정보를 포함하는 복수 개의 정보를 수신하는 수신단계, 판단부가 상기 수신된 쓰기 요청 중 원자적 쓰기 요청이 있는지 여부를 판단하는 판단단계, 기록부가 상기 판단된 결과가 원자적 쓰기 요청이 있는 결과일 경우, 상기 수신된 복수 개의 정보를 저장장치(Storage) 내부 쓰기 버퍼(Write buffer)에 기록하는 기록단계 및 커밋제어부가 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되면, 플래시 변환 레이어(FTL : Flash translation layer)의 매핑 테이블(Mapping table)을 커밋(Commit)하도록 제어하는 커밋제어단계를 포함하는 것을 특징으로 한다.According to an aspect of the present invention, there is provided a method for journaling a file system using an atomic operation, the method comprising: receiving a plurality of information including additional information for an atomic operation together with a write request from an application program; A determination step of determining whether the determination unit determines whether there is an atomic write request during the received write request; if the result of the determination is a result of an atomic write request, To a storage internal write buffer, and when the commit control unit records the plurality of pieces of information in the write buffer, a mapping table of a Flash translation layer (FTL) and a commit control step of controlling to commit the table.

이 때 상기 원자적 연산을 위한 추가 정보는 FIS(Frame information structure) 인터페이스에 추가된 정보로서, 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing)를 포함하는 복수 개의 데이터인 것을 특징으로 한다.In this case, the additional information for the atomic operation is information added to a frame information structure (FIS) interface and is a plurality of data including a request type and a logical block addressing (LBA).

또한 상기 판단된 결과가 원자적 쓰기 요청이 없는 결과일 경우, 미수행부가 일련번호에 해당하는 적어도 하나 이상의 쓰기 요청을 수행하지 않는 미수행단계를 더 포함하는 것을 특징으로 한다.And performing no write request corresponding to the serial number when the determined result is a result that there is no atomic write request.

상기 커밋제어단계는 커밋이 완료되면, 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되었다는 완료 결과를 인터럽트(Interrupt)를 통해 상기 기록부에 알리는 것을 특징으로 한다.And the commit control step informs the recording unit of the completion result indicating that the plurality of pieces of information are all recorded in the write buffer, via an interrupt, when the commit is completed.

이상에서 설명한 바와 같은 원자적 연산을 이용한 파일 시스템 저널링 장치 및 방법에 따르면,According to the file system journaling apparatus and method using the atomic operation as described above,

첫째, 갑작스러운 전원 차단과 시스템 충돌 등으로 인해 발생할 수 있는 파일 시스템의 일관성 문제를 해결할 수 있는 효과가 있다.First, there is an effect of solving the file system consistency problem that may occur due to sudden power shutdown and system collision.

둘째, 기존 저널링 파일 시스템의 트랜잭션, 저널 디스크립터 블록, 추가적인 쓰기와 커밋, 체크포인팅 등 없이, 시스템의 성능을 향상시키고 플래시 메모리 수명이 저하되는 것을 방지할 수 있는 효과가 있다.Second, it improves the system performance and prevents the degradation of the flash memory lifetime, without transaction, journal descriptor block, additional write and commit, and checkpointing of the existing journaling file system.

셋째, 저장장치 내의 저널영역의 사용없이, 효율적으로 저장장치를 사용하여 추가적인 저장공간의 확보 및 공간 활용이 가능한 효과가 있다.Third, there is an effect that an additional storage space can be secured and space utilization can be efficiently performed by using a storage device without using a journal area in a storage device.

넷째, 저장장치에서 쓰기 동작을 수행할 때 필요한 쓰기 횟수를 줄여 쓰기 성능을 향상시킬 수 있는 효과가 있다.Fourth, there is an effect that write performance can be improved by reducing the number of write operations required when a write operation is performed in a storage device.

도 1은 본 발명의 일 실시예로서, 원자적 연산을 이용한 파일 시스템 저널링 장치를 나타낸 구성도.
도 2는 본 발명의 일 실시예로서, 원자적 연산을 이용한 파일 시스템 저널링 방법을 나타낸 순서도.
도 3은 종래의 저널링 파일 시스템인 Ext3과 Ext4의 구체적인 구조를 나타낸 도면.
도 4a는 종래의 저널링 과정을 나타낸 도면.
도 4b는 본 발명의 일 실시예로서, 원자적 연산을 이용한 파일 시스템 저널링 과정을 나타낸 도면.
도 5는 본 발명의 일 실시예로서, 플래시 변환 레이어(FTL : Flash translation layer) 계층의 구조를 나타낸 도면.
도 6은 본 발명의 일 실시예로서, 저장장치 내 원자적 쓰기 연산의 동작을 나타낸 도면.
도 7a는 종래의 FIS(Frame information structure) 인터페이스를 나타낸 도면.
도 7b는 본 발명의 일 실시예로서, 원자적 쓰기를 위한 호스트/SSD FIS(Frame information structure) 인터페이스를 나타낸 도면.
1 is a block diagram of a file system journaling apparatus using an atomic operation according to an embodiment of the present invention.
2 is a flowchart illustrating a file system journaling method using an atomic operation, according to an embodiment of the present invention.
3 is a diagram showing a specific structure of Ext3 and Ext4 which are conventional journaling file systems.
4A shows a conventional journaling process.
FIG. 4B illustrates a file system journaling process using an atomic operation, according to an embodiment of the present invention. FIG.
5 illustrates a structure of a Flash translation layer (FTL) layer according to an embodiment of the present invention.
6 is a diagram illustrating the operation of an atomic write operation in a storage device, according to one embodiment of the present invention.
7A is a diagram illustrating a conventional Frame Information Structure (FIS) interface;
FIG. 7B illustrates a host / SSD frame information structure (FIS) interface for atomic writing, according to an embodiment of the present invention. FIG.

본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도면 및 첨부 도면에 기재된 내용을 참조하여야만 한다. 본 발명의 특징 및 이점들은 첨부 도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다. 이에 앞서, 본 명세서 및 청구범위에 사용된 용어나 단어는 발명자가 그 자신의 발명의 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 할 것이다. 또한 본 발명과 관련된 공지 기능 및 그 구성에 대한 구체적인 설명은 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우, 그 구체적인 설명을 생략하였음에 유의해야할 것이다.In order to fully understand the present invention, operational advantages of the present invention, and objects achieved by the practice of the present invention, reference should be made to the accompanying drawings and the accompanying drawings which illustrate preferred embodiments of the present invention. The features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings. Prior to this, terms and words used in this specification and claims are to be interpreted relative to the technical idea of the present invention based on the principle that the inventor can properly define the concept of the term to describe it in the best way of its own invention It should be interpreted in terms of meaning and concept. In the following description, well-known functions and constructions are not described in detail to avoid obscuring the subject matter of the present invention.

도 1은 본 발명의 일 실시예로서, 원자적 연산을 이용한 파일 시스템 저널링 장치를 나타낸 구성도이다. 도 1에 도시된 바와 같이, 원자적 연산을 이용한 파일 시스템 저널링 장치는 응용 프로그램(Application)(110)으로부터 쓰기 요청과 함께 원자적 연산을 위한 추가 정보를 포함하는 복수 개의 정보를 수신하는 수신부(10), 상기 수신된 쓰기 요청 중 원자적 쓰기 요청이 있는지 여부를 판단하는 판단부(20), 상기 판단된 결과가 원자적 쓰기 요청이 있는 결과일 경우, 상기 수신된 복수 개의 정보를 저장장치(Storage)(200) 내부 쓰기 버퍼(Write buffer)(210)에 기록하는 기록부(30), 상기 복수 개의 정보가 상기 쓰기 버퍼(210)에 모두 기록되면, 플래시 변환 레이어(FTL : Flash translation layer)(220)의 매핑 테이블(Mapping table)을 커밋(Commit)하도록 제어하는 커밋제어부(40)를 포함한다.FIG. 1 is a block diagram of a file system journaling apparatus using atomic computation according to an embodiment of the present invention. Referring to FIG. As shown in FIG. 1, a file system journaling apparatus using an atomic operation includes a receiving unit 10 for receiving a plurality of pieces of information including additional information for an atomic operation together with a write request from an application program 110 A determination unit 20 for determining whether there is an atomic write request among the received write requests, if the result of the determination indicates that there is an atomic write request, A writing unit 220 for writing a plurality of pieces of information in the writing buffer 210 and a flash translation layer 220 for writing in the writing buffer 210, And a commit control unit 40 for controlling the mapping table of the source node to commit.

이 때 상기 원자적 연산을 위한 추가 정보는 FIS(Frame information structure) 인터페이스에 추가된 정보로서, 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing)를 포함하는 복수 개의 데이터이다.At this time, the additional information for the atomic operation is information added to the Frame Information Structure (FIS) interface, and is a plurality of data including a request type and a logical block addressing (LBA).

또한 상기 판단된 결과가 원자적 쓰기 요청이 없는 결과일 경우, 일련번호에 해당하는 적어도 하나 이상의 쓰기 요청을 수행하지 않는 미수행부를 더 포함한다.And an unexecution unit that does not perform at least one write request corresponding to the serial number when the determined result is a result that there is no atomic write request.

상기 커밋제어부(40)는 상기 복수 개의 정보가 상기 쓰기 버퍼(210)에 모두 기록되었다는 완료 결과를 인터럽트(Interrupt)를 통해 상기 기록부(30)에 알린다.The commit control unit 40 informs the recording unit 30 of the completion result indicating that the plurality of pieces of information are all recorded in the write buffer 210 through an interrupt.

도 2는 본 발명의 일 실시예로서, 원자적 연산을 이용한 파일 시스템 저널링 방법을 나타낸 구성도이다. 도 2에 도시된 바와 같이, 원자적 연산을 이용한 파일 시스템 저널링 방법은 수신부(10)가 응용 프로그램(Application)(110)으로부터 쓰기 요청과 함께 원자적 연산을 위한 추가 정보를 포함하는 복수 개의 정보를 수신하는 수신단계(S10), 판단부(20)가 상기 수신된 쓰기 요청 중 원자적 쓰기 요청이 있는지 여부를 판단하는 판단단계(S20), 기록부(30)가 상기 판단된 결과가 원자적 쓰기 요청이 있는 결과일 경우, 상기 수신된 복수 개의 정보를 저장장치(Storage)(200) 내부 쓰기 버퍼(Write buffer)(210)에 기록하는 기록단계(S30), 커밋제어부(40)가 상기 복수 개의 정보가 상기 쓰기 버퍼(210)에 모두 기록되면, 플래시 변환 레이어(FTL : Flash translation layer)(220)매핑 테이블(Mapping table)을 커밋(Commit)하도록 제어하는 커밋제어단계(S40)를 포함한다.FIG. 2 is a block diagram illustrating a file system journaling method using an atomic operation according to an embodiment of the present invention. Referring to FIG. 2, a file system journaling method using an atomic operation is a method in which a receiving unit 10 sends a plurality of pieces of information including additional information for an atomic operation together with a write request from an application program 110 A determination step S20 of determining whether there is an atomic write request among the received write requests, a step of determining whether the result of determination is an atomic write request A recording step S30 of recording the received plurality of pieces of information in an internal write buffer 210 of the storage device 200, And a commit control step S40 for controlling the mapping table to be written in the flash translation layer (FTL) 220 when the write buffer 210 is completely written.

이 때 상기 원자적 연산을 위한 추가 정보는 FIS(Frame information structure) 인터페이스에 추가된 정보로서, 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing)를 포함하는 복수 개의 데이터이다.At this time, the additional information for the atomic operation is information added to the Frame Information Structure (FIS) interface, and is a plurality of data including a request type and a logical block addressing (LBA).

또한 상기 판단된 결과가 원자적 쓰기 요청이 없는 결과일 경우, 미수행부가 일련번호에 해당하는 적어도 하나 이상의 쓰기 요청을 수행하지 않는 미수행단계(S35)를 더 포함한다.The method may further include a step (S35) of not performing at least one write request corresponding to the serial number when the determined result is a result of no atomic write request.

상기 커밋제어단계(S40)는 상기 복수 개의 정보가 상기 쓰기 버퍼(210)에 모두 기록되었다는 완료 결과를 인터럽트(Interrupt)를 통해 상기 기록부(30)에 알린다.The commit control step S40 informs the recording unit 30 of the completion result indicating that the plurality of pieces of information are all recorded in the write buffer 210 through an interrupt.

본 발명을 두 가지 부분으로 나누어 구체적으로 설명하면 다음과 같다.The present invention will be described in detail as follows.

첫 번째는 본 발명이 원자적 연산의 지원을 한다는 것이다. 이것은 여러 개의 다중 쓰기 요청에 대해 모든 것이 쓰여지거나 또는 하나도 쓰여지지 않는 것이 보장되는 기능이다. 이것은 중앙처리장치(CPU)에서 제공되는 원자적 명령들, 예를 들어 Test_and Set이나, Exchange 명령과 유사하다. 예를 들어 원자적인 Exchange 명령의 경우, 서로 다른 두 메모리 위치의 읽기와 쓰기 연산이 원자적으로 수행됨을 보장한다. 즉 두 메모리 위치 모두 내용이 바뀌거나 또는 모두 바뀌지 않음이 보장되는 것이다. 저장장치에서 다중 쓰기에 대한 원자적 연산은 모든 쓰기 요청들이 모두 처리되거나 또는 하나도 처리되지 않음을 보장한다.The first is that the present invention supports atomic operations. This is a function that guarantees that everything is written or not written for multiple multiple write requests. This is similar to the atomic commands provided by the central processing unit (CPU), for example the Test_and Set or the Exchange command. For example, in the case of atomic Exchange commands, it is guaranteed that read and write operations at two different memory locations will be performed atomically. That is, both memory locations are guaranteed to have their contents changed or not changed. Atomic operations on multiple writes on a storage device ensure that all write requests are processed or none are processed.

두 번째는 본 발명이 저장장치 수준의 원자적 연산을 이용한 새로운 저널링 기법을 제안한다는 것이다. 도 4a 및 4b는 종래의 저널링 과정과 본 발명의 일 실시예에 따른 저널링 과정을 비교한 것이다. 도 4a에 도시된 바와 같이, 종래의 저널링 기법은 파일이나 디렉터리 내용이 변경될 때, 관련된 다중 쓰기 요청(예를 들어 데이터 쓰기, 아이노드 쓰기, 비트맵 쓰기 요청)들을 트랜잭션(Transaction)으로 모으고, 이를 저널 영역(Journal area)에 쓴다. 그리고 커밋이 되면 실제 데이터 영역(Data area)에 체크포인팅한다. 반면 도 4b에 도시된 바와 같이, 본 발명의 일 실시예에 따른 저널링 과정은 관련된 다중 쓰기 요청들을 원자적 쓰기 요청으로 모아 처리한다. 따라서 쓰기 횟수를 두 번이 아닌 한 번으로 줄일 수 있으며, 저장장치의 수명도 향상시킬 수 있다.The second is that the present invention proposes a new journaling scheme using atomic operations at the storage level. FIGS. 4A and 4B are diagrams comparing a conventional journaling process and a journaling process according to an embodiment of the present invention. 4A, a conventional journaling technique collects a plurality of related write requests (e.g., data write, inode write, and bitmap write requests) into a transaction when a file or directory contents is changed, We write this in the Journal area. Then, when the commit is done, check-pointing to the actual data area. On the other hand, as shown in FIG. 4B, the journaling process according to an embodiment of the present invention collects related multiple write requests into an atomic write request. Therefore, the number of writes can be reduced to one, rather than two, and the life of the storage device can be improved.

각 부분의 동작을 구체적으로 살펴보면 다음과 같다.The operation of each part will be described in detail as follows.

도 5는 본 발명의 일 실시예로서, 플래시 변환 레이어(FTL : Flash translation layer) 계층의 구조를 나타낸 도면이다. 도 5에 도시된 바와 같이, 원자적 쓰기 연산을 저장장치 수준에서 제공하기 위해서는 새로운 인터페이스와 저장장치 내부의 펌웨어가 필요하다. 본 발명에서는 플래시 메모리(Flash memory)로 구성된 SSD(Solid state drives)를 주요 대상으로 한다. 이는 SSD 내부에 FTL(Flash translation layer)라 불리는 펌웨어가 존재하는데, 이를 확장하면 저장장치에서 원자적 연산 지원이 소프트웨어적으로 가능하다. 5 is a diagram illustrating a structure of a flash translation layer (FTL) layer according to an embodiment of the present invention. As shown in FIG. 5, a new interface and firmware inside the storage device are required to provide atomic write operations at the storage device level. In the present invention, solid state drives (SSD) composed of a flash memory are mainly used. There is a firmware called an FTL (Flash translation layer) inside the SSD, which can be software-enabled to support atomic operations on the storage device.

도 6은 본 발명의 일 실시예로서, 저장장치 내 원자적 쓰기 연산의 동작을 나타낸 도면이다. 도 6에 도시된 바와 같이, 저장장치 내부에서 원자적 쓰기를 처리하는 과정을 예로 설명한 것이다. 예를 들어 기존에 A, B, C라는 데이터가 저장되어있다고 가정한다. 그리고 사용자(TXT)가 이 데이터를 원자적으로 A', B', C'으로 변경해달라고 요청을 보냈다고 가정한다. 호스트(Host)에서 SSD로 쓰기 요청을 보낼 때 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing), 새로운 데이터와 함께 원자적 연산을 위한 추가 정보를 함께 보낸다. 도 6에서는 본 발명의 일 실시예로서, A', B', C' 요청이 원자적인 연산으로 정의되어있으며, '일련번호(Write command number)/전체쓰기갯수(Total write command number)' 형식의 추가 정보가 존재한다. 예를 들어 A'=1/3의 경우, 전체 3개가 원자적 쓰기이며 그 중에 A'가 첫 번째 쓰기라는 것을 의미한다. 6 is a diagram illustrating an operation of an atomic write operation in a storage device according to an embodiment of the present invention. As shown in FIG. 6, the process of processing atomic writing in the storage device is described as an example. For example, suppose that the data A, B, and C are stored. And the user (TXT) has sent a request to atomically change this data to A ', B', C '. When a host sends a write request to an SSD, it sends a request type, a logical block addressing (LBA), and additional information for atomic operations along with the new data. In FIG. 6, an A ', B', and C 'request is defined as an atomic operation, and a' Write command number / Total write command number ' Additional information exists. For example, A '= 1/3 means that all three are atomic writes, and A' is the first write.

쓰기 요청들은 SSD 내부의 쓰기 버퍼(Write buffer)에 기록된다. 이 때 FTL(Flash translation layer)은 쓰기 요청 중에 원자적 요청이 있는지 조사하고, 만약 있을 경우 상기 쓰기 요청들이 쓰기 버퍼에 존재할 때에만 처리된다. 즉 A', B', C'가 모두 쓰기 버퍼에 있을 때 처리된다. 한편 플래시 메모리의 특성을 고려하여 쓰기 요청의 처리는 아웃-플레이스 업데이트(out-place update)로 진행된다. 즉 기존 데이터의 위치가 아닌 새로운 위치에 쓰여지게 된다. 그리고 모든 쓰기가 완료되면, FTL의 매핑 테이블(Mapping table)을 커밋(Commit)한다. 이를 통해 모든 것이 쓰여지거나 또는 하나도 쓰여지지 않는 원자성을 보장할 수 있다.Write requests are written to the write buffer inside the SSD. At this time, the FTL (Flash translation layer) checks whether there is an atomic request during the write request, and if so, it is processed only when the write requests are present in the write buffer. That is, when A ', B', and C 'are all in the write buffer, they are processed. In consideration of the characteristics of the flash memory, the processing of the write request proceeds to an out-place update. That is, it is written to a new location, not to the location of existing data. When all writing is completed, the FTL mapping table is committed. This ensures atomicity, in which everything is written or none written.

좀 더 구체적으로는 FTL이 저장장치의 쓰기 버퍼에서 전달받은 블록들의 쓰기 식별번호와 쓰기 연산의 수를 확인한다. 동일한 식별번호의 연산의 수를 측정하여 쓰기 명령의 필요 연산의 수와 동일하다면, 실제 플래시 메모리에 쓰기를 수행한다. 반대로 동일한 식별번호의 연산의 수가 필요 연산의 수보다 적다면 문제가 생겨 쓰기 연산이 누락되었기 때문에, 원자성을 유지할 수 없어 해당 식별번호의 쓰기 명령을 전부 취소한다. 플래시 메모리 저장 공간에 쓰기 작업을 모두 마쳤다면, FTL 내에 존재하는 LBA와 PBA(Physical block address)를 연결해주는 매핑 테이블을 수정한다. 쓰기 동작을 마친 저장장치는 인터럽트(Interrupt)를 통해 쓰기 성공 여부를 호스트에 알린다.More specifically, the FTL checks the write identification number of the blocks received from the write buffer of the storage device and the number of write operations. If the number of operations with the same identification number is measured and equal to the number of required operations of the write command, the write operation is performed to the actual flash memory. On the other hand, if the number of operations with the same identification number is smaller than the number of necessary operations, a problem arises and a write operation is missed. Therefore, the atomicity can not be maintained and the write command of the identification number is canceled. If you have finished writing to the flash memory storage space, modify the mapping table to link the LBA and the physical block address (PBA) in the FTL. Upon completion of the write operation, the storage device notifies the host of the write success through an interrupt.

도 7a는 종래의 FIS 인터페이스를 나타낸 도면이고, 도 7b는 본 발명의 일 실시예로서, 원자적 쓰기를 위한 호스트/SSD FIS(Frame information structure) 인터페이스를 나타낸 도면이다. 도 7a에 도시된 바와 같이, 종래의 FIS 인터페이스는 명령, 주소(LBA), FIS 타입 등으로 구성된다. 반면 도 7b에 도시된 바와 같이, 본 발명의 원자적 쓰기를 위한 호스트와 SSD 간 AHCI(Advanced host controller interface) 프로토콜을 위한 FIS 인터페이스에서는 종래의 FIS 인터페이스에 원자적 연산을 위한 정보가 추가된다. 이 때 상기 추가된 정보는 원자적 연산 ID(Atomic ID)와 일련번호(Write command number)/전체쓰기갯수(Total write command number)로 구성된다. 이러한 추가 정보를 SATA와 PCIe에서 사용하는 FIS의 명령 확장 필드를 사용하여 구현 가능하다.FIG. 7A is a diagram illustrating a conventional FIS interface, and FIG. 7B is a diagram illustrating a host / SSD frame information structure (FIS) interface for atomic writing according to an embodiment of the present invention. As shown in FIG. 7A, the conventional FIS interface is composed of an instruction, an address (LBA), an FIS type, and the like. On the other hand, as shown in FIG. 7B, information for atomic operation is added to the conventional FIS interface in the FIS interface for the atomic writing host and the SSD AHCI (Advanced Host Controller Interface) protocol of the present invention. At this time, the added information is composed of an atomic operation ID (Atomic ID) and a write command number / total write command number. This additional information can be implemented using FIS command extension fields used by SATA and PCIe.

이처럼 파일 시스템에서 파일과 디렉터리 생성 및 수정을 위해서는 여러 개의 쓰기 작업이 필요한데, 이들은 일관성 유지를 위해 원자적으로 처리되어야한다. 다만 종래의 파일 시스템은 별도의 저널 영역에 따로 쓰기 및 체크포인팅을 하여 원자적 연산을 보장한다. 반면 본 발명의 저널링 기법은 별도의 저널 영역이 필요 없다. 본 발명의 저널링 기법은 저장장치가 제공하는 원자적 연산으로 다중 쓰기를 처리하여 원자성을 보장한다.Thus, writing and modifying files and directories in the file system requires multiple writes, which must be atomically processed to maintain consistency. However, the conventional file system guarantees atomic operation by separately writing and checkpointing in a separate journal area. On the other hand, the journaling technique of the present invention does not require a separate journal area. The journaling technique of the present invention guarantees atomicity by processing multiple writes with atomic operations provided by a storage device.

구체적으로 본 발명에서 제안한 저널링 기법은 종래의 파일 시스템에서 사용하던 저널 디스크립터 블록, 트랜잭션 등을 사용하지 않는다. 대신 다중 쓰기 명령들에게 동일한 원자적 연산 ID를 부여하고, 각 쓰기 요청을 SSD로 보낼 때 일련번호/전체쓰기갯수 정보를 추가한다. 그리고 원자적 쓰기 연산의 응답을 보고 redo 여부를 결정한다.Specifically, the journaling scheme proposed in the present invention does not use a journal descriptor block, a transaction, or the like used in a conventional file system. Instead, it assigns the same atomic operation ID to multiple write commands and adds serial number / total write number information when sending each write request to the SSD. It then determines whether to redo or not by looking at the response of the atomic write operation.

이상에서 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것이 아니며, 기술적 사상의 범주를 일탈함이 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정들도 본 발명의 범위에 속하는 것으로 간주되어야할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, It will be appreciated by those skilled in the art that numerous changes and modifications may be made without departing from the invention. It is therefore intended that all such pertinent modifications and variations be considered within the scope of the present invention.

10 : 수신부 20 : 판단부
30 : 기록부 40 : 커밋제어부
100 : 호스트(Host) 110 : 응용 프로그램(Application)
200 : 저장장치(Storage) 210 : 쓰기 버퍼(Write buffer)
220 : FTL(Flash translation layer)
10: Receiving unit 20:
30: recording unit 40:
100: Host 110: Application (Application)
200: Storage 210: Write buffer:
220: Flash translation layer (FTL)

Claims (8)

응용 프로그램(Application)으로부터 쓰기 요청과 함께 원자적 연산을 위한 추가 정보를 포함하는 복수 개의 정보를 수신하는 수신부;
상기 수신된 쓰기 요청 중 원자적 쓰기 요청이 있는지 여부를 판단하는 판단부;
상기 판단된 결과가 원자적 쓰기 요청이 있는 결과일 경우, 상기 수신된 복수 개의 정보를 저장장치(Storage) 내부 쓰기 버퍼(Write buffer)에 기록하는 기록부; 및
상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되면, 플래시 변환 레이어(FTL : Flash translation layer)의 매핑 테이블(Mapping table)을 커밋(Commit)하도록 제어하는 커밋제어부;를 포함하는 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 장치.
A receiving unit for receiving a plurality of pieces of information including additional information for an atomic operation together with a write request from an application;
A determining unit for determining whether there is an atomic write request among the received write requests;
A write unit for writing the received plurality of pieces of information in a storage internal write buffer when the determined result is a result of an atomic write request; And
And a commit control unit for controlling a mapping table of a flash translation layer (FTL) to be committed when the plurality of pieces of information are all written in the write buffer. File system journaling device using computation.
제 1 항에 있어서, 상기 원자적 연산을 위한 추가 정보는,
FIS(Frame information structure) 인터페이스에 추가된 정보로서, 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing)를 포함하는 복수 개의 데이터인 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 장치.
The method of claim 1, wherein the additional information for the atomic operation comprises:
Wherein the information is added to a Frame Information Structure (FIS) interface and is a plurality of data including a request type and a logical block addressing (LBA).
제 2 항에 있어서, 상기 판단된 결과가 원자적 쓰기 요청이 없는 결과일 경우,
일련번호에 해당하는 적어도 하나 이상의 쓰기 요청을 수행하지 않는 미수행부;를 더 포함하는 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 장치.
3. The method of claim 2, wherein if the determined result is a result of no atomic write request,
And not performing at least one write request corresponding to the serial number of the file system.
제 1 항에 있어서, 상기 커밋제어부는,
커밋이 완료되면, 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되었다는 완료 결과를 인터럽트(Interrupt)를 통해 상기 기록부에 알리는 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 장치.
The apparatus of claim 1, wherein the commit control unit comprises:
When the commit is completed, notifies the write unit of the completion result indicating that the plurality of pieces of information are all written in the write buffer, through an interrupt.
수신부가 응용 프로그램(Application)으로부터 쓰기 요청과 함께 원자적 연산을 위한 추가 정보를 포함하는 복수 개의 정보를 수신하는 수신단계;
판단부가 상기 수신된 쓰기 요청 중 원자적 쓰기 요청이 있는지 여부를 판단하는 판단단계;
기록부가 상기 판단된 결과가 원자적 쓰기 요청이 있는 결과일 경우, 상기 수신된 복수 개의 정보를 저장장치(Storage) 내부 쓰기 버퍼(Write buffer)에 기록하는 기록단계; 및
커밋제어부가 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되면, 플래시 변환 레이어(FTL : Flash translation layer)의 매핑 테이블(Mapping table)을 커밋(Commit)하도록 제어하는 커밋제어단계;를 포함하는 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 방법.
Receiving a plurality of pieces of information including additional information for an atomic operation together with a write request from an application;
A determination step of determining whether the determination unit determines that there is an atomic write request among the received write requests;
A recording step of recording the received plurality of pieces of information in a storage internal write buffer when the result of the determination is a result of an atomic write request; And
And a commit control step of controlling the commit control unit to commit a mapping table of a flash translation layer (FTL) when the plurality of pieces of information are all recorded in the write buffer A file system journaling method using an atomic operation.
제 5 항에 있어서, 상기 원자적 연산을 위한 추가 정보는,
FIS(Frame information structure) 인터페이스에 추가된 정보로서, 요청 유형, 쓰기 요청 주소(LBA : Logical block addressing)를 포함하는 복수 개의 데이터인 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 방법.
6. The method of claim 5, wherein the additional information for the atomic operation comprises:
Wherein the information is added to a Frame Information Structure (FIS) interface and is a plurality of data including a request type and a logical block addressing (LBA).
제 6 항에 있어서, 상기 판단된 결과가 원자적 쓰기 요청이 없는 결과일 경우,
미수행부가 일련번호에 해당하는 적어도 하나 이상의 쓰기 요청을 수행하지 않는 미수행단계;를 더 포함하는 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 방법.
7. The method of claim 6, wherein if the determined result is a result of no atomic write request,
Further comprising: a non-performing step of not performing at least one write request corresponding to the serial number by the non-performing unit.
제 5 항에 있어서, 상기 커밋제어단계는,
커밋이 완료되면, 상기 복수 개의 정보가 상기 쓰기 버퍼에 모두 기록되었다는 완료 결과를 인터럽트(Interrupt)를 통해 상기 기록부에 알리는 것을 특징으로 하는 원자적 연산을 이용한 파일 시스템 저널링 방법.
6. The method of claim 5, wherein the commit control step comprises:
And when the commit is completed, notifying the write unit of the completion result indicating that the plurality of pieces of information has been completely written in the write buffer to the write unit through an interrupt.
KR1020170083572A 2017-06-30 2017-06-30 Device and method on file system journaling using atomic operation KR101966399B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170083572A KR101966399B1 (en) 2017-06-30 2017-06-30 Device and method on file system journaling using atomic operation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170083572A KR101966399B1 (en) 2017-06-30 2017-06-30 Device and method on file system journaling using atomic operation

Publications (2)

Publication Number Publication Date
KR20190003091A true KR20190003091A (en) 2019-01-09
KR101966399B1 KR101966399B1 (en) 2019-04-08

Family

ID=65017201

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170083572A KR101966399B1 (en) 2017-06-30 2017-06-30 Device and method on file system journaling using atomic operation

Country Status (1)

Country Link
KR (1) KR101966399B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115993940A (en) * 2023-03-23 2023-04-21 青岛鼎信通讯股份有限公司 Electric quantity loss prevention method and device, electric energy meter equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040009926A (en) * 2002-07-26 2004-01-31 지인정보기술 주식회사 Flash memory management method
KR101491626B1 (en) * 2013-07-01 2015-03-05 성균관대학교산학협력단 Memory storage apparatus, memory system and transaction function support method for database
KR101529651B1 (en) 2014-08-28 2015-06-19 성균관대학교산학협력단 Memory storage apparatus, memory system and transaction function support method for database
KR101533042B1 (en) 2015-02-11 2015-07-09 성균관대학교산학협력단 Apparatus and method of computing for guaranteeing data consistency
US9594520B2 (en) 2013-03-15 2017-03-14 Western Digital Technologies, Inc. Atomic write command support in a solid state drive

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040009926A (en) * 2002-07-26 2004-01-31 지인정보기술 주식회사 Flash memory management method
US9594520B2 (en) 2013-03-15 2017-03-14 Western Digital Technologies, Inc. Atomic write command support in a solid state drive
KR101491626B1 (en) * 2013-07-01 2015-03-05 성균관대학교산학협력단 Memory storage apparatus, memory system and transaction function support method for database
KR101529651B1 (en) 2014-08-28 2015-06-19 성균관대학교산학협력단 Memory storage apparatus, memory system and transaction function support method for database
KR101533042B1 (en) 2015-02-11 2015-07-09 성균관대학교산학협력단 Apparatus and method of computing for guaranteeing data consistency

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"낸드 플래시 메모리의 특성을 활용하여 부가적인 쓰기 연산을 줄이는 저널링 기법을 위한 FTL",박대준 외1,한국정보과학회 2013 한국컴퓨터종합 학술대회 논문집, (2013.06.30.) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115993940A (en) * 2023-03-23 2023-04-21 青岛鼎信通讯股份有限公司 Electric quantity loss prevention method and device, electric energy meter equipment and storage medium

Also Published As

Publication number Publication date
KR101966399B1 (en) 2019-04-08

Similar Documents

Publication Publication Date Title
US10289545B2 (en) Hybrid checkpointed memory
JP6556911B2 (en) Method and apparatus for performing an annotated atomic write operation
US10176190B2 (en) Data integrity and loss resistance in high performance and high capacity storage deduplication
US8762661B2 (en) System and method of managing metadata
US8621144B2 (en) Accelerated resume from hibernation in a cached disk system
US9280578B1 (en) Combining transactions in a metadata transaction log
US8543548B2 (en) Hierarchical management storage system and storage system operating method
Oh et al. SHARE interface in flash storage for relational and NoSQL databases
US20120311261A1 (en) Storage system and storage control method
KR20060085899A (en) A database system and method for storing a plurality of database components in main memory thereof
JP2006268139A (en) Data reproduction device, method and program and storing system
US9990150B2 (en) Method to provide transactional semantics for updates to data structures stored in a non-volatile memory
KR101584760B1 (en) Method and apparatus of journaling by block group unit for ordered mode journaling file system
CN112035294B (en) Security log file system and implementation method and medium thereof
Son et al. SSD-assisted backup and recovery for database systems
US20220129420A1 (en) Method for facilitating recovery from crash of solid-state storage device, method of data synchronization, computer system, and solid-state storage device
US20040260869A1 (en) Method, system, and program for managing a relationship between one target volume and one source volume
US9507657B2 (en) Investigation program, information processing apparatus, and information processing method
US7047378B2 (en) Method, system, and program for managing information on relationships between target volumes and source volumes when performing adding, withdrawing, and disaster recovery operations for the relationships
KR101966399B1 (en) Device and method on file system journaling using atomic operation
US9235349B2 (en) Data duplication system, data duplication method, and program thereof
Ni et al. Leveraging ssd's flexible address mapping to accelerate data copy operations
Song et al. CADedup: High-performance Consistency-aware Deduplication Based on Persistent Memory
US10534751B1 (en) Metadata space efficient snapshot operation in page storage
Son et al. An Empirical Performance Evaluation of Transactional Solid-State Drives

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant