CN103154911B - 用于管理在共享的高速缓存存储系统的文件的上传的系统和方法 - Google Patents

用于管理在共享的高速缓存存储系统的文件的上传的系统和方法 Download PDF

Info

Publication number
CN103154911B
CN103154911B CN201180048966.7A CN201180048966A CN103154911B CN 103154911 B CN103154911 B CN 103154911B CN 201180048966 A CN201180048966 A CN 201180048966A CN 103154911 B CN103154911 B CN 103154911B
Authority
CN
China
Prior art keywords
file
speed cache
external position
preparation
discardable
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201180048966.7A
Other languages
English (en)
Other versions
CN103154911A (zh
Inventor
J.R.梅扎
J.G.哈恩
H.赫顿
L.谢里
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Western data Israel Limited
Original Assignee
SanDisk IL Ltd
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 SanDisk IL Ltd filed Critical SanDisk IL Ltd
Publication of CN103154911A publication Critical patent/CN103154911A/zh
Application granted granted Critical
Publication of CN103154911B publication Critical patent/CN103154911B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了用于管理存储设备的系统和方法。通常,在存储设备操作性地耦合的主机中,其中,所述存储设备包括用于存储一个或多个可丢弃文件的高速缓存,识别要被上传到外部位置的文件。确定高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的文件,且在确定在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的文件的情况下,在所述高速缓存中存储所述文件,其中,所述预筹备准备了文件用于根据上传策略找机会上传这种文件。

Description

用于管理在共享的高速缓存存储系统的文件的上传的系统和方法
相关申请的交叉引用
该申请要求在2010年8月19日提交的美国临时专利申请no.61/401,841的权益,其在此被引用附于此。
技术领域
本发明总体地涉及存储设备,且更具体地涉及用于管理向外部位置上传在存储设备的高速缓存中预筹备的文件的方法和设备。
背景技术
发行商(例如服务和内容提供商)希望向用户的存储设备下载主动提供的(unsolicited)内容,以期用户将最终花钱消费主动提供的内容,由此增加他们的收入。在未征得用户同意的情况下在存储设备上存储主动提供的内容的发行商希望该用户会花钱消费这些内容,发行商的这种行为在媒体发布领域中被已知为“预测寄售(predictiveconsignment)”。但是,主动提供的内容可以仍然存储在存储设备中,而存储设备的用户不得知其存在或不想要消费它。在存储设备中存储主动提供的内容减少了在存储设备上的可用(即,空闲)用户存储空间,这是从用户的角度是不期望的。用户可能发现在存储设备中存在更少空间来用于用户自己的内容(例如,音乐文件),因为其他人(即,一些发行商)已经占据了存储设备上的部分存储空间,或用户可能必须通过删除主动提供的内容来收回(reclaim)如此占用的存储空间。
移动手持机用户趋于存储他们生成或获得的内容。用户通常在诸如他们维持账户的服务器上的个人站点的远程存储库中存储他们趋于与其他人共享的内容、或趋于存储用于未来使用的内容。为此,用户会试图上传他们在存储设备中存储的内容。但是,所述存储设备可能被发行商在其中存储的内容所占据。实际上,用户不会总是提前知道他们的存储空间限制,当他们试图上传他们的内容到远程、外部站点时他们也不知道网络业务负荷,直到他们面临问题。
因此,需要一种新技术,该新技术智能地管理手持存储器、以便当用户期望进行诸如向外部位置上传文件或预筹备用于上传到外部位置的文件的动作时、用户在无损失的情况下自由地使用他们的存储器、同时仍然使得内容所有者能够向手持机推送内容。
发明内容
本发明的实施例由权利要求限定,且该部分不应该被视为对那些权利要求的限制。作为简要介绍,在该文档中描述和在所附附图中图示的实施例通常涉及管理存储设备中的文件,该存储设备包括存储一个或多个可丢弃文件的高速缓存。上传管理器——其在一些实施方式中可以作为在存储设备操作性地所耦合的主机中存在的存储分配器的一部分——识别要上传到外部位置的文件,且确定在高速缓存中是否存在足够空闲空间以预筹备用于上传到外部位置的文件。该上传管理器可以在确定在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的所述文件的情况下,在所述高速缓存中存储所述文件,其中,所述预筹备准备文件用于根据上传策略找机会上传这种文件。该上传策略可以包括当与外部位置的通信是非高峰时上传预筹备的文件,或上传预筹备的文件以释放高速缓存中的空间。
附图说明
并入并组成本说明书的一部分的附图图示了各个实施例和本发明的方面,并与本说明书一起用于在不限制这些例子的情况下说明其原理。将理解,为了图示的简化和清楚,以下引用的图中所示的元件不一定被画成成比例的。而且,在适当考虑时,可以在附图之间重复使用附图标记来指示相同的、对应的或类似的元件。在附图中:
图1是根据示例实施例的存储系统的方框图。
图2是根据另一示例实施例的存储系统的方框图。
图3是根据示例实施例的存储分配器的方框图。
图4是根据示例实施例的用于管理文件的方法。
图5是根据示例实施例的用于管理在存储设备中的可丢弃文件的存储的方法。
图6是用于根据示例实施例的用于在FAT32结构的文件系统中标记一个或多个主动提供的文件的方法。
图7是与FAT32表相关联的示例目录区域。
图8是根据示例实施例的FAT32表。
图9是根据示例实施例的NTFS表。
图10是根据示例实施例的基于FAT的文件系统的逻辑映像。
图11示范了根据该公开的文件的存储管理方法。
图12图示了用于在包括被配置以存储一个或多个可丢弃文件的高速缓存的系统中管理向外部位置上传文件的方法的流程图。
具体实施方式
在此专利特许证申请和要求使得本领域技术人员能够制作和使用所要求保护的发明的背景下提供以下描述。对所描述和示出的实施例的各种修改和等同替换是可能的,且在此定义的各种通用原理可以被应用于这些和其他实施例。因此,所要求保护的发明要符合与在此公开的原理、特征和教导一致的最宽的范围。
近年来已经快速地增加了非易失性的存储设备的使用,因为它们便携且它们具有小的物理大小和大的存储容量。存储设备具有各种设计。一些存储设备被视为“嵌入式”,意味着它们不能且不意图由用户从它们所工作的主机设备上移除。其他存储设备是可移除的,这意味着用户可以从一个主机设备(例如,从数码相机)移除它们到另一设备,或用另一个存储设备来替换一个存储设备。例如,在一种安装中,可以在主机设备内部(在其外壳内)可移除地安装存储设备,很像电池一样。在另一种安装中,可以经由专用插槽外部地、可移除地插入可移除存储设备。
在存储设备中存储的数字内容可以来源于存储设备的主机。例如,数码相机、一种示例的主机,捕获图像且将它们翻译为对应的数字数据。然后,数据相机在与其一起操作的存储设备中存储数字数据。在存储设备中存储的数字内容还可以来源于远程源:其可以例如通过数据网络(例如,因特网)或通信网络(例如,蜂窝电话网络)向存储设备的主机发送,且然后由该主机下载到存储设备。远程源可以是例如服务提供者或内容提供者。服务提供者和内容提供者以下统称为“发行商(publishers)”。
随着移动手持机内的存储设备在尺寸和容量上增长,出现了活跃的用于内容获取和消费的新场景。通常,可以使用手持机来消费从操作员控制的服务器诸如苹果(Apple)的iTunes服务的市场应用下载和自诸如SanDisk的slotMedia卡的源的侧装载(side-loaded)的电影和音乐。但是,在所有这些应用中,用户必须主动搜寻他想要消费的内容,指示并授权该内容的获取,获取该内容,然后消费它。这减少了内容所有者提供用于瞬时消费的内容的能力、和用户立即看到他获取的东西而不用等待其下载的能力。
已围绕向用户预先载入内容创建了若干产品开端,但是他们都有一个共同的缺陷:用户必须牺牲其自己的存储容量来存储内容,但直至在购买它之后才能访问该内容。必须购买该容量的用户通常不想看到该容量的很大部分被分配给他们不能实际使用的内容。
存储设备的用户可以自愿通过从发行商请求媒体内容或广告来下载媒体内容和广告。但是,有时,想要提高他们收入的发行商在不征求用户的许可的情况下,向用户发送内容,且有时甚至用户不知道这种内容已被下载到他们的存储设备了。发行商在未得到用户同意的情况下向用户发送的内容在此被称为“主动提供的内容”。通常,主动提供的内容意图由用户在支付之后、或在承诺给发行商支付费用之后消费。
如上所述,在与存储设备相关联的文件系统的结构中将存储设备中存储的文件或要存储的文件标记为不可丢弃或可丢弃的。被标记为不可丢弃或可丢弃的每个文件与诸如优先级的丢弃标准相关。通常,在使用可丢弃文件的系统中,新发行商的文件(即,主动提供的发文件)只有在存储设备中存储其不使预留用于用户文件的存储使用安全余量变窄超过一所期望余量时,才被允许在存储设备中存储。另一方面,用户文件即使在它们的存储使得存储使用安全余量变窄超过期望宽度的情况下也被允许存储在存储设备中。但是,在这种情况下,通过从存储设备移除一个或多个可丢弃文件来恢复存储安全余量的期望宽度。如果可丢弃文件的丢弃优先级等于或高于(或,低于,如在此描述的)预定丢弃阈值,则将该可丢弃文件从存储设备移除。
为了解决用于上传到外部位置(诸如服务器)的文件的预筹备、主动提供的内容的存储、和相关问题,用户文件被给定了超出其他文件的存储优先级、且存储使用安全余量被维持以保证该优先级。“用户文件”是存储设备的用户自愿存储或已经同意其在存储设备中存储的文件。例如,用户向她/他的存储设备下载的音乐文件被视为用户文件。被用户请求或同意存储的用户文件被视为“索求的”文件。
“其他文件”可以是“预筹备的文件”,或已知为“发行商文件”和“主动提供的文件”的文件。“预筹备的文件”是在存储设备中存储的直到可以基于上传策略找机会向远程位置上传的文件。通常,在将预筹备的文件上传到远程位置之前不会从存储设备移除该预筹备的文件。可以在存储文件系统的结构中将预筹备的文件标记为“可丢弃的”。
“发行商文件”是在用户未请求它或未意识到它(至少一段时间还没有)的情形下由发行商在存储设备中存储的文件。用户可能不想要使用诸如发行商文件的主动提供的文件。未使用的主动提供的文件趋于消费在用户的存储设备上的珍贵存储空间。因此,根据在此公开的原理,这种文件只有存储它们不致缩小存储使用安全余量才被允许存储在存储设备中。通过维持保留用于未来的用户的文件的空闲存储空间(即,存储使用安全余量)来向用户文件呈现存储优先级。必须维持存储使用安全余量以便保证无论何时需要或期望时都可以在存储设备中存储用户文件。
如果出于某原因,存储使用安全余量变得比期望的窄,则将从存储设备移除(即删除)一个或多个主动提供的文件以便恢复存储使用安全余量。维持存储使用安全余量保证在附加的用户文件被下载到存储设备的情况下用于这种文件的存储空间。为此,在存储文件系统的结构中将主动提供的文件标记为“可丢弃的”,且如果需要,稍后将其移除来至少收回维持存储使用安全余量所需的空闲存储空间。
存储设备的已知为高速缓存的存储区域用于存储诸如预筹备的文件或发行商文件的文件、或所谓可丢弃的文件,且其还包括存储设备的空闲存储空间。高速缓存中的可丢弃文件可以经由存储设备中的替换数据结构或文件系统来管理,在该替换数据结构或文件系统中,它们被标记为可丢弃文件。
因为用户使用各种用户文件、预筹备的文件和主动提供的文件的可能性可能彼此不同,因此基于例如存储设备的用户是否自愿存储文件、文件是否正预筹备在高速缓存中用于找机会上传到远程位置、使用该文件的可能性、与使用文件相关联的可能的收益、文件的大小、文件的类型、文件的位置、文件的年代等,向每个文件(或更具体地每个可丢弃的文件)预先分配诸如丢弃优先等级的丢弃标准。例如,关于预筹备的文件,丢弃优先等级可以被分配给预筹备的文件,以便预筹备的文件具有比主动提供的文件更大的优先级、但比用户文件更低的优先级。因此,主动提供的文件可以在预筹备的文件之前从存储设备移除,预筹备的文件可以在用户文件之前从存储设备移除。
关于主动提供的文件,可以用收益的潜在可能来确定丢弃优先等级。以此方式,电影宣传片或广告将具有比实际电影更高的丢弃优先级,因为用户通常不会为宣传片和广告付费。根据另一例子,最可能被用户使用的一个或多个可丢弃文件将被分配最低丢弃优先级,这意味着这种文件将是从存储设备移除的最后的(一个或多个)文件。换句话说,可丢弃文件的使用概率越高,被分配给该文件的丢弃优先等级越低。如果即使已移除了一个或多个可丢弃文件,期望的存储使用安全余量也未完全恢复,则将从存储设备移除另外的可丢弃文件,直到恢复期望的存储使用安全余量。
简言之,诸如文件系统的数据结构实现用于在计算机系统中存储和组织各种文件的方法,无论该计算机系统为移动手持机设备、桌面型计算机、服务器还是其他计算平台。文件系统包括针对存储、层次地组织、操纵、导航、访问和提取数据而实施的抽象数据类型和元数据的集合。抽象的数据类型和元数据形成“目录树”,通过其可以访问、操纵和启动文件。“目录树”通常包括根目录和可选的子目录。目录树被存储在文件系统中作为一个或多个“目录文件”。在文件系统中包括的元数据和目录文件的集合在此被称为“文件系统结构”。因此,文件系统包括有助于访问、操纵、更新、删除和启动文件的文件系统结构。
文件分配表(“FAT”)是示例的文件系统架构。FAT文件系统与包括DR-DOS、OpenDOS、MS-DOS、Linux,、Windows、WindowsMobile、WindowsCE、SymbianOS、PalmOS、uCLinx、TinyOS、NutOS、pSOS、VxWorks、BSDUnix、NucleusOS、ThreadX(FileX)、Android、MacOS、BlackBerryOS、iOS等的各种操作系统一起使用。FAT结构的文件系统使用集中了存储关于哪些存储区域是空闲或被分配的和每个文件被存储在存储设备上哪里的信息的表。为了限制该表的大小,按称为“簇”的连续扇区的组向文件分配存储空间。由于存储设备已经演化,因此簇的最大数量已经增加且用于标识簇的位的数量已经增长了。FAT格式的版本来源于表位的数量:FAT12使用每个条目12位;FAT16使用16位,且FAT32使用32位。
另一文件系统架构已知为新技术文件系统(“NTFS”)。目前,NTFS是WindowsNT、包括其稍后的版本Windows2000、WindowsXP、WindowsServer2003、WindowsServer2008、WindowsVista和Windows7的标准文件系统。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。用户区域170是其中存储了用户文件的存储区域110内的存储空间。可丢弃文件区域180是其中存储了预筹备的文件或发行商文件的存储区域110内的存储空间。空闲存储空间190是存储区域110内的空的存储空间。可以使用空闲的存储空间190来保持用户文件、预筹备的文件或发行商文件。共同地,可丢弃文件区域180和空闲存储空间190占据存储区域110的我们在此称为高速缓存185的一部分。当在空闲存储空间190中存储用户文件时,将保存该用户文件的存储空间从空闲存储空间190中减去并添加到用户区域170。类似地,当在空闲存储空间190中存储预筹备的文件或发行商文件时,将保存预筹备的文件或发行商文件的存储空间从空闲存储空间190中减去并添加到可丢弃文件区域180。如果从存储区域110移除(即、删除)用户文件、预筹备的文件或发行商文件,则将收回的存储空间添加到(其返回到)空闲存储空间190。
如果空闲存储空间190的大小允许,则存储设备100的用户可以从主机140下载用户文件到存储区域110。下载的用户文件将被存储在空闲存储空间190中,且如以上所述,保存该文件的存储空间将从空闲的存储空间190减去且被添加到用户区域170。如上所述,用户文件具有高于其他(例如,发行商)文件的优先级,且为了保证该优先级,设置期望的存储使用安全余量,且如果需要,以以下描述的方式恢复期望的存储使用安全余量。
主机140包括存储分配器144来有助于恢复空闲存储空间190。存储分配器144可以是硬件、固件、软件或其组合。通常,存储分配器144确定向主机140传送的或在主机140上已经存在的文件(例如文件142)是否是用户文件、预筹备的文件或发行商文件之一,且然后相应地标记该文件(即,作为不可丢弃的文件或作为可丢弃的文件)。
如果存储分配器144确定文件(例如,文件142)是不可丢弃的,例如,因为该文件是用户文件,则存储分配器144发送该文件以用于以常规的方式存储在存储区域110中。如上所述,将把存储区域100内保存不可丢弃文件的存储空间添加到用户区域170或是用户区域170的一部分。但是,如果存储分配器144确定该文件是可丢弃的(例如因为其是预筹备的文件或发行商文件),则存储分配器144标记该文件作为可丢弃的。应理解,在一些实施方式中,为了将文件标记为可丢弃的,存储分配器144标记在文件系统160中的文件系统结构以指示该文件是可丢弃文件。在其他实施方式中,为了标记该文件为可丢弃的,存储分配器144将该文件本身标记为可丢弃文件。为了存储被标记为可丢弃文件的发行商文件,如果空闲存储空间190大于期望的存储使用安全余量,则存储分配器144在空闲存储空间190中存储标记的可丢弃文件。但是,如上所述,将保存可丢弃文件的空闲存储空间190内的存储空间从空闲存储空间190中减去(即,减小空闲存储空间),且添加至可丢弃文件区域180。
如上所述,发行商文件可以被用户使用的可能性在各个发行商文件之间可不同,这使得具有最小使用概率的发行商文件成为从存储区域110移除的第一候选。因此,除了将文件标记为不可丢弃的或可丢弃的以外,存储分配器144还在可丢弃文件被存储在存储区域110中之前、同时或之后给每个可丢弃文件分配丢弃优先等级。
通过标记文件为不可丢弃的或为可丢弃的、由存储分配器144分配丢弃优先等级且通过使用存储设备100的文件系统160(或其映像),存储分配器144“知晓”在存储区域110中和高速缓存185中的用户文件、预筹备的文件和发行商文件的数量以及其大小和在存储区域110和高速缓存185内的逻辑位置。知道该信息(即,文件的数量、大小和位置),且具体地基于一个或多个标记的文件,存储分配器144管理存储区域110和索求的和主动提供的文件在存储区域110中的存储。管理存储区域110或管理在存储区域110中的文件的存储可以包括例如通过选择性地移除被标记为可丢弃的一个或多个文件、预筹备文件用于找机会上传到远程位置、通过移除被标记为可丢弃的所有文件来释放存储区域、且将文件的簇重新映射到更低性能的存储模块来恢复存储使用安全余量。管理存储区域110或在此存储的文件可以包括管理存储区域110或其中存储的文件的其他、附加的、或替换的方面。
存储分配器144藉由向每个可丢弃文件分配的丢弃级别还知道可以或应该丢弃(即从存储区域110删除或移除)可丢弃文件以便恢复为未来的用户文件而原始预留的空闲存储空间(即,恢复期望的存储使用安全余量)的顺序。因此,如果用户想要在存储区域110中存储新用户文件,但是没有足够的空闲存储空间来容纳该用户文件(这意味着存储使用安全余量比期望的窄),存储分配器144使用被分配给可丢弃文件的丢弃优先等级来一个接一个迭代地删除可丢弃文件,来收回更多的空闲存储空间(即,扩展空闲的存储空间190),直到期望的存储使用安全余量被完全恢复。如上所述,完全恢复的存储使用安全余量高概率地保证足够的空闲存储空间被预留用于未来的用户文件。仅响应于接收到存储新用户文件的请求时,才从存储设备100移除或删除可丢弃文件,这是因为考虑用户可能有时想要使用存储的可丢弃文件,且因此,只有新用户文件需要容纳该文件的存储空间时,才从存储设备移除可丢弃文件。存储分配器144可以被嵌入或并入到主机140中,或其可以驻留在主机140和存储设备100的外部(被示出为虚线框144')。
存储分配器144具有存储设备100的、或与其相关联的文件系统的代表性映像。存储分配器144使用存储设备的文件系统映像来将文件标记为不可丢弃的或为可丢弃的,且向每个可丢弃文件分配丢弃级别。再次,文件系统是用于管理文件的一个数据结构,因此映像应该是该数据结构的映像,而不管它可能具有何种形式。在该例子中,文件系统包括FAT,且在该情况下,在与该文件相关的FAT条目的未使用部分中,通过设置一个或多个未使用的位来进行该标记。因为不同的文件系统具有不同的结构,标记文件(即为不可丢弃或可丢弃的)且分配丢弃级别适用于使用的文件系统结构,如在图6到10中所详述以及结合这些图所描述的。
图2是根据另一示例实施例的便携存储设备200的方框图。存储控制器220类似于存储控制器120一样运作,且存储分配器244类似于存储分配器144一样运作。存储分配器244可以是硬件、固件、软件或其任意组合。存储分配器244内部地与存储控制器220合作。无论何时存储控制器220从主机240接收在存储区域210中存储文件的存储请求,该请求包括该文件是否是可丢弃文件的指示,存储控制器220都通知存储分配器244该存储请求和该文件是否是可丢弃的。然后,该存储分配器244在与存储设备200相关的文件系统的结构中标记文件为不可丢弃的或可丢弃的。
通常,在主机240上运行的应用确定文件是可丢弃文件,且向存储控制器220发送指示该文件是可丢弃文件的标签或其他指示。在主机240上运行的应用发送标记或其他指示作为用于请求在存储设备上存储文件的存储协议的部分。这种存储协议的例子包括POSIX文件系统功能或java.io类树的使用。
如果存储分配器244确定该新文件是可丢弃的,存储分配器244根据文件的使用概率向新文件分配丢弃优先等级。然后,存储分配器244评估空闲存储空间290的当前大小,且决定是否应该从存储区域210移除(即,删除或上传到外部位置)一个或多个可丢弃文件以便为新文件制造空间。如果应该从存储设备移除可丢弃的一个文件或多个文件,则存储分配器244决定哪个(些)文件是用于移除的当前候选文件。然后,存储分配器244通知存储控制器220应该从存储区域210移除的可丢弃文件,且响应于该通知,存储控制器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可以与存储分配器300是一体的,如图3所示。
处理器320进一步被配置或适用于向存储设备发送标记的文件。标记该文件为可丢弃的包括向该文件分配丢弃优先等级。如果由存储设备使用的文件系统是基于FAT的,处理器320通过在对应于标记的文件的FAT中向m个最高(即,最高有效)位(例如,m=4)设置对应的值,向标记的文件分配丢弃优先等级。设置给在FAT条目中的最高有效位的对应值、或设置给NTFS目录条目的值可以是文件的属性,或可以与文件的属性相关。“属性”意味着在FAT表或NTFS表的头部中的元数据标签或某种数据结构,该FAT表或NTFS表包含关于该表内存储的内容的类型的信息。“广告”、“奖励内容”和“推广(空闲)内容”是可以在FAT表或在NTFS表中存储的示例类型的内容。设置丢弃级别的替换标准是例如最后访问的文件、文件大小、文件类型等。
专用于标记文件的FAT32条目的最高位的数量m可以是四个或少于四个,这是因为不使用这些位。另外,所使用的位越多,则可以使用的丢弃优先等级越多。例如,使用三个位(即,m=3)提供八个(23=8)丢弃优先等级且使用四个位(即,m=4)提供十六个(24=16)丢弃优先等级(即,包括被分配给不可丢弃的文件的丢弃优先等级“0”)。换句话说,如果标记的文件是不可丢弃的,所述处理器将m个最高位的值设置为0,或如果标记的文件是可丢弃的,m个最高位的值则设置为在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基于该标记的文件、且可选地基于已经被标记的一个或多个文件来(通过与存储控制器120通信)管理存储区域110或在存储区域110中存储的文件。
图5是根据一个示例实施例的用于管理在存储设备中的可丢弃文件的存储的方法。将与图1相关联地描述图5。新文件是用于在存储设备100存储的候选者。在知晓存储设备100的文件系统160的当前映像的情况下,存储分配器144在步骤510评估空闲存储空间190的当前大小“f”来查看其当前大小是f的空闲存储空间190是否能够容纳该新文件(即,该作为用于存储的候选者的文件)。通常,存储分配器144取决于新文件是用户文件还是发行商文件来处理该新文件。因此,存储分配器144首先确定该新文件是用户文件还是发行商文件。
在步骤520,存储分配器144检查空闲存储空间190是否能够容纳该新用户文件。如果空闲存储空间190能够容纳该新用户文件(在步骤520中示出为“是”),存储分配器144在步骤560中在空闲存储空间190中存储该新用户文件,而不考虑期望的存储使用安全余量是否由于存储新用户文件而被缩小。如果期望的存储使用安全余量在存储分配器144在空闲存储空间190中存储新用户文件之后变窄(即,相对于期望的存储使用安全余量),则存储分配器144不针对新用户文件的存储采取进一步的动作。
但是,如果期望的存储使用安全余量在存储分配器144在空闲存储空间190中存储新用户文件之后变窄,步骤550包括附加的步骤,其中,存储分配器144确定哪个所存储的可丢弃文件应该首先被删除,哪个可丢弃文件应该其次被删除,等等,以便维持期望的存储使用安全余量。存储分配器144基于存储分配器144分配给所存储的可丢弃文件的丢弃级别来确定哪个可丢弃文件应该首先被移除,哪个可丢弃文件应该其次被移除,等等。
如果在步骤520存储分配器144确定空闲存储空间190不能容纳该新用户文件(在步骤520中示出为“否”),则存储分配器144在步骤530中确定空闲存储空间190和由可丢弃文件消耗的存储空间当组合时是否足够用于存储该新用户文件。如果组合的存储空间不够(在步骤530中示出为“否”),这意味着不管将删除多少可丢弃文件,新用户文件由于其较大的大小都不能被存储在“非用户的”储存区域。如果组合的存储空间足够(在步骤530中示出为“是”),存储分配器144在步骤540中在所存储的可丢弃文件中搜索哪个可丢弃文件可以被删除以便释放用于新用户文件的足够存储空间。存储分配器144通过使用存储设备100的文件系统来搜索这些可丢弃文件,因为如上所述的,存储分配器144在存储设备的文件系统中标记文件为不可丢弃的或可丢弃的。另外,由存储分配器144向标记的文件分配的丢弃级别也被嵌入到存储设备的文件系统中,以便每个丢弃级别与对应的标记的文件相关联。
在找到应该首先被丢弃的可丢弃文件(“DF”)(该文件以下被称为“DFl”)时,存储分配器144删除文件DF1以便添加或返回其存储空间(该存储空间以下被称为“SPl”)到存储空间190。
然后,在步骤550中,存储分配器144检查扩展的空闲存储空间190(即,空闲存储空间190加上最后返回的存储空间,或f+SP1)是否能够容纳该新用户文件。如果扩展的空闲存储空间190(即,f+SPl)仍然不能容纳新用户文件(在步骤550中示出为“否”),则存储分配器144迭代地重复步骤550(该迭代在555处示出)以便返回附加的存储空间到空闲存储空间190(即,通过找到并删除应该被删除的下一可丢弃文件)。
在找到具有次高的丢弃优先级的下一可丢弃文件(该下一可丢弃文件以下被称为“DF2”)时,存储分配器144移除文件DF2以便释放并添加附加的存储空间(该附加的存储空间以下称为“SP2”)来释放存储空间190。然后,在步骤550中,存储分配器144再次检查扩展的空闲存储空间190(即,空闲存储空间190加上两个最后释放的存储空间,或f+SPl+SP2)是否能够容纳该新文件。如果扩展空闲存储空间190(即f+SPl+SP2)仍然不能容纳该新文件(在步骤550中示出为“N”),则存储分配器144重复步骤540再一次以便找到应该被移除的下一可丢弃文件。存储分配器144迭代步骤540和550直到累积的空闲存储空间190能够容纳该新用户文件(在步骤550中示出为“是”)。然后,在步骤560中,存储分配器144在存储区域110中存储该新用户文件。
如上所述,如果实际的存储使用安全余量在存储分配器144在空闲存储空间190中存储新用户文件之后变得比期望的存储使用安全余量更小,步骤560可以包括附加的步骤,其中,存储分配器144确定哪个所存储的可丢弃文件应该首先被移除,哪个可丢弃文件应该其次被移除,等等,以便恢复期望的存储使用安全余量。
如果新文件是发行商文件,只有空闲存储空间190能够容纳该新发行商文件而不缩窄期望的存储使用安全余量时,存储分配器144才在存储区域1中存储(在步骤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的用户将使用诸如主动提供的文件的可丢弃文件的概率(likelihood)水平。使用该文件的概率的评估可以以寄售文件领域的技术人员已知的各种方式来实现。例如,使用该文件的概率的评估可以基于监视使用存储设备的人的位置,和/或所监视的用户的先前体验和偏好。使用该文件的概率的评估还可以基于例如在FAT表或NTFS表内存储的内容的类型(例如,“广告内容”,“奖励内容”,“促销(免费)内容”等)。存储分配器144可以使用替换的或附加的标准来评估该文件将被使用的概率。例如,它可以使用文件的属性或特性,这可以是、或关联于最后访问的文件、文件大小、文件类型等。
在存储分配器144评估用户将使用可丢弃文件的概率的级别之后,存储分配器144在步骤630中分配与该可丢弃文件的使用的评估的概率级别对应的丢弃优先等级。可丢弃文件由存储设备100的用户使用的概率越大,丢弃级别越低。
如果m等于四位,这意味着丢弃范围提供从1(即0001)到15(即1111的15个丢弃级别。也就是说,向每个不可丢弃的文件分配丢弃级别0,向具有最低丢弃优先级的可丢弃文件分配优先等级1,且向具有最高丢弃优先级的可丢弃文件分配丢弃级别15。在存储分配器144向可丢弃文件分配对应的丢弃级别之后,存储分配器144在步骤640中向与可丢弃文件相关联的簇的四个最高位分配在1和15之间的对应值。如果可丢弃文件具有与其相关联的两个或多个簇,在每个簇中的四个最高位被设置为相同值。
在步骤650中,检查可丢弃文件是否是需要评估的最后的文件。如果可丢弃文件不是需要评估的最后的文件(在步骤650中示出为“否”),以上述方式评估另一文件。如果可丢弃文件是需要评估的最后的文件(在步骤650中示出为“是”),可丢弃文件被发送到存储设备,其中在步骤640中设置了m位的每个的值。
图7是与FAT32表相关联的示例目录区域700。目录表700仅是用于图示的部分表,且如此,表700并未示出FAT目录条目的所有字段。目录区域700保存在相关文件系统中存储的文件的细节,诸如文件名称、文件大小以及每个文件在相关存储空间中何处开始。文件的细节被保存在以下字段中。字段710保存在相关文件系统中存储的文件的盘操作系统(“DOS”)文件名,字段720保存文件的扩展名,字段730保存文件的各种属性,字段740保存文件的第一簇号(“FCN”)的高16位字(bitword),字段750保存文件的第一簇号(“FCN”)的低部分,且字段760保存文件的大小。每个FCN号指示文件可以从哪里被找到的第一逻辑簇。
目录区域700的第一条目保持用于称为“REALFILE”的示例文件的信息(在770处示出)。REALFILE770具有文件扩展名“DAT”,其FCN是“00000002”(在755处示出)且其大小是“000024E4”。在表700中的数字以十六进制值示出。作为标准的一部分,属性值“00”(在780处示出)和“20”(未在图7中示出)指的是“常规”文件,而属性值“02”指的是在文件系统中隐藏的文件。文件名“\xE5Consign”指示删除的文件,而“\xE5”意味着文件名的第一字节的值在十六进制中是E5。通过示例,FCN号00000002(在755处示出)指定文件REALFILE的第一簇。
图8是根据示例实施例的示例性部分FAT32表800。FAT32表800被示出为双字(“DWORD”)阵列,且值是十六进制的值。参考数字810指示保存FAT32表800的设备的类型,其中“F8”指的是硬盘。FAT32表800包括被指定为簇#1(在820处示出)、簇#2(在825处示出),...、和簇#23(在830处示出)的23个簇。图8将与图7相关联地描述。FAT32表800中的簇可以是文件的第一簇,或其可以指向文件的下一链接的簇,或其可以是文件末尾(“EOF”)指示。
再次参考目录区域700,文件REALFILE(在770处示出)的第一FCN是“00000002”(在755处示出),其指向在图8的表800中的簇#2处。如图8所示,簇#2的值(即,值“0000003”)指向(在840处示出)簇#3处,其是下一文件的簇。类似地,簇#3的值(即“00000004”)指向簇#4处,其是下一文件的簇。簇#4具有值“0FFFFFFF”(“F”是表示十进制值“15”的十六进制数字),其中“0FFFFFFF”(在850处示出)表示文件的EOF指示,且零值(在860处示出)表示丢弃级别0。因此,文件REALFILE与三个簇(即,簇#2、簇#3、和簇#4)相关联。
如上所述,丢弃级别0被分配给不可丢弃文件。注意,具体文件的每个簇的最高有效十六进制数字被设置为所分配给该文件的相同丢弃优先等级。例如,文件REALFILE已经被分配了丢弃级别“0”,且因此,簇#2、#3和#4的最高有效十六进制数字具有该值(即,值“0”,“0”值被加了下划线)。根据另一例子,其FCN是“00000005”的文件“E5Consign”(如在图7中示出的)被分配了丢弃优先等级“1”。因此,属于该文件的簇#5到12的每个的最高有效十六进制数字具有值“1”(例如在870处示出)。换句话说,根据本公开,最高有效十六进制数字(或,等同地,与具体可丢弃文件相关联的簇的四个最高位)被设置为与所分配给该具体文件的丢弃优先等级对应的相同值。如上所述,用于指示丢弃优先等级的最高位的数量m可以不同于四(即,m≤4)。
图9是根据示例实施例的NTFS表900。NTFS表900保存文件的细节,诸如文件名称、文件大小等。NTFS表900包括用于保存根据“正常”数据流而改变的文件的“常规”数据(例如数据920)的数据字段910。根据本公开,NTFS表900还包括“丢弃信息”字段915用于保存每个评估的文件的丢弃信息(例如,丢弃信息930)。丢弃信息字段915还可以包括除了丢弃优先等级以外的信息。例如,丢弃信息字段915可以包括关于供应该文件的服务器的信息和其后文件必须被丢弃的过期时间。不像基于FAT的文件系统,在基于NTFS的文件系统中,所分配给可丢弃文件的丢弃值不限于由一组位规定的最大值。这意味着丢弃值的范围可以自由地选择。例如,丢弃值的范围可以从1到25。NTFS是示例的非FAT文件系统。通常,可以将对应的丢弃值设置至对应于标记的文件的基于非FAT的文件系统条目中的数据字段。
图10是根据示例实施例的存储设备的文件系统1000的逻辑布置。存储分配器(例如,图1的存储分配器144)可以保存与其一起操作的存储设备的文件系统1000或文件系统1000的映像,或者存储分配器可以具有对文件系统1000的访问。
文件系统1000包括引导部分1010、与文件系统1000相关联的FAT1020、目录表1030、文件区域1040和可丢弃文件区域1050。FAT1020包括可丢弃文件分配区域1025,可丢弃文件分配区域1025包含可丢弃文件的丢弃优先等级。目录表1030包括用于访问在存储设备中存储的任何文件(即,可丢弃文件和/或不可丢弃文件)的访问信息。文件区域1040包含不可丢弃文件。索引和数据库区域1045保存可丢弃文件的索引、以及还保存与可丢弃文件相关联的元数据。在索引和数据库区域1045中保存的索引和元数据用于计算丢弃级别,但是在实际的丢弃处理期间不需要它们。可丢弃文件区域1050保存可丢弃文件。
图11示范了根据本公开的文件管理方法。图11将与图1相关联地描述。假设,在时间T0处,两个用户文件(即,文件“Fl”和“F2”)初始地存储在存储区域110中。因为文件“Fl”和“F2”是用户文件,因此它们被存储在用户区域170中,且由存储分配器144向它们分配的丢弃级别是零。因为存储区域110的总存储容量是T(在1110处示出),且文件Fl和F2被存储在存储设备100中,剩余空闲存储空间190(见图1)的大小是f(在1120处示出)。假设发行商想要在存储区域110中存储三个主动提供的文件。如上所述,存储分配器14评估在存储设备100中的空闲存储空间190的大小(或在1120处的f)以便确定在存储区域110中存储发行商的三个主动提供的文件是否将不会缩窄为未来的用户文件预留的期望存储使用安全余量(在1130处示出)。如果存储发行商的三个主动提供的文件将缩窄存储使用安全余量1130(即,期望的存储使用安全余量),则存储分配器144将抑制存储这些文件。
在该例子中,存储分配器144确定发行商的三个主动提供的文件可以被存储在存储区域110中而不减少存储使用安全余量1130。因此,在时间T1处,存储分配器144允许存储控制器120在存储区域1中存储发行商的三个主动提供的文件。这三个发行商的主动提供的文件被指定为“Pl”,“P2”,和“P3”。存储分配器144还确定文件Pl、P2和P3将被存储设备100的用户使用的概率,且向这些文件中的每个分配对应的丢弃级别。然后,存储分配器144在FAT表,如在图8中示范的,或在NTFS表中,如在图9中示范的,存储所分配给文件的丢弃级别。
在时间T2处,存储设备100的用户想要在存储区域110中存储另外两个文件(即,文件“F3”和“F4”)。存储分配器144重新评估在存储设备中的空闲存储空间190的大小(或在1120处的f),以便确定在存储区域110中是否存在足够的存储空间来存储这些另外的文件(即,文件F3和F4)。在该例子中,存储分配器144确定当前的空闲存储空间能够容纳文件F3和F4。因此,在时间T2处,存储分配器144允许存储控制器120在存储区域110中存储文件F3和F4。
因为文件F3和F4是用户文件,因此文件F3和F4将由存储设备100的用户使用的概率是不相关的,这是因为用户文件具有比发行商文件高的存储优先级,而不管用户使用文件F3和F4多少次,甚至即使用户从未使用文件F3和F4。因此,存储分配器144向文件F3和F4分配丢弃级别“0”,且在FAT表,如在图8中示范的,或在NTFS表中,如在图9中示范的,存储所分配的丢弃级别。
在时间T3处,存储设备100的用户想要在存储区域110中存储另外一个文件(即,文件“F5”)。存储分配器144重新评估在存储设备100中的空闲存储卡190的大小(或在1120处的f),以便确定在存储区域110中是否存在足够的存储空间来存储该另一文件(即,文件F5)。
在该例子中,存储分配器144确定当前的空闲存储空间能够容纳文件F5。因此,在时间T3处,存储分配器144允许存储控制器120在存储区域110中存储文件F5。如图11所示,存储用户文件F5缩小了存储使用安全余量。也就是说,在文件F1到F5和P1到P3被存储在存储区域110中之后剩余的在存储区域110中的空闲存储空间f小于存储使用安全余量1130。因此,存储分配器144通过移除发行商的文件(即,Pl、P2和P3)之一来复原(reinstate)或恢复存储使用安全余量。通过移除(即删除或上传到外部位置)诸如发行商文件的一个或多个可丢弃文件来复原或恢复存储使用安全余量是因为,如上所述,用户文件具有最大的存储优先级。
如上所述,由存储分配器144基于存储分配器144分配给每个存储的可丢弃文件的丢弃优先等级,来作出应该从存储区域110移除哪些可丢弃文件的决定。
返回到图11,假设在存储的发行商文件P1到P3中,发行商文件P3被分配了最高丢弃优先级(例如,13)。因此,在时间T4处,从存储区域1移除文件P3,因此扩大空闲存储空间190。因为在时间T4处的空闲存储空间190的大小(在1120处的f)大于存储使用安全余量1130,因此不需要移除任何更多的发行商文件。
存储设备100的用户可能想要移除一个或多个用户文件。在时间T5处,用户移除了他的两个文件(即,文件F4和F5),因此进一步扩大空闲存储空间190。文件F4和F5的移除与空闲存储空间190的大小或存储使用安全余量无关,这是因为如在此陈述的,重新获得空闲存储空间或恢复存储使用安全余量是通过移除需要的数量的可丢弃文件来进行的。假设,发行商想要在存储区域110中存储另一主动提供的文件。如上所述,存储分配器144评估空闲存储空间190的大小(在1120处的f)以便确定在存储区域110中存储发行商的主动提供的文件是否将不缩小存储使用安全余量1130。如果存储发行商的新主动提供的文件将缩窄存储使用安全余量1130,则存储分配器144将抑制存储该文件。
在该例子中,存储分配器144确定发行商的新主动提供的文件(即,文件“P4”)可以被存储在存储区域110中而不减少存储使用安全余量1130。因此,在时间T6处,存储分配器144允许存储控制器120在存储区域110中存储发行商的文件P4。存储分配器144还确定文件P4将被存储设备100的用户使用的概率,并向该文件分配对应的丢弃级别。然后,存储分配器144在FAT表(如在图8中示范的)或在NTFS表中(如在图9中示范的)存储所分配给文件P4的丢弃级别。存储新发行商的文件和新用户文件和移除所存储的文件的处理可以继续,同时每次向存储设备110添加新文件时,存储分配器144即评估空闲存储空间190的当前大小,并确定必须从存储区域110移除哪个可丢弃文件或哪些可丢弃文件(如果移除的话)。
假设向可丢弃文件分配丢弃级别可以基于例如是否预筹备文件以找机会上传到远程位置、用户体验或偏好、基于用户的全球定位系统(“GPS”)位置和/或其他标准。例如,如果存储设备的用户好像(基于先前的用户体验)喜欢特定类型的音乐,则如果发行商的文件包含用户最喜欢的音乐类型之一的音乐,存储分配器可以向该文件分配相对低的丢弃优先等级(例如,在1到15的范围内的3)。但是,如果用户(即,基于先前用户体验)不喜欢发行商的音乐,存储分配器可以向相关发行商的文件分配较高的丢弃优先等级(例如,在1到15的范围内的12)。用于向可丢弃文件分配丢弃级别的标准可以包括文件的预期使用、与使用该文件相关联的预期收益、文件的类型、文件的大小、文件在存储设备中的位置、文件的年代和在此指定的其他标准或参数。其他标准、无论单独或结合在此描述的任意标准,可以类似地使用,且可以使用一个或多个标准来进行丢弃级别的分配。另外,可以使用不同标准来向不同可丢弃文件分配丢弃级别。
在另一例子中,如果发行商想要向用户发送与位置有关的广告(即,与具体位置内呈现的产品或服务相关的广告),则存储分配器可以向发行商的广告分配根据用户的改变的位置而改变的丢弃优先等级。也就是说,用户离具体位置越远,丢弃级别将越高,这是因为依据变得远离该具体位置,可假设用户对于消费在该具体位置处呈现的产品或服务不感兴趣。
上传管理
在上传管理中使用用于管理数据的智能高速缓存方法,如以下更详细描述的。用于管理文件向外部位置的上传和用于在系统中预筹备用于上传文件的智能高速缓存技术包括在高速缓存中存储一个或多个主动提供的文件和一个或多个预筹备的文件。通常,在一些实施方式中可以是上述存储分配器的一部分的上传管理器确定是否可以在存储设备的高速缓存中预筹备文件来用于上传到外部位置。如上所述,存储设备的高速缓存可以是存储设备的存储替换文件系统的文件的区域。当在高速缓存中存储文件时预筹备该文件,以便可以找机会上传该文件到外部位置。例如,可以在高速缓存中存储文件用于在非高峰时段期间上传到外部位置,或可以上传预筹备的文件到一个或多个外部位置来释放高速缓存中的空间。非高峰时段的例子可以包括夜晚时间、诸如在8:00p.m.之后、当网络可能不拥塞时、或在周末期间的白天。在其他实施方式中,上传管理器可以基于从网络接收的网络拥塞信息来动态地确定非高峰时段。
上传管理器可以基于上传策略中的因素来确定是否可以在高速缓存中预筹备文件。该上传策略可以包括诸如在高速缓存中是否存在足够的空闲空间以预筹备用于上传的所述文件;是否可以从高速缓存中移除在高速缓存中具有高于该文件的丢弃标准的一个或多个可丢弃文件以便收回高速缓存中的足够空间用于预筹备要上传的文件;在高速缓存中已经存储的一个或多个预筹备的文件是否能够被上传到外部位置以在所述高速缓存中释放足够的空间以预筹备用于上传的文件;以及/或者该文件是否可以被立即上传到外部位置。该上传管理器还可以在确定是否可以在高速缓存中预筹备文件以上传到外部位置时考虑如下因素:诸如可用于上传文件到外部位置的带宽量;可用于上传文件到外部位置的网络的类型;与主机设备和/或存储设备相关联的电力情况;与存储设备相关联的读取请求的数量、擦除的数量、和/或写入的数量或任何其他闪存耐久性参数;与存储设备相关联的安全参数;一次访问存储设备的存储区域的应用的数量;外部位置是否当前是可访问的;以及/或者是否授权用户来访问外部位置。
例如,当外部位置由于网络连接不可用于与外部位置通信、不可经由当前与主机设备一起建立的网络使用该外部位置、或外部位置掉线的原因而不可访问时,上传管理器可以确定延迟向外部资源上传文件。上传管理器还可以当外部资源指示不授权用户来访问外部位置时、当用户提供不正确的证书信息时、或当必须在上传文件到外部资源之前授权用户时,确定延迟向外部资源上传文件。另外,上传管理器可以确定延迟上传任何文件到外部位置,直到无线保真(WiFi)网络和/或蜂窝网络可用于上传该文件。类似地,当存储设备和/或主机设备耦合于电源,或与存储设备和/或主机设备相关联的电池的电力水平高于预定水平时,上传管理器可以确定上传文件到外部位置。但是,当与存储设备和/或主机设备相关联的电池正在充电,和/或同时与存储设备和/或主机设备相关联的电池的电力水平低于预定水平时,上传管理器可以确定延迟上传任何文件到外部位置。另外,上传管理器可以确定延迟在网络拥塞可能高时的商业时间期间请求的文件到外部位置的上传,直到网络可能不拥塞时的夜晚时间,诸如在8:00p.m.之后;该上传管理器可以确定延迟在工作星期期间一天请求的文件到外部位置的上传,直到周末期间的一天;或上传管理器可以确定延迟文件到外部位置的上传直到上传管理器接收到网络中的流量水平小于预定水平的指示。
图12是用于在系统中管理文件的上传的方法的流程图,该系统包括存储诸如一个或多个主动提供的文件和/或一个或多个预筹备的文件的一个或多个可丢弃文件的高速缓存。在步骤1202,识别要被上传到外部位置的文件。将理解,当主机设备进行诸如捕获图片或视频的操作时,主机设备可以初始地创建所识别的文件,或者当主机设备进行诸如从诸如远程服务器或网站的外部源下载文件、或从存储设备复制该文件的操作时,主机设备可以创建所识别的文件。在一些实施方式中,在步骤1203,可以作为存储分配器的一部分的上传管理器将接收预筹备(prestage)该文件以上传到外部位置的请求。该外部位置可以是例如,诸如其中用户期望发布视频或图片的社交网络网站的网站,或该外部资源可以是远程服务器、家庭个人计算机、路由器附接的存储设备、或其中用户期望发送一个或多个文件的对等网络。
在步骤1204,上传管理器将诸如优先等级的丢弃标准与该文件相关联。在一些实施方式中,与预筹备的文件相关联的丢弃标准可以不同于与主动提供的文件相关联的丢弃标准,以便基于一组标准来从高速缓存移除预筹备的文件,且基于另一组标准从高速缓存移除主动提供的文件。但是,在其他实施方式中,与预筹备的文件和主动提供的文件相关联的丢弃标准是相同的类型、诸如丢弃优先等级。在其中存储分配器基于不同标准、从高速缓存移除预筹备的文件和主动提供的文件(也已知为丢弃文件)的实施方式中,存储分配器可以例如在不首先上传预筹备的文件到外部资源的情况下从不从高速缓存中移除预筹备的文件,而是从高速缓存中移除主动提供的文件,存储分配器可以简单地删除该文件。换句话说,该高速缓存可以包括诸如预筹备的文件和主动提供的文件的可丢弃文件,其中,能够在不通知的情况下从高速缓存中移除(丢弃)所有可丢弃文件,但是预筹备的文件仅在被上传到外部资源之后才从高速缓存移除(丢弃)。上传管理器可以将小于主动提供的文件的丢弃标准但高于用户文件的丢弃标准的丢弃标准与要预筹备的文件相关联,以便要在高速缓存中预筹备的文件具有比主动提供的文件更高的优先级,但比用户文件更低的优先级。
在步骤1206,上传管理器确定在高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的文件。如果在高速缓存中存在足够的空闲空间(分支1208),则该上传管理器在步骤1210中在所述高速缓存中存储该文件以预筹备用于上传到外部位置的文件。
但是,如果在高速缓存中不存在足够的控制空间以预筹备用于上传到外部位置的文件(分支1212),则上传管理器在步骤1214中识别在高速缓存中存储的与比要预筹备的文件的丢弃标准更高的丢弃标准相关联的一个或多个可丢弃文件、诸如主动提供的文件。将理解,如上所述,当可丢弃文件具有比要预筹备的文件的丢弃标准更高的丢弃标准时,可以从高速缓存中移除可丢弃文件以在高速缓存中创建空闲空间以预筹备用于上传到外部位置的文件。在步骤1216中,上传管理器移除与比该文件的丢弃标准更高的丢弃标准相关联的所识别的可丢弃文件中的至少一个,以与最高丢弃标准相关联的可丢弃文件开始,且顺序地以与次高丢弃标准相关联的可丢弃文件继续。在一些实施方式中,上传管理器从高速缓存中不移除比释放高速缓存中的空间用于要预筹备的文件所需的更多的可丢弃文件。
在步骤1218,上传管理器确定在从高速缓存移除一个或多个可丢弃文件之后,在高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的文件。如果上传管理器确定存在足够的空闲空间(分支1220),该上传管理器在步骤1210中在所述高速缓存中存储文件以预筹备用于上传到外部位置的文件。
但是,如果上传管理器确定不存在足够的空闲空间(分支1222),该上传管理器在步骤1224中确定在高速缓存中已经存储的一个或多个预筹备的文件是否能够被上传到外部位置以在高速缓存中创建用于预筹备用于上传到外部位置的文件的足够空闲空间。在一些实施方式中,上传管理器可以基于诸如以下的上传策略中的因素,确定高速缓存中已经存储的一个或多个预筹备的文件是否能够被上传到外部位置:可用于上传文件到外部位置的带宽量;可用于上传文件到外部位置的网络类型;与主机设备和/或存储设备相关联的电力情况;与存储设备相关联的读取请求的数量、擦除的数量、和/或写入的数量、或任何其他快闪耐久性参数;与存储设备相关联的安全参数;在主机设备上一次访问存储设备的存储区域的应用的数量;外部位置当前是否可访问;和/或是否授权用户来访问外部位置。在一些实施方式中,上传管理器可以查询存储设备以确定与存储设备相关联的度量:诸如与存储设备相关联的电力情况;与存储设备相关联的读取请求的数量、擦除的数量、和/或写入的数量、或任何其他闪存耐久性参数;与存储设备相关联的安全参数;和/或当前访问存储设备的存储区域的主机应用的数量。
如果上传管理器确定可以上传高速缓存中已经存储的一个或多个预筹备的文件到外部位置以在高速缓存中创建足够的空闲空间以预筹备用于上传到外部位置的文件(分支1226),则在步骤1228中,上传该一个或多个预筹备的文件到外部位置,以在高速缓存中创建足够的空闲空间以预筹备用于上传到外部位置的文件。然后,在步骤1210中,上传管理器在高速缓存中存储文件以预筹备该文件用于上传到外部位置。
但是,如果上传管理器确定高速缓存中已经存储的一个或多个预筹备的文件不可上传到外部位置以在高速缓存中创建足够的空闲空间以预筹备用于上传到外部位置的文件(分支1230),则该上传管理器在步骤1232中确定该文件是否能够立即上传到外部位置。在一些实施方式中,上传管理器可以基于诸如以下的上传策略中的因素,确定该文件是否能够立即上传到外部位置:可用于上传文件到外部位置的带宽量;可用于上传文件到外部位置的网络类型;与主机设备和/或存储设备相关联的电力情况;与存储设备相关联的读取请求的数量、擦除的数量、和/或写入的数量、或任何其他快闪耐久性参数;与存储设备相关联的安全参数;一次访问存储设备的存储区域的应用的数量;外部位置当前是否可访问;和/或是否授权用户来访问外部位置。
如果上传管理器确定该文件能够立即被上传到外部位置(分支1234),则在步骤1236中,文件被立即上传到外部位置。但是,如果上传管理器确定该文件不可立即上传到外部位置(分支1238),上传管理器在步骤1240中生成失败上传指示符。
如上所述,在一个方面中,提供用于管理存储设备中的文件的方法。可以由上传管理器执行该方法,该上传管理器在一些实施方式中可以是存储分配器的一部分,存储分配器存在于操作性地耦合于存储设备的主机中。该存储设备包括用于存储一个或多个可丢弃文件的高速缓存。
上传管理器识别要上传到外部位置的文件,且确定在高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的文件。该上传管理器可以在确定在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的所述文件的情况下,在所述高速缓存中存储所述文件,其中,所述预筹备准备文件用于根据上传策略找机会上传这种文件。该上传策略可以包括当与外部位置的通信是非高峰时上传预筹备的文件,或上传预筹备的文件以释放高速缓存中的空间。高速缓存中的该可丢弃文件可以包括预筹备的文件和主动提供的文件,其中,上传管理器可以在不通知的情况下从高速缓存移除所有可丢弃文件(已知为丢弃文件),但上传管理器仅在将预筹备的文件上传到外部资源之后才从该高速缓存移除预筹备的文件。
上传管理器可以确定预筹备用于上传到外部的文件需要在所述高速缓存中存在比空闲空间更多的空间。上传管理器可以将丢弃标准与该文件相关联,且确定在所述高速缓存中是否存储有与比要被预筹备的文件的丢弃标准更高的丢弃标准相关联的一个或多个可丢弃文件。该上传管理器可以从所述高速缓存中移除与比要预筹备的文件的丢弃标准更高的丢弃标准相关联的一个或多个可丢弃文件,以释放高速缓存中的空间用于预筹备用于上传的所述文件,从与最高丢弃标准相关联的可丢弃文件开始,顺序地以与次高丢弃标准相关联的可丢弃文件继续,不从高速缓存中移除比释放高速缓存中的空间用于要预筹备的文件所需的更多的可丢弃文件。在确定在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的所述文件的情况下,上传管理器可以在所述高速缓存中存储该文件。与该文件相关联的丢弃标准可以包括优先等级。
上传管理器可以确定在从高速缓存移除一个或多个可丢弃文件之后,在高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的文件。在确定在从高速缓存移除一个或多个可丢弃文件之后在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的文件时,该上传管理器在存储设备的高速缓存中存储这些文件。
但是,在确定在从高速缓存移除一个或多个可丢弃文件之后在高速缓存中不存在足够的空闲空间以预筹备用于上传到外部位置的文件时,该上传管理器可以确定高速缓存中已经存储的一个或多个预筹备的文件是否可以被上传到外部位置以在高速缓存中创建足够的空闲空间以预筹备用于上传到外部位置的文件。在确定所述一个或多个预筹备的文件能够被上传到外部位置以在所述高速缓存中创建足够空闲空间以预筹备用于上传到外部位置的文件的情况下,该上传管理器可以上传在所述高速缓存中已经存储的所述一个或多个预筹备的文件,且在上传一个或多个预筹备的文件到外部位置之后在高速缓存中存储该文件。
当在所述高速缓存中没有存储能够被上传到外部位置以在所述高速缓存中创建足够的空闲空间以预筹备用于上传到外部位置的文件的预筹备的文件时,该上传管理器可以确定所述文件是否能够立即被上传到外部位置。该上传管理器可以在确定该文件可以被理解上传时向外部位置上传该文件,或者,该上传管理器可以在确定不能立即上传该文件时生成失败上传指示符。
为了确定高速缓存中已经存储的一个或多个预筹备的文件是否可以被上传到外部位置,该上传管理器可以基于可用于上传一个或多个预筹备的文件到外部位置的网络带宽量,确定一个或多个预筹备的文件是否能够被上传到外部位置;基于与主机设备相关联的电力水平来确定所述一个或多个预筹备的文件是否能够被上传到外部位置;基于与所述存储设备的存储区域相关联的读取请求的数量、擦除的数量或写入的数量中的至少一个,确定所述一个或多个预筹备的文件是否能够被上传到外部位置;基于与存储设备相关联的安全参数来确定所述一个或多个预筹备的文件是否能够被上传到外部位置;或基于当前访问该存储设备的存储区域的主机应用的数量来确定所述一个或多个预筹备的文件是否能够被上传到外部位置。
为了确定高速缓存中已经存储的一个或多个预筹备的文件是否可以被上传到外部位置,该上传管理器可以针对与存储设备的存储区域相关联的一个或多个度量查询存储设备,且基于该一个或多个度量,确定一个或多个预筹备的文件是否能够被上传到外部位置。所述一个或多个度量可以包括与存储设备的存储区域相关联的媒体读取的数量、擦除的数量或写入的数量中的至少一个。
在另一方面中,如上所述,提供一种存储系统。该存储系统包括通信接口和用于管理存储设备的高速缓存的处理器,其中,所述高速缓存被配置以存储一个或多个可丢弃文件。该处理器被配置以识别要通过通信接口上传到外部位置的文件。该处理器被配置以确定在高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的所述文件。该处理器可以另外被配置以在确定在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的所述文件的情况下,在所述高速缓存中存储所述文件,其中,所述预筹备准备文件用于根据上传策略找机会上传这种文件。该上传策略可以包括当与外部位置的通信是非高峰时上传预筹备的文件,或上传预筹备的文件以释放高速缓存中的空间。高速缓存中的可丢弃文件可以包括预筹备的文件和主动提供的文件,且该处理器可以被配置以在不通知的情况下从高速缓存中移除所有可丢弃文件(已知为丢弃文件)。但是,该处理器可以被配置以仅在将预筹备的文件上传到外部资源之后才从高速缓存中移除预筹备的文件。
该处理器可以被配置以确定预筹备用于上传到外部的文件需要在所述高速缓存中存在比空闲空间更多的空间。该处理器可以另外被配置以将丢弃标准与该文件相关联,且确定在所述高速缓存中是否存储有与比要被预筹备的文件的丢弃标准更高的丢弃标准相关联的一个或多个可丢弃文件。该处理器可以被配置以从所述高速缓存中移除与比要预筹备的文件的丢弃标准更高的丢弃标准相关联的一个或多个可丢弃文件,以释放高速缓存中的空间用于预筹备用于上传的所述文件,从与最高丢弃标准相关联的可丢弃文件开始,顺序地以与次高丢弃标准相关联的可丢弃文件继续。该处理器可以被配置以不从高速缓存中移除比释放高速缓存中的空间用于要预筹备的文件所需的更多的可丢弃文件。该处理器可以被配置以在确定在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的所述文件的情况下,在所述高速缓存中存储该文件。与该文件相关联的丢弃标准可以包括优先等级。
该处理器可以进一步被配置以确定在从高速缓存移除一个或多个可丢弃文件之后,在高速缓存中是否存在足够的空闲空间以预筹备用于上传到外部位置的文件。在确定在从高速缓存移除一个或多个可丢弃文件之后在高速缓存中存在足够的空闲空间以预筹备用于上传到外部位置的文件时,该处理器可以被配置以在高速缓存中存储该文件。
但是,在确定在从高速缓存移除一个或多个可丢弃文件之后在高速缓存中不存在足够的空闲空间以预筹备用于上传到外部位置的文件时,该处理器可以被配置以确定高速缓存中已经存储的一个或多个预筹备的文件是否可以被上传到外部位置以在高速缓存中创建足够的空闲空间以预筹备用于上传到外部位置的文件。在确定所述一个或多个预筹备的文件能够被上传到外部位置以在所述高速缓存中创建用于预筹备用于上传到外部位置的文件的足够空闲空间的情况下,该处理器可以被配置以上传在所述高速缓存中已经存储的所述一个或多个预筹备的文件,且在上传一个或多个预筹备的文件到外部位置之后在高速缓存中存储该文件。
当在所述高速缓存中没有存储能够被上传到外部位置以在所述存储区域中创建足够的空闲空间以预筹备用于上传到外部位置的文件的预筹备的文件时,该处理器可以被配置以确定所述文件是否能够立即被上传到外部位置。在确定该文件可以被立即上传时该处理器可以被配置以向外部位置上传该文件,且该处理器可以被配置以在确定不能立即上传该文件时生成失败上传指示符。
为了确定高速缓存中已经存储的一个或多个预筹备的文件是否可以被上传到外部位置,该处理器可以被配置以基于可用于上传一个或多个预筹备的文件到外部位置的网络带宽量,确定一个或多个预筹备的文件是否能够被上传到外部位置;基于与主机设备相关联的电力水平,确定一个或多个预筹备的文件是否能够被上传到外部位置。基于与所述存储设备的存储区域相关联的读取请求的数量、擦除的数量或写入的数量中的至少一个,确定所述一个或多个预筹备的文件是否能够被上传到外部位置;基于与存储设备相关联的安全参数来确定所述一个或多个预筹备的文件是否能够被上传到外部位置;和/或基于当前访问该存储设备的存储区域的主机应用的数量来确定所述一个或多个预筹备的文件是否能够被上传到外部位置。
为了确定高速缓存中已经存储的一个或多个预筹备的文件是否可以被上传到外部位置,该处理器可以被配置以针对与存储设备的存储区域相关联的一个或多个度量查询存储设备,且基于该一个或多个度量,确定一个或多个预筹备的文件是否能够被上传到外部位置。所述一个或多个度量可以包括与存储设备的存储区域相关联的媒体播放的数量、擦除的数量或写入的数量中的至少一个。
将理解,在一些实施方式中,可以配置一个或多个处理器来基于在诸如计算机可读非暂时存储介质的存储器上存储的指令来进行参考图12上述的动作。一个或多个处理器可以位于主机上、存储设备上、或两者的组合上。
注意,在此公开的在相关文件系统中标记文件并向它们分配丢弃级别的方法可以具有许多有用的应用,其中之一是恢复存储使用安全余量来保证用户文件的足够存储空间。例如,分配给文件的丢弃级别可以用于将文件簇重新映射到较低性能的闪存模块,或用于在请求时清除这些簇。
冠词“一个(a)”和“一(an)”在此用于指的是一个或多于一个(即,至少一个)冠词的语法主体,这取决于上下文。举例而言,取决于上下文,“一个元件”意味着一个元件或多于一个元件。术语“包括”在此用于意味着短语“包括但不限于”且与其可互换地使用。除非上下文另外明确指示,术语“或”和“和”在此用于意味着术语“和/或”且可与其互换地使用。术语“诸如”在此用于意味着短语“诸如但不限于”且与其可互换地使用。
已经描述了本发明的示例的实施例,本领域技术人员将明了本公开的实施例的修改将在本发明的范围内。因此,替换的实施例可以包括更多模块、更少模块和/或功能上相同的模块。本公开涉及各种类型的大容量存储设备,诸如SD驱动的闪存卡、闪存器件、非闪存器件、配备有通用串行总线(“USB”)接口的“钥匙盘(Disk-on-Key)”器件、USB闪存盘(“UFDs”),多媒体卡(“MMC”),安全数字(“SD”),miniSD,和microSD等的。在此,以下权利要求的范围不由在此的公开限制。因此,意图前述详细的描述被视为例示性的而非限制,且理解,随后的权利要求、包括其等同物意图定义本发明的精神和范围。

Claims (28)

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所述的存储系统,其中所述一个或多个度量包括与所述高速缓存相关联的读取请求的数量、擦除的数量或写入的数量中的至少一个。
CN201180048966.7A 2010-08-19 2011-08-09 用于管理在共享的高速缓存存储系统的文件的上传的系统和方法 Active CN103154911B (zh)

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
CN103154911A CN103154911A (zh) 2013-06-12
CN103154911B true CN103154911B (zh) 2016-02-17

Family

ID=44504275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180048966.7A Active CN103154911B (zh) 2010-08-19 2011-08-09 用于管理在共享的高速缓存存储系统的文件的上传的系统和方法

Country Status (6)

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

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 주식회사 엘지씨엔에스 맞춤형 모바일 컨텐츠 서비스 시스템 및 그 방법
AU2013306539B2 (en) * 2012-08-23 2016-02-25 Samsung Electronics Co., Ltd. Information transmission method and system, device, and computer readable recording medium thereof
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 晶天电子(深圳)有限公司 绿能与非固态硬盘应用及其驱动器
US10108633B2 (en) 2014-12-27 2018-10-23 Ascava, Inc. Using a distributed prime data sieve for efficient lossless reduction, search, and retrieval of data
TWI709047B (zh) * 2015-06-15 2020-11-01 美商艾斯卡瓦公司 對其已使用主要資料篩而被無損減少的資料履行多維搜尋、內容相關擷取、及關鍵字為基的搜尋和擷取
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1559035A (zh) * 2001-09-26 2004-12-29 Emc 对迁移和清除候选者的有效查找

Family Cites Families (174)

* 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
US6453383B1 (en) 1999-03-15 2002-09-17 Powerquest Corporation Manipulation of computer volume segments
US6542967B1 (en) 1999-04-12 2003-04-01 Novell, Inc. Cache object store
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
GB2349546A (en) 1999-04-26 2000-11-01 Nokia Mobile Phones Ltd A terminal for providing an application using a browser
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
EP1145126B1 (en) 1999-10-21 2005-02-02 Matsushita Electric Industrial Co., Ltd. A semiconductor memory card access apparatus, a computer-readable recording medium, an initialization method, and a semiconductor memory card
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
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
US20030236961A1 (en) 2000-11-07 2003-12-25 Qiu Chaoxin C. Systems and methods for management of memory in information delivery environments
US7167840B1 (en) 2000-03-15 2007-01-23 The Directv Group, Inc. Method and apparatus for distributing and selling electronic content
WO2001075663A2 (en) 2000-03-31 2001-10-11 Mdsi Mobile Data Solutions Inc. Systems and methods for enhancing connectivity
US6937813B1 (en) 2000-03-31 2005-08-30 Intel Corporation Digital video storage and replay system
US6917960B1 (en) 2000-05-05 2005-07-12 Jibe Networks Intelligent content precaching
JP4649760B2 (ja) 2000-05-31 2011-03-16 ソニー株式会社 コンテンツ・コピー管理システム及び方法、情報処理装置及び方法、並びに、記憶媒体
MXPA02001182A (es) 2000-06-02 2002-07-02 Matsushita Electric Ind Co Ltd Medio de grabacion, aparato de manejo de licencia y aparato de grabacion y reproduccion.
US7210099B2 (en) 2000-06-12 2007-04-24 Softview Llc Resolution independent vector display of internet content
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
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
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
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
EP1308853A1 (en) 2001-10-30 2003-05-07 Hewlett-Packard Company Data caching
JP4157294B2 (ja) 2001-11-08 2008-10-01 富士通株式会社 欠陥ファイルの修復を可能とするファイルシステム
ATE339053T1 (de) 2001-12-07 2006-09-15 Research In Motion Ltd Verfahren und vorrichtung zur steuerung der informationsverteilung zu mobilstationen
US20030114138A1 (en) 2001-12-13 2003-06-19 Kumar Ramaswamy Apparatus, methods and articles of manufacture for wireless communication networks
US6883068B2 (en) * 2001-12-17 2005-04-19 Sun Microsystems, Inc. Methods and apparatus for implementing a chche replacement scheme
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
US7158176B2 (en) * 2002-03-01 2007-01-02 Nokia Corporation Prioritization of files in a memory
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
US7082512B2 (en) 2002-11-21 2006-07-25 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
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
CN100474921C (zh) 2003-02-10 2009-04-01 皇家飞利浦电子股份有限公司 内容的输入控制的方法和设备
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
JP4624265B2 (ja) 2003-09-24 2011-02-02 ソニー株式会社 データ記録制御装置、データ記録制御方法及びデータ記録制御プログラム
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
US20130097302A9 (en) 2003-10-01 2013-04-18 Robert Khedouri 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
EP1692631A2 (en) 2003-11-12 2006-08-23 Czuchry Jr., Andrew J. 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
WO2006053958A1 (fr) 2004-11-17 2006-05-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
US8127088B2 (en) * 2005-01-27 2012-02-28 Hewlett-Packard Development Company, L.P. Intelligent cache management
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 株式会社東芝 メモリカード
CA2604448C (en) 2005-04-18 2012-11-27 Research In Motion Limited 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
WO2008013228A1 (fr) 2006-07-26 2008-01-31 Panasonic Corporation Contrôleur de mémoire, dispositif de stockage non-volatile, dispositif d'accès et système de stockage non-volatile
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 삼성전자주식회사 휴대용 단말기에서 갱신 데이터를 확인하기 위한 장치 및방법
US7721040B2 (en) 2007-01-18 2010-05-18 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
US8627029B2 (en) 2007-03-08 2014-01-07 Sandisk Il Ltd. Methods for managing files according to application
EP2135429B1 (en) 2007-03-16 2017-09-06 BRITISH TELECOMMUNICATIONS public limited company Data transmission scheduler
US8782786B2 (en) 2007-03-30 2014-07-15 Sophos Limited Remedial action against malicious code at a client facility
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
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1559035A (zh) * 2001-09-26 2004-12-29 Emc 对迁移和清除候选者的有效查找

Also Published As

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

Similar Documents

Publication Publication Date Title
CN103154911B (zh) 用于管理在共享的高速缓存存储系统的文件的上传的系统和方法
US9015209B2 (en) Download management of discardable files
CN103154948B (zh) 可丢弃文件的基于卡的管理
US20100153474A1 (en) Discardable files
US20090077327A1 (en) Method and apparatus for enabling a NAS system to utilize thin provisioning
CN108628753B (zh) 内存空间管理方法和装置
CN102257497B (zh) 可废弃文件的下载管理
WO2010074848A2 (en) Discardable files
US8205060B2 (en) Discardable files
US8375192B2 (en) Discardable files
US9020993B2 (en) Download management of discardable files
US8849856B2 (en) Discardable files

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: Israel Kfar Saba

Patentee after: Western data Israel Limited

Address before: Israel saaba

Patentee before: SANDISK IL Ltd.

CP03 Change of name, title or address