CN104412249A - 基于云的文件系统内的文件处置 - Google Patents
基于云的文件系统内的文件处置 Download PDFInfo
- Publication number
- CN104412249A CN104412249A CN201380023770.1A CN201380023770A CN104412249A CN 104412249 A CN104412249 A CN 104412249A CN 201380023770 A CN201380023770 A CN 201380023770A CN 104412249 A CN104412249 A CN 104412249A
- Authority
- CN
- China
- Prior art keywords
- file
- calculation element
- priority
- cache
- storage
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0862—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/161—Computing infrastructure, e.g. computer clusters, blade chassis or hardware partitioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
- G06F16/183—Provision of network file services by network file servers, e.g. by using NFS, CIFS
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/46—Caching storage objects of specific type in disk cache
- G06F2212/463—File
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在一个一般方面中,一种计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分。所述过程可包含存取包含表示多个文件的文件列表的用户接口,其中所述多个文件的至少第一部分存储于所述计算装置的本地存储器中且所述多个文件的第二部分存储于所述存储系统中。
Description
相关申请案的交叉参考
本申请案主张2013年3月15日申请的标题为“基于云的文件系统内的文件处置(FILE HANDLING WITHIN A CLOUD-BASED FILE SYSTEM)”的第13/841,368号美国非临时专利申请案的优先权且是其的接续案,第13/841,368号美国非临时专利申请案又主张2012年5月5日申请的标题为“基于云的文件系统内的文件处置(FILE HANDLINGWITHIN A CLOUD-BASED FILE SYSTEM)”的第61/643,279号美国临时专利申请案及2012年12月13日申请的标题为“基于云的文件系统内的文件处置(FILE HANDLINGWITHIN A CLOUD-BASED FILE SYSTEM)”的第61/736,722号美国专利申请案的优先权,所述这些均以全文引用的方式并入本文中。
技术领域
本描述涉及基于云的文件系统内的文件处置。
背景技术
已开发用于存储可由计算装置存取的文件的多种远程存储系统。通常,这些已知的远程存储系统存储用以备份存储于计算装置上的本地文件的文件。虽然这些远程存储系统可经由网络存取,可可靠地存储信息等等,但这些已知的远程存储系统中的许多远程存储系统缺乏灵活性及集成性,尤其是在处置可使用不同源产生的多种文件时。因此,需要用以解决本技术的不足且提供其它新且创新特征的系统、方法及设备。
发明内容
在一个一般方面中,一种非暂时性计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分,且可包含存储表示多个文件的文件列表,其中所述多个文件的至少第一部分存储于所述计算装置的本地存储器中且所述多个文件的第二部分存储于所述存储系统中。所述过程可包含基于与来自所述文件列表的文件相关联的文件类别而指定来自所述文件列表的所述文件的离线可用性。
实例性实施方案可包含以下特征中的一或多者。例如,所述存储系统可作为所述计算装置的主要存储系统而操作,且所述计算装置的所述本地存储器可作为所述存储系统的高速缓冲存储器而操作。
所述文件列表可包含:对使用web应用程序产生并存储于所述存储系统中的web文件的参考;对使用安装于所述计算装置处的本地应用程序产生的客户端文件的参考;及/或对来自在所述云环境外部操作的远程源的远程源文件的参考。来自所述文件列表的所述文件可为来自所述文件列表的第一文件,所述文件类别可为web文件类别。所述过程可进一步包含:响应于从所述计算装置接收的第一指令而指定来自所述文件列表的至少第二文件的离线可用性,所述第二文件为未经高速缓存文件;以及指定来自所述文件列表的高速缓存于所述本地存储器中的至少第三文件的离线可用性。
所述文件列表可为横跨所述计算装置的所述本地存储器及所述存储系统的分配给所述计算装置的一部分的单一文件列表。
所述计算装置可为远程连接到所述云环境的第一计算装置,且所述过程可进一步包含在远程连接到所述云环境的第二计算装置处存取所述文件列表,在于所述第二计算装置处存取时的所述文件列表和在于所述第一计算装置处存取时的所述文件列表相同。
所述指定所述文件可包含在未从所述计算装置接收到明确指令的情况下基于所述文件类别而指定来自所述文件列表的所述文件的离线可用性。
来自所述文件列表的所述文件可为基于所述文件类别而被指定为处于离线可用状态中的第一文件。所述文件列表可包含第二文件,所述第二文件基于所述第二文件最近在所述计算装置的所述本地存储器处被存取而被指定为处于所述离线可用状态中。所述文件列表可包含响应于来自所述计算装置的指令而被指定为处于所述离线可用状态中的第三文件。所述文件列表可包含被指定为处于在线可用状态中的第四文件。
在另一一般方面中,一种非暂时性计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分。所述过程还可包含:接收打开存储于所述存储系统上的第一文件的请求;以及响应于打开所述第一文件的所述请求,将所述第一文件高速缓存于所述计算装置的本地存储器中,所述第一文件是以第一优先级高速缓存的。所述过程可进一步包含:接收使存储于所述存储系统上的第二文件成为离线可用的请求;以及响应于使所述第二文件成为离线可用的所述请求,将所述第二文件高速缓存于所述计算装置的所述本地存储器中,所述第二文件是以低于所述第一优先级的第二优先级高速缓存的。所述过程可仍进一步包含:预测性地将存储于所述存储系统中的第三文件高速缓存于所述计算装置的所述本地存储器中,所述第三文件是基于所述第三文件的一或多个属性而选择的,所述第三文件是以低于所述第二优先级的第三优先级高速缓存的。
实例性实施方案可包含以下特征中的一或多者。例如,所述第一文件、所述第二文件及所述第三文件可基于其相应优先级且基于所述计算装置的所述本地存储器中的可用文件高速缓冲存储器存储容量的量而高速缓存于所述计算装置的所述本地存储器中。
所述过程可进一步包含:接收打开存储于所述存储系统上的第四文件的请求;以及响应于接收到所述打开所述第四文件的所述请求:如果将所述第四文件高速缓存于所述计算装置的所述本地存储器中将超过文件高速缓存阈值,那么所述过程可包含从所述计算装置的所述本地存储器驱除所述第三文件;以及以所述第一优先级将所述第四文件高速缓存于所述计算装置的所述本地存储器中。
所述第一文件可为以所述第一优先级高速缓存的多个文件中的一者,其中所述多个文件可响应于打开所述多个文件中的每一者的相应请求而高速缓存于所述计算装置的所述本地存储器中。所述第二文件可为以所述第二优先级高速缓存的多个文件中的一者,其中所述多个文件可响应于使所述多个文件中的每一者成为离线可用的相应请求而高速缓存于所述计算装置的所述本地存储器中。所述第三文件可为以所述第三优先级高速缓存的多个文件中的一者,其中以所述第三优先级高速缓存所述多个文件可包含:基于相应最后修改日期而高速缓存第一预定数目个文件;基于相应最后检视日期而高速缓存第二预定数目个文件;以及基于相应共享日期而高速缓存第三预定数目个文件。
以所述第三优先级高速缓存所述多个文件可进一步包含基于其在所述存储系统中与一或多个先前经高速缓存文件的关系而高速缓存第四预定数目个文件。
所述第三文件可为以所述第三优先级高速缓存的多个文件中的一者,其中以所述第三优先级高速缓存所述多个文件可包含通过在基于相应最后修改日期高速缓存文件与基于相应最后检视日期高速缓存文件之间进行反复而高速缓存预定数目个文件。
所述过程可进一步包含:接收从所述计算装置的所述本地存储器打开所述第三文件的请求;将所述第三文件从所述第三优先级改变为所述第一优先级;以及改变所述第三文件的最后检视日期。
在又一一般方面中,一种非暂时性计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分,所述计算装置包含经配置以从所述存储系统高速缓存文件的本地存储器。所述过程还可包含接收已满足或超过所述计算装置的所述本地存储器的文件高速缓存阈值的指示。所述过程可进一步包含响应于所述指示,从所述计算装置的所述本地存储器驱除一组经高速缓存文件的至少一部分直到满足驱除阈值为止,所述组经高速缓存文件的所述至少一部分是从最低高速缓存优先级到最高高速缓存优先级且基于所述组经高速缓存文件中的每一文件的相应时间戳而驱除的。
实例性实施方案可包含以下特征中的一或多者。例如,所述组经高速缓存文件可包含:具有第一高速缓存优先级的第一文件,所述第一文件已响应于打开所述第一文件的请求而高速缓存;具有第二高速缓存优先级的第二文件,所述第二文件已响应于使所述第二文件成为离线可用的请求而高速缓存,所述第二优先级低于所述第一优先级;具有第三高速缓存优先级的第三文件,所述第三文件已基于最后修改日期及最后检视日期中的至少一者而高速缓存,所述第三高速缓存优先级低于所述第二高速缓存优先级;具有第四高速缓存优先级的第四文件,所述第四文件已基于共享所述文件的日期而高速缓存,所述第四高速缓存优先级低于所述第三高速缓存优先级;及/或具有第五高速缓存优先级的第五文件,所述第五高速缓存优先级低于所述第四高速缓存优先级,所述第五文件已基于其在所述存储系统中与所述第一文件、所述第二文件、所述第三文件及所述第四文件中的至少一者的关系而高速缓存。
所述过程可进一步包含在驱除具有所述第一高速缓存优先级或所述第二高速缓存优先级的文件之前请求来自用户的确认。
所述过程可进一步包含:接收存取所述组经高速缓存文件中的文件的请求,请求存取的所述文件具有低于所述最高高速缓存优先级的高速缓存优先级;以及响应于所述请求,将请求存取的所述文件的所述高速缓存优先级改变为所述最高高速缓存优先级。
在附图及以下描述中陈述一或多个实施方案的细节。从所述描述及图式且从权利要求书将明了其它特征。
附图说明
图1是图解说明经配置以从在云环境内操作的基于云的存储系统存取文件的计算装置的图式。
图2是图解说明根据一实施方案的计算装置及存储系统的图式。
图3是图解说明可由文件管理器提供到计算装置的用户接口的图式。
图4是图解说明其中用于从基于云的存储系统取出(高速缓存)文件以供存储于本地存储器中及从本地存储器(高速缓冲存储器)驱除(移除)文件的实例性方法的文件系统的图式。
图5是图解说明与文件处置相关的方法的流程图。
图6A到6C是图解说明与文件高速缓存相关的方法的流程图。
图7是图解说明与经高速缓存文件的驱除相关的方法的流程图。
具体实施方式
图1是图解说明经配置以从在云环境100内操作的存储系统150存取文件19的计算装置110、120的图式。由于存储系统150在云环境100中操作,因此在一些实施方案中,存储系统150可称为基于云的存储系统。而且,存储系统150可为由计算装置110、120远程存取的远程(例如,非本地)存储系统。云环境100可包含多种硬件及/或软件组件,包含服务器(例如,应用程序服务器)、数据库等等。云环境100的组件可集成到经配置以共享(例如,动态地分配)资源及/或服务于包含计算装置110、120的多种端点的计算基础结构中。
计算装置110、120可为经配置以存取在云环境100内操作的存储系统150的任何类型的装置。在一些实施方案中,计算装置110、120可各自为(举例来说)有线装置及/或无线装置(例如,具备Wi-Fi能力的装置),且可为(举例来说)计算实体(例如,个人计算装置)、服务器装置(例如,web服务器)、移动电话、触摸屏装置、个人数字助理(PDA)、膝上型计算机、包含一或多个处理器或与一或多个处理器相关联的电视、平板装置、电子阅读器及/或等等。所述计算装置可经配置以基于可包含一或多个类型的硬件、软件、固件、操作系统、运行时程序库及/或等等的一或多个平台(例如,一或多个类似或不同平台)而操作。
在一些实施方案中,与云环境100相比,计算装置110、120可具有相对少的计算资源(例如,处理资源、存储资源)。因此,计算装置110、120及云环境100可共同地经配置使得计算装置110、120可利用云环境100的计算资源。具体来说,云环境100的存储系统150及计算装置110、120可经配置使得存储系统150作为计算装置110、120的主要存储系统而操作。如图1中所展示,计算装置110及计算装置120分别包含本地存储器112及本地存储器122。即使计算装置110、120包含本地存储器112、122,本地存储器112、122也经配置以作为存储系统150的高速缓冲存储器(例如,临时高速缓冲存储器、临时存储位置)而操作。因此,本地存储器112、122可用作存储系统150的主要存储装置的辅助存储装置。在一些实施例中,举例来说,存储系统150的存储容量的被分配给计算装置110(例如,经指定以供其使用)的一部分可为计算装置110的本地存储器112的存储容量的10倍大(例如,100倍大、1000倍大)。
即使相应计算装置110、120的本地存储器112、122用作存储系统150的高速缓冲存储器(或辅助存储装置),存储于本地存储器112、122中的一或多者中及存储系统150中的文件也可作为单一或单个文件集合来处置。换句话说,本地存储器112、122中的一或多者及存储系统150可用作单一存储系统(例如,单个虚拟存储系统、单个虚拟硬驱动器)。举例来说,存储于本地存储器112、122中的一或多者中及存储于存储系统150中的文件可以使得可不容易区分存储位置的方式呈现给存取所述文件的用户(例如,经由用户接口呈现给用户)。因此,不论用户是经由计算装置110还是计算装置120存取文件,与存储于本地存储器112、122中的一或多者及存储系统150中的文件相关联的文件列表将为相同(或实质上相同)的。下文描述与文件处置相关的更多细节。
如图1中所展示,存储系统150经配置以存储可指定到包含经托管文件、客户端文件、远程源文件等等的一或多个类别中的文件19。在此实施方案中,文件19中的大部分是基于文件19中的每一者与之相关联的类别而标示。因此,文件19包含web文件10(也可称为经托管文件)、客户端文件11及远程源文件12。web文件10可包含于web文件类别中,客户端文件11可包含于客户端文件类别中,且远程源文件12可包含于远程源文件类别中。在一些实施方案中,文件19中的每一者可为各种类型的文件,例如,基于文本的文件(例如,文档文件)、电子表格文件、图像文件(例如,联合照片专家组(JPEG)文件)、视频文件(例如,移动图片专家组(MPEG)文件)、音乐文件(例如,MPEG音频层III(MP3)文件)等等。
web文件10可为使用web应用程序140(例如图1中所展示的web应用程序)创建的文件。web应用程序140可为可(举例来说)在云环境100内托管的任何类型的应用程序。在一些实施方案中,web应用程序140可为经托管应用程序。在一些实施方案中,web应用程序140可在其于云环境100内操作时由计算装置110、120中的一或多者远程控制。稍后在此具体实施方式中描述与web应用程序及托管应用程序相关的更多细节。
客户端文件11可为来自计算装置110、120中的一或多者的存储于存储系统150中的文件。举例来说,客户端文件11可为来自计算装置110、120中的一或多者的存储于存储系统150中的文件。举例来说,客户端文件11可为使用在计算装置120处操作的应用程序126产生的文件。应用程序126可为安装于计算装置120处且在其处操作的本地应用程序。在一些实施方案中,应用程序126可不在云环境内操作。
远程源文件12可为来自远程源160的存储于存储系统150中的文件。在一些实施方案中,远程源160可为在云环境100外部(例如,独立于云环境100且独立于计算装置110、120)操作的源。在一些实施方案中,远程源160可为与计算装置110、120分离(或独立于其)的计算装置。在一些实施方案中,远程源160可为独立于云环境100操作的第三方源。在一些实施方案中,远程源160可响应于由计算装置110、120中的一或多者触发的一或多个指令而移动到存储系统150中。
如图1中所展示,文件19的至少一部分可至少临时存储(例如,高速缓存)于计算装置120的本地存储器122中。具体来说,文件19中所包含的文件18存储于计算装置120的本地存储器122中。文件18可为存储于存储系统150中的文件中的任一者的影子副本、镜像副本或经同步副本。举例来说,文件18可为存储于存储系统150中的web文件10的影子副本或镜像副本。在一些实施方案中,文件18可为存储于本地存储器122中而未镜射于存储系统150处的文件。举例来说,文件18可为与客户端文件11分离、在本地存储器122处创建并存储于本地存储器122中的另一客户端文件。在一些实施方案中,文件18可为存储(例如,临时存储)于本地存储器122中的文件,使得可在计算装置120处容易地存取(例如,操纵)文件18。虽然图1中未展示,但文件19的至少一部分可至少临时存储于计算装置110的本地存储器112中。
存储系统150包含文件管理器155。在一些实施方案中,文件管理器155可用作web应用程序。文件管理器155经配置以提供用户接口,计算装置110、120可通过所述用户接口存取存储于存储系统150中及/或计算装置110、120中的一或多者处的文件19。在一些实施方案中,由文件管理器155提供的用户接口可包含文件系统用户接口。在一些实施方案中,由文件管理器155提供的用户接口可表示文件19的列表(例如,层次、文件夹系统、枚举、记录、库存)及/或关于文件19的其它元数据(例如,拥有者、创建日期、文件名称、文件可用性/状态)。文件19的列表可包含对文件19中的一或多者的参考(例如,指针、指示)。存取文件19可包含检视、删除、编辑、下载、上载及/或等等。
举例来说,可响应于来自计算装置120的输入而使用web应用程序140产生web文件10并将其存储于存储系统150中。可稍后在由文件管理器155在计算装置110的显示器114处提供的用户接口中检视web文件10(或其识别符)。可使用计算装置110经由web应用程序140来选择及编辑web文件10。可通过其存取文件19中的一或多者的用户接口的实例图解说明于图3中且结合图3更详细地加以论述。
文件19可与用户帐户相关联,使得由文件管理器155在用户接口内提供到计算装置110或计算装置120的文件19的列表将为相同的,而不论用户是登录到计算装置110还是计算装置120中。换句话说,文件19的列表可为经同步的,而不管通过其存取文件19的列表的计算装置如何。即使文件19中可包含多种类别的文件,例如分类为web应用程序文件的文件、从计算装置提供的客户端文件或与远程源相关联的文件,由文件管理器155在用户接口内提供的文件19的列表也可为相同的(例如,经同步、经动态地同步)。即使文件19可分布在存储系统150及/或计算装置110、120之间,由文件管理器155在用户接口内提供的文件19的列表也可为相同的。在一些实施方案中,文件19的列表可为文件19中包含哪些文件的枚举。
举例来说,在一些实施方案中,用户可登录到计算装置110中,且可存取及/或操纵文件19中的一或多者。在用户从计算装置110登出时,用户可稍后登录到计算装置120中以存取并操纵一或多个文件19。当用户登录到计算装置120中时,可经由计算装置120将在第一次登录(使用计算装置110)之后的文件19的列表呈现给用户。因此,可无缝地维持文件19的列表(或使其同步),而不管用户通过其存取文件19的计算装置如何。因此,文件管理器155可经配置以提供文件19的相同(或经同步)列表,而不论用户是登录到计算装置110还是计算装置120中。在一些实施方案中,即使可在计算装置110、120之间维持文件19的列表,但在一些实施方案中,文件19中的一或多者的状态可改变。在一些实施例中,所述状态可与文件的离线(例如,非网络)或在线可用性相关。结合图3来论述与文件的状态相关的更多细节。
在一些实施方案中,文件18可为下载到(例如,经取出以用于)计算装置120以在计算装置120处供用户使用(如果尚未在计算装置120的本地存储器122中可用)的文件。在一些实施方案中,文件的当前版本(例如,文件18)可能已在计算装置120的本地存储器122中可用且将不从存储系统150下载。在一些实施方案中,在从存储系统150下载文件之前,可审核本地存储器122以确定所述文件是否已高速缓存于本地存储器122中。
在一些实施方案中,可按计算装置120的用户的需求(例如,响应于由用户触发的指令)而将文件18下载到本地存储器122中。在一些实施方案中,存储于本地存储器122中的文件18可用于在计算装置120处离线存取。计算装置120可能无法接入任何网络或其中可在离线时存取存储系统150的网络。举例来说,计算装置120的用户可请求对存储于存储系统150中的远程源文件12的存取。响应于所述请求,可将远程存储文件12的副本下载到计算装置120的本地存储器122以作为文件18。可由用户在计算装置120处使用(例如,编辑、操纵、存取)文件18。在一些实施方案中,对文件18的任何改变可镜射于存储于存储系统150中的远程源文件12中(例如,在远程源文件12内同步)。
在一些实施方案中,可在未由计算装置120的用户明确请求的情况下取出(例如,预取)文件18并将其下载到计算装置120以供使用。换句话说,可自动地将一或多个文件高速缓存于计算装置120处以供用户使用。举例来说,当用户登录到计算装置120中时,可自动地将文件18下载到计算装置120的本地存储器122。在一些实施方案中,可基于一或多个准则而自动地下载文件。所述准则可与关于文件18是否可由计算装置120的用户存取的预测相关。在一些实施方案中,所述准则可包含与对文件18的最近存取、文件与其它最近经存取文件18的关系、通常由用户存取的文件类别及/或文件类型及/或等等相关的准则。用于下载(取出)文件以供存储于本地存储器中(例如,从基于云的存储系统)的实例性方法图解说明于图4中且下文关于图4进一步详细地加以描述。
在一些实施方案中,可从计算装置120的本地存储器122移除(例如,删除、临时移除、清洗)文件18。在一些实施方案中,可基于一或多个准则(举例来说,包含文件18的日期时间戳、文件18的大小及/或等等)而从计算装置120的本地存储器122移除文件18。在一些实施方案中,可响应于计算装置120的本地存储器122(或计算装置120的其它组件)的资源经重新分配以用于计算装置120的其它操作而从计算装置120的本地存储器122移除文件18。在一些实施方案中,可连同可存储于本地存储器122中的其它文件一起从计算装置120的本地存储器122移除文件18。用于从本地存储器(例如,从基于云的存储系统)驱除(移除)文件的实例性方法也图解说明于图4中且下文关于图4进一步详细地加以描述。
虽然图1中未展示,但在一些实施方案中,文件19中的一或多者可由计算装置110、120中的一或多者的应用程序直接处理而不被高速缓存于计算装置110、120处。换句话说,当使用计算装置110、120中的一或多者执行处理时,可绕过对文件19中的一或多者的高速缓存。举例来说,可由在云环境100内操作的web应用程序140及/或使用计算装置120处的应用程序126处置对web文件10及/或其一部分的处理。在此类实施方案中,可绕过在计算装置120的本地存储器122中对web文件10的明确高速缓存。在一些实施方案中,web文件10的仅一部分可存储于计算装置120内与本地存储器122分离的临时存储器位置中。
在一些实施方案中,本地存储器112、122可为任何类型的存储器,例如随机存取存储器、磁盘驱动存储器(例如,固态驱动器(SSD))、快闪存储器及/或等等。在一些实施方案中,与计算装置110、120中所包含的其它存储器相比,本地存储器112、122可为相对长期存储存储器。在一些实施方案中,本地存储器112、122可为计算装置110、120中所包含的最长期存储器组件。在一些实施方案中,本地存储器112、122可与和与处理器相关联的高速缓冲存储器分离且与RAM型存储器分离。在一些实施方案中,本地存储器112、122可实施为与计算装置110、120的组件相关联的一个以上存储器组件(例如,一个以上随机存取存储器(RAM)组件或磁盘驱动存储器)。
在一些实施方案中,web应用程序140可经配置以由web浏览器(未展示)执行或解译。这可与可包含机器可执行代码且可经配置以由处理器直接执行或经由计算装置的操作系统执行的本机应用程序形成对比,而在某一实施方案中,web应用程序140在无web浏览器的辅助的情况下可不能够执行或显示。因此,web应用程序140可在具有专用用户接口的浏览器内部操作(例如,从所述浏览器内执行),且通常提供比独立式网站更丰富且更具交互性但不如桌面应用程序繁琐及庞大的功能性及体验。web浏览器可由计算装置(例如,计算装置110、120)执行,可从远程服务器(例如,托管网站的远程服务器)接收代码(例如,HTML代码、Javascript),且可为计算装置的用户在计算装置上执行所接收代码。web应用程序的实例可包含在浏览器内执行的游戏、相片编辑器及视频播放器。
在一些实施方案中,web应用程序140可为经托管应用程序或经封装应用程序。经托管应用程序可包含本身包含网页的网站的至少一部分加上可尤其与web应用程序或web应用程序的用户有关以允许web应用程序为用户执行某一其它特定功能性的一些元数据。此元数据可包含(举例来说)应用程序的名称、应用程序的描述、应用程序的版本及应用程序使用的任何URL,包含应用程序的启动页(即,在用户点击经托管应用程序的图标时浏览器转到的网页)。所述元数据可含在托管于开发者的服务器或数字市场的服务器上的清单文件(例如,.crx文件)中。
经封装应用程序可被视为其代码经捆绑使得用户可下载web应用程序的内容的至少一部分以供浏览器执行的web应用程序。经封装web应用程序可不依赖于网络接入来为用户执行其功能性,而是可在不接入网络的情况下由浏览器成功地在计算装置上本地执行。经封装web应用程序具有使用扩展API的选项,从而允许经封装应用程序改变浏览器的行为或外观方式。
图2是图解说明根据一实施方案的计算装置210及存储系统250的图式。计算装置210经配置以建立与存储系统250的通信链路(例如,单向通信链路、双向通信链路)的至少一部分。虽然图2中未展示,存储系统250可经配置以在云环境内操作。存储系统250包含文件29及文件管理器255。虽然图2中未明确展示,但在此实施方案中,文件29可包含存储于计算装置210的本地存储器265中的文件。因此,文件管理器255可与本地存储于计算装置210处或远程存储于存储系统250中的文件相关联。本地存储的文件可与存储系统250中所包含的文件管理器255同步且由文件管理器255管理。
如图2中所展示,计算装置210包含文件管理器应用程序230。文件管理器应用程序230可经配置以与存储系统250的文件管理器255交互(例如,存取、触发其操作)。在一些实施方案中,文件管理器应用程序230可为经配置以在浏览器内操作(在基于浏览器的操作系统内操作)的web应用程序。计算装置210包含本地存储器265及处理器267。处理器267可与计算装置210的组件中的任一者相关联,且可用于执行计算装置210的操作中的任一者。
文件管理器应用程序230包含经配置以处置与由文件管理器255从存储系统250提供的用户接口相关的处理的用户接口处置器236。文件管理器应用程序230包含可由计算装置210的用户用于改变与存储系统250相关联的文件29中的一或多者的状态(在一些实施方案中,经由可为基于浏览器的操作系统的用户接口)的状态管理器232。文件管理器应用程序230还包含经配置以处置与文件29相关联的一或多个用户帐户(经由用户接口)的登录模块234。
计算装置210包含经配置以建立计算装置210与存储系统250之间的通信链路的至少一部分的客户端连接模块240。在一些实施方案中,计算装置210与存储系统250之间的通信链路可为无线连接、有线连接、对等连接、网络连接、安全连接、经加密连接及/或等等。
计算装置210还包含可经配置以触发计算装置210的一或多个操作的输入装置280。在一些实施方案中,输入装置280可为或可包含(举例来说)鼠标装置、键盘装置、触摸垫装置、麦克风及/或等等。计算装置210包含显示器270,其可为任何类型的显示器,例如发光二极管(LED)显示器、静电触摸装置、电阻性触摸屏装置、表面声波(SAW)装置、电容性触摸屏装置、压敏装置、表面电容性装置、投射式电容性触摸(PCT)装置及/或等等。如果显示器270为触敏装置,那么显示器270可用作输入装置。举例来说,显示器270可经配置以显示可由用户用作输入装置的虚拟键盘(例如,模仿键盘)。
计算装置210及/或存储系统250的组件(例如,模块、处理器)可经配置以基于可包含一或多个类型的硬件、软件、固件、操作系统、运行时程序库及/或等等的一或多个平台(例如,一或多个类似或不同平台)而操作。在一些实施方案中,计算装置210及/或存储系统250的组件可经配置以在装置群集(例如,服务器场)内操作。在此实施方案中,可将计算装置210及/或存储系统250的组件的功能性及处理分布到装置群集的数个装置。
计算装置210的组件及/或存储系统250的组件可为或可包含经配置以处理属性的任何类型的硬件及/或软件。在一些实施方案中,图3中的计算装置210的组件及/或存储系统250的组件中所展示的组件的一或多个部分可为或可包含基于硬件的模块(例如,数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储器)、固件模块及/或基于软件的模块(例如,计算机代码模块、可在计算机处执行的计算机可读指令集)。举例来说,在一些实施方案中,计算装置210的组件及/或存储系统250的组件的一或多个部分可为或可包含经配置以供至少一个处理器(未展示)执行的软件模块。在一些实施方案中,组件的功能性可包含于与图2中所展示的那些不同的模块及/或不同的组件中。
在一些实施方案中,计算装置210的组件及/或存储系统250的组件中的一或多者可为或可包含经配置以处理存储于存储器中的指令(连同所展示的指令一起或除所展示的指令以外)的处理器。举例来说,文件管理器应用程序230(及/或其一部分)可为或可包含经配置以执行与用以实施一或多个功能的过程相关的指令的处理器与存储器的组合。
在一些实施方案中,存储系统250可为远程数据库、本地数据库、分布式数据库、关系数据库、层次数据库及/或等等。在一些实施方案中,存储系统250的至少一些部分可存储于计算装置210的存储器(未展示)(例如,本地存储器)中。在一些实施方案中,存储系统250可为或可包含由多个装置(例如计算装置210)共享的存储器。在一些实施方案中,存储系统250可与网络内的服务器装置(未展示)相关联且经配置以服务于计算装置210的组件。
虽然未展示,但在一些实施方案中,计算装置210的组件及/或存储系统250的组件可经配置以在(举例来说)数据中心(例如,云计算环境)、计算机系统、一或多个服务器/主机装置及/或等等内操作。在一些实施方案中,计算装置210的组件及/或存储系统250的组件可经配置以在网络内操作。因此,计算装置210的组件及/或存储系统250的组件可经配置以在可包含一或多个装置及/或一或多个服务器装置的各种类型的网络环境内起作用。举例来说,所述网络可为或可包含局域网(LAN)、广域网(WAN)及/或等等。所述网络可为或可包含无线网络及/或使用(举例来说)网关装置、桥接器、交换器及/或等等实施的无线网络。所述网络可包含一或多个分段及/或可具有基于例如因特网协议(IP)及/或专有协议等各种协议的部分。所述网络可包含因特网的至少一部分。
图3是图解说明可由文件管理器提供到计算装置的用户接口300的图式。用户接口300可由图1中所展示的文件管理器155及/或图2中所展示的文件管理器255提供。用户接口300可由图1中所展示的计算装置110、120中的一或多者及/或图2中所展示的计算装置210接收(例如,在其处控制)。
如图3中所展示,在用户接口300内表示文件列表320。文件列表320包含由名称(列321中所展示)文件A到文件L表示的文件。文件列表320包含关于文件中的每一者的多种信息,包含大小(列322中所展示)、日期(列323中所展示)、类型(列324中所展示)及离线可用性(列325中所展示)。可将在文件列表320内表示的文件指定到若干类别中,例如,web文件、客户端文件、远程源文件及/或等等。
如图3中所展示,即使文件列表320可包含指定在多种类别中的文件,也在单个用户接口300内且在标示为“驱动器”的单个窗中表示所述文件。在一些实施方案中,可在驱动器窗中列示其它类型的文件,包含存储于外部存储装置(例如通用串行总线(USB)装置)上的文件、经下载文件及/或等等。
在此实施方案中,将在文件列表320内表示的文件中的数者展示为被指定为离线可用。在列325中以已被完全填充的实心框图标(与可双态切换到实心框图标的开口框图标形成对比)展示指定为离线可用的文件。在一些实施方案中,文件中的一或多者的离线可用性可由用户经由计算装置(例如,图1中所展示的计算装置110)指定。在此类实施方案中,指定了离线可用性的文件可存储于计算装置的本地存储器中。在一些实施方案中,如果计算装置的本地存储器不具有充足空间,那么可不指定额外文件的离线可用性。
在此实施方案中,在文件列表320内表示的文件可处于数个状态中的一者中。在一些实施方案中,可基于文件的类别而指定所述状态中的一或多者。在一些实施方案中,可基于最近(或当前)已将文件高速缓存还是未高速缓存于计算装置的本地存储器中而指定所述状态中的一或多者。在一些实施方案中,文件的状态可由用户指定(经由来自用户的计算装置的指令)。在一些实施方案中,可默认地指定文件的状态(在无来自用户的计算装置的明确指令的情况下)。在一些实施方案中,可基于与文件相关联的元数据而指定文件的状态。换句话说,文件的状态可基于类别指定、来自用户的指令、默认、最近已如何在本地高速缓存文件或是否未高速缓存文件(未在本地高速缓存)及/或等等的任何组合。在一些实施方案中,可在用户接口300内以图标、色彩方案、字体及/或另一指定来表示在文件列表320内表示的处于特定状态中的文件,以使得用户可容易地识别文件的状态。
举例来说,由于文件A被指定为(例如,钉选为)离线可用性文件,因此其可处于离线可用状态中。在此实施方案中,可通过实心框图标容易地将文件A识别为可用于离线处理。作为另一实例,由于文件H的离线可用性未被指定,因此其可处于在线可用状态中。因此,文件H可仅用于在计算装置(例如,计算装置110)与存储系统(例如,存储系统150)通信时由所述计算装置在所述存储系统上存取。在此实施方案中,与开口圆圈图标相关联的文件为web文件。举例来说,文件G与开口圆圈相关联且为web文件。即使未由用户明确地指定离线可用性,web文件也可处于在线可用状态中。在一些实施方案中,web文件的默认状态可为在线可用状态。在一些实施方案中,可使用离线可用的web应用程序的扩展来存取web文件。在一些实施方案中,也可使得高速缓存于本地存储器中(但并非web文件或未指定离线可用性)的文件成为离线可用的(直到其被从高速缓冲存储器移除为止),例如下文关于图4进一步详细地论述。
在一些实施方案中,高速缓存于本地存储器中的文件可为已在阈值时间周期内存取的经最近经存取文件。因此,明确钉选的至少一些文件可为已在所述阈值时间周期之外存取且未经高速缓存(当前未高速缓存于计算装置的本地存储器中,因为最近文件尚未被存取)的文件。当明确钉选时,可将未经高速缓存文件移动到本地存储装置且对其进行高速缓存。
图3中所展示的用户接口300或其衍生物可由计算装置(例如,图1中所展示的计算装置110)处的一或多个应用程序(例如,Web应用程序、本机应用程序)使用。举例来说,可选择在用户接口300中所展示的文件列表320内表示的文件中的一或多者并经由电子邮件应用程序将其附加到消息。在一些实施方案中,可使用相片编辑应用程序或字处理应用程序来存取在用户接口300中所展示的文件列表320内表示的文件中的一或多者。
图4是图解说明实施用于从基于云的存储系统450(例如,图1中所展示的存储系统150)取出(高速缓存)文件以供存储于本地存储器412(例如,图1中所展示的本地存储器112)中以及从本地存储器412驱除经高速缓存文件的实例性方法的文件系统400的图式。图4中所展示且下文所描述的方法是以实例方式给出的。在各种实施方案中,取出及/或驱除文件的次序可为不同的。在以下论述中,将描述用于取出(高速缓存)文件的实例性方法,且接着将描述用于(从本地存储器)驱除经高速缓存文件的对应方法。
可使用上文关于图1到3所论述的技术及/或设备来实施图4中所展示的方法。另外,可以动态方式实施图4中所图解说明的方法。例如,可基于若干个因素(例如修改文件、删除文件、打开文件、关闭文件、将文件指定为离线可用(钉选)、将文件取消指定为离线可用(取消钉选)及/或等等)而动态地(在正进行的基础上)取出(高速缓存)及/或驱除(移除)文件。因此,可基于若干因素(例如,刚刚描述的因素)而不断地改变高速缓存(存储)于本地存储器412中(例如,离线可用)的特定文件。而且,从本地存储器412中所包含的文件高速缓冲存储器高速缓存及/或驱除文件可基于有多少本地存储器用于经高速缓存的文件及/或执行所请求操作(例如,用户的请求)所需的本地存储器412的量。在一些实施方案中,可基于可用于包含本地存储器412的本地计算装置的数据网络接入类型而执行或不执行文件高速缓存。例如,如果仅蜂窝式数据网络接入为可用的,那么作为一实例,可暂停文件高速缓存直到有线或WiFi网络接入可用为止。
如图4中所展示,可根据优先级层次高速缓存(取出、预取)文件。例如,在文件系统400中,由用户打开的文件(打开的文件)420可以最高优先级高速缓存于本地存储器412中。因此,当用户登录到包含本地存储器412的计算系统中且提供将打开云存储系统450上的特定文件的指示(例如,将在字处理器中打开文档文件的指示)时,将从云存储系统450取出所述特定文件并将其高速缓存于本地存储器412中。然而,在一些实施方案中,甚至在用户打开时,某些文件类型也可不高速缓存于本地存储器412中。例如,在文件系统400中,Web文件(例如Web文件10)可不高速缓存于本地存储器412中,因为此类文件的处理可由云环境内的Web应用程序处置,且在本地高速缓存此类文件可能不存在任何优点。
还如图4中所展示,经钉选文件420可以第二最高优先级(在打开的文件之后)高速缓存于本地存储器412中。在实例性实施方案中,在打开的文件(用户打开的文件)420的高速缓存完成之后,文件系统400可进行到高速缓存经钉选文件430(由用户指定为离线可用的文件,例如关于图3所论述)。在一些实施例中,如果达到(或超过)可用于文件高速缓存的本地存储器412的阈值量,例如在高速缓存打开的文件420或经钉选文件430时,文件系统400(例如,包含本地存储器412的计算装置)可执行驱除过程(例如下文所描述)以释放本地存储器412中的存储空间以使文件预取(高速缓存)继续。或者,文件系统400可中断(至少临时地)文件高速缓存。在其它实施例中,如果达到(或超过)可用于文件高速缓存的本地存储器412的阈值量,那么可向用户提供指示应(需要)关闭一或多个打开的文件及/或应(需要)将一或多个文件取消钉选(取消指定为离线可用)以便允许文件高速缓存继续的通知。
在图4中所展示的实例中,如果接收到将文件指定为被钉选的指示且所述文件先前高速缓存于本地存储器412中,那么可不重新高速缓存(重新取出)所述文件。同样地,如果接收到打开文件的指示且所述文件先前高速缓存于本地存储器412中,那么可不重新高速缓存(重新取出)所述文件。
在对打开的文件420及经钉选文件430的高速缓存完成之后,文件系统400可接着基于与给定(登录的)用户相关联的文件的各种属性而从云存储系统450预取(高速缓存)额外文件440(以供存储于本地存储器412中)。在文件系统400中,云存储系统450可针对给定用户遍历目录结构以便建构相关文件属性的列表。此遍历可响应于用户存取他或她在云存储系统450上的文件中的任一者而执行或可作为用户的登录过程的部分而执行。
在实例性实施方案中,在高速缓存打开的文件420及经钉选文件430之后,文件系统400可高速缓存最近已由用户存取(例如,由用户检视及/或由用户修改)且与用户相关联(由用户拥有)的预定数目个文件(例如,50个文件、100个文件或200个文件),例如,最近经检视/经修改(经存取)文件442。将高速缓存(取出)哪些最近经存取文件442的确定可基于用户的所存储文件中包含于云存储系统450中的每一者的一或多个相应文件属性(例如,在上文所论述的文件目录遍历期间收集)。例如,经检查以确定将高速缓存哪些文件的文件属性可包含“lastViewedByMeDate”属性或“modifiedByMeDate”属性。
举例来说,如果将高速缓存的最近经存取文件442的预定数目为50个文件,那么存储器系统400可高速缓存25个最近经修改文件及25个最近经检视(但未经修改)文件。可首先高速缓存或可以与25个最近经检视文件交替的方式高速缓存25个最近经修改文件。在另一实施方案中,存储器系统400可高速缓存可或可不包含最近经修改文件的50个最近经检视文件。在又一实施例中,存储器系统400可高速缓存50个最近经修改文件且不高速缓存仅最近经检视(且未经修改)的文件。如先前所论述,如果达到(或超过)可用于文件高速缓存的本地存储器412的阈值量,那么文件系统400可执行驱除过程(例如下文所描述)以释放本地存储器412中的存储空间以允许文件预取(高速缓存)继续,或替代地,文件系统400可停止将文件高速缓存于本地存储器412中。存储阈值量可作为本地存储器412中的总存储空间的百分比来计算或可规定为本地存储器412中的固定存储空间量。而且,如果经高速缓存文件的总数目达到指示所允许的经高速缓存文件的上限的阈值(例如,500、1,000、5,000等),那么文件系统400可停止高速缓存文件。
在高速缓存最近经存取文件442之后,例如上文所描述,文件系统400可接着高速缓存最近已与给定(登录的)用户共享的预定数目个文件(例如通过使用与给定(登录的)用户相关联(由用户拥有)的文件的相应“sharedWithMeDate”文件属性),例如,最近经共享文件444。举例来说,如果将高速缓存的最近经共享文件444的预定数目为25,那么文件系统400可高速缓存最近已与给定用户共享(且先前由于文件打开、被钉选或最近被存取而未高速缓存)的25个文件。在实例性实施方案中,文件系统400可以此方式高速缓存最近经共享文件444直到已高速缓存预定数目个最近经共享文件(例如,25个文件)为止。在其它实施例中,如图4中所展示,对最近经共享文件444的高速缓存可与对最近经存取文件442的高速缓存合并。举例来说,如果将高速缓存预定数目50个文件,那么文件系统400可针对给定用户在最近经修改文件、最近经检视文件及/或最近经共享文件之间进行交替直到已高速缓存预定数目个文件(50个文件)为止。或者,如果达到(或超过)可用于经高速缓存文件的存储空间的阈值量,那么文件系统400可停止高速缓存文件。
在对预定数目个最近经共享文件444的高速缓存完成之后,例如刚刚所描述,文件系统400可接着高速缓存“相关”文件446。相关文件446可为与一或多个先前经高速缓存文件(例如,打开的文件420、经钉选文件430、最近经存取文件442及/或最近经共享文件444)相关的文件。举例来说,相关文件446可为在与先前经高速缓存文件相同的目录中的文件。在其它实施方案中,相关文件446可为与先前经高速缓存文件相同的文件类型的文件。在再一些实施方案中,可使用其它准则来确定先前经高速缓存文件的一或多个相关文件。
在文件系统400中,用于高速缓存相关文件446的若干种方法为可能的。在一个实施方案中,可确定每一先前经高速缓存文件的所有相关文件446(以与高速缓存那些文件相同的次序),且给定先前经高速缓存文件的所有相关文件446可在高速缓存下一先前经高速缓存文件的相关文件446之前被高速缓存。举例来说,如果先前高速缓存了三个文件:第一个是文件A、第二个是文件B且第三个是文件C,那么在此实施方案中,文件A的所有相关文件将在高速缓存文件B或文件C的任何相关文件446之前被高速缓存。同样地,文件B的所有相关文件446将在高速缓存文件C的任何相关文件之前被高速缓存。因此,文件C的相关文件446将最后被高速缓存,即,在高速缓存文件A的相关文件446、后续接着文件B的相关文件446之后。
在另一实施方案中,可通过在先前经高速缓存文件中的每一者的相关文件446之间进行交替而高速缓存相关文件446,例如通过轮流高速缓存每一先前经高速缓存文件的一个相关文件。再次使用先前经高速缓存文件文件A、文件B及文件C的图解说明,在此实例中,可高速缓存文件A的一个相关文件、后续接着文件B的一个相关文件、后续接着文件C的一个相关文件,接着重复所述序列。在此方法中,可例如以与上文所描述的类似的方式使用若干准则(例如“lastViewedByMeDate”属性、“modifiedByMeDate”属性及/或“sharedWithMeDate”属性)来确定高速缓存(例如,在每一反复处)给定先前经高速缓存文件的相关文件446的次序。
当高速缓存相关文件446时,所述过程可继续直到高速缓存所有相关文件446,经高速缓存文件的数目达到经高速缓存文件阈值数目或经高速缓存文件(打开的文件420、经钉选文件430、最近经存取文件442、最近经共享文件444及相关文件446)使用了阈值量的数据存储(本地存储器412中)为止。而且,如果以所描述的交替方式高速缓存相关文件446,那么一旦也高速缓存了给定先前经高速缓存文件的所有相关文件446,便可跳过给定先前经高速缓存文件的相关文件高速缓存以进行后续反复。
在一些实施例中,相关文件446的集合可为极大的(例如,与本地存储器412中的可用高速缓冲存储器存储空间相比)。在其它实施例中,可难以(或不可能)确定真正与先前经高速缓存文件相关的相关文件446的集合,因为未良好定义给定用户的文件目录结构(例如,所有用户的文件存储于单个目录或小数目的目录中)。在此类例子中,文件系统400可经配置以放弃高速缓存相关文件。
在其它实施例中,可以其它方式确定相关文件446。例如,给定先前经高速缓存文件的相关文件446可包含在所述先前经高速缓存文件位于其中的目录的子目录或父目录(例如,其并非根目录)中包含的文件。在其它实施方案中,可以再一些方式确定相关文件446。例如,相关文件446可包含位于由用户(登录的用户)浏览的目录中的文件。取决于特定实施方案,可使用若干种其它方法来确定相关文件446。
如上文所指示,高速缓存到本地存储器412的文件可遭受一或多个限制。例如,本地存储器412中可用于文件高速缓存的存储空间的量可受限。在一些实施方案中,可将本地存储器412中可用于文件高速缓存的存储空间量定义为固定存储空间量。在其它实施例中,可将本地存储器412中可用于文件高速缓存的存储空间量定义为本地存储器412中的总存储空间的百分比。在再一些实施例中,可存储于本地存储器412中的经高速缓存文件的数目可限制于经高速缓存文件的阈值数目。不管用以确定本地存储器412中可用于文件高速缓存的空间的量的准则如何,都将发生其中将高速缓冲存储器确定为“满”从而指示无法高速缓存额外文件的情形。在此类情形中,可例如以下文所描述的方式在文件系统400中执行驱除过程(由图4中的箭头460指示)。
在实例性实施方案中,当确定本地存储器412中所包含的文件高速缓冲存储器为满时,可使用实质上为曾用以高速缓存在文件高速缓冲存储器中所包含的文件的优先级层次的逆层次的优先级层次来驱除文件。所驱除的文件的数目将取决于特定实施方案。举例来说,可驱除文件直到释放可用于文件高速缓存的给定存储量为止。在其它实施例中,可驱除文件直到释放总文件高速缓冲存储器存储空间的某一百分比为止。在再一些实施例中,可驱除文件直到释放高速缓存特定文件所需的文件高速缓冲存储器存储空间量为止。在再一些实施例中,可驱除文件直到经高速缓存文件的数目低于驱除阈值为止。可使用若干种其它方法来确定要驱除的文件的数目(数据量)。
可通过文件的相应最近时间戳来进一步确定从高速缓冲存储器驱除所述文件的次序。例如,当首先高速缓存文件时,可赋予其指示其何时被高速缓存的时间戳(日期/时间戳)。在一些实施例中,每次存取经高速缓存文件时,可更新其时间戳以反映相应经高速缓存文件的最后存取(检视及/或修改)的时间。因此,驱除过程460可不以经高速缓存文件被高速缓存的确切相反次序来驱除所述经高速缓存文件,因为驱除过程可基于最近时间戳(来自高速缓存的时间的时间戳或来自最近存取的时间戳)。
在实例性实施例中,驱除过程460可按以下方式从本地存储器412中的文件高速缓冲存储器驱除文件。可首先驱除相关文件446,其中具有最旧时间戳的相关文件446首先被驱除且具有最新时间戳的相关文件最后被驱除。如上文所指示,一旦释放预定量的文件高速缓冲存储器存储空间,便可中断文件驱除过程460。在此实例中,一旦驱除所有经高速缓存相关文件446,便可以最旧时间戳开始驱除最近经共享文件444,按相反次序进行到具有最新时间戳的最近经共享文件444。再次,一旦释放预定量的文件高速缓冲存储器存储空间,便可中断文件驱除过程460。一旦驱除所有经高速缓存的最近经共享文件444,便可以最旧时间戳开始驱除最近经存取文件442,按相反次序进行到具有最新时间戳的最近经存取文件442。再次,一旦释放预定量的文件高速缓冲存储器存储空间,便可中断文件驱除过程460。在其它实施方案中,可合并经高速缓存的最近经共享文件444与经高速缓存的最近经存取文件442的驱除,其中这两个经高速缓存文件集合是基于其时间戳而从最旧时间戳到最新时间戳作为一群组被驱除。以与上文所论述的相似的方式,一旦释放预定量的文件高速缓冲存储器存储空间,便可中断文件驱除。当然,可使用若干种其它方法来从文件高速缓冲存储器驱除文件。
在从本地存储器412的文件高速缓冲存储器驱除所有文件440且仍未释放所需文件高速缓冲存储器存储空间的量的情况下,可向用户(例如,登录的用户)提供请求用户将文件取消钉选及/或关闭文件以便允许文件高速缓存继续进行的通知。在其它实施方案中,可由文件系统400自动地将文件取消钉选,例如通过使用与用于从文件高速缓冲存储器驱除文件440的准则类似的准则。举例来说,可基于文件的时间戳(最旧到最新)而自动地将其取消钉选。
图5是图解说明与文件处置相关的方法的流程图。如图5中所展示,建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分(框500)。
如图5中所展示,存储表示多个文件的文件列表,其中所述多个文件的至少第一部分存储于所述计算装置的本地存储器中且所述多个文件的第二部分存储于所述存储系统中(框510)。在一些实施例中,所述文件列表可存储于所述云环境处且从所述云环境存取。在一些实施例中,所述文件列表可存储于所述计算装置处且从所述计算装置存取。
基于与来自所述文件列表的文件相关联的文件类别而指定来自所述文件列表的所述文件的离线可用性(框520)。在一些实施例中,可基于与所述文件相关联的类别而指定所述文件。在一些实施例中,可基于由用户经由所述计算装置触发的指令而指定所述文件。在一些实施例中,可默认地或基于所述文件的高速缓存状态而指定所述文件。
图6A到6C是图解说明与文件高速缓存相关的方法的流程图。图6A到6C中所展示的方法可使用(举例来说)本文中所描述的文件处置方法连同彼此一起实施。如图6A中所展示,建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分(框600)。
如图6A中所展示,接收打开存储于所述存储系统上的第一文件的请求(框605)。响应于打开所述第一文件的所述请求,将所述第一文件高速缓存于所述计算装置的本地存储器中,所述第一文件是以第一优先级高速缓存的(框610)。在一些实施例中,所述第一文件可为以所述第一优先级高速缓存的多个文件中的一者。所述多个文件(具有所述第一优先级)可响应于打开所述多个文件中的每一者的相应请求而高速缓存于所述计算装置的所述本地存储器中。
还如图6A中所展示,接收使存储于所述存储系统上的第二文件成为离线可用的请求(框615)。响应于使所述第二文件成为离线可用的所述请求,将所述第二文件高速缓存于所述计算装置的所述本地存储器中(框620),所述第二文件是以低于所述第一优先级的第二优先级高速缓存的。在一些实施例中,所述第二文件可为以所述第二优先级高速缓存的多个文件中的一者。所述多个文件(具有所述第二优先级)是响应于使所述多个文件中的每一者成为离线可用的相应请求而高速缓存于所述计算装置的所述本地存储器中。
如图6A中所进一步展示,预测性地将存储于所述存储系统中的第三文件高速缓存于所述计算装置的所述本地存储器中(框625)。所述第三文件可基于所述第三文件的一或多个属性而选择,且所述第三文件可以低于所述第二优先级的第三优先级而高速缓存。
所述第三文件(框625处)可为以所述第三优先级高速缓存的多个文件中的一者。在一些实施例中,以所述第三优先级高速缓存所述多个文件可包含:基于相应最后修改日期而高速缓存第一预定数目个文件;基于相应最后检视日期而高速缓存第二预定数目个文件;基于相应共享日期而高速缓存第三预定数目个文件,及/或基于其在所述存储系统中与一或多个先前经高速缓存文件的关系而高速缓存第四预定数目个文件。在其它实施例中,以所述第三优先级高速缓存所述多个文件可包含通过在基于存储于所述存储系统中的文件的相应最后修改日期高速缓存文件与基于所述文件的相应最后检视日期高速缓存文件之间进行反复而高速缓存预定数目个文件。
在某些实施例中,(图6A的)所述第一文件、所述第二文件及所述第三文件可基于其相应优先级且基于所述计算装置的所述本地存储器中的可用文件高速缓冲存储器存储容量的量而高速缓存于所述计算装置的所述本地存储器中。例如,可以优先级的次序(例如,针对相同高速缓存优先级的文件也使用日期戳)高速缓存文件,直到满足或超过文件高速缓存阈值(例如,文件数目、数据量及/或等等)为止,例如本文中所论述。
如上文所指示,图6B中所图解说明的方法可连同图6A的方法一起来实施,且出于图解说明的目的,将如此进行描述。如图6B中所展示,接收打开存储于所述存储系统上的第四文件的请求(框630)。响应于接收到所述打开所述第四文件的所述请求,如果将所述第四文件高速缓存于所述计算装置的所述本地存储器中将超过文件高速缓存阈值,那么从所述计算装置的所述本地存储器驱除(移除)所述第三文件(框635)。以所述第一优先级将所述第四文件高速缓存于所述计算装置的所述本地存储器中(框640)。
如上文所指示,图6C中所图解说明的方法可(以与图6B中所图解说明的方法相似的方式)连同图6A的方法一起来实施,且出于图解说明的目的,将如此进行描述。如图6C中所展示,接收从所述计算装置的所述本地存储器打开所述第三文件的请求(框645)。响应于框645的请求,将所述第三文件的所述高速缓存优先级从所述第三优先级改变为所述第一优先级(框650),及改变所述第三文件的最后检视日期(655)。
图7是图解说明与经高速缓存文件的驱除相关的方法的流程图。如图7中所展示,建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分(框700)。所述计算装置可包含经配置以从所述存储系统高速缓存文件的本地存储器。接收已满足或超过所述计算装置的所述本地存储器的文件高速缓存阈值的指示(框710)。响应于框710处的指示,从所述计算装置的所述本地存储器驱除一组经高速缓存文件的至少一部分(例如)直到满足驱除阈值为止。所述组经高速缓存文件的所述至少一部分可是从最低高速缓存优先级到最高高速缓存优先级而驱除且基于所述组经高速缓存文件中的每一文件的相应时间戳而驱除的。如图7中所展示,在驱除具有所述第一高速缓存优先级或所述第二高速缓存优先级的文件之前请求来自用户的确认。在一些实施例中,可不在驱除具有第一高速缓存优先级的文件(打开的文件)或具有第二高速缓存优先级的文件(经钉选文件)之前请求此确认。
在一些实施例中,所述组经高速缓存文件可包含具有第一高速缓存优先级的第一文件,所述第一文件已响应于打开所述第一文件的请求而高速缓存。所述组经高速缓存文件还可包含具有第二高速缓存优先级的第二文件,所述第二文件已响应于使所述第二文件成为离线可用的请求而高速缓存,所述第二优先级低于所述第一优先级。所述组经高速缓存文件可进一步包含具有第三高速缓存优先级的第三文件,所述第三文件已基于最后修改日期及最后检视日期中的至少一者而高速缓存,所述第三高速缓存优先级低于所述第二高速缓存优先级。所述经高速缓存文件可仍进一步包含具有第四高速缓存优先级的第四文件,所述第四文件已基于共享所述文件的日期而高速缓存,所述第四高速缓存优先级低于所述第三高速缓存优先级。所述组经高速缓存文件还可进一步包含具有第五高速缓存优先级的第五文件,所述第五高速缓存优先级低于所述第四高速缓存优先级,所述第五文件已基于其在所述存储系统中与所述第一文件、所述第二文件、所述第三文件及/或所述第四文件中的至少一者的关系而高速缓存。
以与上文关于图6C所论述的类似的方式,可接收存取框720的所述组经高速缓存文件中的文件的请求,其中请求存取的所述文件具有低于所述最高高速缓存优先级的高速缓存优先级。响应于此请求,可将请求存取的所述文件的所述高速缓存优先级改变为所述最高高速缓存优先级(例如,第一高速缓存优先级)。
在一般方面中,一种计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分。所述过程可包含存取包含存储表示多个文件的文件列表的用户接口,其中所述多个文件的至少第一部分存储于所述计算装置的本地存储器中且所述多个文件的第二部分存储于所述存储系统中。
在另一一般方面中,一种计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分。所述过程可包含存储表示多个文件的文件列表,其中所述多个文件的至少第一部分存储于所述计算装置的本地存储器中且所述多个文件的第二部分存储于所述存储系统中,且可包含响应于从所述计算装置接收的指令中的至少一者或基于与所述文件列表的至少一部分相关联的文件类别而指定所述文件列表的所述部分的离线可用性。
在又一方面中,一种设备可包含经配置以在云环境内操作且经配置以存储多个文件的存储系统。所述多个文件的至少第一部分存储于所述存储系统中,且所述多个文件的第二部分在计算装置的本地存储器中同步。在一些实施方案中,所述存储系统包含文件管理器,所述文件管理器经配置以向所述计算装置提供包含表示所述多个文件的列表的用户接口。
在又一一般方面中,一种计算机可读存储媒体可经配置以存储在执行时致使一或多个处理器执行一过程的指令。所述过程可包含建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分。所述过程可包含存储多个文件且响应于来自第一计算装置的下载请求而从存储系统向第一计算装置发送所述多个文件的一部分以用于高速缓存于所述第一计算装置处。向第二计算装置发送包含表示所述多个文件的文件列表且包含所述多个文件的高速缓存于第一计算装置处的所述部分的用户接口。
本文中所描述的各种技术的实施方案可以数字电子电路或者以计算机硬件、固件、软件或以其组合来实施。实施方案可实施为计算机程序产品,即,有形地体现于信息载体中(例如,体现于机器可读存储装置(计算机可读媒体)中)以由数据处理设备(例如,可编程处理器、一计算机或多个计算机)执行或控制所述数据处理设备的操作的计算机程序。因此,计算机可读存储媒体可经配置以存储在执行时致使处理器(例如,主机装置处的处理器、计算装置处的处理器)执行一过程的指令。可以任何形式的程序设计语言(包含编译语言或解译语言)来编写计算机程序(例如,上文所描述的计算机程序),且可以任何形式来部署所述计算机程序,包括部署为独立程序或部署为模块、组件、子例程或适合在计算环境中使用的其它单元。计算机程序可经部署以在一个计算机上或在位于一个位点处或跨越多个位点分布且由通信网络互连的多个计算机上处理。
方法步骤可由执行计算机程序的一或多个可编程处理器执行,以通过对输入数据进行操作并产生输出来执行功能。方法过程还可由专用逻辑电路(例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路))执行,且设备可实施为所述专用逻辑电路。
举例来说,适合于处理计算机程序的处理器包含通用微处理器及专用微处理器两者,以及任何种类的数字计算机的任何一或多个处理器。一般来说,处理器将从只读存储器或随机存取存储器或两者接收指令及数据。计算机的元件可包括用于执行指令的至少一个处理器及用于存储指令及数据的一或多个存储器装置。一般来说,计算机还可包含用于存储数据的一或多个大容量存储装置(例如,磁盘、磁光盘或光盘)或经操作地耦合以从所述一或多个大容量存储装置接收数据或向其传送数据或既接收数据又传送数据。适合于体现计算机程序指令及数据的信息载体包含所有形式的非易失性存储器,举例来说,包含:半导体存储器装置,例如EPROM、EEPROM及快闪存储器装置;磁盘,例如内部硬磁盘或可装卸磁盘;磁光盘;以及CD-ROM及DVD-ROM光盘。所述处理器及存储器可由专用逻辑电路补充或并入于专用逻辑电路中。
为提供与用户的交互,实施方案可实施于计算机上,所述计算机具有用于向用户显示信息的显示装置(例如,阴极射线管(CRT)、发光二极管(LED)或液晶显示器(LCD)监视器)及所述用户可借以向计算机提供输入的键盘及指向装置(例如,鼠标或轨迹球)。也可使用其它种类的装置来提供与用户的交互;举例来说,提供给所述用户的反馈可为任何形式的感观反馈,例如,视觉反馈、听觉反馈或触觉反馈;且来自所述用户的输入可以任何形式来接收,包含声音、语音或触觉输入。
实施方案可实施于计算系统(包含后端组件,例如,作为数据服务器;或包含中间件组件,例如,应用程序服务器;或包含前端组件,例如,具有用户可经由其来与实施方案交互的图形用户接口或Web浏览器的客户端计算机;或此类后端、中间件或前端组件的任何组合)中。组件可由任何数字数据通信形式或媒体(例如,通信网络)互连。通信网络的实例包含局域网(LAN)及广域网(WAN),例如因特网。
在本说明书通篇中对“一个实施方案”或“一实施方案”的提及意指结合所述实施方案所描述的特定特征、结构或特性包含于至少一个实施方案中。因此,在本说明书通篇的各个地方中短语“在一个实施方案中”或“在一实施方案中”的出现未必全部指代同一实施方案。另外,术语“或”打算意指包含性“或”而非互斥性“或”。
尽管本文已图解说明及描述了所描述实施方案的某些特征,但所属领域的技术人员现在将能想出许多修改、替代、改变及等效形式。因此,应理解,所附权利要求书打算涵盖归属于所述实施方案的范围内的所有此类修改及改变。应理解,已仅以举例而非限制的方式呈现所述实施方案,且可做出形式及细节上的各种改变。本文中所描述的设备及/或方法的任何部分可以任何组合形式来组合,互斥的组合除外。本文中所描述的实施方案可包含所描述的不同实施方案的功能、组件及/或特征的各种组合及/或子组合。
Claims (21)
1.一种非暂时性计算机可读存储媒体,其经配置以存储在执行时致使一或多个处理器执行一过程的指令,所述过程包括:
建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分;
存储表示多个文件的文件列表,其中所述多个文件的至少第一部分存储于所述计算装置的本地存储器中且所述多个文件的第二部分存储于所述存储系统中;以及
基于与来自所述文件列表的文件相关联的文件类别而指定来自所述文件列表的所述文件的离线可用性。
2.根据权利要求1所述的非暂时性计算机可读存储媒体,其中所述存储系统作为所述计算装置的主要存储系统而操作,且所述计算装置的所述本地存储器作为所述存储系统的高速缓冲存储器而操作。
3.根据权利要求1或权利要求2所述的非暂时性计算机可读存储媒体,其中所述文件列表包含:
对使用web应用程序产生并存储于所述存储系统中的web文件的参考,
对使用安装于所述计算装置处的本地应用程序产生的客户端文件的参考,及
对来自在所述云环境外部操作的远程源的远程源文件的参考。
4.根据前述权利要求中任一权利要求所述的非暂时性计算机可读存储媒体,其中来自所述文件列表的所述文件为来自所述文件列表的第一文件,所述文件类别为web文件类别,
所述过程进一步包括:
响应于从所述计算装置接收的第一指令而指定来自所述文件列表的至少第二文件的离线可用性,所述第二文件为未经高速缓存文件;以及
指定来自所述文件列表的高速缓存于所述本地存储器中的至少第三文件的离线可用性。
5.根据前述权利要求中任一权利要求所述的非暂时性计算机可读存储媒体,其中所述文件列表为横跨所述计算装置的所述本地存储器及所述存储系统的分配给所述计算装置的一部分的单一文件列表。
6.根据前述权利要求中任一权利要求所述的非暂时性计算机可读存储媒体,其中所述计算装置为远程连接到所述云环境的第一计算装置,
所述过程进一步包括:
在远程连接到所述云环境的第二计算装置处存取所述文件列表,在于所述第二计算装置处存取时的所述文件列表和在于所述第一计算装置处存取时的所述文件列表相同。
7.根据前述权利要求中任一权利要求所述的非暂时性计算机可读存储媒体,其中所述指定所述文件包含在未从所述计算装置接收到明确指令的情况下基于所述文件类别而指定来自所述文件列表的所述文件的离线可用性。
8.根据权利要求1、2、3、5、6或7中任一权利要求所述的非暂时性计算机可读存储媒体,其中来自所述文件列表的所述文件为基于所述文件类别而被指定为处于离线可用状态中的第一文件,所述文件列表包含第二文件,所述第二文件基于所述第二文件最近在所述计算装置的所述本地存储器处被存取而被指定为处于所述离线可用状态中,所述文件列表包含响应于来自所述计算装置的指令而被指定为处于所述离线可用状态中的第三文件,且所述文件列表包含被指定为处于在线可用状态中的第四文件。
9.一种非暂时性计算机可读存储媒体,其经配置以存储在执行时致使一或多个处理器执行一过程的指令,所述过程包括:
建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分;
接收打开存储于所述存储系统上的第一文件的请求;
响应于打开所述第一文件的所述请求,将所述第一文件高速缓存于所述计算装置的本地存储器中,所述第一文件是以第一优先级高速缓存的;
接收使存储于所述存储系统上的第二文件离线可用的请求;
响应于使所述第二文件离线可用的所述请求,将所述第二文件高速缓存于所述计算装置的所述本地存储器中,所述第二文件是以低于所述第一优先级的第二优先级高速缓存的;以及
预测性地将存储于所述存储系统中的第三文件高速缓存于所述计算装置的所述本地存储器中,所述第三文件是基于所述第三文件的一或多个属性而选择的,所述第三文件是以低于所述第二优先级的第三优先级高速缓存的。
10.根据权利要求9所述的非暂时性计算机可读存储媒体,其中所述第一文件、所述第二文件及所述第三文件是基于其相应优先级且基于所述计算装置的所述本地存储器中的可用文件高速缓冲存储器存储容量的量而高速缓存于所述计算装置的所述本地存储器中。
11.根据权利要求9或权利要求10所述的非暂时性计算机可读存储媒体,所述过程进一步包括:
接收打开存储于所述存储系统上的第四文件的请求;以及
响应于接收到所述打开所述第四文件的所述请求:
如果将所述第四文件高速缓存于所述计算装置的所述本地存储器中将超过文件高速缓存阈值,那么从所述计算装置的所述本地存储器驱除所述第三文件;以及
以所述第一优先级将所述第四文件高速缓存于所述计算装置的所述本地存储器中。
12.根据权利要求9到11中任一权利要求所述的非暂时性计算机可读存储媒体,其中所述第一文件为以所述第一优先级高速缓存的多个文件中的一者,所述多个文件是响应于打开所述多个文件中的每一者的相应请求而高速缓存于所述计算装置的所述本地存储器中。
13.根据权利要求9到12中任一权利要求所述的非暂时性计算机可读存储媒体,其中所述第二文件为以所述第二优先级高速缓存的多个文件中的一者,所述多个文件是响应于使所述多个文件中的每一者离线可用的相应请求而高速缓存于所述计算装置的所述本地存储器中。
14.根据权利要求9到13中任一权利要求所述的非暂时性计算机可读存储媒体,其中:
所述第三文件为以所述第三优先级高速缓存的多个文件中的一者;且
以所述第三优先级高速缓存所述多个文件包含:
基于相应最后修改日期而高速缓存第一预定数目个文件;
基于相应最后检视日期而高速缓存第二预定数目个文件;以及
基于相应共享日期而高速缓存第三预定数目个文件。
15.根据权利要求14所述的非暂时性计算机可读存储媒体,其中以所述第三优先级高速缓存所述多个文件进一步包含基于其在所述存储系统中与一或多个先前经高速缓存文件的关系而高速缓存第四预定数目个文件。
16.根据权利要求9到13中任一权利要求所述的非暂时性计算机可读存储媒体,其中:
所述第三文件为以所述第三优先级高速缓存的多个文件中的一者;且
以所述第三优先级高速缓存所述多个文件包含通过在基于相应最后修改日期高速缓存文件与基于相应最后检视日期高速缓存文件之间进行反复而高速缓存预定数目个文件。
17.根据权利要求9到16中任一权利要求所述的非暂时性计算机可读存储媒体,所述过程进一步包括:
接收从所述计算装置的所述本地存储器打开所述第三文件的请求;
将所述第三文件从所述第三优先级改变为所述第一优先级;以及
改变所述第三文件的最后检视日期。
18.一种非暂时性计算机可读存储媒体,其经配置以存储在执行时致使一或多个处理器执行一过程的指令,所述过程包括:
建立计算装置与在云环境内操作的存储系统之间的通信链路的至少一部分,所述计算装置包含经配置以从所述存储系统高速缓存文件的本地存储器;
接收已满足或超过所述计算装置的所述本地存储器的文件高速缓存阈值的指示;以及
响应于所述指示,从所述计算装置的所述本地存储器驱除一组经高速缓存文件的至少一部分直到满足驱除阈值为止,所述组经高速缓存文件的所述至少一部分是从最低高速缓存优先级到最高高速缓存优先级且基于所述组经高速缓存文件中的每一文件的相应时间戳而驱除的。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其中所述组经高速缓存文件包含:
具有第一高速缓存优先级的第一文件,所述第一文件已响应于打开所述第一文件的请求而高速缓存;
具有第二高速缓存优先级的第二文件,所述第二文件已响应于使所述第二文件离线可用的请求而高速缓存,所述第二优先级低于所述第一优先级;
具有第三高速缓存优先级的第三文件,所述第三文件已基于最后修改日期及最后检视日期中的至少一者而高速缓存,所述第三高速缓存优先级低于所述第二高速缓存优先级;
具有第四高速缓存优先级的第四文件,所述第四文件已基于共享所述文件的日期而高速缓存,所述第四高速缓存优先级低于所述第三高速缓存优先级;以及
具有第五高速缓存优先级的第五文件,所述第五高速缓存优先级低于所述第四高速缓存优先级,所述第五文件已基于其在所述存储系统中与所述第一文件、所述第二文件、所述第三文件及所述第四文件中的至少一者的关系而高速缓存。
20.根据权利要求19所述的非暂时性计算机可读存储媒体,所述过程进一步包括在驱除具有所述第一高速缓存优先级或所述第二高速缓存优先级的文件之前请求来自用户的确认。
21.根据权利要求18到20中任一权利要求所述的非暂时性计算机可读存储媒体,所述过程进一步包括:
接收存取所述组经高速缓存文件中的文件的请求,请求存取的所述文件具有低于所述最高高速缓存优先级的高速缓存优先级;以及
响应于所述请求,将请求存取的所述文件的所述高速缓存优先级改变为所述最高高速缓存优先级。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261643279P | 2012-05-05 | 2012-05-05 | |
US61/643,279 | 2012-05-05 | ||
US201261736722P | 2012-12-13 | 2012-12-13 | |
US61/736,722 | 2012-12-13 | ||
US13/841,368 | 2013-03-15 | ||
US13/841,368 US9594686B2 (en) | 2012-05-05 | 2013-03-15 | File handling within a cloud-based file system |
PCT/US2013/039411 WO2013169583A1 (en) | 2012-05-05 | 2013-05-03 | File handling within a cloud-based file system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104412249A true CN104412249A (zh) | 2015-03-11 |
CN104412249B CN104412249B (zh) | 2017-10-24 |
Family
ID=49513551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201380023770.1A Active CN104412249B (zh) | 2012-05-05 | 2013-05-03 | 基于云的文件系统内的文件处置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9594686B2 (zh) |
KR (1) | KR102097300B1 (zh) |
CN (1) | CN104412249B (zh) |
WO (1) | WO2013169583A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445467A (zh) * | 2016-09-28 | 2017-02-22 | 广东芬尼克兹节能设备有限公司 | 一种操作变量同步方法及系统 |
CN106909315A (zh) * | 2015-12-23 | 2017-06-30 | 三星电子株式会社 | 文件管理方法及电子装置 |
WO2018065847A1 (en) * | 2016-10-04 | 2018-04-12 | International Business Machines Corporation | Consistent hashing configurations supporting multi-site replication |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2815582B1 (en) | 2012-01-09 | 2019-09-04 | ActiveVideo Networks, Inc. | Rendering of an interactive lean-backward user interface on a television |
US9800945B2 (en) | 2012-04-03 | 2017-10-24 | Activevideo Networks, Inc. | Class-based intelligent multiplexing over unmanaged networks |
US9594686B2 (en) | 2012-05-05 | 2017-03-14 | Google Inc. | File handling within a cloud-based file system |
US20140136578A1 (en) * | 2012-11-15 | 2014-05-15 | Microsoft Corporation | Techniques to manage virtual files |
WO2014145921A1 (en) | 2013-03-15 | 2014-09-18 | Activevideo Networks, Inc. | A multiple-mode system and method for providing user selectable video content |
EP3005712A1 (en) | 2013-06-06 | 2016-04-13 | ActiveVideo Networks, Inc. | Overlay rendering of user interface onto source video |
US20150039659A1 (en) * | 2013-07-30 | 2015-02-05 | William F. Sauber | Data location management agent using remote storage |
US9002990B1 (en) * | 2014-03-12 | 2015-04-07 | Instart Logic, Inc. | Fast cache purge in content delivery network |
US9549040B2 (en) | 2014-03-12 | 2017-01-17 | Instart Logic, Inc. | First cache purge optimization handling of unavailable nodes |
US10831731B2 (en) * | 2014-03-12 | 2020-11-10 | Dell Products L.P. | Method for storing and accessing data into an indexed key/value pair for offline access |
US9788029B2 (en) | 2014-04-25 | 2017-10-10 | Activevideo Networks, Inc. | Intelligent multiplexing using class-based, multi-dimensioned decision logic for managed networks |
US9646010B2 (en) * | 2014-08-27 | 2017-05-09 | Mokhtarzada Holdings, Llc | Method and system for expanding storage capacity of a drive using cloud storage systems |
US10523985B2 (en) * | 2014-12-24 | 2019-12-31 | Activevideo Networks, Inc. | Managing deep and shallow buffers in a thin-client device of a digital media distribution network |
US9922201B2 (en) | 2015-04-01 | 2018-03-20 | Dropbox, Inc. | Nested namespaces for selective content sharing |
US10963430B2 (en) * | 2015-04-01 | 2021-03-30 | Dropbox, Inc. | Shared workspaces with selective content item synchronization |
US20160349967A1 (en) * | 2015-05-28 | 2016-12-01 | Rockwell Automation Technologies, Inc. | Offline investigation in an industrial automation environment |
US9851965B2 (en) | 2015-06-19 | 2017-12-26 | Microsoft Technology Licensing, Llc | Storing optimization for customization resources |
US11892981B2 (en) * | 2015-08-28 | 2024-02-06 | Airwatch Llc | On demand file sync |
US11108883B2 (en) * | 2015-09-04 | 2021-08-31 | Google Llc | Systems and methods for remote network topology discovery |
US9697269B2 (en) | 2015-10-29 | 2017-07-04 | Dropbox, Inc. | Content item block replication protocol for multi-premises hosting of digital content items |
TWI581112B (zh) * | 2015-12-23 | 2017-05-01 | 南臺科技大學 | 雲端硬碟工具系統及操作方法 |
US10305729B2 (en) * | 2016-09-02 | 2019-05-28 | Nokia Of America Corporation | Systems and methods of providing an edge cloud storage and caching system operating over a local area network |
US10341436B2 (en) * | 2016-09-14 | 2019-07-02 | Dell Products L.P. | Using cloud storage as temporary cache for backup |
US10891233B2 (en) * | 2018-06-28 | 2021-01-12 | Intel Corporation | Intelligent prefetch disk-caching technology |
US11290531B2 (en) | 2019-12-04 | 2022-03-29 | Dropbox, Inc. | Immediate cloud content item creation from local file system interface |
US11150840B2 (en) * | 2020-02-09 | 2021-10-19 | International Business Machines Corporation | Pinning selected volumes within a heterogeneous cache |
US11956156B2 (en) * | 2020-09-10 | 2024-04-09 | Intel Corporation | Dynamic offline end-to-end packet processing based on traffic class |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230076A1 (en) * | 2005-04-08 | 2006-10-12 | Microsoft Corporation | Virtually infinite reliable storage across multiple storage devices and storage services |
US20080005121A1 (en) * | 2006-06-30 | 2008-01-03 | Moka5, Inc. | Network-extended storage |
WO2011023134A1 (en) * | 2009-08-28 | 2011-03-03 | Beijing Innovation Works Technology Company Limited | Method and system for managing distributed storage system through virtual file system |
CN101997929A (zh) * | 2010-11-29 | 2011-03-30 | 北京卓微天成科技咨询有限公司 | 一种云存储的数据存取的方法、装置及系统 |
CN102292698A (zh) * | 2009-02-04 | 2011-12-21 | 思杰系统有限公司 | 用于在云计算环境中自动管理虚拟资源的系统和方法 |
CN103180842A (zh) * | 2010-10-28 | 2013-06-26 | Sk电信有限公司 | 云计算系统和用于该云计算系统的数据同步方法 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6345318B1 (en) * | 1998-10-07 | 2002-02-05 | International Business Machines Corporation | System for maintaining a user-modifiable confirmation message configuration record that specifying with respect to a plurality of operations whether to communicate a confirmation message |
WO2002079993A1 (en) * | 2001-03-29 | 2002-10-10 | Reallegal.Com | Methods for synchronizing on-line and off-line transcript projects |
US6687793B1 (en) * | 2001-12-28 | 2004-02-03 | Vignette Corporation | Method and system for optimizing resources for cache management |
JP2006520032A (ja) | 2003-02-12 | 2006-08-31 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ファイルシステムデータおよびアプリケーション起動データのための確保領域を有する記憶媒体 |
JP2006524386A (ja) * | 2003-04-14 | 2006-10-26 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | ファイル記憶用割り当てクラスの選択 |
US7802065B1 (en) * | 2004-05-03 | 2010-09-21 | Crimson Corporation | Peer to peer based cache management |
US20070220417A1 (en) * | 2006-03-17 | 2007-09-20 | Sonolink Communications Systems, Llc | System and method for editing online documents |
US7711890B2 (en) * | 2006-06-06 | 2010-05-04 | Sandisk Il Ltd | Cache control in a non-volatile memory device |
KR101129092B1 (ko) * | 2008-07-31 | 2012-03-26 | 에스케이플래닛 주식회사 | 웹 서비스 제공 시스템 및 웹 서비스 제공 방법 |
US8762642B2 (en) | 2009-01-30 | 2014-06-24 | Twinstrata Inc | System and method for secure and reliable multi-cloud data replication |
EP2309701A1 (en) | 2009-10-06 | 2011-04-13 | Telefónica, S.A. | Data storage device |
US8788628B1 (en) * | 2011-11-14 | 2014-07-22 | Panzura, Inc. | Pre-fetching data for a distributed filesystem |
US8996647B2 (en) | 2010-06-09 | 2015-03-31 | International Business Machines Corporation | Optimizing storage between mobile devices and cloud storage providers |
US9361395B2 (en) * | 2011-01-13 | 2016-06-07 | Google Inc. | System and method for providing offline access in a hosted document service |
US20120185767A1 (en) * | 2011-01-14 | 2012-07-19 | Apple Inc. | Modifying application behavior |
US8924500B2 (en) * | 2011-03-29 | 2014-12-30 | Amazon Technologies, Inc. | Local storage linked to networked storage system |
US9355115B2 (en) * | 2011-11-21 | 2016-05-31 | Microsoft Technology Licensing, Llc | Client application file access |
US9773051B2 (en) * | 2011-11-29 | 2017-09-26 | Box, Inc. | Mobile platform file and folder selection functionalities for offline access and synchronization |
US9594686B2 (en) | 2012-05-05 | 2017-03-14 | Google Inc. | File handling within a cloud-based file system |
-
2013
- 2013-03-15 US US13/841,368 patent/US9594686B2/en active Active
- 2013-05-03 KR KR1020147032838A patent/KR102097300B1/ko active IP Right Grant
- 2013-05-03 WO PCT/US2013/039411 patent/WO2013169583A1/en active Application Filing
- 2013-05-03 CN CN201380023770.1A patent/CN104412249B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060230076A1 (en) * | 2005-04-08 | 2006-10-12 | Microsoft Corporation | Virtually infinite reliable storage across multiple storage devices and storage services |
US20080005121A1 (en) * | 2006-06-30 | 2008-01-03 | Moka5, Inc. | Network-extended storage |
CN102292698A (zh) * | 2009-02-04 | 2011-12-21 | 思杰系统有限公司 | 用于在云计算环境中自动管理虚拟资源的系统和方法 |
WO2011023134A1 (en) * | 2009-08-28 | 2011-03-03 | Beijing Innovation Works Technology Company Limited | Method and system for managing distributed storage system through virtual file system |
CN103180842A (zh) * | 2010-10-28 | 2013-06-26 | Sk电信有限公司 | 云计算系统和用于该云计算系统的数据同步方法 |
CN101997929A (zh) * | 2010-11-29 | 2011-03-30 | 北京卓微天成科技咨询有限公司 | 一种云存储的数据存取的方法、装置及系统 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106909315A (zh) * | 2015-12-23 | 2017-06-30 | 三星电子株式会社 | 文件管理方法及电子装置 |
CN106445467A (zh) * | 2016-09-28 | 2017-02-22 | 广东芬尼克兹节能设备有限公司 | 一种操作变量同步方法及系统 |
WO2018065847A1 (en) * | 2016-10-04 | 2018-04-12 | International Business Machines Corporation | Consistent hashing configurations supporting multi-site replication |
US10248659B2 (en) | 2016-10-04 | 2019-04-02 | International Business Machines Corporation | Consistent hashing configurations supporting multi-site replication |
JP2019537774A (ja) * | 2016-10-04 | 2019-12-26 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | マルチサイト複製をサポートする一貫性ハッシュ構成 |
US10725971B2 (en) | 2016-10-04 | 2020-07-28 | International Business Machines Corporation | Consistent hashing configurations supporting multi-site replication |
US10831714B2 (en) | 2016-10-04 | 2020-11-10 | International Business Machines Corporation | Consistent hashing configurations supporting multi-site replication |
Also Published As
Publication number | Publication date |
---|---|
US9594686B2 (en) | 2017-03-14 |
CN104412249B (zh) | 2017-10-24 |
KR20150013191A (ko) | 2015-02-04 |
KR102097300B1 (ko) | 2020-05-29 |
WO2013169583A1 (en) | 2013-11-14 |
US20130297887A1 (en) | 2013-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104412249A (zh) | 基于云的文件系统内的文件处置 | |
JP7013466B2 (ja) | アプリケーションデータ処理方法、装置、及びコンピュータプログラム | |
AU2021232817A1 (en) | Methods, systems, apparatus, products, articles and data structures for cross-platform digital content | |
RU2608668C2 (ru) | Система и способ управления и организации кэша веб-браузера для обеспечения автономного просмотра | |
US9607004B2 (en) | Storage device data migration | |
US20120192055A1 (en) | Distributed document co-authoring and processing | |
US20120192064A1 (en) | Distributed document processing and management | |
US9449113B2 (en) | Browser storage management | |
KR20170091142A (ko) | 웹 콘텐츠 태깅 및 필터링 | |
KR20140078676A (ko) | 웹 페이지의 맞춤 최적화 기법 | |
US20140208326A1 (en) | File presenting method and apparatus for a smart terminal | |
CN108509207A (zh) | Web应用程序的跨系统安装 | |
CN105488078B (zh) | 一种网页数据缓存方法及设备 | |
JP2007133568A (ja) | 多層ワーク支援装置、多層ワーク支援装置の割当方法並びに表示方法、及びプログラム | |
CN110020231A (zh) | 网页截图方法及其装置 | |
US20130007377A1 (en) | Message oriented middleware with integrated rules engine | |
US20190250999A1 (en) | Method and device for storing and restoring a navigation context | |
CN104572981A (zh) | 一种网页页面缓存处理方法和移动终端设备 | |
CN110196683B (zh) | 一种操作控制的方法、装置、终端设备和介质 | |
KR20160019526A (ko) | 그래픽 동작들 통합 | |
JP6357813B2 (ja) | 配信方法、リソース取得方法、配信サーバ、及び端末装置 | |
CN112100553B (zh) | 一种网页页面配置方法、装置、电子设备及存储介质 | |
CN106021501A (zh) | 一种数据存储方法及装置 | |
US20180288156A1 (en) | Information processing system, information processing method, and information processing device that ensure deleting associated data | |
US20200265019A1 (en) | On demand file sync |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: American California Patentee after: Google limited liability company Address before: American California Patentee before: Google Inc. |