KR102023351B1 - 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 - Google Patents

저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 Download PDF

Info

Publication number
KR102023351B1
KR102023351B1 KR1020130029113A KR20130029113A KR102023351B1 KR 102023351 B1 KR102023351 B1 KR 102023351B1 KR 1020130029113 A KR1020130029113 A KR 1020130029113A KR 20130029113 A KR20130029113 A KR 20130029113A KR 102023351 B1 KR102023351 B1 KR 102023351B1
Authority
KR
South Korea
Prior art keywords
file
frequency
data
delete delete
access
Prior art date
Application number
KR1020130029113A
Other languages
English (en)
Other versions
KR20140114618A (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 KR1020130029113A priority Critical patent/KR102023351B1/ko
Priority to US14/204,333 priority patent/US9582199B2/en
Publication of KR20140114618A publication Critical patent/KR20140114618A/ko
Application granted granted Critical
Publication of KR102023351B1 publication Critical patent/KR102023351B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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/061Improving I/O performance
    • 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
    • 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/0643Management of files
    • 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/0653Monitoring storage devices or 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
    • 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

Abstract

본 발명은 저장 장치 내 데이터 할당 촉진 시스템 및 방법에 관한 것이다. 저장 장치 내 데이터 할당 촉진 방법은 데이터에 억세스하기 위한 현재 및 과거 입/출력 요청에 대한 분석을 수행하되, 분석은 파일에 관한 저장 장치 내의 데이터 핫니스와 억세스 패턴을 포함하는 결과를 산출하며, 핫니스와 억세스 패턴은 저장 장치 내 입/출력 요청에 관한 파일의 워킹 세트를 모니터링하는 것에 의해 획득되고, 분석 결과에 기초하여 저장 장치 내 데이터 할당을 업데이트 하는 것을 포함한다.

Description

저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치{METHOD AND APPARATUS FOR ANALYZING DATA TO FACILITATE ALLOCATION IN A STORAGE DEVICE}
본 발명은 데이터(data)를 분석하는 방법 및 장치에 관한 것으로, 저장 장치의 데이터 할당을 촉진하는 것에 관한 것이다. 보다 구체적으로는, 본 발명은 데이터를 분석하는 기술에 관한 것으로, 저장 장치의 성능을 향상시키기 위해 분석 결과를 제공한다.
컴퓨팅 장치 내에서 데이터를 할당하고 캐싱(caching)하는 것은 당해 기술 분야에서 잘 알려져 있다. 저장 장치 내 최적화된 데이터 할당은 저장 장치 내 입/출력 처리 효율을 증가시킨다. 대부분의 컴퓨터(computer) 파일 시스템(file system)은 저장 장치가 데이터 할당 정책상 기능적인 관련성을 가지고 있지 않다고 간주한다. 저장 장치 드라이버(storage device driver), 파일 시스템, 그리고 저장 장치는 효율적인 억세스/검색을 위해 데이터를 할당하는 동안 공동 기능을 수행할 수 없다고 여겨질 수 있다. 예를 들면, 저장 장치 드라이버는 컴퓨터내의 저장 장치 사용 촉진을 위해 설치되고, 파일 시스템은 컴퓨터 내의 다른 레벨(level)(파일, 블록(block), 페이지(page) 등)에서 데이터를 관리하는 부분이 되며, 저장 장치는 데이터를 저장할 수 있는 SSDs(Solid State Devices)일 수 있다. SSD의 실시예는 컴퓨팅 장치와 다른 전자 제품에서 사용되는 메모리 카드(memory card)를 포함한다. 저장 장치는 기존 하드 디스크(hard disk)와 읽기, 쓰기, 그리고 다시 쓰기를 위한 원형 디스크(circular disk)를 가진 저장 장치를 더 포함할 수 있다.
현재 다수의 파일 시스템은 저장 장치의 발전과 평행 선상에 있다고 보이지 않는다. 즉, 파일 시스템의 성능과 그 데이터 할당 정책은 최신 저장 장치에 이익이 된다고 널리 인식되고 있지 않다.
본 발명이 해결하려는 과제는, 파일의 워킹 세트를 모니터링(monitoring)하는 것에 의해 저장 장치 내 데이터의 핫니스(hotness)를 결정하는 것이다.
본 발명이 해결하려는 다른 과제는, 파일의 워킹 세트를 모니터링하는 것에 의해 저장 장치 내 다양한 파일 형식 또는 워킹 세트에 억세스하는 것이다.
본 발명이 해결하려는 또 다른 과제는, 다양한 통계적이고 확률론적인 모델의 도움을 받아 저장 장치 내 파일 또는 워킹 세트에 관한 미래의 입/출력 요청(I/O request)을 예측하는 것이다.
본 발명이 해결하려는 과제들은 이상에서 언급한 과제들로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 과제를 해결하기 위한 본 발명의 일 실시예에 따른 저장 장치 내 데이터 할당 촉진 방법은, 데이터에 억세스(access)하기 위한 현재 및 과거 입/출력 요청에 대한 분석을 수행하되, 분석은 파일에 관한 저장 장치 내의 데이터 핫니스(hotness)와 억세스 패턴(access pattern)을 포함하는 결과를 산출하며, 핫니스와 억세스 패턴은 저장 장치 내 입/출력 요청에 관한 파일의 워킹 세트(working set)를 모니터링하는 것에 의해 획득되고, 분석 결과에 기초하여 저장 장치 내 데이터 할당을 업데이트 하는 것을 포함한다.
상기 다른 과제를 해결하기 위한 본 발명의 일 실시예에 따른 저장 장치 내 데이터 할당 촉진 장치는, 프로세서(processor)및 프로세서에 접속된 메모리로서, 하나 이상의 프로그램으로 구성된 저장 하부 시스템을 포함하는 메모리를 포함하되, 저장 하부 시스템은, 데이터에 억세스하기 위한 현재 및 과거 입/출력 요청에 대한 분석을 수행하되, 분석은 저장 장치 내에 존재하는 파일에 관한 데이터의 핫니스와 억세스 패턴을 포함하는 결과를 산출하고, 핫니스와 억세스 패턴은 입/출력 요청에 관한 파일의 워킹 세트를 모니터링(monitoring)하는 것에 의해 획득되고, 분석 결과에 기초하여 저장 장치 내 데이터 할당을 업데이트 하도록, 프로세서를 동작시킨다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치와 그 구성요소들을 도시한다.
도 2 는 본 발명의 다른 실시예에 따른 컴퓨팅 장치와 그 구성요소들을 도시한다.
도 3은 본 발명의 또 다른 실시예에 따른 컴퓨팅 장치를 도시한다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터를 분석하고 저장 장치 내 데이터 할당을 촉진시키는 방법을 도시한 순서도이다.
도 5a는 도 4의 데이터의 핫니스를 확인하기 위한 방법을 설명한 순서도이다.
도 5b는 도 4의 데이터의 핫니스를 확인하기 위한 다른 방법을 설명한 순서도이다.
도 6은 본 발명의 또 다른 실시예에 따른 저장 장치 내 파일의 파일 노드 구조(file node structure)의 개략도이다.
도 7은 도 4의 저장 장치 내 파일 억세스 패턴을 결정하기 위한 방법을 도시한 순서도이다.
도 8은 본 발명의 또 다른 실시예에 따른 저장 장치 내 논리 블록 주소(Logical Block Address)범위에 대한 파일 억세스 빈도를 설명한 히스토그램(histogram)이다.
도 9는 본 발명의 또 다른 실시예에 따른 저장 장치 내 미래 입/출력 요청에 관한 파일 억세스 확률을 나타내는 확률 분포이다.
여기에서 설명된 도면은 어떤 식으로든 본 개시의 범위를 제한하려는 의도가 아닌 도시 목적만을 위한 것이다.
본 발명은 데이터를 분석하고, 저장 장치 내 할당을 촉진하기 위한 장치 및 방법을 제공한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 “억세스된(connected to)” 또는 “커플링된(coupled to))”이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 “직접 억세스된(directly connected to)” 또는 “직접 커플링된(directly coupled to)”으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. “및/또는”은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
도 1은 본 발명의 일 실시예에 따른 컴퓨팅 장치와 그 구성요소들을 도시한다.
도 1을 참조하면, 컴퓨팅 장치(100)는 메모리(102), 프로세서(104), 버스(bus)(106), 디스플레이 유닛(display unit)(108), 통신 인터페이스(communication interface)(110), 송신기(112), 수신기(114) 및 ROM(Read Only Memory)(116)을 포함한다. 메모리(102)는 동작 시스템(118)을 포함한다. 동작 시스템(118)은 메모리(102)에 저장된 모든 인스트럭션(instruction)을 실행한다. 본 발명의 일 실시예에 따른 파일 시스템(120)은 동작 시스템(118)내 파일 관리에 관한 모든 기능을 수행하도록 구성된다.
파일 시스템(120)내에 존재하는 데이터 분석 모듈(data analysis module)(122)은 데이터에 억세스하기 위한 현재 및 과거 입/출력 요청에 대한 분석을 수행한다. 분석은 파일에 관한 저장 장치 내 데이터의 핫니스와 억세스 패턴에 대한 정보를 포함하는 결과를 산출한다. 핫니스와 억세스 패턴은 저장 장치 내의 입/출력 요청에 관한 파일의 워킹 세트를 모니터링하는 것에 의해 획득된다. 그 후, 데이터 할당에 대한 업데이트는 데이터 분석 모듈(122)에 의한 분석 결과에 기초하여 저장 장치 내에서 실행된다. 본 발명의 실시예에서, 데이터 분석 모듈(122)은 메모리(102)와 결부된 저장 하부 시스템 내에 존재한다. 저장 하부 시스템은 컴퓨팅 장치(100)의 내부 저장 시스템 또는 컴퓨팅 장치(100)에 접속된 외부 저장 시스템으로 볼 수 있다.
메모리(102)와 ROM(116)은 휘발성 메모리일 수도 있고, 비휘발성 메모리 일 수도 있다. 다양한 컴퓨터 판독 저장 매체는 메모리 요소에 저장되고 억세스될 수 있다. 메모리 요소는 ROM(read only memory), RAM(random access memory), EPROM(erasable programmable read only memory), EEPROM(electrically erasable programmable read only memory), 하드 드라이브(hard drive), CD(compact disk)를 다루기 위한 유동 매체 드라이브(removable media drive), DVD(digital video disk), 디스켓(diskette), 자기 테이프 카트리지(magnetic tape cartridge), 메모리 카드, 메모리 스틱™ (Memory stick™) 등과 같은 데이터 저장과 기계 판독 인스트럭션(machine-readable instruction)에 적합한 메모리를 포함할 수 있다. 데이터 분석 모듈(122)은 또한 상기 저장 매체에 대한 기계 판독 인스트럭션 형태로 저장 될 수 있다. 기계 판독 인스트럭션은 또한 컴퓨터 프로그램 상에 저장되어, 프로세서(104)에 의해 실행될 때 본 발명의 실시예에 따른 데이터 분석을 수행할 수 있다. 본 발명의 실시예에 따른 컴퓨터 프로그램은 CD―ROM(compact disk-read only memory)상에 포함되고, CD-ROM에서 비휘발성 메모리 내 하드 드라이브로 로드(load)될 수 있다.
디스플레이 유닛(108), 통신 인터페이스(110), 송신기(112), 그리고 수신기(114)와 같은 다른 구성요소들은 그 기능과 역량이 그 기술의 당업자에게 알려져 있기에 더 설명되지 않을 것이다. 컴퓨팅 장치는 저장 장치(124)에 접속된다. 컴퓨팅 장치(100)은 데이터 관리를 수행할 수 있다.
도 2 는 본 발명의 다른 실시예에 따른 컴퓨팅 장치와 그 구성요소들을 도시한다.
도 2를 참조하면, 데이터 분석 모듈(122)은 필터 드라이브(filter driver)(202) 내에 존재한다. 필터 드라이브(202)는 본 발명의 실시예에 따른 컴퓨팅 장치(100)의 동작 시스템(118)에 따라 설치될 수 있다. 필터 드라이브(202)는 컴퓨팅 장치(100) 내에서 읽혀지도록 허용된 외부 메모리 장치(저장 장치(124)와 같은) 로 구성될 수 있다. 필터 드라이버(202) 내의 데이터 분석 모듈(122)은 데이터에 억세스하기 위해 현재 및 과거 입/출력 요청에 대한 분석을 수행한다. 분석은 파일에 관한 저장 장치(124) 내 데이터의 핫니스와 억세스 패턴에 대한 정보를 포함하는 결과를 산출한다.
컴퓨팅 장치(100)의 다른 구성요소들은 도 1에서 설명되고 있기에, 더 설명되지 않을 것이다.
도 3은 본 발명의 또 다른 실시예에 따른 컴퓨팅 장치를 도시한다.
도 3을 참조하면, 컴퓨팅 장치(100)는 저장 장치(124)에 접속된다. 데이터 분석 모듈(122)은 저장 장치(124)에 구성된다. 본 발명의 실시예에 따른 데이터 분석 모듈(122)은 워킹 세트 관리 모듈(304)을 포함한다. 워킹 세트 관리 모듈(304)은 저장 장치(124)에서 수신된 현재 또는 최근의 입/출력 요청에 관한 파일을 관리한다.
도 4는 본 발명의 또 다른 실시예에 따른 데이터를 분석하고 저장 장치 내 데이터 할당을 촉진시키는 방법을 도시한 순서도이다.
도 4를 참조하면, 방법(400)은 복수의 데이터 분석 단계를 포함한다. 방법(400)은 입/출력 요청에 관한 데이터의 핫니스를 확인하는 기본 단계(402)로 시작한다. 예를 들면, 입/출력 요청의 핫니스 정보는 핫니스 레벨(0 ― 255)의 형태로 저장 장치(124)로 보내진다. 다른 예를 들어보자면, 낮은 핫니스 레벨은 덜 빈번하게 업데이트된 데이터(콜드(COLD))를 나타내며 높은 핫니스 레벨은 가장 빈번하게 업데이트된 데이터(핫(HOT))을 나타낸다. 단계(404)에서, 현재 및 과거 입/출력 요청에 관한 각각의 논리 블록 주소에 대한 억세스 빈도는 결정된다. 각각의 파일의 억세스 빈도에 기초하여 억세스 패턴은 각각의 논리 블록 주소 범위에 대해 결정된다. 단계는 406으로 나타낸다. 그 후, 단계(408)에서, 파일 핫니스에 대한 정보와 억세스 빈도는 분석을 수행하고, 저장 장치(124)내의 모든 파일을 위한 핫니스 레벨과 억세스 패턴을 결정하기 위해 사용된다. 단계(410)에서, 분석 결과는 저장 장치(124)내 최적화된 데이터 할당을 위해 사용된다.
도 5a는 도 4의 데이터의 핫니스를 확인하기 위한 방법을 설명한 순서도이다.
도 5a를 참조하면, 핫니스 정보를 확인하는 것에 관한 도 4의 단계(402)가 설명된다. 단계(402)는 핫니스 정보를 확인하기 위한 하부 단계를 포함한다. 단계(502)에서, 처음에는, 파일의 메타 데이터가 송신된 입/출력 요청에 대해 추출된다. 본 발명의 실시예에서, 데이터 분석 모듈(122)은 저장된 핫, 콜드 패턴의 파일 정보를 포함한다. 단계(504)에서, 이전에 저장된 파일 포맷 리스트가 검색된다. 본 발명의 일 실시예에서, 파일이 한번 쓰고 여러 번 읽는, 읽기 전용 파일 중 하나일 때, 파일은 콜드 패턴을 가지는 것으로 저장된다. 콜드 카테고리에 속하는 일부 파일 형식에는 JPG, JPEG, BMP, GIF, PNG, TIF, TIFF, JP2, DCR, RAW, JFIF, JPE, MP3, WMA, AAC, IFF, WMV, WAV, MID, MIDI, AIF, AU, AVI, CDA, RA, M3U, FLAC, MP4, MPG, MSV, QCP, RMI, OGM, 3GP, 3GPP, 3G2, ASF, AVI, ASX, FLV, RM, RMVB, SWF, MPEG, MOV, DIVX, XVID, DAT, FLC, OGG, VOB, MKV, MOI, VGZ 및 VID가 있다. 일부 파일들 즉, 빈번하게 업데이트되는 파일 형식들은 핫 카테고리에 속한다. 핫 카테고리에 속하는 파일의 예로는 LOGFILE, MFT, BITMAP, DIRECTORY, ETL, EVTX, PF, and LOG가 있다. 저장 장치(124)와 같은 솔리드 스테이트 저장 장치 (solid state storage device)에서, 파일들은 데이터로 표현되고, 데이터는 블록과 페이지의 형태로 저장 장치(124)내에 존재한다. 비콜드 카테고리 파일의 경우, 페이지와 블록에 대한 억세스 빈도 표를 유지한다. 단계(506)에서, 입/출력 요청에 대한 파일의 카테고리는 (단계(502)에서 추출된 메타 데이터로부터 획득된) 파일 포맷에 기초하여 결정된다. 예를 들면, 만약 데이터 분석 모듈(122)이 도 3에서 도시된 것처럼 저장 장치(124) 내에 존재한다면, 저장 장치는 결정된 파일 포맷에 대해 알게되고, 단계는 508이다.
본 발명의 실시예에서, 저장 장치(124)내 파일의 다른 카테고리는 언노운 패턴(unknown pattern)으로 존재할 수 있다. 언노운 패턴은 이 두 카테고리 내에 속하지 않을 수도 있는 파일 형식이다. 그러한 파일 형식은 언노운으로 불린다. 이 타입은 빈번하게 업데이트 되거나 읽기 전용일 수 있다. 언노운 카테고리의 일부 예로는 C, CPP, TXT, DOC, XLS, DOCX, PPT, PPTX 및 XLSX가 있다. 페이지와 블록에 대한 억세스 빈도 표는 이 파일 형식으로 유지된다.
도 5b는 도 4의 데이터의 핫니스를 확인하기 위한 다른 방법을 설명한 순서도이다. 즉, 도 5b는 각각의 입/출력 요청에 대한 핫니스 레벨을 결정하거나 확인하는 단계에 포함된 하부 단계의 리스트를 설명한다. 단계(510)에서, 입/출력 요청은 저장장치(124)와 같은 저장 장치 내의 파일에 억세스하기 위한 컴퓨팅 장치(100)에서 수신된다. 단계(502)에서, 데이터 분석 모듈(122)은 저장 장치(124)내에 존재하는 모든 파일의 메타 데이터를 추출한다. 도면에서 보여지는 것처럼, 단계(512)에서, 요청된 파일 포맷이 콜드 포맷인지 여부가 결정된다. 만약 단계(514b)에서 그렇다면, 핫니스 정보(402)에 대한 결정은 단계(514b)에서 끝난다. 만약 파일 포맷이 단계(514a)에서 콜드 포맷이 아니라면, 파일 메타 데이터는 입/출력 요청에서 요청된 파일에 대해 수신된다. 각각의 논리 블록 주소 범위, 페이지 또는 블록에 대한 억세스 수(억세스 빈도)는 단계(515)에서 업데이트 되고, 현재 입/출력 요청을 수신한다. 처음에는, 현재 입/출력 요청 파일에 관한 범위가 결정되고, 입/출력 요청을 받는 즉시, 논리 블록 주소 범위에 기초하여 해당 항목(페이지/블록)의 빈도가 ‘1’만큼 증가된다. 본 발명의 실시예에서, 논리 블록 주소 내 특정 블록을 확인하기 위해 사용된 블록 번호는, 논리 블록 주소 확인 번호가 저장 장치(124)내의 블록 수로 나누어질 때 획득된 몫이다. 본 발명의 동일 실시예에서, 블록에 해당하는 페이지 번호(페이지의 식별자)가 블록 내 페이지 수로 논리 블록 주소에 의해 나누어질 때 리마인더(reminder)라 한다.
단계(516)에서, 업데이트된 빈도와 하나 이상의 통계 파라미터(statistical parameter)는 입/출력 요청에 해당하는 파일에 관한 각각의 페이지와 블록으로 결정된다. 최대 빈도는 단계(518)에서 검색된다. 최대 빈도는 파일 최대 빈도와 워킹 세트 최대 빈도와 같은 서로 다른 값으로 참조할 수 있다.
파일 최대 빈도 값은 파일에 관한 최대 억세스 수를 가진 페이지 또는 블록 빈도를 참조할 수 있다. 워킹 세트 최대 빈도 값은 워킹 세트(최근에 요청/억세스된 파일 세트) 중 파일의 최대 빈도를 참조할 수 있다. 본 발명의 다른 실시예에서, 워킹 세트는 현재 요청/억세스된 파일 세트를 포함할 수 있다. 단계(520)에서, 핫니스 레벨은 다른 것들에 관한 파일의 빈도 정보로 컴퓨팅된다. 컴퓨팅된 핫니스 레벨은 여기에 도시된다:
예를 들면, 파일(A1, A2, A3, A4 및 A5)을 가진 워킹 세트 “A”를 고려하고 그것들 중 ‘Max A’에 의해 나타난 최대 빈도를 가지며 시간 “T1”에서 활성화했다. ‘Max A’는 파일에 관한 페이지, 블록 또는 논리 블록 주소 범위의 최대 억세스 빈도를 참조할 수 있다. 동일한 예에서, 파일 ‘A2’에 속하는 논리 블록 주소 범위를 가진 블록에 억세스하기 위해 수신된 입/출력 요청이 있다는 것을 고려한다. 입/출력 요청의 핫니스는 현 워킹 세트 내 최대 빈도의 핫니스와 비교된다는 것을 알 수 있다. 본 발명의 실시예에 따른 상대 핫니스는:
이 논리 블록 주소에 대한 입/출력 요청의 상대 핫니스 레벨, A2 =
(논리 블록 주소 범위에서의 빈도 * 256)/ MaxA
로 컴퓨팅될 수 있다.
본 발명의 실시예에서, ‘논리 블록 주소 범위의 빈도’는 파일의 논리 블록 주소 범위에 관한 모든 블록 또는 페이지의 빈도 중 가장 높은 빈도를 참조할 수 있다.
본 발명의 다른 실시예에서, 핫니스 레벨 탐색은 페이지의 빈도 및 파일이 최근에 얼마나 억세스되었는지를 결합한 것에 기초하여 수행될 수 있다. 단계는 상대 핫니스를 컴퓨팅하기 위해 설명한 공식으로 도시될 수 있다:
상대 핫니스 레벨 = ((논리 블록 주소 범위에서의 빈도* 255)/ (파일 최대 빈도)) + ((파일 최대 빈도 * 255)/ 워킹 세트 최대 빈도) /2)
‘파일 최대 빈도’는 파일 ‘A2’에 관한 최대 빈도(가장 높은 억세스 빈도)로 볼 수 있다.
본 발명의 다른 실시예에서, 입/출력 요청의 절대 핫니스가 결정된다. 입/출력 요청에 대한 절대 핫니스는:
입/출력 요청에 대한 절대 핫니스 = (논리 블록 주소 범위의 빈도 * 256)/ ‘최대 A’
로 결정된다.
‘최대 A’는 항상 저장 장치(124)내의 모든 파일 중 가장 높은 억세스 빈도 값이다.
도 6은 본 발명의 또 다른 실시예에 따른 저장 장치 내 파일의 파일 노드 구조(file node structure)의 개략도이다.
도 6을 참조하면, 파일 노드 구조(600)는 파일 이름, 파일 최대 빈도, 표준 편차, 평균, 기대 논리 블록 주소와 같은 602에서의 파일 세부사항을 제공하고 페이지 표(604)는 본 발명의 일 실시예에 따른 워킹 세트를 나타내는 파일 세트를 나타낸다. 각각의 파일은 워킹 세트 최대 빈도로부터 결정된 파일 최대 빈도로 보여진다. 이 정보는 핫니스 레벨을 결정하는 단계에서 사용될 수 있다. 본 발명의 일 실시예에 따른 워킹 세트는 동적 업데이트가 되고, 업데이트된 워킹 세트는 호스트(host)시스템에 의해 억세스된 액티브 파일의 업데이트된 메타 데이터를 나타내며, 호스트 시스템은 컴퓨팅 장치(100)에 해당한다. 본 발명의 다른 실시예에서, 파일 마디가 워킹 세트에서 삭제될 때, 파일에 관한 모든 페이지 표, 블록 표는 삭제되고 최대 빈도는 유지되지 않는다.
첫 번째 입/출력 요청이 ‘Temp.doc’와 같은 파일에 억세스하기 위해 수신될 때, (그림에서 보여지는)해당 블록 번호 1024와 페이지 번호 2가 컴퓨팅되고 페이지 내 빈도가 10으로 업데이트 된다.
예를 들면, 이 예에서 입/출력 요청에 대한 핫니스 레벨은 ‘워킹 세트 최대 빈도’ (예시 값 = 27), ‘지원된 최대 핫니스 레벨 표시(maximum hotness level indications supported’ (예시 값 =255), ‘현재 입/출력 요청에 관한 페이지 빈도’ (예시 값 = 10)을 필요로 하고 설명한 공식 중 하나인 핫니스 레벨 = (10 * 255)/ 27 = 85로 주어진다.
도 7은 도 4의 저장 장치 내 파일 억세스 패턴을 결정하기 위한 방법을 도시한 순서도이다.
도 7을 참조하면, 단계(406)는 하부 단계의 번호를 포함한다. 파일은 저장 장치(124) 내의 논리 블록 주소 범위의 번호를 포함한다. 단계(702)에서, 워킹 세트의 논리 블록 주소 범위의 억세스 빈도가 결정된다. 그 후, 히스토그램은 단계(704)에서 논리 블록 주소 범위의 억세스 빈도로 플로팅된다(plotted). 평균, 중간값, 그리고 표준 편차와 같은 통계 파라미터는 플로팅된 히스토그램에 기초하여 컴퓨팅된다. 단계는 706이다. 평균, 중간값, 그리고 표준 편차와 같은 통계 파라미터는 당해 기술에서 잘 알려져 있고, 수집된 억세스 데이터 빈도는 그것들을 결정하기 위해 사용된다. 워킹 세트 내 파일의 논리 블록 주소 범위의 억세스 패턴(입/출력 요청 형식)은 단계(708)에서 결정된다. 결정된 대로, 억세스 패턴에 기초하여 저장 장치(124)와 파일 내 핫 스팟이 결정될 수 있다.
논리 블록 주소의 억세스 패턴은 저장 장치(124)의 사용자에 의해 가장 빈번하게 억세스된 파일의 일부 페이지에 대한 인사이트(insight)를 제공한다. 예를 들면, 파일은 ‘순차적으로 커지는 패턴’, ‘임의로 커지는 패턴’, ‘순차적으로 작아지는 패턴’ 그리고 ‘임의로 작아지는 패턴’ 과 같은 억세스 패턴에 기초하여 분류 될 수 있다. 그러나, 다른 카테고리는 또한 당해 기술의 당업자에게 알려진 것으로 예상할 수 있다. 결정된 억세스 패턴은 미래의 입/출력 요청을 예측하기 위해 사용될 수 있다. 단계는 712이다. 본 발명의 일 실시예에서, 만약 결정된 억세스 패턴이 순차적으로 커지는 패턴이고, 현재 입/출력 요청이 논리 블록 주소 10과 입/출력 사이즈 5라면, 다음 입/출력 요청은 논리 블록 주소 15와 사이즈 5에 있을 것으로 예측된다.
도 8은 본 발명의 또 다른 실시예에 따른 저장 장치 내 논리 블록 주소(Logical Block Address)범위에 대한 파일 억세스 빈도를 설명한 히스토그램(histogram)이다.
도 7에서 설명된 단계(702)는 본 실시예에서 도시된다. 데이터 분석 모듈(122)은 이 히스토그램을 검색할 수 있고, 저장 장치(124) 내에 존재하는 핫 스팟을 유도할 수 있다. 그 후, 결과는 저장 장치(124)내의 더 좋은 할당 정책을 위해 사용될 수 있다.
본 발명의 일 실시예에서, 순차 억세스 패턴은 도 8에 플로팅된 히스토그램에서 유래된다. 예를 들어, 논리 블록 주소 범위를 가진 파일의 경우, 빈도 vs. 논리 블록 주소 범위의 히스토그램이 플로팅된다. 파일의 순차 억세스의 경우, 파일에 속한 논리 블록 주소 범위는 저장 장치(124)의 사용자에 의해 억세스되어왔던 모든 블록에 대해 동일한 빈도를 가진다. 논리 블록 주소의 현재 워킹 세트에 대해 주어진 빈도의 평균과 표준 편차를 얻는 것은 평균 μ = 1 과 표준 편차 σ = 0과 같은 특정 통계 파라미터를 준다. 그래서, 현재의 억세스 패턴에 따른 인사이트를 획득하기 위해서는, 파일에 할당된 주어진 순차 억세스 논리 블록 주소에 대한 빈도의 표준 편차가 대략 ‘0’ 이 될 수 있다는 것을 알 수 있다.
예를 들면, 파일이 순차적인 경우의 이점은 보통 이 파일들 내 블록들을 “콜드”로 참조할 수 있다는 것과 저장 장치(124)가 동일한 것에 대해 영구 블록을 할당 할 수 있다는 점이다. 이는 데이터 할당 정책상 최적이다. 게다가, 파일이 ‘콜드’라는 추정은 원형 버퍼(buffer)로 억세스된 파일들이라면 틀릴 지도 모른다. 파일이 저장 장치(124)내의 특정 사이즈가 될 때, 적용은 다시 제1 할당된 논리 블록 주소 범위로부터 시작할 수 있다. 원형 버퍼 파일 형식을 가지는 이 파일 형식은 탐색될 수 있으며, 기존의 논리 블록 주소 범위로부터의 빈도 차가 항상 ‘1’일 수 있다.
다른 예에서, 임의 억세스 패턴은 플로팅된 히스토그램의 도움으로 이해할 수 있다. 수많은 임의 억세스 패턴이 있을 수 있고, 임의로 작아지는 패턴, 임의로 커지는 패턴과 같은 단순한 “임의 억세스”보다 적절한 카테고리로 분류될 수 있다. 본 발명의 일 실시예에서, 임의로 작거나 커지는 억세스 패턴은 논리 블록 주소 범위에서 입/출력 요청 사이즈를 평균 입/출력 요청과 비교하는 것에 의해 결정될 수 있다. 게다가, 페이지 빈도는 입/출력 요청의 사이즈가 작을 때, 입/출력 요청 파일이고, 블록 빈도는 입/출력 요청 사이즈가 클 때, 업데이트된 입/출력 요청 파일이다.
예를 들면, 입/출력 요청 사이즈는:
입/출력 요청 평균 사이즈 = (입/출력 요청 평균 사이즈*(논리 블록 주소 범위에서 수신된 입/출력 요청 수)+ 현재 입/출력 요청의 사이즈)/(논리 블록 주소 범위에서 수신된 입/출력 요청 수 + 1)로 컴퓨팅된다.
더 많은 클래스 수(more number of classes)는 파일을 위해 수신된 모든 요청에 대한 입/출력 평균 사이즈에 기초하여 정의 될 수 있다. 예를 들면, 논리 블록 주소 워킹 세트에 대한 주어진 억세스 빈도 평균과 표준편차가 μ = 30 and σ = 45.83일 때가 있다. 주어진 빈도 세트에 대한 표준 편차가 매우 높고, 주어진 파일 억세스 패턴이 임의적이라고 할 수 있다. 또한 빈도 분포 내에서 “핫 스팟”을 찾는 것이 가능 할 수 있다. 예를 들면, ‘σ’가 임계값 보다 많고, 최대 빈도가 평균 빈도보다 높다면, 핫 스팟으로 확인될 수 있다.
통계적 인사이트의 이점은 저장 장치(124)의 향상된 수명과 내구성이다. 이는 저장 장치(124)의 핫 데이터와 콜드 데이터를 별도로 분리하는 것에 의해 성취되고, 한 영역 내 실효성 없는 데이터와 실효성 있는 데이터를 통합할 수 있으며, 핫니스 인식 가비지 콜렉터(hotness aware garbage collector)는 저장 장치(124)내에 구성될 수 있다. 저장 장치(124)가 플래시 메모리(flash memory)이고 핫 데이터가 더 많은 쓰기 또는 지우기 사이클(cycle)을 가진 블록으로 할당될 수 있다면, 핫니스 정보를 이용하는 것에 의해, 콜드 데이터는 저장 유닛(124)의 낡은 블록으로 할당될 수 있다. 이는 결과적으로 저장 장치(124)의 수명을 증가시킨다.
도 9는 본 발명의 또 다른 실시예에 따른 저장 장치 내 미래 입/출력 요청에 관한 파일 억세스 확률을 나타내는 확률 분포이다.
수신되고 처리된 과거, 현재 입/출력 요청에 기초하여, 논리 블록 주소/블록과 페이지를 포함하는 넓은 범위의 파일에 대한 확률 분포는 저장 장치(124)메모리 할당과 데이터 캐싱(caching)정책을 최적화하는 것을 돕기 위해 사용될 수 있도록 플로팅된다. 저장 장치(124)에서 주어진 동작량에 대해, 빈도, 평균, 그리고 표준 편차는 저장 장치(124)내의 특정한 파일 억세스 패턴을 예측할 수 있는 확률 분포 함수에 삽입될 수 있다.
워킹 세트의 입/출력 요청을 예측하는 것에 의해, 저장 장치(124)는 읽기 동작의 경우 데이터를 프리-패치(pre-fetch)하거나 쓰기를 위한 억세스 패턴에 기초하여 버퍼 할당을 최적화할 수 있다. 베이시안(Bayesian)과 같은 확률 모델은 각각의 파일/워킹 세트을 위해 수집된 빈도 정보에 대해 적용될 수 있고, 분포 모델을 사용하여, 다음 가능한 위치의 확률과 입/출력 요청 사이즈를 알 수 있다.
본 실시예에서 사용되는 사용되는 ‘부’ 또는 ‘모듈’이라는 용어는 소프트웨어 또는 FPGA또는 ASIC과 같은 하드웨어 구성요소를 의미하며, ‘부’ 또는 ‘모듈’은 어떤 역할들을 수행한다. 그렇지만 ‘부’ 또는 ‘모듈’은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. ‘부’ 또는 ‘모듈’은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 ‘부’ 또는 ‘모듈’은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함할 수 있다. 구성요소들과 ‘부’ 또는 ‘모듈’들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 ‘부’ 또는 ‘모듈’들로 결합되거나 추가적인 구성요소들과 ‘부’ 또는 ‘모듈’들로 더 분리될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.

Claims (31)

  1. 데이터 분석 모듈에서, 데이터(data)에 억세스(access)하기 위한 현재 및 과거 입/출력 요청에 대한 분석을 수행하되, 상기 분석은 파일(file)에 관한 저장 장치 내의 데이터의 핫니스(hotness)와 억세스 패턴(access pattern)을 포함하는 결과를 산출하며, 상기 핫니스와 억세스 패턴은 상기 저장 장치 내 상기 입/출력 요청에 관한 파일의 워킹 세트(working set)를 모니터링하는 것에 의해 획득되고,
    상기 데이터 분석 모듈에서,
    상기 파일의 파일 메타데이터를 검색하고,
    입/출력 요청을 확인하여 논리 블록 주소(Logical Block Addressing)의 억세스 빈도를 업데이트하고,
    상기 파일의 최대 빈도를 검색하되, 상기 최대 빈도는 상기 파일 내에 존재하는 모든 블록 중 하나의 블록에 대해 시도된 최대 억세스 수에 대한 카운트(count)를 나타내고,
    워킹 세트 최대 빈도를 검색하되, 상기 워킹 세트 최대 빈도는 복수의 파일들 중 가장 높은 빈도를 나타내고,
    상기 업데이트된 빈도에 기초하여 데이터의 핫니스 레벨(level)과, 상기 파일의 최대 빈도와 상기 워킹 세트 최대 빈도 중 적어도 하나를 컴퓨팅하고,
    상기 데이터 분석 모듈에서, 상기 분석 결과에 기반하여 상기 저장 장치 내 데이터 할당을 업데이트(update)하는 것을 포함하되,
    상기 워킹 세트는 복수의 파일들을 포함하고,
    상기 워킹 세트를 모니터링하는 것은, 상기 복수의 파일들 중 억세스 빈도가 가장 높은 파일의 억세스 빈도를 결정하는 것을 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  2. 삭제
  3. 제 1항에 있어서,
    상기 현재 및 과거 입/출력 요청에 대한 분석을 수행하는 것은,
    상기 파일의 메타데이터(metadata)를 추출하고,
    상기 메타데이터로부터 상기 저장 장치 내의 상기 파일의 포맷(format)을 결정하고,
    상기 파일의 포맷에 기반하여 상기 핫니스를 결정하는 것을 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  4. 제 3항에 있어서,
    상기 데이터 분석 모듈에서 상기 파일에 관한 상기 데이터의 핫니스와 억세스 패턴을 포함하는 결과를 산출하는 것은,
    상기 데이터 분석 모듈에서, 상기 파일의 포맷이 콜드 카테고리(COLD category)내에 존재할 때 상기 데이터를 콜드로 확인하는 것을 더 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  5. 삭제
  6. 제 1항에 있어서,
    상기 데이터 분석 모듈에서 상기 데이터의 핫니스 레벨을 컴퓨팅하는 것은,
    상기 업데이트된 빈도, 상기 파일의 최대 빈도, 그리고 상기 워킹 세트 최대 빈도를 사용하는 것에 의해 논리 블록 주소의 상대 핫니스를 컴퓨팅하고,
    상기 업데이트된 빈도 및 상기 저장 장치 내에서 가장 많이 억세스된 데이터의 억세스 빈도를 나타내는 저장 장치 최대 빈도를 이용하여 논리 블록 주소의 절대 핫니스를 컴퓨팅하는 것을 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  7. 제 6항에 있어서,
    상기 데이터 분석 모듈에서, 상기 억세스 수에 대한 카운트에 기반하여 상기 파일 내의 핫 스팟(hot spot)을 결정하는 것을 더 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  8. 제 6항에 있어서,
    상기 입/출력 요청을 확인하여 논리 블록 주소의 억세스 빈도를 업데이트하는 것은,
    상기 입/출력 요청의 사이즈(size)가 작을 때에는 상기 입/출력 요청의 상기 파일의 페이지 빈도를 업데이트 하고, 상기 입/출력 요청의 사이즈가 클 때에는 상기 입/출력 요청의 상기 파일의 블록 빈도를 업데이트 하는 것을 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  9. 제 1항에 있어서,
    상기 현재 및 과거 입/출력 요청에 대한 상기 분석을 수행하는 것은,
    상기 워킹 세트를 동적 업데이트 하는 것을 포함하되, 상기 워킹 세트는 호스트 시스템(host system)에 의해 억세스된 액티브(active)파일의 업데이트된 메타데이터를 나타내는 저장 장치 내 데이터 할당 촉진 방법.
  10. 제 9항에 있어서,
    상기 워킹 세트를 동적으로 업데이트하는 것은,
    상기 입/출력 요청의 평균, 표준 편차, 억세스 빈도 최대 값, 그리고 평균 사이즈를 포함하고, 상기 워킹 세트 내 상기 파일 각각의 페이지와 블록들로 결정된 하나 이상의 통계 파라미터(statistical parameter)를 결정하고,
    상기 워킹 세트 내 상기 파일 각각의 상기 페이지와 블록들에 대한 상기 하나 이상의 통계 파라미터의 데이터를 첨부하는 것을 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  11. 제 10 항에 있어서,
    상기 데이터 분석 모듈에서 논리 블록 주소의 상기 억세스 빈도 최대 값에 기초하여 히스토그램(histogram)을 플로팅(plotting)하고,
    상기 데이터 분석 모듈에서 상기 히스토그램과 상기 하나 이상의 통계 파라미터에 기반하여 순차적으로 커지는(sequential large) 패턴, 순차적으로 작아지는(sequential small)패턴, 임의로 커지는(random large)패턴, 그리고 임의로 작아지는(random small)패턴 중 어느 하나로 상기 파일의 억세스 패턴을 결정하는 것을 더 포함하는 저장 장치 내 데이터 할당 촉진 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020130029113A 2013-03-19 2013-03-19 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치 KR102023351B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130029113A KR102023351B1 (ko) 2013-03-19 2013-03-19 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치
US14/204,333 US9582199B2 (en) 2013-03-19 2014-03-11 Method and an apparatus for analyzing data to facilitate data allocation in a storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130029113A KR102023351B1 (ko) 2013-03-19 2013-03-19 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140114618A KR20140114618A (ko) 2014-09-29
KR102023351B1 true KR102023351B1 (ko) 2019-11-04

Family

ID=51570025

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130029113A KR102023351B1 (ko) 2013-03-19 2013-03-19 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치

Country Status (2)

Country Link
US (1) US9582199B2 (ko)
KR (1) KR102023351B1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9563382B2 (en) 2014-06-05 2017-02-07 Sandisk Technologies Llc Methods, systems, and computer readable media for providing flexible host memory buffer
US9507722B2 (en) 2014-06-05 2016-11-29 Sandisk Technologies Llc Methods, systems, and computer readable media for solid state drive caching across a host bus
US9639275B2 (en) * 2014-08-06 2017-05-02 Seagate Technology Llc Managing data within a storage device based on file system metadata
US10228854B2 (en) * 2014-08-20 2019-03-12 Sandisk Technologies Llc Storage devices and methods for optimizing use of storage devices based on storage device parsing of file system metadata in host write operations
US10007442B2 (en) * 2014-08-20 2018-06-26 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically deriving hints from accesses to a storage device and from file system metadata and for optimizing utilization of the storage device based on the hints
US10268584B2 (en) * 2014-08-20 2019-04-23 Sandisk Technologies Llc Adaptive host memory buffer (HMB) caching using unassisted hinting
US10007433B2 (en) * 2015-01-21 2018-06-26 Sandisk Technologies Llc Systems and methods for performing adaptive host memory buffer caching of transition layer tables
US10101918B2 (en) * 2015-01-21 2018-10-16 Sandisk Technologies Llc Systems and methods for generating hint information associated with a host command
KR20160150384A (ko) 2015-06-22 2016-12-30 에스케이하이닉스 주식회사 데이터 저장 장치 및 그것의 동작 방법
US11461010B2 (en) 2015-07-13 2022-10-04 Samsung Electronics Co., Ltd. Data property-based data placement in a nonvolatile memory device
US10509770B2 (en) * 2015-07-13 2019-12-17 Samsung Electronics Co., Ltd. Heuristic interface for enabling a computer device to utilize data property-based data placement inside a nonvolatile memory device
US10282324B2 (en) 2015-07-13 2019-05-07 Samsung Electronics Co., Ltd. Smart I/O stream detection based on multiple attributes
US20170139826A1 (en) * 2015-11-17 2017-05-18 Kabushiki Kaisha Toshiba Memory system, memory control device, and memory control method
CN105511942B (zh) * 2015-12-02 2019-02-19 华为技术有限公司 语言虚拟机中热点中间代码的识别方法以及装置
US9927997B2 (en) 2015-12-21 2018-03-27 Sandisk Technologies Llc Methods, systems, and computer readable media for automatically and selectively enabling burst mode operation in a storage device
US20170242625A1 (en) * 2016-02-24 2017-08-24 Samsung Electronics Co., Ltd. Apparatus for ssd performance and endurance improvement
US10168917B2 (en) * 2016-04-05 2019-01-01 International Business Machines Corporation Hotness based data storage for facilitating garbage collection
CN109074318B (zh) * 2016-05-31 2023-07-04 桑迪士克科技有限责任公司 用于执行转换层表的自适应主机存储器缓冲区高速缓存的系统和方法
US10521118B2 (en) 2016-07-13 2019-12-31 Sandisk Technologies Llc Methods, systems, and computer readable media for write classification and aggregation using host memory buffer (HMB)
US10268394B2 (en) * 2016-08-10 2019-04-23 Seagate Technology Llc Data storage device performance optimization method and apparatus
US10733061B2 (en) 2017-06-27 2020-08-04 Western Digital Technologies, Inc. Hybrid data storage system with private storage cloud and public storage cloud
US10289310B2 (en) * 2017-06-27 2019-05-14 Western Digital Technologies, Inc. Hybrid data storage system with private storage cloud and public storage cloud
WO2019127135A1 (zh) * 2017-12-27 2019-07-04 华为技术有限公司 文件页表管理技术
US10891233B2 (en) * 2018-06-28 2021-01-12 Intel Corporation Intelligent prefetch disk-caching technology
US10884920B2 (en) 2018-08-14 2021-01-05 Western Digital Technologies, Inc. Metadata-based operations for use with solid state devices
US11249664B2 (en) 2018-10-09 2022-02-15 Western Digital Technologies, Inc. File system metadata decoding for optimizing flash translation layer operations
US11340810B2 (en) * 2018-10-09 2022-05-24 Western Digital Technologies, Inc. Optimizing data storage device operation by grouping logical block addresses and/or physical block addresses using hints
US10705955B1 (en) * 2019-01-02 2020-07-07 Baker Hughes, A Ge Company, Llc Just-in-time data provision based on predicted cache policies
US11573893B2 (en) 2019-09-12 2023-02-07 Western Digital Technologies, Inc. Storage system and method for validation of hints prior to garbage collection
KR20210032222A (ko) 2019-09-16 2021-03-24 에스케이하이닉스 주식회사 메모리 컨트롤러 및 그것의 동작 방법
KR20220060397A (ko) * 2020-11-04 2022-05-11 삼성전자주식회사 전자 장치 및 이를 이용한 스토리지 관리 방법
US11775202B2 (en) * 2021-07-12 2023-10-03 EMC IP Holding Company LLC Read stream identification in a distributed storage system
KR20230059909A (ko) * 2021-10-26 2023-05-04 삼성전자주식회사 스토리지 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법
KR20230059910A (ko) 2021-10-26 2023-05-04 삼성전자주식회사 컨트롤러, 스토리지 장치 및 스토리지 장치의 동작 방법
CN115544377B (zh) * 2022-11-25 2023-04-07 浙江星汉信息技术股份有限公司 基于云端存储的档案的热度评估和更新方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130046917A1 (en) 2011-08-19 2013-02-21 Tsung-Chieh Yang Flash memory controller

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5331613A (en) * 1991-09-27 1994-07-19 Olympus Optical Co., Ltd. Data reproducing method and apparatus capable of shortening the total time of data reproduction for a plurality of reproduction requests
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
GB0524260D0 (en) * 2005-11-29 2006-01-04 Ibm Methods, apparatus and computer programs for managing access to storage
KR100874702B1 (ko) 2006-10-02 2008-12-18 삼성전자주식회사 플래시 메모리 파일 시스템을 효율적으로 관리하기 위한장치 드라이버 및 방법
KR101498673B1 (ko) 2007-08-14 2015-03-09 삼성전자주식회사 반도체 드라이브, 그것의 데이터 저장 방법, 그리고 그것을포함한 컴퓨팅 시스템
TWI389125B (zh) 2008-07-18 2013-03-11 A Data Technology Co Ltd 記憶體儲存裝置及其控制方法
KR101465099B1 (ko) * 2008-09-11 2014-11-25 시게이트 테크놀로지 엘엘씨 특정 조건을 갖는 파일을 신속하게 판독할 수 있는 하이브리드 하드디스크 드라이브, 이에 적합한 제어 방법 및 이에 적합한 기록 매체
US8078653B1 (en) * 2008-10-07 2011-12-13 Netapp, Inc. Process for fast file system crawling to support incremental file system differencing
KR101189766B1 (ko) 2008-12-22 2012-10-10 한국전자통신연구원 데이터 서버로 분산 수집된 접근 횟수 기반의 핫 데이터 관리 방법
US8769049B2 (en) * 2009-04-24 2014-07-01 Microsoft Corporation Intelligent tiers of backup data
WO2011010348A1 (ja) * 2009-07-23 2011-01-27 株式会社日立製作所 フラッシュメモリ装置
WO2011055976A2 (ko) * 2009-11-03 2011-05-12 (주)피스페이스 분산 저장 시스템에서 파일을 관리하는 장치 및 방법
US8621145B1 (en) * 2010-01-29 2013-12-31 Netapp, Inc. Concurrent content management and wear optimization for a non-volatile solid-state cache
KR101101324B1 (ko) 2010-04-09 2011-12-30 (주)다윈텍 Hdd를 제어하는 스토리지 제어 장치를 포함하는 모바일 장치 및 스토리지 제어 방법
US8700841B2 (en) 2010-04-19 2014-04-15 International Business Machines Corporation Sub-LUN input/output profiling for SSD devices
US9183134B2 (en) 2010-04-22 2015-11-10 Seagate Technology Llc Data segregation in a storage device
KR101795629B1 (ko) * 2011-02-15 2017-11-13 삼성전자주식회사 호스트에서 파일 시스템 관리 방법 및 상기 방법을 수행할 수 있는 장치들

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130046917A1 (en) 2011-08-19 2013-02-21 Tsung-Chieh Yang Flash memory controller

Also Published As

Publication number Publication date
US20140289492A1 (en) 2014-09-25
US9582199B2 (en) 2017-02-28
KR20140114618A (ko) 2014-09-29

Similar Documents

Publication Publication Date Title
KR102023351B1 (ko) 저장 장치 내 할당 촉진을 위한 데이터 분석 방법 및 장치
KR102007070B1 (ko) 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법
US9767140B2 (en) Deduplicating storage with enhanced frequent-block detection
US9639275B2 (en) Managing data within a storage device based on file system metadata
US9747202B1 (en) Storage module and method for identifying hot and cold data
US9489297B2 (en) Pregroomer for storage array
US20140325115A1 (en) Conditional Iteration for a Non-Volatile Device
US20110107053A1 (en) Allocating Storage Memory Based on Future Use Estimates
CN108733306B (zh) 一种文件合并方法及装置
KR100854032B1 (ko) 메모리 시스템 및 그것의 데이터 저장 방법
US10282126B2 (en) Information processing apparatus and method for deduplication
CN113568582B (zh) 数据管理方法、装置和存储设备
JP6008820B2 (ja) WORM(WriteOnceReadMany)を実現するファイルシステム
CA2987731C (en) Database memory monitoring and defragmentation of database indexes
US9524236B1 (en) Systems and methods for performing memory management based on data access properties
CN111382126B (zh) 删除文件及阻碍文件恢复的系统和方法
US8868853B2 (en) Data processing device, data recording method and data recording program
US11609849B2 (en) Deduplication system threshold based on a type of storage device
US20140281211A1 (en) Fast mount cache
US10585592B2 (en) Disk area isolation method and device
CN107102900B (zh) 一种共享内存空间的管理方法
US10185660B2 (en) System and method for automated data organization in a storage system
US20060139786A1 (en) Method and apparatus for exchanging data with a hard disk
CN108776578B (zh) 一种快速合并对象的方法和系统
CN108984432B (zh) 一种处理io请求的方法及装置

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant