CN116431395B - 基于卷实时备份的缓存动态平衡方法、系统及存储介质 - Google Patents
基于卷实时备份的缓存动态平衡方法、系统及存储介质 Download PDFInfo
- Publication number
- CN116431395B CN116431395B CN202310667384.1A CN202310667384A CN116431395B CN 116431395 B CN116431395 B CN 116431395B CN 202310667384 A CN202310667384 A CN 202310667384A CN 116431395 B CN116431395 B CN 116431395B
- Authority
- CN
- China
- Prior art keywords
- cache
- current
- pointer
- read pointer
- write pointer
- 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 25
- 230000008859 change Effects 0.000 claims description 74
- 238000012544 monitoring process Methods 0.000 claims description 21
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 abstract description 17
- 238000011084 recovery Methods 0.000 abstract description 5
- 230000008901 benefit Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000011800 void material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
- G06F11/1451—Management of the data involved in backup or backup restore by selection of backup contents
-
- 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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
-
- 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/0893—Caches characterised by their organisation or structure
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种基于卷实时备份的缓存动态平衡方法、系统及存储介质,属于数据容灾备份技术领域。所述方法包括:构造与捕获的I/O变化数据相应的第一结构体;将内存缓存和文件缓存用同一个第二结构体进行表征;将写指针与读指针用同一个第三结构体进行表征;根据第一结构体、第二结构体和第三结构体,分别对写指针和读指针进行动态调整切换。所述系统包括:第一结构体创建模块;第二结构体创建模块;第三结构体创建模块;写指针动态调节模块;读指针动态调节模块。本发明对内存缓存和文件缓存进行动态调整,不仅能够有效应对生产端的数据量爆发,还能够在生产效率和实时备份网络中断容忍度两方面实现更好的平衡。
Description
技术领域
本发明属于数据容灾备份技术领域,涉及一种基于卷实时备份的缓存动态平衡方法、系统及存储介质。
背景技术
在实时备份领域,在生产端中,缓存是用于暂时存放数据,然后由数据发送程序读取缓存中的数据,并将读取到的数据同步发送。缓存的方式主要有内存缓存和文件缓存。
实时备份是指实时地对业务数据进行备份的方式。相对于传统定时备份的方式,实时备份可以达到极小的RPO(Recovery Point Objective),最大程度上避免由于故障导致的数据丢失。
卷实时备份是一种针对卷的实时备份技术,该技术一般结合存储I/O监控技术,可以分为两个主要步骤:步骤1.生产卷完全同步:任务启动后,通过对生产卷创建快照,通过备份客户端将快照数据通过网络备份到服务端的镜像空间,完成首次同步;步骤2.实时生产卷变化数据监控:一旦快照创建后,备份客户端的驱动模块会监控生产卷I/O的变化,将实时变化数据同步到备份系统的日志空间。卷实时备份是数据容灾备份领域的重点研究问题。
目前,由于计算机总线和网络带宽不匹配,可能引起短时间网络中断和影响生产端性能,一般会在上述步骤2中增加缓存机制,即将捕获到的I/O变化数据暂放到缓存,再从缓存里读取I/O变化数据进行数据同步,这样可以规避带宽不匹配的情况。但是,如前所述,缓存有内存缓存和文件缓存,内存缓存有访问性能高的优势,不过也有可分配空间较小,过大的空间会影响生产端性能的劣势;文件缓存有可分配空间相对于内存缓存更大的优势,不过也有性能相对于内存缓存差的劣势。而现有的卷实时备份技术中,一般都是单一地运用内存缓存或文件缓存,能够同时且平衡地运用内存缓存和文件缓存的几乎没有。
因此,在卷实时备份引入缓存机制后,如何同时利用好两种缓存的优势,以适应各种备份恢复场景,成为当前急需解决的技术问题。
发明内容
本发明为了解决上述背景技术中的技术问题,提供一种基于卷实时备份的缓存动态平衡方法、系统及存储介质。技术方案如下:
第一方面,提供一种基于卷实时备份的缓存动态平衡方法,所述方法包括步骤:
监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度;
通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量和完全的缓存空间大小;
通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数;
在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;
在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;
其中下一个缓存为内存缓存或文件缓存;初始缓存为内存缓存。
在其中一个实施例中,在所述通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征的步骤中,所述第一变量还包括实际的缓存空间大小;
在进行数据缓存时,根据第一信息,写指针将当前实际的缓存空间尾部作为当前缓存尾部,再将写指针切换到当前缓存的头部;
在进行数据同步时,根据第二信息,读指针将当前实际的缓存空间尾部作为当前缓存尾部,再将读指针切换到当前缓存的头部。
在其中一个实施例中,所述在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存的步骤,包括:
根据第一信息判断写指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)写指针与读指针当前位于相同缓存;(2)写指针与读指针当前切换次数相等;(3)写指针占用当前缓存长度P1加上I/O变化数据对象长度P2的总值P4大于当前缓存的分配边界长度P3,或写指针占用当前缓存长度P1等于当前缓存的分配边界长度P3,即判断写指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
根据第一信息判断写指针是否切换到下一个缓存:
若同时满足三个条件:(1)写指针与读指针在当前缓存碰撞或预计碰撞;(2)写指针与读指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断写指针切换到下一个缓存;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件。
在其中一个实施例中,所述在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存步骤,包括:
根据第二信息判断读指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)读指针位于当前缓存尾部;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断读指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述三个条件;
根据第二信息判断读指针是否切换到下一个缓存:
若同时满足两个条件:(1)读指针与写指针当前切换次数不相等;(2)当前缓存中已放有第一结构体对象的数量为0,即判断读指针切换到下一个缓存;若未同时满足上述两个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述两个条件;
根据第二信息判断读指针是否切回到初始缓存:
若同时满足四个条件:(1)读指针与写指针在当前缓存碰撞;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量为0;(4)读指针当前位于文件缓存,即判断读指针回到初始缓存;若未同时满足上述四个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述四个条件。
在其中一个实施例中,上述方法还包括步骤:
获取空闲的内存缓存和文件缓存;
将所述文件缓存拆分为N个子文件缓存,所述N为2或3;
以内存缓存为首,按序设置内存缓存和N个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和N个子文件的顺序依次执行切换。
第二个方面,还提供了一种基于卷实时备份的缓存动态平衡系统,所述系统包括:
第一结构体创建模块,用于监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度;
第二结构体创建模块,用于通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量和完全的缓存空间大小;
第三结构体创建模块,用于通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数;
写指针动态调节模块,用于在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;
读指针动态调节模块,用于在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;
其中下一个缓存为内存缓存或文件缓存;初始缓存为内存缓存。
在其中一个实施例中,所述写指针动态调节模块,包括:
写指针切换到当前缓存头部判断单元,用于根据第一信息判断写指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)写指针与读指针当前位于相同缓存;(2)写指针与读指针当前切换次数相等;(3)写指针占用当前缓存长度P1加上I/O变化数据对象长度P2的总值P4大于当前缓存的分配边界长度P3,或写指针占用当前缓存长度P1等于当前缓存的分配边界长度P3,即判断写指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
写指针切换到下一个缓存判断单元,用于根据第一信息判断写指针是否切换到下一个缓存:
若同时满足三个条件:(1)写指针与读指针在当前缓存碰撞或预计碰撞;(2)写指针与读指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断写指针切换到下一个缓存;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件。
在其中一个实施例中,所述读指针动态调节模块,包括:
读指针切换到当前缓存头部判断单元,用于根据第二信息判断读指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)读指针位于当前缓存尾部;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断读指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述三个条件;
读指针切换到下一个缓存判断单元,用于根据第二信息判断读指针是否切换到下一个缓存:
若同时满足两个条件:(1)读指针与写指针当前切换次数不相等;(2)当前缓存中已放有第一结构体对象的数量为0,即判断读指针切换到下一个缓存;若未同时满足上述两个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述两个条件;
读指针切换到初始缓存判断单元,用于根据第二信息判断读指针是否切回到初始缓存:
若同时满足四个条件:(1)读指针与写指针在当前缓存碰撞;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量为0;(4)读指针当前位于文件缓存,即判断读指针回到初始缓存;若未同时满足上述四个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述四个条件。
在其中一个实施例中,所述系统还包括:
空闲缓存获取模块,用于获取空闲的内存缓存和文件缓存;
文件缓存拆分模块,用于将所述文件缓存拆分为N个子文件缓存,所述N为2或3;
顺序设置切换模块,用于以内存缓存为首,按序设置内存缓存和N个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和N个子文件的顺序依次执行切换。
第三个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述基于卷实时备份的缓存动态平衡方法。
本发明的有益效果是:
1.本发明根据缓存使用情况,对内存缓存和文件缓存进行动态的平衡和调整,不仅能够有效应对生产端的数据量爆发,还能够在生产效率和实时备份网络中断容忍度两方面实现更好的平衡;
2.本发明将缓存动态平衡结合I/O实时监控,能够有效防止定时备份增量机制导致的RPO过高,能够有效避免由于故障导致的数据丢失;
3.本发明能够对内存缓存和文件缓存进行动态调整,综合利用了两类缓存的优势,扩大了实时备份的应用场景。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1中基于卷实时备份的缓存动态平衡方法流程图。
图2为本发明实施例1中 I/O监控及缓存使用总体逻辑示意图。
图3为本发明实施例1中缓存使用逻辑示意图。
图4为本发明实施例1中构造的第一结构体示意图。
图5为本发明实施例2中基于卷实时备份的缓存动态平衡方法流程图。
图6为本发明实施例2中处理边界空洞情况的流程示意图。
图7为本发明实施例3中基于卷实时备份的缓存动态平衡系统的结构示意图。
图8为本发明实施例3中写指针动态调节模块的结构示意图。
图9为本发明实施例3中读指针动态调节模块的结构示意图。
附图中,各标号所代表的部件列表如下:
1001、空闲缓存获取模块,1002、文件缓存拆分模块,1003、第一结构体创建模块,1004、第二结构体创建模块,1005、第三结构体创建模块,1006、写指针动态调节模块,1007、读指针动态调节模块,1008、顺序设置切换模块,10061、写指针切换到当前缓存头部判断单元,10062、写指针切换到下一个缓存判断单元,10071、读指针切换到当前缓存头部判断单元,10072、读指针切换到下一个缓存判断单元,10073、读指针切换到初始缓存判断单元。
实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例1
在本实施例中,如图1所示,提供一种基于卷实时备份的缓存动态平衡方法,该方法包括步骤:
S101.监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度。
值得说明的是,如图2所示,在卷实时备份的过程中,会在生产应用与备份源(生产卷,例如Windows C盘)之间设置监控驱动,并进行以下过程:1、生产应用进行写磁盘;2、监控驱动将捕获的I/O变化数据写入到发送缓存中;3、由应用层的备份系统客户端程序读取出I/O变化数据;4、备份系统客户端程序将实时变化数据发送至备份系统服务端程序存储。
还值得说明的是,缓存的使用逻辑,如图3所示,无论是内存缓存或是文件缓存,都采用将一段连续空间设置成首位相连的环形队列,即从最开始使用,当到达连续空间尾部后,写/读指针回到连续空间开头。同时,缓存中的I/O变化数据大小不一定相等。
基于上述卷实时备份的过程和缓存的使用逻辑,本发明对捕获的I/O变化数据进行了如图4所示的构造,构造出的第一结构体具有结构头,结构头中设有I/O变化数据长度,占4字节,表示本次I/O提交的变化数据长度;结构头后则是变化数据,表示本次I/O提交的实际数据。通过结构头可以快速清楚地知道I/O变化数据长度,是让写指针和读指针能够顺利切换的重要条件。
S102.通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量和完全的缓存空间大小。
S103.通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数。
可以理解的是,在记录写/读指针的缓存位置时,我们一般是通过缓存队列索引和当前缓存队列来定位。
还可以理解的是,本发明还记录写/读切换次数,主要用于写/读指针的对比,这样有助于处理错误情况、文件缓存到内存缓存的切换。
S104.在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;所述下一个缓存为内存缓存或文件缓存;所述初始缓存为内存缓存。
可选的,所述步骤S104,包括:
根据第一信息判断写指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)写指针与读指针当前位于相同缓存;(2)写指针与读指针当前切换次数相等;(3)写指针占用当前缓存长度P1加上I/O变化数据对象长度P2的总值P4大于当前缓存的分配边界长度P3,或写指针占用当前缓存长度P1等于当前缓存的分配边界长度P3,即判断写指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
根据第一信息判断写指针是否切换到下一个缓存:
若同时满足三个条件:(1)写指针与读指针在当前缓存碰撞或预计碰撞;(2)写指针与读指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断写指针切换到下一个缓存;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件。
S105.在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;所述下一个缓存为内存缓存或文件缓存;所述初始缓存为内存缓存。
可选的,所述步骤S105,包括:
根据第二信息判断读指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)读指针位于当前缓存尾部;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断读指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述三个条件;
根据第二信息判断读指针是否切换到下一个缓存:
若同时满足两个条件:(1)读指针与写指针当前切换次数不相等;(2)当前缓存中已放有第一结构体对象的数量为0,即判断读指针切换到下一个缓存;若未同时满足上述两个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述两个条件;
根据第二信息判断读指针是否切回到初始缓存:
若同时满足四个条件:(1)读指针与写指针在当前缓存碰撞;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量为0;(4)读指针当前位于文件缓存,即判断读指针回到初始缓存;若未同时满足上述四个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述四个条件。
值得说明的是,在开始时,通常将写指针和读指针设置到内存缓存之上,优先使用内存缓存,这样效率会更高。
本实施例根据缓存使用情况,给出了具体的判定条件,从而实现内存缓存和文件缓存的动态调整,不仅能够有效应对生产端的数据量爆发,还能够在生产效率和实时备份网络中断容忍度两方面实现更好的平衡。
实施例2
在本实施例中,如图5所示,提供一种基于卷实时备份的缓存动态平衡方法,该方法包括步骤:
S201.获取空闲的内存缓存和文件缓存;
S202.将所述文件缓存拆分为3个子文件缓存;
S203.监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度;
S204.通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量、完全的缓存空间大小和实际的缓存空间大小;
S205.通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数;
S206.在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;其中所述下一个缓存为内存缓存或文件缓存;所述初始缓存为内存缓存;其中所述写指针将当前实际的缓存空间尾部作为当前缓存尾部,再将写指针切换到当前缓存的头部;
S207.在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;其中所述下一个缓存为内存缓存或文件缓存;所述初始缓存为内存缓存;其中所述读指针将当前实际的缓存空间尾部作为当前缓存尾部,再将读指针切换到当前缓存的头部。
S208.以内存缓存为首,按序设置内存缓存和3个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和3个子文件的顺序依次执行切换。
值得说明的是,如图6所示,由于缓存中的I/O变化数据大小不一定相等,这样缓存的尾部剩余空间大小有可能不足以让新的I/O变化数据写入,此时写指针可能直接切换到当前缓存的开头来写入I/O变化数据,造成当前缓存尾部为空,也即代表缓存空间尾部相对有变。为了使读指针能够知道缓存实际的边界,本实施例还记录了实际的缓存空间大小(使实际的缓存空间与完全的缓存空间相比),当生产者在发现当前位置到缓存空间末端范围无法存储一个I/O变化数据时,写指针将当前实际的缓存空间尾部作为当前缓存尾部,再切换到当前缓存的头部;之后,读指针便可将当前实际的缓存空间尾部作为当前缓存尾部,再切换到当前缓存的头部,这样可用于处理边界空洞问题。
还值得说明的是,文件缓存主要采用稀疏文件的方式进行空间分配,由于稀疏(空洞)文件最初分配时,不占用实际存储空间,因此提供了一个按照3个比例将文件缓存进行分配的机制,将缓存文件空间拆分成3个不同的子文件缓存,也可根据用户情况进行调整,即拆为2个不同的子文件缓存。多个子文件缓存的空间大小可以相等,也可以不相等。
在本实施例中,本发明内存缓存分配1G的空间大小,文件缓存分配10G空间大小,并将文件缓存按照20%,30%,50%分配为3个子文件缓存,获得2G的文件Cache1,3G的文件Cache2,5G的文件Cache3。通过拆分文件缓存,若文件Cache1一直没有出现全部读、写指针碰撞,且为满的情况,则最终文件缓存只会占用用户的2G空间,这样可以在用户能够预判的情况下更小的占用生产存储空间。
另外,在初始化时,我们建立含内存缓存和文件缓存的Cache_list,内存缓存位于Cache_list的头部,下标为0;从1开始为文件缓存对象,Cache1、Cache2和Cache3,下标分别为1至3,Cache_list的元素数最大为4。
本实施例能够对内存缓存和文件缓存进行动态调整,综合利用了两类缓存的优势,扩大了实时备份的应用场景。
实施例3
在本实施例中,如图7所示,提供一种基于卷实时备份的缓存动态平衡系统,该系统包括:
空闲缓存获取模块1001,用于获取空闲的内存缓存和空闲的文件缓存;
文件缓存拆分模块1002,用于将所述文件缓存拆分为3个子文件缓存;
第一结构体创建模块1003,用于监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度;
第二结构体创建模块1004,用于通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量、完全的缓存空间大小和实际的缓存空间大小;
第三结构体创建模块1005,用于通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数;
写指针动态调节模块1006,用于在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;其中下一个缓存为内存缓存或文件缓存;初始缓存为内存缓存;其中所述写指针将当前实际的缓存空间尾部作为当前缓存尾部,再将写指针切换到当前缓存的头部;
读指针动态调节模块1007,用于在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;其中下一个缓存为内存缓存或文件缓存;初始缓存为内存缓存;其中所述读指针将当前实际的缓存空间尾部作为当前缓存尾部,再将读指针切换到当前缓存的头部;
顺序设置切换模块1008,用于以内存缓存为首,按序设置内存缓存和3个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和3个子文件的顺序依次执行切换。
可选的,如图8所示,所述写指针动态调节模块1006,包括:
写指针切换到当前缓存头部判断单元10061,用于根据第一信息判断写指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)写指针与读指针当前位于相同缓存;(2)写指针与读指针当前切换次数相等;(3)写指针占用当前缓存长度P1加上I/O变化数据对象长度P2的总值P4大于当前缓存的分配边界长度P3,或写指针占用当前缓存长度P1等于当前缓存的分配边界长度P3,即判断写指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
写指针切换到下一个缓存判断单元10062,用于根据第一信息判断写指针是否切换到下一个缓存:
若同时满足三个条件:(1)写指针与读指针在当前缓存碰撞或预计碰撞;(2)写指针与读指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断写指针切换到下一个缓存;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件。
可选的,如图9所示,所述读指针动态调节模块1007,包括:
读指针切换到当前缓存头部判断单元10071,用于根据第二信息判断读指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)读指针位于当前缓存尾部;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断读指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述三个条件;
读指针切换到下一个缓存判断单元10072,用于根据第二信息判断读指针是否切换到下一个缓存:
若同时满足两个条件:(1)读指针与写指针当前切换次数不相等;(2)当前缓存中已放有第一结构体对象的数量为0,即判断读指针切换到下一个缓存;若未同时满足上述两个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述两个条件;
读指针切换到初始缓存判断单元10073,用于根据第二信息判断读指针是否切回到初始缓存:
若同时满足四个条件:(1)读指针与写指针在当前缓存碰撞;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量为0;(4)读指针当前位于文件缓存,即判断读指针回到初始缓存;若未同时满足上述四个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述四个条件。
本实施例的技术方案,空闲缓存获取模块1001,用于获取空闲的内存缓存和文件缓存;文件缓存拆分模块1002,用于将所述文件缓存拆分为多个子文件缓存;第一结构体创建模块1003,用于监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,第一结构体具有的结构头包括I/O变化数据长度;第二结构体创建模块1004,用于通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征;第三结构体创建模块1005,用于通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征;写指针动态调节模块1006,用于在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存;读指针动态调节模块1007,用于在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存;顺序设置切换模块1008,用于以内存缓存为首,按序设置内存缓存和3个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和多个子文件的顺序依次执行切换。本实例将缓存动态平衡结合I/O实时监控,能够有效防止定时备份增量机制导致的RPO过高,能够有效避免由于故障导致的数据丢失,同时对内存缓存和文件缓存进行动态调整。
实施例4
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现实施例1或实施例2所述的基于卷实时备份的缓存动态平衡方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (6)
1.一种基于卷实时备份的缓存动态平衡方法,其特征在于,所述方法包括步骤:
监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度;
通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量和完全的缓存空间大小;
通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数;
在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;
具体的,根据第一信息判断写指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)写指针与读指针当前位于相同缓存;(2)写指针与读指针当前切换次数相等;(3)写指针占用当前缓存长度P1加上I/O变化数据对象长度P2的总值P4大于当前缓存的分配边界长度P3,或写指针占用当前缓存长度P1等于当前缓存的分配边界长度P3,即判断写指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
根据第一信息判断写指针是否切换到下一个缓存:
若同时满足三个条件:(1)写指针与读指针在当前缓存碰撞或预计碰撞;(2)写指针与读指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断写指针切换到下一个缓存;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;
具体的,根据第二信息判断读指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)读指针位于当前缓存尾部;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断读指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述三个条件;
根据第二信息判断读指针是否切换到下一个缓存: 若同时满足两个条件:(1)读指针与写指针当前切换次数不相等;(2)当前缓存中已放有第一结构体对象的数量为0,即判断读指针切换到下一个缓存;若未同时满足上述两个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述两个条件;
根据第二信息判断读指针是否切回到初始缓存: 若同时满足四个条件:(1)读指针与写指针在当前缓存碰撞;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量为0;(4)读指针当前位于文件缓存,即判断读指针回到初始缓存;若未同时满足上述四个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述四个条件; 其中下一个缓存为内存缓存或文件缓存;初始缓存为内存缓存。
2.根据权利要求1所述的基于卷实时备份的缓存动态平衡方法,其特征在于,在所述通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征的步骤中,所述第一变量还包括实际的缓存空间大小;
在进行数据缓存时,根据第一信息,写指针将当前实际的缓存空间尾部作为当前缓存尾部,再将写指针切换到当前缓存的头部;
在进行数据同步时,根据第二信息,读指针将当前实际的缓存空间尾部作为当前缓存尾部,再将读指针切换到当前缓存的头部。
3.根据权利要求1所述的基于卷实时备份的缓存动态平衡方法,其特征在于,所述方法还包括步骤:
获取空闲的内存缓存和文件缓存;
将所述文件缓存拆分为N个子文件缓存,所述N为2或3;
以内存缓存为首,按序设置内存缓存和N个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和N个子文件的顺序依次执行切换。
4.一种基于卷实时备份的缓存动态平衡系统,其特征在于,所述系统包括:
第一结构体创建模块,用于监控驱动捕获I/O变化数据,再构造与该I/O变化数据相应的第一结构体,所述第一结构体具有结构头,所述结构头包括I/O变化数据长度;
第二结构体创建模块,用于通过第一变量,将内存缓存和文件缓存用同一个第二结构体进行表征,所述第一变量包括缓存中已放有第一结构体对象的数量和完全的缓存空间大小;
第三结构体创建模块,用于通过第二变量和第三变量,将监控驱动写指针与变化数据发送程序读指针用同一个第三结构体进行表征,所述第二变量包括写指针的缓存位置和写指针的切换次数;所述第三变量包括读指针的缓存位置和读指针的切换次数;
写指针动态调节模块,用于在进行数据缓存时,根据第一结构体、第二结构体和第三结构体,获取第一信息,再根据第一信息,将写指针切换到当前缓存的头部或切换到下一个缓存,其中所述第一信息包括写指针的当前缓存位置、写指针占用当前缓存的程度、写指针的当前切换次数、读指针的当前缓存位置、读指针的当前切换次数;
具体的,所述写指针动态调节模块,包括:
写指针切换到当前缓存头部判断单元,用于根据第一信息判断写指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)写指针与读指针当前位于相同缓存;(2)写指针与读指针当前切换次数相等;(3)写指针占用当前缓存长度P1加上I/O变化数据对象长度P2的总值P4大于当前缓存的分配边界长度P3,或写指针占用当前缓存长度P1等于当前缓存的分配边界长度P3,即判断写指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
写指针切换到下一个缓存判断单元,用于根据第一信息判断写指针是否切换到下一个缓存:
若同时满足三个条件:(1)写指针与读指针在当前缓存碰撞或预计碰撞;(2)写指针与读指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断写指针切换到下一个缓存;若未同时满足上述三个条件,则继续在当前缓存写入I/O变化数据,直到同时满足上述三个条件;
读指针动态调节模块,用于在进行数据同步时,根据第一结构体、第二结构体和第三结构体,获取第二信息,再根据第二信息,将读指针切换到当前缓存的头部或切换到下一个缓存或切回到初始缓存,其中所述第二信息包括写指针的当前缓存位置、写指针的当前切换次数、读指针的当前缓存位置、读指针读取当前缓存的程度和读指针的当前切换次数;
具体的,所述读指针动态调节模块,包括:
读指针切换到当前缓存头部判断单元,用于根据第二信息判断读指针是否切换到当前缓存的头部:
若同时满足三个条件:(1)读指针位于当前缓存尾部;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量大于0,即判断读指针切换到当前缓存的头部;若未同时满足上述三个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述三个条件;
读指针切换到下一个缓存判断单元,用于根据第二信息判断读指针是否切换到下一个缓存:
若同时满足两个条件:(1)读指针与写指针当前切换次数不相等;(2)当前缓存中已放有第一结构体对象的数量为0,即判断读指针切换到下一个缓存;若未同时满足上述两个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述两个条件;
读指针切换到初始缓存判断单元,用于根据第二信息判断读指针是否切回到初始缓存:
若同时满足四个条件:(1)读指针与写指针在当前缓存碰撞;(2)读指针与写指针当前切换次数相等;(3)当前缓存中已放有第一结构体对象的数量为0;(4)读指针当前位于文件缓存,即判断读指针回到初始缓存;若未同时满足上述四个条件,则继续在当前缓存读取I/O变化数据,直到同时满足上述四个条件;
其中下一个缓存为内存缓存或文件缓存;初始缓存为内存缓存。
5.根据权利要求4所述的基于卷实时备份的缓存动态平衡系统,其特征在于,所述系统还包括:
空闲缓存获取模块,用于获取空闲的内存缓存和文件缓存;
文件缓存拆分模块,用于将所述文件缓存拆分为N个子文件缓存,所述N为2或3;
顺序设置切换模块,用于以内存缓存为首,按序设置内存缓存和N个子文件缓存,当写指针或读指针切换到下一个缓存时,按内存缓存和N个子文件的顺序依次执行切换。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至3任一所述基于卷实时备份的缓存动态平衡方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310667384.1A CN116431395B (zh) | 2023-06-07 | 2023-06-07 | 基于卷实时备份的缓存动态平衡方法、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310667384.1A CN116431395B (zh) | 2023-06-07 | 2023-06-07 | 基于卷实时备份的缓存动态平衡方法、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116431395A CN116431395A (zh) | 2023-07-14 |
CN116431395B true CN116431395B (zh) | 2023-09-08 |
Family
ID=87085804
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310667384.1A Active CN116431395B (zh) | 2023-06-07 | 2023-06-07 | 基于卷实时备份的缓存动态平衡方法、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116431395B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2045900A1 (en) * | 1990-06-29 | 1991-12-30 | William R. Wheeler | Cache set selection for high-performance processor |
US7113516B1 (en) * | 2000-11-28 | 2006-09-26 | Texas Instruments Incorporated | Transmit buffer with dynamic size queues |
CN102521410A (zh) * | 2011-12-28 | 2012-06-27 | 天津凯发电气股份有限公司 | 基于VxWorks操作系统的文件存储结构及存储方法 |
KR20130086692A (ko) * | 2012-01-26 | 2013-08-05 | 전자부품연구원 | 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법 |
US9135123B1 (en) * | 2011-12-28 | 2015-09-15 | Emc Corporation | Managing global data caches for file system |
WO2015183383A1 (en) * | 2014-05-30 | 2015-12-03 | Solidfire, Inc. | Log-structured filed system with file branching |
CN109299146A (zh) * | 2018-09-18 | 2019-02-01 | 交控科技股份有限公司 | 一种数据同步系统及方法 |
CN110557341A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 数据限流的方法和装置 |
-
2023
- 2023-06-07 CN CN202310667384.1A patent/CN116431395B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2045900A1 (en) * | 1990-06-29 | 1991-12-30 | William R. Wheeler | Cache set selection for high-performance processor |
US7113516B1 (en) * | 2000-11-28 | 2006-09-26 | Texas Instruments Incorporated | Transmit buffer with dynamic size queues |
CN102521410A (zh) * | 2011-12-28 | 2012-06-27 | 天津凯发电气股份有限公司 | 基于VxWorks操作系统的文件存储结构及存储方法 |
US9135123B1 (en) * | 2011-12-28 | 2015-09-15 | Emc Corporation | Managing global data caches for file system |
KR20130086692A (ko) * | 2012-01-26 | 2013-08-05 | 전자부품연구원 | 환형 구조의 비휘발성 메모리 캐쉬에 데이터를 읽고 쓰기 위한 데이터 처리 방법 |
WO2015183383A1 (en) * | 2014-05-30 | 2015-12-03 | Solidfire, Inc. | Log-structured filed system with file branching |
CN110557341A (zh) * | 2018-05-31 | 2019-12-10 | 北京京东尚科信息技术有限公司 | 数据限流的方法和装置 |
CN109299146A (zh) * | 2018-09-18 | 2019-02-01 | 交控科技股份有限公司 | 一种数据同步系统及方法 |
Non-Patent Citations (1)
Title |
---|
一种数据表实时备份系统的高速缓存方法;郭丹等;《四川大学学报(自然科学版)》;第47卷(第5期);998-1002 * |
Also Published As
Publication number | Publication date |
---|---|
CN116431395A (zh) | 2023-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9058112B2 (en) | Retrieving data in a storage system using thin provisioning | |
CN110442560B (zh) | 一种日志重演方法、装置、服务器和存储介质 | |
CN110109778B (zh) | 一种大量小数据文件备份方法及恢复方法 | |
US9098404B2 (en) | Storage array, storage system, and data access method | |
US20050086386A1 (en) | Shared running-buffer-based caching system | |
US9411519B2 (en) | Implementing enhanced performance flash memory devices | |
US9229864B1 (en) | Managing metadata synchronization for reducing host system latency in a storage system | |
CN105955841B (zh) | 一种raid双控制器利用磁盘进行写缓存镜像的方法 | |
US20100153347A1 (en) | Method and system for preventing corruption of hard disk drive file system | |
CN111061431B (zh) | 一种分布式存储方法、服务器及客户端 | |
WO2023015866A1 (zh) | 一种数据写入方法、装置、系统、电子设备及存储介质 | |
CN109582649B (zh) | 一种元数据存储方法、装置、设备及可读存储介质 | |
US11226898B2 (en) | Data caching method and apparatus | |
US8010834B2 (en) | Failure information monitoring apparatus and failure information monitoring method | |
CN110928496B (zh) | 一种在多控存储系统上的数据处理方法及装置 | |
CN110618785A (zh) | 双控存储系统 | |
US8335904B1 (en) | Identifying active and inactive data in storage systems | |
CN116431395B (zh) | 基于卷实时备份的缓存动态平衡方法、系统及存储介质 | |
CN116450418B (zh) | 基于卷备份的断点差异同步方法、系统及卷实时备份方法 | |
CN110647476B (zh) | 一种固态硬盘写数据的方法、装置、设备及存储介质 | |
CN111208953A (zh) | 一种分布式存储方法及其装置 | |
CN116841458A (zh) | 存储器读写控制方法、系统、终端及存储介质 | |
CN114490540B (zh) | 数据存储方法、介质、装置和计算设备 | |
US20230021108A1 (en) | File storage | |
CN111190546B (zh) | 一种基于alua和本地缓存的分布式块存储性能优化方法 |
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 |