CN104391653A - 一种基于数据块的高速缓存设计方法 - Google Patents
一种基于数据块的高速缓存设计方法 Download PDFInfo
- Publication number
- CN104391653A CN104391653A CN201410598483.XA CN201410598483A CN104391653A CN 104391653 A CN104391653 A CN 104391653A CN 201410598483 A CN201410598483 A CN 201410598483A CN 104391653 A CN104391653 A CN 104391653A
- Authority
- CN
- China
- Prior art keywords
- data
- read
- write
- chained list
- data block
- 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
Links
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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于数据块的高速缓存设计方法,具体步骤如下:1)存储Initiator端通过TCP/IP协议发送读(写)请求;2)存储Target端接收数据读(写)请求;3)在缓存数据结构中查找读(写)请求的数据,如果命中缓存,则直接从缓存读(写)数据并返回,不必从硬盘重新读取;如果未命中缓存,则需要从硬盘读(写)数据,同时将读(写)的数据保留在缓存中,返回;4)存储Target端采用定时轮询等机制将缓存数据刷新到磁盘中。
Description
技术领域
本发明涉及计算机存储软件开发技术领域,具体地说是一种基于数据块的高速缓存设计方法。
背景技术
随着信息技术的迅猛发展,对大规模海量数据的存储和管理越来越引起业界的重视,这对存储设备的可用性和可靠性提出了更高的要求。
目前,磁盘阵列已经成为构建大规模存储系统的基本组成单元,而磁盘阵列能够提供的缓存容量和缓存效率是衡量其性能的重要指标。
磁盘阵列的缓存机制工作在存储Target端,主流开源存储Target软件不提供独立的缓存功能,或者通过文件系统的缓存机制实现缓存功能。对SAN存储系统而言,通过文件系统的缓存机制延长了数据传输的路径,降低了数据缓存的访问效率。本发明基于数据块设计了一种高速缓存的方法,不必经过文件系统,能够应用在存储Target软件中,实现高效率的数据缓存功能。
发明内容
本发明的目的是提供一种基于数据块的高速缓存设计方法。
本发明的目的是按以下方式实现的,在Raidx Tree数据结构的基础上,用链表增加数据页之间的关联,快速查找数据块是否命中,方便了对缓存数据进行更新、写穿、镜像操作,其中:
缓存数据的组织方式,
采用Radix Tree数据结构管理缓存数据,将数据指针与long整数键值相关联,用数据块地址作为查询索引,快速定位数据库在缓存中的位置,在缓存容量方面,Radix Tree的容量没有上限,其高度表示了其能够管理的最大数据容量,高度越高,其能够管理的缓存容量越大,在高度为4的Radix Tree中,可缓存的数据容量可达64G;
刷新缓存数据到硬盘的方式
为了对不同状态的缓存数据进行统一管理,在缓存数据之间建立起双向访问链表,通过链表头可以访问所有状态相同的链表,依据不同的状态进行更新、写穿、镜像操作;
写数据链表表示该数据块已经被修改,在适当的时机直接写入本地磁盘中,该数据链表设计为LRU链表,将最新操作的数据块加到链表的前面,当要刷新数据的时候,从链表的末尾开始刷新;
读数据链表表示该数据块是从磁盘中读取的数据,并且没有被修改,没有必要刷新到硬盘中;如果是双控控制器,要添加镜像链表,表示该数据块等待镜像到另一个控制器中,防止数据丢失;
系统运行流程如下:
1)存储Initiator端通过TCP/IP协议发送读或写请求;
2)存储Target端接收数据读或写请求;
3)在缓存数据结构中查找读或写请求的数据,如果命中缓存,则直接从缓存读或写数据并返回,不必从硬盘重新读取;如果未命中缓存,则需要从硬盘读或写数据,同时将读或写的数据保留在缓存中,返回;
4)存储Target端采用定时轮询等机制将缓存数据刷新到磁盘中。
本发明的有益效果是:本设计方法适用于存储Target软件,重新定义存储Target的IO流程,在Target的IO操作流程中加入缓存控制模块,利用本发明中的缓存管理方法,实现缓存的高效访问和管理功能。
附图说明
图1是Raidx Tree结构图;
图2是缓存数据块链表关系图;
图3是存储Initiator与Target信息交互流程框图。
具体实施方式
参照说明书附图对本发明的基于数据块的高速缓存设计方法作以下详细地说明。
在Raidx Tree数据结构的基础上,用链表增加数据页之间的关联,该方法能够快速查找数据块是否命中,简洁的数据管理方式也方便了对缓存数据进行更新、写穿、镜像等操作。
1)缓存数据的组织方式
缓存数据结构最频繁的操作是查找操作,查找的速度直接影响到缓存效率的高低。本发明采用Radix Tree数据结构管理缓存数据,Radix Tree是一种搜索树,它将数据指针与long整数键值相关联,本设计中采用数据块地址作为查询索引,基于该索引,可以快速定位数据库在缓存中的位置。在缓存容量方面,Radix Tree的容量没有上限,其高度表示了其能够管理的最大数据容量,高度越高,其能够管理的缓存容量越大,在高度为4的Radix Tree中,可缓存的数据容量可达64G。
图1表示一了个高度为4的Radix Tree的数据结构,其中缓存了7个4k的数据块。
2)刷新缓存数据到硬盘的方式
为了对不同状态的缓存数据进行统一管理,在缓存数据之间建立起双向访问链表,通过链表头可以访问所有状态相同的链表,依据不同的状态进行更新、写穿、镜像等操作。
写数据链表表示该数据块已经被修改,在适当的时机可以直接写入本地磁盘中,该数据链表可以设计为LRU链表,将最新操作的数据块加到链表的前面,当要刷新数据的时候,从链表的末尾开始刷新;读数据链表表示该数据块是从磁盘中读取的数据,并且没有被修改,没有必要刷新到硬盘中;如果是双控控制器,可以添加镜像链表,表示该数据块等待镜像到另一个控制器中,防止数据丢失。
系统运行流程
1、存储Initiator端通过TCP/IP协议发送读(写)请求
2、存储Target端接收数据读(写)请求
3、在缓存数据结构中查找读(写)请求的数据,如果命中缓存,则直接从缓存读(写)数据并返回,不必从硬盘重新读取;如果未命中缓存,则需要从硬盘读(写)数据,同时将读(写)的数据保留在缓存中,返回;
4、存储Target端采用定时轮询等机制将缓存数据刷新到磁盘中。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种基于数据块的高速缓存设计方法, 其特征在于在Raidx Tree数据结构的基础上,用链表增加数据页之间的关联,快速查找数据块是否命中,方便了对缓存数据进行更新、写穿、镜像操作,其中:
缓存数据的组织方式,采用Radix Tree数据结构管理缓存数据,将数据指针与long整数键值相关联,用数据块地址作为查询索引,快速定位数据库在缓存中的位置,在缓存容量方面,Radix Tree的容量没有上限,其高度表示了其能够管理的最大数据容量,高度越高,其能够管理的缓存容量越大,在高度为4的Radix Tree中,可缓存的数据容量可达64G;
刷新缓存数据到硬盘的方式,为了对不同状态的缓存数据进行统一管理,在缓存数据之间建立起双向访问链表,通过链表头可以访问所有状态相同的链表,依据不同的状态进行更新、写穿、镜像操作;
写数据链表表示该数据块已经被修改,在适当的时机直接写入本地磁盘中,该数据链表设计为LRU链表,将最新操作的数据块加到链表的前面,当要刷新数据的时候,从链表的末尾开始刷新;
读数据链表表示该数据块是从磁盘中读取的数据,并且没有被修改,没有必要刷新到硬盘中;如果是双控控制器,要添加镜像链表,表示该数据块等待镜像到另一个控制器中,防止数据丢失;
具体步骤如下:
1)存储Initiator端通过TCP/IP协议发送读或写请求;
2)存储Target端接收数据读或写请求;
3)在缓存数据结构中查找读或写请求的数据,如果命中缓存,则直接从缓存读或写数据并返回,不必从硬盘重新读取;如果未命中缓存,则需要从硬盘读或写数据,同时将读或写的数据保留在缓存中,返回;
4)存储Target端采用定时轮询等机制将缓存数据刷新到磁盘中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410598483.XA CN104391653A (zh) | 2014-10-31 | 2014-10-31 | 一种基于数据块的高速缓存设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410598483.XA CN104391653A (zh) | 2014-10-31 | 2014-10-31 | 一种基于数据块的高速缓存设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104391653A true CN104391653A (zh) | 2015-03-04 |
Family
ID=52609564
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410598483.XA Pending CN104391653A (zh) | 2014-10-31 | 2014-10-31 | 一种基于数据块的高速缓存设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391653A (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753807A (zh) * | 2015-04-03 | 2015-07-01 | 浪潮电子信息产业股份有限公司 | 一种基于智能识别链路算法的链路负载均衡方法 |
CN109144431A (zh) * | 2018-09-30 | 2019-01-04 | 华中科技大学 | 数据块的缓存方法、装置、设备及存储介质 |
CN109783000A (zh) * | 2017-11-10 | 2019-05-21 | 成都华为技术有限公司 | 一种数据处理方法及设备 |
CN110196785A (zh) * | 2018-02-27 | 2019-09-03 | 浙江宇视科技有限公司 | 数据备份管理方法、装置及电子设备 |
CN110362358A (zh) * | 2019-06-24 | 2019-10-22 | 京东数字科技控股有限公司 | 配置数据的管理方法和系统 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN110941568A (zh) * | 2019-10-23 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 缓存更新方法、装置、系统、电子设备及介质 |
CN112650694A (zh) * | 2019-10-12 | 2021-04-13 | 北京达佳互联信息技术有限公司 | 一种数据读取方法、装置、缓存代理服务器及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070143258A1 (en) * | 2005-12-15 | 2007-06-21 | Ori Pomerantz | Method and system for generating a collaborative search chronicle in a network environment |
CN102521330A (zh) * | 2011-12-07 | 2012-06-27 | 华中科技大学 | 一种桌面虚拟化环境下的镜像分布式存储方法 |
-
2014
- 2014-10-31 CN CN201410598483.XA patent/CN104391653A/zh active Pending
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070143258A1 (en) * | 2005-12-15 | 2007-06-21 | Ori Pomerantz | Method and system for generating a collaborative search chronicle in a network environment |
CN102521330A (zh) * | 2011-12-07 | 2012-06-27 | 华中科技大学 | 一种桌面虚拟化环境下的镜像分布式存储方法 |
Non-Patent Citations (1)
Title |
---|
郭玉东: "《Linux原理与结构》", 31 March 2012, 西安电子科技大学出版社 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104753807A (zh) * | 2015-04-03 | 2015-07-01 | 浪潮电子信息产业股份有限公司 | 一种基于智能识别链路算法的链路负载均衡方法 |
CN109783000A (zh) * | 2017-11-10 | 2019-05-21 | 成都华为技术有限公司 | 一种数据处理方法及设备 |
CN110196785A (zh) * | 2018-02-27 | 2019-09-03 | 浙江宇视科技有限公司 | 数据备份管理方法、装置及电子设备 |
CN110196785B (zh) * | 2018-02-27 | 2022-06-14 | 浙江宇视科技有限公司 | 数据备份管理方法、装置及电子设备 |
CN110895515A (zh) * | 2018-09-12 | 2020-03-20 | 中兴通讯股份有限公司 | 内存缓存管理方法、多媒体服务器及计算机存储介质 |
CN109144431A (zh) * | 2018-09-30 | 2019-01-04 | 华中科技大学 | 数据块的缓存方法、装置、设备及存储介质 |
CN109144431B (zh) * | 2018-09-30 | 2021-11-02 | 华中科技大学 | 数据块的缓存方法、装置、设备及存储介质 |
CN110362358A (zh) * | 2019-06-24 | 2019-10-22 | 京东数字科技控股有限公司 | 配置数据的管理方法和系统 |
CN112650694A (zh) * | 2019-10-12 | 2021-04-13 | 北京达佳互联信息技术有限公司 | 一种数据读取方法、装置、缓存代理服务器及存储介质 |
CN112650694B (zh) * | 2019-10-12 | 2024-01-12 | 北京达佳互联信息技术有限公司 | 一种数据读取方法、装置、缓存代理服务器及存储介质 |
CN110941568A (zh) * | 2019-10-23 | 2020-03-31 | 支付宝(杭州)信息技术有限公司 | 缓存更新方法、装置、系统、电子设备及介质 |
CN110941568B (zh) * | 2019-10-23 | 2022-03-01 | 支付宝(杭州)信息技术有限公司 | 缓存更新方法、装置、系统、电子设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104391653A (zh) | 一种基于数据块的高速缓存设计方法 | |
CN104115133B (zh) | 用于复合非易失性存储设备的数据迁移的方法、系统和设备 | |
US9792221B2 (en) | System and method for improving performance of read/write operations from a persistent memory device | |
US20170060434A1 (en) | Transaction-based hybrid memory module | |
CN102117248A (zh) | 一种缓存系统和在缓存系统中缓存数据的方法 | |
CN107797759B (zh) | 访问缓存信息的方法、装置与驱动器 | |
CN107797760B (zh) | 一种访问缓存信息的方法、装置与固态驱动器 | |
JP6713934B2 (ja) | 記憶装置及びその動作方法並びにシステム | |
CN101782872A (zh) | 使用固态盘的缓存系统和方法 | |
CN104267912A (zh) | 一种nas加速方法及系统 | |
CN109739696B (zh) | 一种双控存储阵列固态硬盘缓存加速方法 | |
CN109582598B (zh) | 一种基于外部存储实现高效查找哈希表的预处理方法 | |
CN103543955A (zh) | 利用固态硬盘作为设备读缓存的方法、系统及固态硬盘 | |
CN103076992A (zh) | 一种内存数据缓冲方法及装置 | |
CN106527987A (zh) | 一种不带dram的ssd主控可靠性提升系统及方法 | |
CN104158863A (zh) | 基于事务级别全程高速缓冲的云存储机制 | |
CN115993930A (zh) | 用于有序访问块修改存储器中的数据的系统、方法和装置 | |
US10169160B2 (en) | Database batch update method, data redo/undo log producing method and memory storage apparatus | |
CN103744864A (zh) | 缓存数据读写的方法、系统及其固态硬盘 | |
CN108491166A (zh) | 面向光盘库的读数据缓存管理方法 | |
US20190012279A1 (en) | Computer system, communication device, and storage control method | |
CN108647157A (zh) | 一种基于相变存储器的映射管理方法及固态硬盘 | |
CN104598166B (zh) | 系统管理方法和装置 | |
US20130205074A1 (en) | Data i/o controller and system including the same | |
CN103488772A (zh) | 一种通过外存对文件进行缓存的方法、系统及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150304 |