垃圾回收方法以及系统与流程

文档序号:34323478发布日期:2023-06-01 02:26阅读:39来源:国知局
垃圾回收方法以及系统与流程

本申请涉及存储领域,尤其涉及一种垃圾回收方法以及系统。


背景技术:

1、如图1所示,早期计算机系统的存储结构可以包括:中央处理器(centralprocessing unit,cpu)寄存器、内存设备和主存储器。不过,由于内存设备和主存储器之间的差距逐渐增大,系统设计者被迫在内存设备和主存储器之间插入缓存设备。由于缓存设备读取时延较小,性能较高,所以,数据通常先写入缓存设备中,缓存满后再将缓存设备中的数据根据缓存设备的地址和主存储器的地址之间的映射关系刷入到主存储器中。

2、目前缓存设备可以采用追加写(append write)模式,举个例子说明,如图2所示,假设缓存设备中已经存储了“i=2”的数据,当需要写入“i=5”时,缓存设备并不会使用“i=5”覆盖原来存储的“i=2”的数据,而是在尾部追加写入“i=5”的数据,并将原来“i=2”的数据标记为垃圾数据。如果在缓存设备中存在垃圾数据,是会影响读命中率的,并且,垃圾数据的量越大,缓存设备的命中率越低。为了降低垃圾回收对存储系统的负载开销,存储系统往往不会立即对缓存设备中的垃圾数据进行回收,当垃圾量积累到一定程度,才开始进行垃圾回收,因此,会造成缓存设备中大量垃圾数据无法及时回收,缓存设备的命中率变低,降低了缓存设备的存储性能。

3、因此,如何降低缓存设备中垃圾数据的占比,是一个亟需解决的技术问题。


技术实现思路

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.一种垃圾回收系统,其特征在于,包括:

2.根据权利要求1所述的系统,其特征在于,所述第一元数据的第一副本存储于所述内存设备的第一数据库中。

3.根据权利要求2所述的系统,其特征在于,所述第一数据库中存储的元数据对应的数据值的大小和所述缓存设备的存储空间的大小是相同的。

4.根据权利要求2或3所述的系统,其特征在于,

5.根据权利要求4所述的系统,其特征在于,所述第二数据库中存储的元数据对应的数据值全部存储于所述缓存设备中,或者,所述第二数据库中存储的元数据对应的数据值部分存储于所述缓存设备中,部分存储于主存储设备中。

6.根据权利要求4或5所述的系统,其特征在于,

7.根据权利要求1至6任一权利要求所述的系统,其特征在于,所述第一数据库中的元数据是通过多个数据结构组织起来的。

8.一种垃圾回收方法,其特征在于,包括:

9.根据权利要求8所述的方法,其特征在于,获取内存设备中的第一元数据的第一副本,包括:

10.根据权利要求9所述的方法,其特征在于,所述第一数据库中存储的元数据对应的数据值的大小和所述缓存设备的存储空间的大小是相同的。

11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:

12.根据权利要求11所述的方法,其特征在于,所述第二数据库中存储的元数据对应的数据值全部存储于所述缓存设备中,或者,所述第二数据库中存储的元数据对应的数据值部分存储于所述缓存设备中,部分存储于主存储设备中。

13.根据权利要求11或12所述的方法,其特征在于,

14.根据权利要求8至13任一权利要求所述的方法,其特征在于,所述第一数据库中的元数据是通过多个数据结构组织起来的。


技术总结
本申请涉及一种垃圾回收方法以及系统。所述方法包括:缓存设备,用于存储第一数据值;内存设备,用于存储第一元数据的第一副本,其中,所述第一元数据与所述第一数据值存在对应关系;处理器,用于在准备写入所述内存设备的第二元数据的第一副本的索引关键字和所述第一元数据的第一副本的索引关键字相同的情况下,指示所述缓存设备将所述第一数据值进行垃圾回收。上述方法能够立刻发现缓存设备中的垃圾数据,并对垃圾数据进行回收。

技术研发人员:王丹,张勃雷
受保护的技术使用者:华为技术有限公司
技术研发日:
技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1