KR20130092737A - Method, system and computer-readable recording medium for searching position of metadata - Google Patents
Method, system and computer-readable recording medium for searching position of metadata Download PDFInfo
- Publication number
- KR20130092737A KR20130092737A KR1020120014205A KR20120014205A KR20130092737A KR 20130092737 A KR20130092737 A KR 20130092737A KR 1020120014205 A KR1020120014205 A KR 1020120014205A KR 20120014205 A KR20120014205 A KR 20120014205A KR 20130092737 A KR20130092737 A KR 20130092737A
- Authority
- KR
- South Korea
- Prior art keywords
- file
- metadata
- address
- hashing
- hash key
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
본 발명은 다중 경로를 통해 데이터 입출력을 수행하기 위한 방법, 시스템 및 컴퓨터 판독 가능 기록 매체에 관한 것으로, 보다 상세하게는 파일명 또는 파일 경로를 기초로 해싱을 수행하여 메타데이터의 어드레스를 얻을 수 있도록 함으로써, 한 번의 접근만으로 특정 파일에 대한 메타데이터의 위치 정보를 얻을 수 있는 방법, 시스템 및 컴퓨터 판독 가능 기록 매체에 관한 것이다. The present invention relates to a method, a system, and a computer-readable recording medium for performing data input / output through multiple paths, and more particularly, by performing hashing based on a file name or a file path to obtain an address of metadata. The present invention relates to a method, a system, and a computer-readable recording medium for obtaining location information of metadata for a specific file with only one access.
최근 고속 저장 매체에 데이터를 저장하고, 저장된 데이터를 실행하는 기기들이 상용화되고 있다. 저장 매체에서 특정 데이터에 대한 판독 또는 쓰기를 수행하기 위해서는 상기 특정 데이터에 대한 논리적 위치를 파악하여야 한다. Recently, devices that store data on a high speed storage medium and execute the stored data have been commercialized. In order to perform reading or writing of specific data in a storage medium, a logical position of the specific data must be known.
파일 시스템은 파일마다 고유의 이름을 붙이고, 상기 파일의 저장 또는 검색을 위해 해당 파일들의 위치를 결정한다. 특히, 플래쉬 메모리 등을 저장 매체로 이용하는 경우에는 파일 시스템을 통해 파일과 파일 안에 포함된 데이터를 저장하고, 파일 및 데이터를 용이하게 검색할 수 있도록 관리한다.The file system assigns a unique name to each file and determines the location of those files for storage or retrieval of the file. In particular, when using a flash memory or the like as a storage medium, the file system stores the file and the data contained in the file, and manages the file and the data so that the file and the data can be easily retrieved.
현재 데이터의 검색을 신속하게 하기 위한 다양한 방법이 소개되어 있다. 특히 메타데이터를 이용하여 데이터의 검색 속도를 향상시키는 기술이 발전하고 있다. 메타데이터는 특정 파일에 대한 정보로서, 그 파일의 속성을 설명하는 데이터이다. 즉, 메타 데이터는 실제로 실행되는 데이터는 아니지만, 데이터와 직접 혹은 간접적으로 연관된 정보를 제공한다. 이러한 메타데이터를 이용하여 파일 시스템을 구축하는 경우에는 데이터 관리 효율성이 향상된다. Various methods are currently introduced to speed up the retrieval of data. In particular, technologies for improving the retrieval speed of data using metadata have been developed. Metadata is information about a specific file and is data describing the attributes of the file. That is, metadata is not data actually executed but provides information directly or indirectly associated with the data. In the case of building a file system using such metadata, data management efficiency is improved.
그러나, 이러한 메타데이터를 이용하여 파일에 대한 관리의 효율성이 향상될 수 있다 하더라도, 특정 파일에 대한 판독 또는 쓰기 요청이 발생하는 경우 해당 메타데이터의 위치를 찾아야한다. However, even if such a metadata can be used to improve the management efficiency of the file, when a read or write request for a specific file occurs, the location of the metadata must be found.
기존에는 디렉토리 구조를 이용하여, 특정 파일의 메타데이터를 검색하는 방법이 널리 이용되었었다. 그러나, 하위 디렉토리에 존재하는 파일의 판독을 위해서는 저장 매체에의 접근 횟수가 증가하게 된다. 따라서, 고성능 저장 매체의 성능을 최대한으로 사용할 수 없는 문제가 있었다.In the past, a method of retrieving metadata of a specific file using a directory structure has been widely used. However, the number of accesses to the storage medium increases for reading files existing in subdirectories. Therefore, there is a problem in that the performance of a high performance storage medium cannot be used to the maximum.
본 발명은 상술한 종래 기술의 문제점을 모두 해결하는 것을 그 목적으로 한다. SUMMARY OF THE INVENTION The present invention has been made to solve all the problems of the prior art described above.
본 발명의 목적은 저장 디바이스에의 한 번의 접근만으로도 특정 파일의 메타데이터 위치를 찾을 수 있도록 하는 것이다. It is an object of the present invention to be able to find the metadata location of a particular file with only one access to the storage device.
본 발명의 실시예에 따르면, 특정 파일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 상기 파일의 메타데이터에 대한 어드레스를 획득하는 단계; 및 메타데이터 영역의 상기 어드레스에 해당하는 위치에서 상기 파일의 메타데이터에 대한 판독 또는 쓰기를 수행하는 단계를 포함하는 메타데이터 위치 검색 방법이 제공된다. According to an embodiment of the present invention, performing hashing based on at least one of a file name or a file path of a specific file to obtain an address for metadata of the file; And reading or writing the metadata of the file at a position corresponding to the address of the metadata area.
상기 어드레스 획득 단계는, 상기 파일명 또는 파일 경로를 입력으로 하여 해시 키(hash-key)를 출력하는 제1 해싱 단계; 및 상기 해시 키를 입력으로 하여 상기 어드레스를 출력하는 제2 해싱 단계를 포함할 수 있다. The address obtaining step may include: a first hashing step of outputting a hash key by inputting the file name or the file path; And a second hashing step of outputting the address by inputting the hash key.
상기 어드레스 획득 단계는, 상기 제2 해싱 결과 충돌(collision)이 발생하는 경우, 이중 해싱(double hashing) 또는 선형 탐사(linear probing) 중 적어도 하나를 수행하여 상기 충돌을 회피하는 단계를 더 포함할 수 있다. The address obtaining step may further include performing at least one of double hashing or linear probing to avoid the collision when the second hashing result collision occurs. have.
상기 메타데이터 위치 검색 방법은, 상기 어드레스 획득 단계 이전에, 시스템에 존재하는 일 이상의 파일에 대해 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 각 파일의 메타데이터가 저장될 어드레스를 지정하는 단계; 및 메타데이터 영역의 상기 지정된 어드레스 위치에 상기 각 파일의 메타데이터를 저장하는 단계를 더 포함할 수 있다. The metadata location searching method may include, before the address obtaining step, hashing one or more files existing in a system based on at least one of a file name or a file path to designate an address where metadata of each file is to be stored. step; And storing metadata of each file at the designated address location of a metadata area.
한편, 본 발명의 다른 실시예에 따르면, 특정 파일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 해시 키를 획득하는 단계; 및 상기 파일의 메타데이터가 저장된 어드레스와 해시 키 간의 대응관계가 저장된 테이블을 기초로, 상기 특정 파일의 메타데이터에 대한 어드레스를 파악하는 단계를 포함하는 메타데이터 위치 검색 방법이 제공된다. On the other hand, according to another embodiment of the present invention, performing a hashing based on at least one of the file name or the file path of a specific file to obtain a hash key; And determining an address of the metadata of the specific file based on a table in which a correspondence between the address of the file and the hash key is stored.
상기 메타데이터 위치 검색 방법은, 상기 해시 키 획득 단계 이전에, 시스템에 존재하는 일 이상의 파일에 대한 해시 키를 얻는 단계; 및 상기 일 이상의 파일의 메타데이터 어드레스와 상기 해시 키 간 대응 관계를 저장하는 상기 테이블을 작성하는 단계를 더 포함할 수 있다. The metadata location retrieval method may include obtaining a hash key for one or more files existing in a system before the hash key obtaining step; And creating the table storing the correspondence relationship between the metadata address of the one or more files and the hash key.
또한, 본 발명의 또 다른 실시예에 따르면, 임의의 파일의 메타데이터를 저장하기 위한 메타데이터 영역을 갖는 저장 디바이스; 및 특정 파일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 상기 특정 파일의 메타데이터에 대한 어드레스를 획득하고, 상기 메타데이터 영역의 상기 어드레스 위치에서 상기 특정 파일의 메타데이터에 대한 판독 또는 쓰기를 수행하는 파일 시스템을 포함하는 메타데이터 위치 검색 시스템이 제공된다. Furthermore, according to another embodiment of the present invention, there is provided a storage device having a metadata area for storing metadata of any file; And hashing based on at least one of a file name or a file path of a specific file to obtain an address for the metadata of the specific file, reading the metadata of the specific file at the address location of the metadata area, or A metadata location retrieval system is provided that includes a file system for writing.
상기 파일 시스템은, 상기 파일명 또는 파일 경로를 입력으로 하여 해시 키(hash-key)를 출력하는 제1 해싱, 및 상기 해시 키를 입력으로 하여 상기 어드레스를 출력하는 제2 해싱을 수행할 수 있다. The file system may perform first hashing to output a hash key by inputting the file name or file path, and second hashing to output the address by inputting the hash key.
상기 파일 시스템은, 상기 제2 해싱 결과 충돌(collision)이 발생하는 경우, 이중 해싱(double hashing) 또는 선형 탐사(linear probing) 중 적어도 하나를 더 수행할 수 있다. The file system may further perform at least one of double hashing or linear probing when a collision occurs as a result of the second hashing.
상기 파일 시스템은, 시스템에 존재하는 일 이상의 파일에 대해 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 각 파일의 메타데이터가 저장될 어드레스를 지정할 수 있다. The file system may designate an address to store metadata of each file by performing hashing on at least one file existing in the system based on at least one of a file name or a file path.
본 발명의 또 다른 실시예에 따르면, 임의의 파일의 메타데이터를 저장하기 위한 메타데이터 영역을 갖는 저장 디바이스; 및 특정 파일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 해시 키를 획득하고, 상기 파일의 메타데이터가 저장된 어드레스와 해시 키 간의 대응관계가 저장된 테이블을 기초로, 상기 특정 파일의 메타데이터에 대한 어드레스를 파악하는 파일 시스템을 포함하는 메타데이터 위치 검색 시스템이 제공된다. According to another embodiment of the present invention, there is provided a storage device including: a storage device having a metadata area for storing metadata of any file; And obtaining a hash key by performing hashing based on at least one of a file name or a file path of the specific file, and based on a table in which a correspondence between the address of the file's metadata and the hash key is stored, A metadata location retrieval system is provided that includes a file system for resolving addresses for data.
상기 파일 시스템은, 시스템에 존재하는 일 이상의 파일에 대한 해시 키를 얻고, 상기 일 이상의 파일의 메타데이터 어드레스와 상기 해시 키 간 대응 관계를 저장하는 상기 테이블을 작성할 수 있다.The file system can obtain a hash key for one or more files present in the system and create the table that stores the correspondence between the metadata addresses of the one or more files and the hash key.
본 발명의 또 다른 실시예에 따르면, 해시 키 생성 방법을 통해 한 번의 접근만으로도 메타데이터의 위치를 파악해낼 수 있도록 하는 다른 방법 및 이러한 방법을 실행하기 위한 컴퓨터 프로그램을 기록하는 컴퓨터 판독 가능한 기록 매체가 제공된다. According to still another embodiment of the present invention, there is provided another method for locating metadata with only one access through a hash key generation method, and a computer readable recording medium for recording a computer program for executing the method. Is provided.
본 발명에 따르면, 해싱 과정을 이용하여 메타데이터 영역에서의 메타데이터 위치를 파악해내거나, 해싱 과정에 의해 획득된 해싱 키와 메타데이터의 어드레스의 대응 관계에 대한 테이블을 관리함으로써, 저장 매체에의 한 번의 접근만으로도 메타데이터 위치를 찾아낼 수 있게 되며, 이에 따라, 고속 저장 매체의 성능을 최대로 활용할 수 있게 된다. According to the present invention, by identifying a metadata position in a metadata area using a hashing process, or by managing a table for a correspondence between a hashing key obtained by the hashing process and an address of metadata, Metadata locations can be located with only one access, thereby maximizing the performance of high-speed storage media.
도 1은 일반적인 메타데이터 검색 방법을 설명하기 위한 도면이다.
도 2a 내지 도 2c는 본 발명의 제1 실시예에 따른 메타데이터 위치 검색방법을 설명하기 위한 흐름도이다.
도 3a 및 도 3b는 본 발명의 제2 실시예에 따른 메타데이터 위치 검색방법을 설명하기 위한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 메타데이터 위치 검색을 수행하기 위한 시스템의 구성을 나타내는 도면이다.
도 5는 본 발명의 실시예에 따라 특정 파일에 대한 메타데이터를 검색하는 방법을 도식적으로 나타내는 도면이다. 1 is a diagram illustrating a general metadata retrieval method.
2A to 2C are flowcharts illustrating a metadata location search method according to a first embodiment of the present invention.
3A and 3B are flowcharts illustrating a metadata location search method according to a second embodiment of the present invention.
4 is a diagram illustrating a configuration of a system for performing metadata location search according to an embodiment of the present invention.
5 is a diagram schematically illustrating a method of searching metadata for a specific file according to an embodiment of the present invention.
후술하는 본 발명에 대한 상세한 설명은, 본 발명이 실시될 수 있는 특정 실시예를 예시로서 도시하는 첨부 도면을 참조한다. 이들 실시예는 당업자가 본 발명을 실시할 수 있기에 충분하도록 상세히 설명된다. 본 발명의 다양한 실시예는 서로 다르지만 상호 배타적일 필요는 없음이 이해되어야 한다. 예를 들어, 여기에 기재되어 있는 특정 형상, 구조 및 특성은 일 실시예에 관련하여 본 발명의 정신 및 범위를 벗어나지 않으면서 다른 실시예로 구현될 수 있다. 또한, 각각의 개시된 실시예 내의 개별 구성요소의 위치 또는 배치는 본 발명의 정신 및 범위를 벗어나지 않으면서 변경될 수 있음이 이해되어야 한다. 따라서, 후술하는 상세한 설명은 한정적인 의미로서 취하려는 것이 아니며, 본 발명의 범위는, 적절하게 설명된다면, 그 청구항들이 주장하는 것과 균등한 모든 범위와 더불어 첨부된 청구항에 의해서만 한정된다. 도면에서 유사한 참조부호는 여러 측면에 걸쳐서 동일하거나 유사한 기능을 지칭한다. DETAILED DESCRIPTION OF THE INVENTION The following detailed description of the invention refers to the accompanying drawings that show, by way of illustration, specific embodiments in which the invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the invention. It should be understood that the various embodiments of the present invention are different, but need not be mutually exclusive. For example, certain features, structures, and characteristics described herein may be implemented in other embodiments without departing from the spirit and scope of the invention in connection with an embodiment. It is also to be understood that the position or arrangement of the individual components within each disclosed embodiment may be varied without departing from the spirit and scope of the invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is to be limited only by the appended claims, along with the full scope of equivalents to which such claims are entitled, if properly explained. In the drawings, like reference numerals refer to the same or similar functions throughout the several views.
이하에서는, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 하기 위하여, 본 발명의 바람직한 실시예들에 관하여 첨부된 도면을 참조하여 상세히 설명하기로 한다. Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings, so that those skilled in the art can easily carry out the present invention.
[본 발명의 바람직한 실시예] [Preferred Embodiment of the Present Invention]
도 1은 일반적인 파일 시스템에서 특정 파일의 메타데이터 위치를 찾아내는 방법을 설명하기 위한 도면이다. 1 is a view for explaining a method of finding the metadata location of a specific file in a general file system.
도 1을 참조하면, 일반적인 파일 시스템에 있어서는 디렉토리 구조를 이용하여 메타데이터 위치를 찾아낸다. Referring to FIG. 1, in a typical file system, a directory structure is used to find a metadata location.
예를 들어, "A/B/C/D/E"의 파일명 또는 파일 경로를 갖는 특정 파일의 메타데이터 위치를 찾기 위해서는 "A"라는 디렉토리 하에서 "B"라는 디렉토리를 찾아내고, 그 아래 계층에서 다시 "C", "D"의 디렉토리를 순차적으로 찾아낸 후, "D"라는 디렉토리 하에서 "E"의 메타데이터를 찾아낸다.For example, to find the metadata location of a specific file with a file name or file path of "A / B / C / D / E", look for a directory named "B" under the directory "A", and in the hierarchy below Again, directories of "C" and "D" are sequentially found, and then metadata of "E" is found under the directory of "D".
이러한 디렉토리 구조를 이용한 메타데이터 검색법은 대상이 되는 저장 디바이스에 대한 접근 횟수를 증가시키게 된다. Metadata retrieval using such a directory structure increases the number of times of access to a target storage device.
도 2a 내지 도 2c는 본 발명의 제1 실시예에 따른 메타데이터 위치 검색방법을 설명하기 위한 흐름도이다. 2A to 2C are flowcharts illustrating a metadata location search method according to a first embodiment of the present invention.
도 2a를 참조하면, 먼저 각 파일의 메타데이터에 대한 어드레스를 지정한다(S210). Referring to FIG. 2A, first, an address of metadata of each file is designated (S210).
도 2b는 도 2a의 단계 S210에서 수행되는 동작을 설명하는 흐름도이다. 전술한 바와 같이, 단계 S210에서는 각 파일의 메타데이터의 어드레스를 지정하는 동작이 행해진다. FIG. 2B is a flowchart for describing an operation performed in step S210 of FIG. 2A. As described above, in step S210, an operation for specifying an address of metadata of each file is performed.
도 2b를 참조하면, 특정 파일의 이름 또는 해당 파일의 물리적 위치 중 적어도 하나를 기초로 해시 키(hash-key)를 생성해낸다(S211). 이하에서는, 단계 S211에서 수행되는 해싱을 제1 해싱이라고 칭한다. 파일의 물리적 위치라는 것은 디렉토리 구조에서의 해당 파일 위치 또는 파일 검색에 있어서의 경로가 될 수 있다. 통상적인 운영 체제(예를 들면, 리눅스 등)의 파일 시스템에서 특정 파일의 이름 또는 해당 파일의 물리적 위치는 특정 파일에 대해 유일하게 정해져 있다. 따라서, 각 파일에 대한 해시 키는 서로 다르게 형성될 수 있다. 해시 키 생성을 위해서는 해시 함수가 이용될 수 있는데, 여기서의 해시 함수는 통상적인 해시 함수가 사용될 수 있다. 예를 들면, SHA-1(Secure Hash Algorithm-1) 등의 해시 함수가 사용될 수 있으나, 이와는 다른 해시 함수가 사용될 수도 있다. 만약 해시 함수로서 SHA-1가 사용된다면, 각 파일에 대한 해시 키로서는 160비트의 길이를 갖는 스트링이 얻어지게 된다.Referring to FIG. 2B, a hash key is generated based on at least one of a name of a specific file or a physical location of the file (S211). Hereinafter, the hashing performed in step S211 is referred to as first hashing. The physical location of a file can be the path of that file in the directory structure or the file search. In a file system of a typical operating system (e.g., Linux), the name of a particular file or the physical location of that file is unique to a particular file. Thus, the hash key for each file can be formed differently. A hash function may be used to generate a hash key, where a hash function may be used. For example, a hash function such as Secure Hash Algorithm-1 (SHA-1) may be used, but a different hash function may be used. If SHA-1 is used as a hash function, a string having a length of 160 bits is obtained as a hash key for each file.
해시 키가 얻어지면, 해당 해시 키에 대해 한번 더 해싱을 수행하여 메타데이터 영역에서의 어드레스를 지정한다(S212). 단계 S212에서 수행되는 해싱을 제2 해싱이라고 칭할 수 있다. When the hash key is obtained, hashing is performed once more on the hash key to designate an address in the metadata area (S212). The hashing performed in step S212 may be referred to as a second hashing.
메타데이터 영역은 적어도 파일 개수만큼의 어드레스 영역을 가질 수 있다. 예를 들면, 0에서 N까지의 어드레스 영역을 가질 수 있다. 해시 키를 메타데이터 영역에 할당하기 위해 추가적인 해싱을 수행할 수 있다. 단계 S211에서 얻어진 해시 키를 기초로 하여 제2 해싱을 수행하여 메타데이터 영역에서의 어드레스 값을 얻어낸다. 메타데이터 영역이 0에서 N까지의 어드레스 값을 가질 수 있다고 가정하면, 상기 제2 해싱에 의해 얻어지는 값은 0에서 N 사이의 값일 수 있다. 그러나, 해싱 결과 0에서 N까지의 값 중 동일한 값이 결과로서 출력되거나, 어느 한 위치에 군집되는 경우, 즉, 충돌(collision)이 발생할 수 있다. 이 때, 이러한 충돌을 피하기 위한 방법을 사용할 수 있다. 예를 들면, 이중 해싱(double hashing) 또는 선형 탐사(linear probing) 방법을 이용할 수 있다. The metadata area may have at least as many address areas as the number of files. For example, it may have an address area from 0 to N. Additional hashing can be performed to assign the hash key to the metadata area. A second hashing is performed based on the hash key obtained in step S211 to obtain an address value in the metadata area. Assuming that the metadata area may have an address value from 0 to N, the value obtained by the second hashing may be a value between 0 and N. However, if the same value among the values from 0 to N is hashed as a result or clustered at one position, that is, collision may occur. At this time, a method for avoiding such a collision can be used. For example, a double hashing or linear probing method can be used.
이중 해싱은 충돌이 발생했을 경우, 다른 해시 함수를 이용하여 추가적인 해싱을 진행하는 방법이며, 선형 탐사는 충돌 발생 시 현재 어드레스에서 소정 폭으로 다음 주소로 이동하는 방식이다.In case of collision, double hashing is a method of additional hashing using another hash function. In case of collision, linear search moves from the current address to the next address with a predetermined width.
이러한 과정에 따라 메타데이터 영역에서 어드레스가 지정되면, 그 어드레스에 해당 파일의 메타데이터가 위치하게 된다. If an address is specified in the metadata area according to this process, the metadata of the file is located at the address.
다시 도 2a를 참조하면, 특정 파일에 대한 판독 또는 쓰기 요청이 발생하는 경우(S220), 단계 S210에서 지정된 어드레스를 기초로 하여 메타데이터의 위치를 찾아낸다(S230). Referring again to FIG. 2A, when a read or write request for a specific file occurs (S220), the location of metadata is found based on the address specified in step S210 (S230).
도 2c는 단계 S230에서 수행되는 동작을 설명하기 위한 흐름도이다. 2C is a flowchart for explaining an operation performed in step S230.
도 2c를 참조하면, 해당 파일에 대한 파일명 또는 파일 경로 중 어느 하나를 기초로 제1 해싱을 수행하여 해시 키를 얻어낸다(S231). 이 때 사용되는 해시 함수는 단계 S211에서 사용된 해시 함수와 동일한 것일 수 있다. 다음으로, 제1 해싱의 결과 얻어진 해시 키를 기초로 제2 해싱을 수행하여 메타데이터 영역에서의 어드레스에 해당하는 값을 얻어낸다(S232). 이렇게 함으로써, 해당 파일의 메타데이터 위치를 파악할 수 있게 된다. 해당 메타데이터로부터 대상 파일의 위치를 찾아낼 수 있다. Referring to FIG. 2C, a hash key is obtained by performing first hashing based on one of a file name and a file path of a corresponding file (S231). The hash function used at this time may be the same as the hash function used in step S211. Next, second hashing is performed based on the hash key obtained as a result of the first hashing to obtain a value corresponding to an address in the metadata area (S232). By doing this, the metadata location of the file can be determined. You can find the location of the target file from the metadata.
만약 현재 명령이 특정 파일에 대한 쓰기 명령인 경우에는, 다음과 같은 프로세스가 더 수행될 수 있다. 단계 S232의 수행 결과 얻어진 어드레스가 이미 점유 상태인 경우가 있을 수 있는데, 이 때, 앞서 설명한 충돌 방지 방법을 수행한다(S233). 이렇게 하여 이용하여 프리 영역을 찾아내고, 해당 위치에 쓰기 요청된 파일의 메타데이터를 입력할 수 있다(S234).If the current command is a write command for a specific file, the following process may be further performed. There may be a case where the address obtained as a result of performing step S232 is already occupied, and at this time, the collision avoidance method described above is performed (S233). In this way, the free area may be found and the metadata of the file requested to be written to the corresponding location may be input (S234).
이하에서는 본 발명의 제2 실시예에 따른 메타데이터 위치 검색방법을 설명한다. Hereinafter, a metadata location search method according to a second embodiment of the present invention will be described.
도 3a 내지 도 3b는 본 발명의 제2 실시예에 따른 메타데이터 위치 검색방법을 설명하기 위한 흐름도이다. 3A to 3B are flowcharts illustrating a metadata location search method according to a second embodiment of the present invention.
도 3a를 참조하면, 먼저 각 파일에 대한 해시 키와 메타데이터 영역 간의 대응관계를 나타내는 테이블을 작성한다(S310). Referring to FIG. 3A, a table showing a correspondence relationship between a hash key and a metadata area for each file is first created (S310).
도 3b는 단계 S310에서 수행되는 동작을 나타내는 도면이다. 도 3b를 참조하면, 특정 파일의 이름 또는 해당 파일의 물리적 위치 중 적어도 하나를 기초로 해시 키를 생성해낸다(S311). 단계 S311의 해싱 과정은 도 2b를 참조하여 설명한 제1 해싱 과정과 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.3B is a diagram illustrating an operation performed in step S310. Referring to FIG. 3B, a hash key is generated based on at least one of a name of a specific file or a physical location of the file (S311). Since the hashing process of step S311 is the same as the first hashing process described with reference to FIG. 2B, a detailed description thereof will be omitted.
해시 키 생성 후, 해시 키와 해당 파일의 메타데이터가 저장된 메타데이터 영역의 어드레스 간 대응관계를 저장하는 테이블을 생성한다(S312). 각 파일에 대한 메타데이터는 메타데이터 영역에 저장되고, 메타데이터가 저장된 각 위치에는 어드레스가 할당되어 있는데, 이러한 메타데이터의 어드레스와 단계 S311에서 생성한 해시 키 간의 대응 정보를 테이블로서 저장 및 관리한다.After generating the hash key, a table is stored to store the correspondence between the hash key and the address of the metadata area in which the metadata of the file is stored (S312). The metadata for each file is stored in the metadata area, and an address is assigned to each location where the metadata is stored, and the corresponding information between the address of the metadata and the hash key generated in step S311 is stored and managed as a table. .
다시 도 3a를 참조하면, 특정 데이터에 대한 판독 또는 쓰기 요청이 발생하는 경우(S320), 단계 S310에서 생성된 테이블을 기초로 하여 해당 파일의 메타데이터 위치를 찾아낸다(S330). 각 파일의 해시 키는 유일하기 때문에, 각 파일의 해시 키에 대한 정보를 알고 있으면, 단계 S310에서 생성한 테이블을 기초로 하여 메타데이터의 어드레스를 파악할 수 있다. 이 어드레스를 기초로 메타데이터 영역에서 해당 파일의 메타데이터를 찾아내고, 이 메타데이터로부터 대상 파일의 위치를 찾아낼 수 있다. Referring again to FIG. 3A, when a read or write request for specific data occurs (S320), the metadata location of the corresponding file is found based on the table generated in step S310 (S330). Since the hash key of each file is unique, if the information on the hash key of each file is known, the address of the metadata can be grasped based on the table generated in step S310. Based on this address, the metadata of the file can be found in the metadata area, and the location of the target file can be found from this metadata.
도 4는 본 발명의 일 실시예에 따른 메타데이터 위치 검색을 수행하기 위한 시스템의 구성을 나타내는 도면이다. 4 is a diagram illustrating a configuration of a system for performing metadata location search according to an embodiment of the present invention.
도 4를 참조하면, 본 발명의 시스템은 파일 시스템(410) 및 저장 디바이스(420)를 포함하여 구성될 수 있다.Referring to FIG. 4, the system of the present invention may include a
본 발명의 일 실시예에 따른 파일 시스템(410)은 시스템에 존재하는 각 파일의 메타데이터에 어드레스를 할당한다. 구체적으로, 해싱을 수행하여 메타데이터 영역에서의 어드레스 값을 얻어낸 후, 해당 어드레스에 각 파일의 메타데이터를 저장한다. 즉, 도 2a 및 도 2b를 참조하여 설명한 단계 S210의 동작을 수행한다. 또한, 본 발명의 다른 실시예에 따르면, 파일 시스템(410)은 각 패일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 해시 키를 얻어내고 이를 해당 파일의 메타데이터 어드레스와 대응시키는 테이블을 작성한다. 즉, 도 3a 및 도 3b를 참조하여 설명한 단계 S310의 동작을 수행한다. The
한편, 파일 시스템(410)은 운영 체제에서 발생하는 파일 판독 또는 쓰기 요청에 대하여 해당 파일의 위치를 찾아낸다. 본 발명의 일 실시예에 따른 파일 시스템(410)은 판독 또는 쓰기 요청된 대상 파일의 메타데이터 위치를 찾아내고, 이를 기초로 하여 해당 파일의 위치를 찾아낸다. 메타데이터 위치는 도 2a 및 도 2b를 참조하여 설명한 단계 S210에서 지정된 어드레스 또는 단계 S310에서 생성된 테이블을 기초로 파악될 수 있다. 전체적으로, 파일 시스템(410)은 도 2a 내지 도 2c, 도 3a 및 도 3b를 참조로 설명한 각 동작을 실행할 수 있다.On the other hand, the
본 발명의 일 실시예에 따른 저장 디바이스(420)는 시스템에 존재하는 각 파일 및 해당 파일에 대응하는 메타데이터를 저장한다. 즉, 저장 디바이스(420)에는 메타데이터가 저장되는 메타데이터 영역이 존재한다. 저장 디바이스(420)는 통상적인 저장 매체, 예를 들면, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치일 수 있다. 또한, 이와는 다른 고성능 저장 매체, 예를 들면, 플레시 SSD, DRAM SSD 등의 하드웨어 장치일 수도 있다. 그러나, 이는 일례에 불과할 뿐이며, 다른 저장 장치가 본 발명의 저장 디바이스(420)로 사용될 수 있음은 물론이다. The
도 5는 본 발명의 실시예에 따라 특정 파일에 대한 메타데이터를 검색하는 방법을 도식적으로 나타내는 도면이다. 5 is a diagram schematically illustrating a method of searching metadata for a specific file according to an embodiment of the present invention.
예를 들어, "A/B/C/D/E"라는 파일명 또는 파일 경로를 갖는 파일의 메타데이터를 찾고자 하는 경우, 파일명 또는 파일 경로에 대한 해싱을 수행하여, 메타데이터 영역에서의 어드레스를 정보를 얻고, 이를 토대로 해당 메타데이터를 직접적으로 찾아낼 수 있다. 즉, 도 1과 비교하여 볼 때, 디렉토리 구조를 이용하지 않고, 메타데이터 영역에의 직접적인 한 번의 접근만으로 특정 파일에 대한 메타데이터의 위치를 찾아낼 수 있다. For example, if you want to find the metadata of a file having a file name or file path of "A / B / C / D / E", hashing the file name or file path is performed so that the address in the metadata area can be found. You can get this and find the metadata directly. That is, compared to FIG. 1, the metadata location for a specific file can be found by only one direct access to the metadata area without using a directory structure.
이상 설명된 본 발명에 따른 실시예들은 다양한 컴퓨터 구성요소를 통하여 수행될 수 있는 프로그램 명령어의 형태로 구현되어 컴퓨터 판독 가능한 기록 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능한 기록 매체는 프로그램 명령어, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 컴퓨터 판독 가능한 기록 매체에 기록되는 프로그램 명령어는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 분야의 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능한 기록 매체의 예에는, 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광기록 매체, 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 ROM, RAM, 플래시 메모리 등과 같은 프로그램 명령어를 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령어의 예에는, 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드도 포함된다. 상기 하드웨어 장치는 본 발명에 따른 처리를 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다. The embodiments of the present invention described above can be implemented in the form of program instructions that can be executed through various computer components and recorded on a computer-readable recording medium. The computer-readable recording medium may include program commands, data files, data structures, and the like, alone or in combination. Program instructions recorded on the computer-readable recording medium may be those specially designed and configured for the present invention, or may be known and available to those skilled in the computer software arts. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs, DVDs, and magneto-optical media such as floptical disks. 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 not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device may be configured to operate as one or more software modules for performing the processing according to the present invention, and vice versa.
이상에서 본 발명이 구체적인 구성요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나, 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명이 상기 실시예들에 한정되는 것은 아니며, 본 발명이 속하는 기술분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형을 꾀할 수 있다. Although the present invention has been described by specific embodiments such as specific components and the like, but the embodiments and the drawings are provided to assist in a more general understanding of the present invention, the present invention is not limited to the above embodiments. For those skilled in the art, various modifications and variations can be made from these descriptions.
따라서, 본 발명의 사상은 상기 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등하게 또는 등가적으로 변형된 모든 것들은 본 발명의 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be construed as being limited to the above-described embodiments, and all of the equivalents or equivalents of the claims, as well as the following claims, I will say.
410: 파일 시스템
420: 저장 디바이스410: file system
420: storage device
Claims (13)
메타데이터 영역의 상기 어드레스에 해당하는 위치에서 상기 파일의 메타데이터에 대한 판독 또는 쓰기를 수행하는 단계를 포함하는 메타데이터 위치 검색 방법. Obtaining an address for metadata of the file by performing hashing based on at least one of a file name or a file path of a specific file; And
And reading or writing metadata of the file at a position corresponding to the address of a metadata area.
상기 어드레스 획득 단계는,
상기 파일명 또는 파일 경로를 입력으로 하여 해시 키(hash-key)를 출력하는 제1 해싱 단계; 및
상기 해시 키를 입력으로 하여 상기 어드레스를 출력하는 제2 해싱 단계를 포함하는 메타데이터 위치 검색 방법. The method of claim 1,
The address obtaining step,
A first hashing step of outputting a hash key by inputting the file name or file path; And
And a second hashing step of outputting the address by inputting the hash key.
상기 어드레스 획득 단계는,
상기 제2 해싱 결과 충돌(collision)이 발생하는 경우, 이중 해싱(double hashing) 또는 선형 탐사(linear probing) 중 적어도 하나를 수행하여 상기 충돌을 회피하는 단계를 더 포함하는 메타데이터 위치 검색 방법. The method of claim 2,
The address obtaining step,
If a collision occurs as a result of the second hashing, performing at least one of double hashing or linear probing to avoid the collision.
상기 어드레스 획득 단계 이전에,
시스템에 존재하는 일 이상의 파일에 대해 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 각 파일의 메타데이터가 저장될 어드레스를 지정하는 단계; 및
메타데이터 영역의 상기 지정된 어드레스 위치에 상기 각 파일의 메타데이터를 저장하는 단계를 더 포함하는 메타데이터 위치 검색 방법. The method of claim 1,
Before the address acquisition step,
Hashing one or more files existing in the system based on at least one of a file name or a file path to specify an address where metadata of each file is to be stored; And
And storing the metadata of each file at the designated address location in a metadata area.
상기 파일의 메타데이터가 저장된 어드레스와 해시 키 간의 대응관계가 저장된 테이블을 기초로, 상기 특정 파일의 메타데이터에 대한 어드레스를 파악하는 단계를 포함하는 메타데이터 위치 검색 방법. Obtaining a hash key by performing hashing based on at least one of a file name or a file path of a specific file; And
And determining an address for the metadata of the specific file based on a table in which a correspondence between the address of the file and the hash key of the file is stored.
상기 해시 키 획득 단계 이전에,
시스템에 존재하는 일 이상의 파일에 대한 해시 키를 얻는 단계; 및
상기 일 이상의 파일의 메타데이터 어드레스와 상기 해시 키 간 대응 관계를 저장하는 상기 테이블을 작성하는 단계를 더 포함하는 메타데이터 위치 검색 방법. The method of claim 5,
Before the hash key acquisition step,
Obtaining a hash key for one or more files present in the system; And
Creating the table storing the correspondence between the metadata address of the one or more files and the hash key.
특정 파일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 상기 특정 파일의 메타데이터에 대한 어드레스를 획득하고, 상기 메타데이터 영역의 상기 어드레스 위치에서 상기 특정 파일의 메타데이터에 대한 판독 또는 쓰기를 수행하는 파일 시스템을 포함하는 메타데이터 위치 검색 시스템.A storage device having a metadata area for storing metadata of any file; And
Hashing is performed based on at least one of a file name or a file path of a specific file to obtain an address for the metadata of the specific file, and reading or writing to the metadata of the specific file at the address location of the metadata area. Metadata location retrieval system including a file system for performing the.
상기 파일 시스템은,
상기 파일명 또는 파일 경로를 입력으로 하여 해시 키(hash-key)를 출력하는 제1 해싱, 및 상기 해시 키를 입력으로 하여 상기 어드레스를 출력하는 제2 해싱을 수행하는 메타데이터 위치 검색 시스템. The method of claim 7, wherein
The file system comprises:
And a first hash to output a hash key by inputting the file name or file path, and a second hash to output the address by inputting the hash key.
상기 파일 시스템은, 상기 제2 해싱 결과 충돌(collision)이 발생하는 경우, 이중 해싱(double hashing) 또는 선형 탐사(linear probing) 중 적어도 하나를 더 수행하는 메타데이터 위치 검색 시스템.9. The method of claim 8,
And the file system further performs at least one of double hashing or linear probing when a collision occurs as a result of the second hashing.
상기 파일 시스템은, 시스템에 존재하는 일 이상의 파일에 대해 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 각 파일의 메타데이터가 저장될 어드레스를 지정하는 메타데이터 위치 검색 시스템. The method of claim 7, wherein
And the file system hashes one or more files existing in the system based on at least one of a file name or a file path to specify an address where metadata of each file is to be stored.
특정 파일의 파일명 또는 파일 경로 중 적어도 하나를 기초로 해싱을 수행하여 해시 키를 획득하고, 상기 파일의 메타데이터가 저장된 어드레스와 해시 키 간의 대응관계가 저장된 테이블을 기초로, 상기 특정 파일의 메타데이터에 대한 어드레스를 파악하는 파일 시스템을 포함하는 메타데이터 위치 검색 시스템. A storage device having a metadata area for storing metadata of any file; And
Hashing is performed based on at least one of a file name or a file path of a specific file to obtain a hash key, and based on a table in which a correspondence between the address of the file's metadata and the hash key is stored, the metadata of the specific file. A metadata location search system comprising a file system for identifying an address for a.
상기 파일 시스템은, 시스템에 존재하는 일 이상의 파일에 대한 해시 키를 얻고, 상기 일 이상의 파일의 메타데이터 어드레스와 상기 해시 키 간 대응 관계를 저장하는 상기 테이블을 작성하는 메타데이터 위치 검색 시스템. 12. The method of claim 11,
And the file system obtains a hash key for one or more files present in the system and creates the table that stores the correspondence between the metadata addresses of the one or more files and the hash key.
A computer-readable recording medium for recording a computer program for executing the method according to any one of claims 1 to 6.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120014205A KR101318420B1 (en) | 2012-02-13 | 2012-02-13 | Method, system and computer-readable recording medium for searching position of metadata |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120014205A KR101318420B1 (en) | 2012-02-13 | 2012-02-13 | Method, system and computer-readable recording medium for searching position of metadata |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20130092737A true KR20130092737A (en) | 2013-08-21 |
KR101318420B1 KR101318420B1 (en) | 2013-10-15 |
Family
ID=49217341
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120014205A KR101318420B1 (en) | 2012-02-13 | 2012-02-13 | Method, system and computer-readable recording medium for searching position of metadata |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101318420B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598131A (en) * | 2018-09-30 | 2019-04-09 | 乐蜜有限公司 | A kind of file upload, method for down loading, device, electronic equipment and storage medium |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050015546A1 (en) * | 2003-07-15 | 2005-01-20 | Ofir Zohar | Data storage system |
-
2012
- 2012-02-13 KR KR1020120014205A patent/KR101318420B1/en active IP Right Grant
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109598131A (en) * | 2018-09-30 | 2019-04-09 | 乐蜜有限公司 | A kind of file upload, method for down loading, device, electronic equipment and storage medium |
CN109598131B (en) * | 2018-09-30 | 2021-07-30 | 北京乐我无限科技有限责任公司 | File uploading and downloading method and device, electronic equipment and storage medium |
Also Published As
Publication number | Publication date |
---|---|
KR101318420B1 (en) | 2013-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6205650B2 (en) | Method and apparatus utilizing non-uniform hash function to place records in non-uniform access memory | |
JP5996088B2 (en) | Cryptographic hash database | |
JP5524144B2 (en) | Memory system having a key-value store system | |
KR101289931B1 (en) | Method and apparatus for storing data in flash memory using address mapping with various block sizes | |
US9875183B2 (en) | Method and apparatus for content derived data placement in memory | |
WO2020186549A1 (en) | Metadata management method, system and medium | |
JP2015515047A5 (en) | ||
CN111782656B (en) | Data reading and writing method and device | |
CN110888837B (en) | Object storage small file merging method and device | |
US10515055B2 (en) | Mapping logical identifiers using multiple identifier spaces | |
JP2015528957A (en) | Distributed file system, file access method, and client device | |
JP4825719B2 (en) | Fast file attribute search | |
JP2007220107A (en) | Apparatus and method for managing mapping information of nonvolatile memory | |
WO2016187975A1 (en) | Internal memory defragmentation method and apparatus | |
JP5646775B2 (en) | Memory system having a key-value store system | |
KR101318420B1 (en) | Method, system and computer-readable recording medium for searching position of metadata | |
CN111930684A (en) | Small file processing method, device and equipment based on HDFS (Hadoop distributed File System) and storage medium | |
JPWO2013108745A1 (en) | Storage device, control method thereof, and program | |
JP5833212B2 (en) | Memory system having a key-value store system | |
CN113094336B (en) | Cuckoo hash-based file system directory management method and system | |
CN104537023A (en) | Storage method and device for reverse index records | |
US20220365905A1 (en) | Metadata processing method and apparatus, and a computer-readable storage medium | |
KR20190123819A (en) | Method for managing of memory address mapping table for data storage device | |
KR101379161B1 (en) | Using bloom-filter of reverse mapping method and system for enhancing performance of garbage collection in storage systems | |
JP2016021264A (en) | Data management method of memory system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160217 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170925 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181002 Year of fee payment: 6 |