KR20140142125A - Computer systerm providing file system - Google Patents
Computer systerm providing file system Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/13—File access structures, e.g. distributed indices
- G06F16/137—Hash-based
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1847—File system types specifically adapted to static storage, e.g. adapted to flash memory or SSD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-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
Description
아래의 설명은 파일 시스템을 제공하는 컴퓨터 시스템에 관한 것으로, 특히 비휘발성 메모리를 포함하는 파일 시스템을 제공하는 컴퓨터 시스템에 관한 것이다.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
CPU(110)는 컴퓨터 시스템(100)이 포함하는 구성 요소들을 제어할 수 있다. 또한, CPU(110)는 컴퓨터 시스템(100)이 포함하는 구성 요소들을 제어하기 위해 요구되는 연산을 처리할 수 있다.
예컨대, CPU(110)는 휘발성 메모리(120)를 제어할 수 있다. 또한, CPU(110)는 휘발성 메모리(120)를 제어하기 위해 요구되는 연산을 처리할 수 있다. For example, the
또는, CPU(110)는 휘발성 메모리(120)에 접근할 수 있다. 말하자면, CPU(110)는 휘발성 메모리(120)에 저장된 데이터에 접근할 수 있다.Alternatively, the
휘발성 메모리(120)는 데이터를 저장하기 위한 반도체 장치일 수 있다. 예컨대, 휘발성 메모리(120)는 디램(Dynamic Random Access Memory; DRAM)일 수 있다.The
데이터는 인-메모리 방식의 자료 구조로서 휘발성 메모리(120)에 저장될 수 있다. CPU(110)는 인-메모리 방식의 자료 구조로 저장된 데이터에 직접 접근할 수 있다. The data may be stored in the
휘발성 메모리(120)에 저장된 데이터는 바이트 단위로 접근될 수 있다. 말하자면, CPU(110)는 휘발성 메모리(120)에 저장된 데이터에 바이트 단위로 접근할 수 있다.The data stored in the
휘발성 메모리(120)는 바이트 단위의 데이터의 입출력을 위한 입출력 라인들을 포함할 수 있다.The
컴퓨터 시스템(100)의 전원이 차단되는 경우, 휘발성 메모리(120)에 저장된 데이터는 보존되지 않을 수 있다. 말하자면, 휘발성 메모리(120)에 저장된 데이터의 영속성은 보장되지 않을 수 있다.When the
저장부(130)는 데이터를 저장하기 위한 저장 장치이거나, 저장 장치를 포함할 수 있다. The
데이터는 온-디스크(in-memory) 방식의 자료 구조로서 저장부(130)에 저장될 수 있다. 휘발성 메모리(120)는 저장부(130)에 저장된 데이터에 접근할 수 있다. 예컨대, 저장부(130)에 저장된 데이터는 휘발성 메모리에 적재될 수 있다. The data may be stored in the
저장부(130)에 저장된 데이터는 블록 단위로 접근될 수 있다. 말하자면, 휘발성 메모리(120)는 저장부(130)에 저장된 데이터에 블록 단위로 접근할 수 있다The data stored in the
저장부(130)는 블록 단위의 데이터의 입출력을 위한 입출력 라인들을 포함할 수 있다.The
저장부(130)는 블록 단위로 접근될 수 있는, 데이터가 저장된 저장 장치로서, 예컨대, 하드디스크일 수 있다. The
또는, 저장부(130)는 블록 단위로 접근될 수 있는, 데이터가 저장된 저장 장치로서, 비휘발성 메모리일 수 있다. 예컨대, 저장부(130)는 플래시 메모리 일 수 있고, 플래시 메모리를 기반으로 한 솔리드 스테이트 드라이브(Solid State Drive; SSD)일 수 있다.Alternatively, the
컴퓨터 시스템(100)의 전원이 차단되는 경우에도, 저장부(130)에 저장된 데이터는 보존될 수 있다. 말하자면, 저장부(130)에 저장된 데이터의 영속성은 보장될 수 있다.The data stored in the
저장부(130)는 파일 시스템(140)을 포함할 수 있다.The
파일 시스템(140)은 컴퓨터 시스템(100)의 운영 체제 내의 저장부(130)에 저장된 객체들을 관리하기 위한 시스템일 수 있다. 예컨대, 파일 시스템(140)은 파일을 적절한 위치에 저장하고 신속하게 탐색하기 위한 시스템일 수 있다. The
또는, 저장부(130)가 포함하는 파일 시스템(140)은 컴퓨터 시스템(100)이 제공하는 파일 시스템의 데이터일 수 있다. 예컨대, 파일 시스템(140)은 컴퓨터 시스템(100)이 제공하는 파일 시스템의 데이터 블록들일 수 있다. Alternatively, the
파일 시스템(140)은 저장부(130)에 저장된 객체들 및 상기 객체들의 구조를 포함할 수 있다. 말하자면, 파일 시스템(140)은 하나 이상의 객체들을 포함할 수 있다.The
파일 시스템(140)은 네임스페이스(150)를 포함할 수 있다. 네임스페이스(150)는 파일 시스템(140) 내의 객체들의 정보들을 포함할 수 있다.The
예컨대, 네임스페이스(150)는 파일 시스템(140)의 아이노드(inode)를 포함할 수 있다. 네임스페이스(150)는 파일 시스템(140) 내의 객체들이 포함하는 데이터 블록 또는 파일의 이름, 위치, 속성, 크기, 접근 권한, 형태, 소유자 및 데이터 블록 포인터(data block pointer)등과 같은 정보들을 포함할 수 있다.For example, the
네임스페이스(150)는 하나 이상의 네임엔트리(160)들을 포함할 수 있다. 예컨대, 네임엔트리(160)는 파일 시스템 내의 객체 내에 저장될 수 있다. 말하자면, 각 네임엔트리(160)는 파일 시스템의 각 객체 내에 온-디스크 방식의 자료 구조로 저장될 수 있다.The
네임엔트리(160)는 네임스페이스(150)가 포함하는 각 객체의 정보들의 일부 또는 전부를 포함할 수 있다.The
예컨대, 저장부(130)에 네임스페이스(150)가 저장된 자료 구조는 비-트리(B-tree) 자료 구조일 수 있다. 또는, 저장부(130)에 네임스페이스(150)가 저장된 자료 구조는 리스트(list) 자료 구조일 수 있다.For example, the data structure in which the
CPU(110)는 파일 시스템(140) 내의 객체들에 대한 연산을 처리하기 위해 파일 시스템(140)의 네임스페이스(150)를 탐색할 수 있다.The
CPU(110)는 네임스페이스(150)를 탐색하기 위해, 네임엔트리(160)를 휘발성 메모리(120)로 이동시킬 수 있다.The
네임엔트리(160)를 휘발성 메모리(120)로 이동시키는 것은, 휘발성 메모리(120)에 데이터를 적재하는 것일 수 있다.Moving the
상기 네임엔트리(160)의 이동은 저장부(130)의 입출력 라인들을 통해 수행될 수 있다. 네임엔트리(160)는 블록 단위로 상기 입출력 라인들을 통해 이동될 수 있다. 저장부(130)의 입출력 라인들에는 네임엔트리(160)가 블록 단위로 휘발성 메모리(120)로 이동됨으로서, 블록 입출력의 과부화가 발생할 수 있다.The movement of the
휘발성 메모리(120)로 이동된 네임엔트리(122)는 인-메모리 방식의 자료 구조로 변환될 수 있다. 말하자면, 온-디스크 방식의 자료 구조의 네임엔트리(122)는 인-메모리 방식의 자료 구조의 네임엔트리(124)로 변환될 수 있다. 휘발성 메모리(120)에는 온-디스크 방식의 자료 구조의 네임엔트리(122)가 인-메모리 방식의 자료 구조의 네임엔트리(124)로 변환됨으로써, 자료 구조 형태 변환의 과부하가 발생할 수 있다. 또한, 컴퓨터 시스템(100)의 전원이 차단되는 경우 네임엔트리(124)의 영속성은 보장되지 않을 수 있다.The
CPU(110)는 네임엔트리(124)에 접근함으로써, 객체에 대한 정보를 획득할 수 있다. The
CPU(110)는 획득한 객체에 대한 정보에 기반하여, 상기 객체에 대한 연산을 수행할 수 있다. The
파일 시스템, 네임스페이스 및 네임엔트리는 후술될 상세한 설명에서 더 자세하게 설명된다.
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
비휘발성 메모리(210)는 데이터를 저장하기 위한 반도체 장치일 수 있다.
비휘발성 메모리(210)에 저장되는 데이터는 바이트 단위로 접근될 수 있다. 비휘발성 메모리(210)는 바이트 단위의 데이터의 입출력을 위한 입출력 라인들을 포함할 수 있다.The data stored in the
데이터는 인-메모리(in-memory) 방식의 자료 구조로서 휘발성 메모리(120)에 저장될 수 있다.The data may be stored in the
컴퓨터 시스템(200)의 전원이 차단되는 경우, 비휘발성 메모리(210)에 저장된 데이터는 보존될 수 있다. 말하자면, 비휘발성 메모리(210)에 저장된 데이터의 영속성은 보장될 수 있다.When the
예컨대, 비휘발성 메모리(210)는 스핀 전달 토크 자기 저항 랜덤 액세스 메모리(Spin Transfer Torque Magnetic Random Access Memory; STT-MRAM) 및 상변화 랜덤 액세스 메모리(Phase Change Random Access Memory; PCRAM) 중 하나일 수 있다.For example,
비휘발성 메모리(210)는 파일 시스템(220-1)을 포함할 수 있다. 파일 시스템(220-1)은 컴퓨터 시스템(200)이 제공하는 파일 시스템의 데이터일 수 있다.
말하자면, 비휘발성 메모리(210)는 파일 시스템의 데이터를 저장하고, 바이트 단위로 접근될 수 있다.In other words,
CPU(110)는 파일 시스템(220-1)에 접근할 수 있다.The
파일 시스템(220-1)은 도 1을 참조하여 전술된 파일 시스템(140)에 대응할 수 있다. 또는, 도 1의 파일 시스템(140)의 일부일 수 있다.The file system 220-1 may correspond to the
파일 시스템(220-1)은 네임스페이스(230)를 포함할 수 있다. 네임스페이스(230)은 도 1을 참조하여 전술된 네임스페이스(150)에 대응할 수 있다.The file system 220-1 may include a
네임스페이스(230)는 파일 시스템(220-1) 내의 객체들을 위한 것일 수 있다. 말하자면, 파일 시스템(220-1) 내의 객체들은 네임스페이스(230)에 따라 분류 또는 구분될 수 있다.
저장부(130) 또한, 파일 시스템(220-2)을 포함할 수 있다. 파일 시스템(220-2)은 도 1을 참조하여 전술된 파일 시스템(140)에 대응할 수 있다. 또는, 파일 시스템(220-2)은 도 1의 파일 시스템(140)의 일부일 수 있다.The
파일 시스템(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
CPU(110)는 파일 시스템(140)의 크기가 비휘발성 메모리(120)의 저장 공간의 크기를 초과하거나, 파일 시스템(140)의 크기가 비휘발성 메모리(120)의 저장 공간의 크기의 소정의 비율 이상인 경우, 비휘발성 메모리(210) 및 저장부(130)에 파일 시스템(140)을 분할하여 저장할 수 있다.The
네임스페이스(230)는 파일 시스템(220-2) 내의 객체들을 위한 것일 수 있다. 말하자면, 네임스페이스(230)는 파일 시스템(220-1) 및 파일 시스템(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
CPU(110)는 파일 시스템(220-1 또는 220-2) 내의 객체에 대한 연산을 수행하기 위해, 네임스페이스(230)를 탐색할 수 있다. 도 1의 컴퓨터 시스템(100)과 달리 컴퓨터 시스템(200)은 파일 시스템(220-1 또는 220-2) 내의 객체들을 위한 네임스페이스(230)를 저장부(130)가 아닌 비휘발성 메모리(210)에만 저장할 수 있다.The
예컨대, CPU(110)는 파일 시스템(220-1 또는 220-2) 내의 객체들을 위한 네임스페이스(230)를 비휘발성 메모리(210)에 저장할 수 있다. For example, the
네임스페이스(230)는 인-메모리(in-memory) 방식의 자료 구조로서 상기 비휘발성 메모리(210)에 저장될 수 있다.The
도 1을 참조하여 전술된 것과 같이, CPU(110)는 인-메모리 방식의 자료 구조로 저장된 데이터에 직접 접근할 수 있다.As described above with reference to FIG. 1, the
말하자면, CPU(110)는 비휘발성 메모리(210) 내에 저장된 네임스페이스(230)에 직접 접근할 수 있다. 또는, CPU(110)는 인-메모리 방식의 자료 구조로서 비휘발성 메모리(210)에 저장된 네임스페이스(150)에 컴퓨터 시스템(200)의 휘발성 메모리(120)를 사용하지 않고 직접 접근할 수 있다. 여기서, 네임스페이스(230)에 접근한다는 것은 네임스페이스(230)에 대응하는 객체, 네임스페이스(230) 내에 포함된 객체 또는 네임스페이스(230) 내에 저장된 객체에 접근하는 것을 의미할 수 있다. 도 1을 참조하여 전술된 네임엔트리(160)의 이동 및 네임엔트리(122)의 네임엔트리(124)로의 자료 구조의 변환은 수행되지 않을 수 있다.That is to say, the
상기의 이동 및 상기의 자료 구조의 변환이 수행되지 않기 때문에, 저장부(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
CPU(110)는 비휘발성 메모리(210)에 저장된 네임스페이스(230)에 직접 접근함으로써 네임스페이스(230)를 탐색할 수 있다. CPU(110)가 네임스페이스(230)에 직접 접근함으로써 객체들에 대한 CPU의 연산처리 효율이 향상될 수 있다.The
네임스페이스(230)는 하나 이상의 네임엔트리(232)를 포함할 수 있다. 네임엔트리(232)는 도 1을 참조하여 전술된 네임엔트리(160)에 대응할 수 있다.The
네임엔트리(232)는 인-메모리 방식의 자료 구조로서 상기 비휘발성 메모리(210)에 존재할 수 있다. 또는, 네임엔트리(232)는 도 1을 참조하여 전술된 네임엔트리(124)에 대응할 수 있다. 네임엔트리(232)가 인-메모리 방식의 자료 구조로서 상기 비휘발성 메모리(210)에 존재함로써, 온-디스크 방식의 자료 구조로부터 인-메모리 방식의 자료 구조로의 변환은 수행되지 않을 수 있다.The
비휘발성 메모리(230) 내의 인-메모리 방식의 자료 구조는 해시 테이블(hash table)일 수 있다. 해시 테이블에 존재하는 데이터의 주소는 소정의 해시 함수를 적용함으로써 리턴된 키 값에 의해 결정될 수 있다. 서로 상이한 2 개의 데이터에 대해 해시 함수를 적용하였을 때, 리턴된 2 개의 값들이 동일한 경우, 해시 충돌이 발생할 수 있다. 해시 충돌이 발생하는 경우 데이터가 정확하게 탐색되지 않을 수 있다. 여기서, 데이터는 객체 또는 네임엔트리(232)일 수 있다.The in-memory data structure in the
해시 테이블은 체이닝(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
비휘발성 메모리(210)에 저장된 데이터의 영속성이 보장됨에 따라, 컴퓨터 시스템(200)의 전원이 차단되는 경우 비휘발성 메모리(210)에 저장된 네임스페이스(230) 및 네임엔트리(232)의 영속성도 보장될 수 있다.The persistence of the
앞서 도 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
파일 시스템(310)은 하나 이상의 객체(320)들을 포함할 수 있다. 도 3에서는 구분하여 표시되었지만, 파일 시스템(310)은 네임스페이스(230)를 포함할 수 있다.The
도 2를 참조하여 전술된 것과 같이, 네임스페이스(230)는 하나 이상의 네임엔트리(232)들을 포함할 수 있다. 또한, 네임스페이스(230)는 도 2의 비휘발성 메모리(210)에 인-메모리 방식의 자료 구조로 저장될 수 있다.As described above with reference to FIG. 2, the
파일 시스템(310)의 하나 이상의 객체(320)들은 하나 이상의 네임엔트리(232)들에 대응할 수 있다. 예컨대, 객체(320)들의 각각은 네임엔트리(232)들의 각각에 일대일로 대응할 수 있다.One or
말하자면, 파일 시스템(310)의 하나 이상의 객체(320)들은 하나 이상의 네임엔트리(232)들에 각각 대응할 수 있다.In other words, one or
도 1의 CPU(110)는 네임스페이스(230)에 직접 접근함으로써 네임스페이스(230)를 탐색할 수 있다. CPU(110)는 네임스페이스(320)를 탐색함으로써 네임엔트리(232)에 대응하는 객체(320)에 대한 연산을 처리할 수 있다.The
객체(320)들의 각각은 파일 시스템(310)의 디렉토리(또는 폴더), 파일, 링크 및 서브 디렉토리 등을 포함할 수 있다. 파일 시스템의 디렉토리는 하나 이상의 엔트리들을 포함할 수 있다. 엔트리들의 각각은 파일, 소프트 링크 및 하드 링크, 서브 디렉토리를 포함할 수 있다.Each of the
네임스페이스(230)는 파일 시스템(230) 내의 디렉토리일 수 있고, 네임엔트리(232)는 디렉토리 내의 엔트리일 수 있다.The
말하자면, 네임스페이스(230)는 객체(320)의 디렉토리로서 하나 이상의 엔트리를 포함할 수 있다. 네임엔트리(232)는 객체(320)의 디렉토리가 포함하는 엔트리로서 파일, 소프트 링크, 하드 링크 및 서브 디렉토리를 포함할 수 있다Namely, the
도 1의 CPU(110)는 네임스페이스(230)에 직접 접근함으로써 네임스페이스(230)의 네임엔트리(232)가 포함하는 파일, 소프트링크, 하드링크 및 서브 디렉토리에 대한 연산을 처리할 수 있다.The
앞서 도 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.
상기 CPU는 상기 비휘발성 메모리 내에 저장된 상기 네임스페이스에 직접 접근하는, 컴퓨터 시스템. The method according to claim 1,
Wherein the CPU directly accesses the namespace stored in the non-volatile memory.
상기 네임스페이스는 하나 이상의 네임엔트리들을 포함하고,
상기 객체들은 상기 하나 이상의 네임엔트리들에 각각 대응하는, 컴퓨터 시스템. 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.
상기 네임스페이스는 상기 파일 시스템 내의 디렉토리고 상기 네임엔트리는 상기 디렉토리 내의 엔트리인, 컴퓨터 시스템.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.
상기 비휘발성 메모리는 STT-MRAM 및 PCRAM 중 하나인, 컴퓨터 시스템The method according to claim 1,
Wherein the non-volatile memory is one of STT-MRAM and PCRAM,
상기 네임스페이스는 인-메모리(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.
상기 인 메모리 방식의 자료 구조는 체이닝 기반의 해시 테이블(chaining hash table)인, 컴퓨터 시스템.The method according to claim 6,
Wherein the in-memory data structure is a chaining hash table.
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)
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)
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)
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 |
-
2013
- 2013-11-06 KR KR1020130134015A patent/KR101531447B1/en not_active IP Right Cessation
Cited By (1)
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 |