KR101541532B1 - Method and apparatus for data consistency control of storage class memory - Google Patents

Method and apparatus for data consistency control of storage class memory Download PDF

Info

Publication number
KR101541532B1
KR101541532B1 KR1020140123442A KR20140123442A KR101541532B1 KR 101541532 B1 KR101541532 B1 KR 101541532B1 KR 1020140123442 A KR1020140123442 A KR 1020140123442A KR 20140123442 A KR20140123442 A KR 20140123442A KR 101541532 B1 KR101541532 B1 KR 101541532B1
Authority
KR
South Korea
Prior art keywords
data
log
storage class
class memory
type
Prior art date
Application number
KR1020140123442A
Other languages
Korean (ko)
Inventor
엄영익
강동현
김정훈
이현구
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020140123442A priority Critical patent/KR101541532B1/en
Application granted granted Critical
Publication of KR101541532B1 publication Critical patent/KR101541532B1/en

Links

Images

Classifications

    • 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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1471Saving, restoring, recovering or retrying involving logging of persistent data for recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Library & Information Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a computing device including a storage class memory. According to an embodiment of the present invention, the device comprises a storage class memory storing a program which operates a file system; and a processor for operating the program stored in the storage class memory, wherein the processor records a log history of data stored in a log area of the storage class memory when an update request for updating the data stored in the storage class memory is created by execution of the program, and updates the data according to the update request in the storage class memory based on a log type.

Description

스토리지 클래스 메모리의 데이터 일관성 유지를 위한 장치 및 방법{METHOD AND APPARATUS FOR DATA CONSISTENCY CONTROL OF STORAGE CLASS MEMORY}[0001] METHOD AND APPARATUS FOR DATA CONSISTENCY CONTROL OF STORAGE CLASS MEMORY [0002]

본 발명은 스토리지 클래스 메모리의 데이터 일관성 유지를 위한 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for maintaining data consistency of a storage class memory.

컴퓨팅 시스템에서 메모리의 계층 구조(memory hierarchy)는 CPU가 접근할 수 있는 속도에 따라 메모리를 구분한 것이다. 메모리의 계층 구조는 상위 레벨로 갈수록 접근 속도(access speed)가 빠르지만, 용량 단위당 가격이 비싸므로 상대적으로 적은 기억 용량을 가진다. 반대로 하위 레벨로 갈수록 접근 속도는 느리고, 용량 단위당 가격이 저렴하여 상대적으로 많은 기억 용량을 가진다.In a computing system, the memory hierarchy is a memory partition that depends on the speed at which the CPU can access. The hierarchical structure of the memory has a faster access speed as it goes to a higher level, but has a relatively small memory capacity because the price per unit of capacity is high. On the other hand, the access speed is slower toward the lower level, and the price per capacity unit is relatively low, so that the memory capacity is relatively large.

메모리의 계층 구조에서 하위 레벨에 속하는 보조 기억 장치(secondary storage)는 CPU의 접근 속도가 느리지만, 가격이 저렴하여 다른 메모리에 비하여 많은 기억 용량을 가진다. 또한, 보조 기억 장치는 비휘발성(non-volatile)이므로 반영구적으로 데이터를 저장할 수 있다. 보조 기억 장치보다 상위 레벨인 주 기억 장치(main storage)는 보조 기억 장치와 비교하면 접근 속도가 빠르지만, 보조 기억 장치보다 가격이 비싸고 적은 기억 용량을 가지며, 휘발성(volatile)이다. 그러므로 보조 기억 장치는 주 기억 장치를 보조하기 위한 저장 장치(storage device)로 사용된다.Secondary storage belonging to a lower level in the hierarchical structure of memory has a slow access speed of the CPU, but is inexpensive and has a larger storage capacity than other memories. In addition, since the auxiliary storage device is non-volatile, data can be semi-permanently stored. The main storage, which is higher than the auxiliary storage, has a faster access speed than the auxiliary storage but is more expensive than the auxiliary storage, has less storage capacity, and is volatile. Therefore, the auxiliary storage device is used as a storage device for assisting the main storage device.

이때, 보조 기억 장치는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 저장 장치를 통칭하는 것이다. 예를 들어, 보조 기억 장치는 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 및 CD-ROM, DVD-ROM 등과 같은 광학 디스크 드라이브(optical disc drive) 등을 포함할 수 있다.At this time, the auxiliary storage device is collectively referred to as a storage device which keeps stored information even when power is not supplied. For example, the auxiliary storage device may be a compact flash (CF) card, a secure digital (SD) card, a memory stick, a solid-state drive (SSD) Magnetic disk storage devices such as NAND flash memory, hard disk drive (HDD), and the like, and optical disk drives such as CD-ROM, DVD-ROM, etc. have.

또한, 주 기억 장치는 저장된 정보를 유지하기 위해 전기를 요구하는 메모리(memory)를 통칭하는 것이다. 예를 들어, 주 기억 장치는 FPM DRAM(fast page mode DRAM), EDO DRAM(extended data out DRAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), DDR2 SDRAM(double data rate 2 SDRAM), DDR3 SDRAM(double data rate 3 SDRAM) 등과 같은 DRAM(dynamic random access memory) 및 bipolar SRAM, CMOS SRAM 등과 같은 SRAM(static random access memory) 등을 포함할 수 있다.Also, the main storage device is collectively referred to as a memory that requires electricity to maintain stored information. For example, the main memory may be a fast page mode DRAM (FPM), an extended data out (DRAM) DRAM, a synchronous DRAM (SDRAM), a double data rate SDRAM (DDR SDRAM), a double data rate 2 SDRAM (DDR2 SDRAM) , Dynamic random access memory (DRAM) such as double data rate 3 (SDRAM), static random access memory (SRAM) such as bipolar SRAM and CMOS SRAM, and the like.

보조 기억 장치는 용량 단위당 가격이 주 기억 장치보다 저렴하며, 비휘발성의 특징이 있어 반영구적으로 데이터를 기록할 수 있다. 그러나 보조 기억 장치는 메모리 계층 구조의 상위 메모리보다 데이터를 읽고 쓰는 것이 느리다는 단점이 있다. 그러므로 이러한 단점이 있는 보조 기억 장치는 전체 컴퓨팅 시스템의 성능 저하의 원인이 될 수 있다. 이러한 단점을 해결하기 위하여 운영 체제(operating system)의 파일 시스템(file system)은 주 기억 장치 일부를 페이지 캐시(page cache)로 이용한다. 그러나 페이지 캐시는 데이터를 주 기억 장치와 보조 기억 장치 두 군데에서 관리하므로 데이터의 일관성(consistency) 유지 문제가 발생할 수 있다.The auxiliary storage device is cheaper than the main storage device at a price per capacity unit, and is characterized by nonvolatility, so that data can be semi-permanently recorded. However, the auxiliary memory has a drawback that it is slower to read and write data than the upper memory of the memory hierarchy. Therefore, the auxiliary storage device having such disadvantages may cause degradation of performance of the entire computing system. To overcome this drawback, the operating system's file system uses a portion of the main memory as a page cache. However, the page cache manages data in both main memory and auxiliary memory, which can cause data consistency maintenance problems.

이러한 주 기억 장치와 보조 기억 장치의 단점을 해결하기 위하여 최근 스토리지 클래스 메모리(storage class memory)가 새롭게 개발되었다. 스토리지 클래스 메모리는 비휘발성 메모리의 속성 및 휘발성 메모리의 속성을 동시에 제공하는 비휘발성 메모리이다. 스토리지 클래스 메모리는 고속의 바이트 단위의 랜덤 접근(random access)이 가능하며, 접근 속도가 빠르다. 예를 들어, 스토리지 클래스 메모리는 PCM(phase-change RAM), FeRAM(ferroelectric RAM), MRAM(magnetic RAM), RRAM(resistive RAM), STT-MRAM 등을 포함할 수 있다.Recently, a storage class memory has been newly developed to solve the disadvantages of the main storage device and the auxiliary storage device. The storage class memory is a nonvolatile memory that simultaneously provides attributes of the nonvolatile memory and attributes of the volatile memory. Storage class memory is capable of high-speed byte-by-byte random access and has a fast access speed. For example, the storage class memory may include phase-change RAM (PCM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM), STT-MRAM, and the like.

이렇게 비휘발성 속성과 휘발성 속성을 동시에 제공하며, 고속의 바이트 단위 랜덤 접근을 지원하는 스토리지 클래스 메모리는 기존 보조 기억 장치나 주 기억 장치를 대체하여 사용할 수 있다. 또한, 운영체제나 자주 사용하는 파일을 저장하는 기존 보조 기억 장치 일부분으로 활용할 수 있으며, 비휘발성 속성을 이용하여 전원이 차단되어도 지속으로 사용하는 프로그램을 위한 주 기억 장치 일부분으로도 활용할 수 있다. 그리고 스토리지 클래스 메모리는 주 기억 장치와 보조 기억 장치 사이에 일종의 쓰기 버퍼 캐시 공간으로 활용할 수 있다.Storage class memory, which provides both nonvolatile and volatile attributes, and supports high-speed byte-by-byte random access, can be used as an alternative to existing auxiliary storage or main storage. Also, it can be used as a part of existing auxiliary memory for storing operating system or frequently used files, and can be utilized as part of main memory for programs that are continuously used even when power is cut off by using nonvolatile property. The storage class memory can be utilized as a kind of write buffer cache space between the main memory and the auxiliary memory.

그러나 스토리지 클래스 메모리를 보조 기억 장치로 이용하기 위해서 몇 가지 고려할 것이 있다. 위에서 언급한 것과 같이 기존 보조 기억 장치를 위한 파일 시스템은 블록 단위 접근을 지원하며, 주 기억 장치 일부를 페이지 캐시로 이용하여 느린 접근 속도에 따른 전체 컴퓨팅 시스템의 성능 저하를 해결한다. 그러나 스토리지 클래스 메모리는 블록 단위로 접근하는 기존의 보조 기억 장치와 달리 바이트 단위로 접근한다. 그러므로 스토리지 클래스 메모리에서 기존 파일 시스템을 사용하는 경우에는 기존과는 다른 스토리지 관리방식이 필요하다. 그리고 스토리지 클래스 메모리가 주메모리만큼 속도가 빠르므로 스토리지와 주메모리의 속도 차이를 감소하기 위한 페이지 캐시를 사용하면 이유 없이 데이터를 중복 관리하게 되어 데이터 쓰기 성능 감소의 문제가 존재할 수 있다.However, there are some considerations for using storage class memory as auxiliary storage. As mentioned above, the file system for existing auxiliary storage supports block-level access and solves the performance degradation of the whole computing system due to the slow access speed by using a part of main memory as the page cache. However, storage class memory is accessed byte by byte, unlike conventional auxiliary memory units that access block by block. Therefore, when using an existing file system in storage class memory, a different method of managing the storage is required. And because the storage class memory is as fast as the main memory, using the page cache to reduce the speed difference between the storage and the main memory may cause the data write performance to be reduced by managing the data redundantly for no reason.

또한, 스토리지 클래스 메모리는 바이트 단위 접근을 지원하기 때문에 주 기억 장치와의 메모리 버스를 공유하므로 캐시 일관성을 유지하기 위해 CPU의 캐시와 동기화가 필요하다. 스토리지 클래스 메모리를 사용하는 컴퓨팅 시스템은 이를 위하여 "cache flush" 명령을 사용한다. "cache flush" 명령은 캐시에 로드되어 사용 중인 데이터와 메모리에 존재하는 데이터가 불일치(inconsistency)할 때, 캐시 데이터를 메모리에 갱신하는 명령이다. 그러나 "cache flush"를 사용하는 과정에서 로그 데이터가 생성되고 이로 인하여 로그 데이터의 쓰기량 및 캐싱 비용이 증가하게 된다. 그러므로 이러한 스토리지 클래스 메모리의 특성을 고려하고, 데이터의 일관성을 유지하기 위한 파일 시스템이 필요하다. In addition, since the storage class memory supports byte-by-byte access, it needs to be synchronized with the cache of the CPU in order to maintain cache coherency because it shares the memory bus with the main memory. Computing systems that use storage class memory use the "cache flush" command for this purpose. The "cache flush" command is a command to update cache data in memory when it is loaded into the cache and inconsistency exists between data in use and data in memory. However, in the process of using "cache flush", log data is generated, which increases the amount of writing and caching of log data. Therefore, there is a need for a file system for considering the characteristics of such a storage class memory and for maintaining data consistency.

파일 시스템에서 보조 기억 장치의 일관성 유지를 위한 기존 발명은 다음과 같다.The existing invention for maintaining the consistency of the auxiliary storage device in the file system is as follows.

한국 등록특허공보 제0501414호(발명의 명칭: "파일 시스템의 메타 데이터 회복을 위한 로깅과 회복 방법 및 장치")는 파일 시스템에서 메타 데이터에 대한 일관성을 유지하기 위하여 이미 저장된 메타데이터의 로그를 이용하여 메타데이터의 회복을 위한 로그 기록 및 복구를 수행하는 발명을 개시하고 있다. Korean Patent Registration No. 0501414 entitled "Logging and Recovery Method and Apparatus for Recovery of Metadata of File System") uses a log of already stored metadata to maintain consistency of metadata in the file system Thereby performing log recording and recovery for recovery of metadata.

한국 공개특허공보 제2012-0029239호(발명의 명칭:"PRAM을 이용하는 데이터 기록 시스템 및 그 방법")는 PRAM(phase-change RAM)을 이용하는 데이터 기록 시스템 및 그 방법에 관한 것이다. 이 발명은 블록 쓰기를 지원하는 비휘발성 메모리인 PRAM을 데이터 저장 장치로 이용하는 시스템에서 블록 원자성(atomicity)을 지원하여 시스템 일관성을 유지하는 방법을 개시하고 있다. Korean Patent Publication No. 2012-0029239 entitled "Data Recording System and Method Using PRAM") relates to a data recording system and a method thereof using a phase-change RAM (PRAM). The present invention discloses a method of maintaining system consistency by supporting block atomicity in a system using PRAM, which is a nonvolatile memory supporting block writing, as a data storage device.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 본 실시예는 로그 데이터의 사이즈를 줄이고 일관성 유지 비용을 최소화하기 위한 스토리지 클래스 메모리에서의 데이터 일관성 유지 장치 및 방법을 제공하는 데 그 목적이 있다. SUMMARY OF THE INVENTION It is an object of the present invention to provide an apparatus and method for maintaining data consistency in a storage class memory in order to reduce the size of log data and minimize the cost of consistency. have.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.It should be understood, however, that the technical scope of the present invention is not limited to the above-described technical problems, and other technical problems may exist.

상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예에 따른 스토리지 클래스 메모리를 포함하는 컴퓨팅 장치는 파일 시스템을 운영하는 프로그램이 저장된 스토리지 클래스 메모리 및 스토리지 클래스 메모리에 저장된 프로그램을 운영하는 프로세서를 포함한다. 이때, 프로세서는 프로그램의 실행에 따라, 스토리지 클래스 메모리에 저장된 데이터를 갱신하기 위한 갱신 요청이 발생하면, 스토리지 클래스 메모리에 포함된 로그 영역에 저장된 데이터의 로그를 기록한 후, 로그의 유형에 기반하여 스토리지 클래스 메모리에 갱신 요청에 따라 갱신하고자 하는 데이터로 갱신한다.According to an aspect of the present invention, a computing device including a storage class memory according to an embodiment of the present invention includes a storage class memory in which a program for operating a file system is stored, Processor. At this time, when an update request for updating the data stored in the storage class memory occurs, the processor records a log of data stored in the log area included in the storage class memory according to the execution of the program, And updates the data to be updated according to the update request in the class memory.

또한, 본 발명의 일 실시예에 따른 스토리지 클래스 메모리 기반의 파일 시스템에서의 데이터 일관성 유지 방법은 스토리지 클래스 메모리에 저장된 데이터를 갱신하기 위한 갱신 요청이 발생하는 단계; 스토리지 클래스 메모리에 포함된 로그 영역에 저장된 데이터의 로그를 기록하는 단계; 및 로그의 유형에 기반하여 스토리지 클래스 메모리에 갱신 요청에 따라 갱신하고자 하는 데이터로 갱신하는 단계를 포함한다. According to another aspect of the present invention, there is provided a method for maintaining data consistency in a file system based on a storage class memory, comprising: generating an update request for updating data stored in a storage class memory; Recording a log of data stored in a log area included in the storage class memory; And updating the data to be updated according to the update request in the storage class memory based on the type of the log.

전술한 과제 해결 수단 중 어느 하나에 의하면, 본 발명은 휘발성 메모리와 비휘발성 메모리의 장점을 동시에 가진 스토리지 클래스 메모리를 지원하는 데이터 일관성 유지 장치 및 방법을 제공할 수 있으며, 이로 말미암아 관련 사업 전반에서 다양한 파급 효과를 기대할 수 있다.According to any one of the above-mentioned problems, the present invention can provide a data consistency maintaining apparatus and method for supporting a storage class memory having both advantages of a volatile memory and a nonvolatile memory, The ripple effects can be expected.

본 발명에 따른 스토리지 클래스 메모리의 데이터 일관성 유지를 위한 장치 및 방법은 기존 파일 시스템에 비하여 불필요한 백업 비용을 줄여 스토리지 클래스 메모리에 기록해야 하는 파일의 데이터 양을 줄일 수 있어, 본 발명은 스토리지 클래스 메모리에서 기존 파일 시스템보다 빠른 시스템 성능을 제공할 수 있다.The apparatus and method for maintaining data consistency of the storage class memory according to the present invention can reduce unnecessary backup cost compared with the existing file system and reduce the amount of data of a file to be recorded in the storage class memory, It can provide faster system performance than existing file systems.

도 1은 기존의 WAL을 사용하는 파일 시스템의 로그 데이터를 설명하기 위한 예시도이다.
도 2는 본 발명의 일 실시예에 따른 스토리지 클래스 메모리를 포함하는 컴퓨팅 장치를 개략적으로 도시한 구성도이다.
도 3은 본 발명의 일 실시예에 따른 로그를 기록하는 과정 및 데이터를 갱신하는 과정을 설명하기 위한 예시도이다.
도 4는 본 발명의 일 실시예에 따른 로그 영역, 제 1 데이터 블록 및 제 2 데이터 블록을 포함하는 스토리지 클래스 메모리를 개략적으로 도시한 구성도이다.
도 5는 본 발명의 일 실시예에 따른 데이터 복구 과정을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 스토리지 클래스 메모리에 기반의 파일 시스템에서 데이터의 일관성 유지 방법을 설명하기 위한 순서도이다.
도 7은 본 발명의 일 실시예에 따른 파일 시스템의 데이터 일관성 유지 방법에서 로그 영역에 로그를 기록하는 단계를 설명하기 위한 순서도이다.
도 8은 본 발명의 일 실시예에 따른 파일 시스템의 데이터 일관성 유지 방법에서 데이터 갱신 단계를 설명하기 위한 순서도이다.
도 9는 본 발명의 일 실시예에 따른 파일 시스템의 데이터 일관성 유지 방법에서 로그를 이용하여 복구하는 단계를 설명하기 위한 순서도이다.
1 is an exemplary diagram for explaining log data of a file system using an existing WAL.
2 is a schematic diagram illustrating a computing device including a storage class memory according to an embodiment of the present invention.
FIG. 3 is an exemplary diagram illustrating a process of recording a log and a process of updating data according to an embodiment of the present invention. Referring to FIG.
4 is a block diagram schematically illustrating a storage class memory including a log area, a first data block, and a second data block according to an embodiment of the present invention.
5 is an exemplary diagram illustrating a data recovery process according to an embodiment of the present invention.
6 is a flowchart illustrating a method of maintaining data consistency in a file system based on a storage class memory according to an embodiment of the present invention.
FIG. 7 is a flowchart illustrating a method of recording logs in a log area in a method of maintaining data consistency in a file system according to an exemplary embodiment of the present invention. Referring to FIG.
8 is a flowchart illustrating a data updating step in a data consistency maintenance method of a file system according to an embodiment of the present invention.
FIG. 9 is a flowchart illustrating a method of recovering data using a log in a method of maintaining data consistency in a file system according to an exemplary embodiment of the present invention. Referring to FIG.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings, which will be readily apparent to those skilled in the art. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. In order to clearly explain the present invention in the drawings, parts not related to the description are omitted.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is referred to as being "connected" to another part, it includes not only "directly connected" but also "electrically connected" with another part in between . Also, when a part is referred to as "including " an element, it does not exclude other elements unless specifically stated otherwise.

또한, 도면을 참고하여 설명하면서, 같은 명칭으로 나타낸 구성일지라도 도면에 따라 도면 번호가 달라질 수 있고, 도면 번호는 설명의 편의를 위해 기재된 것에 불과하다. 그러므로 해당 도면 번호에 의해 각 구성의 개념, 특징, 기능 또는 효과가 제한 해석되는 것은 아니다.In the following description with reference to the drawings, the same reference numerals denote the same reference numerals as in the drawings, and the reference numerals are merely described for convenience of description. Therefore, the concept, feature, function, or effect of each constitution is not limited by the corresponding drawing number.

도 1은 기존의 WAL(write-ahead logging)을 사용하는 파일 시스템의 로그 데이터를 설명하기 위한 예시도이다.1 is an exemplary diagram for explaining log data of a file system using existing write-ahead logging (WAL).

도 1을 참조하면, 파일 시스템에서 데이터 블록(data block)은 실제 파일을 저장하는 공간이다. 이때, 아이노드(inode)는 인덱스 노드(index node)의 줄임 말이며, 파일이나 디렉터리에 대한 메타데이터(metadata)를 저장한다. 또한, 아이노드는 데이터 블록에 대한 포인터(pointer)를 저장하는 직접 블록(direct block)을 포함할 수 있다. 그러나 실제로 직접 블록은 저장 장치에 포함된 데이터 블록에 대한 모든 포인터를 저장할 수 없으므로, 더 많은 데이터 블록이 필요한 경우 동적 블록인 간접 블록(indirect block)을 이용한다. 간접 블록은 데이터 블록에 대한 포인터를 저장하는 블록의 포인터를 저장하는 것으로 단일 간접 블록(single indirect block), 이중 간접 블록(double indirect block), 삼중 간접 블록(triple indirect block) 등이 있다.Referring to FIG. 1, a data block in a file system is a space for storing an actual file. In this case, an inode is an abbreviation of an index node, and stores metadata about a file or a directory. In addition, the inode may include a direct block that stores pointers to data blocks. However, in practice, a direct block can not store all the pointers to data blocks contained in a storage device, so an indirect block, which is a dynamic block, is used when more data blocks are needed. An indirect block stores a pointer to a block that stores a pointer to a data block. The indirect block includes a single indirect block, a double indirect block, and a triple indirect block.

도 1의 하단에 도시된 로그 영역(log area)은 저장 장치의 파일 시스템에서 로그를 기록하기 위한 영역이다. 기존 WAL을 사용하는 파일 시스템은 저장 장치에 새로운 데이터를 저장하거나 기 저장된 데이터를 갱신하기 위하여 로그 영역에 로그를 기록한다. 이때, 기록되는 정보는 저장 장치의 아이노드 및 데이터 블록에 새롭게 저장되거나 갱신되는 모든 데이터가 포함될 수 있다. 그러므로 도 1에서처럼 로그 영역에는 아이노드에 저장되는 데이터 8 바이트와 3개의 데이터 블록에 각각 저장되는 데이터 3 킬로바이트, 4 킬로바이트, 1.5 킬로바이트의 로그가 기록된다. 즉, 로그 영역에는 총 8,712 바이트의 로그가 기록된다.The log area shown at the bottom of FIG. 1 is an area for recording logs in the file system of the storage device. File systems that use existing WALs log to the log area to store new data in the storage device or to update pre-stored data. At this time, the information to be recorded may include all data newly stored or updated in the inode and data block of the storage device. Therefore, as shown in FIG. 1, in the log area, 8 bytes of data stored in the inode and 3 kilobytes, 4 kilobytes, and 1.5 kilobytes of data stored in the three data blocks are recorded. That is, a total of 8,712 bytes of the log is recorded in the log area.

다음은 도 2를 참조하여 본 발명의 일 실시예를 따른 스토리지 클래스 메모리를 포함하는 컴퓨팅 장치를 설명한다. 도 2는 본 발명의 일 실시예에 따른 스토리지 클래스 메모리를 포함하는 컴퓨팅 장치를 개략적으로 도시한 구성도이다.The following is a description of a computing device including a storage class memory in accordance with one embodiment of the present invention with reference to FIG. 2 is a schematic diagram illustrating a computing device including a storage class memory according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 스토리지 클래스 메모리(300)를 포함하는 컴퓨팅 장치(10)는 파일 시스템을 운영하는 프로그램이 저장된 스토리지 클래스 메모리(300) 및 스토리지 클래스 메모리(300)에 저장된 프로그램을 운영하는 프로세서(100)를 포함한다.The computing device 10 including the storage class memory 300 according to an embodiment of the present invention includes a storage class memory 300 in which a program for operating a file system is stored and a storage class memory 300 in which a program stored in the storage class memory 300 is operated Processor < / RTI >

한편, 본 발명의 일 실시예를 따른 컴퓨팅 장치(10)는 서버(server), 워크스테이션(workstation), 데스크톱 컴퓨터(desktop computer) 및 노트북 컴퓨터(notebook computer) 등 일반적인 컴퓨터와 스마트 폰(smartphone), 태블릿 PC 및 스마트 TV(smart TV) 등 스마트 디바이스(smart device) 등을 포함할 수 있다.Meanwhile, the computing device 10 according to an exemplary embodiment of the present invention may include a general computer such as a server, a workstation, a desktop computer and a notebook computer, a smartphone, Tablet PCs, and smart devices such as smart TVs.

또한, 스토리지 클래스 메모리(300)는 PCM(phase-change RAM), FeRAM(ferroelectric RAM), MRAM(magnetic RAM), RRAM(resistive RAM), STT-MRAM 등과 같은 비휘발성 속성을 제공하는 메모리를 포함할 수 있다.The storage class memory 300 also includes a memory that provides non-volatile attributes such as phase change RAM (PCM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM) .

본 발명의 일 실시예를 따른 컴퓨팅 장치(10)는 메모리(200) 및 저장 장치(400)를 더 포함할 수 있다.The computing device 10 may further include a memory 200 and a storage device 400 according to an embodiment of the present invention.

이때, 메모리는 휘발성 메모리를 통칭하는 것이다. 예를 들어, 메모리(200)는 FPM DRAM(fast page mode DRAM), EDO DRAM(extended data out DRAM), SDRAM(synchronous DRAM), DDR SDRAM(double data rate SDRAM), DDR2 SDRAM(double data rate 2 SDRAM), DDR3 SDRAM(double data rate 3 SDRAM) 등과 같은 DRAM(dynamic random access memory) 및 bipolar SRAM, CMOS SRAM 등과 같은 SRAM(static random access memory) 등을 포함할 수 있다. At this time, the memory is collectively referred to as a volatile memory. For example, the memory 200 may be a memory such as a fast page mode DRAM (FPM), an extended data out (DRAM), an synchronous DRAM, a double data rate (SDRAM) ), Dynamic random access memory (DRAM) such as double data rate 3 (SDRAM), static random access memory (SRAM) such as bipolar SRAM and CMOS SRAM, and the like.

또한, 저장 장치(400)는 전원이 공급되지 않아도 저장된 정보를 계속 유지하는 비휘발성 저장 장치를 통칭하는 것이다. 예를 들어, 저장 장치(400)은 콤팩트 플래시(compact flash; CF) 카드, SD(secure digital) 카드, 메모리 스틱(memory stick), 솔리드 스테이트 드라이브(solid-state drive; SSD) 및 마이크로(micro) SD 카드 등과 같은 낸드 플래시 메모리(NAND flash memory), 하드 디스크 드라이브(hard disk drive; HDD) 등과 같은 마그네틱 컴퓨터 기억 장치 및 CD-ROM, DVD-ROM 등과 같은 광학 디스크 드라이브(optical disc drive) 등을 포함할 수 있다.In addition, the storage device 400 collectively refers to a non-volatile storage device that keeps stored information even when power is not supplied. For example, the storage device 400 may be a compact flash (CF) card, a secure digital (SD) card, a memory stick, a solid-state drive (SSD) A magnetic computer storage device such as a NAND flash memory, a hard disk drive (HDD) and the like, an optical disc drive such as a CD-ROM, a DVD-ROM, etc., can do.

스토리지 클래스 메모리(300)는 컴퓨팅 시스템(10)에서 빠른 접근 속도를 이용하여 저장 장치(400)의 확장이나 메모리(200)와 저장 장치(400)의 쓰기 버퍼 캐시 공간으로 활용할 수 있다. 또한, 스토리지 클래스 메모리(300)는 비휘발성 속성 및 휘발성 속성을 가지므로, 컴퓨팅 시스템(10)에서 메모리(200)나 저장 장치(400)를 대신하여 사용할 수 있다. 그러므로 본 발명의 다른 실시예에서 스토리지 클래스 메모리(300)는 컴퓨터 장치(10)의 메모리(200)로 활용할 수 있다. 또한, 본 발명의 또 다른 실시예에서 스토리지 클래스 메모리(300)는 컴퓨팅 장치(10)의 저장 장치(400)로 활용할 수 있다.The storage class memory 300 can be utilized as an expansion of the storage device 400 or a write buffer cache space of the memory 200 and the storage device 400 using a fast access speed in the computing system 10. In addition, the storage class memory 300 has non-volatile attributes and volatile attributes, so that it can be used in place of the memory 200 or the storage device 400 in the computing system 10. Thus, in another embodiment of the present invention, the storage class memory 300 may be utilized as the memory 200 of the computer device 10. [ Also, in another embodiment of the present invention, the storage class memory 300 may be utilized as the storage device 400 of the computing device 10.

또한, 스토리지 클래스 메모리(300)는 로그를 기록하기 위한 로그 영역 및 데이터를 저장하기 위한 데이터 영역(data area)을 포함할 수 있다. 이때, 데이터 영역은 파일이나 데이터를 저장하는 데이터 블록을 포함할 수 있다.In addition, the storage class memory 300 may include a log area for recording logs and a data area for storing data. At this time, the data area may include a file or a data block storing data.

본 발명의 일 실시예를 따른 스토리지 클래스 메모리(300)에 저장된 프로그램은 본 발명의 일 실시예가 적용된 파일 시스템을 운영하는 운영 체제(operating system)로서 동작하거나, 본 발명의 일 실시예가 적용된 파일 시스템이 탑재된 애플리케이션(application) 형태로 구성될 수 있다.The program stored in the storage class memory 300 according to an exemplary embodiment of the present invention may operate as an operating system for operating a file system to which an embodiment of the present invention is applied or a file system to which an embodiment of the present invention is applied And can be configured in the form of an application loaded.

이때, 파일 시스템은 컴퓨팅 장치(10)에 연결된 저장 장치(400) 및 데이터베이스(database) 등에 파일이나 데이터를 보관하고 관리하는 체계를 의미한다. 예를 들어, 파일 시스템은 FAT32(file allocation table 32), NTFS(new technology file system), EXT3(extended file system 3) 및 EXT4(extended file system 4) 등이 포함될 수 있다.The file system refers to a system for storing and managing files and data in a storage device 400 and a database connected to the computing device 10. For example, the file system may include a file allocation table 32 (FAT32), a new technology file system (NTFS), an extended file system 3 (EXT3), and an extended file system 4 (EXT4).

본 발명의 일 실시예에 따른 프로세서(100)는 프로그램의 실행에 따라, 스토리지 클래스 메모리(300)에 변경된 데이터의 갱신(update) 요청이 발생하면, 스토리지 클래스 메모리(300)에 포함된 로그 영역에 로그를 기록한다. 그리고 로그의 유형에 기반하여 스토리지 클래스 메모리(300)에 데이터 갱신을 수행한다.The processor 100 according to an embodiment of the present invention executes a program in response to a request to update the changed data in the storage class memory 300, Record the log. And performs data update on the storage class memory 300 based on the type of log.

이때, 스토리지 클래스 메모리(300)에서 변경된 데이터에 대한 갱신 요청은 프로세서(100)에 포함된 캐시 메모리나 메모리(200)에 저장된 데이터와 스토리지 클래스 메모리(300)에 데이터가 불일치할 때 발생한다. 즉, 갱신 요청은 스토리지 클래스 메모리(300)에 변경된 데이터를 반영하여 데이터 일관성 유지를 위하여 사용될 수 있다. 이와 같은 갱신 요청에 따라 프로세서(100)는 스토리지 클래스 메모리(300)에 포함된 로그 영역에 로그를 기록할 수 있다.At this time, the update request for the changed data in the storage class memory 300 occurs when the data stored in the cache memory or the memory 200 included in the processor 100 or the storage class memory 300 is inconsistent. That is, the update request may be used to maintain data consistency by reflecting the changed data in the storage class memory 300. [ In response to such an update request, the processor 100 may record the log in the log area included in the storage class memory 300. [

다음은 도 3 및 도 4를 참조하여 본 발명의 일 실시예에 따른 스토리지 클래스 메모리(300)에서 로그를 기록하고, 데이터를 갱신하는 과정을 설명한다. 도 3은 본 발명의 일 실시예에 따른 로그를 기록하는 과정 및 데이터를 갱신하는 과정을 설명하기 위한 예시도이고, 도 4는 본 발명의 일 실시예에 따른 로그 영역(310), 제 1 데이터 블록(320) 및 제 2 데이터 블록(330)을 포함하는 스토리지 클래스 메모리(300)를 개략적으로 도시한 구성도이다.Next, a process of writing logs and updating data in the storage class memory 300 according to an embodiment of the present invention will be described with reference to FIGS. 3 and 4. FIG. FIG. 3 is a diagram for explaining a log recording process and a data update process according to an embodiment of the present invention. FIG. 4 is a diagram illustrating a log area 310, And a storage class memory 300 including a block 320 and a second data block 330. As shown in FIG.

본 발명의 일 실시예를 따른 프로세서(100)는 스토리지 클래스 메모리(300)에 포함된 로그 영역(310)에 기록하는 로그가 증가하면 쓰기량 뿐만 아니라 “cache flush” 명령 수행도 많아질 수 있다. 그러므로 프로세서(100)는 로그 영역(310)에 기록되는 로그를 최소화할 필요가 있다.The processor 100 according to an exemplary embodiment of the present invention may increase the number of times the cache flush command is executed as well as the write amount when the number of logs recorded in the log area 310 included in the storage class memory 300 increases. Therefore, the processor 100 needs to minimize the log recorded in the log area 310.

이를 위하여 본 발명의 일 실시예는 스토리지 클래스 메모리(300)의 데이터 블록에서 갱신되는 데이터의 비율에 따라 로그의 유형을 다르게 설정할 수 있다. 그리고 로그의 유형에 따라 상이한 로그를 로그 영역(310)에 기록할 수 있다.To this end, an embodiment of the present invention may set the log type differently according to the ratio of data updated in the data block of the storage class memory 300. A different log may be recorded in the log area 310 according to the type of the log.

로그 영역(310)에 로그를 기록하기 위하여 프로세서(100)는 스토리지 클래스 메모리(300)의 데이터 블록에서 갱신되는 데이터 비율을 계산할 수 있다. 그리고 프로세서(100)는 갱신되는 데이터 비율에 따라 로그의 유형을 구분할 수 있다. 이때, 로그의 유형은 데이터 로그 및 포인터 로그를 포함할 수 있다.The processor 100 may calculate the data rate to be updated in the data block of the storage class memory 300 in order to record the log in the log area 310. [ The processor 100 may then determine the type of log according to the updated data rate. At this time, the type of the log may include a data log and a pointer log.

스토리지 클래스 메모리(300)에서 갱신되는 데이터 비율이 기 설정된 비율 미만일 때는 갱신 대상이 되는 데이터를 그대로 로그 영역(310)에 저장하더라도 로그 영역(310)에 기록되는 데이터 양이 비교적 적을 수 있다. 그렇기 때문에 기 설정 비율 미만인 경우 프로세서(100)는 로그 영역(310)에 데이터 로그를 기록할 수 있다. 이때, 데이터 로그는 갱신 대상이 되는 스토리지 클래스 메모리(300)에 저장된 데이터를 포함할 수 있다.When the data rate updated in the storage class memory 300 is less than the preset ratio, the amount of data recorded in the log area 310 may be relatively small even if the data to be updated is stored in the log area 310 as it is. Therefore, when the ratio is less than the preset ratio, the processor 100 can record the data log in the log area 310. [ At this time, the data log may include data stored in the storage class memory 300 to be updated.

이와 반대로 갱신되는 데이터 비율이 기 설정된 비율 이상일 때, 갱신 대상이 되는 데이터를 그대로 로그 영역(310)에 저장하게 된다면, 로그 영역(310)에 기록되는 데이터의 양이 비교적 많을 수 있다. 그렇기 때문에 기 설정 비율 이상인 경우 프로세서(100)는 로그 영역(310)에 포인터 로그를 기록할 수 있다. 이때, 포인터 로그는 갱신 대상이 되는 데이터가 저장된 스토리지 클래스 메모리(300)의 데이터 블록의 포인터를 포함하는 로그이다.On the contrary, when the updated data rate is equal to or greater than a predetermined rate, the amount of data recorded in the log area 310 may be relatively large if the data to be updated is stored in the log area 310 as it is. Therefore, when the predetermined ratio is equal to or higher than the preset ratio, the processor 100 can record the pointer log in the log area 310. [ At this time, the pointer log is a log including pointers to data blocks of the storage class memory 300 in which data to be updated is stored.

이와 같이, 본 발명의 일 실시예는 변경되는 데이터 비율에 따라 로그의 유형을 상이하게 설정하여 로그 데이터를 최소화할 수 있다.As described above, according to an embodiment of the present invention, log data can be minimized by setting different log types according to the changed data rate.

도 3에서처럼 갱신 요청 대상이 되는 복수의 데이터 블록이 있는 경우에는 각각의 데이터 블록에서 갱신되는 데이터 비율을 계산하고, 이 비율에 따라 각각의 데이터 블록에 해당하는 포인터 로그 및 데이터 로그를 로그 영역(310)에 기록할 수 있다. 본 발명의 일 실시예는 이렇게 로그를 기록하여 도 3의 하단과 같이 로그 데이터의 크기를 최소화할 수 있다. 이때, 저장되는 로그 데이터의 크기는 1,048바이트로 도 1에서의 기존 WAL 방법보다 1/8 적은 용량을 차지하게 된다.As shown in FIG. 3, when there are a plurality of data blocks subject to the update request, the data ratios updated in the respective data blocks are calculated, and pointer logs and data logs corresponding to the respective data blocks are stored in the log areas 310 ). ≪ / RTI > In one embodiment of the present invention, the size of the log data can be minimized as shown in the lower part of FIG. 3 by recording the log. At this time, the size of the log data to be stored is 1,048 bytes, which occupies 1/8 less capacity than the existing WAL method in FIG.

로그의 유형을 구분하기 위한 기 설정된 비율은 컴퓨팅 시스템(10)에 사용 환경에 따라 달라질 수 있다. 예를 들어, 본 발명의 일 실시예에서는 기 설정된 비율을 50%로 설정할 수 있다.The predetermined ratio for distinguishing the type of log may vary in the computing system 10 depending on the usage environment. For example, in one embodiment of the present invention, the predetermined ratio can be set to 50%.

도 4를 예를 들어 설명하면, 제 1 데이터 블록(320) 및 제 2 데이터 블록을 포함하는 스토리지 클래스 메모리(300)에 제 1 데이터 블록(320)에 저장된 데이터에 대한 갱신 요청이 발생할 수 있다. 프로세서(100)는 갱신 요청에 따라 제 1 데이터 블록(320)에서 변경되는 데이터 비율을 계산할 수 있다. 만약 변경되는 데이터 비율이 기 설정된 비율인 50% 미만인 경우, 프로세서(100)는 로그 영역(310)에 제 1 데이터 블록(320)에 저장된 데이터 중 갱신 대상이 되는 데이터를 포함하는 데이터 로그를 기록할 수 있다. 만약, 변경되는 데이터 비율이 50% 이상인 경우 프로세서(100)는 로그 영역(310)에 제 1 데이터 블록(320)의 포인터 포함하는 포인터 로그를 기록할 수 있다.Referring to FIG. 4, for example, an update request for data stored in the first data block 320 may occur in the storage class memory 300 including the first data block 320 and the second data block. The processor 100 may calculate the data rate to be changed in the first data block 320 in response to the update request. If the changed data rate is less than 50%, which is a predetermined ratio, the processor 100 writes a data log including data to be updated in the log area 310, among the data stored in the first data block 320 . If the changed data rate is 50% or more, the processor 100 may write a pointer log including the pointer of the first data block 320 in the log area 310. [

스토리지 클래스 메모리(300)의 로그 영역(310)에 변경되는 각 데이터 블록에 대한 모든 로그를 기록한 상태를 커밋(commit) 상태라고 한다. 커밋 상태가 되면, 프로세서(100)는 로그의 유형에 기반하여 스토리지 클래스 메모리(300)에 데이터를 갱신할 수 있다.A state in which all logs for each data block to be changed are recorded in the log area 310 of the storage class memory 300 is called a commit state. Once committed, the processor 100 may update the data in the storage class memory 300 based on the type of log.

커밋 상태가 된 다음, 프로세서(100)는 데이터를 갱신하기 위하여 먼저 앞서 설명한 로그 기록 방법에 따라 로그 영역에 기록된 로그의 유형을 판별할 수 있다. 이때, 데이터를 갱신하고자 하는 데이터 블록과 연관된 로그의 유형이 데이터 로그인 경우에는 프로세서(100)는 갱신 대상이 되는 데이터 블록에 직접 데이터를 갱신할 수 있다. 이와 달리, 로그의 유형이 포인터 로그인 경우에는 프로세서(100)는 갱신 대상이 되는 데이터 블록과 상이한 데이터 블록에 데이터를 갱신할 수 있다. After the commit state is established, the processor 100 may first determine the type of log recorded in the log area according to the log recording method described above in order to update the data. At this time, when the type of log associated with the data block to be updated is the data log-in, the processor 100 can update the data directly to the data block to be updated. Alternatively, if the type of log is a pointer login, the processor 100 may update the data in a data block different from the data block to be updated.

도 4를 예를 들어 설명하면, 스토리지 클래스 메모리(300)에 저장된 제 1 데이터 블록(320)과 연관된 로그의 유형이 데이터 로그인 경우, 프로세서(100)는 제 1 데이터 블록(320)에 데이터를 갱신할 수 있다. 이와 달리, 제 1 데이터 블록(320)과 연관된 로그의 유형이 포인터 로그인 경우, 프로세서(100)는 제 1 데이터 블록(320)과 상이한 제 2 데이터 블록(330)에 데이터를 갱신할 수 있다.4, if the type of log associated with the first data block 320 stored in the storage class memory 300 is a data logon, the processor 100 updates the data in the first data block 320 can do. Alternatively, if the type of log associated with the first data block 320 is a pointer login, the processor 100 may update the data in a second data block 330 that is different from the first data block 320.

프로세서(100)는 스토리지 클래스 메모리(300)에 갱신 요청에 따라 갱신하고자 하는 데이터로 갱신을 수행한 이후에 성공적으로 데이터 갱신이 끝나면, 체크아웃(check out) 프로세스를 사용하여 로그를 삭제하여 데이터 갱신을 완료할 수 있다. The processor 100 updates the storage class memory 300 with data to be updated according to the update request, and when the data update is successfully completed, the processor 100 deletes the log using the check-out process, Can be completed.

다음은 도 4 및 도 5를 참조하여 본 발명의 일 실시예에 따른 스토리지 클래스 메모리(300)의 복구 과정을 설명한다. 도 5는 본 발명의 일 실시예에 따른 데이터 복구 과정을 설명하기 위한 예시도이다.Next, a recovery process of the storage class memory 300 according to an embodiment of the present invention will be described with reference to FIGS. 4 and 5. FIG. 5 is an exemplary diagram illustrating a data recovery process according to an embodiment of the present invention.

본 발명의 일 실시예를 따른 프로세서(100)는 스토리지 클래스 메모리(300)에서 데이터를 갱신하는 도중 오류가 발생하였을 경우, 로그 영역(310)에 기록된 로그를 이용하여 데이터를 복구할 수 있다.The processor 100 according to an embodiment of the present invention can recover data using a log recorded in the log area 310 when an error occurs while updating data in the storage class memory 300. [

여기에서 오류는 컴퓨팅 장치(10)에서 데이터를 갱신하는 도중 시스템 실패(system failure)가 발생하는 것을 의미한다. 시스템 실패는 컴퓨팅 장치(10)의 전원 오류나 시스템 오류 등에 의하여 발생할 수 있으나 이에 한정된 것은 아니다. 시스템 실패가 발생하면 컴퓨팅 장치(10)는 스토리지 클래스 메모리(300)에 더 이상 데이터를 갱신할 수 없다.Here, an error means that a system failure occurs while updating the data in the computing device 10. The system failure may occur due to a power failure of the computing device 10 or a system error, but is not limited thereto. When the system failure occurs, the computing device 10 can not update the data in the storage class memory 300 any more.

이와 같이 시스템 실패가 발생하여 데이터를 갱신할 수 없을 때, 본 발명의 일 실시예를 따른 프로세서(100)는 로그 영역(310)에 기록된 로그를 이용하여 데이터 복구를 수행할 수 있다. 이를 위하여 먼저, 프로세서(100)는 복구를 수행할 데이터 블록과 연관된 로그의 유형을 판별할 수 있다. 이때, 로그의 유형이 데이터 로그인 경우에는 프로세서(100)는 데이터 로그를 이용하여 데이터 블록의 데이터를 복구할 수 있다. 이와 반대로 로그의 유형이 포인터 로그인 경우에는 프로세서(100)는 포인터 로그에 포함된 데이터 블록의 포인터 정보를 이용하여 데이터를 복구할 수 있다. 프로세서(100)는 포인터 로그를 이용하여 복구를 수행한 이후, 갱신된 데이터가 저장된 데이터 블록을 삭제할 수 있다.When the system fails and the data can not be updated, the processor 100 according to an embodiment of the present invention can perform data recovery using the log recorded in the log area 310. [ To do this, the processor 100 may first determine the type of log associated with the data block to be recovered. At this time, if the log type is a data log-in, the processor 100 can recover the data of the data block using the data log. On the other hand, when the log type is a pointer log, the processor 100 can recover data using pointer information of a data block included in the pointer log. After the processor 100 performs the recovery using the pointer log, the processor 100 may delete the data block storing the updated data.

즉, 도 5에서처럼 갱신된 데이터를 쓰는 도중 시스템 실패가 발생하면, 본 발명의 일 실시예는 미리 로그 영역(310)에 기록해 놓은 로그를 이용하여 데이터를 변경 전으로 롤백(roll back)하여 데이터의 일관성을 보장할 수 있다.That is, when a system failure occurs while writing updated data as shown in FIG. 5, an embodiment of the present invention rolls back the data before the change using the log recorded in the log area 310 in advance, Consistency can be ensured.

위에서 설명한 것처럼 본 발명의 일 실시예는 복구 수행 대상이 되는 데이터 블록과 연관된 로그의 유형에 따라 복구 방법이 달라질 수 있다. 만약, 로그의 유형이 데이터 로그인 경우에는 도 5의 (A)와 같이 프로세서(100)는 로그 영역(310)에 기록된 데이터를 이용하여 복구를 수행할 수 있다. 만약, 로그의 유형이 포인터 로그인 경우에는 도 5의 (B)와 같이 프로세서(100)는 로그 영역(310)에 기록된 포인터 정보를 이용하여 현재 데이터가 저장된 데이터 블록을 이전 데이터가 저장되었던 데이터 블록으로 교체하여 데이터를 복구할 수 있다. 이때, 포인터 정보를 이용하여 데이터를 복구한 이후, 갱신된 데이터를 저장하였던 데이터 블록을 삭제하여 복구를 완료할 수 있다.As described above, according to an embodiment of the present invention, a recovery method may be different depending on the type of log associated with a data block to be restored. If the type of the log is a data log, the processor 100 may perform recovery using data recorded in the log area 310 as shown in FIG. 5A. If the type of the log is a pointer, the processor 100 uses the pointer information recorded in the log area 310 as shown in FIG. 5B to store the data block in which the current data is stored in the data block in which the previous data was stored To recover the data. At this time, after recovering the data using the pointer information, the data block storing the updated data can be deleted and the recovery can be completed.

예를 들어, 도 4를 참조하여 다시 설명하면, 본 발명의 일 실시예에 따라 데이터 갱신 도중 시스템 실패가 발생하면, 프로세서(100)는 로그 영역(310)에 기록된 로그의 유형을 판별할 수 있다. 만약, 로그 영역(310)에 제 1 데이터 블록의 데이터 로그가 기록되어 있었다면, 프로세서(100)는 데이터 로그를 이용하여 제 1 데이터 블록의 데이터를 복구할 수 있다. 만약, 로그 영역(310)에 제 1 데이터 블록의 포인터 정보를 저장하는 포인터 로그가 기록되어 있다면, 프로세서(100)는 제 1 데이터 블록의 포인터 정보를 이용하여 데이터가 저장된 제 2 데이터 블록을 제 1 데이터 블록으로 교체할 수 있다. 이렇게 포인터 로그를 이용하여 복구를 수행한 이후에는, 데이터 저장 시 새로 할당된 제 2 데이터 블록에 데이터를 삭제할 수 있다.For example, referring to FIG. 4, if a system failure occurs during data update according to an embodiment of the present invention, the processor 100 may determine the type of log recorded in the log area 310 have. If a data log of the first data block is recorded in the log area 310, the processor 100 may recover the data of the first data block using the data log. If a pointer log for storing pointer information of the first data block is recorded in the log area 310, the processor 100 uses the pointer information of the first data block to convert the second data block, Data blocks can be replaced. After performing the recovery using the pointer log, the data can be deleted in the second data block newly allocated when the data is stored.

다음은 도 6 내지 도 9를 참조하여 본 발명의 일 실시예에 따른 스토리지 클래스 메모리(300)에 기반을 둔 파일 시스템에서 데이터의 일관성을 유지하는 방법을 설명한다.Next, a method of maintaining data consistency in a storage system based on the storage class memory 300 according to an embodiment of the present invention will be described with reference to FIGS. 6 to 9. FIG.

도 6은 본 발명의 일 실시예에 따른 스토리지 클래스 메모리(300)에 기반의 파일 시스템에서 데이터의 일관성 유지 방법을 설명하기 위한 순서도이다.6 is a flowchart illustrating a method of maintaining data consistency in a file system based on the storage class memory 300 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 스토리지 클래스 메모리(300) 기반의 파일 시스템에서의 데이터 일관성 유지 방법은 스토리지 클래스 메모리(300)에 저장된 데이터를 갱신하기 위한 갱신 요청이 발생하면(S500), 스토리지 클래스 메모리(300)에 포함된 로그 영역(310)에 저장된 데이터의 로그를 기록하고 (S510), 로그의 유형에 기반하여 스토리지 클래스 메모리(300)에 갱신 요청에 따라 갱신하고자 하는 데이터로 갱신한다(S520).The method of maintaining data consistency in a file system based on the storage class memory 300 according to an embodiment of the present invention is a method of maintaining data consistency in a storage class memory 300 when a update request for updating data stored in the storage class memory 300 is generated A log of data stored in the log area 310 included in the storage 300 is updated in step S510 and updated in the storage class memory 300 based on the type of log with data to be updated according to the update request in step S520. .

이때, 스토리지 클래스 메모리(300)는 비휘발성 속성과 휘발성 속성을 동시에 지닌 메모리로 PCM(phase-change RAM), FeRAM(ferroelectric RAM), MRAM(magnetic RAM), RRAM(resistive RAM), STT-MRAM 등을 포함할 수 있다. 또한, 스토리지 클래스 메모리(300)는 로그를 기록하기 위한 로그 영역(310) 및 데이터를 저장하기 위한 데이터 영역을 포함할 수 있다. 이때, 데이터 영역은 파일이나 데이터를 저장하는 하나 이상의 데이터 블록(320, 330)을 포함할 수 있다.At this time, the storage class memory 300 is a memory having both a nonvolatile property and a volatile property, such as a phase change RAM (PCM), a ferroelectric RAM (FeRAM), a magnetic RAM (MRAM), a resistive RAM (RRAM) . ≪ / RTI > In addition, the storage class memory 300 may include a log area 310 for recording logs and a data area for storing data. At this time, the data area may include one or more data blocks 320 and 330 for storing files or data.

파일 시스템은 스토리지 클래스 메모리(300)의 파일이나 데이터를 보관하고 관리하는 체계를 의미할 수 있다. 예를 들어, 파일 시스템은 FAT32(file allocation table 32), NTFS(new technology file system), EXT3(extended file system 3) 및 EXT4(extended file system 4) 등이 포함될 수 있다.The file system may refer to a system for storing and managing files and data of the storage class memory 300. For example, the file system may include a file allocation table 32 (FAT32), a new technology file system (NTFS), an extended file system 3 (EXT3), and an extended file system 4 (EXT4).

본 발명의 일 실시예에서 갱신 요청은 프로세서(100)에 포함된 캐시 메모리나 메모리(200)에 저장된 데이터와 스토리지 클래스 메모리(300)에 데이터가 불일치할 때, 스토리지 클래스 메모리(300)에 변경된 데이터를 반영하여 데이터 일관성 유지를 위하여 사용될 수 있다. 그리고 갱신 요청에 따라 본 발명의 일 실시예는 스토리지 클래스 메모리(300)에 포함된 로그 영역(310)에 로그를 기록할 수 있다.In an embodiment of the present invention, the update request may be issued to the storage class memory 300 when the data stored in the cache memory or the memory 200 included in the processor 100 and the data stored in the storage class memory 300 are inconsistent. And can be used to maintain data consistency. According to an update request, an embodiment of the present invention may record a log in the log area 310 included in the storage class memory 300. [

이때, 로그 영역(310)에 저장되는 로그의 유형은 데이터 로그 및 포인터 로그를 포함할 수 있다. 데이터 로그는 로그 영역(310)에 기록되는 데이터 양이 비교적 적은 경우 이용하는 것으로 갱신 대상이 되는 스토리지 클래스 메모리(300)에 저장된 데이터를 포함할 수 있다. 포인터 로그는 로그 영역(310)에 기록되는 비교적 데이터 양이 많은 경우 이용하는 것으로 갱신 대상이 되는 데이터가 저장된 데이터 블록의 포인터를 포함할 수 있다.At this time, the type of log stored in the log area 310 may include a data log and a pointer log. The data log may be used when the amount of data recorded in the log area 310 is relatively small and may include data stored in the storage class memory 300 to be updated. The pointer log may be used when a relatively large amount of data is recorded in the log area 310 and may include a pointer to a data block in which data to be updated is stored.

도 7은 본 발명의 일 실시예에 따른 파일 시스템의 데이터 일관성 유지 방법에서 로그 영역(310)에 로그를 기록하는 단계를 설명하기 위한 순서도이다.7 is a flowchart illustrating a process of recording a log in the log area 310 in the method of maintaining data consistency in a file system according to an embodiment of the present invention.

먼저, 파일 시스템은 스토리지 클래스 메모리(300)의 로그 영역(310)에 저장된 데이터의 로그를 기록하기 위하여(S510) 스토리지 클래스 메모리(300)의 각 데이터 블록에서 변경되는 데이터 비율을 계산할 수 있다(S511). 파일 시스템은 이렇게 계산된 비율을 이용하여 로그 영역(310)에 로그를 기록하기 위하여(S510) 데이터 블록의 변경되는 데이터 비율이 기 설정된 비율 이상인지 여부를 판별할 수 있다(S512). 이때, 변경되는 데이터 비율이 기 설정된 비율 이상이면, 로그 영역(310)에 갱신되는 데이터가 저장된 데이터 블록의 포인터를 포함하는 포인터 로그를 기록할 수 있다(S514). 이와 달리 변경되는 데이터 비율이 기 설정된 비율 이하이면, 로그 영역(310)에 갱신되는 데이터를 포함하는 데이터 로그를 기록할 수 있다(S513).First, the file system may calculate the data rate to be changed in each data block of the storage class memory 300 to record the log of the data stored in the log area 310 of the storage class memory 300 (S510) ). The file system can determine whether the changed data rate of the data block is equal to or greater than a preset ratio in order to record the log in the log area 310 using the thus calculated ratio (S510). At this time, if the changed data rate is equal to or greater than a preset ratio, a pointer log including a pointer of a data block storing updated data in the log area 310 may be recorded (S514). Alternatively, if the changed data rate is less than the preset ratio, the data log including the updated data may be recorded in the log area 310 (S513).

로그의 유형을 구분하기 위한 기 설정된 비율은 스토리지 클래스 메모리(300)를 포함하는 컴퓨팅 시스템(10)이 실행되는 환경에 따라 달라질 수 있다. 예를 들어 본 발명의 일 실시예는 기 설정된 비율로 50%를 설정할 수 있다. 이때, 변경되는 데이터 비율이 50% 이상인 경우에는 포인터 로그를 기록하고(S514), 변경되는 데이터 비율이 50% 미만인 경우에는 데이터 로그를 기록할 수 있다(S513).The predetermined rate for classifying the log may vary depending on the environment in which the computing system 10 including the storage class memory 300 is executed. For example, one embodiment of the present invention can set 50% at a predetermined rate. At this time, if the changed data rate is 50% or more, the pointer log is recorded (S514). If the changed data rate is less than 50%, the data log may be recorded (S513).

도 8은 본 발명의 일 실시예에 따른 파일 시스템의 데이터 일관성 유지 방법에서 데이터 갱신 단계를 설명하기 위한 순서도이다.8 is a flowchart illustrating a data updating step in a data consistency maintenance method of a file system according to an embodiment of the present invention.

데이터를 갱신하기 위하여(S520) 파일 시스템은 먼저, 데이터를 갱신해야 하는 데이터 블록의 로그의 유형을 판별할 수 있다(S521, S522). 그리고 로그의 유형이 데이터 로그인 경우에는 데이터가 저장된 데이터 블록에 데이터를 갱신할 수 있다(S523). 이와 반대로 로그의 유형이 포인터 로그인 경우에는 갱신대상이 되는 데이터가 저장된 데이터 블록과 상이한 데이터 블록에 데이터를 저장할 수 있다(S524).In order to update the data (S520), the file system may first determine the type of log of the data block that needs to update the data (S521, S522). If the type of the log is the data log, the data can be updated in the data block in which the data is stored (S523). On the other hand, if the log type is a pointer, the data can be stored in a data block different from the data block in which the data to be updated is stored (S524).

데이터 갱신(S520)이 성공한 이후에는 체크아웃 프로세스를 사용하여 로그 영역(310)에 기록된 로그를 삭제하여 데이터 갱신을 완료할 수 있다(S525, S527).After the data update (S520) is successful, the log recorded in the log area 310 may be deleted using the checkout process to complete the data update (S525, S527).

만약, 파일 시스템이 스토리지 클래스 메모리(300)에 데이터를 갱신을 수행하는(S520) 도중에 오류가 발생하였을 경우, 파일 시스템은 로그를 이용하여 데이터를 복구할 수 있다(S526). 이때, 오류는 컴퓨팅 장치의 전원 이상 및 시스템 오류 등의 모든 종류의 시스템 실패를 포함할 수 있다. 본 발명의 일 실시예에서는 시스템 실패가 발생하면, 미리 로그 영역(310)에 기록해 놓은 로그 데이터를 이용하여 데이터를 변경 전으로 롤백(roll back)하여 데이터의 일관성을 보장할 수 있다.If an error occurs while the file system updates the data in the storage class memory (S520), the file system can recover the data using the log (S526). At this time, the error may include all kinds of system failures such as a power failure of the computing device and a system failure. In an embodiment of the present invention, when a system failure occurs, the log data recorded in the log area 310 may be used to roll back the data before the change to ensure the consistency of the data.

도 9는 본 발명의 일 실시예에 따른 파일 시스템의 데이터 일관성 유지 방법에서 로그를 이용하여 복구하는 단계를 설명하기 위한 순서도이다.FIG. 9 is a flowchart illustrating a method of recovering data using a log in a method of maintaining data consistency in a file system according to an exemplary embodiment of the present invention. Referring to FIG.

스토리지 클래스 메모리(300)에서 로그를 이용하여 복구하기 위하여(S540) 먼저, 파일 시스템은 데이터를 복구하는 데이터 블록의 로그의 유형을 판별할 수 있다(S541). 이때, 데이터 블록의 로그의 유형이 데이터 로그인 경우에는 데이터 로그에 저장된 정보를 이용하여 데이터 블록의 데이터를 복구할 수 있다(S542). 이와 달리, 데이터 블록의 로그의 유형이 포인터 로그인 경우에는 포인터 로그에 포함된 포인터 정보를 이용하여 데이터 블록의 데이터를 복구하고(S543), 데이터를 저장하기 위하여 새로 할당한 데이터 블록을 삭제할 수 있다(S545).In order to restore using the log in the storage class memory 300 (S540), the file system may determine the type of log of the data block from which data is to be recovered (S541). At this time, if the log type of the data block is a data log, the data of the data block can be recovered using the information stored in the data log (S542). Alternatively, if the log type of the data block is a pointer, the data of the data block may be recovered using the pointer information included in the pointer log (S543), and the newly allocated data block may be deleted to store the data S545).

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스 될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.One embodiment of the present invention may also be embodied in the form of a recording medium including instructions executable by a computer, such as program modules, being executed by a computer. Computer readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, the computer-readable medium may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes any information delivery media, including computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.While the methods and systems of the present invention have been described in connection with specific embodiments, some or all of those elements or operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.It will be understood by those skilled in the art that the foregoing description of the present invention is for illustrative purposes only and that those of ordinary skill in the art can readily understand that various changes and modifications may be made without departing from the spirit or essential characteristics of the present invention. will be. It is therefore to be understood that the above-described embodiments are illustrative in all aspects and not restrictive. For example, each component described as a single entity may be distributed and implemented, and components described as being distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is defined by the appended claims rather than the detailed description and all changes or modifications derived from the meaning and scope of the claims and their equivalents are to be construed as being included within the scope of the present invention do.

10: 스토리지 클래스 메모리를 포함하는 컴퓨팅 장치
100: 프로세서
200: 메모리
300: 스토리지 클래스 메모리
400: 저장 장치
10: A computing device comprising storage class memory
100: Processor
200: memory
300: Storage class memory
400: storage device

Claims (12)

스토리지 클래스 메모리를 포함하는 컴퓨팅 장치에 있어서,
파일 시스템을 운영하는 프로그램이 저장된 스토리지 클래스 메모리 및
상기 스토리지 클래스 메모리에 저장된 프로그램을 운영하는 프로세서를 포함하되,
상기 프로세서는 상기 프로그램의 실행에 따라, 상기 스토리지 클래스 메모리에 저장된 데이터를 갱신하기 위한 갱신 요청이 발생하면, 상기 갱신이 요청된 데이터에 기초하여 로그의 유형을 판단하고, 상기 판단된 로그의 유형에 따라 상기 데이터에 대한 로그를 생성하며,
상기 스토리지 클래스 메모리의 로그 영역에 상기 생성된 로그를 기록한 후, 상기 기록된 로그의 유형에 기반하여 상기 갱신이 요청된 데이터를 상기 스토리지 클래스 메모리에 갱신하고,
상기 데이터의 갱신에 성공한 이후, 체크아웃 프로세서를 사용하여 상기 로그를 삭제하여 상기 데이터 갱신을 완료하되,
상기 로그의 유형은 상기 데이터를 기록하는 데이터 로그 및 상기 데이터의 포인트를 기록하는 포인트 로그를 포함하는 컴퓨팅 장치.
A computing device comprising a storage class memory,
The storage class memory in which the programs that run the file system are stored, and
And a processor for operating a program stored in the storage class memory,
Wherein the processor determines the type of the log based on the data requested to be updated when an update request for updating the data stored in the storage class memory occurs according to the execution of the program, Generates a log for the data,
Updating the data requested to be updated in the storage class memory based on the type of the log recorded after recording the generated log in a log area of the storage class memory,
After completion of the update of the data, deleting the log using the check-out processor to complete the data update,
Wherein the type of the log includes a data log for recording the data and a point log for recording points of the data.
제 1 항에 있어서,
상기 프로세서는 상기 스토리지 클래스 메모리의 데이터 블록에서 갱신되는 데이터의 비율에 따라,
상기 갱신되는 데이터의 비율이 기 설정된 비율 미만이면, 상기 로그 영역에 상기 저장된 데이터를 포함하는 상기 데이터 로그를 생성하고,
상기 갱신되는 데이터의 비율이 기 설정된 비율 이상이면, 상기 로그 영역에 상기 저장된 데이터가 저장된 데이터 블록의 포인터를 포함하는 상기 포인터 로그를 생성하는 컴퓨팅 장치.
The method according to claim 1,
Wherein the processor is further configured to determine, based on a ratio of data updated in a data block of the storage class memory,
Generating the data log including the stored data in the log area if the ratio of the updated data is less than a predetermined ratio,
And generates the pointer log including a pointer to a data block in which the stored data is stored in the log area if the ratio of the updated data is equal to or greater than a predetermined ratio.
제 1 항에 있어서,
상기 프로세서는 상기 로그의 유형에 기반하여 상기 스토리지 클래스 메모리에 저장된 상기 데이터를 갱신하기 위하여, 상기 로그의 유형을 판별하고,
상기 로그의 유형이 데이터 로그인 경우에는 상기 스토리지 클래스 메모리의 상기 데이터 블록에 상기 데이터를 갱신하고,
상기 로그의 유형이 포인터 로그인 경우에는 상기 데이터 블록과 상이한 데이터 블록에 상기 데이터를 갱신하는 컴퓨팅 장치.
The method according to claim 1,
The processor determines a type of the log to update the data stored in the storage class memory based on the type of the log,
Updating the data in the data block of the storage class memory if the type of the log is a data log,
And updates the data in a data block different from the data block if the type of log is a pointer login.
제 1 항에 있어서,
상기 프로세서는 상기 스토리지 클래스 메모리에서 상기 데이터를 갱신하는 도중 오류가 발생하였을 경우, 상기 로그를 이용하여 상기 데이터를 복구하는 컴퓨팅 장치.
The method according to claim 1,
Wherein the processor recovers the data using the log when an error occurs in updating the data in the storage class memory.
제 4 항에 있어서,
상기 프로세서는 상기 로그를 이용하여 상기 데이터를 복구하기 위하여 상기 로그의 유형을 판별하고, 상기 로그의 유형이 데이터 로그인 경우에는 상기 데이터 로그를 이용하여 상기 데이터 블록의 데이터를 복구하고,
상기 로그의 유형이 포인터 로그인 경우에는 상기 포인터 로그에 포함된 상기 데이터 블록의 포인터 정보를 이용하여 상기 데이터 블록의 데이터를 복구하고, 상기 갱신을 수행한 이후의 데이터가 저장된 데이터 블록을 삭제하는 컴퓨팅 장치.
5. The method of claim 4,
Wherein the processor determines the type of the log to recover the data using the log, and if the type of the log is a data log, restores the data of the data block using the data log,
Wherein when the type of the log is a pointer, the data of the data block is recovered by using pointer information of the data block included in the pointer log, and the data block stored with data after the update is deleted, .
삭제delete 스토리지 클래스 메모리 기반의 파일 시스템에서의 데이터 일관성 유지 방법에 있어서,
상기 스토리지 클래스 메모리에 저장된 데이터를 갱신하기 위한 갱신 요청이 발생하는 단계;
상기 갱신이 요청된 데이터에 기초하여 로그의 유형을 판단하는 단계;
상기 판단된 로그의 유형에 따라 상기 데이터에 대한 로그를 생성하는 단계;
상기 스토리지 클래스 메모리에 포함된 로그 영역에 상기 생성된 로그를 기록하는 단계;
상기 기록된 로그의 유형에 기반하여 상기 갱신 요청에 따라 갱신이 요청된 데이터를 상기 스토리지 클래스 메모리에 갱신하는 단계; 및
상기 데이터 갱신에 성공한 이후, 체크아웃 프로세서를 사용하여 상기 로그를 삭제하여 상기 데이터 갱신을 완료하는 단계를 포함하되,
상기 로그의 유형은 상기 데이터를 기록하는 데이터 로그 및 상기 데이터의 포인트를 기록하는 포인트 로그를 포함하는 데이터 일관성 유지 방법.
A method for maintaining data consistency in a storage class memory based file system,
Generating an update request to update data stored in the storage class memory;
Determining a type of the log based on the data for which the update is requested;
Generating a log for the data according to the determined type of log;
Recording the generated log in a log area included in the storage class memory;
Updating data in the storage class memory based on the type of the logged log, the data being updated in accordance with the update request; And
And deleting the log using the check-out processor after completing the data update to complete the data update,
Wherein the type of the log includes a data log for recording the data and a point log for recording points of the data.
제 7 항에 있어서,
상기 로그를 생성하는 단계는,
상기 스토리지 클래스 메모리에서 상기 데이터가 저장된 상기 데이터 블록의 변경되는 데이터 비율을 계산하는 단계;를 포함하고,
상기 갱신되는 데이터의 비율이 기 설정된 비율 미만이면, 상기 갱신되는 데이터를 포함하는 상기 데이터 로그를 생성하고,
상기 갱신되는 데이터의 비율이 기 설정된 비율 이상이면, 상기 갱신되는 데이터가 저장된 데이터 블록의 포인터를 포함하는 상기 포인터 로그를 생성하는 데이터 일관성 유지 방법.
8. The method of claim 7,
Wherein the generating the log comprises:
And calculating a changed data rate of the data block in which the data is stored in the storage class memory,
Generating the data log including the updated data if the ratio of the updated data is less than a predetermined ratio,
Wherein the pointer log includes a pointer of a data block in which the updated data is stored if the ratio of the updated data is equal to or greater than a predetermined ratio.
제 7 항에 있어서,
상기 데이터를 갱신하는 단계는,
상기 스토리지 클래스 메모리에서 상기 데이터가 저장된 상기 데이터 블록의 로그의 유형을 판별하는 단계;
상기 로그의 유형이 데이터 로그인 경우에는 상기 데이터가 저장된 상기 데이터 블록에 데이터를 갱신하는 단계; 및
상기 로그의 유형이 포인터 로그인 경우에는 상기 데이터가 저장된 상기 데이터 블록과 상이한 데이터 블록에 데이터를 저장하는 단계를 포함하는 데이터 일관성 유지 방법.
8. The method of claim 7,
The step of updating the data comprises:
Determining a type of log of the data block in which the data is stored in the storage class memory;
Updating data in the data block in which the data is stored if the type of the log is a data log-in; And
Storing data in a data block different from the data block in which the data is stored when the type of the log is a pointer login.
삭제delete 제 7 항에 있어서,
상기 스토리지 클래스 메모리에 상기 데이터를 갱신하는 도중 오류가 발생하는 단계; 및
상기 로그를 이용하여 상기 오류가 발생한 데이터를 복구하는 단계를 더 포함하는 데이터 일관성 유지 방법.
8. The method of claim 7,
Generating an error in updating the data in the storage class memory; And
And recovering the erroneous data using the log.
제 11 항에 있어서,
상기 오류가 발생한 데이터를 복구하는 단계는,
상기 오류가 발생한 데이터에 대응하는 데이터 블록의 로그의 유형을 판별하는 단계;
상기 데이터 블록의 로그의 유형이 데이터 로그인 경우에는 상기 데이터 로그에 기록된 정보를 이용하여 상기 데이터 블록의 데이터를 복구하는 단계; 및
상기 데이터 블록의 로그의 유형이 포인터 로그인 경우에는 상기 포인터 로그에 포함된 상기 데이터 블록의 포인터 정보를 이용하여 상기 데이터 블록의 데이터를 복구하고, 상기 오류가 발생한 데이터를 저장하기 위하여 새로 할당한 데이터 블록을 삭제하는 단계를 포함하는 데이터 일관성 유지 방법.
12. The method of claim 11,
The step of recovering the error-
Determining a type of log of a data block corresponding to the data in which the error occurred;
Recovering data of the data block using information recorded in the data log when the type of log of the data block is a data log-in; And
If the type of log of the data block is a pointer login, restores the data of the data block using the pointer information of the data block included in the pointer log, and stores the newly allocated data block The method comprising the steps of:
KR1020140123442A 2014-09-17 2014-09-17 Method and apparatus for data consistency control of storage class memory KR101541532B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140123442A KR101541532B1 (en) 2014-09-17 2014-09-17 Method and apparatus for data consistency control of storage class memory

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140123442A KR101541532B1 (en) 2014-09-17 2014-09-17 Method and apparatus for data consistency control of storage class memory

Publications (1)

Publication Number Publication Date
KR101541532B1 true KR101541532B1 (en) 2015-08-06

Family

ID=53885509

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140123442A KR101541532B1 (en) 2014-09-17 2014-09-17 Method and apparatus for data consistency control of storage class memory

Country Status (1)

Country Link
KR (1) KR101541532B1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101809679B1 (en) 2016-05-26 2017-12-15 성균관대학교산학협력단 Apparatus and method for consistency of database
KR20180082232A (en) * 2017-01-10 2018-07-18 한국교통대학교산학협력단 Persistent dynamic random access memory storage using non-volatile ram and operating method therefof
KR20210089932A (en) * 2020-01-09 2021-07-19 성균관대학교산학협력단 Non-volatile memory storage, computing system including the same and peration method thereof
US11983440B2 (en) 2020-12-30 2024-05-14 Samsung Electronics Co., Ltd. Storage device including memory controller implementing journaling and operating method of the memory controller

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
‘PCM 기반 저장시스템을 위한 쓰기 효율적인 저널링 파일 시스템의 설계 및 구현’, 정보과학회논문지, 시스템 및 이론 제41권 제2호, 페이지 93-100, 2014.04.

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101809679B1 (en) 2016-05-26 2017-12-15 성균관대학교산학협력단 Apparatus and method for consistency of database
KR20180082232A (en) * 2017-01-10 2018-07-18 한국교통대학교산학협력단 Persistent dynamic random access memory storage using non-volatile ram and operating method therefof
KR101888781B1 (en) 2017-01-10 2018-08-16 한국교통대학교산학협력단 Persistent dynamic random access memory storage using non-volatile ram and operating method therefof
KR20210089932A (en) * 2020-01-09 2021-07-19 성균관대학교산학협력단 Non-volatile memory storage, computing system including the same and peration method thereof
US11294822B2 (en) 2020-01-09 2022-04-05 Research & Business Foundation Sungkyunkwan University Non-volatile memory storage, computing system including the same and operation method thereof
KR102412423B1 (en) * 2020-01-09 2022-06-23 성균관대학교산학협력단 Non-volatile memory storage, computing system including the same and peration method thereof
US11983440B2 (en) 2020-12-30 2024-05-14 Samsung Electronics Co., Ltd. Storage device including memory controller implementing journaling and operating method of the memory controller

Similar Documents

Publication Publication Date Title
US10152381B1 (en) Using storage defragmentation function to facilitate system checkpoint
US10235066B1 (en) Journal destage relay for online system checkpoint creation
US20230117542A1 (en) Remote Data Replication Method and System
CN111480149B (en) Pre-written logging in persistent memory devices
US10102075B2 (en) Systems and methods for storage collision management
US11301379B2 (en) Access request processing method and apparatus, and computer device
US9842128B2 (en) Systems and methods for atomic storage operations
US10019320B2 (en) Systems and methods for distributed atomic storage operations
US9342256B2 (en) Epoch based storage management for a storage device
CN107798130B (en) Method for storing snapshot in distributed mode
CN105843551B (en) Data integrity and loss resistance in high performance and large capacity storage deduplication
US9021222B1 (en) Managing incremental cache backup and restore
US9075754B1 (en) Managing cache backup and restore
US9990150B2 (en) Method to provide transactional semantics for updates to data structures stored in a non-volatile memory
US11347725B2 (en) Efficient handling of highly amortized metadata page updates in storage clusters with delta log-based architectures
US10521148B2 (en) Data storage device backup
US10664397B2 (en) Cache recovery method in a distributed storage system
US11030092B2 (en) Access request processing method and apparatus, and computer system
US11194666B2 (en) Time addressable storage in a content addressable storage system
KR101541532B1 (en) Method and apparatus for data consistency control of storage class memory
Son et al. SSD-assisted backup and recovery for database systems
CN110134551B (en) Continuous data protection method and device
KR101456104B1 (en) Method, system for dual buffering file management with non-volatile memory and mass storage device using the same
US7313724B1 (en) Method and apparatus for synchronizing redundant data with a volume
US11216388B2 (en) Tiering between storage media in a content aware storage system

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180820

Year of fee payment: 4