CN112306415B - Gc流控方法、装置、计算机可读存储介质及电子设备 - Google Patents

Gc流控方法、装置、计算机可读存储介质及电子设备 Download PDF

Info

Publication number
CN112306415B
CN112306415B CN202011203376.4A CN202011203376A CN112306415B CN 112306415 B CN112306415 B CN 112306415B CN 202011203376 A CN202011203376 A CN 202011203376A CN 112306415 B CN112306415 B CN 112306415B
Authority
CN
China
Prior art keywords
token
tokens
token bucket
main
water level
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
Application number
CN202011203376.4A
Other languages
English (en)
Other versions
CN112306415A (zh
Inventor
孙成思
孙日欣
曾煜
高嵊昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Baiwei Storage Technology Co ltd
Original Assignee
Chengdu Baiwei Storage Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Baiwei Storage Technology Co ltd filed Critical Chengdu Baiwei Storage Technology Co ltd
Priority to CN202011203376.4A priority Critical patent/CN112306415B/zh
Publication of CN112306415A publication Critical patent/CN112306415A/zh
Application granted granted Critical
Publication of CN112306415B publication Critical patent/CN112306415B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开一种GC流控方法、装置、计算机可读存储介质及电子设备,预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;接收写IO请求,根据所述写IO请求对应的数据大小从所述主令牌桶获取对应数量的令牌;本发明实施例通过使用令牌桶机制进行GC回收空间的存放和使用,保证GC空间回收的速度和主机IO消耗空间的速度相匹配,同时增设预留令牌桶,辅助主令牌桶存放GC回收空间产生的令牌,可以平衡GC不同的超级块产生的性能抖动,从而提高了主机写IO性能的平稳性。

Description

GC流控方法、装置、计算机可读存储介质及电子设备
技术领域
本发明涉及硬盘存储领域,尤其涉及一种GC流控方法、装置、计算机可读存储介质及电子设备。
背景技术
在对SSD(Solid State Drives,固态硬盘)的使用过程中,当写入量达到磁盘映射给操作系统后主机所能识别到的容量后再继续写入时,SSD需要进行GC(GarbageCollection,垃圾回收)处理。如图1、2所示,SSD内部存储空间是由多个超级块super block构成,其中,一个数据块block由多个数据页page构成。
随着主机IO的写入,对同一个LBA(Logic Block Address,逻辑数据块地址)位置而言,如果发生了覆盖写入,firmware(固件)会对覆盖写入的数据分配新的空间,而之前的空间存储的数据就成为了旧数据,空间也成为了无效的数据空间。当SSD的空间不足时,就会开始启动GC,如图3所示。GC就是将一个超级块中包含的有效数据搬移到新的超级块上,然后释放出老的超级块空间的过程。
在SSD启动GC后,就会开始回收一些所存储的不是最新数据的无效空间,以供主机IO写入。传统做法有两种,一种是对GC和主机IO的写入不做控制,当GC出的空间被耗尽时,主机IO就会被挂起等待,直到有空间释放出来后再继续写入,若挂起时间过长,可能就会造成主机写IO超时失败,从而导致主机业务中断;另外一种是按照GC回收的速度对下发的主机写IO添加一定的时延来减慢写入速度。
对于第一种方式,由于GC不做流控,GC回收空间的速度与主机写IO消耗空间的速度不匹配,可能导致SSD剩余的空间越来越少,最终造成主机写IO分配不到NAND空间而挂起。需要等待到GC回收的空间达到一定量后才能继续执行主机写IO。若挂起时间过长,可能就会造成主机写IO超时失败,从而导致主机业务中断;
对于第二种方式,虽然可以让GC的空间回收和主机IO的空间消耗有一个控制,但是会有以下的问题:首先,通过时延控制不够准确(主机写IO在下发到NAND的过程中还会经过一些逻辑处理,这段处理的时延不确定);其次,由于回收每个超级块时的速度是不一样的(每个超级块中需要搬迁的数据量是不一样的),因此,由于无法精确地匹配GC和主机IO,导致主机IO写入时在此流控下性能会出现抖动,对一些要求性能平稳性的主机应用是不利的。
发明内容
本发明所要解决的技术问题是:提供一种GC流控方法、装置、计算机可读存储介质及电子设备,能够提高主机写IO性能的平稳性。
为了解决上述技术问题,本发明采用的技术方案为:
一种GC流控方法,包括步骤:
预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;
接收写IO请求,根据所述写IO请求对应的数据大小从所述主令牌桶获取对应数量的令牌。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种GC流控的装置,包括:
预设模块,用于预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
接收模块,用于当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
添加模块,用于根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;
获取模块,用于接收写IO请求,根据所述接收的写IO请求所对应数据的大小从所述主令牌桶获取对应数量的令牌。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述GC流控方法中的各个步骤。
为了解决上述技术问题,本发明采用的另一种技术方案为:
一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述GC流控方法中的各个步骤。
本发明的有益效果在于:使用令牌桶机制进行GC回收空间的存放和使用,保证GC空间回收的速度和主机IO消耗空间的速度相匹配,同时增设预留令牌桶,辅助主令牌桶存放GC回收空间产生的令牌,可以平衡GC不同的超级块产生的性能抖动,从而提高了主机写IO性能的平稳性。
附图说明
图1为SSD存储结构示意图;
图2为Block结构示意图;
图3为GC原理图;
图4为本发明实施例的一种GC流控方法的步骤示意图;
图5为本发明实施例的一种GC流控装置的结构示意图;
图6为本发明实施例的一种电子设备的结构示意图;
图7为本发明实施例的根据令牌桶实现IO写的示意图;
图8为本发明实施例的通过预留令牌桶动态平衡主令牌桶的示意图;
图9为本发明实施例的通过预留令牌桶动态平衡主令牌桶的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图4,本发明实施例提供了一种GC流控方法,包括步骤:
预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;
接收写IO请求,根据所述写IO请求对应的数据大小从所述主令牌桶获取对应数量的令牌。
从上述描述可知,本发明的有益效果在于:使用令牌桶机制进行GC回收空间的存放和使用,保证GC空间回收的速度和主机IO消耗空间的速度相匹配,同时增设预留令牌桶,可以平衡GC不同的超级块产生的性能抖动,从而提高了主机写IO性能的平稳性。
进一步的,所述写IO请求对应的数据大小从所述主令牌桶获取对应数量的令牌包括:
判断所述主令牌桶中的令牌数对应的数据大小是否大于或者等于所述写IO请求对应的数据大小,若是,则从所述主令牌桶获取对应数量的令牌,若否,将所述写IO请求挂起直至所述主令牌桶中的令牌数对应的数据大小大于或者等于所述写IO请求对应的数据大小。
由上述描述可知,通过令牌桶机制可以保证GC回收空间的速度和主机IO消耗空间的速度相匹配,并且当主令牌桶中的令牌数不足以支持写IO请求对应的数据大小时,则将写IO请求挂起直至主令牌桶中的令牌数满足写IO请求所需的数据大小,保证了执行写IO请求的可靠性。
进一步的,根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶,包括:
判断所述令牌数是否高于所述令牌水位,若是,则在所述主令牌桶中添加与所述令牌水位对应的数量的令牌,将剩余的令牌添加至所述预留令牌桶,若否,从所述预留令牌桶取出令牌将所述令牌数补齐到所述令牌水位,并将所述令牌水位对应的数量的令牌添加到所述主令牌桶。
由上述描述可知,通过预留令牌桶辅助主令牌桶进行GC回收空间的使用和存放,可以平衡GC回收不同的超级块时因为有效空间的大小不同造成GC空间回收大小的波动,使得GC回收空间都保持在一个预设范围,实现动态平衡,从而保证GC时供给主机IO可使用的空间大小的稳定性,从而保证写IO性能的稳定性。
进一步的,所述令牌水位根据预设一段时间内GC产生的平均令牌数确定。
由上述描述可知,通过将一段时间内GC产生的平均令牌数作为当前的令牌水位,可以保证GC产生的令牌数与令牌水位的差距控制在一定范围内,不会出现预留令牌桶存放的令牌数量过多或过少的情况,若预留令牌桶存放的令牌数量过多时,造成了空间资源的浪费,若预留令牌桶存放的令牌数量过少,则可能会出现不能将所述令牌数补齐到所述令牌水位的情况,保证了令牌水位设置的合理性,实现对令牌数的充分引用。
进一步的,按照预设时间周期对所述令牌水位进行更新,所述预设时间周期可以动态配置。
由上述描述可知,定期对令牌水位进行更新,并且更新周期可以动态配置,保证了令牌水位设置的准确性以及灵活性,能够在充分利用回收空间的基础上保证令牌桶的动态平衡。
进一步的,判断所述主令牌桶中的令牌数是否低于预设令牌数,若是,从所述预留令牌桶中取出令牌至所述主令牌桶,使所述主令牌桶中的令牌数等于所述预设令牌数。
由上述描述可知,通过判断主令牌桶中的令牌数,若低于预设令牌数,则通过预留令牌桶对其进行补充,能够在主令牌桶中的令牌数被写IO请求获取后而又没有执行GC回收的情况下及时地对主令牌桶进行补充,以满足其它写IO请求的需求,能够及时响应写IO请求,进一步提高了写IO性能的稳定性。
进一步的,预设所述预留令牌桶的最大令牌个数;
当所述预留令牌桶中的令牌个数达到所述最大令牌个数时,GC产生的高于所述预设水位的令牌不再添加到所述预留令牌桶中。
由上述描述可知,预留令牌桶中的令牌是不能直接供给IO写入使用的,处于一种闲置的状态,若预留令牌桶可以存放的令牌是无限度的,当某个时间段GC回收时产生的令牌数比较多,则会造成预留令牌桶中比较多的令牌在这段时间内处于闲置状态,降低了空间资源的利用率。通过设置预留令牌桶可以存放的最大令牌数,可以控制处于闲置状态的令牌数量,使得既可以提高空间资源的利用率,又具有将所述令牌数补齐到所述令牌水位的能力。
请参照图5,本发明另一实施例提供了一种GC流控的装置,包括:
预设模块,用于预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
接收模块,用于当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
添加模块,用于根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;
获取模块,用于接收写IO请求,根据所述接收的写IO请求所对应数据的大小从所述主令牌桶获取对应数量的令牌。
请参照图6,本发明另一实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述GC流控方法中的各个步骤。
本发明上述GC流控的方法、装置、计算机可读存储介质及电子设备可以应用于任何类型的GC流控,具有通用性以下通过具体实施方式进行说明:
实施例一
请参照图4,一种GC流控方法,包括步骤:
S1、预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
例如,设定一个page就是一个令牌,即每一令牌对应的第一存储空间是一个page,设定令牌水位为35;
S2、当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
例如,当GC完成时得到的回收空间为43个page,则根据第一存储空间可以确定该回收空间对应的令牌数为43;
S3、根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;
S4、接收写IO请求,根据所述写IO请求对应的数据大小从所述主令牌桶获取对应数量的令牌;
具体地,如图7所示,判断所述主令牌桶中的令牌数对应的数据大小是否大于或者等于所述写IO请求对应的数据大小,若是,则从所述主令牌桶获取对应数量的令牌,若否,将所述写IO请求挂起直至所述主令牌桶中的令牌数对应的数据大小大于或者等于所述写IO请求对应的数据大小;
例如,当GC完成时产生的回收空间为43令牌数,根据令牌水位将所述令牌数的令牌添加进主令牌桶或预留令牌桶,添加完成后,主令牌桶中有45个令牌,假设接收到主机写入IO需消耗的空间为25个page,即需要25个令牌则去主令牌桶中获取25个令牌,如果能获取得到,IO就可以写入,如果获取不到,就将此笔IO挂住,当主令牌桶中的令牌数大于或等于25个令牌数时,时IO再继续写入。
实施例二
本实施例与实施例一的不同在于,具体限定了如何根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶:
判断所述令牌数是否高于所述令牌水位,若是,则在所述主令牌桶中添加与所述令牌水位对应的数量的令牌,将剩余的令牌添加至所述预留令牌桶,若否,从所述预留令牌桶取出令牌将所述令牌数补齐到所述令牌水位,并将所述令牌水位对应的数量的令牌添加到所述主令牌桶;
具体的,如图8、9所示,在上述实施例一的基础上,若对一个超级块GC完成时回收了n个page的空间,n高于所述预设的令牌水位,则在所述主令牌桶中添加与所述令牌水位对应的数量的令牌,将剩余的令牌添加至所述预留令牌桶;若对另一个超级块GC完成时回收了p个page的空间,p低于所述令牌水位,则从所述预留令牌桶取出令牌将所述令牌数补齐到所述令牌水位,并将所述令牌水位对应的数量的令牌添加到所述主令牌桶,这样GC回收不同的超级块时产生的可供IO获取的令牌数量是相同的,都是所述令牌水位对应的数量,保证了GC回收空间的稳定,不会有波动。
在另一个可选的一种实施方式中,所述令牌水位根据预设一段时间内GC产生的平均令牌数确定,并按照预设时间周期对所述令牌水位进行更新,所述预设时间周期可以动态配置。
在另一个可选的实施方式中,所述预设时间周期根据预留令牌桶中存放的令牌数量确定,当预留令牌桶中存放的令牌数量不在一个预设的范围内时,则根据当前时间段内GC产生的平均令牌数更新令牌水位,当预留令牌桶中存放的令牌数量在所述预设的范围内时,则不对所述令牌水位进行更新。
该实施方式的有益效果为,通过根据预留令牌桶中存放的令牌数量确定时间周期来更新所述令牌水位,进一步的提升了令牌水位设置的合理性,又节约了主机的运算资源。而当预留令牌桶中存放的令牌数量过高或过低,即不在预设范围内时,表明所述令牌水位与当前GC产生的平均令牌数不匹配,需要将所述令牌水位更新为当前时间段GC产生的平均令牌数,其可以更精准的提高所述令牌水位与GC产生的平均令牌数的匹配度,从而进一步的提升了令牌水位设置的合理性。当预留令牌桶中存放的令牌数量在预设的范围内时,说明所述令牌水位与当前GC产生的平均令牌数满足一定的匹配度,即使更新所述令牌水位,对于提升令牌水位设置的合理性起到的作用并不明显,所以在所述情况下不用对所述令牌水位进行更新,从而节约了主机的运算资源。
实施例三
在实施例一或实施例二的基础上,可选的另一种实施方式为,判断所述主令牌桶中的令牌数是否低于预设令牌数,若是,从所述预留令牌桶中取出令牌至所述主令牌桶,使所述主令牌桶中的令牌数等于所述预设令牌数。
优选地,所述预设令牌数根据当前一段时间内IO写入请求对应的数据所需获取令牌数的最大值确定,从而可以保证当前IO写入时总是可以获取到对应数量的令牌,IO无需挂起等待,同时能够使主令牌桶中的令牌数充分被IO获取,提高了空间资源的利用率。
实施例四
在实施例一或实施例二或实施例三的基础上,可选的另一种实施方式为预设所述预留令牌桶的最大令牌个数;
当所述预留令牌桶中的令牌个数达到所述最大令牌个数时,GC产生的高于所述预设水位的令牌不再添加到所述预留令牌桶中;
比如设置预留令牌桶的最大令牌个数为100个,则当上次GC完成后,预留令牌桶里面的令牌数为95,则当此次GC完成后,多余的令牌数为17个,则将5个令牌添加到预留令牌桶中,其余令牌则不再添加到预留令牌桶中。
实施例五
请参照图5,一种GC流控装置,包括:
预设模块,用于预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
接收模块,用于当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
添加模块,用于根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶;
获取模块,用于接收写IO请求,根据所述接收的写IO请求所对应数据的大小从所述主令牌桶获取对应数量的令牌。
实施例六
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例一至四中任一个中的一种GC流控方法中的各个步骤。
实施例七
请参照图6,一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例一至四中任一个中的一种GC流控方法中的各个步骤。
综上所述,本发明提供的一种GC流控方法、装置、计算机可读存介质及电子设备,使用令牌桶机制进行GC回收空间的存放和使用,保证GC空间回收的速度和主机IO消耗空间的速度相匹配,同时增设预留令牌桶,根据令牌水位辅助主令牌桶存放GC回收空间产生的令牌,使得每次存入主令牌桶的令牌数都维持在令牌水位的水平,保证了不同超级块产生的回收空间的稳定性,同时令牌水位根据预设时间段内GC产生的令牌数确定,并进行定时更新,使得令牌水位与实时的GC回收有很好的匹配度,并且还能通过对主令牌桶中实时的令牌数进行统计,当其低于预设令牌数时,从预留令牌桶获取令牌进行补充,通过预留令牌桶既保证了每次回收空间的稳定性,也保证了主令牌桶中所存储的令牌数的稳定性,可以平衡GC不同的超级块产生的性能抖动,从而提高了主机写IO性能的平稳性。
在本申请所提供的上述实施例中,应该理解到,所揭露的方法、装置、计算机可读存储介质以及电子设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个组件或模块可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或组件或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的组件可以是或者也可以不是物理上分开的,作为组件显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部组件来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个组件单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (7)

1.一种GC流控方法,其特征在于,包括:
预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶,判断所述令牌数是否高于所述令牌水位,若是,则在所述主令牌桶中添加与所述令牌水位对应的数量的令牌,将剩余的令牌添加至所述预留令牌桶,若否,从所述预留令牌桶取出令牌将所述令牌数补齐到所述令牌水位,并将所述令牌水位对应的数量的令牌添加到所述主令牌桶;
接收写IO请求,根据所述写IO请求对应的数据大小从所述主令牌桶获取对应数量的令牌,判断所述主令牌桶中的令牌数对应的数据大小是否大于或者等于所述写IO请求对应的数据大小,若是,则从所述主令牌桶获取对应数量的令牌,若否,将所述写IO请求挂起直至所述主令牌桶中的令牌数对应的数据大小大于或者等于所述写IO请求对应的数据大小。
2.根据权利要求1所述的一种GC流控方法,其特征在于,所述令牌水位根据预设一段时间内GC产生的平均令牌数确定。
3.根据权利要求2所述的一种GC流控方法,其特征在于,按照预设时间周期对所述令牌水位进行更新,所述预设时间周期可以动态配置。
4.根据权利要求1至3中任一项所述的一种GC流控方法,其特征在于,还包括:
判断所述主令牌桶中的令牌数是否低于预设令牌数,若是,从所述预留令牌桶中取出令牌至所述主令牌桶,使所述主令牌桶中的令牌数等于所述预设令牌数。
5.一种GC流控装置,其特征在于,包括:
预设模块,用于预设主令牌桶、预留令牌桶、令牌水位和每一令牌对应的第一存储空间;
接收模块,用于当接收到GC完成时的回收空间时,根据所述第一存储空间确定所述回收空间对应的令牌数;
添加模块,用于根据所述令牌水位将所述令牌数的令牌添加进所述主令牌桶或预留令牌桶,判断所述令牌数是否高于所述令牌水位,若是,则在所述主令牌桶中添加与所述令牌水位对应的数量的令牌,将剩余的令牌添加至所述预留令牌桶,若否,从所述预留令牌桶取出令牌将所述令牌数补齐到所述令牌水位,并将所述令牌水位对应的数量的令牌添加到所述主令牌桶;
获取模块,用于接收写IO请求,根据所述接收的写IO请求所对应数据的大小从所述主令牌桶获取对应数量的令牌,判断所述主令牌桶中的令牌数对应的数据大小是否大于或者等于所述写IO请求对应的数据大小,若是,则从所述主令牌桶获取对应数量的令牌,若否,将所述写IO请求挂起直至所述主令牌桶中的令牌数对应的数据大小大于或者等于所述写IO请求对应的数据大小。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-3任意一项所述的一种GC流控方法中的各个步骤。
7.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-3任意一项所述的一种GC流控方法中的各个步骤。
CN202011203376.4A 2020-11-02 2020-11-02 Gc流控方法、装置、计算机可读存储介质及电子设备 Active CN112306415B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011203376.4A CN112306415B (zh) 2020-11-02 2020-11-02 Gc流控方法、装置、计算机可读存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011203376.4A CN112306415B (zh) 2020-11-02 2020-11-02 Gc流控方法、装置、计算机可读存储介质及电子设备

Publications (2)

Publication Number Publication Date
CN112306415A CN112306415A (zh) 2021-02-02
CN112306415B true CN112306415B (zh) 2023-04-11

Family

ID=74333729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011203376.4A Active CN112306415B (zh) 2020-11-02 2020-11-02 Gc流控方法、装置、计算机可读存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN112306415B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113031872A (zh) * 2021-03-26 2021-06-25 山东英信计算机技术有限公司 一种存储系统的数据写入方法及相关装置
CN113741991B (zh) * 2021-11-04 2022-02-18 苏州浪潮智能科技有限公司 提升ssd服务质量方法、装置、计算机设备和存储介质
CN114115744A (zh) * 2021-11-30 2022-03-01 新华三大数据技术有限公司 数据回收任务的控制方法、装置、电子设备及存储介质
CN116991336B (zh) * 2023-09-26 2024-01-23 北京大道云行科技有限公司 分布式全闪对象存储系统的gc方法及电子设备、存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025367A (en) * 1986-05-29 1991-06-18 Victoria University Of Manchester Storage allocation and garbage collection using liberate space tokens
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
WO2018175559A1 (en) * 2017-03-22 2018-09-27 Burlywood, LLC Drive-level internal quality of service
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法
CN110275670A (zh) * 2018-03-16 2019-09-24 华为技术有限公司 控制存储设备中数据流的方法、装置、存储设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9817578B2 (en) * 2015-06-05 2017-11-14 Ebay Inc. Data storage space recovery
US11240306B2 (en) * 2017-11-06 2022-02-01 Vast Data Ltd. Scalable storage system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5025367A (en) * 1986-05-29 1991-06-18 Victoria University Of Manchester Storage allocation and garbage collection using liberate space tokens
US6032216A (en) * 1997-07-11 2000-02-29 International Business Machines Corporation Parallel file system with method using tokens for locking modes
WO2018175559A1 (en) * 2017-03-22 2018-09-27 Burlywood, LLC Drive-level internal quality of service
CN109725829A (zh) * 2017-10-27 2019-05-07 伊姆西Ip控股有限责任公司 用于数据存储系统的端到端 QoS 解决方案的系统和方法
CN110275670A (zh) * 2018-03-16 2019-09-24 华为技术有限公司 控制存储设备中数据流的方法、装置、存储设备及存储介质

Also Published As

Publication number Publication date
CN112306415A (zh) 2021-02-02

Similar Documents

Publication Publication Date Title
CN112306415B (zh) Gc流控方法、装置、计算机可读存储介质及电子设备
CN108009008B (zh) 数据处理方法和系统、电子设备
US10152409B2 (en) Hybrid in-heap out-of-heap ballooning for java virtual machines
US9858120B2 (en) Modifying memory space allocation for inactive tasks
TW201832072A (zh) 資源回收方法及裝置
EP3865992A2 (en) Distributed block storage system, method, apparatus and medium
CN111538461A (zh) 基于固态硬盘缓存的数据读写方法、装置及存储介质
EP1934762A2 (en) Apparatus and method for handling dma requests in a virtual memory environment
CN109324991A (zh) 一种pcie设备的热插拔装置、方法、介质及系统
JP6974510B2 (ja) データを処理するための方法、装置、デバイス及び媒体
CN113836184A (zh) 一种业务持久化方法及装置
CN109189739B (zh) 缓存空间回收方法和装置
CN112835511B (zh) 分布式存储集群的数据写入方法、装置、设备和介质
WO2023124423A1 (zh) 一种存储空间分配方法、装置、终端设备及存储介质
CN115756962A (zh) 内存备份加速方法、装置、设备及计算机可读存储介质
EP3602309B1 (en) A memory allocation manager and method performed thereby for managing memory allocation
CN115617802A (zh) 一种全量快照快速生成方法、装置、电子设备及存储介质
CN112835967B (zh) 基于分布式存储系统的数据处理方法、装置、设备和介质
EP3497576B1 (en) Memory allocation apparatus and method
CN117093508B (zh) 一种内存资源管理方法、装置、电子设备及存储介质
CN110658999A (zh) 一种信息更新方法、装置、设备及计算机可读存储介质
CN111831397B (zh) 处理io请求的方法、装置、设备及存储介质
CN116483740B (zh) 内存数据的迁移方法、装置、存储介质及电子装置
CN113986134B (zh) 存储数据的方法、读取数据的方法和装置
CN117539394A (zh) 基于逻辑卷的闪存阵列去重存储方法、装置、设备和介质

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