KR20140142125A - Computer systerm providing file system - Google Patents

Computer systerm providing file system Download PDF

Info

Publication number
KR20140142125A
KR20140142125A KR1020130134015A KR20130134015A KR20140142125A KR 20140142125 A KR20140142125 A KR 20140142125A KR 1020130134015 A KR1020130134015 A KR 1020130134015A KR 20130134015 A KR20130134015 A KR 20130134015A KR 20140142125 A KR20140142125 A KR 20140142125A
Authority
KR
South Korea
Prior art keywords
file system
namespace
volatile memory
memory
cpu
Prior art date
Application number
KR1020130134015A
Other languages
Korean (ko)
Other versions
KR101531447B1 (en
Inventor
황태호
원유집
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Publication of KR20140142125A publication Critical patent/KR20140142125A/en
Application granted granted Critical
Publication of KR101531447B1 publication Critical patent/KR101531447B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1847File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
    • 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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Provided is a computer system for providing a file system, which includes a central processing unit (CPU) accessing the file system and a non-volatile memory storing data of the file system and capable of being accessed in byte units. The CPU stores a name space for objects in the file system, into the non-volatile memory. The name space is stored in the form of a data structure employing an in-memory method, in the non-volatile memory. The CPU directly accesses the name space, so the time to search the name space can be reduced.

Description

파일 시스템을 제공하는 컴퓨터 시스템{COMPUTER SYSTERM PROVIDING FILE SYSTEM}[0001] COMPUTER SYSTERM PROVIDING FILE SYSTEM [0002]

아래의 설명은 파일 시스템을 제공하는 컴퓨터 시스템에 관한 것으로, 특히 비휘발성 메모리를 포함하는 파일 시스템을 제공하는 컴퓨터 시스템에 관한 것이다.The following description relates to a computer system that provides a file system, and more particularly to a computer system that provides a file system that includes non-volatile memory.

기존의 컴퓨터 시스템이 제공하는 파일 시스템의 데이터는 하드디스크와 같은 저장 장치에 저장된다. 따라서, 파일 시스템의 네임스페이스가 포함하는 네임엔트리는 온-디스크(On-disk) 방식의 자료 구조로서 파일 시스템 내의 객체 내에 저장된다. 저장 장치에 네임엔트리가 저장된 경우, 컴퓨터 시스템의 전원이 차단되는 경우에도 데이터가 보존될 수 있으며 네임스페이스가 영속적으로 관리될 수 있다. Data of a file system provided by an existing computer system is stored in a storage device such as a hard disk. Therefore, the name entry included in the namespace of the file system is stored in an object in the file system as an on-disk data structure. If the name entry is stored in the storage device, the data can be preserved even when the computer system is powered off, and the namespace can be managed permanently.

그러나 중앙 처리 장치(Central Processing Unit; CPU)가 파일 시스템 내의 객체에 대한 연산을 처리하는 경우, CPU는 하드디스크에 저장된 파일 시스템의 네임엔트리에 직접 접근할 수 없다. However, when a central processing unit (CPU) processes an operation on an object in the file system, the CPU can not directly access the name entry of the file system stored on the hard disk.

CPU는 온-디스크(on-disk) 방식의 자료 구조로서 저장된 네임엔트리를 휘발성 메모리로 이동시키고 네임엔트리의 자료 구조의 형태를 인-메모리(in-memory) 방식의 자료 구조로 변환한 후 네임엔트리에 접근할 수 있다.The CPU transfers the stored name entry to the volatile memory as an on-disk data structure, converts the data structure of the name entry into an in-memory data structure, Lt; / RTI >

또한, 컴퓨터 시스템의 하드디스크에 저장된 데이터는 블록 단위로만 접근될 수 있기 때문에, 특히 소규모의 네임엔트리가 휘발성 메모리로 이동되는 경우에도 하드디스크에서는 네임엔트리를 포함하는 전체 블록의 입출력이 발생한다. 따라서, 하드디스크에서 입출력의 과부화가 발생할 수 있다. 전술된 것과 같은 온-디스크 방식의 자료 구조 및 인-메모리 방식의 자료 구조 간의 변환 및 블록 입출력의 과부화는 CPU가 수행하는 파일 시스템 내의 객체에 대한 연산 처리의 효율을 저하시킨다.Also, since the data stored in the hard disk of the computer system can be accessed only in units of blocks, even when a small name entry is moved to the volatile memory, the input / output of the entire block including the name entry occurs in the hard disk. Therefore, the input / output may be overloaded from the hard disk. Conversion between the on-disk type data structure and the in-memory type data structure and the overloading of the block input / output as described above deteriorates the efficiency of the operation processing on the objects in the file system performed by the CPU.

한국공개특허 제10-2011-0129250호(공개일 2011년 12월 1일)에는 비휘발성 메모리를 포함하는 메인 메모리상에서 파일시스템의 접근을 지원하기 위한 가상 메모리 시스템이 개시되어있다. 공개된 발명은 적어도 하나 이상의 비휘발성 메모리를 포함하는 메인 메모리 및 파일 접근 인터페이스를 포함하는 파일 시스템을 포함하고, 파일 시스템에서 파일 접근 인터페이스를 통해 비휘발성 메모리에 접근할 수 있는, 메모리 시스템을 개시한다.Korean Patent Publication No. 10-2011-0129250 (published on December 1, 2011) discloses a virtual memory system for supporting access of a file system on a main memory including a nonvolatile memory. The disclosed invention discloses a memory system that includes a file system including a main memory and a file access interface including at least one non-volatile memory, and is capable of accessing non-volatile memory through a file access interface in a file system .

상기에서 설명된 정보는 단지 이해를 돕기 위한 것이며, 종래 기술의 일부를 형성하지 않는 내용을 포함할 수 있으며, 종래 기술이 통상의 기술자에게 제시할 수 있는 것을 포함하지 않을 수 있다.The information described above is for illustrative purposes only and may include content that does not form part of the prior art and may not include what the prior art has to offer to the ordinary artisan.

일 실시예는 비휘발성 메모리를 포함하는 파일 시스템을 제공하는 컴퓨터 시스템을 제공할 수 있다.One embodiment may provide a computer system that provides a file system that includes non-volatile memory.

일 실시예는 파일 시스템 내의 객체들을 위한 네임스페이스가 저장되는 비휘발성 메모리를 포함하는 컴퓨터 시스템을 제공할 수 있다.One embodiment may provide a computer system including a non-volatile memory in which a namespace for objects in a file system is stored.

일 측면에 있어서, 파일 시스템을 제공하는 컴퓨터 시스템에 있어서, 상기 파일 시스템에 접근하는 중앙 처리 장치(Central Processing Unit; CPU) 및 상기 파일 시스템의 데이터를 저장하고, 바이트 단위로 접근될 수 있는 비휘발성 메모리를 포함하고, 상기 CPU는 상기 파일 시스템 내의 객체들을 위한 네임스페이스를 상기 비휘발성 메모리에 저장하는 것을 특징으로 하는, 컴퓨터 시스템이 제공된다.In one aspect, a computer system for providing a file system, the computer system comprising: a central processing unit (CPU) for accessing the file system; and a non-volatile Wherein the CPU stores a namespace for objects in the file system in the non-volatile memory.

상기 CPU는 상기 비휘발성 메모리 내에 저장된 상기 네임스페이스에 직접 접근할 수 있다. The CPU can directly access the namespace stored in the non-volatile memory.

상기 네임스페이스는 하나 이상의 네임엔트리들을 포함할 수 있다.The namespace may include one or more name entries.

상기 객체들은 상기 하나 이상의 네임엔트리들에 각각 대응할 수 있다.The objects may correspond to the one or more name entries, respectively.

상기 네임스페이스는 상기 파일 시스템 내의 디렉토리일 수 있다. The namespace may be a directory in the file system.

상기 네임엔트리는 상기 디렉토리 내의 엔트리일 수 있다. The name entry may be an entry in the directory.

상기 비휘발성 메모리는 STT-MRAM 및 PCRAM 중 하나일 수 있다.The non-volatile memory may be one of STT-MRAM and PCRAM.

상기 네임스페이스는 인-메모리(in-memory) 방식의 자료 구조로서 상기 비휘발성 메모리에 저장될 수 있다.The namespace may be stored in the non-volatile memory as an in-memory data structure.

상기 CPU는 상기 인-메모리 방식의 자료 구조로서 상기 비휘발성 메모리에 저장된 상기 네임스페이스에 상기 컴퓨터 시스템의 휘발성 메모리를 사용하지 않고 직접 접근할 수 있다.The CPU can directly access the namespace stored in the nonvolatile memory as the in-memory data structure without using the volatile memory of the computer system.

상기 인 메모리 방식의 자료 구조는 체이닝 기반의 해시 테이블(chaining hash table)일 수 있다.The in-memory data structure may be a chaining hash table.

파일 시스템 내의 객체들을 위한 네임스페이스가 비휘발성 메모리에 저장됨으로써, 인-메모리 방식의 자료 구조로서 네임스페이스가 저장될 수 있는 파일 시스템을 제공하는 컴퓨터 시스템이 제공된다.There is provided a computer system for providing a file system in which a namespace for objects in a file system is stored in a nonvolatile memory so that a namespace can be stored as an in-memory data structure.

CPU가 비휘발성 메모리에 저장된 네임 스페이스에 직접 접근함으로써, 네임스페이스를 탐색하는 시간이 감소될 수 있는 파일 시스템을 제공하는 컴퓨터 시스템이 제공된다.There is provided a computer system that provides a file system in which a CPU can directly access a namespace stored in a non-volatile memory, thereby reducing the time to search for a namespace.

도 1은 컴퓨터 시스템을 나타낸다.
도 2는 일 실시예에 따른 컴퓨터 시스템을 나타낸다.
도 3은 일 예에 따른 파일 시스템 및 네임스페이스를 나타낸다.
1 shows a computer system.
2 illustrates a computer system according to one embodiment.
3 shows a file system and namespace according to an example.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
In the following, embodiments will be described in detail with reference to the accompanying drawings. Like reference symbols in the drawings denote like elements.

실시예에는 다양한 변경이 가해질 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 실시예를 실시 형태에 대해 한정하려는 것이 아니며, 실시예는 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments and may have various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the description. It is to be understood, however, that the intention is not to limit the embodiments to the embodiments, but to include all modifications, equivalents, and alternatives falling within the spirit and scope of the invention.

실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used only to illustrate specific embodiments and are not intended to limit the embodiments. The singular expressions include plural expressions unless the context clearly dictates otherwise. In the present application, the terms "comprises" or "having" and the like are used to specify that there is a feature, a number, a step, an operation, an element, a component or a combination thereof described in the specification, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In the following description of the present invention with reference to the accompanying drawings, the same components are denoted by the same reference numerals regardless of the reference numerals, and redundant explanations thereof will be omitted. In the following description of the embodiments, a detailed description of related arts will be omitted if it is determined that the gist of the embodiments may be unnecessarily blurred.

도 1은 컴퓨터 시스템을 나타낸다.1 shows a computer system.

컴퓨터 시스템(100)은 중앙 처리 장치(Central Processing Unit; CPU)(110), 휘발성 메모리(120) 및 저장부(130)를 포함할 수 있다.The computer system 100 may include a central processing unit (CPU) 110, a volatile memory 120, and a storage unit 130.

CPU(110)는 컴퓨터 시스템(100)이 포함하는 구성 요소들을 제어할 수 있다. 또한, CPU(110)는 컴퓨터 시스템(100)이 포함하는 구성 요소들을 제어하기 위해 요구되는 연산을 처리할 수 있다.CPU 110 may control the components that computer system 100 includes. In addition, the CPU 110 may process the operations required to control the components that the computer system 100 includes.

예컨대, CPU(110)는 휘발성 메모리(120)를 제어할 수 있다. 또한, CPU(110)는 휘발성 메모리(120)를 제어하기 위해 요구되는 연산을 처리할 수 있다. For example, the CPU 110 can control the volatile memory 120. [ Also, the CPU 110 may process the operation required to control the volatile memory 120. [

또는, CPU(110)는 휘발성 메모리(120)에 접근할 수 있다. 말하자면, CPU(110)는 휘발성 메모리(120)에 저장된 데이터에 접근할 수 있다.Alternatively, the CPU 110 may access the volatile memory 120. In other words, the CPU 110 can access the data stored in the volatile memory 120.

휘발성 메모리(120)는 데이터를 저장하기 위한 반도체 장치일 수 있다. 예컨대, 휘발성 메모리(120)는 디램(Dynamic Random Access Memory; DRAM)일 수 있다.The volatile memory 120 may be a semiconductor device for storing data. For example, the volatile memory 120 may be a dynamic random access memory (DRAM).

데이터는 인-메모리 방식의 자료 구조로서 휘발성 메모리(120)에 저장될 수 있다. CPU(110)는 인-메모리 방식의 자료 구조로 저장된 데이터에 직접 접근할 수 있다. The data may be stored in the volatile memory 120 as an in-memory data structure. The CPU 110 can directly access data stored in an in-memory data structure.

휘발성 메모리(120)에 저장된 데이터는 바이트 단위로 접근될 수 있다. 말하자면, CPU(110)는 휘발성 메모리(120)에 저장된 데이터에 바이트 단위로 접근할 수 있다.The data stored in the volatile memory 120 may be accessed on a byte-by-byte basis. In other words, the CPU 110 can access the data stored in the volatile memory 120 on a byte-by-byte basis.

휘발성 메모리(120)는 바이트 단위의 데이터의 입출력을 위한 입출력 라인들을 포함할 수 있다.The volatile memory 120 may include input / output lines for input / output of data in units of bytes.

컴퓨터 시스템(100)의 전원이 차단되는 경우, 휘발성 메모리(120)에 저장된 데이터는 보존되지 않을 수 있다. 말하자면, 휘발성 메모리(120)에 저장된 데이터의 영속성은 보장되지 않을 수 있다.When the computer system 100 is powered off, the data stored in the volatile memory 120 may not be preserved. That is to say, the persistence of the data stored in the volatile memory 120 may not be guaranteed.

저장부(130)는 데이터를 저장하기 위한 저장 장치이거나, 저장 장치를 포함할 수 있다. The storage unit 130 may be a storage device for storing data, or may include a storage device.

데이터는 온-디스크(in-memory) 방식의 자료 구조로서 저장부(130)에 저장될 수 있다. 휘발성 메모리(120)는 저장부(130)에 저장된 데이터에 접근할 수 있다. 예컨대, 저장부(130)에 저장된 데이터는 휘발성 메모리에 적재될 수 있다. The data may be stored in the storage unit 130 as an in-memory data structure. The volatile memory 120 may access the data stored in the storage unit 130. For example, the data stored in the storage unit 130 may be loaded into the volatile memory.

저장부(130)에 저장된 데이터는 블록 단위로 접근될 수 있다. 말하자면, 휘발성 메모리(120)는 저장부(130)에 저장된 데이터에 블록 단위로 접근할 수 있다The data stored in the storage unit 130 can be accessed on a block-by-block basis. In other words, the volatile memory 120 can access the data stored in the storage unit 130 on a block basis

저장부(130)는 블록 단위의 데이터의 입출력을 위한 입출력 라인들을 포함할 수 있다.The storage unit 130 may include input / output lines for input / output of data on a block-by-block basis.

저장부(130)는 블록 단위로 접근될 수 있는, 데이터가 저장된 저장 장치로서, 예컨대, 하드디스크일 수 있다. The storage unit 130 may be a storage device in which data can be accessed, for example, a hard disk.

또는, 저장부(130)는 블록 단위로 접근될 수 있는, 데이터가 저장된 저장 장치로서, 비휘발성 메모리일 수 있다. 예컨대, 저장부(130)는 플래시 메모리 일 수 있고, 플래시 메모리를 기반으로 한 솔리드 스테이트 드라이브(Solid State Drive; SSD)일 수 있다.Alternatively, the storage unit 130 may be a nonvolatile memory, which is a storage device in which data can be accessed, which is accessed on a block-by-block basis. For example, the storage unit 130 may be a flash memory or a solid state drive (SSD) based on a flash memory.

컴퓨터 시스템(100)의 전원이 차단되는 경우에도, 저장부(130)에 저장된 데이터는 보존될 수 있다. 말하자면, 저장부(130)에 저장된 데이터의 영속성은 보장될 수 있다.The data stored in the storage unit 130 can be preserved even when the power of the computer system 100 is shut off. That is, the persistence of the data stored in the storage unit 130 can be guaranteed.

저장부(130)는 파일 시스템(140)을 포함할 수 있다.The storage unit 130 may include a file system 140.

파일 시스템(140)은 컴퓨터 시스템(100)의 운영 체제 내의 저장부(130)에 저장된 객체들을 관리하기 위한 시스템일 수 있다. 예컨대, 파일 시스템(140)은 파일을 적절한 위치에 저장하고 신속하게 탐색하기 위한 시스템일 수 있다. The file system 140 may be a system for managing objects stored in the storage unit 130 within the operating system of the computer system 100. For example, the file system 140 may be a system for storing and quickly searching for files in a suitable location.

또는, 저장부(130)가 포함하는 파일 시스템(140)은 컴퓨터 시스템(100)이 제공하는 파일 시스템의 데이터일 수 있다. 예컨대, 파일 시스템(140)은 컴퓨터 시스템(100)이 제공하는 파일 시스템의 데이터 블록들일 수 있다. Alternatively, the file system 140 included in the storage unit 130 may be data of a file system provided by the computer system 100. For example, the file system 140 may be data blocks of a file system provided by the computer system 100.

파일 시스템(140)은 저장부(130)에 저장된 객체들 및 상기 객체들의 구조를 포함할 수 있다. 말하자면, 파일 시스템(140)은 하나 이상의 객체들을 포함할 수 있다.The file system 140 may include the objects stored in the storage unit 130 and the structure of the objects. That is, the file system 140 may include one or more objects.

파일 시스템(140)은 네임스페이스(150)를 포함할 수 있다. 네임스페이스(150)는 파일 시스템(140) 내의 객체들의 정보들을 포함할 수 있다.The file system 140 may include a namespace 150. The namespace 150 may include information about objects in the file system 140.

예컨대, 네임스페이스(150)는 파일 시스템(140)의 아이노드(inode)를 포함할 수 있다. 네임스페이스(150)는 파일 시스템(140) 내의 객체들이 포함하는 데이터 블록 또는 파일의 이름, 위치, 속성, 크기, 접근 권한, 형태, 소유자 및 데이터 블록 포인터(data block pointer)등과 같은 정보들을 포함할 수 있다.For example, the namespace 150 may include an inode of the file system 140. The namespace 150 includes information such as name, location, attribute, size, access right, type, owner, and data block pointer of the data block or file included in the objects in the file system 140 .

네임스페이스(150)는 하나 이상의 네임엔트리(160)들을 포함할 수 있다. 예컨대, 네임엔트리(160)는 파일 시스템 내의 객체 내에 저장될 수 있다. 말하자면, 각 네임엔트리(160)는 파일 시스템의 각 객체 내에 온-디스크 방식의 자료 구조로 저장될 수 있다.The namespace 150 may include one or more name entries 160. For example, the name entry 160 may be stored in an object in the file system. In other words, each name entry 160 can be stored in an on-disk data structure within each object in the file system.

네임엔트리(160)는 네임스페이스(150)가 포함하는 각 객체의 정보들의 일부 또는 전부를 포함할 수 있다.The name entry 160 may include some or all of the information of each object included in the namespace 150.

예컨대, 저장부(130)에 네임스페이스(150)가 저장된 자료 구조는 비-트리(B-tree) 자료 구조일 수 있다. 또는, 저장부(130)에 네임스페이스(150)가 저장된 자료 구조는 리스트(list) 자료 구조일 수 있다.For example, the data structure in which the namespace 150 is stored in the storage unit 130 may be a B-tree data structure. Alternatively, the data structure in which the namespace 150 is stored in the storage unit 130 may be a list data structure.

CPU(110)는 파일 시스템(140) 내의 객체들에 대한 연산을 처리하기 위해 파일 시스템(140)의 네임스페이스(150)를 탐색할 수 있다.The CPU 110 may search the namespace 150 of the file system 140 to process operations on the objects in the file system 140.

CPU(110)는 네임스페이스(150)를 탐색하기 위해, 네임엔트리(160)를 휘발성 메모리(120)로 이동시킬 수 있다.The CPU 110 may move the name entry 160 to the volatile memory 120 to search for the namespace 150. [

네임엔트리(160)를 휘발성 메모리(120)로 이동시키는 것은, 휘발성 메모리(120)에 데이터를 적재하는 것일 수 있다.Moving the name entry 160 to the volatile memory 120 may be to load the data into the volatile memory 120. [

상기 네임엔트리(160)의 이동은 저장부(130)의 입출력 라인들을 통해 수행될 수 있다. 네임엔트리(160)는 블록 단위로 상기 입출력 라인들을 통해 이동될 수 있다. 저장부(130)의 입출력 라인들에는 네임엔트리(160)가 블록 단위로 휘발성 메모리(120)로 이동됨으로서, 블록 입출력의 과부화가 발생할 수 있다.The movement of the name entry 160 may be performed through the input / output lines of the storage unit 130. The name entry 160 can be moved through the input / output lines on a block-by-block basis. The name entry 160 is moved to the volatile memory 120 in block units on the input / output lines of the storage unit 130, so that the block input / output may be overloaded.

휘발성 메모리(120)로 이동된 네임엔트리(122)는 인-메모리 방식의 자료 구조로 변환될 수 있다. 말하자면, 온-디스크 방식의 자료 구조의 네임엔트리(122)는 인-메모리 방식의 자료 구조의 네임엔트리(124)로 변환될 수 있다. 휘발성 메모리(120)에는 온-디스크 방식의 자료 구조의 네임엔트리(122)가 인-메모리 방식의 자료 구조의 네임엔트리(124)로 변환됨으로써, 자료 구조 형태 변환의 과부하가 발생할 수 있다. 또한, 컴퓨터 시스템(100)의 전원이 차단되는 경우 네임엔트리(124)의 영속성은 보장되지 않을 수 있다.The name entry 122 moved to the volatile memory 120 may be converted into an in-memory data structure. Namely, the name entry 122 of the on-disk type data structure can be converted into the name entry 124 of the in-memory type data structure. In the volatile memory 120, the name entry 122 of the on-disk type data structure is converted into the name entry 124 of the in-memory type data structure, thereby overloading the data structure type conversion may occur. In addition, the permanence of the name entry 124 may not be guaranteed when the computer system 100 is powered off.

CPU(110)는 네임엔트리(124)에 접근함으로써, 객체에 대한 정보를 획득할 수 있다. The CPU 110 may obtain information about the object by accessing the name entry 124.

CPU(110)는 획득한 객체에 대한 정보에 기반하여, 상기 객체에 대한 연산을 수행할 수 있다. The CPU 110 may perform an operation on the object based on the acquired object information.

파일 시스템, 네임스페이스 및 네임엔트리는 후술될 상세한 설명에서 더 자세하게 설명된다.
The file system, namespace, and name entry are described in further detail in the detailed description which follows.

도 2는 일 실시예에 따른 컴퓨터 시스템을 나타낸다.2 illustrates a computer system according to one embodiment.

도 1을 참조하여 전술된 것과 같이, 컴퓨터 시스템(200)은 CPU(110), 휘발성 메모리(120), 저장부(130) 및 비휘발성 메모리(210)를 포함할 수 있다.The computer system 200 may include a CPU 110, a volatile memory 120, a storage 130, and a non-volatile memory 210, as described above with reference to FIG.

비휘발성 메모리(210)는 데이터를 저장하기 위한 반도체 장치일 수 있다.Non-volatile memory 210 may be a semiconductor device for storing data.

비휘발성 메모리(210)에 저장되는 데이터는 바이트 단위로 접근될 수 있다. 비휘발성 메모리(210)는 바이트 단위의 데이터의 입출력을 위한 입출력 라인들을 포함할 수 있다.The data stored in the nonvolatile memory 210 can be accessed on a byte basis. The nonvolatile memory 210 may include input / output lines for input / output of data in units of bytes.

데이터는 인-메모리(in-memory) 방식의 자료 구조로서 휘발성 메모리(120)에 저장될 수 있다.The data may be stored in the volatile memory 120 as an in-memory data structure.

컴퓨터 시스템(200)의 전원이 차단되는 경우, 비휘발성 메모리(210)에 저장된 데이터는 보존될 수 있다. 말하자면, 비휘발성 메모리(210)에 저장된 데이터의 영속성은 보장될 수 있다.When the computer system 200 is powered off, the data stored in the nonvolatile memory 210 can be preserved. That is to say, the persistence of the data stored in the nonvolatile memory 210 can be assured.

예컨대, 비휘발성 메모리(210)는 스핀 전달 토크 자기 저항 랜덤 액세스 메모리(Spin Transfer Torque Magnetic Random Access Memory; STT-MRAM) 및 상변화 랜덤 액세스 메모리(Phase Change Random Access Memory; PCRAM) 중 하나일 수 있다.For example, non-volatile memory 210 may be one of a Spin Transfer Torque Magnetoresistive Random Access Memory (STT-MRAM) and a Phase Change Random Access Memory (PCRAM) .

비휘발성 메모리(210)는 파일 시스템(220-1)을 포함할 수 있다. 파일 시스템(220-1)은 컴퓨터 시스템(200)이 제공하는 파일 시스템의 데이터일 수 있다.Non-volatile memory 210 may include a file system 220-1. The file system 220-1 may be data of a file system provided by the computer system 200. [

말하자면, 비휘발성 메모리(210)는 파일 시스템의 데이터를 저장하고, 바이트 단위로 접근될 수 있다.In other words, non-volatile memory 210 stores data of the file system and can be accessed byte by byte.

CPU(110)는 파일 시스템(220-1)에 접근할 수 있다.The CPU 110 can access the file system 220-1.

파일 시스템(220-1)은 도 1을 참조하여 전술된 파일 시스템(140)에 대응할 수 있다. 또는, 도 1의 파일 시스템(140)의 일부일 수 있다.The file system 220-1 may correspond to the file system 140 described above with reference to FIG. Or may be part of the file system 140 of FIG.

파일 시스템(220-1)은 네임스페이스(230)를 포함할 수 있다. 네임스페이스(230)은 도 1을 참조하여 전술된 네임스페이스(150)에 대응할 수 있다.The file system 220-1 may include a namespace 230. The namespace 230 may correspond to the namespace 150 described above with reference to FIG.

네임스페이스(230)는 파일 시스템(220-1) 내의 객체들을 위한 것일 수 있다. 말하자면, 파일 시스템(220-1) 내의 객체들은 네임스페이스(230)에 따라 분류 또는 구분될 수 있다.Namespace 230 may be for objects in file system 220-1. In other words, the objects in the file system 220-1 may be sorted or separated according to the namespace 230. [

저장부(130) 또한, 파일 시스템(220-2)을 포함할 수 있다. 파일 시스템(220-2)은 도 1을 참조하여 전술된 파일 시스템(140)에 대응할 수 있다. 또는, 파일 시스템(220-2)은 도 1의 파일 시스템(140)의 일부일 수 있다.The storage unit 130 may also include a file system 220-2. The file system 220-2 may correspond to the file system 140 described above with reference to FIG. Alternatively, the file system 220-2 may be part of the file system 140 of FIG.

파일 시스템(220-1) 및 파일 시스템(220-2)는 하나의 파일 시스템이 분할된 것일 수 있다. 예컨대, 파일 시스템(220-1) 및 파일 시스템(220-2)는 파일 시스템(140)이 비휘발성 메모리(210) 및 저장부(130)에 분할하여 저장된 것일 수 있다. 말하자면, CPU(110)는 파일 시스템(140)을 파일 시스템(220-1) 및 파일 시스템(220-2)로 분할하여 비휘발성 메모리(210) 및 저장부(130)에 각각 저장할 수 있다.  The file system 220-1 and the file system 220-2 may be one file system divided. For example, the file system 220-1 and the file system 220-2 may be one in which the file system 140 is stored in the non-volatile memory 210 and the storage unit 130 in a divided manner. That is to say, the CPU 110 can divide the file system 140 into the file system 220-1 and the file system 220-2 and store the file system in the nonvolatile memory 210 and the storage unit 130, respectively.

CPU(110)는 파일 시스템(140)의 크기가 비휘발성 메모리(120)의 저장 공간의 크기를 초과하거나, 파일 시스템(140)의 크기가 비휘발성 메모리(120)의 저장 공간의 크기의 소정의 비율 이상인 경우, 비휘발성 메모리(210) 및 저장부(130)에 파일 시스템(140)을 분할하여 저장할 수 있다.The CPU 110 determines whether the size of the file system 140 exceeds the size of the storage space of the nonvolatile memory 120 or the size of the file system 140 exceeds the size of the storage space of the non- The file system 140 may be divided and stored in the nonvolatile memory 210 and the storage unit 130. [

네임스페이스(230)는 파일 시스템(220-2) 내의 객체들을 위한 것일 수 있다. 말하자면, 네임스페이스(230)는 파일 시스템(220-1) 및 파일 시스템(220-2) 내의 객체들을 위한 네임스페이스일 수 있다. Namespace 230 may be for objects in file system 220-2. Namely, the namespace 230 may be a namespace for objects in the file system 220-1 and the file system 220-2.

파일 시스템(220-2)에는 네임스페이스가 포함되지 않을 수 있다. 말하자면, 네임스페이스에 의해 분류 또는 구분되는 객체는, 저장부(130)가 아닌 비휘발성 메모리(210)에만 저장될 수 있다. The file system 220-2 may not include a namespace. That is to say, objects that are classified or separated by the namespace can be stored only in the non-volatile memory 210, not in the storage unit 130.

CPU(110)는 파일 시스템(220-1 또는 220-2) 내의 객체에 대한 연산을 수행하기 위해, 네임스페이스(230)를 탐색할 수 있다. 도 1의 컴퓨터 시스템(100)과 달리 컴퓨터 시스템(200)은 파일 시스템(220-1 또는 220-2) 내의 객체들을 위한 네임스페이스(230)를 저장부(130)가 아닌 비휘발성 메모리(210)에만 저장할 수 있다.The CPU 110 may search the namespace 230 to perform operations on objects in the file system 220-1 or 220-2. Unlike the computer system 100 of Figure 1, the computer system 200 may store the namespace 230 for objects in the file system 220-1 or 220-2 in a non-volatile memory 210, .

예컨대, CPU(110)는 파일 시스템(220-1 또는 220-2) 내의 객체들을 위한 네임스페이스(230)를 비휘발성 메모리(210)에 저장할 수 있다. For example, the CPU 110 may store the namespace 230 for objects in the file system 220-1 or 220-2 in the non-volatile memory 210. [

네임스페이스(230)는 인-메모리(in-memory) 방식의 자료 구조로서 상기 비휘발성 메모리(210)에 저장될 수 있다.The namespace 230 may be stored in the non-volatile memory 210 as an in-memory data structure.

도 1을 참조하여 전술된 것과 같이, CPU(110)는 인-메모리 방식의 자료 구조로 저장된 데이터에 직접 접근할 수 있다.As described above with reference to FIG. 1, the CPU 110 can directly access data stored in an in-memory data structure.

말하자면, CPU(110)는 비휘발성 메모리(210) 내에 저장된 네임스페이스(230)에 직접 접근할 수 있다. 또는, CPU(110)는 인-메모리 방식의 자료 구조로서 비휘발성 메모리(210)에 저장된 네임스페이스(150)에 컴퓨터 시스템(200)의 휘발성 메모리(120)를 사용하지 않고 직접 접근할 수 있다. 여기서, 네임스페이스(230)에 접근한다는 것은 네임스페이스(230)에 대응하는 객체, 네임스페이스(230) 내에 포함된 객체 또는 네임스페이스(230) 내에 저장된 객체에 접근하는 것을 의미할 수 있다. 도 1을 참조하여 전술된 네임엔트리(160)의 이동 및 네임엔트리(122)의 네임엔트리(124)로의 자료 구조의 변환은 수행되지 않을 수 있다.That is to say, the CPU 110 can directly access the namespace 230 stored in the non-volatile memory 210. Alternatively, the CPU 110 can directly access the namespace 150 stored in the nonvolatile memory 210 as an in-memory data structure without using the volatile memory 120 of the computer system 200. Here, accessing the namespace 230 may mean accessing an object corresponding to the namespace 230, an object contained within the namespace 230, or an object stored within the namespace 230. The translation of the name entry 160 described above with reference to FIG. 1 and the translation of the data structure into the name entry 124 of the name entry 122 may not be performed.

상기의 이동 및 상기의 자료 구조의 변환이 수행되지 않기 때문에, 저장부(130)의 입출력 라인들에서의 과부화 및 휘발성 메모리(120)의 자료 구조의 변환에 따른 과부화가 방지될 수 있다.Since the above movement and the conversion of the data structure are not performed, the overloading in the input / output lines of the storage unit 130 and the overloading due to the conversion of the data structure of the volatile memory 120 can be prevented.

CPU(110)는 비휘발성 메모리(210)에 저장된 네임스페이스(230)에 직접 접근함으로써 네임스페이스(230)를 탐색할 수 있다. CPU(110)가 네임스페이스(230)에 직접 접근함으로써 객체들에 대한 CPU의 연산처리 효율이 향상될 수 있다.The CPU 110 can search the namespace 230 by directly accessing the namespace 230 stored in the nonvolatile memory 210. [ The CPU 110 directly accesses the namespace 230, thereby improving the processing efficiency of the CPU for the objects.

네임스페이스(230)는 하나 이상의 네임엔트리(232)를 포함할 수 있다. 네임엔트리(232)는 도 1을 참조하여 전술된 네임엔트리(160)에 대응할 수 있다.The namespace 230 may include one or more name entries 232. The name entry 232 may correspond to the name entry 160 described above with reference to FIG.

네임엔트리(232)는 인-메모리 방식의 자료 구조로서 상기 비휘발성 메모리(210)에 존재할 수 있다. 또는, 네임엔트리(232)는 도 1을 참조하여 전술된 네임엔트리(124)에 대응할 수 있다. 네임엔트리(232)가 인-메모리 방식의 자료 구조로서 상기 비휘발성 메모리(210)에 존재함로써, 온-디스크 방식의 자료 구조로부터 인-메모리 방식의 자료 구조로의 변환은 수행되지 않을 수 있다.The name entry 232 may exist in the non-volatile memory 210 as an in-memory data structure. Alternatively, the name entry 232 may correspond to the name entry 124 described above with reference to FIG. Since the name entry 232 exists in the non-volatile memory 210 as an in-memory type data structure, the conversion from the on-disk type data structure to the in-memory type data structure may not be performed .

비휘발성 메모리(230) 내의 인-메모리 방식의 자료 구조는 해시 테이블(hash table)일 수 있다. 해시 테이블에 존재하는 데이터의 주소는 소정의 해시 함수를 적용함으로써 리턴된 키 값에 의해 결정될 수 있다. 서로 상이한 2 개의 데이터에 대해 해시 함수를 적용하였을 때, 리턴된 2 개의 값들이 동일한 경우, 해시 충돌이 발생할 수 있다. 해시 충돌이 발생하는 경우 데이터가 정확하게 탐색되지 않을 수 있다. 여기서, 데이터는 객체 또는 네임엔트리(232)일 수 있다.The in-memory data structure in the non-volatile memory 230 may be a hash table. The address of the data present in the hash table can be determined by the returned key value by applying a predetermined hash function. When a hash function is applied to two different data, if the two returned values are the same, a hash collision may occur. If a hash collision occurs, the data may not be searched correctly. Here, the data may be an object or a name entry 232.

해시 테이블은 체이닝(chaining) 기반의 해시 테이블일 수 있다. 체이닝(chaining) 기반의 해시 테이블을 사용함으로써, 해시 충돌이 발생하는 것을 방지할 수 있다. 체이닝 기반의 해시 테이블은, 동일한 키 값을 갖는 데이터들을 체인을 사용하여 서로 연결하는 테이블일 수 있다. 여기서, 체인은 단 방향 또는 양 방향의 링크된 리스트(linked-list)일 수 있다.The hash table may be a hashing table based on chaining. By using a chaining based hash table, hash collision can be prevented from occurring. The chaining-based hash table can be a table that links data having the same key value to each other using a chain. Here, the chain may be a unidirectional or bilateral linked-list.

말하자면, 비휘발성 메모리(230) 내의 인 메모리 방식의 자료 구조는 체이닝 기반의 해시 테이블(chaining hash table)일 수 있다.In other words, the in-memory data structure in the non-volatile memory 230 may be a chaining hash table.

비휘발성 메모리(210)에 저장된 데이터의 영속성이 보장됨에 따라, 컴퓨터 시스템(200)의 전원이 차단되는 경우 비휘발성 메모리(210)에 저장된 네임스페이스(230) 및 네임엔트리(232)의 영속성도 보장될 수 있다.The persistence of the namespace 230 and the name entry 232 stored in the nonvolatile memory 210 is also guaranteed when the computer system 200 is powered down as the persistence of the data stored in the nonvolatile memory 210 is ensured .

앞서 도 1을 참조하여 전술된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described above with reference to FIG. 1 can be applied as it is, so a more detailed description will be omitted below.

도 3은 일 예에 따른 파일 시스템 및 네임스페이스를 나타낸다. 3 shows a file system and namespace according to an example.

파일 시스템(310)은 도 1을 참조하여 전술된 파일 시스템(140)에 대응할 수 있다. 또는, 파일 시스템(140)의 일부일 수 있다. 예컨대, 파일 시스템(310)은 파일 시스템의 데이터일 수 있다.The file system 310 may correspond to the file system 140 described above with reference to FIG. Or may be part of the file system 140. For example, file system 310 may be data in a file system.

파일 시스템(310)은 하나 이상의 객체(320)들을 포함할 수 있다. 도 3에서는 구분하여 표시되었지만, 파일 시스템(310)은 네임스페이스(230)를 포함할 수 있다.The file system 310 may include one or more objects 320. 3, the file system 310 may include a namespace 230. [0033]

도 2를 참조하여 전술된 것과 같이, 네임스페이스(230)는 하나 이상의 네임엔트리(232)들을 포함할 수 있다. 또한, 네임스페이스(230)는 도 2의 비휘발성 메모리(210)에 인-메모리 방식의 자료 구조로 저장될 수 있다.As described above with reference to FIG. 2, the namespace 230 may include one or more name entries 232. In addition, the namespace 230 may be stored in the non-volatile memory 210 of FIG. 2 as an in-memory data structure.

파일 시스템(310)의 하나 이상의 객체(320)들은 하나 이상의 네임엔트리(232)들에 대응할 수 있다. 예컨대, 객체(320)들의 각각은 네임엔트리(232)들의 각각에 일대일로 대응할 수 있다.One or more objects 320 of the file system 310 may correspond to one or more name entries 232. For example, each of the objects 320 may correspond one-to-one to each of the name entries 232.

말하자면, 파일 시스템(310)의 하나 이상의 객체(320)들은 하나 이상의 네임엔트리(232)들에 각각 대응할 수 있다.In other words, one or more objects 320 of the file system 310 may correspond to one or more name entries 232, respectively.

도 1의 CPU(110)는 네임스페이스(230)에 직접 접근함으로써 네임스페이스(230)를 탐색할 수 있다. CPU(110)는 네임스페이스(320)를 탐색함으로써 네임엔트리(232)에 대응하는 객체(320)에 대한 연산을 처리할 수 있다.The CPU 110 of FIG. 1 may search the namespace 230 by directly accessing the namespace 230. The CPU 110 may process an operation on the object 320 corresponding to the name entry 232 by searching the namespace 320. [

객체(320)들의 각각은 파일 시스템(310)의 디렉토리(또는 폴더), 파일, 링크 및 서브 디렉토리 등을 포함할 수 있다. 파일 시스템의 디렉토리는 하나 이상의 엔트리들을 포함할 수 있다. 엔트리들의 각각은 파일, 소프트 링크 및 하드 링크, 서브 디렉토리를 포함할 수 있다.Each of the objects 320 may include a directory (or folder), a file, a link and a subdirectory of the file system 310, and the like. A directory in the file system may contain one or more entries. Each of the entries may include a file, a soft link and a hard link, a subdirectory.

네임스페이스(230)는 파일 시스템(230) 내의 디렉토리일 수 있고, 네임엔트리(232)는 디렉토리 내의 엔트리일 수 있다.The namespace 230 may be a directory in the file system 230, and the name entry 232 may be an entry in the directory.

말하자면, 네임스페이스(230)는 객체(320)의 디렉토리로서 하나 이상의 엔트리를 포함할 수 있다. 네임엔트리(232)는 객체(320)의 디렉토리가 포함하는 엔트리로서 파일, 소프트 링크, 하드 링크 및 서브 디렉토리를 포함할 수 있다Namely, the namespace 230 may include one or more entries as a directory of the object 320. The name entry 232 may include a file, a soft link, a hard link, and a subdirectory as an entry that the directory of the object 320 contains

도 1의 CPU(110)는 네임스페이스(230)에 직접 접근함으로써 네임스페이스(230)의 네임엔트리(232)가 포함하는 파일, 소프트링크, 하드링크 및 서브 디렉토리에 대한 연산을 처리할 수 있다.The CPU 110 of FIG. 1 may directly access the namespace 230 to handle operations on files, soft links, hard links, and subdirectories contained in the name entry 232 of the namespace 230.

앞서 도 1 및 도 2를 참조하여 전술된 기술적 내용들이 그대로 적용될 수 있으므로, 보다 상세한 설명은 이하 생략하기로 한다.
The technical contents described above with reference to FIG. 1 and FIG. 2 can be applied as they are, so that a more detailed description will be omitted below.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.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. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI > or equivalents, even if it is replaced or replaced.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

210: 비휘발성 메모리
220-1: 파일 시스템
230: 네임스페이스
232: 네임엔트리
320: 객체
210: Nonvolatile memory
220-1: File system
230: Namespace
232: Name Entry
320: object

Claims (7)

파일 시스템을 제공하는 컴퓨터 시스템에 있어서,
상기 파일 시스템에 접근하는 중앙 처리 장치(Central Processing Unit; CPU); 및
상기 파일 시스템의 데이터를 저장하고, 바이트 단위로 접근될 수 있는 비휘발성 메모리
를 포함하고,
상기 CPU는 상기 파일 시스템 내의 객체들을 위한 네임스페이스를 상기 비휘발성 메모리에 저장하는 것을 특징으로 하는, 컴퓨터 시스템.
A computer system for providing a file system,
A central processing unit (CPU) for accessing the file system; And
A nonvolatile memory that stores data of the file system and can be accessed in units of bytes;
Lt; / RTI >
Wherein the CPU stores a namespace for objects in the file system in the non-volatile memory.
제1항에 있어서,
상기 CPU는 상기 비휘발성 메모리 내에 저장된 상기 네임스페이스에 직접 접근하는, 컴퓨터 시스템.
The method according to claim 1,
Wherein the CPU directly accesses the namespace stored in the non-volatile memory.
제1항에 있어서,
상기 네임스페이스는 하나 이상의 네임엔트리들을 포함하고,
상기 객체들은 상기 하나 이상의 네임엔트리들에 각각 대응하는, 컴퓨터 시스템.
The method according to claim 1,
The namespace comprising one or more name entries,
Wherein the objects correspond to the one or more name entries, respectively.
제1항에 있어서,
상기 네임스페이스는 상기 파일 시스템 내의 디렉토리고 상기 네임엔트리는 상기 디렉토리 내의 엔트리인, 컴퓨터 시스템.
The method according to claim 1,
Wherein the namespace is a directory in the file system and the name entry is an entry in the directory.
제1항에 있어서,
상기 비휘발성 메모리는 STT-MRAM 및 PCRAM 중 하나인, 컴퓨터 시스템
The method according to claim 1,
Wherein the non-volatile memory is one of STT-MRAM and PCRAM,
제1항에 있어서,
상기 네임스페이스는 인-메모리(in-memory) 방식의 자료 구조로서 상기 비휘발성 메모리에 저장되고,
상기 CPU는 상기 인-메모리 방식의 자료 구조로서 상기 비휘발성 메모리에 저장된 상기 네임스페이스에 상기 컴퓨터 시스템의 휘발성 메모리를 사용하지 않고 직접 접근하는, 컴퓨터 시스템.
The method according to claim 1,
The namespace is an in-memory data structure stored in the non-volatile memory,
Wherein the CPU directly accesses the namespace stored in the non-volatile memory as the in-memory data structure without using the volatile memory of the computer system.
제6항에 있어서,
상기 인 메모리 방식의 자료 구조는 체이닝 기반의 해시 테이블(chaining hash table)인, 컴퓨터 시스템.
The method according to claim 6,
Wherein the in-memory data structure is a chaining hash table.
KR1020130134015A 2013-05-30 2013-11-06 Computer systerm providing file system KR101531447B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130061515 2013-05-30
KR1020130061515 2013-05-30

Publications (2)

Publication Number Publication Date
KR20140142125A true KR20140142125A (en) 2014-12-11
KR101531447B1 KR101531447B1 (en) 2015-06-25

Family

ID=52459810

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130134015A KR101531447B1 (en) 2013-05-30 2013-11-06 Computer systerm providing file system

Country Status (1)

Country Link
KR (1) KR101531447B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180022075A (en) * 2016-08-23 2018-03-06 전자부품연구원 Dual In-Memory based Data Storage and Processing System for Real-Time Data Processing

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180061851A (en) 2016-11-30 2018-06-08 삼성전자주식회사 Storage device supporting byte accessible interface and block accessible interface and electronic system including the same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100963009B1 (en) * 2007-10-25 2010-06-10 한양대학교 산학협력단 File management system and method
KR101008032B1 (en) * 2007-12-18 2011-01-13 재단법인서울대학교산학협력재단 Meta-data management system and method
KR20100055374A (en) * 2010-04-19 2010-05-26 한양대학교 산학협력단 File management system and method

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180022075A (en) * 2016-08-23 2018-03-06 전자부품연구원 Dual In-Memory based Data Storage and Processing System for Real-Time Data Processing

Also Published As

Publication number Publication date
KR101531447B1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
US9851917B2 (en) Method for de-duplicating data and apparatus therefor
US10248676B2 (en) Efficient B-Tree data serialization
TWI683217B (en) Deduplication memory module using dedupe dram system algorithm architecture and method thereof
KR102034833B1 (en) Apparatus for Accessing Data Using Internal Parallelism of Flash Storage based on Key-Value and Method thereof
US20150006495A1 (en) Methods and apparatuses to optimize updates in a file system based on birth time
KR102437775B1 (en) Page cache device and method for efficient mapping
KR102440128B1 (en) Memory management divice, system and method for unified object interface
JP2013037517A (en) Memory system having key-value store method
US11093143B2 (en) Methods and systems for managing key-value solid state drives (KV SSDS)
KR20200122994A (en) Key Value Append
US9430503B1 (en) Coalescing transactional same-block writes for virtual block maps
US20150286676A1 (en) Multi stage aggregation using digest order after a first stage of aggregation
US10275175B2 (en) System and method to provide file system functionality over a PCIe interface
US10877848B2 (en) Processing I/O operations in parallel while maintaining read/write consistency using range and priority queues in a data protection system
CN103914483A (en) File storage method and device and file reading method and device
US20130191611A1 (en) Substitute virtualized-memory page tables
US20190377490A1 (en) Distributed scalable storage
US11113159B2 (en) Log structure with compressed keys
US9667719B1 (en) Parallel storage system with multi-tier hardware accelerated partitioned key-value storage
KR101531447B1 (en) Computer systerm providing file system
JP5646775B2 (en) Memory system having a key-value store system
US11775477B1 (en) Stable file system
JP5833212B2 (en) Memory system having a key-value store system
KR20160127449A (en) Distributed file system based clustering using high speed semiconductor storage device
US20230113460A1 (en) Systems and Methods for Key-based Indexing in Storage Devices

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee