KR101341995B1 - Apparatus and method for managing shared data storage - Google Patents

Apparatus and method for managing shared data storage Download PDF

Info

Publication number
KR101341995B1
KR101341995B1 KR1020110142742A KR20110142742A KR101341995B1 KR 101341995 B1 KR101341995 B1 KR 101341995B1 KR 1020110142742 A KR1020110142742 A KR 1020110142742A KR 20110142742 A KR20110142742 A KR 20110142742A KR 101341995 B1 KR101341995 B1 KR 101341995B1
Authority
KR
South Korea
Prior art keywords
data
hash
copy
shared
pieces
Prior art date
Application number
KR1020110142742A
Other languages
Korean (ko)
Other versions
KR20130074605A (en
Inventor
신동군
안정철
Original Assignee
성균관대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 성균관대학교산학협력단 filed Critical 성균관대학교산학협력단
Priority to KR1020110142742A priority Critical patent/KR101341995B1/en
Publication of KR20130074605A publication Critical patent/KR20130074605A/en
Application granted granted Critical
Publication of KR101341995B1 publication Critical patent/KR101341995B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • 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/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays

Abstract

본 발명은 (a) 쓰기 요청된 데이터를 하나 이상의 데이터 조각으로 분할하는 단계; (b) 상기 분할된 각 데이터 조각을 제 1차 중복 검사를 통해 사본 없음과 사본 존재 가능으로 분류한 후, 상기 분류된 데이터 조각을 각각 상기 공유 데이터 저장소의 해당 구획에 저장하는 단계; (c) 상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 제 2차 중복 검사를 통해, 상기 (b) 단계에서 사본 존재 가능으로 분류된 데이터 조각 중에서 사본이 존재하는 데이터 조각을 선별하는 단계; 및 (d) 상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 상기 (c) 단계에서 상기 사본이 존재하는 것으로 확인된 데이터 조각을 제거하는 단계를 포함하되, 상기 제 1차 중복 검사에 사용되는 해시 방법은 상기 제 2차 중복 검사에 사용되는 해시 방법보다 충돌 확률이 높지만 해시 값 생성 속도가 빠른 것인 공유 데이터 저장소 관리 방법을 제공한다.The present invention comprises the steps of: (a) dividing the write requested data into one or more pieces of data; (b) classifying each of the divided pieces of data as no copy and existence of a copy through a first redundancy check, and storing the sorted data pieces in a corresponding section of the shared data store, respectively; (c) when there is no read or write request for the shared data store, screening data fragments having a copy among the data fragments classified as copy existence in step (b) through a second redundancy check; ; And (d) when there is no read or write request to the shared data store, removing the piece of data identified in step (c) that the copy exists, wherein the first duplicate check is used. The hash method may provide a method of managing a shared data store having a higher probability of collision but a faster hash value generation rate than the hash method used for the second redundancy check.

Description

공유 데이터 저장소 관리 장치 및 방법{APPARATUS AND METHOD FOR MANAGING SHARED DATA STORAGE}Apparatus and method for managing shared data storage {APPARATUS AND METHOD FOR MANAGING SHARED DATA STORAGE}

본 발명은 공유 데이터 저장소 관리 장치 및 방법에 관한 것으로, 구체적으로는 데이터 유일성이 보장되는 공유 데이터 저장소 관리 장치 및 방법에 관한 것이다.The present invention relates to an apparatus and method for managing a shared data store, and more particularly, to an apparatus and method for managing a shared data store in which data uniqueness is guaranteed.

최근 클라우드 컴퓨팅(Cloud Computing) 등 분산 시스템에 대한 연구가 활발히 진행되고 있다. 분산 시스템에는 공유 데이터 저장소가 필요한 경우가 많다. 이에 따라, 공유 데이터의 중복을 방지하기 위한 연구들이 진행되어왔다.Recently, research on distributed systems such as cloud computing has been actively conducted. Distributed systems often require shared data storage. Accordingly, studies to prevent duplication of shared data have been conducted.

공유 데이터의 중복을 방지하기 위한 가장 간단한 방법은 데이터를 저장소에 쓰기 전에 동일한 데이터가 이미 저장되어 있는지 확인하여 중복 데이터가 저장되어 있지 않은 데이터만 저장하는 것일 것이다. 하지만 중복 데이터를 확인하는 데에는 시간이 소요되므로, 이러한 방법은 쓰기 요청 처리시 처리 지연이 크다는 단점이 있다. 특히 공유 데이터 저장소는 여러 장치에 의해 공유되므로, 많은 수의 쓰기 요청이 동시에 발생할 가능성이 크다. 따라서 쓰기 요청 처리 지연 시간이 크게 늘어나, 성능이 크게 저하될 위험이 있다.The simplest way to avoid duplication of shared data would be to ensure that the same data is already stored before writing the data to the repository, so that only the data that does not have duplicate data is stored. However, since it takes time to check for duplicate data, this method has a disadvantage in that a processing delay is high when processing a write request. In particular, because the shared data store is shared by multiple devices, a large number of write requests are likely to occur at the same time. As a result, the write request processing delay time is greatly increased, and there is a risk of significantly reducing performance.

이에 따라, 쓰기 요청 수신시에는 일단 모두 저장한 후, 추후 중복된 데이터를 식별하여 제거하는 방법이 제안되었으나, 중복되어 있지 않은 데이터와 사본이 존재하는 데이터가 한 블럭 내에 섞여 있게 된다는 문제가 발생한다. 이는 유효한 데이터와 유효하지 않은 데이터가 한 블럭 내에 섞여있게 되고, 유효한 데이터가 여러 블럭에 흩어져 저장된다는 뜻이다. 이는 결국 데이터 저장소의 성능이 저하됨을 의미한다.Accordingly, when a write request is received, a method of storing and storing duplicated data later is proposed. However, there is a problem that non-overlapping data and data having a copy are mixed in one block. . This means that valid and invalid data will be mixed in one block, and valid data will be scattered across multiple blocks. This, in turn, means that the performance of the data store is degraded.

따라서 가비지 컬렉션(Garbage Collection)을 통해, 기존 데이터의 사본이므로 제거되어야 할, 유효하지 않은 데이터들을 제거하고, 여러 위치에 흩어져 있는 유효한 데이터들을 병합해야 한다. 이는 곧 유효한 데이터들을 이동시키는 비용이 발생함을 의미한다. 유효한 데이터들이 많이 흩어져 있을 수록 가비지 컬렉션 성능이 낮을 것임은 자명하다.Therefore, through garbage collection, you need to remove invalid data that needs to be removed because it is a copy of existing data, and merge the valid data scattered in several locations. This means that there is a cost of moving valid data. Obviously, the more scattered valid data, the lower the garbage collection performance.

특히, 최근 비휘발성 메모리인 플래시 메모리를 사용한 데이터 저장소에 대한 관심이 커지고 있는데, 플래시 메모리는 기록되어 있는 데이터를 수정하기 위해서는 블럭 단위로 삭제한 후 재기록해야 한다는 제약을 가지고 있기 때문에, 더욱 큰 문제가 된다. 따라서 효과적으로 데이터 중복 저장을 방지할 수 있는 공유 데이터 저장소 관리 방법이 필요하다.In particular, there is a growing interest in data storage using flash memory, which is a non-volatile memory. Since the flash memory has a limitation that the data must be deleted and rewritten in units of blocks in order to modify the recorded data, there is a bigger problem. do. Therefore, there is a need for a shared data storage management method that can effectively prevent data redundancy.

이와 관련하여 미국공개특허 제US2009-0235022호("APPARATUS AND METHOD TO SELECT A DEDUPLICATION PROTOCOL FOR A DATA STORAGE LIBRARY")에는 RAID 어레이로 구성된 복수의 데이터 저장소 기기에 대해 디듀플리케이션 프로토콜을 선택하는 구성이 개시되어 있다.In this regard, US Patent Publication No. US2009-0235022 ("APPARATUS AND METHOD TO SELECT A DEDUPLICATION PROTOCOL FOR A DATA STORAGE LIBRARY") discloses a configuration for selecting a deduplication protocol for a plurality of data storage devices configured in a RAID array. .

또한, 미국공개특허 제US2009-0177855호("BACKING UP A DE-DUPLICATED COMPUTER FILE-SYSTEM OF A COMPUTER SYSTEM")에는 디듀플리케이트된 컴퓨터 파일 시스템을 백업하는 구성이 개시되어 있다.In addition, U.S. Patent Publication No. US2009-0177855 ("BACKING UP A DE-DUPLICATED COMPUTER FILE-SYSTEM OF A COMPUTER SYSTEM") discloses a configuration for backing up a deduplication computer file system.

본 발명은 전술한 데이터 저장소에서의 데이터 중복 문제를 해결하기 위한 것으로서, 그 목적은 효율적으로 공유 데이터의 유일성을 보장하는 데이터 저장소 관리 장치 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made to solve the above-mentioned data redundancy problem in data storage, and an object thereof is to provide an apparatus and method for managing data storage efficiently ensuring uniqueness of shared data.

상기와 같은 목적을 달성하기 위한 본 발명의 제 1 측면에 따른 공유 데이터 저장소를 관리하는 방법은 (a) 쓰기 요청된 데이터를 하나 이상의 데이터 조각으로 분할하는 단계; (b) 상기 분할된 각 데이터 조각을 제 1차 중복 검사를 통해 사본 없음과 사본 존재 가능으로 분류한 후, 상기 분류된 데이터 조각을 각각 상기 공유 데이터 저장소의 해당 구획에 저장하는 단계; (c) 상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 제 2차 중복 검사를 통해, 상기 (b) 단계에서 사본 존재 가능으로 분류된 데이터 조각 중에서 사본이 존재하는 데이터 조각을 선별하는 단계; 및 (d) 상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 상기 (c) 단계에서 상기 사본이 존재하는 것으로 확인된 데이터 조각을 제거하는 단계를 포함하되, 상기 제 1차 중복 검사에 사용되는 해시 방법은 상기 제 2차 중복 검사에 사용되는 해시 방법보다 충돌 확률이 높지만 해시 값 생성 속도가 빠른 것을 특징으로 한다.According to a first aspect of the present invention, there is provided a method of managing a shared data store, comprising: (a) dividing a write requested data into one or more pieces of data; (b) classifying each of the divided pieces of data as no copy and existence of a copy through a first redundancy check, and storing the sorted data pieces in a corresponding section of the shared data store, respectively; (c) when there is no read or write request for the shared data store, screening data fragments having a copy among the data fragments classified as copy existence in step (b) through a second redundancy check; ; And (d) when there is no read or write request to the shared data store, removing the piece of data identified in step (c) that the copy exists, wherein the first duplicate check is used. The hash method is characterized in that the collision probability is higher than the hash method used in the second redundancy check, but the hash value generation speed is faster.

상기와 같은 목적을 달성하기 위한 본 발명의 제 2 측면에 따른 플래시 메모리 가비지 컬렉션 방법은 (a) 유일한 데이터 페이지와 사본이 있을 가능성이 큰 데이터 페이지를 서로 다른 구획에 나누어 저장하는 단계; (b) 상기 사본이 있을 가능성이 큰 데이터 페이지 중에서 사본이 있는 데이터 페이지를 가비지 컬렉션 대상으로 설정하는 단계; 및 (c) 가비지 컬렉션을 수행하는 단계를 포함하되, 상기 (a) 단계는 제 1차 해시를 통해 상기 유일한 데이터 페이지를 선별하고, 상기 (b) 단계는 제 2차 해시를 통해 상기 사본이 있는 데이터 페이지를 선별하며, 상기 제 1차 해시는 상기 제 2차 해시보다 충돌 확률이 높지만 해시 값 생성 속도가 빠른 것을 특징으로 한다.The flash memory garbage collection method according to the second aspect of the present invention for achieving the above object comprises the steps of: (a) dividing and storing a data page that is likely to have a unique data page and a copy in different partitions; (b) setting a data page with a copy among the data pages that are likely to have a copy as a garbage collection target; And (c) performing garbage collection, wherein step (a) selects the unique data page via a first hash, and step (b) includes the copy via a second hash. Data pages are selected and the first hash has a higher probability of collision than the second hash but a faster hash value generation rate.

상기와 같은 목적을 달성하기 위한 본 발명의 제 3 측면에 따른 공유 데이터 저장소 관리 장치는, 상기 공유 데이터 저장소에 대한 접근 요청을 수신하고, 상기 공유 데이터 저장소를 제어하여 상기 접근 요청을 수행하는 저장소 제어부; 가비지 컬렉션(Garbage Collection)을 수행하여 상기 공유 데이터 저장소에 저장된 데이터 조각의 유효성을 보장하는 데이터 유효성 관리부; 상기 공유 데이터 저장소에 저장되어 있는 기존 데이터 조각들에 대해 다 대 일로 대응되는 키를 저장하고 있어, 상기 키가 검색되지 않는 데이터 조각은 상기 공유 데이터 저장소에 존재하지 않음을 보장하는 제 1 해시 테이블; 상기 공유 데이터 저장소에 저장되어 있는 기존 데이터 조각들에 대해 일 대 일로 대응되는 키를 저장하고 있어, 상기 키로 상기 기존 데이터 조각을 식별하는 제 2 해시 테이블; 및 상기 공유 데이터 저장소 제어부가 쓰기 요청된 데이터 조각을 저장하기 전에, 상기 제 1 해시 테이블을 참조하여, 상기 쓰기 요청된 데이터 조각 중 상기 기존 데이터 조각과 중복 가능성이 있는 데이터 조각을 선별하고, 상기 데이터 유효성 관리부가 가비지 컬렉션을 수행하기 전에, 상기 제 2 해시 테이블을 참조하여, 상기 선별된 데이터 조각 중 상기 기존 데이터 조각과 중복된 데이터를 식별하여, 상기 중복된 데이터를 상기 데이터 유효성 관리부에 의해 제거되어야 할 조각으로 설정함으로써, 상기 공유 데이터 저장소에 저장된 데이터 조각의 유일성을 보장하는 데이터 유일성 관리부를 포함하되, 상기 공유 데이터 저장소 제어부는 상기 데이터 유일성 관리부에 의해 상기 중복 가능성이 있는 데이터로 선별된 데이터 조각을 독립된 구획에 저장하는 것을 특징으로 한다.The shared data storage management apparatus according to the third aspect of the present invention for achieving the above object, the storage control unit for receiving an access request to the shared data storage, and controls the shared data storage to perform the access request ; A data validity management unit for performing a garbage collection to ensure the validity of data fragments stored in the shared data storage; A first hash table for storing a key corresponding to a plurality of existing data pieces stored in the shared data store, to ensure that the data piece for which the key is not retrieved does not exist in the shared data store; A second hash table for storing one-to-one corresponding keys with respect to existing pieces of data stored in the shared data store, and identifying the existing pieces of data with the key; And before the shared data storage controller stores the write requested data fragment, the data fragment having a possibility of overlapping with the existing data fragment among the write requested data fragments is selected with reference to the first hash table, and the data Before the validity management unit performs garbage collection, the duplicated data should be removed by the data validity management unit by identifying the duplicated data with the existing data fragment among the selected data fragments with reference to the second hash table. And a data uniqueness management unit that ensures uniqueness of the data pieces stored in the shared data store by setting the pieces to be divided into pieces, wherein the shared data store control unit selects the data pieces selected by the data uniqueness management unit as the potentially redundant data pieces. Me on a separate block It is characterized by longevity.

본 발명은 공유 데이터의 유일성을 보장하는 데이터 저장소 관리 장치 및 방법에 있어, 데이터 저장시 처리 지연을 줄이는 효과를 얻는다.The present invention achieves the effect of reducing the processing delay in data storage in the data storage management apparatus and method for ensuring the uniqueness of shared data.

또한, 중복 데이터 제거를 위한 유효한 데이터를 복사해야 하는 필요가 감소하므로 가비지 컬렉션 성능이 향상된다.It also improves garbage collection performance by reducing the need to copy valid data for redundant data removal.

도 1은 본 발명에 따른 데이터 저장소 관리 장치의 구조를 도시함.
도 2, 3, 4는 본 발명에 따른 데이터 저장소 관리 방법의 흐름을 도시함.
도 5는 종래 기술에 따른 데이터 저장소 관리 방법의 실시예를 도시함.
도 6은 본 발명에 따른 데이터 저장소 관리 방법의 실시예를 도시함.
1 illustrates a structure of a data storage management apparatus according to the present invention.
2, 3 and 4 illustrate the flow of a data storage management method according to the present invention.
5 illustrates an embodiment of a data storage management method according to the prior art.
6 illustrates an embodiment of a data store management method in accordance with the present invention.

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

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

도 1은 본 발명에 따른 데이터 저장소 관리 장치(10)를 나타낸 블록도이다.1 is a block diagram showing a data storage management apparatus 10 according to the present invention.

먼저 도 1을 참조하면, 본 발명에 따른 데이터 저장소 관리 장치(10)는 저장소 제어부(100), 데이터 유일성 관리부(200), 데이터 유효성 관리부(300), 제 1 해시 테이블(400), 및 제 2 해시 테이블(500)을 포함한다.First, referring to FIG. 1, the data storage management apparatus 10 according to the present invention may include a storage controller 100, a data uniqueness manager 200, a data validity manager 300, a first hash table 400, and a second. A hash table 500.

저장소 제어부(100)는 하나 이상의 장치(30)에 의해 공유되는 데이터 저장소(20)에 대한 데이터 입출력을 담당한다. 데이터 저장소(20)는 하나 이상의 기기에 분산 배치될 수 있는 하나 이상의 저장소로 구성될 수 있다. 바람직한 실시예에서 데이터 저장소(20)는 플래시 메모리 또는 플래시 메모리를 사용한 저장 매체며, 고정 크기를 갖는 페이지 단위로 나누어져 관리된다. 즉, 데이터가 여러 개의 페이지로 분할되어 저장된다.The storage controller 100 is responsible for data input and output for the data storage 20 shared by one or more devices 30. Data store 20 may be comprised of one or more stores that may be distributed across one or more devices. In a preferred embodiment, the data store 20 is a flash memory or a storage medium using the flash memory, and is divided and managed in units of pages having a fixed size. That is, data is divided into several pages and stored.

데이터 유효성 관리부(300)는 저장소(20)에 대해 가비지 컬렉션을 수행한다. 즉, 유효하지 않은 참조를 제거하고 여러 위치에 흩어져 저장된 데이터 조각들을 병합하여 저장소(20)의 성능 저하를 막는다. 특히, 플래시 메모리의 경우, 저장된 데이터를 변경하기 위해서는 해당 블럭 전체를 삭제한 후 다시 기록해야 하기 때문에 논리적 주소를 사용하여 실제 물리적 주소에 매핑하여 접근한다. 따라서, 매핑 관계가 없는 상태로 쓰이지 않고 있는 유효하지 않은 페이지들을 다시 비어 있는 페이지로 만들어주는 가비지 컬렉션이 더욱 중요하다.The data validity management unit 300 performs garbage collection on the storage 20. That is, by removing invalid references and merging pieces of stored data scattered in various locations, the performance of the storage 20 is prevented. In particular, in the case of flash memory, in order to change the stored data, the entire block must be deleted and rewritten, so that the logical address is used to map to the actual physical address. Therefore, garbage collection, which makes invalid pages that are not used without a mapping relationship, become empty pages, is more important.

한편, 데이터 유일성 관리부(200)는 데이터 저장소(20)를 효과적으로 공유하기 위해 데이터가 중복 저장되지 않도록 관리한다. 예를 들어, 기기 X와 기기 Y가 데이터 저장소(20)의 다른 위치에 저장된 A와 A'라는 파일을 각각 사용하고 있지만 실제로는 A와 A'가 동일한 파일이라면, 데이터 저장소 관리 장치(10)는 A의 사본인 A'를 제거하고, 기기 X와 기기 Y가 A를 공유하도록 공유 정보를 설정한다. 이때, 본 발명에 따른 데이터 저장소 관리 장치(10)의 데이터 유일성 관리부(200)는 파일 단위가 아닌, 데이터 조각 단위(예: 페이지)로 유일성을 보장하므로, 데이터 저장소(20)를 더욱 효과적으로 관리할 수 있다. On the other hand, the data uniqueness management unit 200 manages the data is not redundantly stored in order to effectively share the data storage 20. For example, if the device X and the device Y each use a file A and A 'stored in different locations of the data storage 20, but in reality A and A' are the same file, the data storage management device 10 Remove A ', which is a copy of A, and set the sharing information so that device X and device Y share A. In this case, the data uniqueness management unit 200 of the data storage management apparatus 10 according to the present invention guarantees uniqueness in units of data fragments (for example, pages), not in file units, thereby more effectively managing the data store 20. Can be.

구체적으로, 데이터 유일성 관리부(200)는 저장소 제어부(100)가 쓰기 요청된 데이터 조각을 데이터 저장소(20)에 저장하기 전에, 1차 중복 검사를 실시하여 기존에 저장되어 있는 데이터 조각과 중복되지 않음이 확실한 데이터 조각과 기존에 저장되어 있는 데이터 조각의 사본일 가능성이 있는 데이터 조각을 분류하여, 저장소 제어부(100)가 이 두 부류의 데이터 조각을 각각 별도의 구획에 저장할 수 있게 한다. 데이터 저장소(20)가 유휴 상태에 있을 때, 즉, 데이터 저장소(20)에 접근 요청이 없을 때, 데이터 유일성 관리부(200)는 2차 중복 검사를 실시하여, 기존에 저장되어 있는 데이터 조각의 사본일 가능성이 있는 것으로 분류되어 저장된 데이터 조각들 중에서, 실제로 기존 데이터 조각과 중복된 데이터 조각을 골라낸다. 이러한 데이터 조각들에 대해 공유 정보를 설정한 후, 유효하지 않은 데이터 조각으로 설정하면, 데이터 저장소(20)가 유휴 상태에 있을 때 가비지 컬렉션을 수행하는 데이터 유효성 관리부(300)에 의해 이러한 유효하지 않은 참조가 제거된다.In detail, the data uniqueness management unit 200 performs a primary redundancy check before the storage control unit 100 stores the write requested data fragment in the data storage 20 so as not to overlap with the previously stored data fragment. This distinct data fragment and the data fragment that may be a copy of the previously stored data fragment are classified so that the storage control unit 100 can store these two kinds of data fragments in separate compartments. When the data store 20 is in an idle state, that is, when there is no request for access to the data store 20, the data uniqueness management unit 200 performs a second redundancy check to copy a previously stored piece of data. Among the pieces of stored data that are classified as likely, they actually pick out the pieces of data that overlap with the existing pieces of data. If the shared information is set for these pieces of data and then set to invalid data pieces, this invalidation is performed by the data validity management unit 300 performing garbage collection when the data store 20 is idle. The reference is removed.

이러한 방식으로, 본 발명에 따른 데이터 저장소 관리 장치(10)는 데이터 저장소(20)의 성능 저하를 줄일 수 있다. 전술한 바와 같이, 쓰기 요청을 수신할 때마다 사본 존재 여부를 확인하여 사본이 없는 데이터 조각만 저장하는 종래 기술은 사본 존재 여부 확인에 따른 처리 지연 때문에 성능이 낮아지는 문제를 갖고 있다. 이 문제를 해결하기 위해 제안된, 쓰기 요청 수신시에는 모두 저장하고, 추후 유휴 상태에 있을 때 중복되는 데이터를 제거하는 종래 기술인 경우에는, 사본이 있는 데이터와 사본이 없는 데이터 조각이 한 블럭 내에 섞여 저장되므로, 결국 가비지 컬렉션 수행시 유효한 데이터 조각과 유효하지 않은 데이터 조각이 한 블럭 안에 섞여 있게 되어, 유효한 데이터 조각을 다른 블럭으로 이동, 병합하는 비용이 발생하므로, 가비지 컬렉션 성능이 낮아진다는 문제가 있다. 이는 특히, 데이터 저장소(20)가 플래시 메모리 또는 플래시 메모리를 사용한 것일 때 문제가 된다.In this way, the data storage management apparatus 10 according to the present invention can reduce the performance degradation of the data storage 20. As described above, the conventional technique of checking whether a copy exists every time a write request is received and storing only a piece of data without a copy has a problem of degrading performance due to a processing delay caused by copy existence. To solve this problem, the conventional technique of storing all upon receipt of a write request and eliminating duplicate data when it is idle later combines the data with a copy with the data without a copy in one block. Since garbage collection is performed, valid and invalid data fragments are mixed in one block, resulting in a cost of moving and merging valid data fragments to another block, thereby reducing garbage collection performance. . This is especially a problem when the data store 20 uses flash memory or flash memory.

따라서, 본 발명에 따른 데이터 저장소 관리 장치(10)는 이러한 문제를 해결하기 위해, 쓰기 요청 수신시에는 연산 속도가 빠른 1차 중복 검사를 실시하고, 유휴 상태에 있을 때는 정확도가 높은 2차 중복 검사를 실시한다. 1차 중복 검사는 속도가 빠르므로, 저장시의 처리 지연을 줄일 수 있고, 1차 중복 검사를 통해 사본이 없는 것이 확실한 데이터 조각을 따로 저장함으로써, 가비지 컬렉션 수행시 이러한 조각들을 이동시키지 않아도 되므로 가비지 컬렉션 성능도 향상된다. 또한, 속도가 빠른 1차 중복 검사에서 걸러진 사본이 없는 것이 확실한 데이터 조각에 대해서는 2차 중복 검사를 수행하지 않으므로, 중복 검사를 두번 수행하는 데 따른 자원 소비 증가도 크지 않다.Therefore, in order to solve this problem, the data storage management apparatus 10 according to the present invention performs a first redundancy check with a high computational speed when a write request is received, and has a high accuracy second redundancy check when in an idle state. Is carried out. First-order redundancy checks are fast, reducing processing delays during storage, and first-order redundancy checks store separate pieces of data that are guaranteed to have no copies, thus eliminating the need to move these pieces during garbage collection. Performance is also improved. In addition, the fast primary redundancy check does not perform a second redundancy check on data fragments that are guaranteed to have no filtered copies, so the resource consumption increase of two duplicate checks is not significant.

이러한 1차 중복 검사 및 2차 중복 검사를 수행하기 위해, 데이터 저장소 관리 장치(10)는 제 1 해시 테이블(400) 및 제 2 해시 테이블(500)을 포함한다. 각각 기존 데이터 조각들의 해시 값을 저장하고 있다. In order to perform such primary redundancy check and secondary redundancy check, the data storage management apparatus 10 includes a first hash table 400 and a second hash table 500. Each stores a hash of the existing pieces of data.

이때, 제 2 해시 테이블(500)은 충돌이 거의 없는 해시 방법(예: SHA-1, MD5 등)을 사용하므로, 해시 값을 통해 각 데이터 조각들을 식별할 수 있다. 즉, 중복 검사를 수행할 대상 데이터 조각을 같은 해시 방법으로 해시한 값으로 검색하여 중복되는 데이터 조각이 어느 것인지 식별해낼 수 있으며, 검색이 되지 않으면 사본이 없는 것이 확실하다. 용량이 큰 실제 데이터 조각을 직접 비교하지 않고도 해시 값 만으로 동일한 데이터 조각을 식별해낼 수 있다는 장점이 있지만, 연산 시간이 길다는 단점이 있다.In this case, since the second hash table 500 uses a hash method having little collision (eg, SHA-1, MD5, etc.), each piece of data may be identified through a hash value. In other words, you can identify which data fragments are duplicated by searching for the pieces of data to be duplicated by hashing them using the same hash method. The advantage is that the same data pieces can be identified only by hash values without directly comparing large pieces of actual data, but the disadvantage is that the computation time is long.

반면, 제 1 해시 테이블(400)은 연산 속도는 빠르지만 충돌 확률이 높은 해시 방법(예: 32비트 CRC)을 사용하므로, 해시 값을 통해 각 데이터 조각을 식별할 수는 없다. 예를 들어, 32비트 길이의 키 값을 생성하는 해시 연산의 경우, 생일 패러독스(Birthday Paradox) 이론에 의해 77,000개의 키 값을 생성할 때 50%의 확률로 충돌이 일어난다. 하지만 키 값이 존재하지 않으면 사본도 존재하지 않음은 확인할 수 있다. 즉, 제 1 해시 테이블(400)을 사용하면, 적은 시간 비용으로 중복되는 데이터 조각이 저장되어 있지 않은 것이 확실한 데이터 조각(예: 동일한 데이터 조각이 다수 개 있을 때 그중 가장 먼저 식별된 데이터 조각)을 구분해낼 수 있으며, 그 외의 데이터 조각들은 동일한 데이터 조각이 이미 데이터 저장소(20)에 존재할 가능성이 매우 큰 것으로 판단할 수 있다.On the other hand, since the first hash table 400 uses a hash method (eg, 32-bit CRC) that has a high computational speed but has a high probability of collision, it is not possible to identify each piece of data through the hash value. For example, a hash operation that produces a 32-bit long key value has a 50% chance of collision when generating 77,000 key values by the Birthday Paradox theory. However, if the key value does not exist, you can see that no copy exists. That is, using the first hash table 400, it is possible to generate a data piece that is sure that no duplicate pieces of data are stored (e.g., the earliest identified data piece when there are a large number of identical pieces of data) at a low cost. Other data fragments can be determined as having a very high likelihood that the same data fragment already exists in the data store 20.

즉, 제 1 해시 테이블(400)을 사용하는 1차 중복 검사는 제 2 해시 테이블(500)을 사용하는 2차 중복 검사에 사용되는 해시 방법보다 충돌 확률이 높지만 연산 속도가 빠른 해시 방법을 사용하며, 대부분의 경우 적은 수의 비트를 이용하여 수행된다.That is, the primary redundancy check using the first hash table 400 uses a hash method with a higher probability of collision than the hash method used for the secondary redundancy check using the second hash table 500, but with a higher computational speed. In most cases, this is done using fewer bits.

다시 말하면, 제 1 해시 테이블(400)은 데이터 저장소(20)에 저장되어 있는 기존 데이터 조각들에 대해 다 대 일로 대응되는 키를 저장하고 있어, 키가 검색되지 않는 데이터 조각은 저장소(20)에 존재하지 않음이 보장되며, 제 2 해시 테이블(500)은 데이터 저장소(20)에 저장되어 있는 기존 데이터 조각들에 대해 일 대 일로 대응되는 키를 저장하고 있어, 키를 통해 상기 기존 데이터 조각을 식별하는 것이 가능하다.In other words, the first hash table 400 stores the keys corresponding to many to one with respect to the existing pieces of data stored in the data store 20, so that the data pieces for which no key is retrieved are stored in the store 20. It is guaranteed that it does not exist, the second hash table 500 stores a one-to-one corresponding key to the existing pieces of data stored in the data store 20, thereby identifying the existing piece of data through the key It is possible to.

도 2, 3, 4는 본 발명에 따른 데이터 저장소 관리 방법의 흐름을 도시하고 있다.2, 3 and 4 illustrate the flow of a data storage management method according to the present invention.

먼저 본 발명에 따른 데이터 저장소 관리 방법의 전체 흐름을 도시하고 있는 도 2를 참조하면, 쓰기 요청을 수신하였을 때는(S310), 요청된 데이터를 조각으로 나눈 후(S320), 1차 중복 검사를 통해 각 조각을 사본 없음 구획과 사본 존재 가능 구획에 나누어 저장하였다가(S330), 데이터 저장소(20)가 유휴 상태에 있을 때(S340), 2차 중복 검사를 통해 사본 존재 가능으로 분류된 조각 중 사본 존재 조각을 선별하고(S350), 가비지 컬렉션을 수행한다(S360). 이때, 상기 2차 중복 검사 단계(S350)와 가비지 컬렉션 단계(S360)는 서로 독립적으로 수행될 수 있다. 즉, 유휴 상태에 있을 때, 2차 중복 검사(S350)를 거치지 않은 조각들이 있다면 2차 중복 검사 단계(S350)를 수행하고, 가비지 컬렉션(S360)을 거치지 않은 조각들이 있다면 가비지 컬렉션 단계(S360)를 수행한다(실시예를 도시한 도 6 참조).First, referring to FIG. 2, which shows the overall flow of the data storage management method according to the present invention, when receiving a write request (S310), after dividing the requested data into pieces (S320), a primary redundancy check is performed. Each piece is stored in a copyless partition and a copy existence partition (S330), and when the data storage 20 is in an idle state (S340), a copy of the fragments classified as copy existence through a second redundancy check The present piece is selected (S350) and garbage collection is performed (S360). In this case, the second redundancy check step S350 and the garbage collection step S360 may be independently performed. That is, when in the idle state, if there are fragments that have not undergone the secondary redundancy check (S350), the secondary redundancy check step (S350) is performed, and if there are pieces that do not undergo garbage collection (S360), the garbage collection step (S360). (See FIG. 6 for an embodiment).

도 3은 상기 1차 중복 검사 단계(S330)를 구체적으로 도시하고 있다.3 specifically illustrates the first redundancy check step (S330).

먼저 각 데이터 조각을 1차 해시한다(S410). 이 해시 값과 동일한 키가 제 1 해시 테이블(400)에 존재하는지 확인하고(S420), 키가 검색이 되는 데이터 조각은 사본 존재 가능 구획에 저장하고(S430), 일치하는 키가 없는 데이터 조각은 사본 없음 구획에 저장한다(S440). 위 단계들을 모든 쓰기 요청된 데이터 조각이 저장 완료될 때까지 수행한다(S450).First, each data piece is first hashed (S410). Check whether a key equal to this hash value exists in the first hash table 400 (S420), and store the data fragment from which the key is retrieved in a copy existence partition (S430), and the data fragment without a matching key The copy is stored in the compartment (S440). The above steps are performed until all write-requested data fragments are stored (S450).

도 4는 상기 2차 중복 검사 단계(S350)를 구체적으로 도시하고 있다.4 illustrates the second redundancy check step S350 in detail.

먼저 각 확인 대상 데이터 조각, 즉 사본 존재 가능 구획에 저장되어 있는 데이터 조각을 2차 해시한다(S510). 이 해시 값과 동일한 키가 제 2 해시 테이블(500)에 존재하는지 확인하였을 때(S520), 키가 검색이 되는 데이터 조각은 사본이 존재하는 데이터 조각이다. 해당 키를 통해 기존에 저장되어 있는 이 데이터와 중복되는 데이터 조각에 대해 공유 정보를 설정하고(S530), 이 데이터 조각은 유효하지 않은 데이터 조각으로 설정하여 가비지 컬렉션 대상으로 만든다(S540). 위 단계들을 모든 확인 대상 데이터 조각이 처리 완료될 때까지 수행한다(S550).First, each piece of data to be checked, that is, the data pieces stored in the copy existence partition, is hashed second (S510). When it is checked whether a key equal to this hash value exists in the second hash table 500 (S520), the data fragment for which the key is searched is a data fragment for which a copy exists. Shared information is set for a data fragment that is duplicated with the previously stored data through the corresponding key (S530), and the data fragment is set as an invalid data fragment to be garbage collected (S540). The above steps are performed until all pieces of data to be checked are processed (S550).

도 5는 종래 기술에 따른 데이터 저장소 관리 방법의 실시예를 도시하고 있고, 도 6은 본 발명에 따른 데이터 저장소 관리 방법의 실시예를 도시하고 있다.5 illustrates an embodiment of a data storage management method according to the prior art, and FIG. 6 illustrates an embodiment of a data storage management method according to the present invention.

먼저, 쓰기 요청된 데이터는 모두 저장한 후, 추후 분류하는 방식의 종래 기술의 실시예를 도시하고 있는 도 5를 보면, 쓰기 요청된 데이터 조각을 저장한 후, 유일한 데이터 조각과 중복되어 있는 데이터를 분류한 후, 및 가비지 컬렉션을 통해 유효하지 않은 데이터에 대한 참조를 없애고, 유효한 데이터 조각들을 병합한 후의 각 블럭의 모습이 도시되어 있다. 편의상 데이터 조각들은 고정 크기를 갖는 페이지로 도시하겠다.First, referring to FIG. 5, which illustrates an exemplary embodiment of the prior art in which all write requested data is stored and then classified, the data requested for storing the write requested data fragment and duplicated data with the only data fragment are stored. The appearance of each block after sorting and after eliminating references to invalid data through garbage collection and merging valid pieces of data is shown. For convenience, the data fragments are shown as pages with a fixed size.

여기에서, U는 사본 존재 여부 미확인 페이지, S는 사본 없음 페이지, D는 사본 존재 페이지(즉, 삭제 대상인 페이지), V는 데이터 유효성이 확인된 페이지, e는 빈 페이지를 나타낸다.Here, U is a copy non-confirmation page, S is a copy no page, D is a copy existence page (i.e., a page to be deleted), V is a data valid page, and e is a blank page.

저장 후를 나타내는 첫번째 도면을 보면, 데이터의 중복성을 확인하지 않고 저장하므로, 쓰기 요청된 데이터는 각 페이지 첫번째 블럭(블럭 0)부터 차례로 저장되어, 블럭 2의 두번째 페이지까지 저장되어 있고(U), 이후 페이지들은 아직 비어있다(e).In the first drawing showing after storage, since the data is stored without checking for redundancy, the data requested to be written is stored in order from the first block of each page (block 0), up to the second page of block 2 (U), Subsequent pages are still empty (e).

분류 후를 나타내는 두번째 도면을 보면, U 페이지들이 각각 S와 D로 분류되었다. 도시된 바와 같이, 종래 기술에서는 사본이 없는 유일한 페이지(S)와 기존에 사본이 존재하는 페이지(D)가 한 블럭에 섞여 있게 된다. 결국, D 페이지들은 유효하지 않은 페이지가 되어 제거 대상이 되고, S 페이지들을 유효한 페이지(V)가 된다.In the second figure, after sorting, the U pages are classified into S and D, respectively. As shown, in the prior art, the only page (S) without a copy and the page (D) with a copy existing in it are mixed in one block. As a result, the D pages become invalid pages to be removed, and the S pages become valid pages (V).

가비지 컬렉션 후를 나타내는 세번째 도면을 보면, 여러 블럭에 나뉘어져 있던 S 페이지들이 첫번째 블럭으로 이동, 병합되었다. 유효하지 않은 D 페이지들을 제거하고 나면, 데이터가 여러 블럭에 나뉘어 저장된 상태가 되므로 데이터의 저장소 성능이 낮아지기 때문이다.In the third drawing, after garbage collection, the S pages that were divided into blocks were moved and merged into the first block. After removing the invalid D pages, the data is stored in several blocks, which reduces the storage performance of the data.

이제 본 발명에 따른 데이터 저장소 관리 방법의 실시예를 도시하고 있는 도 6을 보자.Referring now to Figure 6, which shows an embodiment of a data store management method according to the present invention.

1차 검사를 수행하여 쓰기 요청된 데이터 조각을 저장한 후, 2차 검사 후, 및 가비지 컬렉션 후의 각 블럭의 모습이 도시되어 있다.Shown is the appearance of each block after performing a primary check to store a piece of write requested data, after a secondary check, and after garbage collection.

여기에서, 1S는 1차 검사에서 사본없음이 확인된 페이지, 1D는 1차 검사에서 사본 존재 가능으로 분류된 페이지, 2S는 2차 검사에서 사본없음 확인된 페이지, 2D는 2차 검사에서 사본 존재가 확인된 페이지(즉, 삭제 대상인 페이지), V는 데이터 유효성이 확인된 페이지, e는 빈 페이지를 나타낸다.Here, 1S is the page identified as no copy in the first scan, 1D is a page classified as possible to exist in the first scan, 2S is a page identified as copyless in the second scan, and 2D is a copy in the second scan. Is a confirmed page (i.e., a page to be deleted), V is a page for which data validity is confirmed, and e is a blank page.

1차 검사 후를 나타내는 첫번째 도면을 보면, 1S는 블럭0부터, 1D는 블럭1부터 저장되고 있다.In the first drawing showing after the first inspection, 1S is stored from block 0 and 1D is stored from block 1.

2차 검사 후를 나타내는 두번째 도면을 보면, 1D 중에서 2S와 2D가 다시 분류된다. 블럭0에 저장되어 있는 1S에 대해서는 2차 검사를 거칠 필요없이, 모두 V가 된다.Looking at the second drawing showing after the second inspection, 2S and 2D are again classified among 1D. 1S stored in block 0 is all V without needing to undergo secondary inspection.

가비지 컬렉션 후를 나타내는 세번째 도면을 보면, 종래 기술과 달리, 블럭0의 V 페이지들은 이동되지 않았음을 알 수 있다. 이미 같은 블럭에 모여있으므로 이동, 병합할 필요가 없는 것이다. 따라서 가비지 컬렉션 성능이 향상된다.Looking at the third drawing, after garbage collection, it can be seen that, unlike the prior art, the V pages of block 0 have not been moved. There is no need to move or merge because they are already in the same block. This improves garbage collection performance.

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

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

10: 데이터 저장소 관리 장치
100: 저장소 제어부
200: 데이터 유일성 관리부
300: 데이터 유효성 관리부
400: 제 1 해시 테이블
500: 제 2 해시 테이블
10: data storage management device
100: storage control unit
200: data uniqueness management unit
300: data validity management unit
400: first hash table
500: second hash table

Claims (14)

공유 데이터 저장소를 관리하는 방법에 있어서,
(a) 쓰기 요청된 데이터를 하나 이상의 데이터 조각으로 분할하는 단계;
(b) 상기 분할된 각 데이터 조각을 제 1 해시 테이블을 이용한 제 1차 중복 검사를 통해 사본 없음과 사본 존재 가능으로 분류한 후, 상기 분류된 데이터 조각을 각각 상기 공유 데이터 저장소의 해당 구획에 저장하는 단계;
(c) 상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 제 2 해시 테이블을 이용한 제 2차 중복 검사를 통해, 상기 (b) 단계에서 사본 존재 가능으로 분류된 데이터 조각 중에서 사본이 존재하는 데이터 조각을 선별하는 단계; 및
(d) 상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 상기 (c) 단계에서 상기 사본이 존재하는 것으로 확인된 데이터 조각을 제거하는 단계를 포함하되,
상기 제 1 해시 테이블은 상기 공유 데이터 저장소에 저장되어 있는 데이터 조각에 대하여 다 대 일로 대응하는 제 1 키를 저장하고,
상기 제 2 해시 테이블은 상기 공유 데이터 저장소에 저장되어 있는 데이터 조각에 대하여 일 대 일로 대응하는 제 2 키를 저장하며,
상기 제 1차 중복 검사에 사용되는 해시 방법은 상기 제 2차 중복 검사에 사용되는 해시 방법보다 충돌 확률이 높지만 해시 값 생성 속도가 빠른 것인 공유 데이터 저장소 관리 방법.
In how to manage a shared data store,
(a) dividing the write requested data into one or more pieces of data;
(b) classifying each of the divided pieces of data as a no copy and a possible copy after performing a first redundancy check using a first hash table, and storing the sorted data pieces in a corresponding section of the shared data store, respectively. Doing;
(c) when there is no read or write request for the shared data store, a second duplicated check using a second hash table, wherein a copy exists among the pieces of data classified as copy present in step (b) Selecting pieces of data; And
(d) when there is no read or write request to the shared data store, removing a piece of data identified in step (c) that the copy exists;
The first hash table stores a first-to-many first key corresponding to a piece of data stored in the shared data store.
The second hash table stores a second key corresponding one-to-one with respect to a piece of data stored in the shared data store,
The hash method used for the first redundancy check has a higher probability of collision than the hash method used for the second redundancy check, but a faster hash value generation method.
제 1 항에 있어서,
상기 공유 데이터 저장소는 하나 또는 다수의 저장소로 구성되며, 둘 이상의 기기에 분산 배치될 수 있는 것인 공유 데이터 저장소 관리 방법.
The method of claim 1,
The shared data store is composed of one or a plurality of storage, the shared data store management method that can be distributed to two or more devices.
제 1 항에 있어서,
상기 공유 데이터 저장소는 플래시 메모리 자체 또는 플래시 메모리를 사용한 저장 매체이며, 상기 데이터 조각은 고정 크기를 갖는 페이지 단위로 분할되는 것인 공유 데이터 저장소 관리 방법.
The method of claim 1,
The shared data storage is a flash memory itself or a storage medium using flash memory, and the data fragments are divided into page units having a fixed size.
제 1 항에 있어서,
상기 (b) 단계는
(b1) 상기 각 분할된 데이터 조각을 제 1차 해시하여, 상기 제 1 해시 테이블에 상기 제 1차 해시 결과와 일치하는 상기 제 1 키(key)가 존재하는지 검색하는 단계; 및
(b2) 상기 제 1 키가 존재하지 않는 데이터 조각은 사본 없음으로 분류하고, 상기 제 1 키가 존재하는 데이터 조각은 사본 존재 가능으로 분류하는 단계;를 포함하는 공유 데이터 저장소 관리 방법.
The method of claim 1,
The step (b)
(b1) first hashing each of the divided pieces of data, and searching for the existence of the first key in the first hash table that matches the first hash result; And
(b2) classifying a data piece without the first key as no copy and classifying the data piece with the first key as copy present.
제 1 항에 있어서,
상기 (c) 단계는
(c1) 상기 사본 존재 가능으로 분류된 데이터 조각을 제 2차 해시하여, 상기 제 2 해시 테이블에 상기 제 2차 해시 결과와 일치하는 상기 제 2 키가 존재하는지 검색하는 단계; 및
(c2) 상기 제 2 키가 존재하지 않는 데이터 조각은 사본 없음으로 확인하고, 상기 제 2 키가 존재하는 데이터 조각은 사본 존재함으로 확인하는 단계; 및
(c3) 상기 사본 존재함으로 확인된 데이터 조각에 대해 공유 정보를 갱신하고 가비지 컬렉션 대상으로 설정하는 단계;를 포함하는 공유 데이터 저장소 관리 방법.
The method of claim 1,
The step (c)
(c1) second hashing the piece of data classified as copy present and searching for the presence of the second key in the second hash table that matches the second hash result; And
(c2) confirming that the data fragment in which the second key does not exist is a copy, and confirming that the data fragment in which the second key exists is a copy; And
(c3) updating the shared information for the piece of data identified as the copy present and setting it as a garbage collection target.
제 1 항에 있어서,
상기 제 1차 중복 검사에 사용되는 해시 방법은 상기 제 2차 중복 검사에 사용되는 해시 방법보다 적은 수의 비트로 해시 값을 생성하는 것인 공유 데이터 저장소 관리 방법.
The method of claim 1,
The hash method used for the first redundancy check generates a hash value with fewer bits than the hash method used for the second redundancy check.
제 6 항에 있어서,
상기 제 1차 해시 방법은 16비트 또는 32비트 CRC이고, 상기 제 2차 해시 방법은 SHA-1 또는 MD5인 공유 데이터 저장소 관리 방법.
The method according to claim 6,
The primary hash method is a 16-bit or 32-bit CRC, and the secondary hash method is SHA-1 or MD5.
플래시 메모리 가비지 컬렉션 방법에 있어서,
(a) 유일한 데이터 페이지와 사본 존재 가능으로 판단된 데이터 페이지를 서로 다른 구획에 나누어 저장하는 단계;
(b) 상기 사본 존재 가능으로 판단된 데이터 페이지 중에서 사본이 있는 데이터 페이지를 가비지 컬렉션 대상으로 설정하는 단계; 및
(c) 가비지 컬렉션을 수행하는 단계를 포함하되,
상기 (a) 단계는 제 1 해시 테이블을 이용한 제 1차 해시를 통해 상기 유일한 데이터 페이지를 선별하고,
상기 (b) 단계는 제 2 해시 테이블을 이용한 제 2차 해시를 통해 상기 사본이 있는 데이터 페이지를 선별하며,
상기 제 1 해시 테이블은 상기 데이터 페이지에 대하여 다 대 일로 대응하는 제 1 키를 저장하고, 상기 제 1 키가 검색되지 않은 데이터 페이지를 상기 유일한 데이터 페이지로 선별하며,
상기 제 2 해시 테이블은 상기 데이터 페이지에 대하여 일 대 일로 대응되는 제 2 키를 저장하고, 상기 제 2 키에 기초하여 상기 사본이 있는 데이터 페이지를 선별하며,
상기 제 1차 해시는 상기 제 2차 해시보다 충돌 확률이 높지만 해시 값 생성 속도가 빠른 것인 가비지 컬렉션 방법.
In the flash memory garbage collection method,
(a) dividing and storing the only data page and the data page determined to exist in the copy into different partitions;
(b) setting a data page having a copy among the data pages determined to exist as a copy to be garbage collected; And
(c) performing garbage collection,
In step (a), the unique data page is selected through a first hash using a first hash table,
Step (b) selects the data page with the copy through a second hash using a second hash table,
The first hash table stores a first key corresponding to the data page many-to-one, selects data pages for which the first key is not retrieved as the only data page,
The second hash table stores a second key corresponding to the data page in a one-to-one manner, and selects a data page having the copy based on the second key;
And the first hash has a higher probability of collision than the second hash but a faster hash value generation rate.
제 8 항에 있어서,
상기 (b) 단계 및 또는 상기 (c) 단계는 상기 플래시 메모리가 유휴 상태에 있을 때 수행되는 것인 가비지 컬렉션 방법.
The method of claim 8,
(B) and / or (c) are performed when the flash memory is in an idle state.
공유 데이터 저장소 관리 장치에 있어서,
상기 공유 데이터 저장소에 대한 접근 요청을 수신하고, 상기 공유 데이터 저장소를 제어하여 상기 접근 요청을 수행하는 저장소 제어부;
가비지 컬렉션(Garbage Collection)을 수행하여 상기 공유 데이터 저장소에 저장된 데이터 조각의 유효성을 보장하는 데이터 유효성 관리부;
상기 공유 데이터 저장소에 저장되어 있는 기존 데이터 조각들에 대해 다 대 일로 대응되는 제 1 키를 저장하고 있어, 상기 제 1 키가 검색되지 않는 데이터 조각은 상기 공유 데이터 저장소에 존재하지 않음을 보장하는 제 1 해시 테이블;
상기 공유 데이터 저장소에 저장되어 있는 기존 데이터 조각들에 대해 일 대 일로 대응되는 제 2 키를 저장하고 있어, 상기 제 2 키로 상기 기존 데이터 조각을 식별하는 제 2 해시 테이블; 및
상기 저장소 제어부가 쓰기 요청된 데이터 조각을 저장하기 전에, 상기 제 1 해시 테이블을 참조하여, 상기 쓰기 요청된 데이터 조각 중 상기 기존 데이터 조각과 중복 가능성이 있는 데이터 조각을 선별하고,
상기 공유 데이터 저장소에 대한 읽기 또는 쓰기 요청이 없을 때, 상기 데이터 유효성 관리부가 가비지 컬렉션을 수행하기 전에, 상기 제 2 해시 테이블을 참조하여, 상기 선별된 데이터 조각 중 상기 기존 데이터 조각과 중복된 데이터를 식별하여, 상기 중복된 데이터를 상기 데이터 유효성 관리부에 의해 제거되어야 할 조각으로 설정함으로써, 상기 공유 데이터 저장소에 저장된 데이터 조각의 유일성을 보장하는 데이터 유일성 관리부를 포함하되,
상기 공유 데이터 저장소 제어부는 상기 데이터 유일성 관리부에 의해 상기 중복 가능성이 있는 데이터로 선별된 데이터 조각을 독립된 구획에 저장하는 것인 공유 데이터 저장소 관리 장치.
In the shared data storage management device,
A storage controller configured to receive an access request for the shared data store and to control the shared data store to perform the access request;
A data validity management unit for performing a garbage collection to ensure the validity of data fragments stored in the shared data storage;
Storing a first key corresponding to many to one with respect to the existing pieces of data stored in the shared data store, so as to ensure that the data piece for which the first key is not retrieved does not exist in the shared data store. 1 hash table;
A second hash table storing a second key corresponding to the existing data pieces stored in the shared data store in a one-to-one correspondence, and identifying the existing data pieces by the second key; And
Before the storage controller stores the write requested data fragment, the data fragment having a possibility of overlapping with the existing data fragment among the write requested data fragments is selected by referring to the first hash table,
When there is no read or write request for the shared data store, before the data validity management unit performs garbage collection, the data duplicated with the existing data fragment among the selected data fragments is referred to by referring to the second hash table. A data uniqueness management unit for identifying and setting the duplicated data into pieces to be removed by the data validity management unit, thereby ensuring uniqueness of the data pieces stored in the shared data store,
And the shared data storage control unit stores the data fragments selected by the data uniqueness management unit as the potentially redundant data in an independent section.
제 10 항에 있어서,
상기 공유 데이터 저장소는 하나 또는 다수의 저장소로 구성되며, 둘 이상의 기기에 분산 배치될 수 있는 것인 공유 데이터 저장소 관리 장치.
11. The method of claim 10,
The shared data storage is configured as one or a plurality of storage, the shared data storage management device that can be distributed in two or more devices.
제 10 항에 있어서,
상기 공유 데이터 저장소는 플래시 메모리 자체 또는 플래시 메모리를 사용한 저장 매체이며, 상기 데이터 조각은 고정 크기를 갖는 페이지 단위로 분할되는 것인 공유 데이터 저장소 관리 장치.
11. The method of claim 10,
The shared data storage is a flash memory itself or a storage medium using flash memory, and the data fragments are divided into page units having a fixed size.
제 10 항에 있어서,
상기 제 1 해시 테이블에 사용되는 해시 방법은 상기 제 2 해시 테이블에 사용되는 해시 방법보다 충돌 확률이 높지만 해시 값 생성 속도가 빠른 것인 공유 데이터 저장소 관리 장치.
11. The method of claim 10,
The hash method used for the first hash table has a higher probability of collision than the hash method used for the second hash table, but the hash value generation speed is faster.
제 10 항에 있어서,
상기 제 1 해시 테이블에 사용되는 해시 방법은 상기 제 2 해시 테이블에 사용되는 해시 방법보다 적은 수의 비트로 해시 값을 생성하는 것인 공유 데이터 저장소 관리 장치.
11. The method of claim 10,
The hash method used for the first hash table generates a hash value with fewer bits than the hash method used for the second hash table.
KR1020110142742A 2011-12-26 2011-12-26 Apparatus and method for managing shared data storage KR101341995B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020110142742A KR101341995B1 (en) 2011-12-26 2011-12-26 Apparatus and method for managing shared data storage

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020110142742A KR101341995B1 (en) 2011-12-26 2011-12-26 Apparatus and method for managing shared data storage

Publications (2)

Publication Number Publication Date
KR20130074605A KR20130074605A (en) 2013-07-04
KR101341995B1 true KR101341995B1 (en) 2013-12-16

Family

ID=48988660

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110142742A KR101341995B1 (en) 2011-12-26 2011-12-26 Apparatus and method for managing shared data storage

Country Status (1)

Country Link
KR (1) KR101341995B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6254293B2 (en) * 2014-09-15 2017-12-27 華為技術有限公司Huawei Technologies Co.,Ltd. Data deduplication method and storage array

Also Published As

Publication number Publication date
KR20130074605A (en) 2013-07-04

Similar Documents

Publication Publication Date Title
US11650976B2 (en) Pattern matching using hash tables in storage system
US10761758B2 (en) Data aware deduplication object storage (DADOS)
US10031675B1 (en) Method and system for tiering data
CN106933503B (en) Consistent transition from asynchronous to synchronous replication in hash-based storage systems
US10459632B1 (en) Method and system for automatic replication data verification and recovery
JP5539683B2 (en) Scalable secondary storage system and method
US8200923B1 (en) Method and apparatus for block level data de-duplication
CN105843551B (en) Data integrity and loss resistance in high performance and large capacity storage deduplication
US8639669B1 (en) Method and apparatus for determining optimal chunk sizes of a deduplicated storage system
US8712963B1 (en) Method and apparatus for content-aware resizing of data chunks for replication
US8799238B2 (en) Data deduplication
US10127242B1 (en) Data de-duplication for information storage systems
US20140297603A1 (en) Method and apparatus for deduplication of replicated file
US10254964B1 (en) Managing mapping information in a storage system
WO2015195936A1 (en) Range-based data deduplication
US10261946B2 (en) Rebalancing distributed metadata
US10242021B2 (en) Storing data deduplication metadata in a grid of processors
CN105117351A (en) Method and apparatus for writing data into cache
CN109407985B (en) Data management method and related device
US10515055B2 (en) Mapping logical identifiers using multiple identifier spaces
US10255288B2 (en) Distributed data deduplication in a grid of processors
KR101252375B1 (en) Mapping management system and method for enhancing performance of deduplication in storage apparatus
KR101341995B1 (en) Apparatus and method for managing shared data storage
US20100077283A1 (en) Apparatus to manage data stability and methods of storing and recovering data
US20200311030A1 (en) Optimizing file system defrag for deduplicated block storage

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: 20160928

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee