KR101388337B1 - 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치 - Google Patents

저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치 Download PDF

Info

Publication number
KR101388337B1
KR101388337B1 KR1020120091409A KR20120091409A KR101388337B1 KR 101388337 B1 KR101388337 B1 KR 101388337B1 KR 1020120091409 A KR1020120091409 A KR 1020120091409A KR 20120091409 A KR20120091409 A KR 20120091409A KR 101388337 B1 KR101388337 B1 KR 101388337B1
Authority
KR
South Korea
Prior art keywords
grouping
deduplication
samples
sample
extracted
Prior art date
Application number
KR1020120091409A
Other languages
English (en)
Other versions
KR20130077759A (ko
Inventor
강수용
원유집
차재혁
최종무
윤성로
김종화
손익준
이상엽
Original Assignee
한양대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한양대학교 산학협력단 filed Critical 한양대학교 산학협력단
Priority to PCT/KR2012/010697 priority Critical patent/WO2013100437A1/ko
Priority to US14/366,775 priority patent/US9501239B2/en
Publication of KR20130077759A publication Critical patent/KR20130077759A/ko
Application granted granted Critical
Publication of KR101388337B1 publication Critical patent/KR101388337B1/ko

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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • G06F3/0641De-duplication techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1453Management of the data involved in backup or backup restore using de-duplication of the data
    • 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/0608Saving storage space on storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory

Landscapes

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

Abstract

하드 디스크, SSD(Solid State Disk) 등의 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 그 장치에 관한 것이다. 중복제거 기술의 성능 향상을 위한 그룹핑 방법에 있어서, 메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 단계; 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계; 및 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 단계를 포함하는 그룹핑 방법이 제공될 수 있다.

Description

저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치{GROUPING METHOD AND DEVICE FOR ENHANCING PERFORMANCE OF DEDUPLICATION IN STORAGE SYSTEMS}
하드 디스크, SSD(Solid State Disk) 등의 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 그 장치에 관한 것이다.
중복제거 기술은 중복 탐지와 중복 데이터 매핑 테이블 관리로 구성된다. 중복 탐지는 현재 저장이 요청된 데이터가 기존에 저장된 데이터와 동일한지 파악하는 방법으로 핑거 프린트(Fingerprint) 방법을 사용한다. 구체적으로 저장된 데이터 블록들에 대한 해시 값(예를 들어 SHA-1 또는 MD5)를 계산하고, 저장이 요청된 데이터 블록의 해시 값을 계산하여 비교하고 동일한 경우 중복된 것으로 탐지하는 것이다. 중복이 탐지되면 실제 데이터를 저장 장치에 쓰지 않고, 이미 저장된 데이터와 중복되었다는 정보를 매핑 테이블에 기록한다.
그러나 중복된 데이터를 탐지하는데 쓰이는 SHA-1 해시 값을 구하는 과정에서 매우 많은 성능 부하가 나타난다. 4Kb에서 SHA-1 해시 값을 구하는데 드는 시간은 도 1에 도시되어 있다.
일례에 있어서, 도 1은 마이크로 컨트롤러에서의 SHA-1 성능 부하를 나타낸다.
Micro Blaze에서는 약 6212 usec(Micro sec.), ARM7에서는 5772 usec, ARM9에서는 813 usec, 하드웨어로 동작 시에는 80 usec가 걸린다. 많은 SSD는 ARM7 기반으로 동작하는데, MLC 타입의 플래시 메모리에서 쓰기 속도는 약 1400 usec 정도 걸리는데 비해 ARM7에서는 SHA-1 해시 값을 계산하는데 걸리는 시간이 5772 usec로 배로 걸린다. 따라서 모든 요청에 대해 해시 값을 계산한다면 하드 디스크에 비해 빠른 SSD의 장점이 사라진다. 따라서 중복 가능성이 높은 요청에 대해서만 SHA-1 값을 추출하는 방법이 필요하다.
본 발명을 통해 저장장치인 SSD에서 효과적인 중복제거(Deduplication)을 위한 성능 향상 기법을 제안하고자 한다. 중복제거는 동일한 데이터에 대한 복수의 저장 요청들을 한 번의 쓰기 연산으로 처리함으로써, 플래시 메모리의 수명 향상과 저장 공간의 효율을 높일 수 있다. 그러나 SSD에서 사용하는 마이크로 컨트롤러(예컨대 ARM7)의 연산 처리 성능이 매우 낮아 응답시간이 낮아진다.
따라서, 본 발명에서 중복확률과 응답시간을 조절할 수 있는 그룹핑 방법 및 그 장치를 제안하고자 한다.
중복제거 기술의 성능 향상을 위한 그룹핑 방법에 있어서, 메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 단계; 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계; 및 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 단계를 포함하는 그룹핑 방법이 제공될 수 있다.
일측에 있어서, 입력된 데이터에서 샘플을 추출하는 단계는 처리 대기중인 데이터 1024개에서 각각 20바이트(Bytes) 크기의 샘플을 추출할 수 있다.
또 다른 측면에 있어서, 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계는 추출한 20Bytes의 샘플들을 대상으로 하여 1024로 나머지 연산을 수행할 수 있다.
또 다른 측면에 있어서, 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 단계는, 같은 결과 값이 출력된 샘플들은 하나의 버킷에 같이 그룹핑되는 것이며, 결과 값의 개수만큼 그룹핑된 버킷의 개수가 나타날 수 있다.
또 다른 측면에 있어서, 추출한 샘플 수와 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고, 그룹핑 방법은 추출한 샘플의 중복확률이 높으면 제거하는 중복제거 단계를 포함하며, 빈 버킷의 개수가 일정 기준 이상일 경우 중복제거 단계를 실시하고, 빈 버킷의 개수가 일정 기준 이하일 경우 중복제거 단계를 실시하지 않을 수 있다.
중복제거 기술의 성능 향상을 위한 그룹핑 장치에 있어서, 메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 샘플 추출부; 추출한 샘플을 대상으로 나머지 연산을 수행하는 연산부; 및 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 샘플을 그룹핑하는 그룹핑부를 포함하는 그룹핑 장치가 제공될 수 있다.
일측에 있어서, 추출한 샘플 수와 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고, 그룹핑 장치는 추출한 샘플들의 중복확률이 높으면 제거하는 중복제거부를 포함하며, 중복제거부는 빈 버킷의 개수가 일정 기준 이상일 경우 중복제거를 실시하고, 빈 버킷의 개수가 일정 기준 이하일 경우 중복제거를 실시하지 않을 수 있다.
기존 기술의 문제점을 해결하기 위해 그룹핑 기법을 도입하여 앞으로 처리될 데이터의 일부분을 샘플링하여 중복확률이 높을 경우 중복제거를 수행하고 낮은 경우는 수행하지 않는 방법이 제공된다.
본 발명의 개시를 통해 기존의 중복제거 기술에서 SHA-1 해시 값을 추출하였을 때 발생하는 성능 부하가 적은 중복확률을 희생하여 해시 값 추출 횟수를 줄여 성능을 향상시킬 수 있다.
도 1은 마이크로 컨트롤러에서의 SHA-1 해시 값을 구할 때 나타나는 성능 부하를 그래프로 나타낸 것이다.
도 2는 본 발명의 일실시예에 있어서, 중복 제거 성능 향상을 위한 그룹핑 방법의 단계를 도시한 순서도이다.
도 3은 본 발명의 일실시예에 있어서, 그룹핑 방법의 실시예를 나타낸 도면이다.
도 4는 본 발명의 일실시예에 있어서, 중복 제거 성능 향상을 위한 그룹핑 장치의 구조를 도시한 블록도이다.
도 5는 본 발명의 일실시예에 있어서, 본 발명이 적용된 저장장치(SSD)의 구조를 도시한 블록도이다.
이하, 저장장치에서 중복제거의 성능 향상을 위한 그룹핑 방법과 그 장치에 대해서 첨부된 도면을 참조하여 자세히 설명한다.
본 발명은 SSD 등의 저장장치에서 효과적인 중복제거(Deduplication)을 위한 성능 향상 기법을 제안한다. 중복제거는 동일한 데이터에 대한 복수의 저장 요청들을 한 번의 쓰기 연산으로 처리함으로써, 플래시 메모리의 수명 향상과 저장 공간의 효율을 높일 수 있다. 그러나 SSD에서 사용하는 마이크로 컨트롤러(예컨대 ARM7)의 연산 처리 성능이 매우 낮아 응답시간이 낮아진다. 따라서, 본 발명에서 중복확률과 응답시간을 조절하는 그룹핑 방법 및 장치를 고안하였다.
본 발명의 실시예에 있어서, 도 2는 저장장치에서 중복제거 기술의 성능 향상을 위한 그룹핑 방법의 단계를 도시한 순서도이다.
SSD는 SATA 인터페이스를 통해 입력되는 데이터를 메모리의 버퍼 안에 담아둔다. 그리고, 이 버퍼 안에 들어온 새로운 요청들을 하나씩 처리하고 처리 완료된 요청에 대해서는 버퍼에서 제거할 수 있다. 이때, 버퍼 안에 들어온 요청을 처리하기 전에, 대기중인 데이터에서 샘플을 추출할 수 있다(S210).
데이터에서 샘플을 추출할 때, 실시예에 있어서, 약 1024개의 데이터에서 각각 20바이트(Bytes)의 샘플을 추출할 수 있는데, 데이터 샘플 추출 대상을 1024개로 제안하는 이유는 샘플 추출 대상이 1024개를 넘어가게 되면, 발명의 효율이 낮아질 수 있기 때문이다.
또한, 샘플을 그룹핑하기 위해서 추출된 샘플에 대해서 나머지 연산을 수행할 수 있다(S220). 나머지 연산은 나눗셈 이후 몫으로 표현할 수 없는 남은 양, 다른 말로는 잉여를 구하는 연산을 수행할 수 있다. 앞서 일례로 1024개의 데이터에서 샘플을 추출하여, 나머지 연산은 1024로 연산을 실시할 수 있다. 나머지 연산의 결과 값은 0~1023에 해당될 수 있다.
나머지 연산의 결과에 따라서, 결과 값이 같은 샘플을 해당하는 버킷에 연결함으로써 그룹핑할 수 있다(S230). 이때, 같은 결과가 나온 샘플은 같은 버킷에 그룹핑되며, 그렇지 않은 샘플은 각각 해당하는 버킷에 그룹핑될 수 있다. 발명의 실시예에 있어서, 샘플 수(샘플 추출 대상 데이터 수)와 그룹핑되는 버킷 수는 동일하다. 예컨대 샘플 수가 1024개이기 때문에 버킷의 수도 1024개이다.
나머지 연산의 결과 값에 따라 그룹핑을 실시했을 때, 같은 버킷에 그룹핑된 샘플이 많을수록 빈 버킷의 수가 증가하게 된다. 나머지 연산의 결과 값이 같다는 것은 데이터가 중복될 확률이 높음을 의미할 수 있다. 따라서, 빈 버킷의 수가 증가한다는 것은 중복된 데이터가 많을 확률이 큰 것을 의미하며, 반대로 빈 버킷의 수가 적을수록 중복 데이터가 적을 확률이 크다.
본 발명에서는 기존 기술의 문제점을 해결하기 위해 그룹핑 기법을 도입하여 앞으로 처리될 데이터의 일부분을 샘플링하여 중복확률이 높을 경우 중복제거를 수행하고 낮은 경우는 수행하지 않는 방법을 제안한다. 본 발명은 앞으로 처리될 요청들이 있는 메모리의 버퍼 안의 데이터를 분석하여 높은 확률이 중복확률이 발견되는 경우에 중복제거 단계를 실시할 수 있다.
발명의 실시예에 있어서, 그룹핑 방법은 중복 데이터를 제거하는 중복제거 단계를 포함할 수 있다. 중복제거는 추출한 샘플의 중복확률이 높은 경우에 대해서 수행하고, 중복확률이 낮은 경우엔 수행하지 않는다.
중복제거의 수행은 단계(S230)에서 그룹핑을 수행한 이후 빈 버킷의 수가 중복확률을 말해주기 때문에, 빈 버킷의 수를 중복제거의 기준으로 할 수 있다. 빈 버킷의 수가 일정 기준 이상일 경우, 중복확률이 높기 때문에 중복제거 단계를 실시하고, 반대로 일정 기준 이하일 경우에는 중복확률이 낮기 때문에 중복제거 단계를 실시하지 않는다. 일실시예에 있어서, 중복제거의 기준을 약 50%의 확률로 설정하여 실험하였을 때의 중복확률은 20%로 감소하였으며, 이때 중복제거 단계의 성능 부하는 80% 감소하였다.
도 3은 본 발명의 실시예에 있어서, 그룹핑 방법을 도시한 도면이다. 앞서 설명한 바와 같이, 버퍼에 있는 데이터를 각각 20Bytes로 샘플링하여 그룹핑하는데, 데이터의 개수와 버킷의 개수가 일치하는 것을 도면을 통해 확인할 수 있다.
SSD는 SATA 인터페이스를 통해 들어오는 데이터를 메모리의 버퍼 안에 담아둔다. 그리고 버퍼 안에 들어온 새로운 요청들을 하나씩 처리하고 완료된 요청에 대해 버퍼에서 제거할 수 있다. 이때, 처리되는 데이터는 중복제거 단계인 핑거 프린트 생성, 중복성 탐지, 중복 데이터 매핑 단계를 거치게 된다. 일례로, 이중에서 가장 성능 부하가 높은 단계는 핑거 프린트 생성 단계로서 SSD에서 많이 사용되는 ARM7에서 SHA-1 해시 추출할 경우 5770 usec 정도가 소요된다. 따라서, 중복확률이 높은 경우에 중복제거 단계를 수행한다면 불필요한 SHA-1 해시 추출 과정을 제거할 수 있어 효과적으로 성능 부하를 줄일 수 있는 것이다.
본 발명의 실시예에 있어서, 저장장치는 중복제거 기술을 향상하기 위한 그룹핑 장치(400)를 포함할 수 있고, 그룹핑 장치(400)는 샘플 추출부(410), 연산부(420), 그리고 그룹핑부(430)를 포함할 수 있다. 이하 설명하는 그룹핑 장치(400)는 도 2의 그룹핑 방법을 실시하는 장치가 될 수 있으며, 그룹핑 장치(400)의 각 구성은 합쳐질 수 있으며, 또는 하나 이상의 구성을 생략할 수 있다.
SSD는 입력되는 데이터를 메모리의 버퍼 안에 담아둔다. 그리고, 이 버퍼 안에 들어온 새로운 요청들을 하나씩 처리하고 처리 완료된 요청에 대해서는 버퍼에서 제거할 수 있다. 이때, 샘플 추출부(410)는 SSD로 입력되며, 메모리의 버퍼에 저장되어 아직 처리되지 않은 데이터에 대해서 샘플을 추출할 수 있다.
실시예에 있어서, 샘플 추출부(410)는 약 1024개의 데이터에서 각각 약 20bytes의 샘플을 추출할 수 있다. 샘플 추출 대상을 1024개로 제안하는 이유는 그 수가 넘어가면 발명의 효율이 낮아질 수 있기 때문이다.
그룹핑 장치(400)는 추출한 샘플을 그룹핑하기에 중복확률을 탐지하기 위해서 나머지 연산을 수행하는 연산부(420)를 포함할 수 있다. 데이터의 샘플을 추출할 때 약 1024개의 데이터에서 샘플을 추출하였으므로 나머지 연산의 연산자를 1024가 될 수 있다. 이때, 같은 결과가 나온 샘플을 기준으로 그룹핑될 수 있다.
그룹핑부(430)는 연산부(420)에서 구한 결과 값에 대해서 같은 결과에 해당되는 샘플을 그룹핑하여 해당하는 버킷에 연결하며, 그렇지 않은 샘플은 각각 해당하는 버킷에 그룹핑할 수 있다. 본 발명의 실시예에 있어서, 샘플 수(샘플 추출 대상 데이터 수)와 그룹핑되는 버킷 수는 동일하다. 예컨대, 샘플 수가 1024개이기 때문에 버킷의 수도 1024개이다.
나머지 연산의 결과 값에 따라 그룹핑을 실시했을 때, 같은 버킷에 그룹핑된 샘플이 많을수록 빈 버킷의 수가 증가하게 된다. 나머지 연산의 결과 값이 같다는 것은 데이터가 중복될 확률이 높음을 의미할 수 있다. 따라서, 빈 버킷의 수가 증가한다는 것은 중복된 데이터가 많을 확률이 큰 것을 의미하며, 반대로 빈 버킷의 수가 적을수록 중복 데이터가 적을 확률이 크다.
본 발명에서는 기존 기술의 문제점을 해결하기 위해 그룹핑 장치를 통하여 앞으로 처리될 데이터의 일부분을 샘플링하여 중복확률이 높을 경우 중복제거를 수행하고 낮은 경우는 수행하지 않는 장치를 제안한다. 본 발명은 앞으로 처리될 요청들이 있는 메모리의 버퍼 안의 데이터를 분석하여 높은 확률이 중복확률이 발견되는 경우에 중복제거부(440)를 포함하여 중복제거를 실시할 수 있다.
중복제거부(440)는 추출한 샘플의 중복확률이 높은 경우에 대해서 중복제거를 수행하고, 반대로 중복확률이 낮은 경우엔 중복제거를 수행하지 않는다. 중복제거의 기준은 앞서 설명한 바와 같이, 중복확률에 대한 것이며, 그룹핑을 수행한 이후 빈 버킷의 수가 중복확률을 말해주기 때문에, 빈 버킷의 수를 중복제거의 기준으로 할 수 있다. 즉, 빈 버킷의 수가 일정 기준 이상일 경우, 중복확률이 높기 때문에 중복제거를 실시하고, 반대로 일정 기준 이하일 경우에는 중복확률이 낮기 때문에 중복제거를 실시하지 않는다.
본 발명은 도 5와 같이, SSD 내의 컨트롤러에 구현이 된다. 앞서 설명한 바와 같이, SATA 인터페이스를 통해 데이터가 입출력되며, SSD 내의 컨트롤러는 CPU와 메모리, 플래시 컨트롤러로 구성될 수 있다.
발명의 실시예에 있어서, 그룹핑 방법을 실시하는 장치와 중복제거 단계를 실시하는 장치를 별도로 가지고 있을 수 있고, 내부에는 FTL과 중복제거 기술이 도입되어있다. 실시예에 있어서, 그룹핑 방법은 중복제거 기술 전에 수행되며, 메모리 버퍼 안의 데이터를 그룹핑하고 중복확률에 따라서 중복제거 기술을 수행할지 말지에 대해 결정할 수 있다.
이와 같이, 저장장치인 SSD에서 효과적인 중복제거를 위한 성능 향상 방법을 제안할 수 있다. 중복제거는 동일한 데이터에 대한 복수의 저장 요청들을 한 번의 쓰기 연산으로 처리함으로써, 플래시 메모리의 수명 향상과 저장 공간의 효율을 증대시킬 수 있다.
앞서 설명한 기술적 내용들, 즉 저장장치에서 효과적인 중복제거를 위한 그룹핑 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예들을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다.
컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 하드웨어 장치는 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등한 것들에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.
400: 그룹핑 장치
410: 샘플 추출부
420: 연산부
430: 그룹핑부
440: 중복제거부

Claims (10)

  1. 중복제거 기술의 성능 향상을 위한 그룹핑 방법에 있어서,
    메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 단계;
    상기 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계; 및
    상기 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 상기 샘플을 그룹핑하는 단계
    를 포함하는 그룹핑 방법.
  2. 제1항에 있어서,
    상기 처리 대기중인 데이터에서 샘플을 추출하는 단계는
    상기 처리 대기중인 데이터 1024개에서 각각 20바이트(Bytes) 크기의 샘플을 추출하는 것
    을 특징으로 하는 그룹핑 방법.
  3. 제2항에 있어서,
    상기 추출한 샘플을 대상으로 나머지 연산을 수행하는 단계는
    상기 추출한 20Bytes의 샘플들을 대상으로 하여 1024로 나머지 연산을 수행하는 것
    을 특징으로 하는 그룹핑 방법.
  4. 제1항에 있어서,
    상기 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 상기 샘플을 그룹핑하는 단계는,
    같은 결과 값이 출력된 샘플들은 하나의 버킷에 같이 그룹핑되는 것이며,
    결과 값의 개수만큼 그룹핑된 버킷의 개수가 나타나는 것
    을 특징으로 하는 그룹핑 방법.
  5. 제1항에 있어서,
    상기 추출한 샘플 수와 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고,
    상기 그룹핑 방법은 상기 추출한 샘플들의 중복 데이터를 제거하는 중복제거 단계를 포함하며,
    상기 빈 버킷의 개수가 일정 기준 이상일 경우 상기 중복제거 단계를 실시하고,
    상기 빈 버킷의 개수가 일정 기준 이하일 경우 상기 중복제거 단계를 실시하지 않는 것
    을 특징으로 하는 그룹핑 방법.
  6. 중복제거 기술의 성능 향상을 위한 그룹핑 장치에 있어서,
    메모리의 버퍼에 저장되어 처리 대기중인 데이터에서 샘플을 추출하는 샘플 추출부;
    상기 추출한 샘플을 대상으로 나머지 연산을 수행하는 연산부; 및
    상기 나머지 연산의 결과 값에 해당하는 버킷에 연결하여 상기 샘플을 그룹핑하는 그룹핑부
    를 포함하는 그룹핑 장치.
  7. 제6항에 있어서,
    상기 샘플 추출부는 상기 처리 대기중인 데이터 1024개에서 각각 20바이트(Bytes) 크기의 샘플을 추출하는 것
    을 특징으로 하는 그룹핑 장치.
  8. 제7항에 있어서,
    상기 연산부는 상기 추출한 20Bytes의 샘플들을 대상으로 하여 1024로 나머지 연산을 수행하는 것
    을 특징으로 하는 그룹핑 장치.
  9. 제6항에 있어서,
    상기 그룹핑부는,
    같은 결과 값이 출력된 샘플들은 하나의 버킷에 같이 그룹핑되며, 결과 값의 개수만큼 그룹핑된 버킷의 개수가 나타나는 것
    을 특징으로 하는 그룹핑 장치.
  10. 제6항에 있어서,
    상기 샘플 추출부에서 추출한 샘플 수와 상기 버킷의 개수는 동일하며, 그룹핑된 샘플 수가 많을수록 빈 버킷이 증가하게 되고,
    상기 그룹핑 장치는 상기 추출한 샘플들의 중복 데이터를 제거하는 중복제거부를 포함하며,
    상기 중복제거부는
    상기 빈 버킷의 개수가 일정 기준 이상일 경우 중복제거를 실시하고,
    상기 빈 버킷의 개수가 일정 기준 이하일 경우 중복제거를 실시하지 않는 것
    을 특징으로 하는 그룹핑 장치.
KR1020120091409A 2011-12-29 2012-08-21 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치 KR101388337B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2012/010697 WO2013100437A1 (ko) 2011-12-29 2012-12-10 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
US14/366,775 US9501239B2 (en) 2011-12-29 2012-12-10 Grouping method and device for enhancing redundancy removing performance for storage unit

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020110145878 2011-12-29
KR20110145878 2011-12-29

Publications (2)

Publication Number Publication Date
KR20130077759A KR20130077759A (ko) 2013-07-09
KR101388337B1 true KR101388337B1 (ko) 2014-04-22

Family

ID=48990944

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120091409A KR101388337B1 (ko) 2011-12-29 2012-08-21 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치

Country Status (2)

Country Link
US (1) US9501239B2 (ko)
KR (1) KR101388337B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110457305B (zh) * 2019-08-13 2021-11-26 腾讯科技(深圳)有限公司 数据去重方法、装置、设备及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059096A (ja) 2007-08-30 2009-03-19 Hitachi Ltd ストレージシステム及びストレージシステムの消費電力低減方法
WO2010126595A1 (en) 2009-04-30 2010-11-04 Netapp, Inc. Flash-based data archive storage system
KR20110055263A (ko) * 2009-11-19 2011-05-25 매크로임팩트 주식회사 데이터 처리 장치 및 데이터 처리 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8196022B2 (en) * 2009-01-16 2012-06-05 International Business Machines Corporation Hamming radius separated deduplication links
US8732133B2 (en) * 2010-03-16 2014-05-20 Commvault Systems, Inc. Extensible data deduplication system and method
US8572053B2 (en) * 2010-12-09 2013-10-29 Jeffrey Vincent TOFANO De-duplication indexing
US9020900B2 (en) * 2010-12-14 2015-04-28 Commvault Systems, Inc. Distributed deduplicated storage system
GB2477607B (en) * 2011-01-17 2011-12-28 Quantum Corp Sampling based data de-duplication

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009059096A (ja) 2007-08-30 2009-03-19 Hitachi Ltd ストレージシステム及びストレージシステムの消費電力低減方法
WO2010126595A1 (en) 2009-04-30 2010-11-04 Netapp, Inc. Flash-based data archive storage system
KR20110055263A (ko) * 2009-11-19 2011-05-25 매크로임팩트 주식회사 데이터 처리 장치 및 데이터 처리 방법

Also Published As

Publication number Publication date
US20140337596A1 (en) 2014-11-13
US9501239B2 (en) 2016-11-22
KR20130077759A (ko) 2013-07-09

Similar Documents

Publication Publication Date Title
JP5774742B2 (ja) データ重複除去方法及び装置
US9377959B2 (en) Data storage method and apparatus
JP5735654B2 (ja) 格納データの重複排除方法、格納データの重複排除装置、及び重複排除プログラム
CN102982180B (zh) 数据存储方法及设备
CN102214210B (zh) 重复数据处理方法、装置和系统
JP2014505959A5 (ko)
WO2015184992A1 (zh) 一种识别重复图片的方法、图片搜索去重方法及其装置
KR102011726B1 (ko) 동적 로딩 파일 추출 방법 및 장치
US10783145B2 (en) Block level deduplication with block similarity
JP2010541107A5 (ko)
CN103150260A (zh) 重复数据删除方法和装置
JP2014511526A5 (ko)
CN107870727A (zh) 用于存储数据的方法和设备
US20110307471A1 (en) Accelerating Database Management System Operations
US10409497B2 (en) Systems and methods for increasing restore speeds of backups stored in deduplicated storage systems
KR102260631B1 (ko) 중복 이미지 파일 검색 방법 및 장치
Kumar et al. Bucket based data deduplication technique for big data storage system
CN107193498B (zh) 一种对数据进行去重复处理的方法及装置
CN104035822A (zh) 一种低开销的高效内存去冗余方法及系统
KR101388337B1 (ko) 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
WO2020168614A1 (zh) 移动恶意软件大数据的快速智能比对和安全检测方法
KR101308228B1 (ko) 악성 코드 자동 탐지 방법
CN108052644A (zh) 数据模式日志文件系统的数据写入方法及系统
WO2013100437A1 (ko) 저장장치에서 중복제거 성능 향상을 위한 그룹핑 방법 및 장치
KR101237746B1 (ko) 데이터 백업 장치 및 방법

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190415

Year of fee payment: 6