一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种确定缓存组件的方法、装置与流程

2022-06-16 01:13:32 来源:中国专利 TAG:


1.本技术涉及大数据技术领域,具体而言,本技术涉及一种确定缓存组件的方法、装置。


背景技术:

2.目前,大数据成了时下最热门的概念。其中,大数据一般为数据量呈海量的数据。伴随大数据而来的是适配的数据仓库、数据安全技术、数据分析技术、数据挖掘技术等等,而这些相关技术的起点是针对大数据的采集。
3.传统的数据采集系统虽然能够处理数据的采集,但是在面对海量数据时,传统系统的运行方式易致使数据汇成为瓶颈,从而影响系统的性能。在传统的数据采集系统的基础上,本领域技术人员试图通过采用增设多个数据汇组件的方式来突破这种数据汇处的瓶颈。
4.从理论角度看,该改进方式可以显著提高数据吞吐量,但是,在实际运行中,却看不到任何明显的性能提升。于是,本领域技术人员又针对改进方案的每个环节进行监控测试。经测试发现,数据汇向数据库存储数据时确实没有压力了,而多个数据汇却在竞争单个缓存组件的资源,该竞争操作直接导致缓存组件成为了新的瓶颈,影响了数据吞吐量的提升。
5.因此,如何突破现有技术中的瓶颈,是目前急需解决的技术问题。


技术实现要素:

6.本技术的目的旨在至少能解决上述的技术缺陷之一,特别是解决无法突破改进的数据采集系统中的缓存组件处的瓶颈的技术缺陷。
7.根据本技术的一个方面,提供了一种确定缓存组件的方法,该方法包括:
8.获取待缓存数据集和缓存组件集,其中,待缓存数据集包括多组待缓存数据,缓存组件集包括至少两个缓存组件;
9.确定缓存组件集中每个缓存组件的权重比例;
10.根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
11.根据本技术的另一个方面,提供了一种确定缓存组件的装置,该装置包括:
12.获取模块,用于获取待缓存数据集和缓存组件集,其中,待缓存数据集包括多组待缓存数据,缓存组件集包括至少两个缓存组件;
13.第一确定模块,用于确定缓存组件集中每个缓存组件的权重比例;
14.第二确定模块,用于根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
15.根据本技术的又一个方面,提供了一种数据采集方法,该方法包括:
16.根据前述一个方面所示的确定缓存组件的方法为待缓存数据集中的每组待缓存数据确定对应的目标缓存组件;
17.利用为待缓存数据集中的每组待缓存数据确定的目标缓存组件,缓存相应的待缓存数据;
18.利用与目标缓存组件对应的数据汇,将目标缓存组件中的缓存数据存储至数据库。
19.根据本技术的再一个方面,提供了一种数据采集系统,该系统包括:
20.数据源模块、缓存模块、数据汇模块,以及本技术一个方面所示的确定缓存组件的确定装置,其中,确定装置分别与数据源模块和缓存模块相连接,缓存模块分别与数据源模块和数据汇模块相连接,缓存模块中包括至少两个缓存组件,数据汇模块中包括与该至少两个缓存组件相对应的数据汇;
21.数据源模块,用于采集原始数据,并根据原始数据确定待缓存数据集,待缓存数据集包括多组待缓存数据;
22.确定装置,用于根据待缓存数据集和至少两个缓存组件,确定待缓存数据集中每组待缓存数据的目标缓存组件;
23.数据源模块和缓存模块,还用于根据待缓存数据集中每组待缓存数据的目标缓存组件,将待缓存数据中的每组待缓存数据缓存至缓存模块中;
24.缓存模块,还用于将每个缓存组件中的缓存数据发送给数据汇模块中对应的数据汇,以便于对应的数据汇将缓存数据存储至数据库。
25.本技术提供的技术方案带来的有益效果是:
26.本技术提供了一种确定缓存组件的方法,通过获取待缓存数据集和缓存组件集,其中,待缓存数据集包括多组待缓存数据,缓存组件集包括至少两个缓存组件;确定缓存组件集中每个缓存组件的权重比例;根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。该方法通过增设多个缓存组件,并为每个缓存组件设置对应的数据汇,在此基础上,通过重复确认过程,为每组待缓存数据确定对应的目标缓存组件,实现多条路径存储数据的目的,进而突破数据采集过程中的缓存组件处的瓶颈,提升数据采集系统的性能。
附图说明
27.为了更清楚地说明本技术实施例中的技术方案,下面将对本技术实施例描述中所需要使用的附图作简单地介绍。
28.图1为本技术实施例提供的一种传统的数据采集系统的结构示意图;
29.图2为本技术实施例提供的一种基于数据汇并行化的数据采集系统的结构示意图;
30.图3为本技术实施例提供的一种数据采集系统的结构示意图;
31.图4为本技术实施例提供的一种数据采集方法的流程示意图;
32.图5为本技术实施例提供的一种确定缓存组件的方法的流程示意图;
33.图6为本技术实施例提供的一种确定缓存组件的装置的结构示意图。
具体实施方式
34.下面详细描述本技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本技术,而不能解释为对本技术的限制。
35.本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本技术的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
36.在下面的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序。本技术领域技术人员可以理解,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
37.首先对本技术涉及的几个名词进行介绍和解释:
38.io传输速率:输入输出传输速率,具体指单位时间内,组件获取数据、处理数据、输出数据的综合速率。可使用的单位包括:bps(波特率)、b/s、kb/s,或者m/s。
39.大数据:大数据的特点是数据量规模一般比较大,伴随大规模数据而来的是适配的数据仓库、数据安全技术、数据分析技术、数据挖掘技术等等,而这些相关技术的起点是针对大数据的采集。大数据的数据量规模比较大,其包括数据种类也比较多,即大数据支持数据多元化,其中,多元化的数据中可以包括网络日志、音频、视频、图片和地理位置信息等。
40.4g网络/5g网络数据量的介绍:在4g网络中,每分钟的数据量可达亿万级别,而5g网络中数据,每分钟的数据量可以达到4g网络阶段的百倍。
41.参见图1所示,本领域技术人员曾提出了一种传统的数据采集系统,在该系统中主要包括3个模块:数据源模块101、缓存组件102和数据汇103。系统运行原理为:首先是通过数据源模块101获取原始数据,基于其进行简单处理后,将其分配至缓存组件102中缓存,然后由数据汇103从缓存组件102获取缓存的数据,并将获取的缓存的数据存储至数据库。总的来说,数据采集系统的功能是将左边的原始数据存储至数据库中。传统的数据采集系统中,单个数据汇执行存储操作时,消化缓存组件中的数据的能力较慢,当面对海量数据时,易导致数据积压在缓存组件中,最终,内存溢出。因此,单个数据汇执行存储操作以及内存溢出事件最终导致整个数据采集系统的处理数据存储的效率很低。
42.参见图2所示,本领域技术人员在图1所示的传统的数据采集系统的基础上,试图通过将单个数据汇执行存储操作变成多个数据汇执行存储操作,以进行改进,得到了一种基于数据汇并行化的数据采集系统。本领域技术人员认为,由于在数据汇处存在瓶颈,那么增加多个数据汇,每个数据汇由一条子线程负责,从理论角度讲,系统的数据处理能力应该
有所提升,然而,实际运行这种改进的数据采集系统时,却没有看到任何明显的改进。本领域技术人员针对该改进的数据采集系统进行了监控测试,最终发现多个数据汇在竞争单个缓存组件的资源。经分析,缓存组件的内存容量和io传输能力均存在上限,每分钟能够分配给数据汇的缓存数据是有限的,因此,缓存组件处又变成了新的瓶颈。正是缓存组件处的瓶颈,导致改进的数据采集系统的性能无法提升。
43.因此,如何突破改进的数据采集系统中的缓存组件处的瓶颈是本技术急需解决的技术问题。
44.本技术提供了一种数据采集系统和方法,以及一种确定缓存组件的方法、装置,旨在解决现有技术的如上技术问题。
45.下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。为使本技术的目的、技术方案和优点更加清楚,将结合其它附图,对本技术的实施例进行详细描述。
46.需要说明的是,本技术实施例中的数据采集系统运行于终端之上。当终端接收到数据采集系统的运行指令时,生成对应的进程并运行,在该进程中,开启主线程(主线程有且仅有一条);当数据采集系统开始接收原始数据时,终端根据数据采集系统中缓存组件的个数,生成对应数量的子线程并分配给数据采集系统,即为每个缓存组件配置一条子线程,所有的子线程可以以并发方式运行。
47.参见图3所示,本技术实施例提供的一种数据采集系统,该数据采集系统包括:数据源模块301、缓存模块302、数据汇模块303,以及确定缓存组件的确定装置304。
48.其中,确定装置304分别与数据源模块301和缓存模块302相连接,缓存模块302分别与数据源模块301和据汇模块303相连接,缓存模块302中包括至少两个缓存组件,数据汇模块303中包括与该至少两个缓存组件相对应的数据汇。
49.示例性地,缓存模块302中包括:缓存组件3021、缓存组件3022、缓存组件3023,其中,3021、3022、3023还可以作为缓存组件的唯一标识;数据汇模块303中相应地包括:数据汇组件3031、数据汇组件3032、数据汇组件3033。其中,缓存组件3021可以和数据汇3031相对应,缓存组件3022可以和数据汇3032相对应,缓存组件3023可以和数据汇3033一一对应。
50.数据源模块301,用于采集原始数据,并根据原始数据确定待缓存数据集,待缓存数据集包括多组待缓存数据;
51.其中,原始数据包括多种属性的数据,数据源模块301在确定待缓存数据集时,可以根据其数据的属性来对原始数据进行分组。例如,该属性可以包括:网络日志、音频、视频、图片、地理位置信息等等。需要说明的是,4g网络/5g网络中的数据存在多种类型,本技术所列举的类型仅仅用来说明本技术实施例,并不构成对本技术的限制。
52.需要说明的是,数据之间的区别不仅在于其属性,还在于其他。例如,单位数据的数据量的大小、单位数据本身携带的标识,或者其他现有技术中用于区别单位数据不同的方式。在数据源模块在对原始数据进行分组时,可以根据实际情形对原始数据进行分组。本技术对此不做任何限制。
53.需要说明的是,本技术实施例提供的数据采集系统不仅适用于类似4g/5g网络中数据采集的场景,还适用于需要进行大量数据采集和存储的场景中。为描述简便,在此不再赘述。
54.示例性地,若数据源模块301采集到一批原始数据,并按属性对原始数据进行分组,最后得到6组数据,具体如表1所示;
55.标识目标缓存组件标识状态属性数据量data1空待缓存图片2mdata2空待缓存图片5mdata3空待缓存音频15mdata4空待缓存地理位置信息0.6mdata5空待缓存视频24mdata6空待缓存视频50m
56.表1待缓存数据的初始状态
57.其中,在本技术实施例中,待缓存数据集中可以包括data1-data6这6组数据。
58.确定装置304,用于根据待缓存数据集和至少两个缓存组件,确定待缓存数据集中每组待缓存数据的目标缓存组件。具体地,先确定缓存模块302中的每个缓存组件的权重比例,其次结合待缓存数据集和排序后的至少两组缓存组件进行目标缓存组件的确认操作。确认操作的具体过程,可以参见本技术实施例提供的一种确定缓存组件的方法。另外,该确定装置304可以为本技术实施例提供的一种确定缓存组件的装置60。
59.另外,在确定装置304为每组待缓存数据确定目标缓存组件之后,将缓存方案反馈给数据源模块301,以便于数据源模块301将根据确定的目标缓存组件执行数据缓存操作。
60.示例性地,经过确定装置304的处理之后,data1-data6分别确定对应的目标缓存组件,因此,每组待缓存数据的状态得到更新,具体如表2所示:
61.标识目标缓存组件标识状态属性数据量data13023待缓存图片2mdata23022待缓存图片5mdata33022待缓存音频15mdata43022待缓存地理位置信息0.6mdata53021待缓存视频24mdata63021待缓存视频50m
62.表2确定目标缓存组件后的待缓存数据的状态
63.数据源模块301和缓存模块302,用于根据待缓存数据集中每组待缓存数据的目标缓存组件,将待缓存数据集中的每组待缓存数据缓存至缓存模块302中。具体地,根据确定的目标缓存组件的标识,分别将6组数据缓存至对应的缓存组件中。
64.其中,数据源模块301在对数据进行分组之后,若原始数据中的数据是按照“先进先出”的方式排列的,可以按照先进先出的原则将6组数据分别缓存至对应的目标缓存组件中去。
65.示例性地,根据表2中确定的标识,将每组数据缓存至对应的缓存组件中。缓存操作结束之后,待缓存数据集中的待缓存数据的状态发生了改变,具体地:
66.标识目标缓存组件标识状态属性数据量data13023已缓存图片2m
data23022已缓存图片5mdata33022已缓存音频15mdata43022已缓存地理位置信息0.6mdata53021已缓存视频24mdata63021已缓存视频50m
67.表3缓存操作之后待缓存数据的状态
68.另外,缓存模块302,还用于将每个缓存组件中的缓存数据发送给数据汇模块303中对应的数据汇,以便于对应的数据汇将缓存数据存储至数据库。
69.需要说明的是,图3中展示的缓存模块302包括3个缓存组件,因此,缓存组件的数量是在“至少两个”范围内。然而,数量“3”仅用来举例说明本技术实施例,并不能作为对本技术保护范围的限制。本领域技术人员在具体实施时,可根据实际需求进行拓展,若拓展的缓存组件的个数在“至少两个”的范围中,则其方案也在本技术保护范围内。另外,数据汇模块303中数据汇是与缓存组件一一对应的,因此,数据汇模块303中数据汇的个数是与缓存模块302的缓存组件的个数是相等的。另外,设置每个数据汇对应一个缓存组件,也有效避免了多个数据汇竞争一个缓存组件中的缓存数据。
70.需要说明的是,每个缓存组件对应一条子线程,该子线程负责该缓存组件的相关任务。该任务可以包括,从数据源模块301中获取待缓存数据并缓存、向对应的数据汇发送缓存数据。还包括,实时统计缓存组件的io传输速率、缓存组件的当前已使用的内存容量等。
71.本技术实施例还提供了一种可能的实现方式,该数据采集系统30还包括监控模块305和显示模块306,该监控模块305具体用于实时监控数据源模块301的运行状态,具体地:
72.实时监控原始数据的数据量,并在原始数据的数据量超过预设阈值时,开启限流操作,其中,限流操作包括控制数据源模块采集的原始数据的数据量。
73.示例性地,数据采集系统30在满负荷运行时(具体为,在一段时间内,数据汇保持高速存储数据的状态,以及原始数据源源不断地访问数据采集系统,致使数据源模块也高速运行,此状态下,每个缓存组件的剩余内存容量为零,或者接近零),可以达到每秒350m,若系统长期处于该状态,将会在某一时刻宕机或者内存溢出。因此,应设置一个合理的原始数据的数据量阈值,使得数据采集系统可以运行在较为正常的状态中,从而长久运行。例如,在350m的基础上,可以将300m作为原始数据的数据量的允许最大值,当检测到原始数据的数据量超过该允许值的60%时,即超过180m时,限制原始数据的数据量在300m。此后,若有大于300m的原始数据访问数据采集系统,则将该原始数据按照300m为最小单位进行划分,然后一组一组分批处理,并最终将所有原始数据存入数据库中。例如,若原始数据的数据量为1000m,则将原始数据划分为4批,并依次处理:300m、300m、300m、100m。
74.在限流操作运行一段时间之后,还可以取消限流操作,以减少数据采集系统30因开启了限流操作而产生的额外开销。
75.在该实施例中,还存在一种可能的实现方式,监控模块305还用于监控缓存模块302中至少两个缓存组件的运行状态,以及数据汇模块303中至少两个数据汇的运行状态。
76.在监控缓存组件的运行状态时,包括:实时获取每组缓存组件的io传输速率、剩余内存容量等。其中,在监控数据汇的运行状态时,包括:实时获取每组数据汇向数据库存储
数据的速率。
77.在获取到每组缓存组件和每组数据汇的详细运行数据之后,可以通过显示模块306展示获取的运行数据。
78.参见图4所示,本技术实施例还提供了一种数据采集方法,包括s410-s430,具体地:
79.s410,根据本技术实施例提供的一种确定缓存组件的方法为待缓存数据集中的每组待缓存数据确定对应的目标缓存组件;
80.s420,利用为待缓存数据集中的每组待缓存数据确定的目标缓存组件,缓存相应的待缓存数据;
81.s430,利用与目标缓存组件对应的数据汇,将目标缓存组件中的缓存数据存储至数据库。
82.参见图5所示,本技术实施例提供了一种确定缓存组件的方法,可以应用于上述数据采集系统30中的确定装置304中,该方法包括s510-s530,具体地:
83.s510,获取待缓存数据集和缓存组件集,其中,待缓存数据集包括多组待缓存数据,缓存组件集包括至少两个缓存组件;
84.示例性地,获取上述实施例中表1所示的待缓存数据集中的数据data1-data6,以及上述实施例中缓存模块302中缓存组件集,该缓存组件集中包括:缓存组件3021、缓存组件3022、缓存组件3023。
85.需要说明的是,缓存组件应增设至至少两个,以突破现有技术中仅设置一个缓存组件而造成的缓存组件处的瓶颈。待缓存数据集中可以包括多组待缓存数据,以适应大量数据采集的场景,也可以包括一组待缓存数据,以解决少量数据场景中数据采集的问题。即本技术的方法,可以突破现有技术中的瓶颈,也具备现有技术中其他数据采集系统采集数据的能力。
86.s520,确定缓存组件集中每个缓存组件的权重比例;
87.s530,根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
88.本技术提供了一种确定缓存组件的方法,通过获取待缓存数据集和缓存组件集,其中,待缓存数据集包括多组待缓存数据,缓存组件集包括至少两个缓存组件;确定缓存组件集中每个缓存组件的权重比例;根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。该方法通过增设多个缓存组件,并为每个缓存组件设置对应的数据汇,在此基础上,通过重复确认过程,为每组待缓存数据确定对应的目标缓存组件,实现多条路径存储数据的目的,进而突破数据采集过程中的缓存组件处的瓶颈,提升数据采集系统的性能。
89.本技术实施例还提供了一种可能的实现方式,确定缓存组件集中每个缓存组件的权重比例包括s521(图中未标出)、s522(图中未标出),具体地,
90.s521,根据每个缓存组件的剩余内存容量和空闲传输速率,确定相应缓存组件的权重;
91.其中,在获取缓存组件之后,还包括根据获取的缓存组件获取对应的缓存组件的内存容量的阈值、已使用内存容量,io传输速率的阈值和当前io传输速率。其中,可以将内存容量的阈值与已使用内存容量之差确定为剩余内存容量,可以将io传输速率的阈值和当前io传输速率之差确定为空闲传输速率。其中,该空闲传输速率表示当前传输速率可上升的空间。
92.示例性地,若缓存组件3021的容量大小为100m,当前已用内存为30m,则其剩余内存容量为70m。若该缓存组件3021的io传输速率的阈值为20m/s,当前io传输速率为5m/s,那么空闲传输速率为15m/s。
93.另外,通过剩余内存容量可以了解缓存组件当前可容纳数据的能力,通过空闲传输速率可以确定缓存组件当前io传输速率的上升空间,或者说缓存数据的能力。因此,根据这两项指标,可确定缓存组件的缓存数据的能力。另外,若当前的剩余内存容量越大,和/或,空闲传输速率越高,那么在确定目标缓存组件过程中,应对该缓存组件予以重点参考。
94.s522,将每个缓存组件的权重与缓存组件集中所有缓存组件的权重之和的比确定为相应缓存组件的权重比例。
95.在一种可能的实现方式中,确定缓存组件的权重,具体可以包括:
96.获取第一总和和第二总和,第一总和为缓存组件集中所有缓存组件的剩余内存容量之和,第二总和为缓存组件集中所有缓存组件的空闲传输速率之和;
97.针对缓存组件集中的每个缓存组件执行以下处理:
98.将缓存组件的剩余内存容量与第一总和的比确定为第一参数;将缓存组件的空闲传输速率与第二总和的比确定为第二参数;将第一参数和第二参数相乘的积确定为缓存组件的权重。
99.由于剩余内存容量和空闲传输速率是从两个不同的维度影响缓存组件缓存数据的能力,因此,将第一参数和第二参数的乘积作为缓存组件的权重,可以反映缓存组件缓存数据的综合能力。基于获得的权重,进一步计算缓存组件的权重比例,从而了解每个缓存组件在缓存组件集中的综合能力的排序,为后续确定目标缓存组件的过程提供重要参考。
100.本技术实施例还提供了一种可能的实现方式,s530可以包括s531(图中未标出)和s532(图中未标出):
101.s531,将缓存组件集中的各个缓存组件,按照相应的权重比例进行降序排列,得到第一排序;
102.其中,由于降序排列的结果为从大到小。因此,按照相应权重比例进行降序排列后,获得的第一排序,是按照缓存组件综合能力的强弱,从大到小的排序。
103.s532,按照第一排序依次从缓存组件集中获取相应的缓存组件,执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
104.其中,从权重比例为第一的缓存组件开始,执行确定步骤,若该步骤执行完之后,待缓存数据集中还存在待定的待缓存数据,那么需要从权重比例第二的缓存组件开始,对其执行确定步骤。依照这个顺序,对每个缓存组件执行确定步骤,直至待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
105.需要说明的是,本技术实施例提供的方法可以确定所有待缓存数据的目标缓存组
件。例如,在本技术上述数据采集系统中,原始数据的最大允许值为300m,缓存组件3021的内存容量的阈值为100m,那么缓存组件3022、缓存组件3023的内存容量的阈值之和可以为250m,这种设计使得整个缓存模块的最大可缓存的数据量达到350m,大于原始数据的最大允许值300m。另外,为了能够适配不同数据量的数据,缓存组件3021、缓存组件3022、缓存组件3023的内存容量的阈值可以设置为不同的数值,例如缓存组件3022的内存容量的阈值可以设置为150,那么缓存组件3023的内存容量的阈值可以设置为100。缓存组件3021、缓存组件3022、缓存组件3023的内存容量的阈值也可知设置为同一数值。总之,能够实现为不同数据量的待缓存数据确定对应的目标缓存组件的阈值的设计,都适用于本技术实施例。
106.在该实施例中,还存在一种可能的实现方式,具体为:
107.当第一排序中存在权重比例相等的至少两个缓存组件时,将权重比例相等的至少两个缓存组件按照对应的剩余内存容量进行降序排列,得到第二排序;利用第二排序更新第一排序。
108.其中,在排序过程中,存在权重比例相同的情形,即表明缓存组件的综合能力相当。此时,针对权重比例相同的至少两个缓存组件,按照对应的剩余内存容量,进行再次降序排列,得到至少两个缓存组件的第二排序的结果。
109.另外,从内存溢出角度看,相对于缓存组件的空闲传输速率,缓存组件的剩余内存容量的重要性在分配待缓存数据时相对较高。因为,若因空闲传输速率的这项指标比较出色,而在缓存数据的剩余内存容量并不出色时,还向其分配数据,极易无法分配到位。因此,在权重比例相等时,需要优先从剩余内存容量较高的缓存组件中选择目标缓存组件。
110.本技术实施例还提供了一种可能的实现方式,在s530中执行确定步骤之前,应确定缓存组件的剩余内存容量大于零,然后再执行确定步骤。其中,确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件,具体可以包括:
111.对待缓存数据集中至少一组待定的待缓存数据,执行比较待定的待缓存数据的数据量与缓存组件的剩余内存容量的大小的步骤,直至遍历待缓存数据集中所有待定的待缓存数据,和/或,缓存组件的剩余内存容量等于零,其中,待定的待缓存数据为未确定目标缓存组件的待缓存数据;
112.其中,在执行比较操作时,可以先对待缓存数据中多组待缓存数据进行排序,得到第三顺序的待缓存数据,然后依照第三顺序依次获取待缓存数据并执行比较操作。其中,该排序操作包括按照待缓存数据的数据量的按照进行排序;或者按照待缓存数据的属性进行排序;或者按照待缓存数据的数据标识进行排序。也可以不对待缓存数据集中多组待缓存数据进行排序,随机选取待缓存数据并执行比较操作。
113.其中,在每次执行比较步骤之后,当数据量小于或者等于缓存组件的剩余内存容量时,确定缓存组件为待定的待缓存数据对应的目标缓存组件,并更新缓存组件的剩余内存容量。若该缓存组件为待缓存数据确定的目标缓存组件,则说明该待缓存数据获得了目标缓存组件的剩余内存容量中部分可使用的容量,进一步地,目标缓存组件剩余内存容量中可使用的容量变小了,因此,需要及时更新目标缓存组件的剩余内存容量中可使用的容量,以确定该目标缓存组件是否可以执行下一轮比较步骤。当确定目标缓存组件的剩余内存容量中可使用的容量为零时,则表明针对该缓存组件的确定步骤,也执行完毕。
114.示例性地,待缓存数据集中还可以包括另外几组数据(括号中的数据为待缓存数
据的数据量):data7(2.6m)、data8(6m)、data9(4m)、data10(0.5m),均未确定目标缓存组件;缓存模块302中还可以包括缓存组件3024(可使用的剩余内存容量为10m),当前对缓存组件3024执行确定步骤。若遍历顺序为data8、data9、data7、data10,当遍历至data9时,data8、data9就确定了目标缓存组件,而缓存组件3024的剩余内存容量中可使用的容量更新为0,此情形下,缓存组件3024的确定步骤执行完毕。若遍历顺序为data7、data8、data9、data10,当遍历至data8时,data8、data9确定了目标缓存组件,而缓存组件3024的剩余内存容量中可使用的容量更新为1.4m,表明还可以继续遍历下去,然而遍历完data9、data10之后,还是无法确定缓存组件3024为data9、data10的目标缓存组件,但是由于遍历了data7-data10,缓存组件3024的确定步骤也执行完毕。
115.需要说明的是,该示例过程仅用来描述对缓存组件执行确定步骤的过程,并非用以限制本技术实施例的。尤其是在遍历待缓存数据中待定的待缓存数据时,所采取的遍历顺序,可以按照待定的待缓存数据的标识进行排序,然后遍历排序后的每组待定的待缓存数据,并分别对其执行比较步骤;也可以按照待定的待缓存数据的数据量进行排序,然后遍历排序后的每组待定的待缓存数据,并分别对其执行比较步骤。
116.参见图6所示,本技术实施例还提供了一种确定缓存组件的装置60,该装置60包括:
117.获取模块601,用于获取待缓存数据集和缓存组件集,其中,待缓存数据集包括多组待缓存数据,缓存组件集包括至少两个缓存组件;
118.第一确定模块602,用于确定缓存组件集中每个缓存组件的权重比例;
119.第二确定模块603,用于根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
120.本技术实施例还提供了一种可能的实现方式,第一确定模块602在用于确定缓存组件集中每个缓存组件的权重比例中,具体用于:
121.根据每个缓存组件的剩余内存容量和空闲传输速率,确定相应缓存组件的权重;
122.将每个缓存组件的权重与缓存组件集中所有缓存组件的权重之和的比确定为相应缓存组件的权重比例。
123.在该实施例中,第一确定模块602在根据每个缓存组件的剩余内存容量和空闲传输速率,确定相应缓存组件的权重中,具体用于:
124.获取第一总和和第二总和,第一总和为缓存组件集中所有缓存组件的剩余内存容量之和,第二总和为缓存组件集中所有缓存组件的空闲传输速率之和;
125.针对缓存组件集中的每个缓存组件执行以下处理:
126.将缓存组件的剩余内存容量与第一总和的比确定为第一参数;
127.将缓存组件的空闲传输速率与第二总和的比确定为第二参数;
128.将第一参数和第二参数相乘的积确定为缓存组件的权重。
129.第二确定模块603在根据确定的权重比例对缓存组件集中相应的缓存组件,重复执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件中,具体用于:
130.将缓存组件集中的各个缓存组件,按照相应的权重比例进行降序排列,得到第一
排序;
131.按照第一排序依次从缓存组件集中获取相应的缓存组件,执行确定缓存组件是否为待缓存数据集中至少一组待缓存数据的目标缓存组件的步骤,直至为待缓存数据集中每组待缓存数据确定对应的目标缓存组件。
132.在该实施例中,当第一排序中存在权重比例相等的至少两个缓存组件时,第二确定模块603还用于:
133.将权重比例相等的至少两个缓存组件按照对应的剩余内存容量进行降序排列,得到第二排序;
134.利用第二排序更新第一排序。
135.在一种可能的实现方式中,在每次执行确定步骤之前,应确定缓存组件的剩余内存容量大于零,则第二确定模块603在每次执行确定步骤之前,确定缓存组件的剩余内存容量大于零中,具体用于:
136.对待缓存数据集中至少一组待定的待缓存数据,执行比较待定的待缓存数据的数据量与缓存组件的剩余内存容量的大小的步骤,直至遍历待缓存数据集中所有待定的待缓存数据,和/或,缓存组件的剩余内存容量等于零,其中,待定的待缓存数据为未确定目标缓存组件的待缓存数据;
137.其中,在每次执行比较步骤之后,当数据量小于或者等于缓存组件的剩余内存容量时,确定缓存组件为待定的待缓存数据对应的目标缓存组件,并更新缓存组件的剩余内存容量。
138.应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
139.以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献