数据压缩流控方法、装置及电子设备与流程

文档序号:31052565发布日期:2022-08-06 08:18阅读:64来源:国知局
数据压缩流控方法、装置及电子设备与流程

1.本发明实施例涉及计算机技术领域,尤其涉及一种数据压缩流控方法、装置及电子设备。


背景技术:

2.当前由于全闪存硬盘相对于普通的机械硬盘巨大的性能优势,再加上全闪存盘的价格逐渐下降,全闪存企业数据存储被愈来愈多的企业所认可。但目前大部分的分布式存储系统,仍然是基于机械盘或者混闪模式设计的,无法充分体现出全闪存盘的性能优势;而且,即使闪存盘的价格已经下降很多,仍相对昂贵,因此,在提升全闪存性能的同时,还要考虑提升全闪存的空间利用率。
3.为了提升全闪存的空间利用率,可以对数据进行压缩。数据压缩作为全闪系统中提高空间利用率的重要特性,能够有效节省存储空间,在容量固定的前提下帮助用户存储更多的有效数据,提升全闪存储产品的竞争力。
4.然而,现有的技术中通常使用硬件压缩方式完成数据压缩。在负载高的情况下,数据需要排队等待压缩。而排队等待的过程又会导致io时延变大,进而导致业务性能会大大降低,严重时,还会导致用户业务掉零、中断等情况发生。


技术实现要素:

5.本技术提供了一种数据压缩流控方法、装置及电子设备,以解决现有技术中全闪存的空间利用率和全闪存的性能之间不能很好的平衡的技术问题。
6.第一方面,本技术提供了一种数据压缩流控方法,该方法应用于分布式全闪存存储系统,该方法包括:
7.在当前周期内获取至少一个待压缩数据块,并按照接收时间对至少一个待压缩模块进行排序;
8.确定当前是否已触发数据压缩流控机制;
9.当确定已触发数据压缩流控机制后,根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩;
10.当确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层,其中,i为正整数。
11.在一个可选的实施方式中,压缩资源包括压缩令牌;当确定已触发数据压缩流控机制后,根据令牌桶中的资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩,具体包括:
12.当确定令牌桶中存在压缩令牌时,从令牌桶中提取一个压缩令牌,对第i个待压缩数据块进行压缩;
13.或者,当确定令牌桶中不存在压缩令牌时,不再对第i个待压缩数据块进行压缩;
14.其中,每使用一个压缩令牌后,令牌桶中压缩令牌的数量自减一,令牌桶中当前周
期内的压缩令牌的初始数量为当前周期对应的最大使用数量。
15.在一个可选的实施方式中,令牌桶中当前周期内的压缩令牌的初始数量通过如下方式获取:
16.统计当前周期内,用以执行压缩数据块的剩余流量资源;
17.根据预获取的单个待压缩数据块所占用的流量和剩余流量资源,确定当前周期对应的压缩令牌最大使用数量,作为令牌桶中当前周期内的压缩令牌的初始数量。
18.在一个可选的实施方式中,根据令牌桶中的压缩资源确定对至少一个待压缩数据块中任一个待压缩数据块进行数据压缩时,方法包括:
19.在当前周期内,每间隔固定时间,从令牌桶中提取数据令牌,根据数据令牌,对当前所有待压缩的数据块中,排在首位的待压缩数据块进行数据压缩,其中,固定时间根据周期时间和周期内允许执行数据块压缩的最大数量确定。
20.第二方面,本技术提供了一种数据压缩流控装置,该装置包括:
21.获取模块,用于在当前周期内获取至少一个待压缩数据块;
22.排序模块,用于按照接收时间对至少一个待压缩模块进行排序;
23.处理模块,用于确定当前是否已触发数据压缩流控机制;当确定已触发数据压缩流控机制后,根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩;
24.发送模块,用于当处理模块确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层,其中,i为正整数。
25.在一个可选的实施方式中,压缩资源包括压缩令牌;处理模块,具体用于:
26.当确定令牌桶中存在压缩令牌时,从令牌桶中提取一个压缩令牌,对第i个待压缩数据块进行压缩;
27.或者,当确定令牌桶中不存在压缩令牌时,不再对第i个待压缩数据块进行压缩;
28.其中,每使用一个压缩令牌后,令牌桶中压缩令牌的数量自减一,令牌桶中当前周期内的压缩令牌的初始数量为当前周期对应的最大使用数量。
29.在一个可选的实施方式中,处理模块,具体用于统计当前周期内,用以执行压缩数据块的剩余流量资源;根据预获取的单个待压缩数据块所占用的流量和剩余流量资源,确定当前周期对应的压缩令牌最大使用数量,作为令牌桶中当前周期内的压缩令牌的初始数量。
30.在一个可选的实施方式中,处理模块,具体用于在当前周期内,每间隔固定时间,从令牌桶中提取数据令牌,根据数据令牌,对当前所有待压缩的数据块中,排在首位的待压缩数据块进行数据压缩,其中,固定时间根据周期时间和周期内允许执行数据块压缩的最大数量确定。
31.第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
32.存储器,用于存放计算机程序;
33.处理器,用于执行存储器上所存放的程序时,实现第一方面任一项实施例的数据压缩流控方法的步骤。
34.第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序
被处理器执行时实现如第一方面任一项实施例的数据压缩流控方法的步骤。
35.本技术实施例提供的上述技术方案与现有技术相比具有如下优点:
36.本技术实施例提供的该方法,在当前周期内,获取预设数量的待压缩数据块。然后,按照接收时间,对至少一个待压缩模块进行排序。并确定当前是否已触发数据压缩流控机制。若已经触发数据压缩流控机制,则根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩。并在确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层。直接以未压缩的原始数据块的形式执行后续的传输工作。避免因为数据压缩需要排队所导致的io时延变大,业务性能降低,甚至是用户业务掉零、中断等情况的发生。该方案是在全闪存的空间利用率和业务性能之间做了一个均衡处理。在尽量不影响业务性能的情况下,提高全闪存的空间利用率,以减少用户对于全闪存的应用成本。
附图说明
37.图1为本发明实施例提供的一种数据压缩流控方法流程示意图;
38.图2为本发明提供的数据压缩的简易原理结构示意图;
39.图3为本发明提供的另一种确定当前是否已经出发数据压缩流控机制的方法流程示意图;
40.图4为本发明提供的另一种确定当前是否已经出发数据压缩流控机制的方法流程示意图;
41.图5本发明提供的一种获取令牌桶中当前周期内的压缩令牌的初始数量的整体方法流程示意图;
42.图6为本发明实施例提供的一种数据压缩流控装置结构示意图;
43.图7为本发明实施例提供一种电子设备结构示意图。
具体实施方式
44.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
45.为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
46.针对背景技术中所提及的技术问题,本技术实施例提供了一种数据压缩流控方法,具体参见图1所示。
47.在介绍本发明实施例提供的一种数据压缩流控方法之前,首先说明数据压缩的一个大概原理,具体参见图2所示的数据压缩的简易原理结构示意图。
48.数据压缩,通俗的讲,就是将一个大字符串中的子串用一个很简短的数字来标记,然后检索该字符串出现的位置,用个简单的字符来替代,从而来减少数据表达所需要的空间,带来空间节省。
49.首先,数据从row层,传输到数据压缩层。在数据压缩层,会使用例如lz4、gzip算法
或qat等进行数据压缩。压缩成功之后,将压缩使用的算法、压缩之后的数据长度、压缩数据块key的长度都放到数据块的压缩控制头中,对应的key字符串放入数据块的尾部。
50.具体参见图2所示。图2示出第一层为未压缩数据,第二层为压缩后的数据。而压缩的数据的压缩头(图2中的第三层)中则包括head、压缩数据,以及key内容等。
51.其中head中的字段包括type表示数据压缩时使用的算法,reserve作为保留字段,len为数据压缩后的长度,key_len为压缩数据块的key对应的字符串长度,而key则代表压缩数据后的长度。
52.数据压缩后确定存储在row对象中的预设位置,建立压缩数据块与对象中预设位置的相应映射关系后,返回给row模块。现有机制是实现了数据压缩,在硬件压缩的时候,负载小的时候,数据会经过压缩之后再返回给row层压缩结果,之后在row层再做聚合,最后数据落盘。但是在负载较高的时候,数据因为需要排队进行压缩,会导致io时延变大,从而业务性能会大大降低。
53.因此,本技术提出了一种数据压缩流控方法,用以解决该技术问题。具体的方法步骤参见图1,图1为本发明实施例提供的一种数据压缩流控方法流程示意图,该方法由数据压缩流控系统执行,该方法步骤包括:
54.步骤110,在当前周期内获取至少一个待压缩数据块,并按照接收时间对至少一个待压缩模块进行排序。
55.具体的,每一个周期内数据压缩的数量有限,比如一个周期内在压缩层可执行的压缩数据块的数量为100个。那么,每个周期内,预设数量最多为100个。但是,在获取待压缩数据块时,很多时候不太可能就正好获取100个,有可能多,也有可能会多很多。如果超过100个,则必然会发生数据块排对等待压缩的情况。当然,并非是只要接收100个数据块,就能够保证所有数据块在该周期内一定能被执行压缩操作,具体有多少数据块可以被执行压缩操作,还需要看当前系统中可以用以执行压缩操作的流量资源。并最终根据可以执行压缩操作的流量资源和单个数据块所占用的流量确定可以被执行压缩的数据块的数量。
56.而在获取到至少一个待压缩数据块后,还可以对待压缩数据块进行排序。用以方便后续在确定要对待压缩数据块进行压缩时,可以按照排序顺序,对排序待压缩数据块执行数据压缩操作。
57.步骤120,确定当前是否已触发数据压缩流控机制。
58.具体的,当数据压缩处理低负载的场景下,可以将所有待压缩数据块执行压缩操作,以提高全闪存的空间利用率。在数据压缩高负载的场景下,如果对所有数据执行压缩操作,必然会因为数据压缩需要排队所导致的io时延变大,业务性能降低,甚至是用户业务掉零、中断等情况的发生。所以,在获取到至少一个待压缩数据块后,还需要确定是否启动数据压缩流控机制,以此来达到全闪存空间利用率和业务正常执行之间的一个平衡。
59.在一个可选的实施方式中,确定是否启动压缩流控机制,可以通过但不限于如下方式获取:
60.分别参见图3和图4所示。图3和图4中分别介绍了一种确定当前是否已经触发数据压缩流控机制的方法流程示意图。
61.图3中包括如下方法步骤:
62.步骤310,监测前一周期内的压缩数据块的平均延时。
63.具体的,压缩数据块的平均延时,可以通过如下方式获取:
64.即,在数据块下发的io路径上获取数据块(io)下盘(数据块接收时间)t1和返回的时间戳t2,io时延为delay,delay为两个时间戳的差值(t2-t1)。平均时延,就是统计多个数据块的时延之和再除以数据块个数。
65.步骤320,当确定平均延时超过预设时间阈值时,在本周期内启动数据压缩流控机制。
66.或者,
67.步骤330,当确定平均时延小于或者等于预设时间阈值时,则不在本周期内启动数据压缩流控机制。
68.例如预设时间阈值为5s。那么,当确定平均延时超过5s时,在本周期内启动数据压缩流控机制。否则,则可以不启动数据压缩流控机制。
69.除了可以根据数据压缩时延来判断当前数据压缩操作是否处于高负载模式外,还可以通过图4所示的方法步骤来判定。具体参见如下:
70.步骤410,统计从传输数据块的初始时刻到当前时刻为止,传输数据块所使用的总流量值。
71.具体的,总流量值可以使用线程局部变量的机制按照线程为单位进行分别统计,具体包括:使用uint32_t的线程局部整形数组(该数组的元素个数当前默认值为64)维护每个处理压缩业务线程的流量计数。然后,按照周期时间为粒度对该数组内的所有流量计数进行累加,得到单位时间内的总流量值。
72.上述统计过程为现有技术,这里不再做更加详细的解释说明。
73.步骤420,当确定总流量值超过预设流量阈值时,启动数据压缩流控机制。
74.或者,
75.步骤430,当确定总流量值未超过预设流量阈值时,不启动数据压缩流控机制。
76.也即是,如果当前统计的总流量值超过预设流量阈值,则说明当前数据压缩操作处于高负载场景,如果继续对所有数据块执行无差别压缩操作,必然会导致后续的数据块存在排队等待压缩的情况发生。因此,在此情况出现之前,或者刚出现,亦或刚出现不久,及时采取有效措施,也即是执行数据压缩流控机制。
77.步骤130,当确定已触发数据压缩流控机制后,根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩。
78.具体的,当确定已触发数据压缩流控机制后,其代表所获取到的待压缩数据块并不一定都能够进行数据压缩。很有可能有部分或全部待压缩数据块不能够执行数据压缩擦操作。而具体确定某一个待压缩数据块是否执行数据压缩操作,则需要根据令牌桶中的压缩资源确定。
79.也即是,如果令牌桶中存储有压缩资源,则可以对排序为第i位的(当前排序最靠前的)待压缩数据块进行数据压缩。否则,则不能够对第i位的待压缩数据块进行数据压缩。其中,i为正整数。
80.步骤140,当确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层。
81.具体的,如上所介绍的,若令牌桶中没有存储有压缩资源,或者压缩资源不足的情
况下,则无法对排序为第i位的待压缩数据块进行数据压缩。为了防止因为排队等待造成的io时延变大,业务性能降低,甚至是用户业务掉零、中断等情况的发生,所以需要将排序为第i位的待压缩数据块反馈至数据传输的上一层,也即是row层,继续执行后续处理。
82.本发明实施例提供的数据压缩流控方法,在当前周期内,获取预设数量的待压缩数据块。然后,按照接收时间,对至少一个待压缩模块进行排序。并确定当前是否已触发数据压缩流控机制。若已经触发数据压缩流控机制,则根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩。并在确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层。直接以未压缩的原始数据块的形式执行后续的传输工作。避免因为数据压缩需要排队所导致的io时延变大,业务性能降低,甚至是用户业务掉零、中断等情况的发生。该方案是在全闪存的空间利用率和业务性能之间做了一个均衡处理。在尽量不影响业务性能的情况下,提高全闪存的空间利用率,以减少用户对于全闪存的应用成本。
83.可选的,在上述实施例的基础上,本发明实施例提供了另一种数据压缩流控方法,该方法中,与上文相同或类似的内容,这里将不再过多赘述。本实施例中,将详细说明如何根据令牌桶中的资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩。
84.在一个可选的例子中,压缩资源例如可以包括压缩令牌。
85.那么,当确定令牌桶中存在压缩令牌时,则可以确定对排序在第i位的待压缩数据块进行数据压缩。
86.进而,从令牌桶中提取一个压缩令牌,对第i个待压缩数据块进行压缩;
87.或者,当确定令牌桶中不存在压缩令牌时,则可以确定无法对排序在第i位的待压缩数据块进行数据压缩,因此不再对第i个待压缩数据块进行压缩。
88.其中,每使用一个压缩令牌后,令牌桶中压缩令牌的数量自减一,令牌桶中当前周期内的压缩令牌的初始数量为当前周期对应的最大使用数量。
89.进一步可选的,令牌桶中当前周期内的压缩令牌的初始数量通过如下方式获取,具体参见图5所示,图5示意出获取令牌桶中当前周期内的压缩令牌的初始数量的整体方法流程示意图。该方法步骤包括:
90.步骤510,统计当前周期内,用以执行压缩数据块的剩余流量资源。
91.具体的,当前可以执行压缩数据块的剩余流量资源根据系统性能决定。数据压缩流控系统必须在保证系统性能最佳的情况下,为压缩层分配相应的流量资源,用以执行数据压缩操作。而且,不同时间段,系统的最佳性能可能会发生变化,自然剩余资源流量资源也可能发生改变。比如万兆网卡,带宽资源为1gb/s,那么这个最佳性能理想状态下是跟最大带宽1gb/s一致。但是实际情况,则有可能比1gb/s小很多。
92.步骤520,根据预获取的单个待压缩数据块所占用的流量和剩余流量资源,确定当前周期对应的压缩令牌最大使用数量。
93.假设一个待压缩数据块所占用的流量为8k,当前剩余资源为200mb/s,那么压缩令牌的最大使用数量为25600次。也即是,当前周期内压缩令牌的初始数量为25600次。
94.当前周期内压缩令牌的初始数量为根据上述方式确定好后,再配置到令牌桶中的。并在配置好初始数量后,再执行当前周期内的数据压缩操作。而之所以事先配置好令牌
桶内压缩令牌的数量,是为了避免后续再执行数据块压缩时,存在数据块执行压缩操作需要排队的情况发生。
95.之所以在每个周期都要通过计算压缩令牌的最大数量,作为当前周期内压缩令牌的初始数量,就是考虑到不同周期,可使用的压缩流量资源(剩余流量资源)并不相同。所以,令牌桶中的最大数量也不是一成不变的,而是有可能随时发生改变的。所以需要周期性(甚至是实时)更新。不断调整令牌桶中的数量,用以监控待压缩数据块的压缩进程。避免待压缩数据块排队等待压缩的情况发生。在排队等待之前,将待压缩数据块传递到上一层,直接进行数据传输,以保证业务在数据压缩的高负载场景下,业务可以正常运行。
96.接下来,将详细介绍说明令牌桶中的压缩资源确定对至少一个待压缩数据块中任一个待压缩数据块进行数据压缩时,对待压缩数据块执行数据压缩的详细过程,在一个可选的例子中,可以参见如下方式实现:
97.在当前周期内,每间隔固定时间,从令牌桶中提取数据令牌,根据数据令牌,对当前所有待压缩的数据块中,排在首位的待压缩数据块进行数据压缩,其中,固定时间根据周期时间和周期内允许执行数据块压缩的最大数量确定。
98.具体的,例如当前周期为30分钟,30分钟内可以执行的数据压缩的最大数据块的数量为10个,那么,数据压缩流控系统可以每间隔3(30
÷
10=3)分钟,从令牌桶调取一次压缩令牌,并在调取后,更新令牌桶中的令牌数量,通常是自减1。如果本次调取成功,则说明可以对当前排在首位的待压缩数据块进行数据压缩。如果本次调取失败,则说明不再对当前排在首位的待压缩数据块进行数据压缩,将该待压缩数据块传递至上一层。实际上,如果令牌桶中没有令牌,除当前排在首位的数据块以外,可能其他在队列中待压缩数据块也需要反馈到上一层。直到下一周期的到来,在数据压缩流控机制启动的情况下,重新计算新的周期的令牌桶中的初始数量,来确定下一周期接收到的待压缩数据块待压缩的数量。
99.以上,为本技术所提供的数据压缩流控几个方法实施例,下文中则介绍说明本技术所提供的数据压缩流控其他实施例,具体参见如下。
100.图6为本发明实施例提供的一种数据压缩流控装置,该装置包括:获取模块601、排序模块602、处理模块603,以及发送模块604。
101.获取模块601,用于在当前周期内获取至少一个待压缩数据块;
102.排序模块602,用于按照接收时间对至少一个待压缩模块进行排序;
103.处理模块603,用于确定当前是否已触发数据压缩流控机制;当确定已触发数据压缩流控机制后,根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩;
104.发送模块604,用于当处理模块603确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层,其中,i为正整数。
105.可选的,压缩资源包括压缩令牌;处理模块603,具体用于:
106.当确定令牌桶中存在压缩令牌时,从令牌桶中提取一个压缩令牌,对第i个待压缩数据块进行压缩;
107.或者,当确定令牌桶中不存在压缩令牌时,不再对第i个待压缩数据块进行压缩;
108.其中,每使用一个压缩令牌后,令牌桶中压缩令牌的数量自减一,令牌桶中当前周期内的压缩令牌的初始数量为当前周期对应的最大使用数量。
109.可选的,处理模块603,具体用于统计当前周期内,用以执行压缩数据块的剩余流量资源;根据预获取的单个待压缩数据块所占用的流量和剩余流量资源,确定当前周期对应的压缩令牌最大使用数量,作为令牌桶中当前周期内的压缩令牌的初始数量。
110.可选的,处理模块603,具体用于在当前周期内,每间隔固定时间,从令牌桶中提取数据令牌,根据数据令牌,对当前所有待压缩的数据块中,排在首位的待压缩数据块进行数据压缩,其中,固定时间根据周期时间和周期内允许执行数据块压缩的最大数量确定。
111.可选的,处理模块603,具体用于监测前一周期内的压缩数据块的平均延时;当确定平均延时超过预设时间阈值时,在本周期内启动数据压缩流控机制;或者,当确定平均时延小于或者等于预设时间阈值时,则不在本周期内启动数据压缩流控机制。
112.可选的,处理模块603,具体用于统计从传输数据块的初始时刻到当前时刻为止,传输数据块所使用的总流量值;当确定总流量值超过预设流量阈值时,启动数据压缩流控机制;或者,当确定总流量值未超过预设流量阈值时,不启动数据压缩流控机制。
113.本发明实施例提供的数据压缩流控装置中各部件所执行的功能均已在上述任一方法实施例中做了详细的描述,因此这里不再赘述。
114.本发明实施例提供的一种数据压缩流控装置,在当前周期内,获取预设数量的待压缩数据块。然后,按照接收时间,对至少一个待压缩模块进行排序。并确定当前是否已触发数据压缩流控机制。若已经触发数据压缩流控机制,则根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩。并在确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层。直接以未压缩的原始数据块的形式执行后续的传输工作。避免因为数据压缩需要排队所导致的io时延变大,业务性能降低,甚至是用户业务掉零、中断等情况的发生。该方案是在全闪存的空间利用率和业务性能之间做了一个均衡处理。在尽量不影响业务性能的情况下,提高全闪存的空间利用率,以减少用户对于全闪存的应用成本。
115.如图7所示,本技术实施例提供了一种电子设备,包括处理器111、通信接口112、存储器113和通信总线114,其中,处理器111,通信接口112,存储器113通过通信总线114完成相互间的通信。
116.存储器113,用于存放计算机程序;
117.在本技术一个实施例中,处理器111,用于执行存储器113上所存放的程序时,实现前述任意一个方法实施例提供的数据压缩流控方法,包括:
118.在当前周期内获取至少一个待压缩数据块,并按照接收时间对至少一个待压缩模块进行排序;
119.确定当前是否已触发数据压缩流控机制;
120.当确定已触发数据压缩流控机制后,根据令牌桶中的压缩资源确定至少一个待压缩数据块中排序为第i位的待压缩数据块是否进行数据压缩;
121.当确定不再对第i个待压缩数据块进行压缩时,反馈第i个待压缩数据块至数据传输的上一层,其中,i为正整数。
122.可选的,压缩资源包括压缩令牌;
123.当确定令牌桶中存在压缩令牌时,从令牌桶中提取一个压缩令牌,对第i个待压缩数据块进行压缩;
124.或者,当确定令牌桶中不存在压缩令牌时,不再对第i个待压缩数据块进行压缩;
125.其中,每使用一个压缩令牌后,令牌桶中压缩令牌的数量自减一,令牌桶中当前周期内的压缩令牌的初始数量为当前周期对应的最大使用数量。
126.可选的,令牌桶中当前周期内的压缩令牌的初始数量通过如下方式获取:
127.统计当前周期内,用以执行压缩数据块的剩余流量资源;
128.根据预获取的单个待压缩数据块所占用的流量和剩余流量资源,确定当前周期对应的压缩令牌最大使用数量,作为令牌桶中当前周期内的压缩令牌的初始数量。
129.可选的,在当前周期内,每间隔固定时间,从令牌桶中提取数据令牌,根据数据令牌,对当前所有待压缩的数据块中,排在首位的待压缩数据块进行数据压缩,其中,固定时间根据周期时间和周期内允许执行数据块压缩的最大数量确定。
130.可选的,监测前一周期内的压缩数据块的平均延时;
131.当确定平均延时超过预设时间阈值时,在本周期内启动数据压缩流控机制;
132.或者,当确定平均时延小于或者等于预设时间阈值时,则不在本周期内启动数据压缩流控机制。
133.可选的,统计从传输数据块的初始时刻到当前时刻为止,传输数据块所使用的总流量值;
134.当确定总流量值超过预设流量阈值时,启动数据压缩流控机制;
135.或者,当确定总流量值未超过预设流量阈值时,不启动数据压缩流控机制。
136.本技术实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现如前述任意一个方法实施例提供的数据压缩流控方法的步骤。
137.需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。
138.以上仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1