CN111290701B - 数据读写控制方法、装置、介质和电子设备 - Google Patents
数据读写控制方法、装置、介质和电子设备 Download PDFInfo
- Publication number
- CN111290701B CN111290701B CN201811507078.7A CN201811507078A CN111290701B CN 111290701 B CN111290701 B CN 111290701B CN 201811507078 A CN201811507078 A CN 201811507078A CN 111290701 B CN111290701 B CN 111290701B
- Authority
- CN
- China
- Prior art keywords
- target data
- unit time
- read
- maximum
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的实施方式提供了一种数据读写控制方法,包括获得对目标数据的读写指令以及所述目标数据的大小,根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数,从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌,根据所述与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌对所述目标数据进行读写操作。该方法通过控制每次消耗的令牌数量而实现单个令牌桶同时控制单位时间内允许的最大读写次数以及单位时间内允许传输的最大数据量,减少线程的使用,节省系统资源。此外,本发明的实施方式提供了一种数据读写控制装置、一种计算机可读存储介质以及一种电子设备。
Description
技术领域
本发明的实施方式涉及计算机技术领域,更具体地,本发明的实施方式涉及一种数据读写控制方法、装置、介质和电子设备。
背景技术
本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
在云计算场景中通常对于网络带宽和每秒进行读写操作的次数的控制方式是采用令牌桶控制算法,当用户需要向服务端发送请求的时候需要先到对应的令牌桶取令牌,如果这个时候令牌桶中有令牌才可以继续发送数据。要对每秒进行读写操作的次数和网络带宽同时控制的时候,通常选用两个令牌桶,一个令牌桶用于控制每秒进行读写操作的次数,另一个令牌桶用于控制网络带宽,实现上采用两个线程各自控制令牌桶,独立以一定速率生产令牌。
发明内容
但是,两个线程独立生产令牌会造成资源浪费,线程本身是一种计算机资源,需要消耗一定的内存和CPU,另外独立的两个线程生产令牌在取令牌的时候需要加锁控制,加锁同样会消耗一部分计算机资源。所以现有技术对于计算机资源消耗相对较大。
为此,非常需要一种改进的数据读写控制方法,以克服消耗计算机资源较大的问题。
在本上下文中,本发明的实施方式期望提供一种数据读写控制方法,通过控制每次消耗的令牌数量而实现单个令牌桶同时控制单位时间内允许的最大读写次数以及单位时间内允许传输的最大数据量,减少线程的使用,节省系统资源。
在本发明实施方式的第一方面中,提供了一种数据读写控制方法,包括,获得对目标数据的读写指令以及所述目标数据的大小,根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数,从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌,根据所述与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌对所述目标数据进行读写操作。
在本发明的一个实施例中,所述根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数包括,获得单位时间内最大读写次数的限值作为第一值,确定单位时间内最大传输数据量与所述目标数据的大小的比值作为第二值,将所述第一值和所述第二值中的较小者作为对所述目标数据的单位时间内最大读写次数。
在本发明的另一实施例中,所述令牌桶在单位时间内生产k个令牌,所述从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌包括,获得单位时间内最大读写次数的限值作为第一值,确定所述第一值与所述对所述目标数据的所述单位时间内最大读写次数的比值作为第三值,基于k和第三值确定对目标数据的单位时间内最大读写次数对应的数量,从令牌桶中获取所述对目标数据的单位时间内最大读写次数对应的数量的令牌。
在本发明的又一个实施例中,在获得对目标数据的读写指令以及所述目标数据的大小之前,所述方法还包括基于所述单位时间内最大读写次数的限值确定所述k的取值。
在本发明的再一个实施例中,所述与对所述目标数据的所述单位时间内最大读写次数对应数量为整数或非整数。
在本发明实施方式的第二方面中,提供了一种数据读写控制装置,包括获得模块、第一确定模块、请求模块以及执行模块。获得模块,用于获得对目标数据的读写指令以及所述目标数据的大小。第一确定模块,用于根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数。请求模块,用于从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌。执行模块,用于根据所述与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌对所述目标数据进行读写操作。
在本发明的一个实施例中,所述第一确定模块包括第一获得子模块、第一确定子模块以及第二确定子模块。第一获得子模块,用于获得单位时间内最大读写次数的限值作为第一值。第一确定子模块,用于确定单位时间内最大传输数据量与所述目标数据的大小的比值作为第二值。第二确定子模块,用于将所述第一值和所述第二值中的较小者作为对所述目标数据的单位时间内最大读写次数。
在本发明的另一个实施例中,所述令牌桶在单位时间内生产k个令牌,所述请求模块包括第二获得子模块、第三确定子模块以及请求子模块。第二获得子模块,用于获得单位时间内最大读写次数的限值作为第一值。第三确定子模块,用于确定所述第一值与所述对所述目标数据的所述单位时间内最大读写次数的比值作为第三值。请求子模块,用于基于k和第三值确定对目标数据的单位时间内最大读写次数对应的数量,从令牌桶中获取所述对目标数据的单位时间内最大读写次数对应的数量的令牌。
在本发明的又一个实施例中,所述装置还包括第二确定模块,用于基于所述单位时间内最大读写次数的限值确定所述k的取值。
在本发明的再一个实施例中,所述与对所述目标数据的所述单位时间内最大读写次数对应数量为整数或非整数。
在本发明实施方式的第三方面中,提供了一种计算机可读存储介质,其上存储有可执行指令,所述指令被处理单元执行时使所述处理单元执行上述任一项所述的方法。
在本发明实施方式的第四方面中,提供了一种电子设备,包括处理单元以及存储单元,其上存储有可执行指令,所述指令被所述处理单元执行时使所述处理单元执行如上所述的方法。
根据本发明实施方式的数据读写控制方法、装置和电子设备,通过控制每次消耗的令牌数量而实现单个令牌桶同时控制单位时间内允许的最大读写次数以及单位时间内允许传输的最大数据量,减少线程的使用,节省系统资源。
附图说明
通过参考附图阅读下文的详细描述,本发明示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施方式,其中:
图1示意性地示出了根据本发明实施方式的数据读写控制方法的应用场景;
图2示意性地示出了根据本发明示例性实施例的数据读写控制方法的流程图;
图3示意性地示出了根据本发明示例性实施例的每秒最大读写次数 IOPS作为单位时间内最大读写次数与目标数据的大小(IO size)的关系的示意图;
图4示意性地示出了根据本发明示例性实施例的根据目标数据的大小得到对目标数据的单位时间内最大读写次数的流程图;
图5示意性地示出了根据本发明示例性实施例的从令牌桶中获取与最大读写次数对应数量的令牌的流程图;
图6示意性地示出了根据本发明示例性实施例的数据读写控制装置的框图;
图7示意性地示出了根据本发明示例性实施例的第一确定模块的框图;
图8示意性地示出了根据本发明示例性实施例的请求模块的框图;
图9示意性地示出了根据本发明示例性实施例的计算机可读存储介质的示意图;以及
图10示意性地示出了根据本发明示例性实施例的电子设备的方框图。
在附图中,相同或对应的标号表示相同或对应的部分。
具体实施方式
下面将参考若干示例性实施方式来描述本发明的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本发明,而并非以任何方式限制本发明的范围。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种动态预览图的生成方法、系统、介质和电子设备。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
发明概述
在云计算场景中,要对每秒进行读写操作的次数和网络带宽同时控制的时候,通常选用两个令牌桶,一个令牌桶用于控制每秒进行读写操作的次数,另一个令牌桶用于控制网络带宽,实现上采用两个线程各自控制令牌桶,独立以一定速率生产令牌。但是,两个线程独立生产令牌会造成资源浪费,线程本身是一种计算机资源,需要消耗一定的内存和CPU,另外独立的两个线程生产令牌在取令牌的时候需要加锁控制,加锁同样会消耗一部分计算机资源。所以现有技术对于计算机资源消耗相对较大。为了解决这一问题,本发明示例性实施例提供了一种数据读写控制方法、装置和电子设备,通过控制每次消耗的令牌数量而实现单个令牌桶同时控制单位时间内允许的最大读写次数以及单位时间内允许传输的最大数据量,减少线程的使用,节省系统资源。
在介绍了本发明的基本原理之后,下面具体介绍本发明的各种非限制性实施方式。
应用场景总览
请参考图1,图1示意性地示出了根据本发明实施方式的数据读写控制方法的应用场景。
如图1所示,分布式系统100可以包括多个节点110以及网络120。网络120是用以在多个节点110之间提供通信链路的介质。网络120可以包括各种连接类型,例如有线、无线通信链路等等。节点110例如可以是专用的计算或存储设备,或者多个用户的终端设备等。
在分布式存储场景中,需要大量的读写操作,各个节点中的数据不断地被读取和写入。在系统资源有限时,需要对使用该服务的用户进行限制,例如限制用户的每秒最大读写次数IOPS(Input/Output Operations Per Second)以及最大传输数据量(即网络带宽,Bandwidth)。该分布式系统 100可以通过本公开实施例的方法实现单线程同时控制以上两种限制。
需要注意的是,上述应用场景仅是为了便于理解本发明的精神和原理而示出,本发明的实施方式在此方面不受任何限制。相反,本发明的实施方式可以应用于适用的任何场景。
示例性方法
下面结合图1的应用场景,参考图2~图5描述根据本发明示例性实施方式的动态预览图的生成方法。
图2示意性地示出了根据本发明示例性实施例的数据读写控制方法的流程图。
如图2所示,该方法包括步骤S210~S230。
在步骤S210,获得对目标数据的读写指令以及该目标数据的大小。
根据本发明示例性实施例,获得目标数据的大小可以是在每一次获得对目标数据的读写指令时获得本次需要读写的目标数据的大小。例如,在某一次请求写入8kB的数据时,获得本次目标数据的大小为8KB,而在另一次请求读取16kB的数据时,获得该目标数据的大小为16KB等等。
根据本发明示例性实施例,在每一次数据读写操作是以固定大小为单位的情况下,获得该目标数据的大小也可以是一次性获得该固定大小。例如,如果所有的数据读写操作都被拆分成8KB的数据块来执行,一个64KB 数据的写入请求会被拆分为8个8KB数据块的写入操作,因此,可以一次性获得目标数据大小为8KB,而无需在每获得一个读写指令时获得目标数据的大小。
在步骤S220,根据上述目标数据的大小得到对该目标数据的单位时间内最大读写次数。下面参考图3和图4对本发明示例性实施例的操作S220 进行描述。
图3示意性地示出了根据本发明示例性实施例的每秒最大读写次数 IOPS作为单位时间内最大读写次数与目标数据的大小(IO size)的关系的示意图。
如图3所示,通常厂商会承诺用户一些性能数据,包括每秒最大读写次数IOPS和网络带宽Bandwidth。
在本实施例中,承诺的IOPS=I,Bandwidth=B,目标数据的大小以x表示,其对应的实际每秒最大读写次数以y表示。当x≤n的时候能够保证用户的IOPS达到I,而占用的网络带宽小于B;当x≥m的时候能够保证用户的网络带宽Bandwidth达到B,而实际每秒读写次数小于I(占用的网络带宽为每秒读写次数与目标数据的大小的乘积,在x=m时,y=B/m);当 n<x<m的时候,读写操作主要受到网络带宽的限制。
在实际使用中,在n<x<m的情况下,并不一定能达到承诺的网络带宽,但这种情况并不会使得读写操作超出本发明所要控制的两个限制条件,此处无需进行考虑。
图4示意性地示出了根据本发明示例性实施例的根据目标数据的大小得到对目标数据的单位时间内最大读写次数的流程图。
如图4所示,该方法包括步骤S410~S430。
在步骤S410,获得单位时间内最大读写次数的限值作为第一值。根据本发明示例性实施例,可以参考图3的描述,获得每秒最大读写次数IOPS 的限值I作为第一值。
在步骤S420,确定单位时间内最大传输数据量与目标数据的大小的比值作为第二值。根据本公开实施例,参考图3的描述,该比值为B/x,即通过网络带宽限制的可以达到的单位时间内的最大读写次数。
在步骤S410,将第一值和第二值中的较小者作为对目标数据的单位时间内最大读写次数。综合两种限制得到较小者,即单位时间内对目标数据的读写可能达到的最大读写次数,作为对目标数据的单位时间内最大读写次数,即min(I,B/x)。
事实上,在如图3所示意的实施例中,如果x≤n,也可以不经过上述计算而直接确定对目标数据的单位时间内最大读写次数为I,以节省计算资源。
返回参考上述图2。在步骤S230,从令牌桶中获取与对目标数据的单位时间内最大读写次数对应数量的令牌。
根据本发明示例性实施例,可以控制该令牌桶在单位时间内生产k个令牌。特别地,k可以取I,即单位时间生产I个令牌,在每次读写操作至少消耗1个令牌的情况下,可以保证在任何时候,单位时间内读写次数不超过I。在k按一定倍数变化时,每次读写至少消耗的令牌数量也可以按同样的倍数变化,例如,当k=10I时,若每次至少消耗10个令牌,同样可以保证单位时间内读写次数不超过I。这样,通过对令牌生产速率的控制,实现了对单位时间内读写次数的限制。
下面参考图5对本发明示例性实施例的步骤S230进行描述。
图5示意性地示出了根据本发明示例性实施例的从令牌桶中获取与最大读写次数对应数量的令牌的流程图。
如图5所示,该方法包括步骤S510~S530。
在步骤S510,获得单位时间内最大读写次数的限值作为第一值。根据本发明示例性实施例,可以参考图3的描述,获得每秒最大读写次数IOPS 的限值I作为第一值。
在步骤S520,确定第一值与对目标数据的单位时间内最大读写次数的比值作为第三值。根据本发明示例性实施例,若对目标数据的单位时间内最大读写次数为min(I,B/x),那么,该第三值为P’=max(1,Ix/B)。
在步骤S530,基于k和第三值确定对目标数据的单位时间内最大读写次数对应的数量,从令牌桶中获取该数量的令牌。
例如,在k=I时,可以确定对目标数据的单位时间内最大读写次数对应的数量P为:
P=P=max(1,Ix/B)。
根据本发明示例性实施例,与对目标数据的单位时间内最大读写次数对应数量为整数或非整数。在特定数量限定为整数的情况下,可以简化数据类型从而提高计算速度;在特定数量不限定为整数的情况下,可以最大化地使用网络带宽。
根据本发明示例性实施例,可以设置k=t×I,于是:
P=t×P’=max(t,Ixt/B)。
根据本发明示例性实施例,在获得对目标数据的读写指令以及目标数据的大小之前,该方法还包括基于单位时间内最大读写次数的限值确定k 的取值。例如,可以通过调整k的取值,使P=max(t,Ixt/B)为整数,即每次取的令牌数为整数,以简化数据类型从而提高计算速度。
返回参考上述图2。在步骤S240,根据与对目标数据的单位时间内最大读写次数对应数量的令牌对该目标数据进行读写操作。在确定了每次读写取用的令牌数量后,按照该数量进行读写控制,即可实现网络带宽的限制,另一方面,令牌的生产速率保证了对每秒最大读写次数的限制。
下面结合一具体实施例进行说明。
若IOPS=20000,Bandwidth=500MBps,可以控制令牌生产速度 k=20000。在目标数据的大小不大于4KB的情况下,可以达到20000次/秒的最大读写次数;在目标数据的大小不小于64KB的情况下,可以达到占用全部500MBps的网络带宽。
获得读写指令时,假如确定目标数据的大小为32KB,则得到对该目标数据的单位时间内最大读写次数为min(20000,500MB/32KB)=16000。确定与对该目标数据的单位时间内最大读写次数对应数量为max(1, 20000×32KB/500MB)=1.25。因此,控制从令牌桶中获取1.25个令牌,并根据该1.25个令牌对目标数据进行读写操作。
本发明示例性实施例的数据读写控制方法,通过控制每次消耗的令牌数量而实现单个令牌桶同时控制单位时间内允许的最大读写次数以及单位时间内允许传输的最大数据量,减少线程的使用,节省系统资源。
示例性系统
在介绍了本发明示例性实施方式的方法之后,接下来,参考图6对本发明示例性实施方式的数据读写控制装置600进行说明。
图6示意性地示出了根据本发明示例性实施例的数据读写控制装置 600的框图。
如图6所示,该数据读写控制装置600包括获得模块610、第一确定模块620、请求模块630以及执行模块640。
获得模块610,例如执行上文参考图2描述的操作S210,用于获得对目标数据的读写指令以及该目标数据的大小。
第一确定模块620,例如执行上文参考图2描述的操作S220,用于根据目标数据的大小得到对目标数据的单位时间内最大读写次数。
请求模块630,例如执行上文参考图2描述的操作S230,用于从令牌桶中获取与对目标数据的单位时间内最大读写次数对应数量的令牌。
执行模块640,例如执行上文参考图2描述的操作S240,用于根据与对目标数据的单位时间内最大读写次数对应数量的令牌对该目标数据进行读写操作。
图7示意性地示出了根据本发明示例性实施例的第一确定模块620的框图。
如图7所示,该第一确定模块620包括第一获得子模块710、第一确定子模块720以及第二确定子模块730。
第一获得子模块710,例如执行上文参考图4描述的操作S410,用于获得单位时间内最大读写次数的限值作为第一值。
第一确定子模块720,例如执行上文参考图4描述的操作S420,用于确定单位时间内最大传输数据量与目标数据的大小的比值作为第二值。
第二确定子模块730,例如执行上文参考图4描述的操作S430,用于将第一值和第二值中的较小者作为对该目标数据的单位时间内最大读写次数。
图8示意性地示出了根据本发明示例性实施例的请求模块630的框图。
如图8所示,该请求模块630包括第二获得子模块810、第三确定子模块820以及请求子模块830。
第二获得子模块810,例如执行上文参考图5描述的操作S510,用于获得单位时间内最大读写次数的限值作为第一值。
第三确定子模块820,例如执行上文参考图5描述的操作S520,用于确定第一值与对目标数据的单位时间内最大读写次数的比值作为第三值。
请求子模块830,例如执行上文参考图5描述的操作S530,用于基于 k和第三值确定对目标数据的单位时间内最大读写次数对应的数量,从令牌桶中获取该数量的令牌,其中,该令牌桶在单位时间内生产k个令牌。
根据本发明示例性实施例,该装置还包括第二确定模块,用于基于单位时间内最大读写次数的限值确定k的取值。
根据本发明示例性实施例,与对目标数据的单位时间内最大读写次数对应数量为整数或非整数。
根据本发明示例性实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本发明示例性实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本发明示例性实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本发明示例性实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,获得模块610、第一确定模块620、请求模块630、执行模块640、第一获得子模块710、第一确定子模块720、第二确定子模块730、第二获得子模块810、第三确定子模块820、请求子模块830以及第二确定模块中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,获得模块610、第一确定模块620、请求模块630、执行模块640、第一获得子模块710、第一确定子模块720、第二确定子模块730、第二获得子模块810、第三确定子模块820、请求子模块830以及第二确定模块中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列 (FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,获得模块 610、第一确定模块620、请求模块630、执行模块640、第一获得子模块710、第一确定子模块720、第二确定子模块730、第二获得子模块810、第三确定子模块820、请求子模块830以及第二确定模块中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
示例性介质
在介绍了本发明示例性实施方式的系统之后,接下来,参考图9对本发明示例性实施方式的一种计算机可读存储介质进行说明。本发明示例性实施方式提供了一种计算机可读存储介质,其上存储有可执行指令,该指令被处理单元执行时使该处理单元执行上文该的方法。
在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当该程序产品在电子设备上运行时,该程序代码用于使该电子设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据读写控制方法中的步骤,例如,该电子设备可以执行如图2中所示的步骤S210:获得对目标数据的读写指令以及该目标数据的大小;步骤S220:根据目标数据的大小得到对目标数据的单位时间内最大读写次数;步骤S230:从令牌桶中获取与对目标数据的单位时间内最大读写次数对应数量的令牌;步骤S240:根据与对目标数据的单位时间内最大读写次数对应数量的令牌对该目标数据进行读写操作。
该程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图9所示,描述了根据本发明的实施方式的用于数据读写控制的程序产品900,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆,RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,该程序设计语言包括面向对象的程序设计语言——诸如Java, C++等,还包括常规的过程式程序设计语言——诸如“C”,语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)一连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
示例性电子设备
在介绍了本发明示例性实施方式的方法、系统和介质之后,接下来,参考图10对本发明示例性实施方式的用于数据读写控制的电子设备进行说明。
本发明实施例还提供了一种用于数据读写控制的电子设备。所属技术领域的技术人员能够理解,本发明的各个方面可以实现为系统、方法或程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本发明的用于数据读写控制的电子设备可以至少包括至少一个处理单元、以及至少一个存储单元。其中,该存储单元存储有程序代码,当该程序代码被该处理单元执行时,使得该处理单元执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的数据读写控制方法中的步骤。例如,该处理单元可以执行如图2中所示的步骤S210:获得对目标数据的读写指令以及该目标数据的大小;步骤S220:根据目标数据的大小得到对目标数据的单位时间内最大读写次数;步骤S230:从令牌桶中获取与对目标数据的单位时间内最大读写次数对应数量的令牌;步骤S240:根据与对目标数据的单位时间内最大读写次数对应数量的令牌对该目标数据进行读写操作。
下面参照图10来描述根据本发明的这种实施方式的电子设备1000。如图10所示的电子设备1000仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,电子设备1000以通用电子设备的形式表现。电子设备1000的组件可以包括但不限于:上述至少一个处理单元1010、上述至少一个存储单元1020、连接不同系统组件(包括存储单元1020和处理单元 1010)的总线1030。
总线1030包括数据总线、地址总线和控制总线。
存储单元1020可以包括易失性存储器,例如随机存取存储器(RAM) 1021和/或高速缓存存储器1022,还可以进一步包括只读存储器(ROM) 1023。
存储单元1020还可以包括具有一组(至少一个)程序模块1024的程序/实用工具1025,这样的程序模块1024包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备1000也可以与一个或多个外部设备1040(例如键盘、指向设备、蓝牙设备等)通信,这种通信可以通过输入/输出(I/O)接口1050 进行。并且,电子设备1000还可以通过网络适配器1060与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网) 通信。如图所示,网络适配器1060通过总线1030与电子设备1000的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备1000使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了数据读写控制装置的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
此外,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
虽然已经参考若干具体实施方式描述了本发明的精神和原理,但是应该理解,本发明并不限于所公开的具体实施方式,对各方面的划分也不意味着这些方面中的特征不能组合以进行受益,这种划分仅是为了表述的方便。本发明旨在涵盖所附权利要求的精神和范围内所包括的各种修改和等同布置。
Claims (8)
1.一种数据读写控制方法,包括:
获得对目标数据的读写指令以及所述目标数据的大小;
根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数;
从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌;
根据所述与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌对所述目标数据进行读写操作;
其中,所述根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数包括:
获得单位时间内最大读写次数的限值作为第一值;
确定单位时间内最大传输数据量与所述目标数据的大小的比值作为第二值;
将所述第一值和所述第二值中的较小者作为对所述目标数据的单位时间内最大读写次数;
其中,所述令牌桶在单位时间内生产k个令牌,所述从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌包括:
确定所述第一值与所述对所述目标数据的所述单位时间内最大读写次数的比值作为第三值;
基于k和第三值确定对目标数据的单位时间内最大读写次数对应的数量,从令牌桶中获取所述对目标数据的单位时间内最大读写次数对应的数量的令牌。
2.根据权利要求1所述的方法,其中,在获得对目标数据的读写指令以及所述目标数据的大小之前,所述方法还包括:
基于所述单位时间内最大读写次数的限值确定所述k的取值。
3.根据权利要求1所述的方法,其中,所述与对所述目标数据的所述单位时间内最大读写次数对应数量为整数或非整数。
4.一种数据读写控制装置,包括:
获得模块,用于获得对目标数据的读写指令以及所述目标数据的大小;
第一确定模块,用于根据所述目标数据的大小得到对所述目标数据的单位时间内最大读写次数;
请求模块,用于从令牌桶中获取与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌;
执行模块,用于根据所述与对所述目标数据的所述单位时间内最大读写次数对应数量的令牌对所述目标数据进行读写操作;
其中,所述第一确定模块包括:
第一获得子模块,用于获得单位时间内最大读写次数的限值作为第一值;
第一确定子模块,用于确定单位时间内最大传输数据量与所述目标数据的大小的比值作为第二值;
第二确定子模块,用于将所述第一值和所述第二值中的较小者作为对所述目标数据的单位时间内最大读写次数;
其中,所述令牌桶在单位时间内生产k个令牌,所述请求模块包括:
第三确定子模块,用于确定所述第一值与所述对所述目标数据的所述单位时间内最大读写次数的比值作为第三值;
请求子模块,用于基于k和第三值确定对目标数据的单位时间内最大读写次数对应的数量,从令牌桶中获取所述对目标数据的单位时间内最大读写次数对应的数量的令牌。
5.根据权利要求4所述的装置,还包括:
第二确定模块,用于基于所述单位时间内最大读写次数的限值确定所述k的取值。
6.根据权利要求4所述的装置,其中,所述与对所述目标数据的所述单位时间内最大读写次数对应数量为整数或非整数。
7.一种计算机可读存储介质,其上存储有可执行指令,所述可执行指令被处理单元执行时使所述处理单元执行根据权利要求1-3中任一项所述的方法。
8.一种电子设备,包括:
处理单元;以及
存储单元,其上存储有可执行指令,所述指令被所述处理单元执行时使所述处理单元执行根据权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811507078.7A CN111290701B (zh) | 2018-12-10 | 2018-12-10 | 数据读写控制方法、装置、介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811507078.7A CN111290701B (zh) | 2018-12-10 | 2018-12-10 | 数据读写控制方法、装置、介质和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111290701A CN111290701A (zh) | 2020-06-16 |
CN111290701B true CN111290701B (zh) | 2022-06-24 |
Family
ID=71021506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811507078.7A Active CN111290701B (zh) | 2018-12-10 | 2018-12-10 | 数据读写控制方法、装置、介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111290701B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115378879A (zh) * | 2022-08-22 | 2022-11-22 | Oppo广东移动通信有限公司 | 数据控制方法及相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8953453B1 (en) * | 2011-12-15 | 2015-02-10 | Amazon Technologies, Inc. | System and method for throttling service requests using work-based tokens |
CN107276827A (zh) * | 2017-07-25 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种分布式存储系统中Qos的实现方法及装置 |
CN107948090A (zh) * | 2017-11-23 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种Ceph存储集群卷的带宽控制方法及装置 |
CN107959635A (zh) * | 2017-11-23 | 2018-04-24 | 郑州云海信息技术有限公司 | 一种基于令牌桶算法的iops控制方法及装置 |
CN108604194A (zh) * | 2016-01-15 | 2018-09-28 | 谷歌有限责任公司 | 概率性调节 |
CN108804043A (zh) * | 2018-06-26 | 2018-11-13 | 郑州云海信息技术有限公司 | 分布式块存储系统带宽流量控制方法、装置、设备及介质 |
-
2018
- 2018-12-10 CN CN201811507078.7A patent/CN111290701B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8953453B1 (en) * | 2011-12-15 | 2015-02-10 | Amazon Technologies, Inc. | System and method for throttling service requests using work-based tokens |
CN108604194A (zh) * | 2016-01-15 | 2018-09-28 | 谷歌有限责任公司 | 概率性调节 |
CN107276827A (zh) * | 2017-07-25 | 2017-10-20 | 郑州云海信息技术有限公司 | 一种分布式存储系统中Qos的实现方法及装置 |
CN107948090A (zh) * | 2017-11-23 | 2018-04-20 | 郑州云海信息技术有限公司 | 一种Ceph存储集群卷的带宽控制方法及装置 |
CN107959635A (zh) * | 2017-11-23 | 2018-04-24 | 郑州云海信息技术有限公司 | 一种基于令牌桶算法的iops控制方法及装置 |
CN108804043A (zh) * | 2018-06-26 | 2018-11-13 | 郑州云海信息技术有限公司 | 分布式块存储系统带宽流量控制方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111290701A (zh) | 2020-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10983816B2 (en) | Self-adaptive building container images | |
US9501304B1 (en) | Lightweight application virtualization architecture | |
CA2935114A1 (en) | Computer, control device, and data processing method | |
US11546431B2 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
JP7282823B2 (ja) | メモリアクセスリクエストスケジューリング方法、装置、電子デバイス、コンピュータ可読記憶媒体及びコンピュータプログラム | |
US20160210171A1 (en) | Scheduling in job execution | |
JP2013186770A (ja) | データ処理装置 | |
US9069621B2 (en) | Submitting operations to a shared resource based on busy-to-success ratios | |
US20120284457A1 (en) | Selecting an auxiliary storage medium for writing data of real storage pages | |
CN111290701B (zh) | 数据读写控制方法、装置、介质和电子设备 | |
US20100199067A1 (en) | Split Vector Loads and Stores with Stride Separated Words | |
US11249760B2 (en) | Parameter management between programs | |
US10901657B2 (en) | Dynamic write credit buffer management of non-volatile dual inline memory module | |
US8281091B2 (en) | Automatic selection of storage volumes in a data storage system | |
US20230031636A1 (en) | Artificial intelligence (ai) model deployment | |
US8543687B2 (en) | Moving deployment of images between computers | |
US9619294B2 (en) | Placement of virtual CPUs using a hardware multithreading parameter | |
US11178216B2 (en) | Generating client applications from service model descriptions | |
JP2023549661A (ja) | パーティション化されたニューラル・ネットワークのための省電力及び暗号化機能を有するメディア・キャプチャ・デバイス | |
US8966133B2 (en) | Determining a mapping mode for a DMA data transfer | |
US20210073033A1 (en) | Memory management using coherent accelerator functionality | |
US20200341859A1 (en) | Automatic objective-based compression level change for individual clusters | |
US8321606B2 (en) | Systems and methods for managing memory using multi-state buffer representations | |
US11210758B2 (en) | System and method for UEFI advanced graphics utilizing a graphics processing unit | |
US20220067872A1 (en) | Graphics processing unit including delegator and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee after: Hangzhou NetEase Shuzhifan Technology Co.,Ltd. Address before: 310052 Room 301, Building No. 599, Changhe Street Network Business Road, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: HANGZHOU LANGHE TECHNOLOGY Ltd. |
|
CP01 | Change in the name or title of a patent holder |