KR101430552B1 - Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템 - Google Patents

Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템 Download PDF

Info

Publication number
KR101430552B1
KR101430552B1 KR1020130038170A KR20130038170A KR101430552B1 KR 101430552 B1 KR101430552 B1 KR 101430552B1 KR 1020130038170 A KR1020130038170 A KR 1020130038170A KR 20130038170 A KR20130038170 A KR 20130038170A KR 101430552 B1 KR101430552 B1 KR 101430552B1
Authority
KR
South Korea
Prior art keywords
data
ssd
input data
invalid
deduplication
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
KR1020130038170A
Other languages
English (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 KR1020130038170A priority Critical patent/KR101430552B1/ko
Application granted granted Critical
Publication of KR101430552B1 publication Critical patent/KR101430552B1/ko
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0689Disk arrays, e.g. RAID, JBOD

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)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

운영체제의 파일 시스템을 통해 SSD 디스크 장치에 입력 데이터를 저장할 때, 상기 SSD 디스크 장치에 저장된 유효 데이터를 중복제거하거나, 무효 데이터를 재활용하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 관한 것으로서, 상기 입력 데이터와 중복된 상기 유효 데이터가 있는지를 검사하여, 중복된 유효 데이터가 있으면 상기 입력 데이터의 참조를 중복된 데이터의 참조로 정하는 중복제거부; 및, 중복된 유효 데이터가 없으면 상기 입력 데이터와 중복된 무효 데이터가 있는지를 검사하여, 중복된 무효 데이터가 있으면, 상기 무효 데이터를 상기 입력 데이터로 재활용하는 재활용부를 포함 구성을 마련한다.
상기와 같은 중복제거 및 재활용 시스템에 의하여, 파일시스템에서 유효데이터 중복제거를 하고 플래시 변환 계층(FTL)에서 무효데이터 재활용을 함으로써, 쓰기 횟수를 감소시키고 그에 따라서 가비지 컬렉션 횟수도 감소시키고, 그 결과 SSD의 마모도가 향상되고 I/O 성능이 향상될 수 있다.

Description

SSD 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 SSD 스토리지의 데이터 중복제거 및 재활용 시스템 { A Data De-duplication and Recycling Method in SSD-based Storage System for Increasing De-duplication Rate and I/O Performance }
본 발명은 유효데이터 중복제거와 무효데이터 재활용을 동시에 수행함으로써 더 높은 중복제거율을 얻을 수 있는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 관한 것이다.
특히, 본 발명은 입력데이터에 대하여 유효데이터와 무효데이터에서 중복검사를 실행하여, 먼저 유효데이터에 대한 중복제거 과정을 거치고 그 다음에 무효데이터 재활용 과정을 거침으로써 중복률을 향상시키는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 관한 것이다.
SSD(Solid State Disk)는 여러개의 NAND 플래시 메모리가 병렬로 결합하여 구성된 스토리지 장치이다. SSD는 기계적으로 동작하는 HDD(Hard Disk Drive)와 다르게 반도체 기반으로 동작하기 때문에 데이터 전송속도와 랜덤한 입출력 측면에서 성능이 향상되었고 소비전력을 낮춤으로써 최근에 서버, 데스크탑, 노트북의 스토리지 장치로 활용률이 점점 높아지고 있다[비특허문헌 1].
SSD를 구성하고 있는 NAND 플래시 메모리의 크리티컬한 특성으로 각각의 셀마다 쓰기/삭제 횟수에 제한이 있고 제자리 덮어쓰기가 되지 않는다[비특허문헌 2]. SLC(Single Level Cell)는 약 10만번의 횟수 제한, MLC(Multi Level Cell)는 약 1만번의 횟수 제한, TLC(Triple Level Cell)은 약 1천번의 횟수 제한이 있다. 만약 제한된 횟수를 초과하면 해당 셀은 정상적인 동작이 이루어지지 않는다[비특허문헌 16]. 또한, NAND 플래시 메모리는 HDD와 다르게 제자리 덮어쓰기가 안되기 때문에 빈 페이지에만 쓰기 연산이 가능하다[비특허문헌 17].
이를 극복하기 위한, 유효데이터 중복제거 방법과 무효데이터의 재활용 방법에 대하여 설명한다.
SSD에서의 유효데이터와 무효데이터는 SSD의 쓰기/삭제 연산에서 생성된다. 유효데이터의 발생은 SSD에 입력데이터가 저장되면 쓰기 연산을 통해 생성되고 무효데이터는 파일시스템의 유효데이터 갱신 및 삭제로 발생한다. 무효데이터는 가비지 컬렉션이 발생하여 완전히 삭제되기 전까지 유지되며 가비지 컬렉션 과정 후에 빈공간이 된다. 가비지 컬렉션은 NAND 플래시 메모리에서 블록의 무효페이지들을 Erase연산하여 빈 블록으로 만드는 과정을 의미한다.
SSD에서 데이터 입출력을 하기 위해서는 제한된 쓰기/삭제 횟수 안에서 사용해야한다. 하지만 빈번하게 대용량의 데이터가 입출력되는 서버에서 마모도가 급격히 증가한다면 SSD는 신뢰성이 줄어든다[비특허문헌 3].
유효데이터 중복제거는 이러한 SSD의 마모도 증가율을 줄여서 수명의 향상을 가져오는 방법이다[비특허문헌 4]. 입력데이터와 SSD에 저장되어 있는 유효데이터를 중복검사하여 중복될 때 참조함으로써 쓰기 연산의 발생을 줄일 수 있다. 중복검사 과정에서 I/O 오버헤드가 발생하지만 SSD의 수명을 향상시킬 수 있다. 이는 대규모의 데이터를 다루는 서버급 스토리지에서 신뢰성을 제공하기 위해서 사용되는 방법이다.
또한, 가비지 컬렉션 연산은 SSD의 제자리 덮어쓰기가 않되는 특성을 보완하지만 속도가 느린 삭제(Erase) 연산 때문에 SSD의 I/O 속도를 느리게 하는 원인이다[비특허문헌 5]. 따라서 가비지 컬렉션이 발생하는 횟수를 줄일 수 있다면 I/O 속도의 향상을 기대할 수 있을 것이다. 다수의 무효데이터를 삭제하여 빈 공간을 확보하는 것이 가비지 컬렉션이기 때문에 무효데이터를 줄일 수 있다면 가비지 컬렉션의 발생 빈도도 감소할 것이다. 이러한 이유로 무효데이터와 입력데이터를 중복검사해서 중복될 경우 무효데이터를 재활용한다면 성능을 향상 시킬 수 있다[비특허문헌 6].
다음으로, 종래 기술에 의한 중복제거 방법에 대하여 설명한다.
데이터 중복제거 방법은 데이터의 중복된 저장을 피하여 스토리지 공간을 효율적으로 사용하는 방법으로, 특히 많은 양의 데이터를 다루는 네트워크 서버 및 백업 스토리지에서 저장 공간이 크게 절감되기 때문에 많이 사용된다.
SSD 및 NAND 플래시 메모리를 활용한 중복제거 방법 연구는 F. Chen의 CAFTL[비특허문헌 7], B. Debnath의 ChunkStash[비특허문헌 8], D. Meister의 Dedupv1[비특허문헌 9] 등이 있다.
CAFTL은 SSD 스토리지 상에서 중복제거를 위한 특징을 제시하였다[비특허문헌 7]. Pre-hashing은 SHA-1 해시함수를 사용하기 전에 CRC-32 해시함수로 먼저 중복검사를 하는 방법으로 CRC-32는 SHA-1 보다 10배 빠르기 때문에 신속하게 중복여부를 판단할 수 있다. 하지만 해시충돌 확률이 높은 단점이 있어서 추가로 SHA-1으로 확인한다. 또한 CAFTL은 즉시 중복제거를 하는 동안에 IOPS가 증가하여 병목현상이 발생할 수 있기 때문에 쓰기 버퍼의 공간을 고려한다. 버퍼의 사용량이 상한 경계값을 초과할 경우 즉시 중복제거를 중지하고 사용량이 하한 경계값 이하일 경우 즉시 중복제거를 실행하면서 병목현상과 중복제거의 성능을 조절한다. 위의 방법을 통해서 CAFTL은 효과적으로 SSD에서 중복제거를 실행하였다.
ChunkStash는 NAND 플래시 메모리를 사용한 SHA-1 해싱 기반 중복제거 방법이다[비특허문헌 8]. 청킹과 SHA-1 해시 값을 만드는 과정으로 메타데이터를 생성한다. ChunkStash는 각 청크의 메타데이터를 NAND 플래시 메모리에서 관리하여 응답시간을 줄였다.
Dedupv1은 기존의 HDD 기반의 중복제거 시스템에 SSD를 사용하여 입출력 속도를 증가시켰다[비특허문헌 9]. Dedupv1은 청킹과 SHA-1 해시함수를 이용한 핑거프린팅으로 고유한 값을 생성한 후에 생성된 핑거프린트를 기반으로 Filter Chain라는 중복검사 과정을 거친다. Filter를 4번 거치면서 중복검사를 실행하여 중복될 확률에 따라서 확실할 경우 Existing, 대체적으로 중복 가능성이 클 경우에 Strong-Maybe, 중복 가능성이 낮을 경우 Weak-Maybe, 검사결과 중복이 안 될 경우 Non- Existing으로 나눈다. Filter Chain 과정 후에 결과에 따라서 쓰기 연산을 하거나 중복제거를 한다.
중복제거에서 입력 파일을 청크 단위로 분할하는 청킹의 종류는 고정된 청크 단위로 일관적으로 분할하는 고정청킹과 가변적으로 청크 단위를 결정하는 가변청킹이 있다[비특허문헌 10]. 고정 혹은 가변청킹 방법으로 청크를 생성한 후에는 각각의 청크에 대해서 중복검사를 위한 고유값인 핑거프린트를 해시함수로 생성한다. SHA-1 해시함수는 임의의 크기를 가진 데이터에 대하여 160bit의 일정한 해시값을 생성한다. 정교한 중복제거를 위해서 SHA-1 해시함수가 쓰인다[비특허문헌 11]. 이렇게 청크에 대하여 생성된 해시값은 해당하는 청크만의 고유값이 되어 다른 청크와 일치하는지를 비교하는데 사용된다. 중복검사는 입력데이터의 핑거프린트가 해시테이블에서 일치하는 값이 있는지 검사하여 동작한다.
중복제거는 실행되는 시점에 따라 즉시 중복제거와 예약 중복제거 방식이 있다. 즉시 중복제거 방식은 입력데이터를 저장하기 전에 중복검사를 하여 중복제거를 하고 스토리지에 저장하는 방식이다. 중복제거를 먼저 한 후에 저장장치에 쓰기를 하기 때문에 저장공간의 쓰기 횟수를 줄일 수 있는 장점이 있다. 하지만 입력데이터가 많이 발생할수록 중복제거 과정에서의 오버헤드로 인하여 병목현상이 발생하는 단점이 있다[비특허문헌 12].
예약 중복제거 방식은 입력데이터를 우선 스토리지에 저장한다. 그 후에 호스트 시스템의 유휴시간(Idle Time)에 저장된 데이터를 중복검사하여 중복제거를 한다. 예약 중복제거는 즉시 중복제거를 하지 않기 때문에 쓰기 연산 중에 병목현상은 없지만 입력데이터를 우선 스토리지에 저장한 후에 중복검사를 하기 때문에 즉시 중복제거에 비해서 추가적인 저장공간이 필요하다는 단점이 있다[비특허문헌 12].
[비특허문헌 1] N. Agrawal, V. Prabhakan, T. Wobber, J. D. Davis, M. Manasse and R. Panigrahy, "Design Tradeoffs for SSD Performance," USENIX'08 ATC, 57∼70p, 2008. [비특허문헌 2] G. Wu, X. He and B. Eckart, "An Adaptive Write Buffer Management Scheme for Flash-Based SSDs," ACM Transactions on Storage, Vol.8, No.1, 1∼24p, 2012. [비특허문헌 3] J.-Y. Shin, Z.-L. Xia, N.-Y. Xu, R. Gao, X.-F. Cai, S. Maeng, F.-H. Hsu, "FTL Design Exploration in Reconfigurable High-Performance SSD for Server Applications," ACM ICS'09, 338∼349p, 2009. [비특허문헌 4] A. Berman, Y. Birk, "Integrating De-duplication and Write for Increased Performance and Endurance of Solid-State Drives," IEEE 26th IEEEI, 821∼823p, 2010. [비특허문헌 5] J. Lee, Y. Kim, G. M. Shipman, S. Oral, F. Wang and J. Kim, "A Semi-Preemtive Garbage Collector for Solid State Drives," IEEE ISPASS, 12∼21p, 2011. [비특허문헌 6] J. Kim, S. Lee, P. Mehdi, D. Kim, "Recycling Invalid Data Method for Improving I/O Performance in SSD Storage System," KIISE KCC 2012, Vol.39, No.1(A), 230∼232p, 2012. [비특허문헌 7] F. Chen, T. Luo, X. Zhang, "CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives," USENIX FAST'11, 2011. [비특허문헌 8] B. Debnath, S. Sengupta, J. Li, "ChunkStash: Speeding up Inline Storage Deduplication using Flash Memory," USENIX ATC'10, 2010. [비특허문헌 9] D. Meister, A. Brinkmann, "dedupv1: Improving Deduplication Throughput using Solid State Drives(SSD)," IEEE MSST, 1∼6p, 2010. [비특허문헌 10] D. Bhagwat, K. Eshghi, D. D. E. Long, M. Lillibridge, "Extreme Binning: Scalable, Parallel Deduplication for Chunk-based File Backup," IEEE MASCOTS'09, 1∼9, 2009. [비특허문헌 11] H. E. Michail, A. P. Kakarountas, A. Milidonis, C. E. Goutis, "Efficient Implementation of the Keyed-Hash Message Authentication Code(HMAC) Using the SHA-1 Hash Function," IEEE ICECS, 567∼570p, 2004. [비특허문헌 12] Q. He, Z. Li, X. Zhang, "Data Deduplication Techniques," IEEE FITME, 430∼433p, 2010. [비특허문헌 13] C.-H. Wu, H.-S. Wu, "A Data De-duplication Access Framework for Solid State Drives," ACM SAC'11, 600∼604p, 2011. [비특허문헌 14] G. Wu, X. He, "△FTL: Improving SSD Lifetime via Exploiting Content Locality," ACM EuroSys'12, 253∼265p, 2012. [비특허문헌 15] O. Kwon, K. Koh, "Swqp Space Management Technique for Portable Consumer Electronics with NAND Flash Memory," IEEE Transactions on Consumer Electronics, Vol.56, No.3, 1524∼1531p, 2010. [비특허문헌 16] J.-S. Song, J.-M. Huh, Y.-S. Yang, D.-H. Kim, "SSD-based RAID-6 System Architecture for Reliability and Performance Enhancement," IEEK, Vol.47, CI, No.6, 589∼598p, 2010. [비특허문헌 17] Y.-S. Yang, D.-H. Kim, "Data allocation and Replacement Method based on The Access Frequency for Improving The Performance of SSD," IEEK, Vol.48, CI, No.5, 528∼536p, 2011.
본 발명의 목적은 상술한 바와 같은 문제점을 해결하기 위한 것으로, 입력데이터에 대하여 유효데이터와 무효데이터에서 중복검사를 실행하여, 먼저 유효데이터에 대한 중복제거 과정을 거치고 그 다음에 무효데이터 재활용 과정을 거침으로써 중복률을 향상시키는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템을 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명은 운영체제의 파일 시스템을 통해 SSD 디스크 장치에 데이터(이하 입력 데이터)를 저장할 때, 상기 SSD 디스크 장치에 저장된 유효 데이터 및 무효 데이터를 이용하여 상기 입력 데이터를 저장하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 관한 것으로서, 상기 입력 데이터와 중복된 상기 유효 데이터가 있는지를 검사하여, 중복된 유효 데이터가 있으면 상기 입력 데이터의 참조를 중복된 데이터의 참조로 정하는 중복제거부; 및, 중복된 유효 데이터가 없으면 상기 입력 데이터와 중복된 무효 데이터가 있는지를 검사하여, 중복된 무효 데이터가 있으면, 상기 무효 데이터를 상기 입력 데이터로 재활용하는 재활용부를 포함하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 중복제거부는 상기 파일 시스템에 설치되어 실행하고, 상기 재활용부는 상기 SSD 디스크 장치의 플래시 변환 계층에 설치되어 실행하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 재활용부는 중복되는 무효 데이터를 유효 데이터로 변경하고, 상기 입력 데이터의 참조를 변경된 유효 데이터의 참조로 정하여 재활용하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 중복제거부는 즉시 중복제거 방식을 이용하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 입력 데이터를 동일한 청크 단위로 나누어 중복 검사를 하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 입력 데이터에 해시함수를 적용하여 핑거프린트를 생성하여 중복 검사를 하는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 유효 데이터 및 무효 데이터에 대하여 각각 청킹과 핑거프린트를 위한 해시 테이블을 구비하고, 상기 유효 데이터와 무효 데이터가 서로 변환될 때 상기 해시 테이블의 내용도 동시에 이동되는 것을 특징으로 한다.
또, 본 발명은 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서, 상기 유효 데이터는 입력 데이터에 의해 참조되는 횟수를 참조 카운트로 기록하여, 하나의 입력 데이터만 참조된 상태에서 해당 입력 데이터가 삭제되면 상기 유효 데이터가 무효 데이터로 변환되는 것을 특징으로 한다.
상술한 바와 같이, 본 발명에 따른 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 의하면, 파일시스템에서 유효데이터 중복제거를 하고 FTL에서 무효데이터 재활용을 함으로써, 쓰기 횟수를 감소시키고 그에 따라서 가비지 컬렉션 횟수도 감소시키고, 그 결과 SSD의 마모도가 향상되고 I/O 성능이 향상되는 효과가 얻어진다.
특히, 본 발명의 실험에 따르면, 본 발명은 중복검사의 범위를 유효데이터에서 무효데이터까지 확장함으로써, 유효데이터 중복제거와 무효데이터 재활용을 동시에 하지 않는 일반적인 경우에 비해서, 가비지 컬렉션 횟수가 최대 20% 감소하고 I/O 지연시간이 9% 감소하는 효과가 얻어진다.
도 1은 본 발명의 일실시예에 따른 SSD 스토리지의 데이터 중복제거 및 재활용 시스템의 구성에 대한 블록구성도.
도 2는 본 발명의 일실시예에 따른 입력 데이터의 처리과정을 설명하는 흐름도.
도 3은 본 발명의 일실시예에 따른 유효데이터 중복제거 및 무효데이터 재활용 과정을 설명하는 데이터 흐름도.
도 4는 본 발명의 실험에 따른 실험 파라미터 설정값에 대한 표.
도 5는 본 발명의 실험에 따른 가비지 컬렉션 경계값에 대한 중복률에 대한 그래프.
도 6은 본 발명의 실험에 따른 쓰기 횟수 비교에 대한 그래프.
도 7은 본 발명의 실험에 따른 가비지 컬렉션 횟수 비교에 대한 그래프.
도 8은 본 발명의 실험에 따른 입출력 지연시간 비교에 대한 그래프.
이하, 본 발명의 실시를 위한 구체적인 내용을 도면에 따라서 설명한다.
또한, 본 발명을 설명하는데 있어서 동일 부분은 동일 부호를 붙이고, 그 반복 설명은 생략한다.
먼저, 본 발명의 일실시예에 따른 SSD 스토리지의 데이터 중복제거 및 재활용 시스템의 구성에 대하여 도 1을 참조하여 설명한다.
본 발명에 따른 SSD 스토리지의 데이터 중복제거 및 재활용 시스템은 유효데이터와 무효데이터에 대해서 중복제거를 고려한다. 이때, 무효데이터는 SSD의 무효페이지(Invalid Page)에 저장되어 있는 데이터를 의미하고 유효데이터는 유효페이지(Valid Page)에 저장된 데이터를 의미한다[비특허문헌 6].
즉, 본 발명에 따른 중복제거 및 재활용 시스템(40)은 운영체제의 파일 시스템(20)을 통해 SSD 디스크 장치(30)에 데이터(이하 입력 데이터)를 저장할 때, SSD 디스크 장치(30)에 저장된 유효 데이터 및 무효 데이터를 이용하여 입력 데이터를 저장한다.
도 1에서 보는 바와 같이, 본 발명에 따른 중복제거 및 재활용 시스템(40)은 컴퓨터 운영체제(10)에서 연동된 파일 시스템(20) 및, SSD(Solid State Disk) 디스크 장치(30)에 구비된 플래시 변환 계층(FTL, Flash Transfer Layer)(31)에 설치되는 프로그램 시스템이다. 구체적으로, 본 발명에 따른 중복제거 및 재활용 시스템(40)은 운영체제의 파일 시스템(20)에 설치되어 유효데이터의 중복을 제거하는 중복제거부(41) 및, SSD 디스크 장치(30)의 플래시 변환 계층(31)에 설치되어 무효데이터를 재활용하는 재활용부(42)로 구성된다.
본 발명은 유효데이터 중복제거와 무효데이터 재활용 과정(또는 기능)으로 분류된다.
유효데이터의 중복제거를 위해서 파일시스템(20)에 중복제거 컨트롤 계층인 중복제거 계층을 추가한다. 즉, 중복제거부(41)는 파일시스템(20)의 하나의 계층으로 삽입되어 구현될 수 있다. 따라서 중복제거부(41)는 중복제거 계층(41)으로도 혼용한다.
무효데이터 재활용 기능(또는 과정)은 무효페이지가 유효페이지로 전환되는 과정을 거쳐야하기 때문에, 재활용부(42)는 유효데이터의 중복제거부(41)와 다르게 SSD 디스크 장치(30)의 FTL(31)에서 실행한다.
도 1에서와 같이, 어느 하나의 프로세스(1)가 쓰기 연산을 요청하면, 운영체제(10)는 이 요청(시스템콜)을 받아 파일 시스템(20)에 전달된다. 파일시스템(20)으로 입력데이터의 쓰기 연산이 요청되면 우선 중복제거 계층(또는 중복제거부)(41)에서 유효데이터와 중복되는지 중복검사를 실행한다.
중복되는 데이터가 없다면, SSD 디스크 장치(30)의 FTL(31)에서, 재활용부(42)에 의해 무효데이터 재활용 과정을 거치게 된다. 무효데이터와도 중복이 되지 않는다면 SSD에 중복되는 데이터가 없으므로 빈 공간에 쓰기 연산을 실행한다. 도 2는 본 발명에서 입력데이터의 처리 과정을 보여준다.
다음으로, 중복제거부(41)를 보다 구체적으로 설명한다.
유효데이터의 중복제거는 입력데이터를 중복제거 계층(41)에서 즉시 중복제거 방식을 사용하여 실행한다. 입력데이터를 청킹할때 청크 단위는 SSD의 페이지 크기로 고정 청킹한다. SSD의 페이지 크기로 고정 청킹하는 이유는 무효데이터 재활용을 고려하기 때문이다. 무효데이터 재활용 과정에서 무효페이지가 유효페이지로 전환되기 때문에 청크가 페이지 크기와 일치해야 한다.
도 3에서와 같이 입력데이터를 청크 단위로 분리한 후에는 각각의 청크에 SHA-1 해시함수를 적용하여 160 비트(bit)의 핑거프린트를 생성한다. 그 다음 과정으로 입력데이터 청크의 핑거프린트 값과 유효데이터 해시 테이블에서 동일한 값이 있는지 중복검사한다. 중복되었다면 입력데이터를 저장하지 않고 중복된 유효데이터를 참조한다. 중복된 데이터가 없을 경우에는 무효데이터 재활용 검사단계로 넘어간다.
유효데이터의 중복제거에서 해시테이블 공간이 필요하다. 페이지 크기가 4KB라고 한다면 청크마다 160 비트(bit)의 SHA-1 해시값을 생성하기 때문에 청크 크기와 해시값 크기의 비율을 계산할 수 있다. 즉, 필요한 해시테이블의 저장공간은 4KB 크기의 입력데이터와 비교해서 약 0.5%인 20Byte를 차지한다. 따라서 유효데이터의 중복률이 0.5% 이상이면 중복제거를 통해 해시테이블의 저장공간이 확보된다. 여기서 중복률이란 스토리지에 저장된 데이터에 대한 중복 데이터의 비율을 의미한다.
유효데이터 중복제거에서 중복이 한 곳에서 다수 발생하여 하나의 유효데이터를 여러 번 참조하게 된다면 유효데이터를 삭제하기 전에 고려해야 할 점이 있다. 다수 중복이 발생한 유효데이터를 한 곳의 삭제 요청으로 삭제한다면 참조하고 있던 다른 곳에서는 실제 데이터가 삭제되어 오류가 발생한다[비특허문헌 13].
이런 오류를 방지하기 위해서 레퍼런스 카운트(또는 참조 카운트)를 유효데이터의 메타정보로 추가하였다. 레퍼런스 카운트는 초기값으로 1이 주어지고 중복이 발생할 때마다 1씩 증가시킨다. 중복된 유효데이터를 참조하고 있는 논리 주소가 삭제되면 레퍼런스 카운트를 1씩 감소시킨다. 레퍼런스 카운트가 1일 때 삭제가 발생하면 유효데이터를 삭제하여 무효데이터로 전환한다.
즉, 상기 유효 데이터는 입력 데이터에 의해 참조되는 횟수를 참조 카운트로 기록하여, 하나의 입력 데이터만 참조된 상태에서 해당 입력 데이터가 삭제되면 상기 유효 데이터가 무효 데이터로 변환된다.
다음으로, 재활용부(42)를 보다 구체적으로 설명한다.
입력데이터가 유효데이터와 중복되지 않으면 무효데이터 재활용 과정을 거친다[비특허문헌 6]. 재활용부(42)에 의한 무효데이터 재활용은 무효페이지를 유효페이지로 전환하기 때문에, 페이지의 유효화/무효화를 관리하는 FTL(31)에서 이루어진다. FTL(31)은 SSD 디바이스 장치(30)의 미들웨어로 주소 맵핑, 마모도 관리, 가비지 컬렉션의 역할을 한다[비특허문헌 14]. FTL(31)이 SSD 내부의 모든 블록과 페이지를 관리하기 때문에 무효데이터 재활용, 즉, 재활용부(42)를 FTL(31)에 추가한다.
NAND 플래시 메모리는 파일 엔트리에 블록에 대한 파일 정보가 유지된다. 각 파일 정보에는 현재 파일이 유효한지 또는 무효한지를 나타내는 플래그가 있다. 재활용부(42)는 무효데이터 재활용시에 이 플래그를 수정하여 유효데이터로 전환한다.
입력데이터의 청킹과 핑거프린트 생성 과정은 이미 중복제거 계층(41)에서 수행했기 때문에 바로 도 3과 같이 무효데이터의 해시 테이블과 중복검사를 한다.
유효페이지가 파일시스템의 갱신 및 삭제 요청으로 무효페이지로 전환된다면 해당 페이지의 해시정보는 무효데이터 해시테이블로 이동해야한다. 반대로 재활용 과정에서 무효페이지가 유효페이지로 전환된다면 유효데이터 해시테이블로 해시정보를 이동하여야 한다.
즉, 상기 유효 데이터 및 무효 데이터에 대하여 각각 청킹과 핑거프린트를 위한 해시 테이블을 구비하고, 상기 유효 데이터와 무효 데이터가 서로 변환될 때 상기 해시 테이블의 내용도 동시에 이동한다.
무효데이터 재활용 과정에서 FTL(31)의 가비지 컬렉션 정책은 중복률에 영향을 준다. 기존 가비지 컬렉션 정책은 희생블록의 마모도와 유효페이지 복사에 필요한 비용만을 고려했다[비특허문헌 15]. 하지만 무효데이터 재활용 관점에서는 가비지 컬렉션의 발생 빈도도 고려해야한다. 매우 빈번히 발생한다면 다수의 무효페이지가 삭제되어 재활용을 위한 무효페이지 수가 줄어들어 중복률이 감소한다. 반면에 가비지 컬렉션이 느슨하게 발생한다면 SSD에서 무효데이터가 차지하는 비중이 높아져서 저장공간의 활용률이 떨어지게 된다.
따라서 무효데이터 재활용을 위한 효율적인 가비지 컬렉션의 경계값을 구해야한다. 빈 블록의 비중이 경계값 이하로 감소하면 가비지 컬렉션을 실행하여 빈 블록을 확보하고 경계값 이상으로 빈 블록의 비중이 증가하면 가비지 컬렉션을 중단한다.
다음으로, 본 발명의 효과를 실험을 통해 보다 구체적으로 설명하고자 한다.
본 발명의 실험을 위한 환경은 다음과 같다. 실험 PC의 성능으로 CPU는 Intel Core2 Duo 2.40GHz, RAM은 DDR2 3GB이고 Linux Ubuntu 10.04에서 SSD 전용 시뮬레이터인 Microsoft Research SSD extension for DiskSim 4.0 기반으로 하였다.
1개의 블록은 64개의 페이지를 포함하였으며 페이지와 블록에 대한 기본 설정과 읽기, 쓰기, 삭제의 지연시간 설정은 다음의 도 4와 같다.
SSD의 총 용량은 64GB로 설정하였고 워크로드는 3가지를 사용하였다. Disksim 4.0에서 기본적으로 제공하는 Synthetic 워크로드[비특허문헌 1]와 office, download, web등의 수행과정에서 추출한 General 워크로드, E-learning, video, 3D modeling 작업의 수행과정에서 추출한 Sysmark 워크로드이다.
성능을 측정하기 위하여 본 발명의 경우, 무효데이터만 재활용 할 경우[비특허문헌 6], 유효데이터 중복제거 방법인 CAFTL의 경우[비특허문헌 7], 중복제거 및 재활용 하지 않는 일반적인 경우[비특허문헌 1]를 비교하였다. 일반적인 방법은 DiskSim을 제안한 논문을 이용하여 실험하였다.
실험을 위하여 우선적으로 고려하여야 할 사항은 가비지 컬렉션의 최적의 경계값을 구하는 것이다. Synthetic, General, Sysmark의 세 가지 워크로드에서 무효데이터 재활용 방법만을 적용했을 때 가비지 컬렉션 경계값에 따른 무효데이터의 중복률을 측정했다. 도 5를 보면 가로축의 경계값이 작을수록 세로축의 중복률이 증가한다. 그 이유는 무효데이터가 삭제되지 않고 많이 존재하여 중복이 많이 발생하기 때문이다. 본 발명을 위하여 가장 중복률이 좋은 5%를 경계값으로 사용하였다.
가비지 컬렉션의 경계값인 5%를 기준으로 본 발명, 무효데이터 재활용, 유효데이터 중복제거, 일반적인 방법의 네가지 경우를 비교하였다. 중복제거 및 재활용이 적용되지 않았을 때의 쓰기 횟수를 기준으로 정규화한 결과를 도 6에 나타내었다. 본 발명이 General 워크로드에서 약 30%로 가장 쓰기횟수가 많이 감소하였고 그 다음으로 유효데이터 중복제거 방법, 무효데이터 재활용 방법 순으로 쓰기 횟수가 감소하였다. 워크로드 별로는 General 워크로드가 가장 많이 쓰기횟수를 감소시켰다.
본 발명에서 쓰기 횟수 감소로 인하여 가비지 컬렉션 횟수도 감소하게 된다. 각각의 워크로드 별로 가비지 컬렉션의 횟수를 도 7에 나타내었다. 쓰기 횟수 비교에서와 마찬가지로 본 발명이 General 워크로드에서 약 20%로 가장 가비지 컬렉션 횟수가 적었다.
마지막으로 각 방법들의 I/O 지연시간을 비교하였다. 핑거프린트를 생성하고 비교하는 과정에서 지연시간이 생기지만 I/O 지연시간이 긴 가비지 컬렉션 횟수가 감소하여 본 발명에서 I/O 성능은 약간 상승하였다. 도 8에서 보면 General 워크로드에서 약 9% 정도로 가장 많이 감소한 것을 알 수 있다.
본 발명에서는 SSD의 블록 당 쓰기 가능 횟수 제한 문제와 I/O 성능을 향상시키기 위하여 유효데이터 중복제거 및 무효데이터 재활용 방법을 제안하였다. 본 발명은 파일시스템에서 유효데이터 중복제거를 하고 FTL에서 무효데이터 재활용을 함으로써 쓰기 횟수를 감소시켰고 그에 따라서 가비지 컬렉션 횟수도 감소하였다. 그 결과 SSD의 마모도가 향상되었고 I/O 성능이 향상되었음을 확인 할 수 있었다.
이상, 본 발명자에 의해서 이루어진 발명을 실시 예에 따라 구체적으로 설명하였지만, 본 발명은 실시 예에 한정되는 것은 아니고, 그 요지를 이탈하지 않는 범위에서 여러 가지로 변경 가능한 것은 물론이다.
10 : 운영체제 20 : 파일시스템
30 : SSD 디스크 장치(SSD) 31 : 플래시변환계층(FTL)
40 : 중복제거 및 재활용 시스템 41 : 중복제거부
42 : 재활용부

Claims (8)

  1. 운영체제의 파일 시스템을 통해 SSD(Solid State Disk) 디스크 장치에 데이터(이하 입력 데이터)를 저장할 때, 상기 SSD 디스크 장치에 저장된 유효 데이터 및 무효 데이터를 이용하여, 상기 입력 데이터를 저장하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템에 있어서,
    상기 입력 데이터와 중복된 상기 유효 데이터가 있는지를 검사하여, 중복된 유효 데이터가 있으면 상기 입력 데이터의 참조를 중복된 데이터의 참조로 정하는 중복제거부; 및,
    중복된 유효 데이터가 없으면 상기 입력 데이터와 중복된 무효 데이터가 있는지를 검사하여, 중복된 무효 데이터가 있으면, 상기 무효 데이터를 상기 입력 데이터로 재활용하는 재활용부를 포함하고,
    상기 무효 데이터는 상기 입력 데이터가 상기 SSD 디스크 장치에 물리적으로 저장되어 있으되 상기 입력 데이터로 논리적으로 참조되지 않은 데이터이고,
    상기 유효 데이터는 상기 입력 데이터가 상기 SSD 디스크 장치에 물리적으로 저장되어 있고 상기 입력 데이터로 논리적으로 참조되고 있는 데이터이고,
    상기 재활용부는 중복되는 무효 데이터를 유효 데이터로 변경하고, 상기 입력 데이터의 참조를 변경된 유효 데이터의 참조로 정하여 재활용하는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
  2. 제1항에 있어서,
    상기 중복제거부는 상기 파일 시스템에 설치되어 실행하고,
    상기 재활용부는 상기 SSD 디스크 장치의 플래시 변환 계층에 설치되어 실행하는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 중복제거부는 즉시 중복제거 방식을 이용하는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
  5. 제1항에 있어서,
    상기 입력 데이터를 동일한 청크 단위로 나누어 중복 검사를 하는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
  6. 제1항에 있어서,
    상기 입력 데이터에 해시함수를 적용하여 핑거프린트를 생성하여 중복 검사를 하는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
  7. 제1항에 있어서,
    상기 유효 데이터 및 무효 데이터에 대하여 각각 청킹과 핑거프린트를 위한 해시 테이블을 구비하고, 상기 유효 데이터와 무효 데이터가 서로 변환될 때 상기 해시 테이블의 내용도 동시에 이동되는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
  8. 제1항에 있어서,
    상기 유효 데이터는 입력 데이터에 의해 참조되는 횟수를 참조 카운트로 기록하여, 하나의 입력 데이터만 참조된 상태에서 해당 입력 데이터가 삭제되면 상기 유효 데이터가 무효 데이터로 변환되는 것을 특징으로 하는 SSD 스토리지의 데이터 중복제거 및 재활용 시스템.
KR1020130038170A 2013-04-08 2013-04-08 Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템 Expired - Fee Related KR101430552B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130038170A KR101430552B1 (ko) 2013-04-08 2013-04-08 Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130038170A KR101430552B1 (ko) 2013-04-08 2013-04-08 Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템

Publications (1)

Publication Number Publication Date
KR101430552B1 true KR101430552B1 (ko) 2014-08-18

Family

ID=51750501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130038170A Expired - Fee Related KR101430552B1 (ko) 2013-04-08 2013-04-08 Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템

Country Status (1)

Country Link
KR (1) KR101430552B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109547467A (zh) * 2018-12-19 2019-03-29 北京东土科技股份有限公司 媒体数据纠错传输及纠错方法、装置、设备及存储介质
KR20190121265A (ko) 2018-04-17 2019-10-25 한국과학기술원 Ftl 관리 장치 및 방법
KR20200050738A (ko) * 2018-11-02 2020-05-12 현대오트론 주식회사 Eeprom 제어장치 및 이를 이용한 eeprom의 데이터 기록 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100994052B1 (ko) 2009-05-06 2010-11-11 성균관대학교산학협력단 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
KR20120094782A (ko) * 2011-02-17 2012-08-27 인하대학교 산학협력단 Ssd 기반 저장장치 시스템

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100994052B1 (ko) 2009-05-06 2010-11-11 성균관대학교산학협력단 플래시 변환 계층에서 수행되는 데이터 관리 방법 및 이를 수행하는 플래시 메모리 장치
KR20120094782A (ko) * 2011-02-17 2012-08-27 인하대학교 산학협력단 Ssd 기반 저장장치 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"CAFTL: A Content-Aware Flash Translation Layer Enhancing the Lifespan of Flash Memory based Solid State Drives", Feng Cheng et. al., Proceedings of 9th USENIX Conference on File and Storage Technolog *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190121265A (ko) 2018-04-17 2019-10-25 한국과학기술원 Ftl 관리 장치 및 방법
KR20200050738A (ko) * 2018-11-02 2020-05-12 현대오트론 주식회사 Eeprom 제어장치 및 이를 이용한 eeprom의 데이터 기록 방법
KR102142675B1 (ko) 2018-11-02 2020-08-07 현대오트론 주식회사 Eeprom 제어장치 및 이를 이용한 eeprom의 데이터 기록 방법
CN109547467A (zh) * 2018-12-19 2019-03-29 北京东土科技股份有限公司 媒体数据纠错传输及纠错方法、装置、设备及存储介质

Similar Documents

Publication Publication Date Title
US11644992B2 (en) Storage system performing data deduplication, method of operating storage system, and method of operating data processing system
Zou et al. The dilemma between deduplication and locality: Can both be achieved?
US10318181B2 (en) System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
CN115114059B (zh) 使用区来管理归因于存储装置故障的容量减小
US10037158B2 (en) Vertically integrated storage
US9442844B2 (en) Apparatus, system, and method for a storage layer
KR101473837B1 (ko) Ssd 기반 스토리지 시스템에서 입출력 성능 향상을 위한 ssd 스토리지의 무효데이터 재활용 방법
CN102460371A (zh) 基于闪存的数据档案存储系统
US20150363134A1 (en) Storage apparatus and data management
KR101525453B1 (ko) 데이터 접근빈도를 이용한 raid 시스템의 데이터 복제 방법
CN115114055A (zh) 管理归因于存储装置故障的容量减小和恢复
CN115114058A (zh) 管理存在存储装置故障时的存储空间减小和再用
CN115114057A (zh) 管理在下移多层级存储器单元时的容量减小
KR20180058169A (ko) 데이터 중복 제거를 수행하는 스토리지 시스템, 스토리지 시스템 및 데이터 처리 시스템의 동작방법
US10013346B2 (en) Method of decreasing write amplification of NAND flash using a journal approach
EP4030275B1 (en) Computing system including host and storage system
CN111124258B (zh) 全闪存阵列的数据存储方法、装置、设备及可读存储介质
CN115114061A (zh) 管理归因于存储装置故障的容量减小
CN115114054A (zh) 管理发生故障的多层级存储器单元的存储空间减小和再用
KR101532283B1 (ko) Ssd 기반 raid 스토리지에서 데이터 및 패리티 디스크의 복합적 중복제거 방법
KR101430552B1 (ko) Ssd 기반 스토리지 시스템에서 중복률과 입출력 성능 향상을 위한 ssd 스토리지의 데이터 중복제거 및 재활용 시스템
US11263132B2 (en) Method and system for facilitating log-structure data organization
Ha et al. Deduplication with block-level content-aware chunking for solid state drives (SSDs)
CN108052644A (zh) 数据模式日志文件系统的数据写入方法及系统
KR101382273B1 (ko) Ssd 저장장치의 마모도 감소를 위한 ssd 기반 서버급 저장장치의 복합적 데이터 중복제거 방법

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

Fee payment year number: 1

St.27 status event code: A-2-2-U10-U11-oth-PR1002

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

St.27 status event code: A-5-5-R10-R13-asn-PN2301

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R11-asn-PN2301

St.27 status event code: A-5-5-R10-R13-asn-PN2301

FPAY Annual fee payment

Payment date: 20170626

Year of fee payment: 4

PR1001 Payment of annual fee

Fee payment year number: 4

St.27 status event code: A-4-4-U10-U11-oth-PR1001

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PR1001 Payment of annual fee

Fee payment year number: 5

St.27 status event code: A-4-4-U10-U11-oth-PR1001

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

Not in force date: 20190809

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

St.27 status event code: A-4-4-U10-U13-oth-PC1903

PC1903 Unpaid annual fee

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20190809

St.27 status event code: N-4-6-H10-H13-oth-PC1903

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000