基于访问模式的智能文件预取的制作方法

文档序号:12290015阅读:236来源:国知局
基于访问模式的智能文件预取的制作方法与工艺

技术领域

本发明主要涉及网络中资源分配的管理,在具体实施例中,涉及基于访问模式的智能文件预取的技术和机制。



背景技术:

数据缓存是一种在网络目的侧临时存储内容(如,文件等)的机制,减少了用户重新访问该内容时的带宽使用、服务器负载和感知迟延。可在多种不同网络实施中应用缓存,如内容分发网络(content distributed network,CDN)、企业数据库网络,因特网服务提供方(internet service provider,ISP)网络等。一般来说,缓存通过以下方式实现:获取内容以响应客户端访问该内容,将所述内容存储在缓存中一段时间,并在客户端试图重新访问所述内容时,直接从所述缓存中提供所述内容。



技术实现要素:

本发明实施例描述了用于基于访问模式的智能文件预取的技术和机制,基本实现了技术上的优势。

根据一实施例,提供了一种高效的内容访问方法。在本示例中,所述方法包括从服务器中获取文件以响应客户端访问所述文件。所述文件从所述服务器获取后,存储在缓冲存储器中。所述方法还包括在所述客户端停止访问所述文件后,从所述缓冲存储器中清除所述文件,并在所述客户端没有试图重新访问所述文件的情况下,从所述服务器中预取所述文件。所述文件从所述缓冲存储器中清除后,从所述服务器预取所述文件。所述文件从所述服务器预取后,重新存储到所述缓冲存储器中。也提供了执行此方法的装置。

根据另一实施例,提供了另一种高效的内容访问方法。在本示例中,所述方法包括从服务器中获取文件以响应客户端访问所述文件,当所述客户端停止访问所述文件时,将所述文件的一个版本存储至缓冲存储器中,并在所述客户端没有试图重新访问所述文件的情况下,从所述服务器中预取所述文件的文件更新。所述文件更新是在所述客户端停止访问所述文件后从所述服务器预取的。所述方法还包括在所述客户端试图重新访问所述文件之前,使用所述文件更新来更新存储在所述缓冲存储器中的所述文件的所述版本。也提供了执行此方法的装置。根据再一实施例,提供了另一种从服务器中预取文件的方法。在本示例中,所述方法包括在周期性时间实例的前几次迭代中,确定客户端的访问模式。所述访问模式与在周期性时间实例的前几次迭代期间所述客户端访问文件的频率对应。所述方法还包括根据所述访问模式将访问排名分配给所述文件。为经常访问的文件分配的访问排名高于不经常访问的文件的访问排名。所述方法还包括根据所述访问排名选择一个或多个文件,所述客户端没有试图访问所述一个或多个文件的情况下,从一个或多个服务器中预取所述一个或多个文件。在所述周期性时间实例的一个未来迭代前,预取所述一个或多个文件。所述一个或多个文件从所述一个或多个服务器中预取后,存储在缓冲存储器中。也提供了执行此方法的装置。

根据本发明的一个方面,从服务器中预取文件的装置包括,确定装置,用于在周期性时间实例的前几次迭代期间确定客户端的访问模式,所述访问模式与在周期性时间实例的前几次迭代期间客户端访问多个文件的频率相对应;分配装置,用于按照所述访问模式将访问排名分配给所述文件,其中为经常访问的文件分配的访问排名高于不经常访问的文件的访问排名;选择装置,用于按照所述访问模式从多个文件中选择一个或多个文件;预取装置,用于所述客户端没有试图访问所述一个或多个文件的情况下,从一个或多个服务器中预取所述一个或多个文件,所述一个或多个文件是在所述周期性时间实例的一个未来迭代前预取的,其中,所述一个或多个文件从所述一个或多个服务器中预取后,存储在缓冲存储器中。

广域网(wide area network,WAN)是一种地理上分布的通信网。该术语比局域网(local area network,LAN)有更广的通信结构。

作为附属权利要求提供的本发明、实施例和方案的涉及的各方面可以彼此组合。所述组合在本发明保护范围之内。

通过应用上述和/或附属权利要求中提供的任意方案或方案的组合,可实现各种优点,如在使用前,从远端服务器预取目标到本地缓存设备;频繁使用的内容可以是“在缓存中总是可用的”;或能够得到基于文件评分的学习型缓存装置和方法。从而可实现频繁访问目标的更好性能。内容服务器上更好的负载管理提高了可服务性。

附图说明

为了更完整地理解本发明及其优点,现在参考下文结合附图进行的描述,其中:

图1示出了一种用于支持文件预取的实施例网络环境的示图;

图2示出了一种用于支持文件预取的实施例企业网络的示图;

图3示出了一种传统文件缓存的通信顺序的协议图;

图4A至4B示出了一种实施例文件预取技术的通信顺序的协议图;

图5示出了一种实施例文件预取方法的流程图;

图6A至6B示出了一种额外实施例文件预取技术的通信顺序的协议图;

图7示出了另一种实施例文件预取方法的流程图;

图8示出了一种实施例文件排名架构图;

图9示出了文件排名的实施例方法的流程图;

图10示出了另一实施例文件排名架构图;

图11示出了再一种预取文件的实施例方法流程图;

图12示出了客户端访问模式图;

图13示出了客户端访问模式表;

图14示出了一种实施例文件排名方法的示图;

图15示出了一种实施例计算平台的示图;

图16示出了一种实施例通信设备的示图。

除非另有说明,示出相应部分。绘制各图是为了清楚地说明实施例的相关方面,因此未必是按比例绘制的。

具体实施方式

下面将详细论述本发明的实施例的制作和使用。然而,应当理解在此公开的概念可在各种具体上下文中体现,并且本文论述的具体实施例仅仅是说明性的,而不用于限制权利要求的范围。此外,应该理解在不脱离由所附权利要求所定义的本发明的精神和范围的情况下,可在此进行各种改变,替换和变更。

缓冲存储器的存储容量是有限的,且内容通常不会无限存储在缓存中。相反,重新访问频率低的内容最终从缓存中丢弃,来为近来访问的内容腾出空间。一旦从缓存丢弃了所述内容,在客户端可以重新访问它之前,通常必须从服务器重新检索它。这可能会导致以长时间间隔周期性地重新访问的内容的访问延迟。

本发明的各方面提供了在客户端重新访问文件之前,从服务器中预取文件或文件更新的技术,这可减少文件访问时间,同时可将网络使用从高流量时段转移到低流量时段。在一些实施例中,在客户端可能重新访问所述文件的未来时段之前,从服务器中预取先前从缓存中清除的文件。在另一些实施例中,用相似的方式从服务器中预取仍存储在缓存中的文件的文件更新。可在低流量时段期间进行预取,来降低未来高流量时段的流量负载,如工作日的开始等。在一些实施例中,基于与文件相关联的访问排名预取多个文件。访问排名可能源于客户端的历史访问模式。例如,未来时段可能对应周期性时间实例(如,工作日上午9点至10点)的未来迭代,且访问排名可基于周期性时间实例的前几次迭代期间的客户端的访问模式。访问模式与客户端访问文件的频率对应,这样可将高于不经常访问的文件的访问排名分配给经常访问的文件。下面将更详细地说明这些和其他方面。

图1示出了用于支持文件预取的网络环境100。如图所示,网络环境100包括文件服务器112、缓存设备120、网络130以及客户端140。所述文件服务器112可以是用于存储文件的任意组件或组件集合。所述缓存设备120可以是代表客户端140从所述文件服务器112中获取文件并缓存文件的任意组件或组件集合,使得所述客户端140可访问所述文件。所述缓存设备120可包括获取所述文件的获取模块122和存储所述文件的缓存124。所述客户端140可对应访问存储在所述文件服务器112中的文件的任意实体(如,个人、办公室、公司等)或实体组(如,用户群等)。在此处所提供的实施例中,所述缓存设备120可在所述客户端140重新访问文件之前从所述文件服务器112中预取所述文件和/或文件更新,并将所述预取的文件存储至所述缓存124中。可基于客户端140的访问模式预取所述文件,并在所述客户端140重新访问时,可直接从所述缓存124提供所述文件给客户端140。

本发明提供的实施例预取技术可适用于任何网络环境,其中存储在网络一侧文件在所述网络另一侧缓存,包括内容分发网络(content distributed network,CDN)、企业数据库网络、因特网服务提供方(internet service provider,ISP)网络、广域优化网络等。图2示出了用于支持文件预取的实施例企业数据库网络200。如图所示,所述实施例企业数据中心网络200包括用于通过广域网230通信的数据中心201和分办公室202。所述数据中心201可包括各种组件,如WAN优化(WAN optimization,WANO)盒210及文件服务器212。所述分办公室202也可包括WANO盒220,以及缓存222和允许客户端240、242、244访问存储在所述数据中心201信息的其他设备。所述WANO盒210和220可以是用于为所述WAN 230提供接口的任意设备,并可包括获取模块和/或用于执行本发明提供的预取技术的其他组件。

传统缓存技术只有在用户访问文件后才获取文件。图3示出了传统文件缓存的通信顺序300,所述传统文件缓存可能发生在客户端301、缓存设备302和文件服务器303之间。如图所示,所述通信顺序开始于当所述客户端试图访问文件时(310),这促使所述缓存设备302向所述文件服务器303发送文件请求(312),以获取文件(file.v0)的一个版本(314)。之后,将file.v0的文件内容(file.v0(contents))(316)提供给所述客户端301,其后,在通过关闭指令(330)关闭所述文件之前,执行一系列读/写操作(320)。接收到所述关闭指令(330)后,所述缓存设备302将file.v0的更新版本(file.v1)存储到所述缓存中,向所述客户端301发送关闭应答(332),并与所述文件服务器303交换关闭指令(334)和关闭应答(336)。显然地,所述关闭指令可以包括一个文件更新,以便文件服务器可以把主文件从file.v0更新到file.v1。一段时间后(At),所述缓存设备302将所述file.v1从所述缓存中丢弃。当向所述缓存设备发送所述file.v0(314)时,可锁定所述主文件,当接收到所述关闭指令(334)时,可解锁所述主文件,使得其他用户不能检查出所述主文件的可写版本。一旦解锁所述主文件,其他用户可获取(340)并可更新(342)所述file.v1,且可将file.v1的更新版本(file.v2)保存在所述文件服务器303中。在某一时刻,所述客户端301试图重新访问文件(380),这促使所述存储设备302向所述文件服务器303发送文件请求(382),以获取主文件的最新版本(file.v2)(384)。然后将file.v2的文件内容(file.v2(contents))(386)提供给所述客户端301,此时所述客户端可以开始重新访问文件。显然地,在重新访问所述文件前,所述客户端301可能经历较大时延期(T1)。

本发明各方面提供了一种实施例预取技术,在客户端重新访问文件前获取所述文件,以减少客户端经历的时延期。图4A至4B示出了实施例文件缓存技术的通信顺序401和402,这可能发生在文件服务器112、缓存设备120和客户端140之间。如图所示,所述通信顺序401和402包括消息发送410至442,可能与上述消息发送310至342相似。然而,所述通信顺序401和402包括预取操作452和454,这使得所述客户端140经历大幅少于所述客户端301经历的时延期,如T2<T1及T3<T1。

更具体地,在通信顺序401和402中,在所述客户端可能重新访问文件的时间点之前,所述缓存设备120向所述文件服务器112发送预取文件请求(452)。所述预取文件请求(452)促使将file.v2(454)发送给所述文件服务器112,其中,所述file.v2存储在缓存中。在一些实施例中,所述预取文件请求(452)不需要使主文件锁定即可检索所述file.v2。在这样的实施例中,当所述客户端140试图重新访问文件(480)时,所述缓存设备120与所述文件服务器112交换访问请求(482)和访问应答(484),从而使得主文件被锁定,使得能够将file.v2内容(486)提供给用户编辑。在通信顺序402中,在预取文件后和重新访问文件前,file.v2由第三方修改(460和462),这使得文件更新(485)从所述文件服务器112传送至所述缓存设备120。所述文件更新(485)可包括file.v2和file.v2的更新版本(file.v3)之间的不同,且所述缓存设备120可用所述文件更新(485)在缓存中来将预取的file.v2更新为file.v3。在一些实施例中,在访问请求(482)发送至所述文件服务器112前,将所述file.v2内容(486)提供给所述客户端140,且在后来的某个时间,如,在所述客户端已经查看并编辑所述文件后,所述file.v2的本地版本与任意文件更新合并。

图5示出了实施例文件预取方法500,执行主体可以是缓存设备。如图所示,所述方法500开始于步骤510,所述缓存设备从服务器获取文件以响应客户端访问所述文件。获取所述文件后,将其存储在缓冲存储器中。接下来,所述方法500进行到步骤520,其中,在所述客户端停止访问所述文件后,从所述缓冲存储器中清除所述文件。可以在所述客户端停止访问所述文件之后的任意时间,从所述缓冲存储器中清除所述文件。例如,一旦所述文件变陈旧或冷门即可将其清除,如,未足够频繁地访问所述文件而不能保证所述文件留在缓存中。随后,所述方法500进行到步骤530,其中,在所述客户端试图重新访问所述文件前,所述缓存设备从所述服务器中预取所述文件。显然地,所述文件可以是可编辑电子文件。在这种情况下,可预取所述文件的可读版本,使得所述文件不会由所述服务器锁定,如不能由其他用户编辑。或者,在所述文件被锁定的情况下,可预取所述可编辑电子文件的可写版本。在再一些实施例中,可同时检查出多个可写版本,带有在之后进行协调的差异。接下来,所述方法500进行到步骤540,其中,所述缓存设备确定所述客户端正试图重新访问所述文件。然后,所述方法500进行到步骤550,其中,所述缓存设备向所述服务器发送访问请求。所述访问请求可要求所述服务器锁定所述文件,使得其他用户不能编辑所述文件。然后,所述方法500进行到步骤560,其中,所述缓存设备从所述服务器接收到访问应答。在一些实施例中,因为所述缓存设备预取了所述文件,其他用户可能已经更新所述文件。在这样的实施例中,所述访问应答可能与文件更新一同传达。随后,所述方法500进行到步骤570,其中,所述缓存设备将所述文件提供给所述客户端。在步骤530中预取所述文件的可写版本的实施例中,可省略步骤550至560。

此处所用的术语“预取文件”是指在试图访问电子文件的客户端没有提示的情况下读取所述电子文件的动作。而且,所述术语“文件”用于宽泛地表示拥有共同的特征或分类的任意对象(例如,文件内容),因此,短语“预取文件”不应理解为暗指读取的所述电子文件等于所述客户端之前访问的“所述(电子)文件”。例如,所述预取的文件可以为所述客户端之前访问的电子文件的更新版本。又如,所述预取的文件可以是所述客户端之前访问的周期性电子文件类型的新实例,例如,周期收入报告、日程等。在此例中,所述客户端没有访问所述预取的电子文件的任何版本。为了阐述所述概念,假设所述客户端是编辑周二体育版面的定稿的报纸编辑,所述缓存设备预取周三体育版面的定稿的电子版本。短语“预取文件”应被理解为包括情况:即使周三体育版面的内容与周二体育版面的内容不同,因为(在本实例中)“所述文件”指的是与周二体育版面相关联的类型或分类,而不是周二体育版面的具体内容。

本发明各方面提供了一种在客户端重新访问文件前,获取存储在缓存中文件的文件更新的实施例预取技术。图6A至6B示出了实施例文件缓存技术的通信顺序600和601,可能发生在文件服务器112、缓存设备120和客户端140之间。如图所示,所述通信顺序600至601包括消息发送610至686,可能与上述消息发送410至486相似。然而,所述通信顺序600至601没有从缓存中清除所述文件,因此预取文件更新(654)而不是整个文件。

图7示出了实施例文件预取方法700,执行主体可以是缓存设备。如图所示,方法700开始于步骤710,所述缓存设备从服务器获取文件以响应客户端访问所述文件。获取所述文件后,将其存储在缓冲存储器中。接下来,所述方法700进行到步骤720,其中,当所述客户端关闭所述文件时,所述文件的一个版本保存在所述缓冲存储器中。随后,所述方法700进行到步骤730,其中,在所述客户端试图重新访问所述文件前,所述缓存设备从所述服务器中预取所述文件的文件更新。随后,所述方法700进行到步骤735,其中,所述缓存设备使用预取的文件更新来更新存储在所述缓冲存储器中的所述文件的所述版本。接下来,所述方法700进行到步骤740,其中,所述缓存设备确定所述客户端正试图重新访问所述文件。然后,所述方法700进行到步骤750,其中,所述缓存设备向所述服务器发送访问请求。所述访问请求可要求所述服务器锁定所述文件,使得其他用户不能编辑所述文件。随后,所述方法700进行到步骤760,其中,所述缓存设备从所述服务器接收访问应答。在一些实施例中,因为所述缓存设备预取了所述文件更新,所述文件可能已被其他用户更新,在这种情况下,访问应答可能与文件更新一起传达。随后,所述方法700进行到步骤770,其中,所述缓存设备将所述文件提供给所述客户端。在一些实施例中,可省略步骤750至760。

本发明的各方面提供了文件排名的技术,以确定缓存设备先预取哪些文件。图8示出了实施例文件排名架构800,可能包括在缓存设备120中。如图所示,所述实施例文件排名架构800包括服务器接口801、客户端接口802、获取模块822、缓存模块824、文件排名模块826、数据库828和配置管理模块829。所述获取模块822可以是用于通过所述服务器接口801获取文件的任意组件或组件集合。所述缓存模块824可以是用于存储获取模块获取的文件的任意组件或组件集合。所述文件排名模块826可以是用于管理当前(或之前)存储在所述缓存824中文件的访问排名的任意组件或组件集合。所述数据库828可以是用于存储通过所述客户端接口802访问的文件的属性的任意组件或组件集合。所述配置管理模块829可以是用于基于客户端的访问模式和/或所述排名模块826提供的文件排名,操纵所述获取模块822的任意组件或组件集合。

图9示出了预取排名后文件的实施例方法900,执行主体可以是缓存设备。如图所示,所述方法900开始于步骤910,其中,所述缓存设备在周期性时间实例的前几次迭代中,确定客户端的访问模式。然后,所述方法900进行到步骤920,其中,所述缓存设备根据所述确定的访问模式将访问排名分配给文件。随后,所述方法900进行到步骤930,其中,所述缓存设备根据所述访问排名,在所述周期性时间实例的一个未来迭代预取文件。

图10示出了实施例文件排名架构1000,可能包括在缓存设备中。如图所示,所述实施例文件排名架构1000包括预取模块1022、排名模块1026、多个文件排名算法1090以及多个索引表1095。所述预取模块1022可以是用于基于文件排名预取文件的任意组件或组件集合。所述排名模块1026可以是用于管理客户端当前(或之前)访问文件的访问排名的任意组件或组件集合。所述排名模块1026可指示所述预取模块基于文件大小阈值1027获取一定数量的文件,文件大小阈值可根据预取活动时的可用网络资源的数量而变化。例如,在使用率较低时段预取的文件/数据可能比使用率较高时段多。所述排名模块1026可基于算法1090的一个或多个来给所述文件排名,并可将所述排名后的文件存储在索引表1095中。在实施例中,每个所述索引表1095对应不同的时间段,如,上午9点到10点、上午10点到11点以及上午11点到中午等。

图11示出了文件排名的实施例方法1100,执行主体可以是缓存设备。如图所示,所述方法1100开始于步骤1105,其中,所述缓存设备检测到客户端正试图访问文件。然后,所述方法1100进行到步骤1110和1115,其中,所述缓存设备获取所述文件并进行读/写操作。随后,所述方法1100进行到步骤1120和1125,其中,所述缓存设备检测到所述客户端已经关闭所述文件并将关联文件名称和最近访问时间的条目存储到数据库中。接下来,所述方法1100进行到步骤1130和1140,其中,所述设备开始文件排名,并基于所述客户端的访问模式计算通常访问的文件的权重。然后,方法1100进行到步骤1150和1160,其中,所述设备基于计算出的权重来更新数据库中的文件排名,并基于访问计划表将所述文件排名分类。最后,所述方法1100进行到步骤1170和1180,其中,所述设备开始文件预取,并基于所述文件排名预取文件。

图12示出了客户端访问模式图。如图所示,当最初打开文件时,给定文件其访问排名,基于后来访问所述文件的频率,调整所述访问排名。图13示出了客户端访问模式的表格。图14示出了文件排名方法的实施例图。如图所示,根据二叉树为所述文件排名,较高排名的文件如,F3位于较低排名的文件如,F5等之上。

图15示出了处理系统的方框图,该处理系统可用于实现本文公开的设备和方法。特定装置可利用所有所示的组件或所述组件的仅一子集,且装置之间的集成程度可能不同。此外,设备可以包括组件的多个实例,如多个处理单元、处理器、存储器、发射器、接收器等。所述处理系统可以包括配备一个或多个输入/输出设备,如扬声器、麦克风、鼠标、触摸屏、按键、键盘、打印机、显示器等的处理单元。所述处理单元可以包括中央处理器(central processing unit,CPU)、存储器、大容量存储器设备、视频适配器以及连接至总线的I/O接口。

总线可以是任意类型的若干总线架构中的一个或多个,包括存储总线或存储控制器、外设总线、视频总线等等。所述CPU可包括任何类型的电子数据处理器。所述存储器可包括任意类型的系统存储器,例如静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronous DRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合等等。在实施例中,所述存储器可包括在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。

所述大容量存储器设备可包括任意类型的存储设备,其用于存储数据、程序和其它信息,并使这些数据、程序和其它信息通过总线访问。所述大容量存储器设备可包括如下项中的一种或多种:固态磁盘、硬盘驱动器、磁盘驱动器、光盘驱动器等。

所述视频适配器和I/O接口为处理单元提供耦合外部输入输出设备的接口。如图所示,输入输出设备的示例包括耦合所述视频适配器的显示器和耦合到所述I/O接口的鼠标、键盘或打印机。其他设备可耦合到所述处理单元,且可使用额外或更少的接口卡。例如,可使用串行接口,如通用串行总线(Universal Serial Bus,USB)(未示出)为打印机提供接口。

所述处理单元也包括一个或多个网络接口,可包括如以太网线等有线连接,和/或访问节点或不同网络的无线连接。所述网络接口允许所述处理单元通过网络与远端单元通信。例如,所述网络接口可通过一个或多个发射器/发射天线及一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元耦合到局域网或广域网上以用于数据处理以及与远程设备通信,所述远程设备例如其它处理单元、因特网、远程存储设施等。

图16示出了通信设备1600的实施例方框图,所述通信设备1600等效于上述的一个或多个设备(如,UE、NB等)。所述通信设备1600可包括处理器1604、存储器1606、蜂窝接口1610、补充接口1612和回传接口1614,可以(也可以不)为如图16所示的设置。所述处理器1604可以是能够进行计算和/或其他处理相关的任务的任意组件,且所述存储器1606可以是能够为处理器1604存储程序和/或指令的任意组件。所述蜂窝接口1610可以是使得所述通信设备1600使用蜂窝信号通信的任意组件或组件集合,并可用于通过蜂窝网络的蜂窝连接接收和/或传输信息。所述补充接口1612可以是使得所述通信设备1600通过补充协议进行数据通信或信息控制的任意组件或组件集合。例如,所述补充接口1612可以是根据无线保真(Wireless-Fidelity,Wi-Fi)或蓝牙协议进行通信的非蜂窝无线接口。所述补充接口1612还可以是有线接口。所述回传接口1614可以可选地包括在所述通信设备1600中,并可包括使得通信设备1600通过回传网络与另一设备通信的任意组件或组件集合。

尽管以上描述很详细,应该理解在不脱离由所附权利要求所定义的本发明的精神和范围的情况下,可进行各种改变,替换和变更。此外,本发明的范围不限定在本文所描述的特定实施例中,因为本领域的普通技术人员很容易从本文中领会到,现在存在的或以后发展的过程、设备、产品、物质组成、手段、方法或步骤可进行与此处描述的对应实施例大致相似的功能或实现大致相似的结果。相应地,附加权利要求包括在其保护范围内,如过程、设备、产品、物质组成、手段、方法或步骤。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1