KR20120102664A - 미래 사용 추정에 기반한 저장 메모리 할당 - Google Patents

미래 사용 추정에 기반한 저장 메모리 할당 Download PDF

Info

Publication number
KR20120102664A
KR20120102664A KR1020127013857A KR20127013857A KR20120102664A KR 20120102664 A KR20120102664 A KR 20120102664A KR 1020127013857 A KR1020127013857 A KR 1020127013857A KR 20127013857 A KR20127013857 A KR 20127013857A KR 20120102664 A KR20120102664 A KR 20120102664A
Authority
KR
South Korea
Prior art keywords
file
storage memory
storage
memory space
size
Prior art date
Application number
KR1020127013857A
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 콘두시브 테크놀로지스 코포레이션
Publication of KR20120102664A publication Critical patent/KR20120102664A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • 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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/1727Details of free space management performed by the file 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
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2206/00Indexing scheme related to dedicated interfaces for computers
    • G06F2206/10Indexing scheme related to storage interfaces for computers, indexing schema related to group G06F3/06
    • G06F2206/1004Defragmentation
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems

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)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

저장 메모리 공간의 할당 방법이 제공된다. 해당 방법은 현재 크기의 파일에 대한 저장 메모리 할당 요청을 수신하는 단계와; 적어도 상기 파일과 관련된 특정 속성을 기초로, 상기 파일의 현재 크기와는 다른 상기 파일의 미래 크기를 추정하는 단계와; 상기 파일의 상기 미래 크기를 기초로 상기 파일의 저장을 위한 저장 메모리 공간의 할당을 수행토록 하는 단계를 포함한다.

Description

미래 사용 추정에 기반한 저장 메모리 할당{ALLOCATING STORAGE MEMORY BASED ON FUTURE USE ESTIMATES}
본 발명은 저장 메모리의 할당 또는 예약에 관한 것이다. 보다 구체적으로, 본 발명은 파일의 추정된 미래 크기를 기초로 파일을 위한 저장 메모리를 할당 또는 예약하는 것에 관한 것이다.
컴퓨팅 시스템 내에서의 데이터 단편화(fragmentation) 또는 자유 공간 단편화는 대체로 저장 용량과 성능을 감소시키는 비효율을 가져온다.
단편화는 이미 저장되어 있는 파일이 수정되거나 해당 수정된 파일을 동일한 저장 메모리 어드레스에 저장하는 연속 저장 메모리 공간이 불충분한 경우에 발생할 수 있다. 이 경우, 수정된 파일은 단편화된 후 수정된 파일의 일부가 다른 위치에 저장될 수 있다. 대안적으로, 수정된 파일은 전체가 해당 수정된 파일을 저장하기 위해 충분한 연속 저장 메모리 공간에 있어서 상이한 저장 메모리 어드레스로 이동되어야만 할 수도 있으므로 입/출력(I/O) 비효율을 야기할 수 있다.
이러한 비효율은 파일 자체가 단편화되지 않을 수 있더라도 관련 파일을 따로 저장하는 것으로부터 유래될 수도 있다. 예를 들면, 회전하는 플래터(platter) 드라이브에서 통상 함께 액세스되는 두 개의 파일이 두 개의 다른 저장 메모리 공간에 위치되는 경우, 해당 두 개 파일에 대한 판독 및/또는 기록은 판독/기록 헤드를 하나의 저장 메모리 공간으로부터 다른 저장 메모리 공간으로 이동시 언제나 지연을 수반할 수 있다.
본 섹션에서 언급되는 접근법은 추구할 수 있는 접근이지만 반드시 기존에 고안되었거나 추구된 접근일 필요는 없다. 그러므로, 달리 언급이 없으면, 본 섹션에서 언급되는 접근법 어떤 것도 본 섹션에 해당 내용이 포함된다는 이유로 종래 기술로서 한정되는 것으로 간주되어서는 안된다.
본 발명의 목적은 파일의 추정된 미래 크기를 기초로 파일을 위한 저장 메모리를 할당 또는 예약하는 것이다.
일 실시예에서, 하나의 파일에 대한 저장 메모리 할당 방법을 기술한다. 해당 방법은 파일의 미래 크기를 추정하고 해당 파일의 현재 크기 대신에 파일의 미래 크기를 기초로 파일의 저장을 위한 저장 메모리 공간을 할당하는 단계를 포함한다. 파일의 미래 크기는 저장될 파일의 하나 이상의 속성을 포함하는 파일 관련 패턴을 기초로 추정된다.
하나 이상의 실시예에서, 복수의 파일의 저장 메모리 할당 방법을 기술한다. 해당 방법은 제1 파일에 대한 저장 메모리 할당 요청을 수신하고 상기 제1 파일에 관련된 제2 파일에 대한 미래의 할당 요청을 예측하는 단계를 포함한다. 상기 제2 파일에 대한 미래의 할당 요청의 예측을 기초로, 저장 메모리 공간은 제1 파일 및 제2의 관련 파일 모두의 저장을 위해 할당된다. 연속 저장 메모리 공간은 제1 파일 및 제2의 관련 파일에 대해 할당될 수 있다.
여기에서는 방법의 단계를 수행하는 것으로서 특정 성분이 언급되고 있지만, 다른 실시예에서, 해당 특정 성분을 대신하여 동작하는 에이전트 또는 메커니즘이 방법의 단계를 수행할 수 있다. 또한, 본 발명은 하나의 시스템에 속하는 성분에 대해 논의되고 있지만, 본 발명은 다중 시스템에 걸쳐 분산된 성분에 의해 실시될 수 있다.
본 발명의 실시예들은 여기 설명되는 방법의 단계들을 수행하는 수단을 포함하는 임의의 시스템도 포함한다. 본 발명의 실시예들은 실행시 여기 설명된 방법의 단계들이 수행되도록 하는 명령을 포함하는 컴퓨터 판독 가능 매체도 포함한다.
본 발명은 유사 참조 번호는 유사 요소를 지시하고 있는 첨부된 도면에 한정이 아닌 본보기의 경우로서 예시되며, 도면에서
도 1은 하나 이상의 실시예에 따른 일례의 저장 메모리 할당 시스템을 예시하고;
도 2 및 도 3은 하나 이상의 실시예에 따라 저장 메모리 공간의 할당을 행하는 흐름도를 예시하며;
도 4는 하나 이상의 실시예를 실시하는데 사용될 수 있는 컴퓨터 시스템의 블록도이다.
이하의 설명에서는 설명의 목적으로서 다수의 특정한 상세 내용을 언급함으로써 본 발명의 충분한 이해를 돕는다. 그러나, 본 발명은 이들 특정한 상세 내용 없이도 실시될 수 있음이 분명할 것이다. 다른 경우, 불필요하게 본 발명을 불명료하게 하는 것을 피하기 위해 공지의 구조 및 장치가 블록도에 예시된다.
서로 독립적으로 또는 임의의 상호 조합으로 각각 사용될 수 있는 여러 특징들이 이하 설명된다. 그러나, 임의의 개별적 특징은 임의의 전술한 문제점 또는 문제점 중 하나를 다루지 않을 수 있다. 전술한 문제점 중 일부는 여기 설명되는 임의의 특징에 의해 충분히 다뤄지지 않을 수 있다. 비록 제목이 제시되고 있지만, 해당 제목을 포함하는 섹션에는 발견되지 않는 특정 제목에 관한 정보도 명세서에서 별도로 찾을 수 있다.
개요
일 실시예에서, 하나의 파일에 대한 저장 메모리 할당 방법을 기술한다. 해당 방법은 파일의 미래 크기를 추정하고 해당 파일의 현재 크기 대신에 파일의 미래 크기를 기초로 파일의 저장을 위한 저장 메모리 공간을 할당하는 단계를 포함한다. 파일의 미래 크기는 저장될 파일의 하나 이상의 속성을 포함하는 파일 관련 패턴을 기초로 추정된다.
하나 이상의 실시예에서, 복수의 파일의 저장 메모리 할당 방법을 기술한다. 해당 방법은 제1 파일에 대한 저장 메모리 할당 요청을 수신하고 상기 제1 파일에 관련된 제2 파일에 대한 미래의 할당 요청을 예측하는 단계를 포함한다. 상기 제2 파일에 대한 미래의 할당 요청의 예측을 기초로, 저장 메모리 공간은 제1 파일 및 제2의 관련 파일 모두의 저장을 위해 할당된다. 연속 저장 메모리 공간은 제1 파일 및 제2의 관련 파일에 대해 할당될 수 있다.
여기에서는 방법의 단계를 수행하는 것으로서 특정 성분이 언급되고 있지만, 다른 실시예에서, 해당 특정 성분을 대신하여 동작하는 에이전트 또는 메커니즘이 방법의 단계를 수행할 수 있다. 또한, 본 발명은 하나의 시스템에 속하는 성분에 대해 논의되고 있지만, 본 발명은 다중 시스템에 걸쳐 분산된 성분에 의해 실시될 수 있다.
본 발명의 실시예들은 여기 설명되는 방법의 단계들을 수행하는 수단을 포함하는 임의의 시스템도 포함한다. 본 발명의 실시예들은 실행시 여기 설명된 방법의 단계들이 수행되도록 하는 명령을 포함하는 컴퓨터 판독 가능 매체도 포함한다.
시스템 구조
여기에서는 특정 시스템 구조가 설명되지만, 본 발명의 다른 실시예는 파일 배치에 사용될 수 있는 임의의 구조에 적용될 수 있다. 도 1은 하나 이상의 실시예에 따른 일례의 저장 메모리 할당 시스템(100)을 보여준다. 도 1에 도시된 바와 같이, 시스템(100)은 저장 메모리 관리 엔진(108)과, 저장 드라이버(들)(112)와, 하나 이상의 저장 리포지터리(repository)(114)를 포함한다. 시스템(100)은 도시되지는 않았지만 하나 이상의 실시예의 구현에 사용될 수 있는 다른 성분도 포함할 수 있다. 이들 성분 각각은 동일한 디바이스 상에 위치되거나, 유무선 세그먼트에 의한 네트워크(예, 인터넷, 인트라넷, 엑스트라넷, 근거리 네트워크(LAN), 광역 네트워크(WAN) 등)에 의해 결합된 개별 디바이스 또는 다른 수단으로 결합된 개별 디바이스 상에 위치될 수 있다. 본 발명의 하나 이상의 실시예에서, 시스템(100)은 클라이언트-서버 토폴로지를 이용하여 구현된다. 추가로, 시스템은 하나 이상의 인터페이스를 사용하여 다른 기계 장치로부터 액세스될 수 있다. 본 발명의 하나 이상의 실시예에서, 시스템은 한 명 이상의 사용자에 의해 인터넷과 같은 네트워크 연결을 통해 액세스될 수 있다. 시스템에 의해 제공되는 정보 및/또는 서비스도 네트워크 연결을 통해 저장 및 액세스될 수 있다.
파일 속성 및 환경 속성
파일(들)(104)은 통상적으로 저장 리포지터리(114)에 저장될 임의의 데이터를 나타낸다. 파일(들)(104)은 시스템 파일, 어플리케이션 파일, 데이터 파일 및/또는 단일 집합의 정보로 논리적으로 간주되는 임의의 다른 파일 또는 데이터 집합일 수 있다. 파일(들)(104)은 가상 저장 메모리 공간(물리적 저장 메모리에 대응함)으로의 저장을 위해 수신되는 가상 시스템 상의 파일을 나타낼 수 있다.
일 실시예에서, 파일(들)(104)은 하나 이상의 속성과 관련된다. 파일에 관련된 속성들은 파일 속성(106), 환경 속성(110) 등을 포함할 수 있다. 파일 속성(106)은 통상적으로 파일의 임의의 특징을 나타낸다. 예를 들면, 파일(104)의 파일 속성(106)은 파일 종류일 수 있다. 파일 종류의 예로는 실행 가능 파일, 데이터 파일, 이미지 파일, 비디오 파일, 텍스트 파일, 시스템 파일, 구성 파일, 개발자 파일 등이나 임의의 다른 가능한 파일 종류가 있다. 파일에 관련된 파일 종류는 비트맵 이미지 파일 또는 JPEG 이미지 파일과 같은 특정 종류일 수 있거나, 그렇지 않으면 파일에 관련된 파일 종류는 (비트맵 이미지 파일과 JPEG 이미지 파일을 포함하는) 이미지 카테고리와 같은 카테고리일 수 있다.
파일 속성(106)은 파일의 임의의 분류 또는 유형화도 포함할 수 있다. 예를 들면, 부팅(boot-up) 처리 중에 독점적으로 사용되는 파일은 부팅 파일로 분류될 수 있다. 일 실시예에서, 파일 속성은 파일의 생성 후에 변한다. 예를 들면, 파일과 관련된 사용자가 변경되거나 파일 내의 콘텐츠가 변경될 수 있다.
파일 속성(106)의 다른 예로는 파일의 이전 사용(prior use)이 있다. 파일의 이전 사용에 관련된 속성은 파일을 소유/제어하는 처리, 파일의 저장 또는 파일로의 액세스를 요청하는 어플리케이션, 파일과 관련된 액세스 횟수, 파일을 공유했거나 현재 공유하고 있는 처리의 수, 파일과 관련된 사용자, 파일 내에 담겨진 콘텐츠 또는 정보, 파일의 에이지(age of file), 파일에 관련된 다른 파일의 수/크기 등을 지시할 수 있다.
일 실시예에서, 파일(들)(104)은 환경 속성(110)인 속성과 관련된다. 환경 속성(110)은 통상적으로 파일이 저장, 액세스, 수정, 실행되는 등등의 환경에 관련된 임의의 특징을 나타낸다. 환경 속성(110)의 예로는 파일(104)이 저장되거나 저장될 저장 리포지터리(114) 내의 가용 저장 메모리 공간이 있다. 환경 속성(110)의 다른 예로는 파일을 관리하는 운영 시스템이 있을 수 있다. 환경 속성(110)은 파일에 액세스하는 컴퓨터 시스템이 위치되는 지구상의 지리적 영역도 포함할 수 있다. 환경 속성(110)은 사용자 콘텍스트를 포함할 수 있다. 예를 들면, 환경 속성(110)은 파일이 교육을 목적으로 학생에 의해, 직업적 목적으로 고용인에 의해 액세스, 수정 등이 행해지는지의 여부를 나타낼 수 있다. 환경 속성(110)은 파일(104)을 관리하는 컴퓨팅 시스템에 액세스하는 사용자의 수 또는 파일(104)을 수정할 권한이 있는 사용자의 수를 포함할 수 있다. 환경 속성(110)은 파일(104)에 관련된 환경의 임의의 다른 특징을 포함할 수 있다.
속성 패턴
일 실시예에서, 파일(104)은 하나 이상의 공통 속성(예, 파일 속성(106), 환경 속성(110) 등)을 기초로 함께 그룹화된다. 특정 속성을 가지는 파일(104)의 그룹과 관련된 통계 자료는 속성과 관련된 속성 패턴(102)을 식별하는데 사용된다. 속성 패턴(102)은 통상적으로 통계 자료로부터 유도되는 임의의 데이터를 포함한다. 속성 패턴(102)은 통계 자료를 기초로 연산을 수행하고 통계 자료 내에서 패턴을 검출하는 등에 의해 결정되는 데이터를 포함할 수 있다. 파일(104)의 그룹에 관련된 모든 통계 자료 또는 파일(104)의 그룹과 관련된 통계 자료의 일부는 패턴의 검출에 사용될 수 있다. 예를 들면, 데이터 세트와 전혀 다른 가외치(outlier) 또는 데이터 포인트는 통계 자료에서 패턴의 검출 이전에 버려질 수 있다.
일 실시예에서, 속성 패턴(102)은 크기에 기초한 통계 자료를 말할 수 있다. 특정 속성을 갖는 파일 세트 내의 각각의 파일의 크기가 모니터링된다. 특정 파일의 크기는 시간 또는 파일에 대한 액세스 횟수와 관련하여 모니터링된다. 예를 들면, 파일 그룹 내의 각각의 파일의 크기는 생성시와 두 번의 기록 액세스가 파일에 대해 행해진 후에 모니터링된다. 이후, 파일 세트 중의 각각의 파일에 대해, 두 번의 기록 액세스 이후의 파일 크기로부터 생성시의 파일 크기를 제하는 것에 의해 파일 크기의 실제 변화가 결정된다. 파일 크기의 변화를 생성시의 파일 크기로 나누는 것에 의해 각각의 파일에 대한 파일 크기의 비율 변화가 결정된다. 파일 세트에 걸친 실제 변화의 평균 또는 파일 세트에 걸친 비율 변화의 평균이 결정된다. 해당 특정 속성을 가지는 파일 세트에 대응하는 속성 패턴(102)은 평균 변화를 지시하는 데이터를 포함할 수 있다. 예를 들면, 속성 패턴(102)은 파일이 생성된 시간으로부터, 대응하는 파일의 세트에 걸친 평균을 기초로 x 바이트 또는 y 비율만큼의 예상된 크기 증가를 지시하는 데이터를 포함할 수 있다. 대응하는 파일의 세트에 걸친 평균 대신에, 최빈수(mode) 또는 기타 통계적 계산을 사용하여 속성 패턴(102)을 결정할 수 있다.
일 실시예에서, 파일 크기에 기초한 속성 패턴(102)은 크기 범위를 지시하는 데이터를 포함한다. 예를 들면, 파일 세트 중의 임의의 파일에 대하여 관측된 최소의 파일 크기 증가는 10%일 수 있는 반면, 파일의 세트 중의 임의의 파일에 대하여 관측된 최대의 파일 크기 증가는 25%일 수 있다. 해당 예에서, 증가의 범위는 10~25%이다. 예상된 증가의 속성 패턴(102)은 생성 시간(또는 다른 특정 시간)으로부터 10~25% 범위를 정하는 데이터를 포함한다.
일 실시예에서, 속성 패턴(102)은 특정 속성을 갖는 파일의 세트의 최대 파일 크기를 지시하는 데이터를 포함한다. 속성 패턴(102)은 파일의 생성 후에 최대 파일 크기에 도달하는 파일의 평균 시간을 지시하는 데이터도 포함할 수 있다. 속성 패턴(102)은 각각의 파일의 최대 파일 크기에 도달하기까지 평균 수정 횟수를 지시하는 데이터도 포함할 수 있다.
일 실시예에서, 속성 패턴(102)은 특정 속성을 갖는 파일(104)의 세트에 대한 저장 메모리 할당 요청 패턴을 지칭한다. 예를 들면, 특정 처리에 의해 소유되는 파일의 저장을 위한 제1 저장 메모리 할당 요청 이후에 관련 파일의 저장을 위한 제2 저장 메모리 할당 요청이 이어지면, 속성 패턴(102)은 특정 처리가 제1 저장 메모리 할당 요청의 특정 시간 내에 제2 저장 메모리 할당 요청을 실행 의뢰함을 지시하는 데이터를 포함할 수 있다. 제2 메모리 저장 할당 요청은 제1 메모리 저장 할당 요청에 후속하는 임의의 메모리 저장 할당 요청을 지칭할 수 있다. 속성 패턴(102)은 특정 처리에 의해 소유되는 파일에 의해 사용되는 총 저장 메모리 공간의 패턴을 지칭할 수 있다. 속성 패턴(102)은 처리 또는 어플리케이션에 의한 초기 저장 메모리 사용량과 처리 또는 어플리케이션에 의한 후속의 또는 최대의 저장 메모리 사용량을 지시하는 데이터를 포함할 수 있다. 다른 예에서, 속성 패턴(102)은 특정 속성을 갖는 파일의 그룹에 통상 행해지는 동작을 지칭할 수 있다. 예를 들면, 속성 패턴은 "생성, 액세스, 수정, 수정 및 액세스 동작"이 통상적으로 유닉스 운영 시스템을 실행하거나 어플리케이션 X의 특정 처리에 의해 소유되는 시스템 내의 특정 부팅 파일에 대해 수행됨을 지시하는 데이터를 포함할 수 있다. 각각의 동작은 파일 크기의 대응하는 변화와 관련될 수도 있다.
일 실시예에서, 속성 패턴(102)은 파일 세트에 대한 파일 액세스 순서를 지칭할 수 있다. 예를 들면, 파일 B, C, R, G, E가 특정 순서로 또는 대략 동일한 시간에 반복적으로 액세스되면, 속성 패턴(102)은 파일 액세스 순서를 지시하는 데이터를 포함할 수 있다. 해당 예에서, 파일 B, C, R, G, E에 대한 공통 속성은 공통 오너(owner) 처리이거나 단순히 파일이 동일한 액세스 순서의 모든 부분인 것일 수 있다. 여러 예에서 특정 속성(예, 파일 종류)이 언급되지만, 본 발명의 실시예들은 파일과 관련된 임의의 속성에 적용될 수 있다. 따라서, 속성 패턴(102)은 파일과 관련된 임의의 속성(예, 파일 속성(106), 환경 속성(110) 등)에 대해 식별될 수 있다.
일 실시예에서, 다중 속성 패턴(102)은 특정 속성과 관련될 수 있거나 및/또는 다중 속성 패턴(102)은 특정 속성 패턴(102)과 관련될 수 있다. 예를 들면, 공유된 통계 자료를 식별하기 위해 특정 처리에 의해 소유되는 파일(104)의 세트가 모니터링된다. 공유된 통계 자료는 (1) 평균적으로 파일 세트가 초기 생성으로부터 40%만큼 증가하며 (2) 특정 처리에 의해 초기 생성된 파일은 단기간 내에 삭제되고 특정 처리에 의해 나중에 생성된 파일은 결코 삭제되지 않음을 나타낸다. 파일(104) 세트에 대한 제1 속성 패턴(102)은 파일이 초기 생성으로부터 평균 40%의 크기 증가가 있음을 지시하는 데이터를 포함할 수 있다. 동일한 파일 세트에 대한 제2 속성 패턴(102)은 특정 처리의 초기화로부터 x분 내에 특정 처리에 의해 생성된 파일은 임시 파일이고 x분 이후에 해당 처리에 의해 생성된 파일은 장시간 유지되는 파일임을 지시하는 데이터를 포함할 수 있다. 제2 속성 패턴(102)은 다른 처리에 의해 생성되는 제2 파일 세트(예, 다른 속성을 가지는 파일의 제2 세트)에 적용될 수도 있다.
저장 리포지터리
저장 리포지터리(repository)(114)는 통상적으로 파일이 저장될 수 있는 저장 위치를 갖는 하나 이상의 저장 장치를 나타낸다. 저장 리포지터리(114)의 부분들은 시스템(100)에 직접 연결될 수 있고, 네트워크(116) 또는 기타 적절한 인터페이스를 통해 연결될 수 있다. 저장 리포지터리(114)는 당업계에 공지된 임의의 종류의 저장 장치를 포함할 수 있다. 예를 들면, 저장 리포지터리(114)는 통상의 회전형 플래터(platter) 드라이브, 고체 상태(또는 집적 회로) 드라이브(SSDs), 상기 플래터 드라이브와 SSDs의 하이브리드 조합, 저장 영역 네트워크(SAN)와 같은 별도의 저장 시스템, 네트워크 부착 저장(NAS) 장치 또는 저장 장치로 동작하지만 RAM으로 이루어진 RAM-기반의 장치를 포함할 수 있다. 또한, 저장 리포지터리(114) 내의 각각의 저장 장치는 다른 종류의 저장 위치를 포함할 수 있다. 예를 들면, 저장 리포지터리(114) 내의 SSD는 단일 레벨 셀(SLCs), 멀티 레벨 셀(MLCs) 또는 이들의 조합과 같은 상이한 셀을 포함할 수 있다. 따라서, 시스템(100)에 대한 저장에 유용한 저장 리포지터리(114) 내의 저장 위치는 단일 저장 장치 또는 다중 저장 장치상에 있을 수 있으며 그 구성은 상이한 저장 장치마다 또는 심지어 단일 저장 장치 내에서도 가변적이다.
저장 드라이버
일 실시예에서, 저장 드라이버(들)(112)는 저장 메모리 관리 엔진(108)으로부터 직간접적으로 수신되는 명령 세트를 기초로 저장 리포지터리(114)로부터 파일을 저장 및 회수한다. 예를 들면, 저장 메모리 관리 엔진(108)은 파일(104)과 해당 파일을 저장하는 저장 위치를 파일 시스템에 제공하며, 파일 시스템은 이후 명령을 저장 드라이버(들)(112)에 전송한다. 저장 드라이버(들)(112)에 의해 수신된 명령은 단순히 저장 장치를 특정하며, 이 경우, 저장 드라이버(들)(112)는 저장 장치 내에서 파일을 저장할 위치를 결정한다. 명령은 저장 장치의 영역, 저장 장치 상의 특정 저장 위치, 저장 리포지터리 또는 저장 리포지터리 내의 위치도 특정할 수 있다.
일 실시예에서, 저장 드라이버(112)는 파일(104)의 미래 크기의 추정치(또는 예측치)를 획득하도록 구성된다. 예를 들면, 저장 드라이버(112)는 파일(104)의 미래 크기의 추정치를 계산하거나 저장 메모리 관리 엔진(108), 파일 시스템 등으로부터 해당 파일의 미래 크기의 추정치를 획득할 수 있다. 저장 드라이버(112)는 파일의 미래 크기를 기초로 얼마나 많은 저장 공간을 할당할지를 결정하거나 파일의 미래 크기를 기초로 얼마나 많은 저장 공간을 할당할지를 지시하는 정보를 저장 메모리 관리 엔진(108), 파일 시스템 등으로부터 획득할 수 있다.
저장 메모리 관리 엔진
일 실시예에서, 시스템(100) 내의 저장 메모리 관리 엔진(108)은 통상적으로 속성 패턴(102)을 식별하도록 구성될 수 있는 임의의 소프트웨어 및/또는 하드웨어를 나타낼 수 있다. 저장 메모리 관리 엔진(108)은 어플리케이션/운영 시스템과 파일 시스템 사이에 또는 파일 시스템과 저장 드라이버(112) 사이에 논리적으로 구현될 수 있다. 저장 메모리 관리 엔진(108)은 파일 시스템의 성분으로서 구현될 수도 있다. 저장 메모리 관리 엔진(108)은 하나 이상의 서버 상에서 구동하는 어플리케이션일 수 있고, 소정의 실시예에서, 피어 투 피어(peer-to-peer) 어플리케이션일 수 있거나 단일 컴퓨팅 시스템(예, 개인용 컴퓨터, 휴대용 장치, 무인 정보 단말기(kiosk), 차량 탑재 컴퓨터 또는 저장 장치를 구비한 임의의 다른 시스템) 상에 상주할 수 있다.
일 실시예에서, 저장 메모리 관리 엔진(108)은 특정 속성이나 속성의 특정 조합에 관련된 속성 패턴(102)을 식별하기 위해 특정 속성(예, 파일 속성(106), 환경 속성(110) 등) 또는 속성의 특정 조합을 가지는 하나 이상의 파일(104)을 모니터링하도록 구성된다. 파일(104)은 해당 파일(104)의 실제 크기를 주기적으로 확인하고 해당 실제 크기를 시간 함수로서 기록하는 것에 의해 저장 메모리 관리 엔진(108)에 의해 모니터링될 수 있다. 파일(104)은 해당 파일(104)을 매번 수정한 후마다 파일 크기를 기록하는 것에 의해 모니터링될 수 있다. 일 실시예에서, 파일 크기는 해당 파일(104)이 액세스된 횟수의 차수의 함수로서 모니터링될 수 있다. 예를 들면, 파일(104)의 액세스 차수(예, 5차 액세스, 9차 액세스, 12차 액세스, 120차 액세스 등)에 관련된 파일(104)의 크기를 지시하는 데이터가 수집될 수 있다. 일 실시예에서, 실제 파일 크기 외에 또는 실제 파일 크기 대신에, 파일 크기의 변화를 모니터링하고 기록할 수 있다. 파일 크기의 변화는 파일 크기의 비율 변화 또는 절대 크기의 변화를 포함할 수 있다. 파일 크기의 변화는 이전 파일 크기 또는 파일(104) 생성시의 초기 파일 크기와 비교하여 모니터링되고 기록될 수 있다.
일 실시예에서, 저장 메모리 관리 엔진(108)은 속성과 관련된 파일(104)을 기초로 해당 속성에 대한 속성 패턴(102)을 식별한다. 예를 들면, 부팅 처리에서 특정 어플리케이션에 의해 사용되는 로그 파일에 걸쳐 공통의 패턴이 검출된다. 공통의 검출 패턴은 각각의 로그 파일이 생성된 후 부팅 처리 중에 수정됨으로써 초기 생성 후 로그 파일의 크기가 두 배가 되는 것이다. 해당 예에서, 로그 파일의 공통 속성은 특정 어플리케이션과의 관련성이다. 저장 메모리 관리 엔진(108)은 속성과 관련되고 그리고 부팅 처리에서 특정 어플리케이션에 의해 사용된 로그 파일이 부팅 처리 중의 생성 후에 크기가 두 배가 됨을 지시하는 데이터를 포함하는 속성 패턴(102)을 식별한다. 패턴은 부팅 처리 중의 특정 처리에 의해 사용되는 로그 파일의 특정 임계 갯수 또는 비율에 대한 패턴을 식별하는 것에 응답하여 속성 패턴(102)으로서 식별될 수 있다.
일 실시예에서, 저장 메모리 관리 엔진(108)은 도 2와 관련하여 하기에 설명되는 바와 같이 파일(104)의 미래 크기를 기초로 파일(104)의 저장을 위한 저장 메모리 공간의 할당을 행하도록 하는 로직을 포함한다. 일 실시예에서, 저장 메모리 관리 엔진(108)은 도 3과 관련하여 하기에 설명되는 바와 같이 제1 파일에 대한 저장 메모리 할당 요청의 수신에 응답하여 제2 파일에 대한 저장 메모리 공간을 할당하거나 예약한다. 여기서는 특정 성분들이 특정 동작을 수행하는 것으로 언급될 수 있지만, 본 발명의 실시예들은 여기에 설명되는 임의의 동작을 수행하는 임의의 성분들(여기에 설명되거나 설명되지 않을 수 있음)을 포함한다.
파일의 미래 크기를 기초로 저장 메모리 공간 할당
도 2는 본 발명의 하나 이상의 실시예에 따라 저장 메모리 공간의 할당을 수행하도록 하는 흐름도를 나타낸다. 하나 이상의 실시예에서, 하기에 설명되는 단계 중 하나 이상의 단계는 생략 또는 반복되거나 및/또는 다른 순서로 수행될 수 있다. 따라서, 도 2에 도시된 단계의 특정 배열은 본 발명의 범위를 한정하는 것으로 해석돼서는 안된다.
일 실시예에서, 현재 크기의 파일의 저장 요청이 수신된다(202 단계). 파일의 저장 요청은 파일이 어플리케이션 또는 운영 시스템에 의해 1차 생성시 파일의 최초 저장을 위한 것일 수 있다. 파일이 저장 요청은 이전에 저장된 파일의 수정을 저장하기 위한 것일 수 있다. 일 실시예에서, 현재 크기는 저장될 파일의 크기에 대응한다. 수정된 파일의 저장 요청이 수신될 때, 현재 크기는 저장되는 수정된 파일의 크기에 대응한다.
일 실시예에서, 파일에 관련된 속성 패턴이 식별된다(204 단계). 속성 패턴은 1차적으로 파일에 관련된 하나 이상의 속성을 식별하는 것에 의해 식별될 수 있다. 예를 들면, 파일의 종류, 파일을 소유하는 처리/어플리케이션, 파일이 저장되는 환경, 또는 여기에 설명되는 임의의 여타 속성이 식별될 수 있다. 이후, 파일의 하나 이상의 속성과 관련된 속성 패턴이 식별된다. 예를 들면, 속성 패턴을 속성에 매칭시키는 테이블이 속성 패턴의 식별을 위해 문의될 수 있다. 일 실시예에서, 속성 패턴은 파일의 저장 요청을 수신하기 전에는 알지 못할 수 있다. 이 경우, 저장되는 파일과 관련된 속성이 일단 식별되면, 동일 속성과 관련된 나머지 파일이 식별된다. 이후, 나머지 파일은 분석을 통해 속성 패턴을 결정할 수 있다. 일 실시예에서, 속성 패턴은 다른 파일의 세트 중 각각의 파일의 최대 크기 또는 다른 파일의 세트 중 각각의 파일의 최대 크기의 평균치(mean) 또는 최빈수(mode)를 포함할 수 있다.
일 실시예에서, 파일의 미래 크기가 속성 패턴을 기초로 계산(추정)된다(206 단계). 파일의 미래 크기는 특정 횟수 수정 후, 특정 시간 경과 후, 파일이 성장될 수 있는 최대 크기인 파일 크기의 추정치에 대응할 수 있다. 예를 들면, 특정 속성에 관련된 파일의 미래 크기는 동일한 특정 속성과 관련된 다른 파일의 세트 중 각각의 파일의 최대 크기를 기초로 계산될 수 있다. 저장되는 파일의 미래 크기(예, 미래 최대 크기)는 나머지 파일의 최대 관측 크기의 평균치 또는 최빈수를 기초로 추정될 수 있다. 파일의 미래 최대 크기는 나머지 파일의 최대 관측 크기 중 최대값을 기초로 추정될 수 있다. 유사하게, 특정 횟수의 수정 후에 저장되는 파일의 크기의 추정은 나머지 파일 각각에 대한 특정 회수의 수정 후의 나머지 파일의 관측된 크기를 기초로 할 수 있다. 특정 시간 경과 후의 저장되는 파일의 크기의 추정은 나머지 파일 각각의 생성 후 소정 시간의 경과 후의 나머지 파일의 관측된 크기를 기초로 할 수 있다.
일 실시예에서, 미래 크기의 계산은 계산된 값을 변동량에 상당하는 특정 양만큼 증가시키는 것을 더 포함한다. 예를 들면, 미래의 최대 크기는 1차로 나머지 파일의 최대 크기를 평균화하여 제1 값을 획득한 후 해당 제1 값을 특정 비율 또는 특정 값만큼 증가시키는 것에 의해 계산될 수 있다. 제1 값의 증가는 나머지 파일에 대응하는 최대값의 세트의 표준 편차를 기초로 할 수 있다. 예를 들면, 나머지 파일의 최대값이 작은 범위(예, 작은 표준 편차) 내에 있으면, 저장되는 파일의 추정된 최대 크기를 계산하기 위해 제1 계산값으로부터 적은 비율 증가를 사용할 수 있다. 이에 비해, 나머지 파일의 최대값이 넓은 범위(예, 큰 표준 편차) 내에 있으면, 제1 계산 값으로부터 큰 비율 증가를 사용하여 저장되는 파일의 추정된 최대 크기를 계산할 수 있다. 저장되는 파일의 미래 크기의 계산에서 증가 비율 또는 증가 값은 동일한 속성과 관련된 나머지 파일의 크기의 표준 편차에 직접 관련될 수 있다. 일 실시예에서, 변화를 허용하는 버퍼는 가용 저장 메모리 공간에 직접적으로 의존할 수 있다. 예를 들면, 가용 저장 메모리 공간이 커질수록 버퍼는 더 크게 사용될 수 있다. 반대로, 가공 저장 메모리 공간이 작을수록 사용될 수 있는 버퍼는 더 작아진다. 특정 예의 경우 최대 크기가 사용되지만, 본 발명의 실시예들은 파일의 다른 크기(예, 특정 횟수의 수정 후의 크기, 생성 후 특정 시간의 경과 후의 크기)에 적용될 수 있다.
일 실시예에서, 액세스 종류 순서를 포함하는 속성 패턴을 사용하여 미래 크기를 예측한다. 예를 들면, 속성 패턴이 초기 기록 후의 판독만으로 이루어진 경우, 미래 크기 추정치는 현재 크기 추정치와 동일할 수 있다. 속성 패턴이 초기 기록 후 모든 수정을 통한 최대 크기가 최초 크기의 두 배가 되는 일련의 판독 및 기록을 포함하는 경우, 저장되는 파일의 미래 크기 추정치는 최초 크기의 두 배일 수 있다. 일 실시예에서, 저장되는 파일에 대한 수정은 액세스 순서 내에서 식별될 수 있다. 예를 들면, 파일의 수정은 속성 패턴에서 일련의 5회 수정 중 3회차 수정으로서 인정될 수 있다. 일련의 수정의 위치를 기초로 미래 크기가 결정될 수 있다. 상기의 예에서, 미래 크기 추정은 3회차 수정에 후속하는 4회차 및 5회차 수정 이후에 예상되는 두 개의 파일 크기 중 큰 것을 기초로 할 수 있다.
일 실시예에서, 계산된 미래 크기를 기초로 파일의 저장을 위한 저장 메모리 공간의 할당이 유도된다(208 단계). 계산된 미래 크기와 같거나 그보다 큰 인접 저장 메모리 공간이 파일의 저장을 위해 할당될 수 있다. 일 실시예에서, 계산된 미래 크기의 임시 파일은 생성 후 인접 저장 메모리 공간 내에 저장된 후 저장 메모리 내에 저장될 실제 파일로 덮어쓰기될 수 있다. 일 실시예에서, 두 개의 파일(예, 저장될 실제 파일과 임시 공간 충전 파일)이 인접하는 저장 메모리 공간에 저장될 수 있다. 이후, 실제 파일의 수정을 위해 공간이 필요하기 때문에, 임시 공간 충전 파일은 크기가 축소되거나 삭제될 수 있다. 일 실시예에서, 파일의 저장을 위한 공간이지만 미래의 추정을 기초로 필요한 사용되지 않은 추가의 저장 메모리 공간이 파일 시스템 또는 저장 드라이버에 대한 특정 명령에 의해 예약될 수 있다. 예를 들면, 메타 데이터는 특정 저장 메모리 공간이 특정 파일의 파일 크기의 미래의 증가를 위해 예약됨을 나타낼 수 있다. 파일의 현재 크기와 다른 파일(들)의 미래 크기(추정치 또는 예측치)를 기초로 파일의 저장을 위해 저장 메모리 공간을 할당 또는 예약을 허용하는 임의의 다른 적절한 실시 형태가 사용될 수 있다. 일 실시예에서, 파일의 추정된 미래 크기를 기초로 할당 또는 예약되는 추가의 공간은 조건부로 유지될 수 있다. 예를 들면, 저장 리포지터리가 저장 메모리상에서 낮으면, 예약되거나 불필요하게 할당된 저장 메모리 공간은 파일 시스템에 의해 사용되도록 수집되는 불용 정보(garbage)일 수 있다. 일 실시예에서, 과-할당된 저장 메모리 공간은 새로운 메모리 할당을 위해 릴리스될 수 있다. 과-할당된 메모리의 릴리스는 확장되는 파일 또는 저장될 필요가 있는 새로운 파일과 관련되는 과-할당된 메모리의 상대 위치를 기초로 할 수 있다. 일 실시예에서, 기존의 과-할당된 메모리 공간의 릴리스는 릴리싱된 메모리 공간에 맞춰질 수 있는 새로운 파일이나 또는 릴리싱된 메모리 공간 내에 맞춰질 수 있는 이전에 저장된 파일의 확장을 기초로 한다.
저장 메모리 공간 내에 데이터를 저장하는 요청을 받기 전에 저장 메모리 공간의 할당
도 3은 본 발명의 하나 이상의 실시예에 따라 저장 메모리 공간의 할당을 행하도록 하는 흐름도를 나타낸다. 하나 이상의 실시예에서, 하기 설명되는 단계 중 하나 이상의 단계는 생략 또는 반복되거나 및/또는 다른 순서로 수행될 수 있다. 따라서, 도 3에 도시된 단계의 특정 배열은 본 발명의 범위를 한정하는 것으로 해석돼서는 안된다.
일 실시예에서, 현재 크기의 제1 파일의 저장 요청이 수신되고(302 단계), 제1 파일과 관련된 속성 패턴이 식별된다(304 단계). 302 단계와 304 단계는 전술한 202 단계와 204 단계와 각각 유사하다. 일 실시예에서, 제1 파일의 저장을 위해 제1 저장 메모리 공간이 할당된다(306 단계). 제1 저장 메모리 공간의 할당은 제1 파일의 현재 크기 또는 상기 208 단계를 참조로 설명된 바와 같이 제1 파일의 미래 크기를 기초로 할 수 있다.
일 실시예에서, 제1 파일과 관련된 속성 패턴을 기초로 제2 저장 메모리 공간이 할당 또는 예약된다(308 단계). 제2 저장 메모리 공간은 해당 제2 저장 메모리 공간에 데이터를 저장하는 명령을 수신하기 전에 할당 또는 예약될 수 있다. 제2 저장 메모리 공간은 제1 파일의 저장을 위한 제1 저장 메모리 공간의 할당 요청의 수신에 응답하여 할당 또는 예약될 수 있다. 제2 저장 메모리 공간은 제1 저장 메모리 공간에 인접할 수 있으므로, 예컨대 제1 저장 메모리 공간과 제2 저장 메모리 공간은 인접하는 저장 메모리 공간을 형성할 수 있다. 일 실시예에서, 제2 저장 메모리 공간은 제1 파일의 수정된 버전(즉, 제1 파일이 미래에 큰 크기로 수정될 때)을 저장하기 위해 할당 또는 예약될 수 있다.
일 실시예에서, 제2 저장 메모리 공간은 제1 파일에 관련된 적어도 하나의 다른 파일의 저장을 위해 할당 또는 예약된다. 예를 들면, 속성 패턴은 제1 파일에 대한 할당 요청 이후에 통상적으로 제1 파일에 관련된 제2 파일에 대한 할당 요청이 이어짐을 지시할 수 있다. 제2 파일은 제1 파일과 동일한 속성에 관련된 파일일 수 있다. 예를 들면, 제2 파일은 제1 파일과 동일한 처리에 의해 소유될 수 있다. 속성 패턴은 통상 제1 파일 바로 직후에 액세스되거나 제1 파일과 대략 동일한 시간 프레임 내에 액세스되는 제2 파일이 생성될 것임을 지시할 수 있다. 제1 저장 메모리 공간과 인접한 제2 저장 메모리 공간에 제2 파일을 저장하는 것은 빠른 입출력(예, 회전형 플래터 헤드에 의한 최소의 이동에 기인하여)을 유도할 수 있다. 따라서, 제2 저장 메모리 공간은 제2 저장 메모리 공간에 대한 제2 파일의 저장 요청을 수신하기 전에 제2 파일에 대해 구체적으로 할당 또는 예약될 수 있다. 제2 저장 메모리 공간은 제2 파일이 생성되기 전에 제2 파일에 대해 구체적으로 할당 또는 예약될 수 있다. 일 실시예에서, 제1 파일과 동일한 시간 프레임 내에 액세스되는 제2 파일은 미리 생성되어 다른 곳에 저장될 수 있다. 이 경우, 제1 파일과 관련된 저장된 제2 파일은 제1 파일과 제2 파일이 대략 동일한 시간 프레임 내에 액세스되는 것을 지시하는 속성 패턴에 응답하여 제1 저장 메모리 공간에 인접한 제2 저장 메모리 공간으로 이동될 수 있다. 제2 저장 메모리 공간을 예약하는 것은 제2 파일이 제2 저장 메모리 공간에 저장시 삭제되거나 덮어 씌워질 제2 저장 메모리 공간에 임시 파일을 저장하는 것을 포함할 수 있다. 제2 저장 메모리 공간을 예약하는 것은 파일 시스템 또는 저장 드라이버에 대해 (예, 저장 메모리 공간과 관련하여 저장된 메타 데이터를 통해) 저장 메모리 공간이 제2 파일에 대해 예약됨을 통보하는 것을 포함할 수 있다. 제2 저장 메모리 공간을 예약하는 것은 예약된 저장 메모리 공간의 경우 특정 표지(예, 플래그)를 가지는 저장 메모리 공간에 대응하는 테이블을 구현하는 것을 포함할 수 있다. 일 실시예에서, 제2 저장 메모리 공간을 예약하는 것은 제2 저장 메모리 공간에 임시 파일 또는 플레이스 홀더(place holder) 파일을 저장하는 것을 포함할 수 있다. 이후, 임시 파일 또는 플레이스 홀더 파일은 제2 저장 메모리 공간이 이전에 저장된 제1 파일에 관련된 제2 파일의 저장을 위해 사용되는 경우 삭제되거나 덮어 씌워질 수 있다.
일 실시예에서, 제1 파일과 관련된 제2 파일의 저장을 위한 저장 메모리 할당 요청이 수신된다(310 단계). 제2 파일은 속성 패턴을 기초로 식별될 수 있다. 예를 들면, 속성 패턴은 대체로 동일한 시간 프레임 내에 액세스되는 두 개의 관련 파일을 위해 두 개의 저장 메모리 할당을 요청하는 처리를 식별할 수 있다. 제1 요청에 응답하여 제1 파일에 대해 제1 저장 메모리 공간이 할당되고, 미래의 제2 파일에 대해 제2 저장 메모리 공간이 할당 또는 예약된 후, 추가의 저장 메모리 할당 요청을 위해 해당 처리로부터의 요청이 모니터링될 수 있다. 모니터링되는 처리로부터 제2 저장 메모리 할당 요청이 수신되면, 해당 제2 요청과 관련된 데이터(즉, 제1 파일과 관련된 제2 파일)의 저장을 위해 제2 저장 메모리 공간이 사용된다(312 단계). 일 실시예에서, 제2 파일 저장 요청은 제2 파일이 제1 파일과 관련되고 제1 파일과 함께 저장될 것임을 지시하는 메타 데이터를 포함할 수 있다.
하드웨어 개요
도 4는 본 발명의 실시예가 구현될 수 있는 토대인 컴퓨터 시스템(400)을 예시하는 블록도이다. 컴퓨터 시스템(400)은 정보의 통신을 위한 버스(402) 또는 기타 통신 메커니즘과, 정보 처리를 위해 버스(402)와 결합된 프로세서(404)를 포함한다. 컴퓨터 시스템(400)은 정보와 프로세서(404)에 의해 실행되는 명령을 저장하기 위해 버스(402)에 결합되는 RAM 또는 기타 동적 저장 소자와 같은 메인 메모리(406)도 포함한다. 메인 메모리(406)는 프로세서(404)에 의해 실행될 수 있는 명령의 실행 중에 임시 변수 또는 기타 중간 정보를 저장하는데 사용될 수도 있다. 컴퓨터 시스템(400)은 프로세서(404)용 정적 정보 또는 명령을 저장하기 위해 버스(402)에 결합되는 ROM(408) 또는 기타 정적 저장 소자를 더 포함한다. 정보와 명령의 저장을 위해 자기 디스크 또는 광학 디스크와 같은 저장 장치(410)가 버스(402)에 제공되고 결합된다.
컴퓨터 시스템(400)은 정보를 컴퓨터 사용자에게 디스플레이하기 위해 버스(402)를 통해 음극선관(CRT)과 같은 디스플레이(412)에 결합될 수 있다. 정보와 명령 선택을 프로세서(404)에 전달하기 위해 자판과 기타 키를 포함하는 입력 장치(414)가 버스(402)에 결합된다. 방향 정보와 명령 선택을 프로세서(404)에 전달하고 디스플레이(412) 상에서 커서 이동을 제어하기 위한 다른 종류의 입력 장치는 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어부(416)가 있다. 입력 장치는 해당 장치가 평면 내 위치를 특정할 수 있게 하는 통상 제1 축(예, x축)과 제2 축(예, y축)인 2-축의 2 자유도를 가진다.
본 발명은 여기 설명된 방법의 실시를 위한 컴퓨터 시스템(400)의 사용에 관련된다. 본 발명의 일 실시예에 따르면, 해당 방법은 메인 메모리(406) 내에 담겨진 일련의 하나 이상의 명령을 실행하는 프로세서(404)에 응답하여 컴퓨터 시스템(400)에 의해 수행된다. 이러한 명령은 저장 장치(410)와 같은 다른 기계 장치-판독 가능 매체로부터 메인 메모리(406) 내로 판독될 수 있다. 메인 메모리(406) 내에 담겨진 일련의 명령의 실행에 의해 프로세서(404)는 여기 설명된 처리 단계들을 수행한다. 대안적인 실시예에서, 본 발명의 실시를 위해 소프트웨어 명령 대신에 또는 소프트웨어 명령과 함께 고정 배선 회로가 사용될 수 있다. 따라서, 본 발명의 실시예들은 하드웨어 회로 및 소프트웨어의 어떤 특정 조합에 한정되지 않는다.
여기 사용된 "기계 장치-판독 가능 매체"라는 용어는 기계 장치가 특정 방식으로 동작하도록 하는 데이터를 제공하는 임의의 매체를 지칭한다. 컴퓨터 시스템(400)을 사용하여 구현되는 일 실시예에서, 예컨대, 프로세서(404)에 실행을 위한 명령을 제공함에 있어서 다양한 기계 장치-판독 가능 매체가 포함된다. 이러한 매체는 한정되는 것은 아니지만, 저장 매체와 전송 매체를 포함하는 여러 가지 형태를 취할 수 있다. 저장 매체는 비휘발성 매체와 휘발성 매체를 모두 포함한다. 비휘발성 매체는 예컨대, 저장 장치(410)와 같은 광 디스크 또는 자기 디스크를 포함한다. 휘발성 매체는 메인 메모리(406)와 같은 동적 메모리를 포함한다. 전송 매체는 버스(402)를 포함하는 와이어를 포함하는 동축 케이블, 구리 와이어 및 광섬유를 포함한다. 전송 매체는 무선파 통신과 적외선 파일 통신 중에 발생되는 것과 같은 음향파 또는 광파의 형태를 취할 수도 있다. 이러한 매체 전부는 매체에 의해 보유되는 명령이 해당 명령을 기계 장치 내로 판독하는 물리적 메커니즘에 의해 검출될 수 있도록 실재적이어야 한다.
기계 장치-판독 가능 매체의 통상의 형태는 예컨대, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광학 매체, 펀치 카드, 종이 테이프, 구멍 패턴을 갖는 임의의 다른 물리적 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 이후 설명되는 반송파, 또는 컴퓨터가 판독할 수 있는 임의의 다른 매체를 포함한다.
일련의 하나 이상의 명령을 실행을 위해 프로세서(404)로 전달함에 있어서 다양한 형태의 기계 장치-판독 가능 매체가 포함될 수 있다. 예를 들면, 명령은 처음에 원격지 컴퓨터의 자기 디스크 상에 보유될 수 있다. 원격지 컴퓨터는 해당 명령을 자체의 동적 메모리에 불러들인 후 모뎀을 사용하여 전화선을 통해 전송한다. 컴퓨터 시스템(400)에 속한 모뎀은 전화선으로 파일을 수신한 후 적외선 송신기를 사용하여 해당 파일을 적외선 신호로 변환할 수 있다. 적외선 감지기는 적외선 신호로 전송된 파일을 수신할 수 있고, 해당 파일은 적절한 회로에 의해 버스(402)에 배정될 수 있다. 버스(402)는 파일을 메인 메모리(406)로 전송하고, 프로세서(404)는 메인 메모리로부터 명령을 검색하여 실행한다. 메인 메모리(406)에 의해 수신된 명령은 프로세서(404)에 의한 실행 전 또는 실행 후에 저장 장치(410)에 선택적으로 저장될 수 있다.
컴퓨터 시스템(400)은 버스(402)에 결합된 통신 인터페이스(418)도 포함한다. 통신 인터페이스(418)는 로컬 네트워크(422)에 연결된 네트워크 링크(420)에 양방향 파일 통신 커플링을 제공한다. 예를 들면, 통신 인터페이스(418)는 통합 서비스 디지털 네트워크(ISDN) 또는 디지털 가입자 회선(DSL) 형태의 대응하는 종류의 전화선에 파일 통신 연결을 제공하는 카드 또는 모뎀일 수 있다. 다른 예로서, 통신 인터페이스(418)는 호환 가능한 LAN에 대해 파일 통신 연결을 제공하는 LAN 카드일 수 있다. 무선 링크도 역시 구현될 수 있다. 임의의 이러한 실시 형태에서, 통신 인터페이스(418)는 다양한 종류의 정보를 나타내는 디지털 파일 스트림을 보유하는 전기적, 전자기적, 또는 광학적 신호를 송수신한다.
네트워크 링크(420)는 통상 하나 이상의 네트워크를 통해 다른 파일 장치로 파일 통신을 제공한다. 예를 들면, 네트워크 링크(420)는 로컬 네트워크(422)를 통해 호스트 컴퓨터(424)에 또는 인터넷 서비스 제공자(ISP)(426)에 의해 동작되는 파일 장비에 연결을 제공할 수 있다. ISP(426)는 다시 통상 "인터넷"(428)로 지칭되는 월드 와이드 패킷 파일 통신 네트워크를 통해 파일 통신 서비스를 제공한다. 로컬 네트워크(422)와 인터넷(428) 모두는 디지털 파일 스트림을 보유하는 전기적, 전자기적, 또는 광학적 신호를 사용한다. 컴퓨터 시스템(400)에 대해 입출력되는 디지털 파일을 보유하는 다양한 네트워크를 통한 신호와 통신 인터페이스(418)를 통하는 네트워크 링크(420) 상의 신호는 일례로 정보를 전송하는 반송파의 형태를 가진다.
컴퓨터 시스템(400)은 네트워크(들), 네트워크 링크(420) 및 통신 인터페이스(418)를 통해 메시지를 송신하고 프로그램 코드를 포함하는 파일을 수신할 수 있다. 인터넷의 경우, 서버(430)가 인터넷(428), ISP(426), 로컬 네트워크(422) 및 통신 인터페이스(418)를 통해 어플리케이션 프로그램 요청 코드를 전송할 수 있다.
수신된 코드는 수신되거나 및/또는 추후의 실행을 위해 저장 장치(410) 또는 기타 비휘발성 저장 장치에 저장될 때 프로세서(404)에 의해 실행될 수 있다. 이러한 방식으로, 컴퓨터 시스템(400)은 반송파 형태의 어플리케이션 코드를 획득할 수 있다.
일 실시예에서, 여기 설명된 기술 또는 방법은 임의의 컴퓨팅 장치에 의해 수행될 수 있다. 컴퓨팅 장치의 예로는 한정되는 것은 아니지만, 컴퓨터 시스템, 데스크톱, 랩톱, 이동 통신 장치, 서버, 무인 정보 단말기, 태블릿, 후대폰, 게임 콘솔, 또는 여기 설명된 방법 중 적어도 일부를 수행하기 위해 사용되는 하드웨어를 포함하는 임의의 다른 기계 장치가 있다.
확장 및 대안
전술한 설명에 있어서 본 발명은 구현시마다 변할 수 있는 다양한 특정의 세부적 실시 형태를 참조로 설명되었다. 따라서, 발명의 본질과 출원인이 의도하는 발명에 대한 유일하고도 배타적인 지표는 임의의 추가 수정을 포함하여 청구범위가 제기하는 특정 형태를 갖는 본 출원의 특허청구범위 세트이다. 이러한 특허청구범위 내에 포함된 용어에 대해 여기에서 분명히 언급되는 임의의 정의는 특허청구범위에 사용된 해당 용어의 의미를 지배할 것이다. 따라서, 특허청구범위에 특별히 언급되지 않은 제한, 요소, 특성, 특징, 장점 또는 속성 어떤 것도 어떻든 이러한 특허청구범위의 범위를 제한하지 않아야 한다. 따라서, 본 명세서와 도면은 제한적인 의미보다는 예시적인 것으로 간주되어야 한다.

Claims (14)

  1. 방법에 있어서,
    복수의 파일 중 특정 속성을 가지는 각각의 파일의 크기를 모니터링하는 단계와;
    상기 모니터링을 기초로 상기 복수의 파일과 관련된 패턴을 결정하는 단계와;
    상기 특정 속성을 가지는 현재 크기의 파일에 대한 저장 메모리 할당 요청을 수신하는 단계와;
    적어도 상기 복수의 파일과 관련된 패턴을 기초로, 상기 파일의 현재 크기와는 다른 상기 파일의 미래 크기를 추정하는 단계와;
    상기 파일의 상기 미래 크기를 기초로 상기 파일의 저장을 위한 저장 메모리 할당을 수행토록 하는 단계
    를 포함하고;
    하나 이상의 컴퓨팅 장치에 의해 수행되는 것인, 방법.
  2. .
  3. 제1항에 있어서, 상기 파일의 미래 크기를 추정하는 단계는 상기 파일에 대한 예측된 수정을 기초로 파일 크기의 예상 증가를 추정하는 것을 포함하며, 상기 수정은 적어도 부분적으로 상기 특정 속성을 기초로 예측되는 것인, 방법.
  4. 제1항에 있어서, 상기 저장 메모리 할당 요청은 상기 파일의 초기 생성에 응답하여 수신되는 것인, 방법.
  5. 제1항에 있어서, 상기 저장 메모리 할당 요청은 이전에 저장된 버전의 파일로부터 상기 파일에 대해 실행된 수정에 응답하여 수신되는 것인, 방법.
  6. 제1항에 있어서, 상기 특정 속성은 상기 파일의 파일 종류인 것인, 방법.
  7. 제1항에 있어서, 상기 특정 속성은:
    상기 파일의 이전 사용;
    상기 파일의 파일 종류;
    상기 파일을 소유하는 어플리케이션;
    상기 파일의 저장을 요청하는 어플리케이션;
    상기 파일과 관련된 우선 순위;
    상기 파일과 관련된 현재의 또는 예측된 액세스 빈도;
    상기 파일과 관련된 환경;
    상기 파일과 관련된 예정 보존 기간(duration);
    상기 파일을 공유하는 처리의 수;
    상기 파일과 관련된 사용자;
    파일 저장에 유용한 저장 메모리 공간;
    상기 파일에 저장된 정보;
    상기 파일의 에이지(age); 또는
    상기 파일과 다른 파일들 또는 어플리케이션들 중 하나 이상과의 관계
    를 포함하는 것인, 방법.
  8. 방법에 있어서,
    제1 파일에 대한 제1 저장 메모리 할당 요청을 수신하는 단계와;
    상기 제1 요청의 수신에 응답하여, 상기 제1 파일의 저장을 위한 제1 저장 메모리 공간의 할당을 수행하는 단계와;
    적어도, 상기 요청이 수신될 때 상기 제1 파일과 관련된 속성을 기초로 제2 저장 메모리 공간의 할당을 수행하거나 상기 제2 저장 메모리 공간을 예약하는 단계
    를 포함하고;
    상기 제2 저장 메모리 공간은 상기 제1 파일에 관련된 제2 파일을 저장하기 위해 할당 또는 예약되며;
    상기 방법은 하나 이상의 컴퓨팅 장치에 의해 수행되는 것인, 방법.
  9. 제8항에 있어서, 상기 제2 저장 메모리 공간을 할당하거나 예약하는 단계는 상기 제1 요청의 수신에 응답하여 수행되는 것인, 방법.
  10. 제8항에 있어서, 상기 제2 저장 메모리 공간은 상기 제2 저장 메모리 공간에 데이터의 저장을 야기하는 제2 요청의 수신 이전에 할당 또는 예약되는 것인, 방법.
  11. 제8항에 있어서,
    복수의 파일 중 특정 속성을 갖는 각각의 파일에 대한 저장 메모리 할당 패턴을 검출하도록 저장 메모리 할당을 모니터링하는 단계를 더 포함하고;
    각각의 파일에 대한 상기 저장 메모리 할당 패턴은:
    상기 특정 속성을 갖는 상기 파일의 저장을 위한 저장 메모리 할당과;
    특정 시간 간격 내에서 상기 특정 속성을 갖는 상기 파일에 관련된 다른 파일의 저장을 위한 저장 메모리 할당
    을 포함하는 것인, 방법.
  12. 제8항에 있어서, 상기 제1 저장 메모리 공간의 할당 단계 및 상기 제2 저장 메모리 공간의 할당 또는 예약의 단계는: 상기 제1 저장 메모리 공간과 상기 제2 저장 메모리 공간을 포함하는 연속 저장 메모리 공간을 식별하는 것을 포함하는 것인, 방법.
  13. 하나 이상의 프로세서에 의해 실행시 제1항 내지 제12항 중 어느 항에 따른 방법의 수행을 야기하는 일련의 명령을 포함하는 컴퓨터 판독 가능 저장 매체.
  14. 하나 이상의 프로세서를 포함하고, 제1항 내지 제12항 중 어느 항에 따른 단계를 수행하도록 구성된 장치.
KR1020127013857A 2009-10-29 2010-10-29 미래 사용 추정에 기반한 저장 메모리 할당 KR20120102664A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US25629909P 2009-10-29 2009-10-29
US61/256,299 2009-10-29
US12/854,804 US8521986B2 (en) 2009-10-29 2010-08-11 Allocating storage memory based on future file size or use estimates
US12/854,804 2010-08-11

Publications (1)

Publication Number Publication Date
KR20120102664A true KR20120102664A (ko) 2012-09-18

Family

ID=43926620

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127013857A KR20120102664A (ko) 2009-10-29 2010-10-29 미래 사용 추정에 기반한 저장 메모리 할당

Country Status (10)

Country Link
US (2) US8521986B2 (ko)
EP (1) EP2494436A1 (ko)
JP (1) JP2013509658A (ko)
KR (1) KR20120102664A (ko)
CN (1) CN102713824A (ko)
AU (1) AU2010319840A1 (ko)
CA (1) CA2778147A1 (ko)
RU (1) RU2012120252A (ko)
TW (1) TW201140430A (ko)
WO (1) WO2011059837A1 (ko)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210017835A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
KR20210017833A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 이를 통한 가중치 연산 방법
KR20210017834A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 메모리 할당 방법 및 이를 수행하기 위한 메모리 관리 시스템
KR20210056551A (ko) * 2019-11-11 2021-05-20 주식회사 케이티 양자 암호키 관리 장치, 방법 및 컴퓨터 프로그램
US11449738B2 (en) 2019-08-09 2022-09-20 Korea Electronics Technology Institute Neuromorphic memory management system and method thereof

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110106861A1 (en) * 2009-11-04 2011-05-05 Nokia Corporation Interface Techniques Providing Contiguous Storage For Files
US8775766B2 (en) * 2010-02-02 2014-07-08 International Business Machines Corporation Extent size optimization
US8745232B2 (en) * 2010-08-18 2014-06-03 Dell Products L.P. System and method to dynamically allocate electronic mailboxes
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US8548961B2 (en) * 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
US9229657B1 (en) 2012-11-01 2016-01-05 Quantcast Corporation Redistributing data in a distributed storage system based on attributes of the data
US9811529B1 (en) * 2013-02-06 2017-11-07 Quantcast Corporation Automatically redistributing data of multiple file systems in a distributed storage system
US9792295B1 (en) 2013-02-06 2017-10-17 Quantcast Corporation Distributing data of multiple logically independent file systems in distributed storage systems including physically partitioned disks
GB2520943B (en) * 2013-12-03 2016-12-28 Samsung Electronics Co Ltd Memory allocation for applications based on identified allocation history
US9740481B2 (en) 2013-12-03 2017-08-22 Samsung Electronics Co., Ltd. Electronic device and method for memory allocation in electronic device
JP6050768B2 (ja) 2014-01-31 2016-12-21 京セラドキュメントソリューションズ株式会社 データ記憶装置及びデータ記憶方法
CN103970641A (zh) * 2014-05-15 2014-08-06 浪潮电子信息产业股份有限公司 一种基于容量预测技术的设备扩容方法
CN105700819B (zh) * 2014-11-28 2019-04-12 国际商业机器公司 用于网络数据存储的方法和系统
US10788994B1 (en) * 2014-12-30 2020-09-29 EMC IP Holding Company LLC Disaggregation of flash management
US9696930B2 (en) 2015-06-10 2017-07-04 International Business Machines Corporation Reducing new extent failures on target device during non-disruptive logical data set migration
US10120920B2 (en) * 2015-07-10 2018-11-06 International Business Machines Corporation Increasing storage space for processes impacting data storage systems
US11625181B1 (en) 2015-08-24 2023-04-11 Pure Storage, Inc. Data tiering using snapshots
US11294588B1 (en) * 2015-08-24 2022-04-05 Pure Storage, Inc. Placing data within a storage device
CN105354315B (zh) * 2015-11-11 2018-10-30 华为技术有限公司 分布式数据库中子表分裂的方法、子表节点和系统
CN105787012B (zh) * 2016-02-23 2019-08-27 深圳市瑞驰信息技术有限公司 一种提高存储系统处理小文件的方法以及存储系统
US10228886B2 (en) 2016-04-20 2019-03-12 International Business Machines Corporation Storage device volume selection for improved space allocation
US9588976B1 (en) * 2016-07-22 2017-03-07 Red Hat, Inc. Delayed allocation for a direct access non-volatile file system
US9886449B1 (en) * 2016-07-22 2018-02-06 Red Hat, Inc. Delayed allocation for data object creation
US11977456B2 (en) * 2016-11-23 2024-05-07 2236008 Ontario Inc. File system framework
US9996293B1 (en) * 2016-12-12 2018-06-12 International Business Machines Corporation Dynamic management of memory allocation in a database
CN109032965B (zh) * 2017-06-12 2021-01-12 华为技术有限公司 一种数据读取方法、主机及存储设备
US10684902B2 (en) * 2017-07-28 2020-06-16 Advanced Micro Devices, Inc. Method and apparatus for memory vulnerability prediction
US11061734B2 (en) * 2019-01-31 2021-07-13 Salesforce.Com, Inc. Performing customized data compaction for efficient parallel data processing amongst a set of computing resources
CN110968272B (zh) * 2019-12-16 2021-01-01 华中科技大学 基于时间序列预测的海量小文件存储性能优化方法及系统
US11683373B2 (en) * 2020-02-20 2023-06-20 Comcast Cable Communications, Llc Systems, methods, and apparatuses for storage management
CN114063885B (zh) * 2020-07-31 2024-07-09 伊姆西Ip控股有限责任公司 用于管理存储空间的方法、设备和计算机程序产品

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61292758A (ja) * 1985-06-20 1986-12-23 Fujitsu Ltd 直接アクセス装置の領域割当て方式
JP3112709B2 (ja) * 1991-08-08 2000-11-27 シャープ株式会社 追記型記憶媒体のアクセス装置
US6088764A (en) * 1997-07-14 2000-07-11 International Business Machines Corporation Method and apparatus for reducing space allocation failures in storage management systems
JP3988417B2 (ja) * 2001-09-05 2007-10-10 日本電気株式会社 コンピュータシステム、記憶装置、ファイル配置方法、及びファイル配置プログラム
US6948089B2 (en) * 2002-01-10 2005-09-20 Hitachi, Ltd. Apparatus and method for multiple generation remote backup and fast restore
US7203713B2 (en) * 2002-09-20 2007-04-10 International Business Machines Corporation Method and apparatus for optimizing extent size
JP2005309791A (ja) * 2004-04-22 2005-11-04 Hitachi Ltd ディスク装置及びスワップファイルの再配置方法
JP4183660B2 (ja) * 2004-06-25 2008-11-19 シャープ株式会社 ファイル管理方法及び装置
JP2006146812A (ja) * 2004-11-24 2006-06-08 Sony Corp 情報処理装置、情報処理方法、プログラム
WO2007081638A2 (en) 2005-12-21 2007-07-19 Sandisk Corporation Non-volatile memories and methods with adaptive file handling in a directly mapped file storage system
US20070150492A1 (en) * 2005-12-27 2007-06-28 Hitachi, Ltd. Method and system for allocating file in clustered file system
JP2007221489A (ja) * 2006-02-16 2007-08-30 Kyocera Corp 通信端末及び通信方法
US8275967B2 (en) * 2008-03-13 2012-09-25 Bright Technologies, Inc. Storage of sequentially sensitive data

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210017835A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 관리 방법
KR20210017833A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 뉴로모픽 메모리 관리 시스템 및 이를 통한 가중치 연산 방법
KR20210017834A (ko) * 2019-08-09 2021-02-17 한국전자기술연구원 메모리 할당 방법 및 이를 수행하기 위한 메모리 관리 시스템
US11449738B2 (en) 2019-08-09 2022-09-20 Korea Electronics Technology Institute Neuromorphic memory management system and method thereof
KR20210056551A (ko) * 2019-11-11 2021-05-20 주식회사 케이티 양자 암호키 관리 장치, 방법 및 컴퓨터 프로그램

Also Published As

Publication number Publication date
WO2011059837A1 (en) 2011-05-19
RU2012120252A (ru) 2013-12-10
US20110107053A1 (en) 2011-05-05
AU2010319840A1 (en) 2012-05-17
TW201140430A (en) 2011-11-16
JP2013509658A (ja) 2013-03-14
CA2778147A1 (en) 2011-05-19
CN102713824A (zh) 2012-10-03
EP2494436A1 (en) 2012-09-05
US20130332693A1 (en) 2013-12-12
US8521986B2 (en) 2013-08-27

Similar Documents

Publication Publication Date Title
KR20120102664A (ko) 미래 사용 추정에 기반한 저장 메모리 할당
US11558270B2 (en) Monitoring a stale data queue for deletion events
EP2269132B1 (en) Storage system and control method thereof as well as program
US8560671B1 (en) Systems and methods for path-based management of virtual servers in storage network environments
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
US7647450B2 (en) Method, computer and computer system for monitoring performance
US8261282B1 (en) System and method for virtual machine host load protection
US20080126831A1 (en) System and Method for Caching Client Requests to an Application Server Based on the Application Server's Reliability
CN110196770B (zh) 云系统内存数据处理方法、装置、设备及存储介质
US11914894B2 (en) Using scheduling tags in host compute commands to manage host compute task execution by a storage device in a storage system
CN105190525A (zh) 管理在节电模式中对混合式驱动器的访问
US20170153909A1 (en) Methods and Devices for Acquiring Data Using Virtual Machine and Host Machine
CN112051970A (zh) 混合驱动器的脏数据管理
US11507502B2 (en) Data storage device performance prediction based on valid fragment count
CN108475201A (zh) 一种虚拟机启动过程中的数据获取方法和云计算系统
US9916220B2 (en) Smart logging of trace data for storage systems
US9606909B1 (en) Deallocating portions of provisioned data storage based on defined bit patterns indicative of invalid data
US20180039449A1 (en) Deallocating portions of data storage based on notifications of invalid data
CN110347546B (zh) 监控任务动态调整方法、装置、介质及电子设备
CN103685359B (zh) 数据处理方法及装置
US20140058717A1 (en) Simulation system for simulating i/o performance of volume and simulation method
US11416152B2 (en) Information processing device, information processing method, computer-readable storage medium, and information processing system
CN110837428A (zh) 存储设备管理方法及装置
CN111399763B (zh) 数据存储的方法、装置、系统、设备及存储介质
US20210326386A1 (en) Information processing system, information processing device, and non-transitory computer-readable storage medium for storing program

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid