云端储存设备系统及决定其架构的高速缓存中数据的方法与流程

文档序号:13984477阅读:173来源:国知局
云端储存设备系统及决定其架构的高速缓存中数据的方法与流程

本发明涉及云端储存设备领域,特别是涉及一种云端储存设备系统及决定其架构的高速缓存中数据的方法。



背景技术:

对云端服务系统而言,通常会尝试尽可能快速地提供其服务给客户,以响应客户的请求。当客户数量不大时,这标的很容易达到。然而,如果客户数量大增,受制于云端服务系统的硬件架构以及网络流量,响应时间必然会有快慢之分,但应在合理范围之内。另一方面,如果云端服务在商业上与其它云端服务竞争,无论其受限于何种事物,该云端服务系统应技术性地以有限的资源在最短的时间内响应客户的请求。这是个常见的众多云端系统开发者面对的议题,大家都在期盼能够有合适的解决方案。

在传统的工作环境中,请见图1,有许多客户端计算机1通过因特网3连接到服务器4。服务器4是主要处理客户请求的设备,可能会进行复杂的计算或仅执行储存数据的存取。对后者而言,储存的资料可以保留在快取5或辅助内存6中。快取5或辅助内存6的数量可以不限于1个,而是该云端服务所需的任何的数量。服务器4、快取5及辅助内存6形成云端服务系统的架构。快取5可能指的是动态随机存取内存(dynamicrandomaccessmemory,dram)或静态随机存取内存(staticrandom-accessmemory,sram)。辅助内存6可能是固态硬盘(solidstatedrive,ssd)、硬盘(harddiskdrive,hdd),可写式数字多功能激光视盘(digitalversatiledisc,dvd),甚或是磁带。快取5与辅助内存6的物理性差异在于断电时的数据储存性。对快取5而言,数据在需要使用时暂时性地储存而当断电时消失。然而,无论是否通电,辅助内存6均能够长久地储存数据。快取5具有快速存取数据的优点,但是却有挥发性(易失性)、高价格及较小储存空间的缺点。

如上所述,很明显,为了达到多数请求所需的热数据(较多存取)能快速地被存取,并以可忍受的较慢速度提供冷数据(较少存取),决定合适的数据储存于快取5当中是很重要的,且能改善云端服务效能。平均而言,响应所有来自客户端计算机请求的时间会落在可接受的范围内。近来,有许多传统算法可用于决定何种数据应被快取储存(储存于快取5中)。举例而言,leastrecentlyused(lru)算法、mostrecentlyused(mru)算法、pseudo-lru(plru)算法、segmentedlru(slru)算法、2-waysetassociative算法、least-frequentlyused(lfu)算法、lowinter-referencerecentset(lirs)算法等等。这些算法由被分析数据本身的近因与频率的特性而执行,其结果与其它数据无关(不具有与资料相关的特性)。它们被归类为“与数据相关算法”,以原始的快取数据(来自前述传统快取算法的结果)当作标的数据以获得“与数据相关”的数据并进行快取储存。这意味着新的快取数据与原始快取数据有某种程度上的关联(新的快取资料有较高的机会与原始快取资料一同出现)。上述该些算法被察觉到在某些模式的工作负载上有效。然而,因为它们都计算出现于相对时段的数据,而不是绝对时段的数据,这导致了一个现象:被所有算法选出快取储存于第一时段(例如首8个小时)的数据,可能不尽然会在第二时段(例如首8个小时后的8个小时)中被存取。这很容易理解,因为几乎所有数据存取都是绝对时间相关或频率相关的,举例而言,在每天早晨8:55am到9:05am间开机、在每周三2:00pm开的会议、两周结算一次的工资、每月最后一天进行的盘点等等。因此,时间戳本身就是考虑快取数据的一个重要且独立因子。然而,目前尚未以时间戳为前提考虑快取储存的的解决方案。



技术实现要素:

鉴于此,有必要针对传统技术中没有以时间戳为前提考虑快取储存的解决方案的问题,提供一种以在过去一段时间内被存取的与时间相关的数据来分析哪些数据应被快取储存,从而改进云端储存设备系统性能的云端储存设备系统及决定其架构的高速缓存中数据的方法。

本发明提供一种用于决定云端储存设备架构的高速缓存中数据的方法,该方法包括步骤:

a、记录云端储存设备系统的高速缓存在过去一段时间内的处理内容,其中每一处理内容包括记录时间,或记录时间与过去该段时间内被存取的快取数据;

b、指定在未来的特定时间;

c、基于参考时段,对每一来自处理内容的快取资料计算出与时间相关的置信度;

d、排序所述与时间相关的置信度;及

e、在所述高速缓存中提供具有较高与时间相关的置信度的快取数据,并当所述高速缓存在未来的所述特定时间前耗尽时,移除所述高速缓存中具有较低与时间相关的置信度的快取数据。

在其中一个实施例中,步骤e可以步骤e’所取代:

e’、提供具有较高与时间相关的置信度的快取数据与从至少一种其它快取算法计算得到的数据到高速缓存中,以在未来的所述特定时间前耗尽高速缓存的使用,其中在具有较高与时间相关的置信度的快取数据及从其它快取算法计算得到的数据间存在固定比率。

在其中一个实施例中,所述固定比率是基于数据数量或数据占据空间而计算。

在其中一个实施例中,所述特定时间包括一小时中的特定分钟、一天中的特定小时、一周中的特定日、一月中的特定日、一季中的特定日、一年中的特定日、一月中的特定周、一季中的特定周、一年中的特定周,或一年中的特定月。

在其中一个实施例中,以二连续记录的处理内容间隔时间跨度的方式定期地记录所述些处理内容。

在其中一个实施例中,所述参考时段包括在一小时中的特定分钟内、在一日中的特定小时内,或在一年中的特定日内。

在其中一个实施例中,所述与时间相关的置信度由下列步骤计算得到:

c1、计算第一数量,所述该第一数量为参考时段在过去该段时间内出现的数量;

c2、计算第二数量,所述第二数量为当标的快取数据存取时,所述参考时段的数量;及

c3、将所述第二数量除以所述第一数量。

在其中一个实施例中,所述快取算法包括leastrecentlyused(lru)算法、mostrecentlyused(mru)算法、pseudo-lru(plru)算法、randomreplacement(rr)算法、segmentedlru(slru)算法、2-waysetassociative算法、least-frequentlyused(lfu)算法、lowinter-referencerecentset(lirs)算法、adaptivereplacementcache(arc)算法、clockwithadaptivereplacement(car)算法、multiqueue(mq)算法,或以来自步骤d的结果作为标的数据的与数据相关算法。

在其中一个实施例中,所述数据的型态包括对象、区块,或档案。

本发明还提供一种云端储存设备系统,该云端储存设备系统包括:

主机,用以存取数据;

高速缓存,连接至所述主机,用以暂时储存快取数据供快速存取;

处理内容记录器,配置到或安装在所述高速缓存,连接至所述主机以记录在过去一段时间内高速缓存的处理内容,其中每一处理内容包括记录时间,或记录时间与过去该段时间内被存取的快取数据、接收主机指定在未来的特定时间、基于参考时段,对每一来自处理内容的快取资料计算出与时间相关的置信度、排序所述与时间相关的置信度,及在所述高速缓存中提供具有较高与时间相关的置信度的快取数据,并当所述高速缓存在未来的所述特定时间前耗尽时,移除所述高速缓存中具有较低与时间相关的置信度的快取数据;及

多个辅助内存,连接至所述主机,用以分散储存数据供存取。

在其中一个实施例中,该云端储存设备系统也可包括:

主机,用以存取数据;

高速缓存,连接至所述主机,用以暂时储存快取数据供快速存取;

处理内容记录器,配置到或安装到所述高速缓存,连接至该所述主机以记录在过去一段时间内高速缓存的处理内容,其中每一处理内容包括记录时间,或记录时间与过去该段时间内被存取的快取数据、接收主机指定在未来的特定时间、基于参考时段,对每一来自处理内容的快取资料计算出与时间相关的置信度、排序所述与时间相关的置信度,及提供具有较高与时间相关的置信度的快取数据与从至少一种其它快取算法计算得到的数据到高速缓存中,以在未来的所述该特定时间前耗尽高速缓存的使用,其中在具有较高与时间相关的置信度的快取数据及从其它快取算法计算得到的数据间存在固定比率;及

多个辅助内存,连接至所述主机,用以分散储存数据供存取。

在其中一个实施例中,所述固定比率是基于数据数量或数据占据空间而计算。

在其中一个实施例中,所述特定时间包括一小时中的特定分钟、一天中的特定小时、一周中的特定日、一月中的特定日、一季中的特定日、一年中的特定日、一月中的特定周、一季中的特定周、一年中的特定周,或一年中的特定月。

在其中一个实施例中,以二连续记录的处理内容间隔时间跨度的方式定期地记录该些处理内容。

在其中一个实施例中,所述参考时段包括在一小时中的特定分钟内、在一日中的特定小时内,或在一年中的特定日内。

在其中一个实施例中,所述与时间相关的置信度由下列步骤计算得到:

c1、计算第一数量,所述该第一数量为参考时段在过去该段时间内出现的数量;

c2、计算第二数量,所述第二数量为当标的快取数据存取时,所述参考时段的数量;及

c3、将所述该第二数量除以所述第一数量。

在其中一个实施例中,所述快取算法包括lru算法、mru算法、plru算法、rr算法、slru算法、2-waysetassociative算法、lfu算法、lirs算法、arc算法、car算法、mq算法,或以处理内容记录器产生之数据当成标的数据的与数据相关算法。

在其中一个实施例中,所述数据的型态包括对象、区块,或档案。

本发明的有益效果至少包括:

上述云端储存设备系统及决定其架构的高速缓存中数据的方法中快取储存的数据是与时间相关的。因而,当下一个相关的时间来临时,这些数据是最有可能被存取的。在该相关的时间之前,这些数据可储存到高速缓存中,以改进云端储存设备系统的性能。这是传统快取算法无法企及的。

附图说明

图1为传统的一个实施例中的数据存取架构的示意图;

图2为一个实施例中的云端储存设备系统的结构示意图;

图3为一个实施例中的处理内容记录的窗体;

图4为一个实施例中的决定云端储存设备架构的高速缓存中数据的方法的流程示意图;

图5为一个实施例中对所有快取数据计算的与时间相关的置信度的列表示意图;

图6为另一个实施例中的对所有快取数据计算的与时间相关的置信度的列表示意图。

具体实施方式

本发明将参照下述的实施方式而更具体地描述。

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本发明云端储存设备系统及决定其架构的高速缓存中数据的方法进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

图2显示实践本发明的一个实施例的理想架构。一种云端储存设备系统10包括了主机101、高速缓存102、处理内容记录器103,及多个辅助内存104。云端储存设备系统10支持云端服务的数据储存,它可能部分安装于一个服务器100中,如图2所示。服务器100是用来接收来自客户端设备请求的硬件,这些客户端设备比如个人计算机301、平板计算机302,及智能型手机303,或其它经由因特网200连接的远程设备。在运行该些请求之后,服务器100将反向传送对应的响应给客户端设备。每一组件将详细说明如下。

主机101的工作职能主要是响应来自客户端设备的请求执行数据存取。事实上,主机101可能是服务器100中的控制器。在其它的实施例中,如果服务器100的中央处理器具有上述控制器相同的功能的话,主机101指的就是该中央处理器,甚或服务器100本身。主机101的定义并非是由其形态,而是其功能来决定。此外,主机101可能具有其它的功能,例如取得用热数据快取储存到高速缓存102中,但这并不在本发明的范围内。

高速缓存102连接至主机101,可以暂时储存快取资料供快速存取。实作上,高速缓存102可以是提供数据高速存取的任何硬件。举例而言,高速缓存102可以是sram(staticrandomaccessmemory,静态随机存取存储器)。高速缓存102可以是一个用于大型云端储存设备系统的独立模块,某些架构可以嵌设该独立模块到主机101(cpu)中。如同其它云端储存设备系统中的快取,都有一种默认的快取算法来决定哪些数据应该快取储存于高速缓存102中。在一个实施例中,提供一种平行机制与现有的快取算法一起运作,用于一种特定的目的或时机。事实上,也能使该快取机制主宰,取代由原先快取算法决定的快取数据。

处理内容记录器103是云端储存设备系统10中的要件,在本实施例中,它是一个硬件模块并配置到高速缓存102中。在其它实施例中,处理内容记录器103可以是软件,安装于高速缓存102或主机101的控制器中。在本实施例中,处理内容记录器103连接到主机101,它的许多功能是本发明的特征:记录在过去一段时间内高速缓存102的处理内容,其中每一处理内容包含记录时间,或记录时间与过去该段时间内被存取的快取数据、接收主机101指定在未来的特定时间、基于参考时段,对每一来自处理内容的快取资料计算出与时间相关的置信度、排序这些与时间相关的置信度,及提供具有较高与时间相关的置信度的快取数据到该高速缓存102中,并当该高速缓存102在未来的该特定时间前耗尽时,移除该高速缓存102中具有较低与时间相关的置信度的快取数据(或提供具有较高与时间相关的置信度的快取数据与从至少一种其它快取算法计算得到的数据到高速缓存102中,以在未来的该特定时间前耗尽高速缓存102的使用),这些功能将与本发明提出的方法将在后续说明。要强调的是本发明使用的“与时间相关的置信度”用词,相似于关系型规则中定义的置信度。该与时间相关的置信度进一步延伸到置信度值,该值由取一个特定时间或时段作为标的以获得一个或多个资料曾在过去历史中被存取的机率而计算得到。

辅助内存104也连接至主机101,它们能分散储存数据,供客户需求进行存取。不同于高速缓存102,辅助内存104的输出╱输入速度较慢,以致任何储存于其中的数据,响应存取请求的访问速度较慢。辅助内存104中经常存取的数据将被复制并储存到高速缓存102中以供快取。实际上,辅助内存104可以是ssd(solidstatedrives,固态硬盘)、hdd(harddiskdrive,硬盘驱动器)、可写式dvd(digitalversatiledisc,数字通用光盘),甚或是磁带。辅助内存104的配置依照云端储存设备系统10或其上运行的工作负载的目的而决定。在本实施例中,有3个辅助内存104。事实上,在一个云端储存设备系统中,辅助内存的数量可能是几百到几千个,甚至更多。

需要说明的是,本发明使用的某些定义要先行阐述。请见图3,图3为处理内容记录的窗体,用来监视高速缓存102中的数据在过去是如何被存取的。该窗体有tid(处理内容id,由0001到0024)列、快取资料(由d01到d18)栏、参考时段(由h00到h07)栏,以及记录时间。h00指的是记录时间落于00:00到01:00间、h01指的是记录时间落于01:00到02:00间,以此类推。tid与快取数据字段中的“1”意味对应的快取资料已在“目前”记录时间及“最后”记录时间前被存取。tid与参考时段字段中的“1”意味在对处理内容量化不同时段中的记录时间。处理内容是在过去该段时间内快取数据被存取的记录。在本实施例中,过去8小时中的记录(处理内容)拿来进行分析。为了有较佳的说明,每一处理内容具有一个对应的tid以辨认。处理内容记录器103以二连续记录的处理内容间隔时间跨度的方式定期地记录这些处理内容。在本实施例中,每一处理内容在前一次处理内容记录后的20分钟进行记录,时间跨度为20分钟。实际上,记录时间不一定需要准确落在预定时间表上。举例而言,记录时间可能落在00:30:18、00:50:17等时间点上,不是准确落于第15秒上而是有一段范围。这是因为可能有某些大的资料在进行存取或处理内容记录器103正在等待远程联机的高速缓存102的响应。可以接受的更积极的方式是该时间跨度为随机挑选的,这也属于本发明的范畴。

需要注意的是,处理内容的数量很大,可能是上千笔或更多,举例而言,以10分钟为时间跨度进行三个月的记录,以24笔处理内容作为一个具体实施例来说明。处理内容记录器103有较多的处理内容,在未来的特定时间内数据的需求就能更精准地被预测。当然,并非所有快取储存在高速缓存102中的数据都会在一段时间内被存取。如图3所示,处理内容0015没有被存取数据的记录,它仅有记录时间,04:50:05。

在高速缓存102中的数据被本发明方法借由云端储存设备系统10决定的细节揭露前,先看一下快取资料。虽然有18笔快取数据,依照高速缓存102的容量,快取数据的数目可能大于18。该18笔快取资料在07:50:05由本发明的方法及╱或其它云端储存设备系统10使用的快取算法获得。因为如果某些数据太经常被存取,处理内容记录器103可从辅助内存104之一增加新的数据到高速缓存102中,用于分析的快取数据也可能会因此改变。可能有其它数据在03:50:05前被快取储存但后来被移除,是因为它没被请求或“预期被存取”。

由图3可看出快取数据的特性。快取数据d01在前3小时及最后一小时中常被存取。快取资料d02在每隔一个20分钟内平均被存取。快取资料d03在每隔两个20分钟内平均被存取。快取资料d04在00:10:05至00:30:05、02:50:05至03:10:05,及05:30:05至05:50:05内平均被存取。快取资料d05在00:30:05至00:50:05及06:10:05至06:30:05被存取。快取资料d06仅在05:30:05至05:50:05内被存取。快取资料d07在00:30:05至01:10:05、03:10:05至03:50:05,及06:10:05至06:50:05平均被存取。快取资料d08仅于07:10:05至07:30:05被存取,它可能是在07:10:05后因预期性需求而加入的最新资料。几乎除了04:30:05至04:50:05外的每一时段,快取资料d09最常被存取。快取资料d10是随机地被存取。快取资料d11没有被存取的记录。快取数据d12在每隔一个20分钟的40分钟内平均被存取。快取资料d13随机地被存取。快取资料d14在00:50:05至04:30:05间密集地被存取。快取资料d15在02:50:05至06:50:05间,除了04:30:05至04:50:05外,密集地被存取。快取数据d16和快取数据d01有相似的存取需求。快取数据d17与d18都平均地被存取,但快取资料d17于03:50:05与04:30:05间有较多的请求,快取数据d18在01:50:05与03:10:05间有较多的请求。

本发明的主要目的在依照历史信息,预测在未来特定时间所请求的数据,并在未来的该特定时间到来前,提供对应数据到高速缓存102中。一种用来决定云端储存设备系统10的高速缓存102中数据的方法有几个步骤。请见图4,该图为本发明提出方法的流程图。如上所述,该方法由处理内容记录器103所执行。首先s01,记录云端储存设备系统10的高速缓存102在过去一段时间内的处理内容。每一处理内容包括记录时间(处理内容id0015),或记录时间与过去该段时间(例子中的8小时)内被存取的快取数据。接着s02,指定在未来的特定时间。高速缓存102接收来自主机101的未来的该特定时间。在本实施例中,未来的该特定时间可以是未来的任何时间或时段。举例而言,它可以是一小时中的特定分钟(对每一小时而言)、一天中的特定小时(对每一天而言)、一周中的特定日(对每一周而言)、一月中的特定日(对每一个月而言)、一季中的一特定日(对每一季而言)、一年中的特定日(对每一年而言)、一月中的特定周(对每一个月而言)、一季中的特定周(对每一季而言)、一年中的特定周(对每一年而言),或一年中的特定月(对每一年而言)。在本实施例中,处理内容用来决定哪些数据应该在其它天的00:00:00(h00)前被快取储存。

第三步骤是s03,基于参考时段,对每一来自处理内容的快取资料计算出与时间相关的置信度。参考时段指的是“在一小时中的特定分钟内”(h00,每天第一个小时的每一个20分钟)的时间。在其它例子中,参考时段可以是“在一日中的特定小时内”或“在一年中的特定日内”,随时间跨度记录数量的不同而不同。在特定的例子中,参考时段可以是“在主时间单元中的特定子时间单元内”。举例而言,在一天中的24小时内。该与时间相关的置信度可由下列步骤计算得到:a、计算第一数量,该第一数量为参考时段在过去该段时间内出现的数量;b、计算第二数量,该第二数量为当标的快取数据存取时,该参考时段的数量;及c、.将该第二数量除以该第一数量。在本实施例中,对所有数据来说,图5给出了计算所得的与时间相关的置信度列表。如果未来的该特定时间是8:00am的第一分钟,且参考时段指的是过去8小时内所有的20分钟,其结果在图6中显示。参见图5和图6,基于不同情况,相对于其它快取数据,每一快取数据具有不同的计算得到的与时间相关的置信度。

接着s04,排序这些与时间相关的置信度。例子中的结果也各自显示在图5和图6中。最后s05,在该高速缓存102中提供具有较高与时间相关的置信度的快取数据,并当该高速缓存102在未来的该特定时间前耗尽时,移除该高速缓存102中具有较低与时间相关的置信度的快取数据。以图6为例进行说明。在其它天的00:00前,也许在11:59:59pm,除了d11,所有的数据都做为新的快取数据储存到高速缓存102中,供00:00以后存取请求所需。d11移除的原因是高速缓存102的空间不够18笔数据储存且d11具有的与时间相关的置信度低于其它的数据。18笔快取储存档案用来分析的原因是因低命中率或其它因素以及新的数据(d08)加入,有一笔或多笔快取数据已被云端储存设备系统10移除。所有使用的快取数据数量为18。高速缓存102中新被快取的数据是在08:00后最有可能收到请求的数据,它们都是基于与时间相关的置信度而计算出的。要注意的是以上所说的数据或快取数据型态可以是对象、区块,或档案。

在其它实施例中,最后一个步骤(s05)可能不同,这意味处理内容记录器103具有的功能与前一个实施例中的不同。改变的步骤内容为提供具有较高与时间相关的置信度的快取数据与从至少一种其它快取算法计算得到的数据到高速缓存102中,以在未来的该特定时间前耗尽高速缓存102的使用。在具有较高与时间相关的置信度的快取数据及从其它快取算法计算得到的数据间存在固定比率,该固定比率是基于数据数量或数据占据空间而计算。再回到图6。如果高速缓存102设定为快取20笔数据,当本发明所提及的用于快取资料的比率为60%,而剩余由其它快取算法计算得到的数据占40%,则本方法所得的快取数据为d01、d02、d03、d07、d09、d10、d12、d13、d14、d15、d16,及d18,总共12笔数据,其余的数据由前述快取算法所提出。如果有某些相同的快取数据是由两造共同提出,则由本发明或其它快取算法所算出具有较低优先次序的数据可递补使用,本发明并不限定。当然,在多数情况下,高速缓存102设计依照其容量来快取数据,而不是以数据数量决定。由上面的例子来看,60%高速缓存102的容量应留给由本发明所决定的数据,而其余的40%则给至少一种现有快取算法所提出的数据。前述的快取算法包含,但不限于leastrecentlyused(lru)算法、mostrecentlyused(mru)算法、pseudo-lru(plru)算法、randomreplacement(rr)算法、segmentedlru(slru)算法、2-waysetassociative算法、least-frequentlyused(lfu)算法、lowinter-referencerecentset(lirs)算法、adaptivereplacementcache(arc)算法、clockwithadaptivereplacement(car)算法、multiqueue(mq)算法,或是定义于发明背景中的与数据相关算法。应注意的是如果应用与数据相关算法,标的数据应使用本发明运算的结果,这意味由步骤s04获得具有较高排序的快取数据再输入到与数据相关算法中当作标的数据,以得到该与数据相关算法的结果。在云端储存设备系统10中,这是由处理内容记录器103产生标的数据来供与数据相关算法使用。与数据相关算法也可利用处理内容记录器103来执行。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

【符号说明】

1客户端计算机;3因特网;4服务器;5快取;6辅助内存;10云端储存设备系统;100服务器;101主机;102高速缓存;103处理内容记录器;104辅助内存;200因特网;301个人计算机;302平板计算机。

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