CN105183378A - 自适应混合读/写缓存的方法 - Google Patents

自适应混合读/写缓存的方法 Download PDF

Info

Publication number
CN105183378A
CN105183378A CN201510548293.1A CN201510548293A CN105183378A CN 105183378 A CN105183378 A CN 105183378A CN 201510548293 A CN201510548293 A CN 201510548293A CN 105183378 A CN105183378 A CN 105183378A
Authority
CN
China
Prior art keywords
buffer memory
write
read
reading
writing
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.)
Pending
Application number
CN201510548293.1A
Other languages
English (en)
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.)
Shenzhen science and Technology Co., Ltd. digital cloud data
Original Assignee
Divine Land Beijing Yun Ke Data Technologies 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 Divine Land Beijing Yun Ke Data Technologies Co Ltd filed Critical Divine Land Beijing Yun Ke Data Technologies Co Ltd
Priority to CN201510548293.1A priority Critical patent/CN105183378A/zh
Publication of CN105183378A publication Critical patent/CN105183378A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种自适应混合读/写缓存的方法及系统,所述方法包括:S1、将所述存储器的缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;S2、使用红黑树对所述每个缓存节点进行索引;S3、在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;其中,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。本发明的方法通过控制读缓存和写缓存的大小,自适应地调节读写缓存的比例。

Description

自适应混合读/写缓存的方法
技术领域
本发明涉及计算机存储技术,尤其涉及一种自适应混合读/写的缓存的方法。
背景技术
目前市面上大部分存储产品的缓存都是读写分离的,读缓存的数据结构与写缓存的数据结构不复用,在内存中表现为两个区域,两份数据。
上述读写方式的优点是比较容易管理,但具有以下缺点:(1)如果对同一段数据先读后写,那么要么必须同时更新两份缓存,要么将读缓存设置为失效或删除。(2)如果对同一段数据先写后读,那么要么将写缓存中的脏数据回写完成后才可以进行读,要么将写缓存复制到读缓存,然后再进行读缓存。(3)在最差的情况下,同一份数据在缓存中可能会有两份,浪费了内存资源。
发明内容
本发明提供一种自适应混合读/写缓存的方法,通过控制读缓存和写缓存的大小,自适应地调节读写缓存的比例。
根据上述目的,本发明提供一种自适应混合读/写缓存的方法,其特征在于,所述方法包括:
将缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;
使用红黑树对所述每个缓存节点进行索引;
在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;
其中,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。
其中,所述步骤S3具体包括:
当写入缓存时,找到对应的缓存节点,然后将数据填充到所找到的缓存节点上;
当读取缓存时,找到对应的缓存节点,然后在找到的缓存节点上查找缓存。
其中,所述步骤S3还包括:
在读取缓存时,如果没有读取到完整的数据,则读取所述缓存对应的外存,并将读取的数据存入到所述缓存。
其中,对所述写入或读取的缓存比例进行调节的过程具体包括:统计每个磁盘阵列组RAID的读写缓存的使用情况以及读写输入输出IO的比例,如果读IO比例升高,则升高读缓冲在该RAID缓存的占比,反之升高写缓存在该RAID缓存中的占比。
其中,所述步骤S3还包括:
当所述缓存的空间不足时,释放热度最低的非脏缓存,将所述非脏缓存释放到指定的占比位置。
其中,所述步骤S3还包括:
在写缓存使用超过一定百分比时或写缓存余量不足时,则放缓或停止执行写I/O,启动回写动作,待清空掉足够的脏数据之后再启动写I/O。
其中,根据缓存的最后一次操作判定所述缓存为读缓冲还是写缓存,如果最后一次是读取,则为读缓存,否则为写缓存。
其中,所述方法还包括:
使用双控I/O锁对缓存的访问进行保护;所述对缓存的访问包括读取、写入和回写。
根据本发明的另一个方面,提供一种自适应混合读/写缓存的系统,所述系统包括:
缓冲块划分模块,用于将所述存储器的缓存按设定的大小划分成多个块;
索引模块,用于使用红黑树对所述每个缓存节点进行索引;
缓存读/写模块,用于进行缓存读写。
其中,所述缓存读/写模块包括:
读缓存单元,用于读取缓存;
写缓存单元,用于写入缓存;
缓存占比调节单元,用于以磁盘阵列组RAID的形式统计读写缓存的使用情况以及读写输入输出IO的比例并进行调节;
缓存释放单元,用于在所述存储器空间不足时释放所述缓存;
回写单元,用于在写缓存超过设定比例或写缓存余量不足时进行回写动作。
本发明的自适应混合读/写缓存的方法及系统,通过控制读缓存的大小和写缓存的大小,很容易保证缓存的读写一致性,并可以自适应地调节读写缓存的比例,从而可以对缓存做到内存资源的合理利用,同时在读取时查找速度快,并且不需要二次遍历。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1示出了本发明的自适应混合读/写缓存的方法的流程图。
图2示出了本发明的自适应混合读/写缓存的系统的结构框图。
图3示出了本发明的自适应混合读/写缓存的系统的缓存读/写模块的结构框图。
具体实施方式
下面将结合附图对本发明的实施例进行详细描述。
图1示出了本发明的自适应混合读/写缓存的方法的流程图。
参照图1,本发明的自适应混合读/写缓存的方法包括步骤:
S1、将缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;从而将缓存的每个扇区的地址转换为块地址。
S2、使用红黑树对所述每个缓存节点进行索引,从而可以加快查找速度。
S3、在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;
具体地,当写入缓存时,找到对应的缓存节点,然后将数据填充到所找到的缓存节点上;
当读取缓存时,找到对应的缓存节点,然后在找到的缓存节点上查找缓存。读缓冲时查找到的缓存可能是上一次读取出来的读缓冲,也可能是之前被写入的写缓存。如果没有读取到完整的数据,则读取所述缓存对应的外存,并将读取的数据存入到所述缓存。
另外,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。其过程为:
统计每个磁盘阵列组RAID的读写缓存的使用情况以及读写输入输出IO的比例,如果读IO比例升高,则升高读缓冲在该RAID缓存的占比,反之升高写缓存在该RAID缓存中的占比。
当缓存的空间不足时,优先释放热度最低的非脏缓存,将非脏缓存释放到指定的占比位置。
在写缓存使用超过一定百分比时或写缓存余量不足时,则放缓或停止执行写I/O,启动回写动作,待清空掉足够的脏数据之后再启动写I/O。
在本实施例中,一段缓存是写缓存还是读缓冲,是根据缓存的最后一次操作来判定,如果最后一次是读取,则为读缓存,否则为写缓存。
在上述方法中,使用双控I/O锁对缓存的访问,如读取、写入和回写进行保护。
图2示出了本发明的自适应混合读/写缓存的系统的结构框图。
图3示出了本发明的自适应混合读/写缓存的系统的缓存读/写模块的结构框图。
根据本发明的另一个方面,提供一种自适应混合读/写缓存的系统,参照图2和图3,该系统包括:
缓冲块划分模块10,用于将所述存储器的缓存按设定的大小划分成多个块;
索引模块20,用于使用红黑树对所述每个缓存节点进行索引;
缓存读/写模块30,用于进行缓存读写。
其中,缓存读/写模块30包括:
读缓存单元301,用于读取缓存;
写缓存单元302,用于写入缓存;
缓存占比调节单元303,用于以磁盘阵列组RAID的形式统计读写缓存的使用情况以及读写输入输出IO的比例并进行调节;
缓存释放单元304,用于在所述存储器空间不足时释放所述缓存;
回写单元305,用于在写缓存超过设定比例或写缓存余量不足时进行回写动作。
本发明的自适应混合读/写缓存的方法,通过控制读缓存的大小和写缓存的大小,很容易保证缓存的读写一致性,并可以自适应地调节读写缓存的比例,从而可以对缓存做到内存资源的合理利用,同时在读取时查找速度快,并且不需要二次遍历。
虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

Claims (10)

1.一种自适应混合读/写缓存的方法,其特征在于,所述方法包括:
将缓存按设定的大小划分成多个块,并设置成每个缓存节点为一个块;
使用红黑树对所述每个缓存节点进行索引;
在写入或读取缓存时,找到对应的缓存节点,然后在所述缓存节点上进行相应的写入或读取;
其中,在进行写入或读取缓存时,统计所述读写缓存的使用情况及读写比例,对所述写入或读取的缓存比例进行调节。
2.根据权利要求1所述的自适应混合读/写缓存的方法,其特征在于,所述步骤S3具体包括:
当写入缓存时,找到对应的缓存节点,然后将数据填充到所找到的缓存节点上;
当读取缓存时,找到对应的缓存节点,然后在找到的缓存节点上查找缓存。
3.根据权利要求2所述的自适应混合读/写缓存的方法,其特征在于,所述步骤S3还包括:
在读取缓存时,如果没有读取到完整的数据,则读取所述缓存对应的外存,并将读取的数据存入到所述缓存。
4.根据权利要求1所述的自适应混合读/写缓存的方法,其特征在于,对所述写入或读取的缓存比例进行调节的过程具体包括:统计每个磁盘阵列组RAID的读写缓存的使用情况以及读写输入输出IO的比例,如果读IO比例升高,则升高读缓冲在该RAID缓存的占比,反之升高写缓存在该RAID缓存中的占比。
5.根据权利要求1所述的自适应混合读/写缓存的方法,其特征在于,所述步骤S3还包括:
当所述缓存的空间不足时,释放热度最低的非脏缓存,将所述非脏缓存释放到指定的占比位置。
6.根据权利要求1所述的自适应混合读/写缓存的方法,其特征在于,所述步骤S3还包括:
在写缓存使用超过一定百分比时或写缓存余量不足时,则放缓或停止执行写I/O,启动回写动作,待清空掉足够的脏数据之后再启动写I/O。
7.根据权利要求1所述的自适应混合读/写缓存的方法,其特征在于,
根据缓存的最后一次操作判定所述缓存为读缓冲还是写缓存,如果最后一次是读取,则为读缓存,否则为写缓存。
8.根据权利要求1所述的自适应混合读/写缓存的方法,其特征在于,所述方法还包括:
使用双控I/O锁对缓存的访问进行保护;所述对缓存的访问包括读取、写入和回写。
9.一种自适应混合读/写缓存的系统,其特征在于,所述系统包括:
缓冲块划分模块,用于将缓存按设定的大小划分成多个块;
索引模块,用于使用红黑树对所述每个缓存节点进行索引;
缓存读/写模块,用于进行缓存读写。
10.根据权利要求9所述的自适应混合读/写缓存的系统,其特征在于,所述缓存读/写模块包括:
读缓存单元,用于读取缓存;
写缓存单元,用于写入缓存;
缓存占比调节单元,用于以磁盘阵列组RAID的形式统计读写缓存的使用情况以及读写输入输出IO的比例并进行调节;
缓存释放单元,用于在所述存储器空间不足时释放所述缓存;
回写单元,用于在写缓存超过设定比例或写缓存余量不足时进行回写动作。
CN201510548293.1A 2015-08-31 2015-08-31 自适应混合读/写缓存的方法 Pending CN105183378A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510548293.1A CN105183378A (zh) 2015-08-31 2015-08-31 自适应混合读/写缓存的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510548293.1A CN105183378A (zh) 2015-08-31 2015-08-31 自适应混合读/写缓存的方法

Publications (1)

Publication Number Publication Date
CN105183378A true CN105183378A (zh) 2015-12-23

Family

ID=54905487

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510548293.1A Pending CN105183378A (zh) 2015-08-31 2015-08-31 自适应混合读/写缓存的方法

Country Status (1)

Country Link
CN (1) CN105183378A (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201336A (zh) * 2015-05-24 2016-12-07 硅实验室公司 具有回写缓存器的设备及其相关方法
CN106445418A (zh) * 2016-09-27 2017-02-22 郑州云海信息技术有限公司 一种固态硬盘中读写服务自适应的方法和装置
CN107632945A (zh) * 2016-07-18 2018-01-26 大唐移动通信设备有限公司 一种共享内存的数据读写方法和装置
CN108228483A (zh) * 2016-12-15 2018-06-29 北京忆恒创源科技有限公司 处理原子写命令的方法和设备
CN108595347A (zh) * 2018-04-25 2018-09-28 咪咕音乐有限公司 一种缓存控制方法、装置及计算机可读存储介质
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN113590560A (zh) * 2021-06-29 2021-11-02 济南浪潮数据技术有限公司 一种分布式系统的缓存优化方法、系统、设备和存储介质
CN113741806A (zh) * 2021-07-29 2021-12-03 苏州浪潮智能科技有限公司 一种写缓存动态调控方法、装置、设备及介质
WO2022223047A1 (zh) * 2021-04-23 2022-10-27 华为技术有限公司 数据读写方法、数据读写控制器及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149668A (zh) * 2007-11-02 2008-03-26 杭州华三通信技术有限公司 一种包括读写缓存的存储设备及缓存实现方法
US20130198453A1 (en) * 2012-01-26 2013-08-01 Korea Electronics Technology Institute Hybrid storage device inclucing non-volatile memory cache having ring structure
US20130219139A1 (en) * 2012-02-16 2013-08-22 Apple Inc. Methods and systems for maintaining a storage volume with holes and filling holes
CN103902474A (zh) * 2014-04-11 2014-07-02 华中科技大学 一种支持固态盘缓存动态分配的混合存储系统和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101149668A (zh) * 2007-11-02 2008-03-26 杭州华三通信技术有限公司 一种包括读写缓存的存储设备及缓存实现方法
US20130198453A1 (en) * 2012-01-26 2013-08-01 Korea Electronics Technology Institute Hybrid storage device inclucing non-volatile memory cache having ring structure
US20130219139A1 (en) * 2012-02-16 2013-08-22 Apple Inc. Methods and systems for maintaining a storage volume with holes and filling holes
CN103902474A (zh) * 2014-04-11 2014-07-02 华中科技大学 一种支持固态盘缓存动态分配的混合存储系统和方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
严琪等: "一种自适应的基于预测的I/O性能优化方法", 《计算机科学》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106201336A (zh) * 2015-05-24 2016-12-07 硅实验室公司 具有回写缓存器的设备及其相关方法
CN106201336B (zh) * 2015-05-24 2021-01-22 硅实验室公司 具有回写缓存器的设备及其相关方法
CN107632945A (zh) * 2016-07-18 2018-01-26 大唐移动通信设备有限公司 一种共享内存的数据读写方法和装置
CN106445418A (zh) * 2016-09-27 2017-02-22 郑州云海信息技术有限公司 一种固态硬盘中读写服务自适应的方法和装置
CN108228483A (zh) * 2016-12-15 2018-06-29 北京忆恒创源科技有限公司 处理原子写命令的方法和设备
CN108228483B (zh) * 2016-12-15 2021-09-14 北京忆恒创源科技股份有限公司 处理原子写命令的方法和设备
CN108595347B (zh) * 2018-04-25 2020-11-10 咪咕音乐有限公司 一种缓存控制方法、装置及计算机可读存储介质
CN108595347A (zh) * 2018-04-25 2018-09-28 咪咕音乐有限公司 一种缓存控制方法、装置及计算机可读存储介质
CN111338579A (zh) * 2020-02-27 2020-06-26 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
CN111338579B (zh) * 2020-02-27 2022-07-19 苏州浪潮智能科技有限公司 基于存储池的读写缓存优化方法、系统、终端及存储介质
WO2022223047A1 (zh) * 2021-04-23 2022-10-27 华为技术有限公司 数据读写方法、数据读写控制器及存储介质
CN113590560A (zh) * 2021-06-29 2021-11-02 济南浪潮数据技术有限公司 一种分布式系统的缓存优化方法、系统、设备和存储介质
CN113741806A (zh) * 2021-07-29 2021-12-03 苏州浪潮智能科技有限公司 一种写缓存动态调控方法、装置、设备及介质
CN113741806B (zh) * 2021-07-29 2023-08-08 苏州浪潮智能科技有限公司 一种写缓存动态调控方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
CN105183378A (zh) 自适应混合读/写缓存的方法
US10628319B2 (en) Methods for caching and reading data to be programmed into a storage unit and apparatuses using the same
US9189389B2 (en) Memory controller and memory system
US10114556B2 (en) Method and apparatus for improving read performance of a solid state drive
WO2016095151A1 (en) Storing log records in a non-volatile memory
US10042756B2 (en) Methods for scheduling read commands and apparatuses using the same
CN101794259B (zh) 数据存储方法和装置
TWI467574B (zh) 記憶體儲存裝置、記憶體控制器與其資料傳輸方法
US10108342B2 (en) Method for reducing use of DRAM in SSD and the SSD using the same
US10389380B2 (en) Efficient data path architecture for flash devices configured to perform multi-pass programming
US10248587B2 (en) Reduced host data command processing
US10168951B2 (en) Methods for accessing data in a circular block mode and apparatuses using the same
CN103077121A (zh) 一种闪存存储设备中数据管理的方法及装置
CN103309820A (zh) 磁盘阵列缓存的实现方法
US9971546B2 (en) Methods for scheduling read and write commands and apparatuses using the same
US9990280B2 (en) Methods for reading data from a storage unit of a flash memory and apparatuses using the same
US10365834B2 (en) Memory system controlling interleaving write to memory chips
US10120793B2 (en) Memory device and non-transitory computer readable recording medium
CN107797756A (zh) 固态硬盘系统的优先写入方法以及使用该方法的装置
CN105630697B (zh) 一种利用mram存储小文件的存储装置
KR101162679B1 (ko) 다채널 캐쉬를 이용한 솔리드 스테이트 디스크 및 캐쉬 데이터 저장방법
TWI781846B (zh) 非對稱型平面管理方法以及資料儲存裝置及其控制器
CN102681795A (zh) 一种Linux系统的SCSI Target模式的数据I/O写入方法
JP2013196646A (ja) メモリ制御装置、データ記憶装置及びメモリ制御方法
US20150254011A1 (en) Memory system, memory controller and control method of non-volatile memory

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170331

Address after: Nanshan District Guangdong streets, Shenzhen city 518131 Guangdong Province Road No. 8 financial services technology innovation base 1 building 11 floor F3

Applicant after: Shenzhen science and Technology Co., Ltd. digital cloud data

Address before: 100085 Beijing, Haidian District, No. 9 on the ground floor of the digital science and Technology Plaza, 9

Applicant before: Divine Land, Beijing Yun Ke data technologies co., ltd

TA01 Transfer of patent application right
RJ01 Rejection of invention patent application after publication

Application publication date: 20151223

RJ01 Rejection of invention patent application after publication