KR101825770B1 - 공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법 - Google Patents

공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101825770B1
KR101825770B1 KR1020137006437A KR20137006437A KR101825770B1 KR 101825770 B1 KR101825770 B1 KR 101825770B1 KR 1020137006437 A KR1020137006437 A KR 1020137006437A KR 20137006437 A KR20137006437 A KR 20137006437A KR 101825770 B1 KR101825770 B1 KR 101825770B1
Authority
KR
South Korea
Prior art keywords
file
files
cache
storage
uploaded
Prior art date
Application number
KR1020137006437A
Other languages
English (en)
Other versions
KR20130113435A (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 샌디스크 아이엘 엘티디
Publication of KR20130113435A publication Critical patent/KR20130113435A/ko
Application granted granted Critical
Publication of KR101825770B1 publication Critical patent/KR101825770B1/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
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/126Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/172Caching, prefetching or hoarding 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5681Pre-fetching or pre-delivering data based on network characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/17Embedded application
    • G06F2212/171Portable consumer electronics, e.g. mobile phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/46Caching storage objects of specific type in disk cache
    • G06F2212/463File

Abstract

저장장치를 관리하기 위한 시스템들 및 방법들이 개시된다. 일반적으로, 저장장치가 하나 이상의 폐기가능 파일들을 저장하기 위한 캐시를 포함하는 저장장치가 동작가능하게 결합되는 호스트에서, 외부 위치에 업로드될 파일이 확인된다. 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간 이 존재하는지 판정이 행해지고, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정되었을 때 캐시에 파일이 저장되며, 사전-적재는 업로드 정책에 따라 이러한 파일을 기회주의적으로 업로드하기 위한 파일을 준비한다.

Description

공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR MANAGING AN UPLOAD OF FILES IN A SHARED CACHE STORAGE SYSTEM}
관련출원에 대한 상호참조
이 출원은 전체를 참조로서 본원에 포함시키는 2010년 8월 19일에 출원된 미국가특허출원 번호 61/401,841의 혜택을 청구한다.
본 발명은 일반적으로 저장장치들에 관한 것으로, 특히 저장장치의 캐시에 사전-적재(pre-stage)된 파일들의 외부 위치로의 업로드를 관리하기 위한 방법들 및 장치들에 관한 것이다.
발행자들(예를 들면, 서비스 및 콘텐트 제공자들)은 사용자들이 종국에는 요금을 내고 비간청 콘텐트를 소비하여 이에 따라 이들의 소득을 증가시킬 희망을 가지고, 비간청된 콘텐트를 사용자의 저장장치들에 다운로드하기를 요망한다. 사용자들이 이들 콘텐트들을 요금을 내고 소비할 것을 희망하면서 사용자들의 동의를 구하지 않고 발행자들이 저장장치들에 비간청 콘텐트들을 저장하는 관행은 미디어 발행 분야에서는 "예측 위탁판매"로서 알려진 개념이다. 그러나, 비간청 콘텐트는 저장장치의 사용자가 이것이 있는지도 모르고, 혹은 이를 소비하기를 원함이 없이 저장장치에 저장된 채로 있을 수 있다. 저장장치에 비간청 콘텐트를 저장하는 것은 저장장치 상에 가용한(즉, 자유) 사용자 저장 공간을 감소시키며, 이는 사용자의 입장에선 바람직하지 못하다. 사용자는 누군가가(즉, 어떤 발행자) 저장장치 상에 저장 공간의 일부를 차지하였기 때문에 사용자 자신의 콘텐트(예를 들면, 음악 파일)를 위한 저장장치 내 공간이 부족하다거나, 비간청 콘텐트를 삭제함으로써 사용자가 취해지는 저장 공간을 회수해야 할 수도 있음을 발견할 수도 있다.
모바일 핸드셋 사용자들은 이들이 발생 또는 얻는 콘텐트를 저장하는 경향이 있다. 사용자들은 흔히 이들이 다른 자들과 공유하고 이들의 계정을 유지하는 서버 상에 개인용 사이트와 같은 원격 저장소에 추후에 사용하기 위해 저장하는 경향이 있는 콘텐트를 저장한다. 이를 위해서, 사용자들은 이들이 저장장치에 저장하는 콘텐트를 업로드하기를 시도할 것이다. 그러나, 저장장치는 발행자들이 이에 저장하는 모든 콘텐트로 점유될 수 있다. 실제로, 사용자들은 항시 미리 이들의 저장 공간 한계들을 아는 것도 아니고, 이들은 이들이 문제에 부딪칠때까지 이들의 콘텐트를 원격의 외부 사이트에 업로드하기를 시도할 때 네트워크 트래픽 부하도 알지 못한다.
이에 따라, 콘텐트 소유자들이 핸드셋들에 콘텐트를 넣을 수 있게 하면서도, 사용자가 외부 위치에 파일을 업로드하거나 외부 위치에 업로드하기 위해 파일을 사전-적재하는 등의 동작들을 수행하기를 원할 때, 사용자가 페널티 없이 이들의 저장 공간을 자유로이 사용하게, 핸드셋 저장을 지능형으로 관리하는 새로운 기술에 대한 필요성이 나타났다.
본 발명은 공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법을 제공하기 위한 것이다.
개요
본 발명의 실시예들은 청구항들에 의해 정의되며 이 단락은 이들 청구항들에 대한 제한으로서 취해지지 않아야 한다. 간략한 소개로서, 이 문서에 기술되고 첨부된 도면들에 도시된 실시예들은 일반적으로 하나 이상의 폐기가능 파일들을 저장하는 캐시를 포함하는 저장장치에 파일들을 관리하는 것에 관한 것이다. 일부 구현들에서 저장장치가 동작가능하게 결합되는 호스트 내에 있는 저장 할당기의 일부일 수도 있는 업로드 관리기는 외부 위치에 업로드될 파일을 확인하며 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위해 캐시에 충분한 자유 공간이 존재하는지를 판정한다. 업로드 관리기는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위해 캐시에 충분한 자유 공간이 존재하는 것으로 판정할 때 캐시에 파일을 저장할 수 있고, 사전-적재는 업로드 정책에 따라 이러한 파일을 기회주의적으로 업로드하기 위한 파일을 준비한다. 업로드 정책은 외부 위치와의 통신이 피크를 지났을 때 사전-적재된 파일을 업로드하거나, 캐시에 공간을 비워두기 위해 사전-적재된 파일을 업로드하는 것을 포함할 수 있다.
본 발명에 따르면 공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법을 제공할 수 있다.
이 명세서에 포함되고 이의 일부를 구성하는 동반된 도면들은 발명의 다양한 실시예들 및 특징들을 도시하며 상세한 설명과 더불어 이들 예들이 제약적이 되지 않게 하려는 의도로 발명의 원리를 설명하는데 사용된다. 예시의 단순성과 명확성을 위해서 이하 언급되는 도면들에 도시된 요소들은 반드시 축척에 맞게 도시된 것은 아님을 알 것이다. 또한, 적합한 것으로 여겨지는 경우에 동일 구성요소들에 동일 참조부호가 도면들에서 사용될 수 있다.
도 1은 실시예에 따른 저장 시스템의 블록도이다.
도 2는 또 다른 실시예에 따른 저장 시스템의 블록도이다.
도 3은 실시예에 따른 저장 할당기의 블록도이다.
도 4는 실시예에 따라 파일들을 관리하는 방법이다.
도 5는 실시예에 따라 저장장치에 폐기가능 파일들의 저장을 관리하는 방법이다.
도 6은 실시예에 따라 FAT32-구조의 파일 시스템에 하나 이상의 폐기가능 파일들을 표시하는 방법이다.
도 7는 FAT32 테이블에 연관된 예시적 디렉토리 영역이다.
도 8은 실시예에 따라 FAT32 테이블이다.
도 9은 실시예에 따라 NTFS 테이블이다.
도 10은 실시예들에 따라 FAT-기반의 파일 시스템의 논리 이미지이다.
도 11은 본 개시에 따른 파일 저장 관리 방법을 도시한 것이다.
도 12는 하나 이상의 폐기가능 파일들을 저장하게 구성된 캐시를 포함하는 시스템에서 외부 위치에 파일의 업로드를 관리하기 위한 방법의 흐름도이다.
다음 설명은 당업자가 청구된 발명을 제작하고 사용할 수 있게 하기 위해 특허증 이의 요건을 위해 이 출원의 맥락에서 제공된다. 설명되고 도시된 실시예들에 대한 다양한 수정들 및 이들 실시예들의 등가물들이 가능하고 본원에 정의된 여러 일반적 원리는 이들 및 다른 실시예들에 적용될 수 있다. 이에 따라, 청구된 발명은 본원에 개시된 원리, 특징들 및 교시된 바에 일관된 가장 넓은 범위에 부합되는 것이다.
비휘발성 저장장치들의 사용은 이들이 휴대용이고 작은 물리적 크기와 큰 저장 용량을 갖고 있기 때문에 수년간 급속하고 증가하고 있다. 저장장치들은 다양한 디자인들로 나오고 있다. 일부 저장장치들은 "내장형"으로서 간주되는데, 이는 이들이 동작하는 호스트 장치로부터 사용자에 의해 제거될 수 없고 제거되지 않게 한 것임을 의미한다. 그외 다른 저장장치들은 착탈가능한데, 이것은 사용자가 한 호스트 장치에서(예를 들면, 디지털 카메라에서) 다른 장치로 옮길 수 있거나 한 저장장치를 다른 저장장치로 교체할 수 있음을 의미한다. 예를 들면, 한 설치에서, 저장장치는 거의 배터리처럼 호스트 장치(이의 하우징 내에) 내부에 착탈가능하게 설치될 수 있다. 또 다른 설치에서, 제거가능한 저장장치는 전용 슬롯을 통해 외부에서, 제거가능하게 플러그될 수 있다.
저장장치에 저장된 디지털 콘텐트는 저장장치의 호스트로부터 기원할 수 있다. 예를 들면, 예시적 호스트로서 디지털 카메라는 이미지들을 캡처하고 이들을 대응하는 디지털 데이터로 전환한다. 이어서 디지털 카메라는 이와 동작하는 저장장치에 디지털 데이터를 저장한다. 저장장치에 저장되는 디지털 콘텐트는 원격 소스로부터 기원할 수도 있는데, 이것은 예를 들면, 데이터 네트워크(예를 들면, 인터넷) 혹은 통신 네트워크(예를 들면, 셀룰라 전화 네트워크)를 통해 저장장치의 호스트에 보내질 수 있고, 이어서 호스트에 의해 저장장치에 다운로드될 수 있다. 원격 소스는 예를 들면 서비스 제공자 혹은 콘텐트 제공자일 수 있다. 서비스 제공자들 및 콘텐트 제공자들은 일괄하여 이하 "발행자들"이라 지칭된다.
모바일 핸드셋들 내에 저장장치들이 크기 및 능력들이 증대됨에 따라, 끊임없이 콘텐트 획득 및 소비에 대한 새로운 시나리오들이 가용해지고 있다. 전형적으로, 핸드셋들은 운영자에 의해 제어되는 서버들, 애플의 아이튠스 서비스와 같은 마켓 애플리케이션들로부터 다운로드되고, 샌스크의 슬로미디어 카드들과 같은 소스들로부터 사이드-로딩(side-loaded)되는 영화들 및 음악을 소비하기 위해 사용될 수 있다. 그러나, 모든 이들 애플리케이션들에서, 사용자는 이 사용자가 소비하기를 원하는 콘텐트를 주도적으로 찾아내고, 콘텐트를 지정하고 이의 획득을 인증하고, 콘텐트를 획득하고 이어 이를 소비해야 한다. 이것은 즉시 소비를 위해 콘텐트를 제공하는 콘텐트 소유자들의 능력 및 콘텐트를 다운로드하기를 기다리지 않고 사용자가 얻은 것을 즉시 볼 수 있는 능력을 감소시킨다.
다수의 제품 주도자들은 사용자에게 콘텐트를 사전에 로딩하는 것을 만들어 내었지만 이들 모두는 한 공통된 결점을 안고 있는데, 사용자는 콘텐트를 저장하기 위해 자신의 저장 용량을 희생시켜야 하고 이를 구입한 후까지 이 콘텐트에 액세스할 수 없다. 이 용량을 구입해야 하는 사용자들은 일반적으로 이들이 실제 사용할 수 없는 콘텐트에 할당된 그의 상당 부분을 보기를 원하지 않는다.
저장장치들의 사용자들은 발행자들로부터 미디어 콘텐트 혹은 광고들을 요청함으로써 미디어 콘텐트 및 광고들을 자진해서 다운로드할 수 있다. 그러나, 종종, 자신들의 소득을 늘릴려고 하는 발행자들은 사용자들에게 이들의 허락을 구하지 않고, 그리고 종종 콘텐트가 사용자들의 저장장치들에 다운로드되었음을 사용자들이 알지도 못하게 이러한 콘텐트를 보낸다. 발행자가 사용자들의 동의를 얻지도 않고 이들에게 보내는 콘텐트를 여기에서는 "비간청 콘텐트"라 칭한다. 흔히, 비간청 콘텐트는 발행자에게 요금을 지불한 후에, 혹은 지급한 후에, 사용자들에 의해 소비되게 의도된 것이다.
이하 기술되는 바와 같이, 저장장치에 저장된 파일들, 혹은 저장장치에 저장될 파일들은 저장장치에 연관된 파일 시스템의 구조에 폐기불가 또는 폐기가능으로서 표시된다. 폐기불가 또는 폐기가능으로서 표시된 각 파일은 이에 우선권 레벨과 같은 폐기 기준을 연관시켰다. 일반적으로, 폐기가능 파일들을 이용하는 시스템들에서, 새로운 발행자의 파일(즉, 비간청 파일)은 이를 저장장치에 저장하는 것이 사용자 파일들용으로 유보된 저장 사용 안전 마진을 요망되는 마진을 넘어 협소해지지 않게 하는 경우에만 저장장치에 저장되는 것이 허용된다. 반면, 사용자 파일들은 이들의 저장이 저장 사용 안전 마진을 요망되는 폭을 넘어 협소해지게 할지라도 저장장치에 저장되는 것이 허용된다. 그러나, 이러한 경우들에 있어서, 저장 사용 안전 마진의 요망되는 폭은 저장장치로부터 하나 이상의 폐기가능 파일들을 제거함으로써 회복된다. 폐기가능 파일은 이의 폐기 우선권 레벨이 같거나 소정의 폐기 임계값보다 크다면(혹은 본원에서 설명되는 바와 같이 낮다면) 저장장치로부터 제거된다.
외부 위치들(이를테면 서버들)에 업로드하기 위해 파일들의 사전-적재, 비간청 콘텐트의 저장, 및 관계된 문제들을 해결하기 위해서, 사용자 파일들에는 다른 파일들에 대한 저장 우선권이 주어지며, 이 우선권을 보증하기 위해 저장 사용 안전 마진이 유지된다. "사용자 파일"은 저장장치의 사용자가 자진해서 저장한, 혹은 저장장치에 저장을 승인한 파일이다. 예를 들면, 사용자가 자신의 저장장치에 다운로드하는 음악 파일은 사용자 파일로서 간주된다. 사용자에 의해 저장에 대해 요청되거가 승인되는 사용자 파일들은 "간청" 파일들로서 간주된다.
"다른 파일들"은 "사전-적재된 파일들"일 수도 있고 혹은 "발행자 파일들" 및 "비간청 파일들"로서 알려진 파일들일 수도 있다. "사전-적재된 파일"은 업로드 정책에 기초하여 원격 위치에 파일이 기회주의적으로 업로드될 수 있을 때까지 저장장치에 저장되는 파일이다. 전형적으로, 사전-적재된 파일은 사전-적재된 파일이 원격의 위치에 업로드될 때까지 저장장치로부터 제거되지 않을 것이다. 사전-적재된 파일들은 저장 파일 시스템의 구조에 "폐기가능"으로서 표시될 수 있다.
"발행자 파일"은 사용자가 이를 요청하지 않은 혹은, 적어도 잠시동안이 아닌 동안 이를 알지 못하고 발행자에 의해 저장장치에 저장된 파일이다. 사용자는 발행자 파일과 같은 비간청된 파일을 사용하기를 원하지 않을 수도 있다. 미사용 비간청 파일들은 사용자의 저장장치 상에 값비싼 저장 공간을 소비하는 경향이 있다. 그러므로, 여기에 개시된 원리에 따라, 이러한 파일들은 이들을 저장하는 것이 저장 사용 안전 마진을 협소해지게 하지 않을 경우에만 저장장치에 저장되는 것이 허용된다. 저장 우선권은 장래에 사용자의 파일들용으로 유보해 둘 자유 저장 공간(즉, 저장 사용 안전 마진)을 유지함으로써 사용자 파일들에 주어진다. 저장 사용 안전 마진은 요구되거나 요망될 때마다 사용자 파일들이 저장장치에 확실히 저장될 수 있게 하기 위해서 유지되어야 한다.
어떤 이유로 저장 사용 안전 마진이 요망되는 것보다 협소해지게 되면, 하나 이상의 비간청 파일들은 저장 사용 안전 마진을 회복하기 위해서 저장장치로부터 제거(즉, 삭제)될 것이다. 저장 사용 안전 마진을 유지하는 것은 이러한 파일들이 저장장치에 다운로드된다면 추가의 사용자 파일들을 위한 저장 공간을 보증한다. 이를 위해서, 비간청 파일들은 저장 파일 시스템의 구조에 "폐기가능"로서 표시되며, 요구된다면, 저장 사용 안전 마진을 유지하기 위해 요구되는 적어도 자유 저장 공간을 회수하기 위해 나중에 제거된다.
캐시로서 알려진 저장장치의 저장 영역은 사전-적재된 파일들 또는 발행자 파일들, 또는 소위 폐기가능 파일들과 같은 파일들을 저장하기 위해 사용되며, 이것은 저장장치의 자유 저장 공간도 포함한다. 캐시 내 폐기가능 파일들은 이들이 폐기가능 파일들로서 표시된 저장장치 내 대안적 데이터 구조 또는 파일 시스템을 통해 관리될 수 있다.
사용자가 각종 사용자 파일들, 사전-적재된 파일들, 및 비간청 파일들을 사용할 가능성은 파일마다 다를 수 있기 때문에, 각 파일(그리고, 더 특정하게는 각 폐기가능 파일)에는 예를 들면 저장장치의 사용자가 자진해서 파일을 저장하였는지 여부, 원격 위치에 기회주의적 업로드를 위해 캐시에 파일이 사전-적재되고 있는지 여부, 파일을 사용할 확률, 파일을 사용하는 것에 연관된 있을 수 있을 수익, 파일의 크기, 파일의 유형, 파일의 위치, 파일의 저장기간, 등과 같은 하나 이상의 기준에 따라 사전에 폐기 우선권 레벨과 같은 폐기 기준이 할당된다. 예를 들면, 사전-적재된 파일들에 관하여, 폐기 우선권 레벨은 사전-적재된 파일이 비간청 파일보다 큰 우선권을 갖지만 사용자 파일보다 낮은 우선권을 갖게 사전-적재된 파일에 할당될 수 있다. 따라서, 비간청 파일들은 사전-적재된 파일들 및 사전-적재된 파일들이 사용자 파일들보다 먼저 저장장치로부터 제거될 수 있기 전에 저장장치로부터 제거될 수 있다.
비간청 파일들에 관하여, 폐기 우선권 레벨은 수익 가능성에 의해 결정될 수도 있다. 이에 따라, 영화 트레일러들 혹은 광고들은 사용자들이 일반적으로 트레일러들 및 광고들을 보고 싶어하지 않기 때문에 실제 영화보다 높은 폐기 우선권을 가질 것이다. 또 다른 예에 따라, 사용자에 의해 가장 사용될 가능성 있는 하나 이상의 폐기가능 파일들에는 가장 낮은 폐기 우선권 레벨이 할당될 것이며, 이것은 이러한 파일들이 저장장치로부터 제거될 마지막 파일(들)이 될 것임을 의미한다. 즉, 폐기가능 파일의 사용 확률이 높을수록 이 파일에 할당되는 폐기 우선권 레벨의 레벨은 낮아지게 될 것이다. 하나 이상의 폐기가능 파일들이 제거되었어도 요망되는 저장 사용 안전 마진이 완전히 회복되지 않는다면, 요망되는 저장 사용 안전 마진이 회복될 때까지 추가의 폐기가능 파일들이 저장장치로부터 제거될 것이다.
요약하여, 파일 시스템과 같은 데이터 구조는 다양한 파일들을, 만약 모바일 핸드셋 장치, 데스크탑 컴퓨터, 서버, 또는 그외 다른 계산 플랫폼이라면, 컴퓨터 시스템에 저장하고 구성하는 방법을 구현한다. 파일 시스템은 데이터의 저장, 계층적 구성, 조작, 내비게이션, 액세스, 및 검색을 위해 구현되는 한 세트의 앱스트랙트 데이터 유형들 및 메타데이터를 포함한다. 앱스트랙트 데이터 유형들 및 메타데이터는 "디렉토리 트리들"을 형성하며 이를 통해 파일들이 액세스되고, 조작되고 기동될 수 있다. "디렉토리 트리"는 전형적으로 루트 디렉토리 및 선택적 서브-디렉토리들을 포함한다. 디렉토리 트리는 하나 이상의 "디렉토리 파일들"로서 파일 시스템에 저장된다. 파일 시스템에 포함된 한 세트의 메타데이터 및 디렉토리 파일들을 본원에서는 "파일 시스템 구조"라 한다. 그러므로, 파일 시스템은 파일들에 액세스, 조작, 업데이트, 삭제, 및 기동을 용이하게 하는 파일 시스템 구조를 포함한다.
파일 할당 테이블("FAT")은 대표적 파일 시스템 아키텍처이다. FAT 파일 시스템은 DR-DOS, OpenDOS, MS-DOS, Linux, Windows, Windows Mobile, Windows CE, Symbian OS, Palm OS, uCLinx, TinyOS, NutOS, pSOS, Vx Works, BSD Unix, Nucleus OS, ThreadX (FileX), Android, Mac OS, BlackBerry OS, iOS, 등을 포함한 각종 운영 시스템들에 사용된다. FAT-구조의 파일 시스템은 어느 저장 영역들이 비워져 있고 할당되었는지와 각 파일이 저장장치 상에 저장되는 곳에 관한 정보를 중앙집중화한 테이블을 사용한다. 테이블의 크기를 제한하기 위해서, 저장 공간은 "클러스터들"이라고 하는 인접한 섹터들의 그룹들로 파일들에 할당된다. 저장장치들이 발전됨에 따라, 클러스터들의 최대 수가 증가하였으며 클러스터를 식별하기 위해 사용되는 비트들의 수가 증가하였다. FAT 포맷의 버전은 테이블 비트들의 수로부터 도출되는데, FAT12는 12 비트를 사용하며, FAT16는 16 비트를 사용하며 FAT32는 32 비트를 사용한다.
또 다른 파일 시스템 아키텍처는 신기술 파일 시스템("NTFS")로서 알려져 있다. 현재, NTFS는 후속 버전들로서 Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, 및 Windows Vista 및 Windows 7를 포함한, Windows NT의 표준 파일 시스템이다. FAT32 및 NTFS은 저장장치(100)에 제공될 수 있는 예시적 파일 시스템들이다.
도 1은 전형적인 저장장치(100)를 도시한 것이다. 저장장치(100)는 각종 유형들의 파일들(예를 들면, 음악 파일들, 비디오 파일들, 등), -이들 중 일부는 사용자 파일들일 수 있고 이외 다른 것들은 사전-적재된 파일들 또는 발행자 파일들일 수 있다- 를 저장하기 위한 저장 영역(110)을 포함한다. 또한, 저장장치(100)는 데이터 및 제어 라인들(130)을 통해 저장 영역(110)을 관리하는 저장 제어기(120)를 포함한다. 또한, 저장 제어기(120)는 호스트 인터페이스(150)를 통해 호스트 장치(140)와 통신한다. 호스트 장치(140)는 전용 하드웨어 혹은 범용 계산 플랫폼일 수도 있다.
저장 영역(110)은 예를 들면 NAND 플래시 품종일 수 있다. 저장 제어기(120)는 예를 들면, "판독", "기입" 및 "소거" 동작들, 마모 평준화, 등을 제어함으로써 그리고 호스트(140)와의 통신을 제어함으로써 저장 영역(110)에/로부터 데이터 전송들 및 호스트 장치(140)에/로부터 데이터 전송들 모두를 제어한다. 저장 영역(110)은 예를 들면, 사용자 파일들과 발행자의 파일들, 권한이 있는 호스트 장치들에 의해서만 사용될 것이 허용되는 보호된 데이터, 및 저장 제어기(120)에 의해 단지 내부적으로만 사용되는 보안 데이터를 내포할 수 있다. 일반적으로, 호스트들(예를 들면, 호스트(140))은 저장 영역(110)에 직접 액세스할 수 없다. 즉, 예를 들면, 호스트(140)가 저장장치(100)로부터 데이터를 요청하거나 필요로 한다면, 호스트(140)는 이를 저장 제어기(120)로부터 요청해야 한다. 저장장치(100)에 저장된 데이터 파일들에의 용이한 액세스를 할 수 있게 하기 위해서, 저장장치(100)에는 파일 시스템(160)이 제공된다.
이 예에서, 저장영역(110)은 사용자 영역(170), 폐기가능 파일 영역(180), 및 자유 저장 공간(190)으로 기능적으로 3부분들로 분할된다. 사용자 영역(170)은 사용자 파일들이 저장되는 저장영역(110) 내 저장 공간이다. 폐기가능 파일 영역(180)은 사전-적재된 파일들 또는 발행자 파일들과 같은 파일들이 저장되는 저장영역(110) 내 저장 공간이다. 자유 저장 공간(190)은 저장 영역(110) 내에 빈 저장 공간이다. 자유 저장 공간(190)은 사용자 파일, 사전-적재된 파일, 또는 발행자 파일을 유지하기 위해 사용될 수 있다. 총괄하여, 폐기가능 파일 영역(180) 및 자유 저장 공간(190)은 본원에서 캐시(185)라 칭하는 저장 영역(110)의 한 부분을 점유한다. 사용자 파일을 자유 저장 공간(190)에 저장할 때, 사용자 파일을 유지하는 저장 공간은 자유 저장 공간(190)으로부터 감하여지고 사용자 영역(170)에 더해진다. 마찬가지로, 사전-적재된 파일 또는 발행자 파일을 자유 저장 공간(190)에 저장할 때, 사전-적재된 파일 또는 발행자 파일을 유지하는 저장 공간은 자유 저장 공간(190)로부터 감하여지고 폐기가능 파일 영역(180)에 더해진다. 사용자 파일, 사전-적재된 파일, 또는 발행자 파일이 저장 영역(110)으로부터 제거된다면(즉, 삭제된다면), 재생된 저장 공간은 자유 저장 공간(190)에 더해진다(되돌아 간다).
자유 저장 공간(190)의 크기가 이를 허용한다면, 저장장치(100)의 사용자는 호스트(140)에서 저장 영역(110)으로 사용자 파일을 다운로드할 수 있다. 다운로드된 사용자 파일은 자유 저장 공간(190)에 저장될 것이며, 위에 설명된 바와 같이, 이 파일을 유지하기 위한 저장 공간은 자유 저장 공간(190)에서 감하여져 사용자 영역(170)에 더해진다. 위에 설명된 바와 같이, 사용자 파일들은 다른(예를 들면, 발행자) 파일들보다 우선권을 가지며, 이 우선권을 보증하기 위해서, 요망되는 저장 사용 안전 마진이 설정되고, 요구된다면, 이하 기술된 방법으로 회복된다.
호스트(140)는 자유 저장 공간(190)의 회복을 용이하게 하기 위해서 저장 할당기(144)를 포함한다. 저장 할당기(144)는 하드웨어, 펌웨어, 소프트웨어 혹은 이들의 임의의 조합일 수 있다. 일반적으로, 저장 할당기(144)는 호스트(140)에 통신되거나 호스트 140 상에 이미 있는 파일(예를 들면, 파일(142))이 사전-적재된 파일인지 아니면 발행자 파일인지를 판정하고, 이어서 이에 따라 파일을 표시한다(즉, 폐기불가 파일로서 혹은 폐기가능 파일로서).
예를 들어 파일이 사용자 파일이기 때문에, 파일(예를 들면, 파일(142))이 폐기불가한 것으로 저장 할당기(144)가 판정한다면, 저장 할당기(144)는 파일을 통상적 방법으로 저장 영역(110)에 저장하기 위해 보낸다. 위에 설명된 바와 같이, 폐기불가 파일을 유지하는 저장 영역(110) 내에 저장 공간은 사용자 영역(170)에 더해지거나, 이의 일부가 될 것이다. 그러나, 예를 들어 파일이 사전-적재된 파일 또는 발행자 파일이기 때문에 파일이 폐기가능한 것으로 저장 할당기(144)가 판정한다면, 저장 할당기(144)는 파일을 폐기가능으로서 표시한다. 일부 구현들에서, 파일을 폐기가능으로서 표시하기 위해서, 저장 할당기(144)는 파일이 폐기가능 파일임을 나타내기 위해 파일 시스템(160) 내 파일 시스템 구조를 표시함을 알 것이다. 다른 구현들에서, 파일을 폐기가능으로서 표시하기 위해, 저장 할당기(144)는 파일 자체를 폐기가능 파일로서 표시한다. 폐기가능 파일로서 표시된 발행자 파일을 저장하기 위해서, 자유 저장 공간(190)이 요망되는 저장 사용 안전 마진보다 크다면, 저장 할당기(144)는 표시된 폐기가능 파일을 자유 저장 공간(190)에 저장한다. 하지만, 위에 설명된 바와 같이, 폐기가능 파일을 유지하는 자유 저장 공간(190) 내에 저장 공간은 자유 저장 공간(190)으로부터 감하여지고(즉, 자유 저장 공간이 감소된다), 폐기가능 파일 영역(180)에 더해진다.
위에 설명된 바와 같이, 발행자 파일들이 사용자에 의해 사용될 수 있을 가능성은 발행자 파일마다 다를 수 있는데, 이것은 최소 사용된 발행자 파일을 저장 영역(110)에서 제거하기 위한 첫 번째 후보가 될 공산이 있게 한다. 그러므로, 파일을 폐기불가 혹은 폐기가능으로서 표시하는 것 외에도, 저장 할당기(144)는 폐기가능 파일이 저장 영역(110)에 저장되기 전에, 혹은 그와 동시에, 혹은 그 후에 각 폐기가능 파일에 폐기 우선권 레벨을 할당한다.
파일들을 폐기불가 또는 폐기가능으로서 표시하고, 저장 할당기(144)에 의해 폐기 우선권 레벨을 할당하고, 저장장치(100)의 파일 시스템(160)(혹은 이의 이미지)을 사용함으로써, 저장 할당기(144)는 저장 영역(110)에 사용자 파일들, 사전-적재된 파일들, 및 발행자 파일들의 수, 및 저장 영역(110) 및 캐시(185) 내에 이들의 크기들 및 논리적 위치들을 "안다". 이 정보(즉, 파일들의 수, 크기들 및 위치들)을 알고 있고, 특히 하나 이상의 표시된 파일들에 기초하여, 저장 할당기(144)는 저장 영역(110) 및 저장 영역(110)에 간청 및 비간청 파일들의 저장을 관리한다. 저장 영역(110)을 관리하는 것, 혹은 저장 영역(110)에 파일들의 저장을 관리하는 것은 예를 들면, 폐기가능으로서 표시된 하나 이상의 파일들을 선택적으로 제거함으로써 저장 사용 안전 마진을 회복하는 것과, 원격 위치에 기회주의적 업로드를 하기 위해 파일들을 사전-적재하는 것과, 폐기가능으로서 표시된 모든 파일들을 제거함으로써 저장 영역을 비워두는 것과, 다수 클러스터들의 파일을 저-성능 저장 모듈에 재 매핑하는 것을 포함할 수 있다. 저장 영역(110) 혹은 이에 저장된 파일들을 관리하는 것은 저장 영역(110) 혹은 이에 저장된 파일들의 다른, 혹은 추가적인, 혹은 대안적인 측면들을 관리하는 것을 포함할 수도 있다.
또한 저장 할당기(144)는, 각 폐기가능 파일에 할당된 폐기 레벨에 의해서, 원래 장래에 사용자 파일들을 위해 유보해 두었던 자유 저장 공간을 회복하기 위해서(즉, 요망되는 저장 사용 안전 마진을 회복하기 위해서) 폐기가능 파일들이 폐기될 수 있는 혹은 폐기하게 될(즉, 저장 영역(110)으로부터 삭제되거나 제거될) 순서를 안다. 따라서, 사용자가 새로운 사용자 파일을 저장 영역(110)에 저장하기를 원하지만 이 사용자 파일을 수용할 충분한 자유 저장 공간이 없다면(이것은 저장 사용 안전 마진이 요망되는 것보다 좁음을 의미한다), 저장 할당기(144)는 요망되는 저장 사용 안전 마진이 완전히 회복될 때까지, 폐기가능 파일들에 할당된 폐기 우선권 레벨들을 사용하여 폐기가능 파일을 차례로 반복하여 삭제하여 더 많은 자유 저장 공간을 재생한다(즉, 자유 저장 공간(190)을 늘린다). 위에 설명된 바와 같이, 완전히 회복된 저장 사용 안전 마진은 장래에 사용자 파일들을 위해 충분한 자유 저장 공간이 유보됨을 높은 확률로 보증한다. 사용자가 저장된 폐기가능 파일을 간혹 사용하기를 원할 수 있음이 고려되고 따라서 이 파일을 수용하는 저장 공간이 새로운 사용자 파일용으로 요구되는 경우에만 저장장치로부터 제거되기 때문에, 폐기가능 파일들은 새로운 사용자 파일들을 저장하라는 요청을 수신하는 것에 응해서만 저장장치(100)로부터 제거 또는 삭제된다. 저장 할당기(144)는 호스트(140) 내 내장 또는 포함될 수 있고, 혹은 호스트(140) 그리고 저장장치(100) 외부에(점선 박스(144')로서 도시된) 있을 수도 있다.
저장 할당기(144)는 저장장치(100)의 혹은 이에 연관된 파일 시스템의 전형적인 이미지를 갖는다. 저장 할당기(144)는 파일들을 폐기불가로서 혹은 폐기가능으로서 표시하고 폐기 레벨을 각 폐기가능 파일에 할당하기 위해 저장장치의 파일 시스템 이미지를 사용한다. 다시, 파일 시스템은 파일들을 관리하기 위한 한(one) 데이터 구조이며, 따라서 이미지는 이것이 어떤 형태를 갖던간에 데이터 구조의 이미지를 가질 것이다. 이 예에서, 파일 시스템은 FAT를 포함하며, 이 경우에 표시하는 것은 하나 이상의 미사용 비트들을 설정함으로써, 파일에 연관된 FAT 엔트리의 미사용 부분에 행해진다. 서로 다른 파일 시스템들은 서로 다른 구조들을 갖기 때문에, 파일들을 표시하는 것(즉, 폐기불가로서 혹은 폐기가능으로서) 및 폐기 레벨들을 할당하는 것은 도 6 내지 도 1에 상술되고 이들에 관련하여 이하 기술되는 바와 같이, 사용되는 파일 시스템 구조에 맞게 수정된다.
도 2는 또 다른 실시예에 따른 휴대 저장장치(200)의 블록도이다. 저장 제어기(220)는 저장 제어기(120)처럼 기능하고 저장 할당기(244)는 저장 할당기(144)처럼 기능한다. 저장 할당기(244)는 하드웨어, 펌웨어, 소프트웨어 혹은 이들의 임의의 조합일 수 있다. 저장 할당기(244)는 내부적으로 저장 제어기(220)와 공조한다. 요청은 파일이 폐기가능 파일인지 아닌지의 표시를 포함하는 것으로서, 저장 제어기(220)가 호스트(240)로부터 저장 영역(210)에 파일을 저장하라는 저장 요청을 수신될 때마다, 저장 제어기(220)는 저장 요청 및 파일이 폐기가능한지 여부를 저장 할당기(244)에 알린다. 이어서, 저장 할당기(244)는 저장장치(200)에 연관된 파일 시스템의 구조에 파일을 폐기불가로서 혹은 폐기가능으로서 표시한다.
전형적으로, 호스트(240) 상에서 실행되는 애플리케이션들은 파일이 폐기가능 파일인 것으로 판정하고, 파일이 폐기가능 파일임을 나타내는 플래그 또는 다른 표시를 저장 제어기(220)에 보낸다. 호스트(240) 상에서 실행되는 애플리케이션들은 저장장치에 파일을 저장할 것을 요청하기 위해 저장 프로토콜들의 부분으로서 플래그 또는 다른 표시를 보낸다. 이러한 저장 프로토콜들의 예들은 POSIX 파일 시스템 함수들 또는 java.io class 트리의 사용을 포함한다.
새로운 파일이 폐기가능한 것으로 저장 할당기(244)이 판정한다면, 저장 할당기(244)는 파일의 사용 확률에 따라 새로운 파일에 폐기 우선권 레벨을 할당한다. 이어서, 저장 할당기(244)는 자유 저장 공간(290)의 현재 크기를 평가하고 새로운 파일을 위한 공간을 만들기 위해서 하나 이상의 폐기가능 파일들이 저장 영역(210)으로부터 제거(즉, 삭제 또는 외부 위치에 업로드)되어야 하는지를 판단한다. 폐기가능 파일 혹은 파일들이 저장장치로부터 제거되어야 한다면, 저장 할당기(244)는 어느 파일(들)이 제거하기 위한 현재의 후보 파일들인지를 판단한다. 이어서, 저장 할당기(244)는 저장 영역(210)로부터 제거되어야할 폐기가능 파일들을 저장 제어기(220)에 통보하고, 통보에 응하여 저장 제어기(220)는 저장 할당기(244)에 의해 지시된 폐기가능 파일 또는 파일들을 제거한다. 휴대 저장장치(200)의 일부 구성들에서, 저장 할당기(244)는 저장 제어기(220)와 저장 영역(210) 사이에 기능적으로 배치될 수 있다. 저장 할당기(244)가 저장 제어기(220)와 저장 영역(210) 사이에 기능적으로 배치되는 구성들에서, 저장 할당기(244) 또는 저장 영역(210)은 저장 제어기(220)의 기능들 중 일부를 취해야 한다. 이러한 구성들에서 저장 영역(210)은 플래시 NAND 프로토콜들보다 높은 레벨로 통신하는 메모리 유닛들로 구성된다.
도 3은 실시예에 따른 저장 할당기(300)의 블록도이다. 저장 할당기(300)는 메모리 유닛(310), 프로세서(320), 및 인터페이스(330)를 포함한다. 메모리 유닛(310)은 저장장치(예를 들면, 도 2의 저장장치(200))에 연관된, 파일 시스템 구조 또는 파일 시스템 구조의 이미지를 유지할 수 있다. 프로세서(320)는 저장장치에 연관된 파일 시스템을 관리한다. 인터페이스(330)는 도 1에 나타낸 바와 같이 호스트와 그리고 저장장치의 저장 제어기와 공조하게, 혹은 도 2에 나타낸 바와 같이 저장장치의 저장 제어기하고만 공조하게 구성될 수 있다.
프로세서(320)는 저장장치의 저장 영역에 파일을 저장하라는 요청을 인터페이스(330)를 통해 수신하고, 저장 할당기(300)가 동작하는 저장장치에 연관된 파일 시스템의 구조에 파일을 폐기가능으로서 혹은 폐기불가로서 표시하게 구성 또는 맞게 수정된다. 인터페이스(330)가 도 2의 저장 제어기(220)에 기능적으로 부착된다면(이에 따라, 예를 들면, 파일 레벨 명령들이 아니라 SCSI 또는 랩(wrapped) USB/MSC 명령들을 수신한다면), 수신된 요청은 파일 레벨보다 훨씬 낮은 레벨에 있다. 즉, 수신된 요청은 호스트에 의해 올바르게 해석되었을 때 파일에 대응하게 될 논리 블록 어드레스들에 섹터들을 저장하라는 요청일 것이다. 저장 제어기(220)가 NVMHCI 프로토콜, 혹은 NFS와 같은 네트워킹 파일 시스템 프로토콜 혹은 유사한 프로토콜을 지원한다면, 저장 제어기(220)는 파일 레벨 요청들을 얻을 수 있다. 그러므로, 저장 제어기(220)와 같은 저장 제어기와 인터페이스(330)와 같은 인터페이스 간에 통신은 NVMHCI로 혹은 NVMHCI-유사 구현들로 제한되는 것은 아니다. 통신 인터페이스(330)는 도 3에 도시된 바와 같이, 저장 할당기(300)에 통합될 수 있다.
프로세서(320)는 표시된 파일을 저장장치에 보내게 더욱 구성 또는 맞게 수정된다. 파일을 폐기가능으로서 표시하는 것은 파일을 폐기 우선권 레벨에 할당하는 것을 포함한다. 저장장치에 의해 사용되는 파일 시스템이 FAT-기반이라면, 프로세서(320)는 대응하는 값을 표시된 파일에 대응하는 FAT에 m개의 최상위 비트들(예를 들면, m = 4)에 설정함으로써 폐기 우선권 레벨을 표시된 파일에 할당한다. FAT 엔트리에 최상위 비트들에 설정된 대응하는 값, 혹은 NTFS 디렉토리 엔트리에 설정된 값은 파일의 속성일 수 있고, 혹은 이에 관계될 수도 있다. "속성"이라는 것은 테이블 내에 저장된 콘텐트의 유형에 속하는 정보를 내포하는 FAT 테이블 혹은 NTFS 테이블의 헤더 내 메타데이터 태그 또는 어떤 데이터 구조를 의미한다. "광고", "프리미엄 콘텐트", 및 "홍보 (무료) 콘텐트"는 FAT 테이블에 또는 NTFS 테이블에 저장될 수 있는 대표적 유형들의 콘텐트들이다. 폐기 레벨들을 설정하기 위한 대안적 기준들은 예를 들면 마지막 액세스된 파일들, 파일 크기들, 파일 유형들, 등이다.
파일들을 표시하는 데에만 사용되는 FAT32 엔트리들의 최상위 비트들 의 개수 m은 이들 비트들이 사용되지 않기 때문에 4 혹은 4 미만일 수 있다. 또한, 더 많은 비트들이 사용될수록 더 많은 폐기 우선권 레벨들이 사용될 수 있다. 예를 들면, 3개의 비트들(즉, m = 3)을 사용하는 것은 8개(23 = 8)의 폐기 우선권 레벨들을 제공하며, 4개의 비트들(즉, m = 4)을 사용하는 것은 16개(24= 16)의 폐기 우선권 레벨들을 제공한다(즉, 폐기불가 파일들에 할당되는 폐기 우선권 레벨 "0"을 포함하여). 즉, 프로세서(320)는 m개의 최상위 비트들의 값을 표시된 파일이 폐기불가한 경우엔 0에 설정하거나, 표시된 파일이 폐기가능한 경우엔 1과 2m - 1 사이의 값에 설정한다. 폐기 우선권 레벨은 표시된 파일이 저장장치로부터 폐기될 수 있거나 폐기되어야 할 우선권을 나타낸다. 예를 들면, 구현에 따라서, 값 "1"은 가장 낮은 우선권으로 폐기가능하거나 가장 높은 우선권으로 폐기가능한 파일을 나타낼 수 있고, 값 "2m - 1"은 각각 가장 높은 우선권으로 폐기가능하거나 가장 낮은 우선권으로 폐기가능한 파일을 나타낼 수 있다.
프로세서(320)는 비간청 파일이 저장장치의 사용자에 의해 사용될 가능성 혹은 확률에 관련하여 위에 설명된 바와 같이, 파일들의 예상된 사용에 따라 폐기 우선권 레벨들을 표시된 파일들에 할당할 수 있다. 프로세서(320)는 저장장치에 새로운 파일을 저장하라는 각 요청에 따라, 혹은 이를 수신한 것에 응하여, 표시된 파일의 폐기 우선권 레벨을 업데이트할 수 있다. 프로세서(320)는 저장장치에 파일을 저장하라는 하나 이상의 새로운 요청들로부터 독립적으로 소정의 표시된 파일의 폐기 우선권 레벨을 업데이트할 수 있다. 예를 들면, 이전에 고 우선권을 갖고 있었던 파일은 어떤 시간간격 후에 낮아진 우선권을 가질 수 있다. 프로세서(320)는 파일이 소정의 폐기 임계값과 동일한 혹은 이보다 큰 폐기 우선권 레벨에 연관되었다면 저장장치에 저장된 이 파일을 삭제한다. 프로세서(320)는 파일 기입들 혹은 추가들에 기초하여, 혹은 저장장치 상에 자유 저장 공간의 예상된 사용 혹은 새로운 발행자 파일들의 이용가능성에 따라, 폐기 임계값을 (재)설정할 수 있다.
메모리 유닛(310)은 프로세서(320)가 저장장치에 저장된 파일들에 할당하는 폐기 우선권 레벨들을 내포하는 할당 테이블(340)을 유지할 수 있다. 또한, 할당 테이블(340)은 파일들을 이들에 할당된 폐기 우선권 레벨들에 연관시키는 파일들의 식별자들 및 정보를 유지할 수 있다. 또한, 할당 테이블(340)은 폐기 임계값을 유지할 수 있다. 할당 테이블(340)에 유지된 정보는 요망되는 저장 사용 안전 마진을 회복하기 위해서 프로세서(320)가 저장장치로부터 어느 폐기가능 파일 혹은 파일들이 제거될 수 있는지를 확인할 수 있게 한다.
저장장치에 새로운 파일을 저장하라는 요청을 수신한 것에 응하여, 프로세서(320)는 저장장치 상에 자유 저장 공간 (f)의 크기를 평가하고, 저장장치 상에 자유 저장 공간의 평가된 크기가 소정의 크기보다 크다면 저장장치에 새로운 파일을 저장하거나, 소정의 크기보다 크지 않다면, 프로세서(320)는 삭제될 수 있는 저장장치 내 하나 이상의 폐기가능 파일들을 탐색하고, 이러한 파일 또는 파일들을 찾았을 때, 프로세서(320)는 확장된 자유 저장 공간의 총 크기가 소정의 크기와 같거나 이보다 크게 되도록 현재 자유 저장 공간 (f)을 확장하기 위해 이 파일 혹은 파일들을 삭제한다. 폐기가능 파일 혹은 파일들은 폐기가능 파일들에 연관된 폐기 우선권 레벨이 소정의 폐기 임계값(예를 들면 1 내지 15(이를 포함한) 사이, 예를 들면 15)과 같거나 이보다 크다면 저장장치로부터 삭제될 수 있다.
자유 저장 공간이 충분히 확장된 후에, 프로세서(320)는 새로운 파일이 확장된 자유 저장 공간에 저장되게 한다. "자유 저장 공간"이 충분히 확장되었다라는 것은 위에 언급된 요망되는 저장 사용 안전 마진을 좁히지 않고 총 자유 저장 공간이 새로운 파일을 수용할 수 있을 때까지, 혹은 등가적으로, 확장된 자유 저장 공간의 총 크기가 소정의 크기와 같거나 이보다 클때까지, 혹은 모든 폐기가능 파일들이 제거될 때까지, 점유된 저장 공간을 차례로 비움으로써 자유 저장 공간을 확장하는 것을 의미한다.
프로세서(320)는 표준 기성 시스템-온-칩("SoC") 장치이거나 시스템-인-패키지("SiP") 장치일 수 있고, 혹은 실행되었을 때 여기에 기술된 단계들, 동작들 및 평가들을 수행하는 전용 소프트웨어를 가진 범용 처리장치일 수 있다. 대안적으로, 프로세서(320)는 하드웨어를 사용함으로써 여기에 기술된 단계들, 동작들 및 평가들을 구현하는 응용특정의 집적회로("ASIC")일 수 있다.
도 4는 일실시예에 따라 폐기가능 파일들을 저장하는 방법이다. 도 4는 도 1에 관련하여 기술될 것이다. 단계(410)에서 호스트(140)는 저장장치(100)에 파일(142)을 저장하라는 요청을 수신한다. 단계(420)에서 저장 할당기(144)는 파일을 "폐기가능" 혹은 "폐기불가"로서 표시하고, 단계(430)에서 자유 저장 공간(190)이 충분히 크다면 표시된 파일을 저장장치(100)의 저장 제어기(120)에 보낸다(즉, 저장 영역(110)에 저장을 위해). 파일은 폐기 우선권 레벨이 파일에 할당되는 점에서도 표시된다. 단계(440)에서, 저장 할당기(144)는 표시된 파일에 기초하여, 선택적으로는 이미 표시된 하나 이상의 파일들에도 기초하여, 저장 영역(110)(저장 제어기(120)와의 통신을 통해) 혹은 저장 영역(110)에 저장되는 파일을 관리한다.
도 5는 일실시예에 따라 저장장치에 폐기가능 파일들의 저장을 관리하는 방법이다. 도 5는 도 1에 관련하여 기술될 것이다. 새로운 파일은 저장장치(100)에 저장을 위한 후보이다. 저장장치(100)의 파일 시스템(160)의 현재의 이미지를 알고 있으므로, 저장 할당기(144)는, 단계(510)에서, 현재의 크기가 f인 자유 저장 공간(190)이 새로운 파일(즉, 저장을 위한 후보인 파일)을 수용할 수 있는지를 알기 위해서 자유 저장 공간(190)의 현재의 크기 "f"를 평가한다. 일반적으로, 저장 할당기(144)이 새로운 파일을 취급하는 방법은 새로운 파일이 사용자 파일인지 아니면 발행자 파일인지에 달려있다. 그러므로, 저장 할당기(144)는 먼저 새로운 파일이 사용자 파일인지 아니면 발행자 파일인지를 판정한다.
단계(520)에서, 저장 할당기(144)는 자유 저장 공간(190)이 새로운 사용자 파일을 수용할 수 있는지를 체크한다. 자유 저장 공간(190)이 새로운 사용자 파일을 수용할 수 있다면(단계(520)에서 "Y"로서 나타낸), 저장 할당기(144)는 단계(560)에서, 새로운 사용자 파일을 저장함으로써 요망되는 저장 사용 안전 마진이 협소해지는지 여부에 관계없이 자유 저장 공간(190)에 새로운 사용자 파일을 저장한다. 저장 할당기(144)가 자유 저장 공간(190)에 새로운 사용자 파일을 저장한 후에 요망되는 저장 사용 안전 마진이 협소해지게 되면(즉, 요망되는 저장 사용 안전 마진을 기준으로 하여), 저장 할당기(144)는 새로운 사용자 파일의 저장에 관하여 더 이상의 동작을 취하지 않는다.
그러나, 저장 할당기(144)이 자유 저장 공간(190)에 새로운 사용자 파일을 저장한 후에 요망되는 저장 사용 안전 마진이 협소해지게 되면, 단계(550)는 요망되는 저장 사용 안전 마진을 유지하기 위해서, 저장 할당기(144)가 어느 저장된 폐기가능 파일이 먼저 삭제되고, 어느 저장된 폐기가능 파일이 두 번째로 삭제될 것인지, 등등을 판정하는 추가의 단계를 포함한다. 저장 할당기(144)는 저장 할당기(144)가 저장된 폐기가능 파일들에 할당한 폐기 레벨들에 기초하여, 어느 저장된 폐기가능 파일이 먼저 삭제되고, 어느 저장된 폐기가능 파일이 두 번째로 삭제되고, 등등을 판정한다.
자유 저장 공간(190)이 새로운 사용자 파일을 수용할 수 없는 것으로(단계(520)에서 "N"으로서 나탄낸) 저장 할당기(144)가 판정한다면, 저장 할당기(144)는 폐기가능 파일들에 의해 소비된 자유 저장 공간(190) 및 저장 공간이, 결합되었을 때, 새로운 사용자 파일을 저장하기에 충분한지를 단계(530)에서 판정한다. 결합된 저장 공간이 충분하지 않다면(단계(530)에서 "N"으로서 나탄낸), 이것은 아무리 많은 폐기가능이 삭제되더라도 새로운 사용자 파일은 이것이 더 크기 때문에 "비-사용자" 저장 영역에 저장될 수 없음을 의미한다. 결합된 저장 공간이 충분하다면(단계(530)에서 "Y"으로서 나탄낸), 저장 할당기(144)은, 단계(540)에서, 새로운 사용자 파일을 위한 충분한 저장 공간을 비워두기 위해서, 저장된 폐기가능 파일들 중에서 어느 폐기가능 파일이 삭제될 수 있는지를 탐색한다. 위에 설명된 바와 같이, 저장 할당기(144)는 파일들을 저장장치의 파일 시스템에 폐기불가로서 혹은 폐기가능로서 표시하기 때문에, 저장 할당기(144)는 저장장치(100)의 파일 시스템을 사용함으로써 이들 폐기가능 파일들을 탐색한다. 또한, 표시된 파일들에 저장 할당기(144)에 의해서 할당된 폐기 레벨들은 대응하는 표시된 파일에 각 폐기 레벨이 연관되게 저장장치의 파일 시스템에 내장된다.
먼저 폐기할 폐기가능 파일("DF")을 찾았을 때(이 파일을 이하 "DF1"이라 함), 저장 할당기(144)는 저장 공간(이 저장 공간을 이하 "SP1"이라 함)을 저장 공간(190)에 추가하거나, 회복하기 위해서 파일(DF1)을 삭제한다.
이어서, 단계(550)에서, 저장 할당기(144)는 확장된 자유 저장 공간(190)(즉, 자유 저장 공간(190) + 마지막 회복된 저장 공간, 또는 f + SP1)이 새로운 사용자 파일을 수용할 수 있는지를 체크한다. 확장된 자유 저장 공간(190)(즉, f + SP1)이 여전히 새로운 사용자 파일을 수용할 수 없다면(단계(550)에서 "N"으로서 나타낸), 저장 할당기(144)는 추가의 저장 공간을 자유 저장 공간(190)에 회복시키기 위해서(즉, 삭제할 다음 폐기가능 파일을 찾아 삭제함으로써), 단계(550)를 되풀이하여 반복한다(반복들이 555에 보였다).
두 번째로 높은 폐기 우선권을 가진 다음 폐기가능 파일을 발견하였을 때(다음 폐기가능 파일을 이하 "DF2"라 함), 저장 할당기(144)는 추가의 저장 공간(추가의 저장 공간을 이하 "SP2"라 함)을 비워 자유 저장 공간(190)에 추가시키기 위해서 파일(DF2)를 제거한다. 이어서, 단계(550)에서, 저장 할당기(144)는 확장된 자유 저장 공간(190)(즉, 자유 저장 공간(190) + 2개의 마지막 비워진 저장 공간들, 또는 f + SP1 + SP2)이 새로운 파일을 수용할 수 있는지를 다시 체크한다. 확장된 자유 저장 공간(190)(즉, f + SP1 + SP2)이 여전히 새로운 파일을 수용할 수 없다면(단계(540)에서 "N"으로서 나타낸), 저장 할당기(144)는 제거할 다음 폐기가능 파일을 발견하기 위해서 1회 이상 단계(540)를 반복한다. 저장 할당기(144)는 누적된 자유 저장 공간(190)이 새로운 사용자 파일을 수용할 수 있을 때까지(단계(550)에서 "Y"로서 나타낸), 단계들(540, 550)을 반복한다. 이어서, 단계(560)에서, 저장 할당기(144)는 저장 영역(110)에 새로운 사용자 파일을 저장한다.
위에 언급된 바와 같이, 저장 할당기(144)가 새로운 사용자 파일을 자유 저장 공간(190)에 저장한 후에 실제 저장 사용 안전 마진이 요망되는 저장 사용 안전 마진 보다 협소해진다면, 단계(560)는 요망되는 저장 사용 안전 마진을 회복하기 위해서 어느 저장된 폐기가능 파일이 먼저 삭제되고, 어느 저장된 폐기가능 파일이 두 번째로 삭제되고, 등등을 저장 할당기(144)가 판정하는 추가의 단계를 포함할 수 있다.
새로운 파일이 발행자 파일이라면, 저장 할당기(144)는 자유 저장 공간(190)이 요망되는 저장 사용 안전 마진을 협소하게 함이 없이 새로운 발행자 파일을 수용할 수 있을 경우에만 새로운 발행자 파일을 저장 영역(110)에 저장한다(단계(560)에서). 즉, 새로운 발행자 파일을 저장하는 것이, 요망되는 저장 사용 안전 마진을 협소하게 하는 것을 초래한다면, 저장 할당기(144)는 새로운 발행자 파일을 저장 영역(110)에 저장하지 않기로 결정할 수 있다. 이러한 경우에, 저장 할당기(144)는 이 파일에 관하여 임의의 조치를 취하는 것을 그만두고, 새로운 발행자 파일을 위한 저장 공간을 비워두기 위해 저장장치로부터 어떠한 파일도 제거하지 않는다. 대안적으로, 저장 할당기(144)는 단계(540)에서, 낮은 폐기 우선권을 가진 폐기가능 파일을 위한 저장 공간을 비워두기 위해서 하나 이상의 높은 우선권 폐기가능 파일들을 삭제할 수 있다. 위에 언급된 바와 같이, 파일들은 표시되고, 저장장치(100)의 파일 시스템에 폐기 레벨들이 삽입되며, 그리고 파일들이 표시되고 파일 시스템에 폐기 레벨들이 삽입되는 방법은 사용되는 파일 시스템에 따르거나, 이에 맞게 수정될 수 있다.
도 6은 일실시예에 따라, FAT32-구조의 파일 시스템에 사전-적재된 파일 또는 비간청 파일을 표시하는 방법이다. FAT32-구조의 파일 시스템들은 클러스터들을 사용한다. FAT32-구조의 파일 시스템들에 관련하여 위에 기술된 바와 같이, FAT32 클러스터를 확인하기 위해 사용되는 비트들의 수는 32이다. 도 6은 도 1에 관련하여 기술될 것이다.
단계(610)에서, FAT32의 각 클러스터의 32 비트들의 m(m < 4) 개의 최상위 비트들은, 경우에 해당될 때 파일들을 폐기불가로서 혹은 폐기가능으로서 표시하기 위해서, 그리고 각 폐기가능 파일에 대해 대응하는 폐기 레벨을 유지하기 위해서, 할당되거나 이를 위해 전용된다. 파일에 폐기 레벨을 할당하는 것은 대응하는 값을, 표시된 파일에 대응하는 할당된 m개의 비트들에 설정함으로써 행해진다.
단계(620)에서, 저장 할당기(144)는 저장장치(100)의 사용자가 비간청 파일과 같은 폐기가능 파일을 사용할 가능성의 레벨을 평가한다. 파일을 사용할 가능성의 평가는 위탁판매 파일들의 기술에 당업자들에게 공지된 다양한 방법들로 구현될 수 있다. 예를 들면, 파일을 사용할 가능성의 평가는 저장장치를 사용하는 사람의 위치를 모니터한 것에 기초할 수 있고, 및/또는 모니터된 사용자의 이전 경험 및 선호도들에 기초할 수 있다. 파일을 사용할 가능성의 평가는 예를 들면, FAT 테이블 혹은 NTFS 테이블 내에 저장된 콘텐트의 유형(예를 들면, "광고 콘텐트", "프리미엄 콘텐트", "홍보 (자유) 콘텐트", 등)에 기초할 수도 있다. 저장 할당기(144)는 파일이 사용될 가능성을 평가하기 위해 대안적인 혹은 추가의 기준들을 사용할 수 있다. 예를 들면, 마지막 액세스된 파일(들), 파일 크기들, 파일 유형들, 등일 수 있거나 이들에 연관되는, 파일(들)의 속성들 또는 특징들을 사용할 수도 있다.
사용자가 비간청 파일을 사용할 가능성의 레벨을 저장 할당기(144)이 평가한 후에, 저장 할당기(144)는, 단계(630)에서, 비간청 파일의 사용의 평가된 가능성 레벨에 대응하는 폐기 우선권 레벨을 할당한다. 비간청 파일이 저장장치(100)의 사용자에 의해 사용할 가능성이 높을수록 폐기 레벨은 더 낮아진다.
m이 4 비트들과 같다면, 이것은 폐기 스케일이 1(즉, 0001) 내지 15(즉, 1111)인 15개의 폐기 레벨들을 제공함을 의미한다. 즉, 폐기 레벨 0은 모든 폐기불가 파일에 할당될 것이며, 폐기 레벨 1은 가장 낮은 폐기 우선권을 가진 폐기가능 파일에 할당될 것이며, 폐기 레벨 15는 가장 높은 폐기 우선권을 가진 폐기가능 파일에 할당될 것이다. 저장 할당기(144)가 대응하는 폐기 레벨을 비간청 파일에 할당한 후에, 저장 할당기(144)는, 단계(640)에서, 1 내지 15 사이의 대응하는 값을 비간청 파일에 연관된 클러스터들의 4개의 최상위 비트들에 설정한다. 폐기가능 파일이 이를 2 이상의 클러스터들에 연관시켰다면, 각각의 클러스터 내 4개의 최상위 비트들은 동일한 값으로 설정된다.
단계(650)에서, 폐기가능 파일이, 평가될 필요가 있는 마지막 파일인지가 체크된다. 폐기가능 파일이, 평가될 필요가 있는 마지막 파일이 아니라면(단계(650)에서 "N"로서 나타낸), 또 다른 파일이 상기 기술된 방법으로 평가된다. 폐기가능 파일이, 평가될 필요가 있는 마지막 파일이라면(단계(650)에서 "Y"로서 나타낸), 폐기가능 파일(들)은 각각마다 값이 단계(640)에서 설정되었던 m 비트들과 함께 저장장치에 보내진다.
도 7은 FAT32 테이블에 연관된 디렉토리 테이블(700)이다. 디렉토리 테이블(700)은 예시를 위해 사용되는 부분적 테이블일 뿐이며, 따라서 테이블(700)은 FAT 디렉토리 엔트리의 모든 필드들을 보인 것은 아니다. 디렉토리 영역(700)은 관계된 파일 시스템에 저장되는 파일들의 상세, 이를테면 파일 이름들, 파일들 크기, 및 관계된 파일 시스템에서 각각의 파일이 시작하는 곳을 유지한다. 파일들의 상세는 다음 필드들에 유지된다. 필드(710)는 관계된 파일 시스템에 저장된 파일들의 디스크 운영 시스템("DOS") 파일명들을 유지하며, 필드(720)는 파일들의 확장자를 유지하며, 필드(730)는 파일들의 각종 속성들을 유지하며, 필드(740)는 파일들의 제 1 클러스터 수("FCN")의 상위 16-비트워드를 유지하며, 필드(750)는 파일들의 제 1 클러스터 수("FCN")의 하위 부분을 유지하며, 필드(760)는 파일들의 크기를 유지한다. 각각의 FCN 수는 파일이 발견될 수 있는 제 1 논리 클러스터를 나타낸다.
디렉토리 영역(700)의 제 1 엔트리는 "REALFILE"(770으로 나타낸)이라고 하는 파일에 대한 정보를 유지한다. REALFILE(770)은 파일 확장자 "DAT"을 가지며, 이의 FCN은 "0000 0002"(755로 나타낸)이며, 이의 크기는 "0000 24E4"이다. 테이블(700)에서 숫자들은 16진수 값들로 나타내었다. 표준의 일부로서, 속성값들 "00"(780로 나타낸) 및 "20"(도 7에 나타내지 않음)은 "정규" 파일을 지칭하며, 속성값 "02"은 파일 시스템에서 감추어진 파일을 지칭한다. 파일명 "\xE5Consign"은 삭제된 파일을 나타내며, "\xE5"은 파일명의 첫번째 바이트의 값이 hex로 E5임을 의미한다. 예로서, FCN 수 0000 0002(755로 나타낸)은 파일 REALFILE의 첫번째 클러스터를 지칭한다.
도 8은 실시예에 따른 부분적 FAT32 테이블(800)이다. FAT32 테이블(800)은 더블-워드("DWORD") 어레이로서 도시되었고, 값들은 16진수 값들이다. 참조부호 810은 FAT32 테이블(800)을 유지하는 장치의 유형을 지칭하며, "F8"은 하드드라이브를 지칭한다. FAT32 테이블(800)은 클러스터 #1(820로 나타낸), 클러스터 #2(825로 나타낸),..., 및 클러스터 #23(830으로 나타낸)로서 지칭된 23개의 클러스터들을 포함한다. 도 8을 도 7에 관련하여 기술한다. FAT32 테이블(800)에서 클러스터는 파일의 제 1 클러스터일 수 있고, 혹은 파일의 다음 링크된 클러스터를 가리킬 수 있으며, 혹은 엔드-오브-파일 ("EOF") 표시일 수도 있다.
다시 디렉토리 영역(700)을 참조하면, 디렉토리 영역(700)의 제 1 FCN(770로 나타낸)은 "0000 0002"이며(755로 나타낸), 이것은 도 8의 테이블(800)에서 클러스터 #2를 가리킨다. 도 8에 도시된 바와 같이, 클러스터 #2의 값(즉, 값 "000 0003")은 다음 파일의 클러스터인 클러스터 #3을 가리킨다(840로 나타낸). 마찬가지로, 클러스터 #3의 값(즉, "0000 0004")은 다음 파일의 클러스터인 클러스터 #4를 가리킨다. 클러스터 #4는 값 "OFFF FFFF"("F"는 십진수 값 "15"을 나타내는 16진수 디지트이다)을 가지며, "FFF FFFF"(850로 나타낸)는 파일의 EOF 표시를 나타내며, 제로 값(860으로 나타낸)은 폐기 레벨 0을 나타낸다. 그러므로, 파일 REALFILE은 이를 3개의 클러스터들(즉, 클러스터 #2, 클러스터 #3, 클러스터 #4)에 연관시켰다.
위에 설명된 바와 같이, 폐기 레벨 0은 폐기불가 파일들에 할당된다. 특정 파일의 각각의 클러스터의 최상위 16진수 디지트는 이 파일에 할당되는 동일 폐기 우선권 레벨에 설정됨에 유의한다. 예를 들면, 파일 REALFILE은 폐기 레벨 "0"이 할당되었으며, 그러므로 클러스터들 #2, #3, 및 #4의 최상위 16진수 디지트들 각각은 이 값을 갖는다(즉, 값 "0", 및 "0" 값들에 밑줄이 그어졌다). 또 다른 예에 따라, FCN이 "0000 0005"(도 7에 도시된 바와 같이)인 파일 "E5 Consign"은 폐기 우선권 레벨 "1"이 할당되었다. 그러므로, 이 파일에 속하는 클러스터들 #5 내지 12 각각의 최상위 16진수 디지트는 값 "1"을 갖는다(예를 들면, 870로 나타낸 바와 같이). 즉, 본 개시된 바에 따라, 최상위 16진수 디지트, 혹은, 등가적으로, 특정 폐기가능 파일에 연관된 클러스터들의 4개의 최상위 비트들은 특정 파일에 할당된 폐기 우선권 레벨에 대응하는 동일한 값에 설정된다. 위에 설명된 바와 같이, 폐기 우선권 레벨을 나타내기 위해 사용되는 최상위 비트들의 수 m은 4가 아닐 수 있다(즉, m ≤ 4).
도 9는 실시예에 따른 부분적 NTFS 테이블(900)이다. NTFS 테이블(900)은 파일 이름들, 파일 크기들, 등과 같은 파일들의 상세를 유지한다. NTFS 테이블(900)은 "정규" 데이터 흐름에 따라 변하는 파일들에 대해 "통상의" 데이터(예를 들면, 데이터(920))를 유지하기 위해 데이터 필드(910)을 포함한다. 본 개시된 바에 따라, NTFS 테이블(900)은 각각의 평가된 파일에 대해 폐기 정보(예를 들면, 폐기 정보(930))을 유지하기 위한 "폐기 정보" 필드(915)를 포함한다. 폐기 정보 필드(915)는 폐기 우선권 레벨 이외의 정보도 포함할 수 있다. 예를 들면, 폐기 정보 필드(915)는 파일을 공급한 서버에 속하는 정보 및 만기 시간 - 이후에 파일은 폐기되어야 한다- 를 포함할 수 있다. FAT-기반 파일 시스템들과는 달리, NTFS-기반 파일 시스템들에서, 폐기가능 파일들에 할당된 폐기 값들은 한 세트의 비트들에 의해 지시되는 최대 수로 제한되지 않는다. 이것은 폐기 값들의 범위가 자유롭게 선택될 수 있음을 의미한다. 예를 들면, 폐기 값들은 1 내지 25의 범위일 수 있다. NTFS는 대표적 비-FAT 파일 시스템이다. 일반적으로, 대응하는 폐기 값들은 표시된 파일들에 대응하는 비-FAT 기반의 파일 시스템 엔트리들에 데이터 필드에 설정될 수 있다.
도 10은 실시예에 따른 저장장치의 파일 시스템(1000)의 논리 배열이다. 저장 할당기(예를 들면, 도 1의 저장 할당기(144))는 이것이 동작하는 저장장치의 파일 시스템(1000) 혹은 파일 시스템(1000)의 이미지를 유지하거나, 저장 할당기은 파일 시스템(1000)에 액세스할 수도 있다.
파일 시스템(1000)은 부트 섹션(1010), 파일 시스템(1000)에 연관된 FAT(1020), 디렉토리 테이블들(1030), 파일들 영역(1040), 및 폐기가능 파일들 영역(1050)을 포함한다. FAT(1020)는 폐기가능 파일들의 폐기 우선권 레벨들을 내포하는 폐기가능 파일들 할당 영역(1025)을 포함한다. 디렉토리 테이블들(1030)은 저장장치에 어떤 파일들(즉, 폐기가능 파일들 및/또는 폐기불가 파일들)이 저장되든 이에 액세스하기 위한 액세스 정보를 포함한다. 파일들 영역(1040)은 폐기불가 파일들을 내포한다. 인덱스 및 데이터베이스 영역(1045)은 폐기가능 파일들을 위한 인덱스들 및 폐기가능 파일들에 관계된 메타데이터를 유지한다. 인덱스 및 데이터베이스 영역(1045)에 유지된 인덱스들 및 메타데이터는 폐기 레벨들을 계산하기 위해 사용되나 이들은 실제 폐기 프로세스 동안엔 요구되지 않는다. 폐기가능 파일들 영역(1050)은 폐기가능 파일들을 유지한다.
도 11은 본 개시된 바에 따른 파일 관리 방법을 도시한 것이다. 도 11은 도 1에 관련하여 기술될 것이다. 시간 T0에서 초기에 2개의 사용자 파일들(즉, 파일들 "F1" 및 "F2")이 저장 영역(110)에 저장되는 것으로 가정한다. 파일들 "F1" 및 "F2"은 사용자 파일들이기 때문에, 이들은 사용자 영역(170)에 저장되며, 저장 할당기(144)에 의해 이들에 할당되는 폐기 레벨은 제로이다. 저장 영역(110)의 총 저장용량은 T(1110로 나타낸)이고 파일들(F1, F2)은 저장장치(100)에 저장되기 때문에, 남은 자유 저장 공간(190)(도 1 참조)의 크기는 f(1120로 나타낸)이다. 발행자가 저장 영역(110)에 3개의 비간청 파일들을 저장하기를 원하는 것으로 가정한다. 위에 기술된 바와 같이, 저장 할당기(144)는 저장 영역(110)에 발행자의 3개의 비간청 파일들을 저장하는 것이 장래의 사용자의 파일들용으로 유보해 둔 요망되는 저장 사용 안전 마진(1130로 나타낸)을 협소하게 할 것인지를 판정하기 위해서, 저장장치(100) 내 자유 저장 공간(190)(또는 1120에 f)의 크기를 평가한다. 발행자의 3개의 비간청 파일들을 저장하는 것이 저장 사용 안전 마진(1130)(즉, 요망되는 저장 사용 안전 마진)을 협소해지게 할 것이라면, 저장 할당기(144)은 이들 파일들을 저장하는 것을 그만둘 것이다.
이 예에서, 저장 할당기(144)는 저장 사용 안전 마진(1130)을 감소시킴이 없이 발행자의 3개의 비간청 파일들이 저장 영역(110)에 저장될 수 있는 것으로 판정한다. 그러므로, 시간 T1에서 저장 할당기(144)는 저장 제어기(120)가 저장 영역(110)에 발행자의 3개의 비간청 파일들을 저장하게 한다. 3개의 발행자의 비간청 파일들은 "P1", "P2", 및 "P3"로서 표시되었다. 또한 저장 할당기(144)는 파일들(P1, P2, P3)이 저장장치(100)의 사용자에 의해 사용될 확률을 판정하고, 대응하는 폐기 레벨을 이들 파일 각각에 할당한다. 이어서, 저장 할당기(144)는 파일들에 할당된 폐기 레벨들을 도 8에 도시된 바와 같이, FAT 테이블에, 혹은 도 9에 도시된 바와 같이, NTFS 테이블에 저장한다.
시간 T2에서, 저장장치(100)의 사용자는 저장 영역(110)에 2 이상의 파일들(즉, 파일들 "F3" 및 "F4")을 저장하기를 원한다. 저장 할당기(144)은 추가의 파일들(즉, 파일들(F3 및 F4))을 저장할 충분한 저장 공간이 저장 영역(110)에 있는지를 판정하기 위해서 저장장치(100) 내 자유 저장 공간(190)의 크기(또는 1120에 f)를 재평가한다. 이 예에서 저장 할당기(144)는 현재 자유 저장 공간이 파일들(F3, F4)을 수용할 수 있는 것으로 판정한다. 그러므로, 시간 T2에서, 저장 할당기(144)는 저장 제어기(120)가 저장 영역(110)에 파일들(F3, F4)을 저장할 수 있게 한다.
파일들(F3, F4)은 사용자 파일들이기 때문에, 파일들(F3, F4)이 저장장치(100)의 사용자에 의해 사용될 확률은 사용자가 파일들(F3, F4)을, 사용한다할지라도, 얼마나 많은 횟수로 사용할지에 관계없이 사용자 파일들이 발행자 파일들에 대해 저장 우선권을 갖기 때문에 무관하다. 따라서, 저장 할당기(144)는 폐기 레벨 "0"을 파일들(F3, F4)에 할당하고, 할당된 폐기 레벨을 도 8에 도시된 바와 같이 FAT 테이블에, 혹은 도 9에 도시된 바와 같이 NTFS 테이블에 저장한다.
시간 T3에서, 저장장치(100)의 사용자는 또 다른 파일(즉, 파일 "F5")을 저장 영역(110)에 저장하기를 원한다. 저장 할당기(144)는 추가의 파일들(즉, 파일들(F5))을 저장할 충분한 저장 공간이 저장 영역(110)에 있는지를 판정하기 위해서 저장장치(100) 내 자유 저장 공간(190)의 크기(또는 1120에 f)를 재평가한다.
이 예에서 저장 할당기(144)는 현재 자유 저장 공간이 파일(F5)을 수용할 수 있는 것으로 판정한다. 그러므로, 시간 T3에서, 저장 할당기(144)는 저장 제어기(120)가 저장 영역(110)에 파일(F5)을 저장할 수 있게 한다. 도 11에 도시된 바와 같이, 사용자 파일(F5)을 저장하는 것은 저장 사용 안전 마진을 좁아지게 한다. 즉, 파일들(F1 내지 F5 및 P1 내지 P3)이 저장 영역(110)에 저장된 후에 남는 저장 영역(110)에 자유 저장 공간 f은 저장 사용 안전 마진(1130)보다 작다. 그러므로, 저장 할당기(144)는 발행자의 파일들(즉, P1, P2, P3) 중 하나를 제거함으로써 저장 사용 안전 마진을 복원 혹은 회복한다. 위에 설명된 바와 같이, 사용자 파일들이 최고의 저장 우선권을 갖기 때문에, 저장 사용 안전 마진은 하나 이상의 발행자 파일들을 제거(즉, 삭제)함으로써 복원 또는 회복된다.
위에 기술된 바와 같이, 발행자 파일 혹은 발행자 파일들이 저장 영역(110)로부터 제거될 것이라는 판단은 저장 할당기(144)이 각각의 저장된 폐기가능 파일에 할당한 폐기 우선권 레벨에 기초하여 저장 할당기(144)에 의해 행해진다.
다시 도 11로 가서, 저장된 발행자 파일들(P1 내지 P3) 중에서 발행자 파일(P3)은 가장 높은 폐기 우선권 레벨(예를 들면, 13)이 할당되었던 것으로 가정한다. 그러므로, 시간 T4에서, 파일(P3)은 저장 영역(110)로부터 제거되고, 이에 따라 자유 저장 공간(190)이 커지게 한다. 시간 T4에서 자유 저장 공간(190)(또는 1120에서 f)의 크기는 저장 사용 안전 마진(1130)보다 크기 때문에, 더 이상의 어떠한 발행자 파일들도 제거할 필요가 없다.
저장장치(100)의 사용자는 하나 이상의 사용자 파일들을 제거하기를 원할 수 있다. 시간 T5에서, 사용자는 자신의 파일들 중 두 개(즉, 파일들(F4, F5))를 제거하였으며, 이에 따라 자유 저장 공간(190)이 더 커지게 하였다. 여기에서 언급된 바와 같이, 자유 저장 공간을 회복하거나 저장 사용 안전 마진을 회복하는 것은 필요한 만큼 많이 폐기가능 파일들을 제거함으로써 행해지기 때문에, 파일들(F4, F5)의 제거는 자유 저장 공간(190) 또는 저장 사용 안전 마진의 크기와는 관련이 없다. 발행자가 저장 영역(110)에 또 다른 비간청 파일을 저장하기를 원하는 것으로 가정한다. 위에 기술된 바와 같이, 저장 할당기(144)는 저장 영역(110)에 발행자의 비간청 파일을 저장하는 것이 저장 사용 안전 마진(1130)을 협소해지게 할 것인지를 판정하기 위해서, 자유 저장 공간(190)(또는 1120에 f)의 크기를 평가한다. 발행자의 새로운 비간청 파일을 저장하는 것이 저장 사용 안전 마진(1130)을 협소해지게 할 것이라면, 저장 할당기(144)는 이 파일을 저장하는 것을 그만둘 것이다.
이 예에서 저장 할당기(144)는 저장 사용 안전 마진(1130)을 감소시킴이 없이 발행자의 새로운 비간청 파일 (즉, 파일 "P4")이 저장 영역(110)에 저장될 수 있는 것으로 판정한다. 그러므로, 시간 T6에서, 저장 할당기(144)는 저장 제어기(120)이 발행자의 파일(P4)를 저장 영역(110)에 저장하게 한다. 또한 저장 할당기(144)는 파일(P4)이 저장장치(100)의 사용자에 의해 사용될 확률을 판정하고, 대응하는 폐기 레벨을 이 파일에 할당한다. 이어서, 저장 할당기(144)는 파일(P4)에 할당된 폐기 레벨을 도 8에 도시된 바와 같이 FAT 테이블에, 혹은 도 9에 도시된 바와 같이, NTFS 테이블에 저장한다. 새로운 발행자의 파일들 및 새로운 사용자 파일들을 저장하고 저장된 파일들을 제거하는 프로세스는 새로운 파일이 저장 영역(110)에 추가되어야 할 때마다 저장 할당기(144)가 자유 저장 공간(190)의 현재의 크기를 평가하고 저장 영역(110)으로부터 어느 발행자 파일 혹은 파일들(있다면)이 제거되어야 하는지를 판정하는 동안 계속될 수 있다.
폐기 레벨을 폐기가능 파일에 할당하는 것은 사용자 경험 또는 선호도들에 기초할 수도 있고, 사용자의 GPS(Global Positioning System) 위치에 기초할 수도 있고, 및/또는 다른 기준들에 기초할 수도 있다. 예를 들어, 저장장치의 사용자가 어떤 유형들의 음악을 좋아할 것으로 보인다면(이전의 사용자 경험에 기초하여), 저장 할당기는 발행자의 파일이 사용자가 좋아하는 유형들의 음악 중 하나인 음악을 내포한다면 발행자의 파일에 비교적 낮은 폐기 우선권 레벨(예를 들면, 1 내지 15의 스케일에서 3)을 할당할 수 있다. 그러나, 발행자의 음악을 사용자가 좋아하지 않는다면(이전의 사용자 경험에 기초하여), 저장 할당기는 관계된 발행자의 파일에 더 높은 폐기 우선권 레벨(예를 들면, 1 내지 15의 스케일에서 12)을 할당할 수 있다. 폐기 레벨을 폐기가능 파일에 할당하기 위해 사용되는 기준은 파일의 예상된 사용, 파일을 사용하는 것에 연관된 예상 수익, 파일의 유형, 파일의 크기, 저장장치 내 파일의 위치, 파일의 저장기간, 및 여기에 명시된 바와 같은 그외 기준 혹은 파라미터를 포함할 수 있다. 단독으로든 아니면 여기에 언급된 기준들 중 어느 기준과 조합하든 다른 기준들도 마찬가지로 사용될 수 있고, 폐기 레벨들의 할당은 하나 이상의 기준들을 사용하여 행해질 수 있다. 또한, 서로 다른 폐기가능 파일들에 폐기 레벨을 할당하기 위해 다른 기준이 사용될 수도 있다.
또 다른 예에서, 발행자가 사용자에게 위치-종속적 광고(즉, 특정 지역 내에서 시연된 제품 또는 서비스에 관계된 광고)를 보내기를 원한다면, 저장 할당기는 사용자의 변하는 위치에 따라 변하는 발행자의 광고에 폐기 우선권 레벨을 할당할 수 있다. 즉, 특정 지역에서 벗어나는 것은 사용자가 특정 지역에서 시연된 제품 혹은 서비스를 소비하는데 관심이 없는 것으로 상정할 수 있기 때문에, 사용자가 특정 위치로부터 더 멀어질수록, 폐기 레벨은 더 높아지게 될 것이다.
업로드 관리
데이터를 관리하기 위한 스마트 캐시 방법들은 이하 더 상세히 기술되는 바와 같이, 업로드 관리에서 이용된다. 외부 위치에 파일의 업로드를 관리하고 시스템에서 업로드를 위해 파일을 사전-적재하기 위한 스마트 캐시 기술들은 하나 이상의 비간청 파일들 및 하나 이상의 사전-적재된 파일들을 캐시에 저장하는 것을 포함한다. 일반적으로, 일부 구현들에서 위에 기술된 저장 할당기의 부분일 수 있는 업로드 관리기는 파일이 외부 위치에 업로드를 위해 저장장치의 캐시에 사전-적재될 수 있는지를 판정한다. 위에 기술된 바와 같이, 저장장치의 캐시는 대안적 파일 시스템의 파일들을 저장하는 저장장치의 영역일 수 있다. 파일은 파일이 외부 위치에 기회주의적으로 업로드될 수 있게 파일이 캐시에 저장될 때 사전-적재된다. 예를 들면, 파일들은 피크가 지난 기간 동안 외부 위치에 업로드를 위해 캐시에 저장되거나 혹은 사전-적재된 파일들은 캐시 내 공간을 비워두기 위해 하나 이상의 외부 위치들에 업로드될 수도 있다. 피크가 지난 기간들의 예들은 네트워크가 정체되지 않을 수 있을 때 오후 8시 이후와 같은 저녁 시간, 혹은 주말 동안 하루를 포함할 수 있다. 다른 구현들에서, 업로드 관리기들은 네트워크로부터 수신된 네트워크 정체 정보에 기초하여 피크가 지난 기간들을 동적으로 판정할 수 있다.
업로드 관리기는 업로드 정책에 인자들에 기초하여 파일이 캐시에 사전-적재될 수 있는지를 판정할 수 있다. 업로드 정책은 업로드하기 위해 파일을 사전-적재하기 위해 캐시에 충분한 자유 공간이 존재하는지 여부; 업로드하기 위한 파일을 사전-적재하기 위해 캐시 내 충분한 공간을 재생기 위해서 파일보다 높은 폐기 기준을 가진 캐시 내 하나 이상의 폐기가능 파일들이 캐시로부터 제거될 수 있는지 여부; 업로드하기 위한 파일을 사전-적재하기 위해 캐시 내 충분한 공간을 비워두하기 위해서, 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 여부; 및/또는 파일이 외부 위치에 즉시 업로드될 수 있는지 여부와 같은 인자들을 포함할 수 있다. 업로드 관리기는, 외부 위치에 파일을 업로드하기 위해 가용한 대역폭량과 같은 외부 위치에 업로드하기 위해 캐시에 파일이 사전-적재될 수 있는지 여부; 외부 위치에 파일을 업로드하기 위해 가용한 네트워크의 유형; 호스트 장치 및/또는 저장장치에 연관된 파워 상태; 저장장치에 연관된 판독 요청들의 수, 소거들의 수, 및/또는 기입들의 수, 혹은 이외 임의의 다른 플래시 내구성 파라미터; 저장장치에 연관된 보안 파라미터; 한번에 저장장치의 저장 영역에 액세스하는 애플리케이션들의 수; 외부 위치가 현재 액세스될 수 있는지 여부; 및/또는 사용자가 외부 위치에 액세스할 권한이 있는지 여부를 판정할 때 인자들을 고려할 수도 있다.
예를 들면, 업로드 관리기는 네트워크 연결이 외부 위치와 통신하기 위해 가용하지 않거나, 호스트 장치가 현재 설정된 네트워크를 통해 외부 위치가 가용하지 않거나, 또는 외부 위치가 오프라인인 등의 이유들로 외부 위치에 액세스될 수 없는 동안 외부 장치에 파일의 업로드를 지연시키기로 판정할 수 있다. 업로드 관리기는 사용자가 외부 위치에 액세스할 권한이 없음을 외부 자원이 나타낼 때, 또는 사용자가 부정확한 크레덴셜 정보를 제공할 때, 또는 사용자가 외부 자원에 파일을 업로드하기에 앞서 권한이 부여되어야 할 때, 외부 자원에 파일의 업로드를 지연시키기로 판정할 수도 있다. 또한, 업로드 관리기는 파일을 업로드하기 위해 WiFi(wireless fidelity) 네트워크 및/또는 셀룰라 네트워크가 가용할 때까지 외부 위치에 임의의 파일의 업로드를 지연시키기로 판정할 수도 있다. 유사하게, 업로드 관리기는 저장장치 및/또는 호스트 장치가 파워 서플라이에 연결된 동안에, 또는 저장장치 및/또는 호스트 장치에 연관된 배터리의 파워 레벨이 소정의 레벨 이상인 동안 외부 위치에 파일을 업로드하기로 판정할 수도 있다. 그러나, 업로드 관리기는 저장장치 및/또는 호스트 장치에 연관된 배터리가 충전하는 동안 및/또는 저장장치 및/또는 호스트 장치에 연관된 배터리의 파워 레벨이 소정의 레벨 미만인 동안 외부 위치에 임의의 파일의 업로드를 지연시키기로 판정할 수도 있다. 또한, 업로드 관리기는, 네트워크 정체가 클 수 있을 때인 업무시간 동안 요청되는 외부 위치에 파일의 업로드를 네트워크가 정체되지 않을 수 있을 때인 오후 8시 이후와 같은 저녁 시간까지 지연시키기로 판정할 수도 있고, 또는 업로드 관리기는 1주 근무시간 동안 하루에 요청되는 외부 위치에 파일의 업로드를 주말 동안의 하루까지 지연시키기로 판정할 수도 있고, 또는 업로드 관리기는 외부 위치에 파일의 업로드를 네트워크에서 트래픽 레벨이 소정의 레벨 미만이라는 표시를 업로드 관리기가 수신할 때까지 지연시키기로 판정할 수도 있다.
도 12는 하나 이상의 비간청 파일들 및/또는 하나 이상의 사전-적재된 파일들과 같은, 하나 이상의 폐기가능 파일들을 저장하는 캐시를 포함하는 시스템에서 파일의 업로드를 관리하기 위한 방법의 흐름도이다. 단계(1202)에서, 외부 위치에 업로드하기 위한 파일이 확인된다. 호스트 장치는 초기에는 확인된 파일을 호스트 장치가 사진 또는 비디오를 캡처하는 것과 같은 동작들을 수행할 때 생성할 수도 있고, 혹은 호스트 장치는 확인된 파일을 호스트 장치가 원격 서버 또는 웹사이트와 같은 외부 소스로부터 파일을 다운로드하거나 저장장치로부터 파일을 카피하는 등의 동작들을 수생할 때 생성할 수도 있음을 알 것이다. 일부 구현들에서, 단계(1203)에서, 저장 할당기의 부분일 수 있는 업로드 관리기는 외부 위치에 업로드하기 위한 파일을 사전-적재하라는 요청을 수신할 것이다. 외부 위치는 예를 들면, 사용자가 비디오 혹은 사진을 포스트하기를 원하는 소셜 네트워킹 웹사이트와 같은 웹사이트일 수도 있고, 혹은 외부 자원은 사용자가 하나 이상의 파일들을 보내기를 원하는 원격 서버들, 가정용 개인 컴퓨터, 라우터가 부착된 저장장치, 혹은 피어(peer) 네트워크일 수 있다.
단계(1204)에서, 업로드 관리기는 우선권 레벨과 같은 폐기 기준을 파일에 연관시킨다. 일부 구현들에서, 사전-적재된 파일에 연관된 폐기 기준은 사전-적재된 파일들이 한 세트의 기준에 기초하여 캐시로부터 제거되고 비간청 파일들이 또 다른 한 세트의 기준에 기초하여 캐시로부터 제거되게 비간청 파일들에 연관된 폐기 기준과는 다를 수 있다.. 그러나, 다른 구현들에서, 사전-적재된 파일 및 비간청 파일에 연관된 폐기 기준은 폐기 우선권 레벨과 같이 동일 유형을 갖는다. 저장 할당기가 다른 기준에 기초하여 캐시로부터 사전-적재된 파일들 및 비간청 파일들을 제거하는 구현들(파일을 폐기하는 것으로서도 알려진)에서, 저장 할당기는 먼저 사전-적재된 파일을 외부 자원에 업로드하지 않고는 사전-적재된 파일을 캐시로부터 결코 제거하지 않으나, 캐시로부터 비간청 파일을 제거하기 위해 저장 할당기는 파일을 단순히 삭제할 수 있다. 즉, 캐시는 사전-적재된 파일들 및 비간청 파일들과 같은 폐기가능 파일들을 포함할 수있는데, 이 경우 모든 폐기가능 파일들은 통보없이 캐시로부터 제거(폐기)될 수 있지만, 그러나 사전-적재된 파일들은 이들이 외부 자원에 업로드된 후에만 캐시로부터 제거(폐기)된다. 업로드 관리기는 캐시에 사전-적재될 파일이 비간청 파일들보다는 높은 우선권을 갖지만 사용자 파일들보다는 낮은 우선권을 갖게 비간청 파일들의 폐기 기준보다 낮지만 사용자 파일들의 폐기 기준보다 높은 사전-적재될 파일에 폐기 기준을 연관시킬 수도 있다.
단계(1206)에서, 업로드 관리기는 외부 위치에 업로드하기 위해 파일을 사전-적재하기 위한 캐시 내 충분한 자유 공간이 존재하는지를 판정한다. 캐시 내에 충분한 자유 공간이 존재한다면(분기(1208)), 단계(1210)에서 업로드 관리기는 외부 위치에 업로드하기 위해 파일을 사전-적재하기 위한 캐시에 파일을 저장한다.
그러나, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시 내에 충분한 자유 공간이 존재하지 않는다면(분기(1212)), 업로드 관리기는, 단계(1214)에서, 사전-적재될 파일의 폐기 기준보다 높은 폐기 기준에 연관되는 캐시에 저장되는, 비간청 파일들과 같은 하나 이상의 폐기가능 파일들을 확인한다. 위에 기술된 바와 같이, 폐기가능 파일이 사전-적재될 파일의 폐기 기준보다 높은 폐기 기준을 가질 때, 폐기가능 파일은 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시 내에 자유 공간을 생성하기 위해 캐시로부터 폐기가능 파일이 제거될 수 있음을 알 것이다. 단계(1216)에서, 업로드 관리기는 차례차례로, 가장 높은 폐기 기준에 연관된 폐기가능 파일부터 시작해서 다음 가장 높은 폐기 기준에 연관된 폐기가능 파일로 진행하여, 파일의 폐기 기준보다 높은 폐기 기준에 연관된 확인된 폐기가능 파일들 중 적어도 하나를 제거한다. 일부 구현들에서, 업로드 관리기는 사전-적재될 파일을 위해 캐시 내 공간을 비워두기 위해 필요로 되는 캐시로부터 그 이상 폐기가능 파일들을 제거하지 않는다.
단계(1218)에서, 업로드 관리기는 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는지를 판정한다. 충분한 자유 공간이 존재하는 것으로 업로드 관리기가 판정한다면(분기(1220)), 업로드 관리기는 단계(1210)에서, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 파일을 저장한다.
그러나, 충분한 자유 공간이 존재하지 않는 것으로 업로드 관리기가 판정한다면(분기(1222)), 업로드 관리기는, 단계(1224)에서, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정한다. 일부 구현들에서, 업로드 관리기는 외부 위치에 파일을 업로드하기 위해 가용한 대역폭량; 외부 위치에 파일을 업로드하기 위해 가용한 네트워크의 유형; 호스트 장치 및/또는 저장장치에 연관된 파워 상태; 저장장치에 연관된 판독 요청들의 수, 소거들의 수, 및/또는 기입들의 수, 혹은 이외 임의의 다른 플래시 내구성 파라미터; 저장장치에 연관된 보안 파라미터; 한번에 저장장치의 저장 영역에 액세스하는 호스트 장치 상에 애플리케이션들의 수; 외부 위치가 현재 액세스될 수 있는지 여부; 및/또는 사용자가 외부 위치에 액세스할 권한이 있는지 여부과 같은 업로드 정책에 인자들에 기초하여 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정할 수 있다. 일부 구현들에서, 업로드 관리기는 저장장치에 연관된 파워 상태; 판독 요청들의 수, 소거들의 수, 및/또는 기입들의 수, 혹은 저장장치에 연관된 이외 임의의 다른 플래시 내구성 파라미터; 저장장치에 연관된 보안 파라미터; 및/또는 저장장치의 저장 영역에 현재 액세스하는 호스트 애플리케이션들의 수와 같은 저장장치에 연관된 메트릭들을 판정하기 위해 저장장치를 조회할 수 있다.
외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 업로드될 수 있는 것으로 업로드 관리기가 판정한다면(분기(1226)), 하나 이상의 사전-적재된 파일들은 단계(1228)에서 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 외부 위치들에 업로드된다. 이어서, 업로드 관리기는 단계(1210)에서 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 파일을 저장한다.
그러나, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 업로드될 수 없는 것으로 업로드 관리기가 판정한다면(분기(1230)), 업로드 관리기는 단계(1232)에서, 파일이 즉시 외부 위치에 업로드될 수 있는지를 판정한다. 일부 구현들에서, 업로드 관리기는 외부 위치에 파일을 업로드하기 위해 가용한 대역폭량; 외부 위치에 파일을 업로드하기 위해 가용한 네트워크의 유형; 호스트 장치 및/또는 저장장치에 연관된 파워 상태; 저장장치에 연관된 판독 요청들의 수, 소거들의 수, 및/또는 기입들의 수, 혹은 이외 임의의 다른 플래시 내구성 파라미터; 저장장치에 연관된 보안 파라미터; 한번에 저장장치의 저장 영역에 액세스하는 애플리케이션들의 수; 외부 위치가 현재 액세스될 수 있는지 여부; 및/또는 사용자가 외부 위치에 액세스할 권한이 있는지 여부와 같은 업로드 정책에 인자들에 기초하여 파일이 외부 위치에 즉시 업로드될 수 있는지 판정할 수 있다.
파일이 외부 위치에 즉시 업로드될 수 있는 것으로 업로드 관리기가 판정한다면(분기(1234)), 파일은 단계(1236)에서 즉시 외부 위치에 업로드된다. 그러나, 파일이 외부 위치에 즉시 업로드될 수 없는 것으로 업로드 관리기가 판정한다면(분기(1238)), 업로드 관리기는 단계(1240)에서 업로드 실패 표시자를 발생한다.
위에 기술된 바와 같이, 일 측면에서, 저장장치에 파일들을 관리하기 위한 방법이 제공된다. 방법은 저장장치가 동작가능하게 결합되는 호스트 내에 있는 저장 할당기의 일부일 수도 있는 업로드 관리기에 의해 수행될 수 있다. 저장장치는 하나 이상의 폐기가능 파일들을 저장하기 위한 캐시를 포함한다.
업로드 관리기는 외부 위치에 업로드될 파일을 확인하고 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는지를 판정한다. 업로드 관리기는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때 캐시에 파일을 저장할 수 있고, 사전-적재는 업로드 정책에 따라 이러한 파일을 기회주의적으로 업로드하기 위한 파일을 준비한다. 업로드 정책은 외부 위치와의 통신이 피크가 지났을 때 사전-적재된 파일을 업로드하거나, 캐시 내 공간을 비워두기 위해 사전-적재된 파일을 업로드하는 것을 포함할 수 있다. 캐시 내 폐기가능 파일들은 사전-적재된 파일들 및 비간청 파일들을 포함할 수 있는데, 업로드 관리기는 통보되지 않고 캐시로부터 모든 폐기가능 파일들을 제거할 수 있지만(파일을 폐기하는 것으로서도 알려진), 업로드 관리기는 사전-적재된 파일들이 외부 자원에 업로드된 후에만 이들을 캐시로부터 제거한다.
업로드 관리기는 외부에 업로드하기 위한 파일을 사전-적재하는 것이 자유 공간이 캐시에 존재하는 것보다 더 많은 공간을 요구하는 것으로 판정할 수 있다. 업로드 관리기는 폐기 기준을 파일에 연관시키고 사전-적재될 파일보다 높은 폐기 기준에 연관된 캐시에 하나 이상의 폐기가능 파일들이 저장되는지 여부를 판정할 수 있다. 업로드 관리기는 차례차례로, 가장 높은 폐기 기준에 연관된 폐기가능 파일부터 시작해서 다음 가장 높은 폐기 기준에 연관된 폐기가능 파일로 진행하여, 업로드하기 위해 사전-적재될 파일을 위해 캐시 내 공간을 비워두기 위해서 사전-적재될 파일보다 높은 폐기 기준에 연관된 캐시로부터 하나 이상의 폐기가능 파일들을 제거할 수 있다. 업로드 관리기는 사전-적재될 파일을 위해 캐시 내 공간을 비워두는데 필요한 것보다 캐시로부터 그 이상 폐기가능 파일들을 제거하지 않을 수 있다. 업로드 관리기는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때 캐시에 파일을 저장할 수 있다. 파일에 연관된 폐기 기준은 우선권 레벨을 포함할 수 있다.
업로드 관리기는 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는지 여부를 판정할 수 있다. 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때, 업로드 관리기는 저장장치의 캐시에 파일을 저장한다.
그러나, 캐시로부터 하나 이상의 폐기가능 파일들 다음에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하지 않는 것으로 판정하였을 때, 업로드 관리기는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해서 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 업로드될 수 있는지 판정할 수 있다. 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는 것으로 판정하였을 때, 업로드 관리기는 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들을 업로드하고 하나 이상의 사전-적재된 파일들을 외부 위치들에 업로드한 후에 캐시에 파일을 저장할 수 있다.
업로드 관리기는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 외부 위치들에 업로드될 수 있는 캐시에 사전-적재된 파일들이 저장되지 않을 때 파일이 외부 위치들에 즉시 업로드될 수 있는지를 판정할 수 있다. 업로드 관리기는 파일이 즉시 업로드될 수 있는 것으로 판정하였을 때 외부 위치에 파일을 업로드할 수 있고, 혹은 대안적으로, 업로드 관리기는 파일이 즉시 업로드될 수 있는 것으로 판정하였을 때 업로드 실패 표시자를 발생할 수 있다.
캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치에 업로드될 수 있는지 판정하기 위해서, 업로드 관리기는, 외부 위치에 하나 이상의 사전-적재된 파일들을 업로드하기 위해 가용한 네트워크 대역폭량에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 호스트 장치에 연관된 파워 레벨에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 저장장치의 저장 영역에 연관된 판독 요청들의 수, 소거들의 수, 또는 기입들의 수 중 적어도 하나에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 저장장치에 연관된 보안 파라미터에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 혹은 저장장치의 저장 영역에 현재 액세스하는 애플리케이션들의 수에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정할 수 있다.
캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치에 업로드될 수 있는지 판정하기 위해서, 업로드 관리기는, 외부 위치에 저장 영역에 연관된 하나 이상의 메트릭들에 대해 저장장치를 조회하고 하나 이상의 메트릭들에 기초하여 하나 이상의 사전-적재된 파일들이 외부 장치들에 업로드될 수 있는지를 판정할 수 있다. 하나 이상의 메트릭들은 미디어 판독들의 수, 소거들의 수, 혹은 저장장치의 저장 영역에 연관된 기입들의 수 중 적어도 하나를 포함할 수 있다.
또 다른 측면에서, 위에 기술된 바와 같이, 저장 시스템이 제공된다. 저장 시스템은 통신 인터페이스 및 저장장치의 캐시를 관리하기 위한 프로세서를 포함하며, 캐시는 하나 이상의 폐기가능 파일들을 저장하게 구성된다. 프로세서는 외부 위치에 통신 인터페이스를 통해 업로드될 파일을 확인하게 구성된다. 프로세서는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는지 여부를 판정하게 구성된다. 또한, 프로세서는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때 캐시에 파일을 저장하게 구성될 수 있고, 사전-적재는 업로드 정책에 따라 이러한 파일을 기회주의적으로 업로드하기 위한 파일을 준비한다. 업로드 정책은 외부 위치와의 통신이 피크가 지났을 때 사전-적재된 파일을 업로드하거나, 캐시에 공간을 비워두기 위해 사전-적재된 파일을 업로드하는 것을 포함할 수 있다. 캐시 내 폐기가능 파일들은 사전-적재된 파일들 및 비간청 파일들을 포함할 수 있고, 프로세서는 통보없이 캐시로부터 모든 폐기가능 파일들을 제거하게(파일을 폐기하는 것으로서도 알려진) 구성될 수 있다. 그러나, 프로세서는 캐시로부터 사전-적재된 파일들이 외부 자원에 업로드된 후에 이들만을 제거하게 구성될 수 있다.
프로세서는 외부에 업로드하기 위해 파일을 사전-적재하는 것이 캐시에 존재하는 자유 공간보다 더 많은 공간을 요구하는 것으로 판정하게 구성될 수 있다. 또한, 프로세서는 폐기 기준을 파일에 연관시키고 사전-적재될 파일보다 높은 폐기 기준에 연관된 캐시에 하나 이상의 폐기가능 파일들이 저장되는지 여부를 판정하게 구성될 수 있다. 프로세서는 차례차례로, 가장 높은 폐기 기준에 연관된 폐기가능 파일부터 시작해서 다음 가장 높은 폐기 기준에 연관된 폐기가능 파일로 진행하여, 업로드하기 위해 사전-적재될 파일을 위해 캐시 내 공간을 비워두기 위해서 사전-적재될 파일보다 높은 폐기 기준에 연관된 캐시로부터 하나 이상의 폐기가능 파일들을 제거할 수 있다. 프로세서는 사전-적재될 파일을 위해 캐시 내 공간을 비워두는데 필요한 것보다 캐시로부터 그 이상 폐기가능 파일들을 제거하지 않게 구성될 수 있다. 프로세서는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때 캐시에 파일을 저장하게 구성될 수 있다. 파일에 연관된 폐기 기준은 우선권 레벨을 포함할 수 있다.
프로세서는 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는지 판정하게 더욱 구성될 수 있다. 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때, 프로세서는 캐시에 파일을 저장하게 구성될 수 있다.
그러나, 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때, 프로세서는 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하게 구성될 수 있다. 외부 위치에 업로드하기 위한 파일을 사전-적재하기 위한 캐시에 충분한 자유 공간을 생성하기 위해 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는 것으로 판정하였을 때, 프로세서는 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들을 업로드하고 외부 위치들에 하나 이상의 사전-적재된 파일들을 업로드 한 후에 캐시에 파일을 저장하게 구성될 수 있다.
프로세서는 외부 위치들에 업로드하기 위해 파일을 사전-적재하기 위한 저장 영역에 충분한 자유 공간을 생성하기 위해 외부 위치들에 업로드될 수 있는 캐시에 사전-적재된 파일들이 저장되지 않을 때 외부 위치들에 즉시 파일이 업로드될 수 있는지 판정하게 구성될 수 있다. 프로세서는 파일이 즉시 업로드될 수 있는 것으로 판정하였을 때 외부 위치에 파일을 업로드학 구성될 수 있고, 프로세서는 파일이 즉시 업로드될 수 없는 것으로 판정하였을 때 업로드 실패 표시자를 발생하게 구성될 수 있다.
캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치에 업로드될 수 있는 것으로 판정하기 위해서, 프로세서는 외부 위치에 하나 이상의 사전-적재된 파일들을 업로드하기 위해 가용한 네트워크 대역폭량에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 호스트 장치에 연관된 파워 레벨에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 저장장치의 저장 영역에 연관된 판독 요청들의 수, 소거들의 수, 또는 기입들의 수 중 적어도 하나에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 저장장치에 연관된 보안 파라미터에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하거나; 및/또는 저장장치의 저장 영역에 현재 액세스하는 애플리케이션들의 수에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하게 구성될 수 있다.
캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 여부를 판정하기 위해서, 프로세서는 저장장치의 저장 영역에 연관된 하나 이상의 메트릭들에 대해 저장장치를 조회하고 하나 이상의 메트릭들에 기초하여 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하게 구성될 수 있다. 하나 이상의 메트릭들은 미디어 플레이들의 수, 소거들의 수, 혹은 저장장치의 저장 영역에 연관된 기입들의 수 중 적어도 하나를 포함할 수 있다.
일부 구현들에서, 하나 이상의 프로세서들은 컴퓨터-판독가능한 비일시적 저장 매체와 같은 메모리 상에 저장된 명령들에 기초하여 도 12에 관련하여 위에 기술된 단계들을 수행하게 구성될 수 있음을 알 것이다. 하나 이상의 프로세서들이 호스트, 저장장치, 또는 이들 둘 다의 조합 상에 위치될 수 있다.
파일들을 표시하고 연관된 파일 시스템에 폐기 레벨들을 이들에 할당하는 본원에 개시된 방법은 많은 유용한 적용들을 가질 수 있음에 유의하고, 이들 중 하나는 사용자 파일들을 위한 충분한 저장 공간을 보증하기 위해 저장 사용 안전 마진을 회복하는 것이다. 예를 들면, 파일에 할당된 폐기 레벨은 파일 클러스터들을 저성능 플래시 모듈에 재 매핑하거나, 요청시 클러스터들을 클리어하기 위해 사용될 수 있다.
단수표현은 본원에서는 문맥에 따라 하나 또는 하나 이상의(즉, 적어도 하나)을 나타내기 위해 사용한 것이다. 예로서, 문맥에 따라, "요소"는 한 요소 혹은 하나 이상의 요소를 의미할 수 있다. "포함하다"라는 용어는 본원에서는 " 포함하기는 하지만 이들로 제한되는 것은 아니다"를 의미하고 이와 상호교환적으로 사용된다. "또는" 그리고 "및"이라는 용어들은 본원에서는 문맥이 명백히 다른 것을 나타내지 않는 한 "및/또는"이라는 용어와 상호교환적으로 사용된다. "이를테면"이라는 용어는 본원에서는 "이를테면, 그러나 이들로 제한되는 것은 아니다"를 의미하고 이와 상호교환적으로 사용된다.
이와 같이 발명의 실시예들을 기술하였으며 개시된 실시예들의 수정들은 발명의 범위 내에 있을 것임이 당업자들에게 명백할 것이다. 따라서, 대안적 실시예들은 더 많은 모듈들, 더 적은 모듈들 및/또는 기능적으로 동등한 모듈들을 포함할 수 있다. 본 개시된 바는 이를테면 SD-구동 플래시 메모리 카드들, 플래시 저장장치들, 비-플래시 저장장치들, USB(Universal Serial Bus) 인터페이스가 구비된 "디스크-온-키" 장치들, USB 플래시 드라이브들("UFDs"), 멀티미디어 카드("MMC"), 보안 디지털("SD"), 미니SD, 및 마이크로SD, 등과 같은 다양한 유형들의 대량 저장장치에 관계된 것이다. 따라서 다음의 청구항들의 범위는 본원에 개시된 바에 의해 제한되지 않는다. 그러므로, 전술한 상세한 설명은 제한하려는 것이 아니라 예시적인 것으로 간주되고 모든 등가물들을 포함한 다음 청구항들은 이 발명의 정신 및 범위를 정의하려는 것이다.
120; 저장 제어기 140; 호스트
142; 발행자 파일 144; 저장 할당기
170; 사용자 영역 180; 발행자 영역
182; 폐기가능 파일(들) 190; 자유 저장 공간(f)
220; 저장 제어기 240; 호스트
244; 저장 할당기 310; 메모리 유닛
320; 프로세서 340; 할당 테이블

Claims (30)

  1. 저장장치로 파일들을 관리하는 방법에 있어서, 하나 이상의 폐기가능 파일들을 저장하기 위한 캐시를 포함하는 저장장치가 동작가능하게 결합되는 호스트에서,
    외부 위치에 업로드될 파일을 확인하는 단계;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간이 존재하는지를 판정하는 단계;
    상기 외부 위치에 업로드하기 위한 상기 파일을 사전-적재하는 것이 자유 공간이 캐시에 존재하는 것보다 더 많은 공간을 요구하는 것으로 판정하는 단계;
    폐기 기준을 상기 파일에 연관시키는 단계;
    사전-적재될 상기 파일보다 높은 폐기 기준에 연관된 하나 이상의 폐기가능 파일들이 상기 캐시에 저장되는지 여부를 판정하는 단계;
    차례차례로, 가장 높은 폐기 기준에 연관된 상기 폐기가능 파일부터 시작해서 다음 가장 높은 폐기 기준에 연관된 상기 폐기가능 파일로 진행하여, 업로드하기 위해 사전-적재될 상기 파일을 위해 상기 캐시 내 공간을 비워두기 위해서 사전-적재될 상기 파일보다 높은 폐기 기준에 연관된 상기 캐시로부터 하나 이상의 폐기가능 파일들을 제거하는 단계 - 사전-적재될 상기 파일을 위해 상기 캐시 내 공간을 비워두는데 필요한 것보다 더 많은 폐기가능 파일들은 상기 캐시로부터 제거되지 않음 -; 및
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간이 존재하는 것으로 판정하였을 때 상기 캐시에 상기 파일을 저장하는 단계 - 사전-적재는 업로드 정책에 따라 이러한 파일을 기회주의적으로 업로드하기 위한 파일을 준비하는 것임 - 를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 캐시 내의 폐기가능 파일들은 사전-적재된 파일들 및 비간청 파일들을 포함하고, 모든 폐기가능 파일들은 통보 없이 폐기될 수 있지만 사전-적재된 파일들은 이들이 외부 위치에 업로드된 후에만 폐기되는 것인, 방법.
  3. 제 1 항에 있어서,
    상기 업로드 정책은 상기 외부 위치와의 통신이 피크가 지났을 때 업로드하는 것을 포함하는, 방법.
  4. 제 1 항에 있어서,
    사전-적재된 파일들의 업로드는 상기 캐시 내 공간을 비워두는, 방법.
  5. 제 1 항에 있어서,
    상기 폐기 기준은 우선권 레벨을 포함하는, 방법.
  6. 제 1 항에 있어서, 상기 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 상기 외부 위치에 업로드하기 위해 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간이 존재하지 않는 것으로 판정하는 단계;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간을 생성하기 위해서 상기 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하는 단계;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간을 생성하기 위해서 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는 것으로 판정되었을 때 상기 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들을 업로드 하는 단계; 및
    상기 하나 이상의 사전-적재된 파일들을 외부 위치들에 업로드 한 후에 상기 캐시에 상기 파일을 저장하는 단계를 더 포함하는, 방법.
  7. 제 6 항에 있어서, 상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간을 생성하기 위해서 외부 위치들에 업로드될 수 있는 사전-적재된 파일들이 상기 캐시에 저장되지 않을 때 상기 파일이 즉시 상기 외부 위치에 업로드될 수 있는지를 판정하는 단계;
    상기 파일이 즉시 업로드될 수 있는 것으로 판정하였을 때 상기 파일을 상기 외부 위치에 업로드하는 단계; 및
    상기 파일이 즉시 업로드될 수 없는 것으로 판정하였을 때 업로드 실패 표시자를 발생하는 단계를 더 포함하는, 방법.
  8. 제 6 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계는:
    외부 위치들에 상기 하나 이상의 사전-적재된 파일들을 업로드하기 위해 가용한 네트워크 대역폭량에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계를 포함하는, 방법.
  9. 제 6 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계는
    호스트 장치에 연관된 파워 레벨에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계를 포함하는, 방법.
  10. 제 6 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계는
    상기 캐시에 연관된 판독 요청들의 수, 소거들의 수, 또는 기입들의 수 중 적어도 하나에 기초하여 외부 위치들에 업로드될 수 있는지를 판정하는 단계를 포함하는, 방법.
  11. 제 6 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계는
    상기 저장장치에 연관된 보안 파라미터에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하는 단계를 포함하는, 방법.
  12. 제 6 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계는
    현재 상기 캐시에 액세스하는 호스트 애플리케이션들의 수에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하는 단계를 포함하는, 방법.
  13. 제 6 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하는 단계는
    상기 캐시에 연관된 하나 이상의 메트릭들에 대해 상기 저장장치를 조회하는 단계; 및
    상기 하나 이상의 메트릭들에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하는 단계를 포함하는, 방법.
  14. 제 13 항에 있어서, 상기 하나 이상의 메트릭들은 상기 캐시에 연관된 판독 요청들의 수, 소거들의 수, 또는 기입들의 수 중 적어도 하나를 포함하는, 방법.
  15. 저장 시스템에 있어서,
    통신 인터페이스;
    저장장치의 캐시를 관리하기 위한 호스트상의 프로세서를 포함하고,
    상기 캐시는 하나 이상의 폐기가능 파일들을 저장하게 구성되며, 상기 프로세서는
    외부 위치에 상기 통신 인터페이스를 통해 업로드될 파일을 확인하고;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간이 존재하는지를 판정하고;
    상기 외부 위치에 업로드하기 위한 상기 파일을 사전-적재하는 것이 자유 공간이 캐시에 존재하는 것보다 더 많은 공간을 요구하는 것으로 판정하고;
    폐기 기준을 상기 파일에 연관시키고;
    사전-적재될 상기 파일보다 높은 폐기 기준에 연관된 상기 캐시에 하나 이상의 폐기가능 파일들이 저장되는지 여부를 판정하고;
    차례차례로, 가장 높은 폐기 기준에 연관된 상기 폐기가능 파일부터 시작해서 다음 가장 높은 폐기 기준에 연관된 상기 폐기가능 파일로 진행하여, 업로드하기 위해 사전-적재될 상기 파일을 위해 상기 캐시 내 공간을 비워두기 위해서 사전-적재될 상기 파일보다 높은 폐기 기준에 연관된 상기 캐시로부터 하나 이상의 폐기가능 파일들을 제거하고 - 사전-적재될 상기 파일을 위해 상기 캐시 내 공간을 비워두는데 필요한 것보다 더 많은 폐기가능 파일들은 상기 캐시로부터 제거되지 않음 -;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간이 존재하는 것으로 판정할 때 상기 캐시에 상기 파일을 저장 - 사전-적재는 업로드 정책에 따라 이러한 파일을 기회주의적으로 업로드하기 위한 파일을 준비함 - 하게 구성되는, 저장 시스템.
  16. 제 15 항에 있어서, 상기 캐시 내의 폐기가능 파일들은 사전-적재된 파일들 및 비간청 파일들을 포함하고, 모든 폐기가능 파일들은 통보없이 폐기될 수 있지만 사전-적재된 파일들은 이들이 외부 위치에 업로드된 후에만 폐기되는 것인, 저장 시스템.
  17. 제 15 항에 있어서, 상기 업로드 정책은 상기 외부 위치와의 통신이 피크가 지났을 때 업로드하는 것을 포함하는, 저장 시스템.
  18. 제 15 항에 있어서, 사전-적재된 파일들의 업로드는 상기 캐시 내 공간을 비워두는, 저장 시스템.
  19. 제 15 항에 있어서, 상기 폐기 기준은 우선권 레벨을 포함하는, 저장 시스템.
  20. 제 15 항에 있어서, 상기 프로세서는 상기 캐시로부터 하나 이상의 폐기가능 파일들을 제거한 후에, 상기 외부 위치에 업로드하기 위해 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간이 존재하지 않는 것으로 판정하고;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간을 생성하기 위해서 상기 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하고;
    상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간을 생성하기 위해서 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는 것으로 판정되었을 때 상기 캐시에 이미 저장된 하나 이상의 사전-적재된 파일들을 업로드 하고;
    상기 하나 이상의 사전-적재된 파일들을 외부 위치들에 업로드 한 후에 상기 캐시에 상기 파일을 저장하게 더욱 구성된, 저장 시스템.
  21. 제 20 항에 있어서, 상기 프로세서는 상기 외부 위치에 업로드하기 위해 상기 파일을 사전-적재하기 위한 상기 캐시에 충분한 자유 공간을 생성하기 위해서 외부 위치들에 업로드될 수 있는 사전-적재된 파일들이 상기 캐시에 저장되지 않을 때 상기 파일이 즉시 상기 외부 위치에 업로드될 수 있는지를 판정하고;
    상기 파일이 즉시 업로드될 수 있는 것으로 판정하였을 때 상기 파일을 상기 외부 위치에 업로드하고;
    상기 파일이 즉시 업로드될 수 없는 것으로 판정하였을 때 업로드 실패 표시자를 발생하게 더욱 구성된, 저장 시스템.
  22. 제 20 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하기 위해서,
    상기 프로세서는 외부 위치들에 상기 하나 이상의 사전-적재된 파일들을 업로드하기 위해 가용한 네트워크 대역폭량에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하게 더욱 구성된, 저장 시스템.
  23. 제 20 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하기 위해서,
    상기 프로세서는 호스트 장치에 연관된 파워 레벨에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하게 더욱 구성된, 저장 시스템.
  24. 제 20 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하기 위해서,
    상기 프로세서는 상기 캐시에 연관된 판독 요청들의 수, 소거들의 수, 또는 기입들의 수 중 적어도 하나에 기초하여 외부 위치들에 업로드될 수 있는지를 판정하게 더욱 구성된, 저장 시스템.
  25. 제 20 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하기 위해서,
    상기 프로세서는 상기 저장장치에 연관된 보안 파라미터에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하게 더욱 구성된, 저장 시스템.
  26. 제 20 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하기 위해서,
    상기 프로세서는 현재 상기 캐시에 액세스하는 호스트 애플리케이션들의 수에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하게 더욱 구성된, 저장 시스템.
  27. 제 20 항에 있어서, 상기 캐시에 이미 저장된 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지 판정하기 위해서,
    상기 프로세서는 상기 캐시에 연관된 하나 이상의 메트릭들에 대해 상기 저장장치를 조회하고;
    상기 하나 이상의 메트릭들에 기초하여 상기 하나 이상의 사전-적재된 파일들이 외부 위치들에 업로드될 수 있는지를 판정하게 더욱 구성된, 저장 시스템.
  28. 제 27 항에 있어서, 상기 하나 이상의 메트릭들은 상기 캐시에 연관된 판독 요청들의 수, 소거들의 수, 또는 기입들의 수 중 적어도 하나를 포함하는, 저장 시스템.
  29. 삭제
  30. 삭제
KR1020137006437A 2010-08-19 2011-08-09 공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법 KR101825770B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US40184110P 2010-08-19 2010-08-19
US61/401,841 2010-08-19
US12/895,397 US8549229B2 (en) 2010-08-19 2010-09-30 Systems and methods for managing an upload of files in a shared cache storage system
US12/895,397 2010-09-30
PCT/US2011/047047 WO2012024113A2 (en) 2010-08-19 2011-08-09 Systems and methods for managing an upload of files in a shared cache storage system

Publications (2)

Publication Number Publication Date
KR20130113435A KR20130113435A (ko) 2013-10-15
KR101825770B1 true KR101825770B1 (ko) 2018-02-05

Family

ID=44504275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137006437A KR101825770B1 (ko) 2010-08-19 2011-08-09 공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US8549229B2 (ko)
EP (1) EP2606430A2 (ko)
KR (1) KR101825770B1 (ko)
CN (1) CN103154911B (ko)
TW (1) TW201220045A (ko)
WO (1) WO2012024113A2 (ko)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5528229B2 (ja) * 2010-06-23 2014-06-25 キヤノン株式会社 文書生成装置、文書生成システム、文書アップロード方法及びプログラム
KR101293370B1 (ko) * 2011-02-10 2013-08-05 주식회사 엘지씨엔에스 맞춤형 모바일 컨텐츠 서비스 시스템 및 그 방법
BR112015003849B1 (pt) * 2012-08-23 2021-10-05 Samsung Electronics Co., Ltd Método de transmissão de informação realizado por um dispositivo, dispositivo, método de transmissão de informação realizado por um dispositivo de entrada, e dispositivo de entrada
KR101981258B1 (ko) * 2013-01-04 2019-05-22 삼성전자주식회사 개인 클라우드 기기를 이용한 컨텐츠 공유 방법 및 이를 적용한 전자 기기, 그리고 개인 클라우드 시스템
US9882984B2 (en) 2013-08-02 2018-01-30 International Business Machines Corporation Cache migration management in a virtualized distributed computing system
WO2015023219A1 (en) * 2013-08-16 2015-02-19 Telefonaktiebolaget L M Ericsson (Publ) Data object storage
CN103731497A (zh) * 2013-12-31 2014-04-16 华为终端有限公司 支持无线访问存储设备的方法及移动路由热点设备
JP6305078B2 (ja) * 2014-01-29 2018-04-04 キヤノン株式会社 システムおよび制御方法
US9509769B2 (en) * 2014-02-28 2016-11-29 Sap Se Reflecting data modification requests in an offline environment
CN105450542B (zh) * 2014-08-21 2019-08-27 联想(北京)有限公司 一种数据处理方法及第一电子设备
CN105404468B (zh) * 2014-11-17 2020-05-26 晶天电子(深圳)有限公司 绿能与非固态硬盘应用及其驱动器
US9582514B2 (en) 2014-12-27 2017-02-28 Ascava, Inc. Performing multidimensional search and content-associative retrieval on data that has been losslessly reduced using a prime data sieve
KR20180021074A (ko) * 2015-06-15 2018-02-28 아스카바, 인크. 무손실 축소된 데이터에 대한 기본 데이터 시브를 사용한 다차원 탐색, 내용 연관 검색, 및 키워드 기반 탐색 및 검색의 수행
CN105005622B (zh) * 2015-07-24 2018-12-07 肖华 一种高速存储高真连帧查询数的方法和其图像输出方法
CN105824580B (zh) * 2016-03-18 2018-11-02 福州瑞芯微电子股份有限公司 录像文件写方法和录制设备
CN108021698A (zh) * 2017-12-21 2018-05-11 努比亚技术有限公司 存储文件的删除方法、装置和计算机存储介质
US11134135B1 (en) * 2018-09-26 2021-09-28 Marvell Asia Pte, Ltd. Mobile storage system for storing and transferring data generated by Internet of Things (IoT) devices
CN109714415B (zh) * 2018-12-26 2021-09-21 北京小米移动软件有限公司 数据处理方法及装置
KR102126571B1 (ko) * 2019-05-16 2020-06-25 삼성전자주식회사 개인 클라우드 기기를 이용한 컨텐츠 공유 방법 및 이를 적용한 전자 기기, 그리고 개인 클라우드 시스템
KR102176507B1 (ko) * 2020-06-18 2020-11-09 삼성전자주식회사 개인 클라우드 기기를 이용한 컨텐츠 공유 방법 및 이를 적용한 전자 기기, 그리고 개인 클라우드 시스템
CN113553306B (zh) * 2021-07-27 2023-07-21 重庆紫光华山智安科技有限公司 数据处理方法及数据存储管理系统
CN113590559B (zh) * 2021-09-28 2022-02-11 中通服建设有限公司 一种企业项目管理文档管理全过程的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115420A1 (en) * 2001-12-17 2003-06-19 Panagiotis Tsirigotis Methods and apparatus for implementing a chche replacement scheme
US20030166399A1 (en) * 2002-03-01 2003-09-04 Timo Tokkonen Prioritization of files in a memory
US20060168403A1 (en) * 2005-01-27 2006-07-27 Curt Kolovson Intelligent cache management

Family Cites Families (172)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5222109A (en) 1990-12-28 1993-06-22 Ibm Corporation Endurance management for solid state files
US5491810A (en) 1994-03-01 1996-02-13 International Business Machines Corporation Method and system for automated data storage system space allocation utilizing prioritized data set parameters
US6460036B1 (en) 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US5845313A (en) 1995-07-31 1998-12-01 Lexar Direct logical block addressing flash memory mass storage architecture
US5838614A (en) 1995-07-31 1998-11-17 Lexar Microsystems, Inc. Identification and verification of a sector within a block of mass storage flash memory
US5835935A (en) 1995-09-13 1998-11-10 Lexar Media, Inc. Method of and architecture for controlling system data with automatic wear leveling in a semiconductor non-volatile mass storage memory
US5893920A (en) 1996-09-30 1999-04-13 International Business Machines Corporation System and method for cache management in mobile user file systems
US6185625B1 (en) 1996-12-20 2001-02-06 Intel Corporation Scaling proxy server sending to the client a graphical user interface for establishing object encoding preferences after receiving the client's request for the object
US5948066A (en) 1997-03-13 1999-09-07 Motorola, Inc. System and method for delivery of information over narrow-band communications links
US20050039177A1 (en) 1997-07-12 2005-02-17 Trevor Burke Technology Limited Method and apparatus for programme generation and presentation
US6393526B1 (en) 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US7975305B2 (en) 1997-11-06 2011-07-05 Finjan, Inc. Method and system for adaptive rule-based content scanners for desktop computers
US6134584A (en) 1997-11-21 2000-10-17 International Business Machines Corporation Method for accessing and retrieving information from a source maintained by a network server
US6393465B2 (en) 1997-11-25 2002-05-21 Nixmail Corporation Junk electronic mail detector and eliminator
US6256620B1 (en) 1998-01-16 2001-07-03 Aspect Communications Method and apparatus for monitoring information access
US6366912B1 (en) 1998-04-06 2002-04-02 Microsoft Corporation Network security zones
US6138158A (en) 1998-04-30 2000-10-24 Phone.Com, Inc. Method and system for pushing and pulling data using wideband and narrowband transport systems
US6338117B1 (en) 1998-08-28 2002-01-08 International Business Machines Corporation System and method for coordinated hierarchical caching and cache replacement
WO2000055735A1 (en) 1999-03-15 2000-09-21 Powerquest Corporation Manipulation of computer volume segments
US6542967B1 (en) 1999-04-12 2003-04-01 Novell, Inc. Cache object store
GB2349546A (en) 1999-04-26 2000-11-01 Nokia Mobile Phones Ltd A terminal for providing an application using a browser
US6553393B1 (en) 1999-04-26 2003-04-22 International Business Machines Coporation Method for prefetching external resources to embedded objects in a markup language data stream
FR2793576B1 (fr) 1999-05-11 2001-11-16 Gemplus Card Int Terminal radiotelephonique avec une carte a puce dotee d'un navigateur
US7305473B2 (en) 1999-05-28 2007-12-04 The Coca-Cola Company Provision of transparent proxy services to a user of a client device
US6542964B1 (en) 1999-06-02 2003-04-01 Blue Coat Systems Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server
GB2350973A (en) 1999-06-11 2000-12-13 Nokia Mobile Phones Ltd Simultaneously fetching page content and link content in a mobile web browser
RU2257609C2 (ru) 1999-10-21 2005-07-27 Мацусита Электрик Индастриал Ко., Лтд. Устройство доступа к полупроводниковой карте памяти, компьютерно-считываемый носитель записи, способ инициализации и полупроводниковая карта памяти
US6721780B1 (en) 1999-11-09 2004-04-13 Fireclick, Inc. Predictive pre-download of network objects
US6217752B1 (en) 1999-12-28 2001-04-17 Terry L. Coots Septic tank alarm system
US20030236961A1 (en) 2000-11-07 2003-12-25 Qiu Chaoxin C. Systems and methods for management of memory in information delivery environments
US7428540B1 (en) 2000-03-03 2008-09-23 Intel Corporation Network storage system
US7103598B1 (en) 2000-03-03 2006-09-05 Micron Technology, Inc Software distribution method and apparatus
US7167840B1 (en) 2000-03-15 2007-01-23 The Directv Group, Inc. Method and apparatus for distributing and selling electronic content
US6937813B1 (en) 2000-03-31 2005-08-30 Intel Corporation Digital video storage and replay system
WO2001075691A2 (en) 2000-03-31 2001-10-11 Mdsi Mobile Data Solutions Inc. Finding technique for a scheduling system
US6917960B1 (en) 2000-05-05 2005-07-12 Jibe Networks Intelligent content precaching
JP4649760B2 (ja) 2000-05-31 2011-03-16 ソニー株式会社 コンテンツ・コピー管理システム及び方法、情報処理装置及び方法、並びに、記憶媒体
US10089620B2 (en) 2000-06-02 2018-10-02 Panasonic Intellectual Property Management Co., Ltd. Recording medium, license management apparatus, and recording and playback apparatus
US6742033B1 (en) 2000-06-12 2004-05-25 Gateway, Inc. System, method and computer program product that pre-caches content to provide timely information to a user
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
US6826599B1 (en) 2000-06-15 2004-11-30 Cisco Technology, Inc. Method and apparatus for optimizing memory use in network caching
US6799251B1 (en) 2000-08-29 2004-09-28 Oracle International Corporation Performance-based caching
US7043524B2 (en) 2000-11-06 2006-05-09 Omnishift Technologies, Inc. Network caching system for streamed applications
EP1211861A1 (en) 2000-12-04 2002-06-05 Alcatel Browser environment for accessing local and remote services on a phone
US20050273514A1 (en) 2000-12-22 2005-12-08 Ray Milkey System and method for automated and optimized file transfers among devices in a network
WO2002069108A2 (en) 2001-02-26 2002-09-06 Eprivacy Group, Inc. System and method for controlling distribution of network communications
US7512666B2 (en) 2001-04-18 2009-03-31 Yahoo! Inc. Global network of web card systems and method thereof
US6941133B2 (en) 2001-05-18 2005-09-06 Qualcomm Inc. Dynamic loading and creation of functional objects in a wireless device
US7159014B2 (en) 2001-06-04 2007-01-02 Fineground Networks Method and system for efficient and automated version management of embedded objects in web documents
KR100430158B1 (ko) 2001-06-18 2004-05-04 지은묵 인터넷방송의 콘텐츠 위탁 영업 시스템 및 방법
US7043506B1 (en) 2001-06-28 2006-05-09 Microsoft Corporation Utility-based archiving
CA2394503A1 (en) 2001-07-23 2003-01-23 Research In Motion Limited System and method for pushing information to a mobile device
US20030023745A1 (en) 2001-07-26 2003-01-30 Neoplanet, Inc. Method and system for adaptively downloading data from a network device
US7146524B2 (en) 2001-08-03 2006-12-05 Isilon Systems, Inc. Systems and methods for providing a distributed file system incorporating a virtual hot spare
US7685126B2 (en) 2001-08-03 2010-03-23 Isilon Systems, Inc. System and methods for providing a distributed file system utilizing metadata to track information about data stored throughout the system
CA2461025A1 (en) * 2001-09-26 2003-04-03 Mark Saake Efficient mangement of large files
EP1308853A1 (en) 2001-10-30 2003-05-07 Hewlett-Packard Company Data caching
JP4157294B2 (ja) 2001-11-08 2008-10-01 富士通株式会社 欠陥ファイルの修復を可能とするファイルシステム
CN100366025C (zh) 2001-12-07 2008-01-30 捷讯研究有限公司 从主服务到移动台分布信息的方法
US20030114138A1 (en) 2001-12-13 2003-06-19 Kumar Ramaswamy Apparatus, methods and articles of manufacture for wireless communication networks
NZ533176A (en) 2001-12-25 2005-10-28 Ntt Docomo Inc Device and method for restricting content access and storage
US7269851B2 (en) 2002-01-07 2007-09-11 Mcafee, Inc. Managing malware protection upon a computer network
US7246268B2 (en) 2002-01-16 2007-07-17 Sandisk Corporation Method and apparatus for dynamic degradation detection
US6871268B2 (en) 2002-03-07 2005-03-22 International Business Machines Corporation Methods and systems for distributed caching in presence of updates and in accordance with holding times
US20030189589A1 (en) 2002-03-15 2003-10-09 Air-Grid Networks, Inc. Systems and methods for enhancing event quality
JP4020676B2 (ja) 2002-03-26 2007-12-12 株式会社東芝 Webシステム及びWebシステムの制御方法
US9137324B2 (en) 2002-04-10 2015-09-15 International Business Machines Corporation Capacity on-demand in distributed computing environments
US7549164B2 (en) 2003-06-11 2009-06-16 Symantec Corporation Intrustion protection system utilizing layers and triggers
JP2004032459A (ja) 2002-06-27 2004-01-29 Hitachi Ltd 監視システム、およびこれに用いるコントローラと監視端末
US6996676B2 (en) 2002-11-14 2006-02-07 International Business Machines Corporation System and method for implementing an adaptive replacement cache policy
US7093101B2 (en) 2002-11-21 2006-08-15 Microsoft Corporation Dynamic data structures for tracking file system free space in a flash memory device
US7136885B2 (en) 2002-12-20 2006-11-14 International Business Machines Corporation Free space management
US7395048B2 (en) 2002-12-26 2008-07-01 Motorola, Inc. Unsolicited wireless content delivery and billing apparatus and method
GB2397904B (en) 2003-01-29 2005-08-24 Hewlett Packard Co Control of access to data content for read and/or write operations
EP1595398A1 (en) 2003-02-10 2005-11-16 Koninklijke Philips Electronics N.V. Import control of content
GB2398199A (en) 2003-02-10 2004-08-11 Nokia Corp A system for transferring content audio and video data from a provider to a personal digital assistant
US7103734B1 (en) 2003-04-28 2006-09-05 Advanced Micro Devices, Inc. System and method for identifying empty locations in a scrambled memory
TW594477B (en) 2003-05-02 2004-06-21 Genesys Logic Inc Method and related device for accessing non-volatile memory of dual platforms for PC and X-BOX
US7730033B2 (en) 2003-06-13 2010-06-01 Microsoft Corporation Mechanism for exposing shadow copies in a networked environment
US7525570B2 (en) 2003-07-17 2009-04-28 Igt Security camera interface
US7774351B2 (en) 2003-09-24 2010-08-10 Sony Corporation Data recording control apparatus
US20130097302A9 (en) 2003-10-01 2013-04-18 Robert Khedouri Audio visual player apparatus and system and method of content distribution using the same
US20060008256A1 (en) 2003-10-01 2006-01-12 Khedouri Robert K Audio visual player apparatus and system and method of content distribution using the same
US7441011B2 (en) * 2003-10-23 2008-10-21 Microsoft Corporation Truth on client persistent caching
US7143240B2 (en) 2003-10-31 2006-11-28 International Business Machines Corporation System and method for providing a cost-adaptive cache
US9131272B2 (en) 2003-11-04 2015-09-08 Universal Electronics Inc. System and method for saving and recalling state data for media and home appliances
US20050102291A1 (en) 2003-11-12 2005-05-12 Czuchry Andrew J.Jr. Apparatus and method providing distributed access point authentication and access control with validation feedback
US7546324B2 (en) 2003-11-13 2009-06-09 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
JP2005169861A (ja) 2003-12-11 2005-06-30 Canon Inc 印刷装置及びデータ処理方法
US7272782B2 (en) 2003-12-19 2007-09-18 Backweb Technologies, Inc. System and method for providing offline web application, page, and form access in a networked environment
US7418464B2 (en) 2004-01-27 2008-08-26 International Business Machines Corporation Method, system, and program for storing data for retrieval and transfer
US7711901B2 (en) 2004-02-13 2010-05-04 Intel Corporation Method, system, and apparatus for an hierarchical cache line replacement
US20080082736A1 (en) 2004-03-11 2008-04-03 Chow David Q Managing bad blocks in various flash memory cells for electronic data flash card
US7568042B2 (en) 2004-03-18 2009-07-28 Sony Corporation Networked local media cache engine
US7343459B2 (en) 2004-04-30 2008-03-11 Commvault Systems, Inc. Systems and methods for detecting & mitigating storage risks
US7574580B2 (en) 2004-07-06 2009-08-11 Magnum Semiconductor, Inc. Intelligent caching scheme for streaming file systems
US7581253B2 (en) 2004-07-20 2009-08-25 Lenovo (Singapore) Pte. Ltd. Secure storage tracking for anti-virus speed-up
US8607016B2 (en) 2004-07-21 2013-12-10 Sandisk Technologies Inc. FAT analysis for optimized sequential cluster management
US7398348B2 (en) 2004-08-24 2008-07-08 Sandisk 3D Llc Method and apparatus for using a one-time or few-time programmable memory with a host device designed for erasable/rewritable memory
US8037527B2 (en) 2004-11-08 2011-10-11 Bt Web Solutions, Llc Method and apparatus for look-ahead security scanning
EP1836636A1 (fr) 2004-11-17 2007-09-26 David Fauthoux Support personnel de mémoire de masse portatif et système informatique d'accès sécurisé a un espace utilisateur via un réseau
US20060168123A1 (en) 2004-12-14 2006-07-27 Alcatel Queue and load for wireless hotspots
US7610296B2 (en) 2004-12-17 2009-10-27 Microsoft Corporation Prioritized files
EP1829285A4 (en) 2004-12-22 2008-05-14 Research In Motion Ltd SYSTEM AND METHOD FOR INCREASING NETWORK NAVIGATION SPEED BY INSTALLING A PROXY SERVER ON A PORTABLE DEVICE
US7613704B2 (en) 2005-01-19 2009-11-03 Hewlett-Packard Development Company, L.P. Enterprise digital asset management system and method
US20060161960A1 (en) 2005-01-20 2006-07-20 Benoit Brian V Network security system appliance and systems based thereon
US7317907B2 (en) 2005-01-31 2008-01-08 Research In Motion Limited Synchronizing server and device data using device data schema
US20060200503A1 (en) 2005-03-03 2006-09-07 Nokia Corporation Modifying back-end web server documents at an intermediary server using directives
US8589561B2 (en) 2005-03-22 2013-11-19 Alcatel Lucent Session level technique for improving web browsing performance on low speed links
US9288078B2 (en) 2005-03-25 2016-03-15 Qualcomm Incorporated Apparatus and methods for managing content exchange on a wireless device
JP4738038B2 (ja) 2005-03-25 2011-08-03 株式会社東芝 メモリカード
EP1872606B1 (en) 2005-04-18 2010-12-22 Motorola, Inc. Method and system for centralized memory management in wireless terminal devices
US20060282886A1 (en) 2005-06-09 2006-12-14 Lockheed Martin Corporation Service oriented security device management network
US20060294223A1 (en) 2005-06-24 2006-12-28 Microsoft Corporation Pre-fetching and DNS resolution of hyperlinked content
US7797479B2 (en) 2005-06-30 2010-09-14 Intel Corporation Technique to write to a non-volatile memory
CA2513014A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited A method of controlling delivery of multi-part content from an origin server to a mobile device browser via a proxy server
DE102005044483A1 (de) 2005-09-16 2007-03-29 Electronic Thoma Gmbh Transportierbarer, konfigurierbarer Informationsträger und Verfahren hierzu
US7568075B2 (en) 2005-09-22 2009-07-28 Hitachi, Ltd. Apparatus, system and method for making endurance of storage media
US8001217B1 (en) 2005-10-13 2011-08-16 Sprint Communications Company L.P. Prediction-based adaptive content broadcasting over a network
US20070088659A1 (en) 2005-10-19 2007-04-19 Mod Systems Distribution of selected digitally-encoded content to a storage device, user device, or other distribution target with concurrent rendering of selected content
US20070100893A1 (en) 2005-10-31 2007-05-03 Sigmatel, Inc. System and method for accessing data from a memory device
US7430633B2 (en) 2005-12-09 2008-09-30 Microsoft Corporation Pre-storage of data to pre-cached system memory
US20070156998A1 (en) 2005-12-21 2007-07-05 Gorobets Sergey A Methods for memory allocation in non-volatile memories with a directly mapped file storage system
US20070165933A1 (en) 2005-12-22 2007-07-19 Intellirad Solutions Pty Ltd Method for pre-fetching digital image data
US8447837B2 (en) 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
US20070185899A1 (en) 2006-01-23 2007-08-09 Msystems Ltd. Likelihood-based storage management
US20070179854A1 (en) 2006-01-30 2007-08-02 M-Systems Media predictive consignment
US7512847B2 (en) 2006-02-10 2009-03-31 Sandisk Il Ltd. Method for estimating and reporting the life expectancy of flash-disk memory
US20070206247A1 (en) 2006-03-01 2007-09-06 Intouch Group, Inc. System, apparatus, and method for managing preloaded digital files for preview on a digital media playback apparatus
US8171251B2 (en) 2006-03-16 2012-05-01 Sandisk Il Ltd. Data storage management method and device
US7640395B2 (en) 2006-03-30 2009-12-29 Intel Corporation Maintaining write ordering in a system
US7523013B2 (en) 2006-05-15 2009-04-21 Sandisk Corporation Methods of end of life calculation for non-volatile memories
CN101375579A (zh) 2006-05-29 2009-02-25 晟碟以色列有限公司 用于诸如移动电话的sim卡的存储设备的分布式本地网络服务器体系结构
US8706799B2 (en) 2006-05-29 2014-04-22 Sandisk Il Ltd. Method and apparatus to exchange information with a local storage device
US7747817B2 (en) 2006-06-28 2010-06-29 Unity Semiconductor Corporation Performing data operations using non-volatile third dimension memory
US7783956B2 (en) 2006-07-12 2010-08-24 Cronera Systems Incorporated Data recorder
US20100017557A1 (en) 2006-07-26 2010-01-21 Panasonic Corporation Memory controller, nonvolatile memory device,access device, and nonvolatile memory system
US20090132621A1 (en) 2006-07-28 2009-05-21 Craig Jensen Selecting storage location for file storage based on storage longevity and speed
CN101127038B (zh) 2006-08-18 2012-09-19 鸿富锦精密工业(深圳)有限公司 下载网站静态网页的系统及方法
US20080068998A1 (en) 2006-09-08 2008-03-20 Xambala Corporation Reducing latency associated with initiating real-time internet communications
US8024815B2 (en) 2006-09-15 2011-09-20 Microsoft Corporation Isolation environment-based information access
US20090210631A1 (en) 2006-09-22 2009-08-20 Bea Systems, Inc. Mobile application cache system
JP5019836B2 (ja) 2006-09-27 2012-09-05 アルパイン株式会社 データ再生機能を有する電子装置
US7558907B2 (en) 2006-10-13 2009-07-07 Spansion Llc Virtual memory card controller
US20080098093A1 (en) 2006-10-16 2008-04-24 Palm, Inc. Offline automated proxy cache for web applications
US8224813B2 (en) 2006-10-20 2012-07-17 Oracle International Corporation Cost based analysis of direct I/O access
KR100787861B1 (ko) 2006-11-14 2007-12-27 삼성전자주식회사 휴대용 단말기에서 갱신 데이터를 확인하기 위한 장치 및방법
US7769945B2 (en) 2007-01-18 2010-08-03 Sandisk Il Ltd. Method and system for facilitating fast wake-up of a flash memory system
US8181264B2 (en) 2007-02-07 2012-05-15 Apple Inc. Method and apparatus for deferred security analysis
US20080208961A1 (en) 2007-02-23 2008-08-28 Hostway Corporation Parallel retrieval system
US20080222348A1 (en) 2007-03-08 2008-09-11 Scandisk Il Ltd. File system for managing files according to application
WO2008113986A2 (en) 2007-03-16 2008-09-25 British Telecommunications Public Limited Company Data transmission scheduler
DE102007015535A1 (de) 2007-03-30 2008-10-02 Siemens Ag Verfahren zur digitalen Speicherung von Daten auf einem Datenspeicher mit beschränktem verfügbarem Speicherplatz
US8782786B2 (en) 2007-03-30 2014-07-15 Sophos Limited Remedial action against malicious code at a client facility
US7991746B2 (en) 2007-04-09 2011-08-02 Hewlett-Packard Development Company, L.P. Storage system and method
US20090055351A1 (en) 2007-08-24 2009-02-26 Microsoft Corporation Direct mass storage device file indexing
US20090089366A1 (en) 2007-09-27 2009-04-02 Kalman Csaba Toth Portable caching system
JP2011513804A (ja) 2008-01-02 2011-04-28 サンディスク アイエル リミテッド 直接ユーザアクセスを受ける記憶デバイス
US8027671B2 (en) 2008-01-14 2011-09-27 Penthera Partners, Inc. Delivering files to a mobile device
US8775550B2 (en) 2008-02-08 2014-07-08 Microsoft Corporation Caching HTTP request and response streams
US7996900B2 (en) 2008-03-14 2011-08-09 Microsoft Corporation Time travelling email messages after delivery
US20090327712A1 (en) 2008-06-29 2009-12-31 Amnon Sarig System and method for variable encryption
US20100030963A1 (en) 2008-08-04 2010-02-04 Sandisk Il Ltd. Managing storage of cached content
US20100121712A1 (en) 2008-11-12 2010-05-13 Yahoo! Inc. Diversity of ads displayed on a publisher page
US20100146187A1 (en) 2008-12-05 2010-06-10 Grimsrud Knut S Endurance management technique
US20100153474A1 (en) 2008-12-16 2010-06-17 Sandisk Il Ltd. Discardable files
WO2010074848A2 (en) * 2008-12-16 2010-07-01 Sandisk Il Ltd. Discardable files
US20100235329A1 (en) 2009-03-10 2010-09-16 Sandisk Il Ltd. System and method of embedding second content in first content
US20110010497A1 (en) 2009-07-09 2011-01-13 Sandisk Il Ltd. A storage device receiving commands and data regardless of a host
KR101638061B1 (ko) 2009-10-27 2016-07-08 삼성전자주식회사 플래시 메모리 시스템 및 그것의 플래시 조각 모음 방법
US9727571B2 (en) 2010-01-21 2017-08-08 Sandisk Il Ltd. Storage system supporting replacement of content in a storage device

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030115420A1 (en) * 2001-12-17 2003-06-19 Panagiotis Tsirigotis Methods and apparatus for implementing a chche replacement scheme
US20030166399A1 (en) * 2002-03-01 2003-09-04 Timo Tokkonen Prioritization of files in a memory
US20060168403A1 (en) * 2005-01-27 2006-07-27 Curt Kolovson Intelligent cache management

Also Published As

Publication number Publication date
US20120047331A1 (en) 2012-02-23
WO2012024113A2 (en) 2012-02-23
US8549229B2 (en) 2013-10-01
TW201220045A (en) 2012-05-16
CN103154911A (zh) 2013-06-12
CN103154911B (zh) 2016-02-17
KR20130113435A (ko) 2013-10-15
WO2012024113A3 (en) 2012-06-21
EP2606430A2 (en) 2013-06-26

Similar Documents

Publication Publication Date Title
KR101825770B1 (ko) 공유된 캐시 저장 시스템에서 파일의 업로드를 관리하기 위한 시스템 및 방법
KR101767710B1 (ko) 폐기가능 파일들의 카드-기반 관리
US9015209B2 (en) Download management of discardable files
US10474397B2 (en) Unified indirection in a multi-device hybrid storage unit
US20100153474A1 (en) Discardable files
US20090077327A1 (en) Method and apparatus for enabling a NAS system to utilize thin provisioning
JP5715964B2 (ja) 廃棄可能ファイルのダウンロード管理
US20160034198A1 (en) System and method for managing discardable objects
KR20110107800A (ko) 폐기 가능 파일
US20200159701A1 (en) Method and apparatus for managing storage space on storage device in an electronic apparatus by using context data and user profile data
US8205060B2 (en) Discardable files
KR20130051438A (ko) 엔드리스 메모리
US8375192B2 (en) Discardable files
US9020993B2 (en) Download management of discardable files
US20120173593A1 (en) System and Method for Managing Discardable Objects
US8849856B2 (en) Discardable files

Legal Events

Date Code Title Description
A201 Request for examination