一种移动云存储环境下缓存数据的预取方法与流程

文档序号:11918500阅读:508来源:国知局
一种移动云存储环境下缓存数据的预取方法与流程

本发明属于云存储领域,更具体地,涉及一种移动云存储环境下缓存数据的预取方法。



背景技术:

随着移动互联网的发展,终端应用呈现出爆炸式的增长,移动终端已逐渐成为新的应用平台,用户对移动终端的存储空间以及终端资源的在线共享等要求也越来越高,在这种需求的推动下,通过终端设备使用云存储服务已逐渐成为一种趋势。然而移动互联网相对于有线宽带互联网具有高延迟、低速率和不稳定的特点,在移动互联网环境下使用云存储服务的体验与在高速有线宽带互联网环境下的体验相比相去甚远,因此,可以使用缓存技术来提高在移动互联网环境下使用云存储服务的性能。

数据预取是影响缓存效率的重要因素之一,用户在通过移动终端使用云存储服务时,将个人数据存储在云存储系统中,当访问数据时,在有缓存的情况下,有很大几率都能从缓存中获取到数据,然而在没有缓存的情况下,则需要通过移动互联网到云存储系统中去获取,这样就增加了用户访问数据时的等待延时。缓存预取是根据用户之前的访问记录情况预测用户接下来可能会访问的文件数据,并将这些数据提前获取到本地缓存中,这样不仅能提高缓存命中率,同时能减少用户访问数据时的等待延时。数据预取不是在缓存非命中的时候去内存中获取数据,而是预先考虑到这种非命中情况,提前将数据获取到缓存中。数据预取时对将来要访问的数据的预测准确性将直接影响到数据预取的有效性,并进而影响到整个存储系统的性能,现有的预取算法会导致预取的很多数据并不会在短时间内被访 问,这不仅没有达到预取的目的,反而还会浪费用户的网络带宽。



技术实现要素:

针对现有技术的以上缺陷或改进需求,本发明提供了一种移动云存储环境下缓存数据的预取方法,其目的在于,解决现有预取算法中存在的会导致预取的很多数据并不会在短时间内被访问、从而会浪费用户的网络带宽的技术问题。

为实现上述目的,按照本发明的一个方面,提供了一种移动云存储环境下缓存数据的预取方法,其是应用在移动终端中,所述方法包括以下步骤:

(1)接收用户请求,根据该用户请求向服务器请求文件列表,并将该文件列表显示给用户;

(2)在用户从文件列表中选择文件后判断用户选择的文件是否存在于移动终端的缓存中,若存在则进入步骤(3),否则进入步骤(4);

(3)直接从移动终端的缓存中提取用户选择的文件,然后进入步骤(6);

(4)向服务器发送HTTP请求,该HTTP请求中携带有与用户选择的文件对应的URL信息;

(5)从服务器接收与该URL信息对应的文件,该文件就是用户选择的文件;

(6)判断用户选择的文件是否存在有历史访问记录,如果没有则转入步骤(7),如果有则转入步骤(10);

(7)设置计数器n=1;

(8)预取用户选择文件的n个后继文件;

(9)判断该后继文件接下来是否被用户访问过,如果是则将预取的后继文件个数n加1,然后继续重复执行步骤(8),直至所有的后继文件都被预取完或用户停止访问该文件为止,否则返回步骤(7);

(10)通过计算访问该文件的后继文件的概率来确定是否对该后继文 件进行预取,并确定对多少文件进行预取,其中在访问后继文件的概率乘积大于时,则提前从服务器预取该后继文件到本地。

优选地,HTTP请求包括服务器的地址、用户的唯一标识符、以及用户选择文件的具体路径。

优选地,步骤(10)包括以下子步骤:

(10-1)设置预取队列长度m为0;

(10-2)计算用户下一次选择的文件A后访问其后继文件B的概率其中FAB表示历史访问记录中访问文件A后访问A的后继文件B的总次数,FA表示历史访问记录中对文件A访问的总次数;

(10-3)判断是否有如是,则说明访问文件A后有50%以上的概率会访问A的后继文件B,将B加入预取队列,预取队列长度m加1,然后转步骤(10-4),否则返回步骤(10-1);

(10-4)计算后继文件B后访问其后续文件C的概率p2,方法同步骤(10-2);

(10-5)判断是否有若是则说明访问文件A后有50%以上的概率会基于文件列表访问A的后继文件B和C,并将C也加入预取队列,将预取长度m加1,并转步骤(10-6),否则转入步骤(10-7);

(10-6)重复执行上述步骤(10-5),直到p1*p2*...*pm-1>1/2且p1*p2*...*pm-1*pm<=1/2为止,此时预取队列长度为m-1;

(10-7)依次对预取队列中的文件进行预取;

(10-8)判断预取到的所有文件接下来是否被用户按顺序访问,若是则说明预取正确,过程结束,否则说明预取有误,然后返回步骤(10-1)。

按照本发明的另一方面,提供了一种移动云存储环境下缓存数据的预取系统,其是设置在移动终端中,所述系统包括:

第一模块,用于接收用户请求,根据该用户请求向服务器请求文件列表,并将该文件列表显示给用户;

第二模块,用于在用户从文件列表中选择文件后判断用户选择的文件是否存在于移动终端的缓存中,若存在则进入第三模块,否则进入第四模块;

第三模块,用于直接从移动终端的缓存中提取用户选择的文件,然后进入第六模块;

第四模块,用于向服务器发送HTTP请求,该HTTP请求中携带有与用户选择的文件对应的URL信息;

第五模块,用于从服务器接收与该URL信息对应的文件,该文件就是用户选择的文件;

第六模块,用于判断用户选择的文件是否存在有历史访问记录,如果没有则转入第七模块,如果有则转入第十模块;

第七模块,用于设置计数器n=1;

第八模块,用于预取用户选择文件的n个后继文件;

第九模块,用于判断该后继文件接下来是否被用户访问过,如果是则将预取的后继文件个数n加1,然后继续重复执行第八模块,直至所有的后继文件都被预取完或用户停止访问该文件为止,否则返回第七模块;

第十模块,用于通过计算访问该文件的后继文件的概率来确定是否对该后继文件进行预取,并确定对多少文件进行预取,其中在访问后继文件的概率乘积大于时,则提前从服务器预取该后继文件到本地。

总体而言,通过本发明所构思的以上技术方案与现有技术相比,能够取得下列有益效果:

(1)预取的精度高,且能够保证预取的数据能够在短期内被用户访问:由于采用了步骤(7)-(9)和(10)中所定义的基于列表的数据预取策略, 有效利用了用户访问文件列表的时间局部性和空间局部性,因此保证了较高的命中率,预取的精度较高;

(2)访问延迟较小,由于本发明主动预测用户将来可能访问到的数据内容,并将其获取到本地缓存中,有效的减少了用户请求的响应时间,缩短访问延迟。

附图说明

图1是本发明移动云存储环境下缓存数据的预取方法的流程图。

图2是移动设备云存储客户端文件菜单列表显示示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

对于移动设备来说,由于其屏幕较小,因此在数据呈现上具有一定的局限性,最常用的数据呈现方式就是以菜单列表的形式呈现给用户,菜单列表的每一项代表用户的一个文件,当用户选择菜单列表中的某项时,该操作表示请求浏览该文件,在浏览该文件时,文件内容就会占满整个手机或pad的屏幕,当用户要切换文件时,就需要退出当前的浏览状态,然后返回到之前的文件菜单列表,选择下一个文件进行浏览,因此,对于这种情况,现在的智能移动设备都设计了滑动的功能,用户可以通过上下或左右滑动屏幕来切换逻辑上相邻的文件,而且通常用户在存储个人文件数据时为了能更加方便快捷的查询和浏览,会将文件进行分类存储,这使得通过滑动屏幕来切换文件浏览更加有用。针对移动设备这种浏览文件数据时特有的特点,本发明旨在提供一种有效的缓存数据预取策略。

以下首先对本发明的技术术语进行解释和说明:

后继文件:某文件基于列表逻辑顺序上的下一个文件。

预取长度:预先从服务器端获取文件的文件数量,比如预取长度为1表明获取文件A的同时预先从服务器端获取A的后继文件B;预取长度为2表明获取文件A的同时预取其后继文件B以及B的后继文件C。

本发明提出了一种移动云存储环境下缓存数据的预取方法,用于在这种具有特有的访问文件数据特点的移动设备下更高效的获取数据,提高缓存效率,并从而提升用户体验。

根据移动设备上的数据访问特点,我们可以认为在智能设备上浏览访问文件时通常具有一定的逻辑顺序性,即用户很有可能会根据列表中的文件顺序来访问文件,所以我们可以根据这种在列表顺序上相邻的文件进行预取,我们称为基于列表的顺序预取。

在这种预取策略中,需要记录用户的历史访问记录,并根据该历史访问记录计算每个文件被访问后其基于列表顺序的后继被访问的概率,并根据概率值进行预取。

初始时,由于没有历史访问记录,但根据数据访问特性,我们假定用户会顺序访问,首先设定预取长度(预取文件数)为1,然后基于列表顺序预取当前文件的后继文件到本地缓存,若接下来预取的文件被访问,将预取长度加1设为2,然后基于列表顺序到服务器端预取后两个文件数据,否则还是按照预取长度为1进行预取;在按预取长度为2的情况下进行预取时,若接下来确实顺序访问了这两个预取的文件,那么接下来将预取长度再加1,到服务器端基于列表顺序的预取后三个文件到本地缓存中,但若有其中一个预取的文件没有被顺序访问,那么在访问当前不是按顺序访问的文件后,将预取长度重新设为1,然后进行预取,重复以上步骤,直到访问结束。

当用户多次使用移动客户端后,就会有了很多历史访问记录,当以后访问有记录的这些文件的时候就可以计算概率来确定是否要对基于列表顺 序中的后继进行预取。记当前访问的文件为A,基于列表顺序的A的后继文件为B,FA为历史访问记录中对文件A访问的总次数,FAB为历史访问记录中访问文件A后访问A的后继文件B的总次数,P(AB)为当前访问文件A后访问A的后继文件B的概率,那么

当时,说明访问文件A后有50%以上的概率会基于顺序列表的访问A的后继文件B,这时我们可以对文件B进行预取,同初始预取策略类似,我们将最大预取长度设为2,当确定B可以进行预取后,我们再来看基于列表顺序的B的后继文件C是否可以和文件B一起进行预取,若当前访问文件为A,那么接下来按顺序访问文件B和C的概率为P(AB)·P(BC),当时,说明访问文件A后有50%以上的概率会基于顺序列表的访问A的后继文件B和C,因此我们选择对B和C一起预取,否则只预取文件B,重复上面的步骤进行计算,直到加入某个文件进行预取后,其概率乘积小于等于1/2为止,此时便确定最终的预取队列。

在预取策略中,将预取数据长度的设定还需要考虑到以下几个方面:

(1)若预取长度直接设为1,即每次预取都只从服务端获取一个文件,那么用户每访问一个文件都需要到服务端去请求一次获取预取文件数据,使用户访问服务器的次数过多,耗损更多的网络流量,另一方面,若用户访问文件速度较快,例如像简单的浏览图片,那么用户会很快的进行切换,每次预取一个文件的话有可能在用户切换时预取的文件还没有完全获取到本地缓存中,因此,还是会有访问延迟的情况。

(2)若预取长度过大,由于并不是百分之百的确定当前访问的文件的后继是否接下来会被访问,因此预取过来的文件可能并不会被访问,预取的文件越多,那么浪费的用户流量也越多,另一方面,由于缓存空间有限, 预取更多的数据意味着要换出缓存中原来已存在的数据,这样有可能将用户常访问的数据替换出来,而预取过来的数据又可能是无用的,这样反而降低了系统的性能。

综上考虑我们在实现过程中,可以通过实验找出一个比较合适的数据预取长度,从而在减少用户访问服务端的次数以及(1)中介绍的访问延迟的情况下,还能尽可能少的预取无效数据,节省用户流量,并提高用户体验。

本发明描述了在移动终端上使用缓存技术来提高移动端访问云存储服务时,使用基于列表顺序的数据预取策略来进一步提高缓存的效率。

如图1所示,本发明移动云存储环境下缓存数据的预取方法,其是应用在移动终端中,该方法包括如下步骤:

(1)接收用户请求,根据该用户请求向服务器请求文件列表,并将该文件列表显示给用户,如图2所示;

(2)在用户从文件列表中选择文件后判断用户选择的文件是否存在于移动终端的缓存中,若存在则进入步骤(3),否则进入步骤(4);

(3)直接从移动终端的缓存中提取用户选择的文件,然后进入步骤(6);

(4)向服务器发送HTTP请求,该HTTP请求中携带有与用户选择的文件对应的URL信息;具体而言,该HTTP请求包括服务器的地址、用户的唯一标识符、以及用户选择文件的具体路径;

(5)从服务器接收与该URL信息对应的文件,该文件就是用户选择的文件;

(6)判断用户选择的文件是否存在有历史访问记录,如果没有则转入步骤(7),如果有则转入步骤(10);

(7)设置计数器n=1;

(8)预取用户选择文件的n个后继文件;

(9)判断该后继文件接下来是否被用户访问过,如果是则将预取的后 继文件个数n加1,然后继续重复执行步骤(8),直至所有的后继文件都被预取完或用户停止访问该文件为止,否则返回步骤(7);

(10)通过计算访问该文件的后继文件的概率来确定是否对该后继文件进行预取,并确定对多少文件进行预取,其中在访问后继文件的概率乘积大于时,则提前从服务器预取该后继文件到本地,本步骤具体包括如下子步骤:

(10-1)设置预取队列长度m为0;

(10-2)计算用户下一次选择的文件A后访问其后继文件B的概率其中FAB表示历史访问记录中访问文件A后访问A的后继文件B的总次数,FA表示历史访问记录中对文件A访问的总次数;

(10-3)判断是否有如是,则说明访问文件A后有50%以上的概率会访问A的后继文件B,将B加入预取队列,预取队列长度m加1,然后转步骤(10-4),否则返回步骤(10-1);

(10-4)计算后继文件B后访问其后续文件C的概率p2,方法同步骤(10-2);

(10-5)判断是否有若是则说明访问文件A后有50%以上的概率会基于文件列表访问A的后继文件B和C,并将C也加入预取队列,将预取长度m加1,并转步骤(10-6),否则转入步骤(10-7);

(10-6)重复执行上述步骤(10-5),直到p1*p2*...*pm-1>1/2且p1*p2*...*pm-1*pm<=1/2为止,此时预取队列长度为m-1;

(10-7)依次对预取队列中的文件进行预取;

(10-8)判断预取到的所有文件接下来是否被用户按顺序访问,若是则说明预取正确,过程结束,否则说明预取有误,然后返回步骤(10-1)。

通过本发明的上述方法,针对移动终端中用户使用客户端访问云存储 数据时的特性,采用这种基于列表顺序的数据预取方法可以减少访问延迟,有效提高整个缓存系统的效率。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

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