CN114327270A - 一种请求处理方法、装置、设备及可读存储介质 - Google Patents
一种请求处理方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114327270A CN114327270A CN202111621376.0A CN202111621376A CN114327270A CN 114327270 A CN114327270 A CN 114327270A CN 202111621376 A CN202111621376 A CN 202111621376A CN 114327270 A CN114327270 A CN 114327270A
- Authority
- CN
- China
- Prior art keywords
- data
- reflink
- new
- cache
- address
- 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.)
- Granted
Links
Images
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
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- 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/0866—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
- G06F12/0873—Mapping of cache memory to specific storage devices or parts thereof
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- 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)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种请求处理方法、装置、设备及可读存储介质。本申请在修改reflink数据时,先将包括当前被改数据的连续数据从磁盘读取至缓存,然后修改缓存中的相应reflink数据,但不修改连续数据中的其他数据,进而在磁盘中为修改得到的新reflink数据分配新地址,并将新reflink数据的缓存地址映射至新地址,以便将新reflink数据存入新地址,同时将reflink共享树中相应reflink数据的引用计数减一。在该方案中,对磁盘只有一次读操作和一次写操作,因此降低了写放大问题;同时该方案引入了预读机制,后续针对连续数据中的其他数据的访问操作可直接命中缓冲,从而可提升后续操作的效率。本申请提供的一种请求处理装置、设备及可读存储介质,也同样具有上述技术效果。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种请求处理方法、装置、设备及可读存储介质。
背景技术
在云计算、虚拟化场景中,reflink可用作数据备份方案的底层技术,也可用于实现快照(snapshot)以及持续数据保护等,是一种使用广泛的数据备份技术。reflink是文件***提供的基于CoW(写时拷贝)原理的轻量级数据拷贝方法,通过reflink拷贝得到的新文件和源文件共享数据区域。
reflink能够提升磁盘空间利用率和拷贝速度,但也具有一定的局限性。具体的,由于reflink基于CoW原理实现,因此经reflink共享的数据被修改时,存在写放大问题。例如:修改数据A时,需要先把A从磁盘读取至缓存,然后把缓存里的A拷贝至磁盘里的新位置,进而对缓存里的A进行修改,之后将修改后的A再次存入新位置,可见此过程存在一次读操作和两次写操作,存在写放大问题。
因此,如何降低reflink数据被修改时的写放大问题,是本领域技术人员需要解决的问题。
发明内容
有鉴于此,本申请的目的在于提供一种请求处理方法、装置、设备及可读存储介质,以降低reflink数据被修改时的写放大问题。其具体方案如下:
第一方面,本申请提供了一种请求处理方法,包括:
接收reflink数据的修改请求;
将包括所述reflink数据的连续数据从磁盘读取至缓存,并根据所述修改请求对所述缓存中的所述reflink数据进行修改,得到新reflink数据;
在所述磁盘中为所述新reflink数据分配新地址,并将所述新reflink数据的缓存地址映射至所述新地址,以便根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,并将reflink共享树中所述reflink数据的引用计数减一。
优选地,所述将包括所述reflink数据的连续数据从磁盘读取至缓存,包括:
基于局部性原理将包括所述reflink数据的连续数据从磁盘读取至所述缓存。
优选地,所述根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,包括:
根据所述修改请求中的模式标志位确定所述文件打开模式;
若所述文件打开模式为direct模式,则将所述新reflink数据存储至所述新地址后,返回处理完成的通知消息。
优选地,所述根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,包括:
根据所述修改请求中的模式标志位确定所述文件打开模式;
若所述文件打开模式为非direct模式,则返回处理完成的通知消息,并将所述新reflink数据标记为脏数据,以便按照预设落盘机制将所述新reflink数据存储至所述新地址。
优选地,所述预设落盘机制包括:周期性机制、内存回收机制和/或用户强制机制。
优选地,所述将reflink共享树中所述reflink数据的引用计数减一之后,还包括:
若减一之后的所述引用计数等于一,则从所述reflink共享树中删除所述reflink数据所在的节点。
优选地,还包括:
若接收到所述连续数据中的其他数据的访问请求,则基于所述缓存中的所述其他数据响应所述访问请求。
优选地,所述将所述新reflink数据的缓存地址映射至所述新地址,包括:
调用缓存接口解除所述缓存地址与所述reflink数据在所述磁盘中的原地址的映射关系,并建立所述缓存地址与所述新地址的映射关系。
第二方面,本申请提供了一种请求处理装置,包括:
接收模块,用于接收reflink数据的修改请求;
修改模块,用于将包括所述reflink数据的连续数据从磁盘读取至缓存,并根据所述修改请求对所述缓存中的所述reflink数据进行修改,得到新reflink数据;
存储模块,用于在所述磁盘中为所述新reflink数据分配新地址,并将所述新reflink数据的缓存地址映射至所述新地址,以便根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,并将reflink共享树中所述reflink数据的引用计数减一。
第三方面,本申请提供了一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现前述公开的请求处理方法。
第四方面,本申请提供了一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述公开的请求处理方法。
通过以上方案可知,本申请提供了一种请求处理方法,包括:接收reflink数据的修改请求;将包括所述reflink数据的连续数据从磁盘读取至缓存,并根据所述修改请求对所述缓存中的所述reflink数据进行修改,得到新reflink数据;在所述磁盘中为所述新reflink数据分配新地址,并将所述新reflink数据的缓存地址映射至所述新地址,以便根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,并将reflink共享树中所述reflink数据的引用计数减一。
可见,本申请在修改reflink数据时,先将包括当前被改数据的连续数据从磁盘读取至缓存,然后基于当前修改请求修改缓存中的相应reflink数据,但不修改连续数据中的其他数据,进而在磁盘中为修改得到的新reflink数据分配新地址,并将新reflink数据的缓存地址映射至新地址,以便将新reflink数据存入磁盘中的新地址,同时将reflink共享树中相应reflink数据的引用计数减一,以表示该reflink数据的共享者少一个。在该方案中,对磁盘只有一次读操作和一次写操作,可见减少了一次写操作,因此降低了写放大问题;同时该方案在缓存当前被改数据时同时缓存了其他数据,也就是引入了预读机制,后续针对连续数据中的其他数据的访问操作可直接命中缓冲,从而可避免频繁读取磁盘,因此可以提升后续操作的效率。
相应地,本申请提供的一种请求处理装置、设备及可读存储介质,也同样具有上述技术效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请公开的一种请求处理方法流程图;
图2为本申请公开的另一种请求处理流程示意图;
图3为本申请公开的一种请求处理装置示意图;
图4为本申请公开的一种电子设备示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
目前,经reflink共享的数据被修改时存在写放大问题。为此,本申请提供了一种请求处理方案,能够减少reflink数据被修改时的写磁盘操作,降低写放大问题,同时可以提升后续操作的效率。
参见图1所示,本申请实施例公开了一种请求处理方法,包括:
S101、接收reflink数据的修改请求。
需要说明的是,reflink数据指:基于reflink技术被至少两个共享者共享的数据。共享者可以是虚拟机、文件、节点、设备等。针对reflink数据,只有在对共享数据进行修改时,文件***底层才会分配新的空间来将源数据拷贝到新的位置,之后再写入用户所改数据。可见,reflink将空间分配与实际数据拷贝延迟到数据修改时,因此能够提高磁盘空间利用率和数据拷贝速度。相对于Hardlink,reflink提供了数据段粒度的文件间数据共享,具有更高的灵活性和磁盘空间利用率,且Btrfs,xfs,ext4,ocfs2等文件***都支持reflink。
当然,被共享的reflink数据有相应的reflink共享树(即refcount tree)来记录被共享的数据、共享者个数等内容。具体的,reflink共享树中的每个节点对应一个被共享的数据,且该数据关联了一个引用计数,引用计数的值记录了该数据被多少个共享者共享。被多个共享者共享的数据实际上仅对应一个磁盘地址。也即:在对文件做reflink拷贝时,文件***只为目的文件分配了原数据,并未分配真正的磁盘空间,也没有进行真正的数据拷贝,此时源文件和目的文件共享文件的数据区域,但实际上源文件和目的文件所共享的这一部分数据对应同一个磁盘地址。
若任一共享者X修改了与其他共享者共享的数据A,那么该共享者X将独享修改后的数据A’,而不再与其他共享者共享数据A,但其他共享者(若其他共享者个数大于1的话)可以继续共享数据A。也即:若引用计数减一,则相应新数据A’就需要存储至新位置。在引用计数等于1时,表明A只有一个共享者,那么可以将A在reflink共享树中的相应节点直接删除。
当然,reflink共享树中的每个节点对应有至少两个索引。任一索引为:该节点的任一共享者与该节点的指向关系,用于确定该节点上的数据被哪个共享者所共享。因此在共享者X不再与其他共享者共享数据A时,数据A所在节点上的、与共享者X对应的索引可以被删除,使得共享者X不再指向数据A。
在一种具体实施方式中,将reflink共享树中reflink数据的引用计数减一之后,还包括:若减一之后的引用计数等于一,则从reflink共享树中删除reflink数据所在的节点。当然,相应索引、引用计数也随之删除。
S102、将包括reflink数据的连续数据从磁盘读取至缓存,并根据修改请求对缓存中的reflink数据进行修改,得到新reflink数据。
在一种具体实施方式中,将包括reflink数据的连续数据从磁盘读取至缓存,包括:基于局部性原理将包括reflink数据的连续数据从磁盘读取至缓存,从而预读取大于当前reflink数据的数据,以便后续其他操作直接命中缓存进行响应。连续数据一般为1M大小的数据块,而一个修改请求所修改的reflink数据一般为1个page(页)的大小。也即:一般以page为单位读取或写入数据。
在一种具体实施方式中,根据修改请求的文件打开模式将新reflink数据存储至新地址,包括:根据修改请求中的模式标志位确定文件打开模式;若文件打开模式为direct模式,则将新reflink数据存储至新地址后,返回处理完成的通知消息。direct模式要求:先将修改后的数据落盘,再返回响应通知消息。
在一种具体实施方式中,根据修改请求的文件打开模式将新reflink数据存储至新地址,包括:根据修改请求中的模式标志位确定文件打开模式;若文件打开模式为非direct模式,则返回处理完成的通知消息,并将新reflink数据标记为脏数据,以便按照预设落盘机制将被标记为脏数据的新reflink数据存储至新地址。其中,预设落盘机制包括:周期性机制、内存回收机制和/或用户强制机制。非direct模式要求:在缓存中修改数据后直接返回响应通知消息而不用等数据落盘,后续***按照自身预设落盘机制将被改数据落盘即可。
S103、在磁盘中为新reflink数据分配新地址,并将新reflink数据的缓存地址映射至新地址,以便根据修改请求的文件打开模式将新reflink数据存储至新地址,并将reflink共享树中reflink数据的引用计数减一。
需要说明的是,将新reflink数据的缓存地址映射至新地址,相当于改变了缓存地址与磁盘地址的原映射关系。具体为:将包括reflink数据的连续数据从磁盘读取至缓存后,reflink数据在缓存中占用的缓存地址与reflink数据在磁盘中的地址就存在了映射关系,而本实施例强制性将该映射关系修改为:修改reflink数据得到的新reflink数据的缓存地址与磁盘新地址的映射关系,这样相当于二次利用了同一缓存地址(reflink数据在缓存中占用的缓存地址就是新reflink数据的缓存地址),因此无需将reflink数据写入磁盘新地址再进行修改。
而在现有技术中,因为没有修改缓存地址与磁盘地址的映射关系,因此只能先把缓存里的数据写入磁盘新地址,使得磁盘新地址与缓存有新映射关系,从而对缓存里的数据修改后,据此映射关系将数据存储至磁盘新地址。
可见,现有技术需要利用一次写入操作来使磁盘新地址与缓存地址有映射关系,而本实施例无需使用写入操作建立该映射关系,而是直接在代码逻辑中完成此映射关系建立,因此省去了一次写操作,降低了写放大问题。
在一种具体实施方式中,若接收到连续数据中的其他数据的访问请求,则基于缓存中的其他数据响应访问请求。
在一种具体实施方式中,将新reflink数据的缓存地址映射至新地址,包括:调用缓存接口解除缓存地址与reflink数据在磁盘中的原地址的映射关系,并建立缓存地址与新地址的映射关系。其中,基于缓存接口可以定位到具体的缓存地址,因此可修改该缓存地址与磁盘地址的映射关系。
可见,本实施例在修改reflink数据时,先将包括当前被改数据的连续数据从磁盘读取至缓存,然后基于当前修改请求修改缓存中的相应reflink数据,但不修改连续数据中的其他数据,进而在磁盘中为修改得到的新reflink数据分配新地址,并将新reflink数据的缓存地址映射至新地址,以便将修改得到的新reflink数据存入磁盘中的新地址,同时将reflink共享树中相应reflink数据的引用计数减一,以表示该reflink数据的共享者少一个。在该方案中,对磁盘只有一次读操作和一次写操作,可见减少了一次写操作,因此降低了写放大问题;同时该方案在缓存当前被改数据时同时缓存了其他数据,也就是引入了预读机制,后续针对连续数据中的其他数据的访问操作可直接命中缓冲,从而可避免频繁读取磁盘,因此可以提升后续操作的效率。
请参见图2,文件A和文件B共享数据2、5、6、7、8,同时设有extent tree。无论是对文件A还是文件B的读取,通过相关索引查找,再通过refcount tree,最后指向的是相同的数据段。
以图2为例,本实施例提供的数据修改流程包括:当修改5时,首先预读取5、6、7、8至缓存,所预读的数据长度由预读算法确定,要远大于一页,且预读的IO为连续IO(如一个数据块)。其次,根据程序打开文件模式是否为O_DIRECT做区分处理:如果是direct模式,则直接修改缓存里的5,并强制所改数据落盘;如果是非direct,则修改缓存里的5后标记为脏,由***随后将修改后的5落盘。其中,***的缓存下刷策略有:周期性下刷、到阈值下刷(内存紧张时触发的内存回收机制)、用户强制下刷(调用sync)。下刷的时刻都晚于数据IO的时刻。
由于将数据段5、6、7都预读到了缓存,那么当用户修改完数据段5时,数据6、7已经位于缓存,因此后续再对6、7修改时不需要再读磁盘,而是直接对缓存中的6、7进行修改。
其中,数据8并没有被修改,但它仍然被读到了缓存中。这个是预读机制决定的,其开销是可以接受的,可由局部性原理解释。
如图2所示,修改后的5、6、7变更为5’、6’、7’,并存入到了磁盘新位置。预读出的数据5、6、7到缓存(虚线框内的5、6、7)先被修改,然后将改后的数据直接映射给新的位置,此流程与现有技术都能够完成数据修改操作,但省去了一次数据写入。相应的5、6、7的引用计数也进行了相应更新。
本实施例基于预读机制进行reflink数据的写入,可有效提升reflink文件写入效率。具体而言,在reflink文件数据写入阶段引入预读机制,根据计算机的局部性原理使大片连续数据预先位于缓存,无需逐页读取。其次,根据用户程序打开文件模式是否为O_DIRECT做区分处理:如果是direct模式,则用户数据直接修改缓存并强制落盘;如果非direct,则用户数据直接修改已预读缓存并标记为脏,由***随后落盘。该方案使得原先的数据写入流程由一次磁盘读取和两次写入变为一次读取和一次写入,且数据读取为大块IO的预读,因此数据写入性能得到极大提高,reflink文件首次写入性能可接近普通文件写入的性能。
可见,本实施例在reflink数据写入阶段引入了预读机制,即在用户进行数据写入时,会基于linux提供的预读机制预先读取大段的连续数据。根据计算机的局部性原理,数据写入大概率是连续地址范围且会大于一个page,使得后续数据预先位于缓存,无需逐页读取磁盘,因此可显著提高reflink文件首次写入性能。本实施例可提高基于reflink实现的虚拟机克隆、快照方案的性能,可有效提高虚拟化场景中虚拟机克隆、打快照的速度,同时又使得虚拟机的虚拟磁盘具有良好的读写性能,提高虚拟化产品的性能与竞争力。
下面对本申请实施例提供的一种请求处理装置进行介绍,下文描述的一种请求处理装置与上文描述的一种请求处理方法可以相互参照。
参见图3所示,本申请实施例公开了一种请求处理装置,包括:
接收模块301,用于接收reflink数据的修改请求;
修改模块302,用于将包括reflink数据的连续数据从磁盘读取至缓存,并根据修改请求对缓存中的reflink数据进行修改,得到新reflink数据;
存储模块303,用于在磁盘中为新reflink数据分配新地址,并将新reflink数据的缓存地址映射至新地址,以便根据修改请求的文件打开模式将新reflink数据存储至新地址,并将reflink共享树中reflink数据的引用计数减一。
在一种具体实施方式中,修改模块具体用于:
基于局部性原理将包括reflink数据的连续数据从磁盘读取至缓存。
在一种具体实施方式中,存储模块包括:
确定单元,用于根据修改请求中的模式标志位确定文件打开模式;
第一存储单元,用于若文件打开模式为direct模式,则将新reflink数据存储至新地址后,返回处理完成的通知消息。
在一种具体实施方式中,存储模块包括:
确定单元,用于根据修改请求中的模式标志位确定文件打开模式;
第二存储单元,用于若文件打开模式为非direct模式,则返回处理完成的通知消息,并将新reflink数据标记为脏数据,以便按照预设落盘机制将新reflink数据存储至新地址。
在一种具体实施方式中,预设落盘机制包括:周期性机制、内存回收机制和/或用户强制机制。
在一种具体实施方式中,还包括:
删除模块,用于若减一之后的引用计数等于一,则从reflink共享树中删除reflink数据所在的节点。
在一种具体实施方式中,还包括:
响应模块,用于若接收到连续数据中的其他数据的访问请求,则基于缓存中的其他数据响应访问请求。
在一种具体实施方式中,存储模块具体用于:
调用缓存接口解除所述缓存地址与所述reflink数据在所述磁盘中的原地址的映射关系,并建立所述缓存地址与所述新地址的映射关系。
其中,关于本实施例中各个模块、单元更加具体的工作过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
可见,本实施例提供了一种请求处理装置,能够减少reflink数据被修改时的写磁盘操作,降低写放大问题,同时可以提升后续操作的效率。
下面对本申请实施例提供的一种电子设备进行介绍,下文描述的一种电子设备与上文描述的一种请求处理方法及装置可以相互参照。
参见图4所示,本申请实施例公开了一种电子设备,包括:
存储器401,用于保存计算机程序;
处理器402,用于执行所述计算机程序,以实现上述任意实施例公开的方法。
下面对本申请实施例提供的一种可读存储介质进行介绍,下文描述的一种可读存储介质与上文描述的一种请求处理方法、装置及设备可以相互参照。
一种可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述实施例公开的请求处理方法。关于该方法的具体步骤可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本申请涉及的“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法或设备固有的其它步骤或单元。
需要说明的是,在本申请中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的可读存储介质中。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种请求处理方法,其特征在于,包括:
接收reflink数据的修改请求;
将包括所述reflink数据的连续数据从磁盘读取至缓存,并根据所述修改请求对所述缓存中的所述reflink数据进行修改,得到新reflink数据;
在所述磁盘中为所述新reflink数据分配新地址,并将所述新reflink数据的缓存地址映射至所述新地址,以便根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,并将reflink共享树中所述reflink数据的引用计数减一。
2.根据权利要求1所述的请求处理方法,其特征在于,所述将包括所述reflink数据的连续数据从磁盘读取至缓存,包括:
基于局部性原理将包括所述reflink数据的连续数据从磁盘读取至所述缓存。
3.根据权利要求1所述的请求处理方法,其特征在于,所述根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,包括:
根据所述修改请求中的模式标志位确定所述文件打开模式;
若所述文件打开模式为direct模式,则将所述新reflink数据存储至所述新地址后,返回处理完成的通知消息。
4.根据权利要求1所述的请求处理方法,其特征在于,所述根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,包括:
根据所述修改请求中的模式标志位确定所述文件打开模式;
若所述文件打开模式为非direct模式,则返回处理完成的通知消息,并将所述新reflink数据标记为脏数据,以便按照预设落盘机制将所述新reflink数据存储至所述新地址。
5.根据权利要求4所述的请求处理方法,其特征在于,所述预设落盘机制包括:周期性机制、内存回收机制和/或用户强制机制。
6.根据权利要求1所述的请求处理方法,其特征在于,所述将reflink共享树中所述reflink数据的引用计数减一之后,还包括:
若减一之后的所述引用计数等于一,则从所述reflink共享树中删除所述reflink数据所在的节点。
7.根据权利要求1至6任一项所述的请求处理方法,其特征在于,还包括:
若接收到所述连续数据中的其他数据的访问请求,则基于所述缓存中的所述其他数据响应所述访问请求。
8.根据权利要求1至6任一项所述的请求处理方法,其特征在于,所述将所述新reflink数据的缓存地址映射至所述新地址,包括:
调用缓存接口解除所述缓存地址与所述reflink数据在所述磁盘中的原地址的映射关系,并建立所述缓存地址与所述新地址的映射关系。
9.一种请求处理装置,其特征在于,包括:
接收模块,用于接收reflink数据的修改请求;
修改模块,用于将包括所述reflink数据的连续数据从磁盘读取至缓存,并根据所述修改请求对所述缓存中的所述reflink数据进行修改,得到新reflink数据;
存储模块,用于在所述磁盘中为所述新reflink数据分配新地址,并将所述新reflink数据的缓存地址映射至所述新地址,以便根据所述修改请求的文件打开模式将所述新reflink数据存储至所述新地址,并将reflink共享树中所述reflink数据的引用计数减一。
10.一种电子设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,以实现如权利要求1至8任一项所述的请求处理方法。
11.一种可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至8任一项所述的请求处理方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111621376.0A CN114327270B (zh) | 2021-12-23 | 2021-12-23 | 一种请求处理方法、装置、设备及可读存储介质 |
PCT/CN2022/122296 WO2023116109A1 (zh) | 2021-12-23 | 2022-09-28 | 一种请求处理方法、装置、设备及非易失性可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111621376.0A CN114327270B (zh) | 2021-12-23 | 2021-12-23 | 一种请求处理方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114327270A true CN114327270A (zh) | 2022-04-12 |
CN114327270B CN114327270B (zh) | 2023-09-15 |
Family
ID=81015498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111621376.0A Active CN114327270B (zh) | 2021-12-23 | 2021-12-23 | 一种请求处理方法、装置、设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114327270B (zh) |
WO (1) | WO2023116109A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116109A1 (zh) * | 2021-12-23 | 2023-06-29 | 郑州云海信息技术有限公司 | 一种请求处理方法、装置、设备及非易失性可读存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117193670B (zh) * | 2023-11-06 | 2024-01-30 | 之江实验室 | 一种清除缓存的方法、装置、存储介质以及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049222A (zh) * | 2012-12-28 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
CN108563401A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息***有限公司 | 一种ssd性能加速方法 |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
US10789001B1 (en) * | 2016-11-21 | 2020-09-29 | Innovium, Inc. | Posted operation data control |
CN112328427A (zh) * | 2020-10-12 | 2021-02-05 | 苏州浪潮智能科技有限公司 | 一种基于reflink的True CDP数据保护方案设计与实现方法 |
CN113254198A (zh) * | 2021-04-30 | 2021-08-13 | 南开大学 | 融合Linux虚拟内存***和文件***的持久性内存统一管理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101840362B (zh) * | 2009-10-28 | 2012-05-30 | 创新科存储技术有限公司 | 一种改进的写时拷贝快照的实现方法和装置 |
CN103729301B (zh) * | 2013-12-31 | 2016-08-17 | 北海市云盛科技有限公司 | 数据处理方法和装置 |
US10025806B2 (en) * | 2015-08-27 | 2018-07-17 | Vmware, Inc. | Fast file clone using copy-on-write B-tree |
CN112130760A (zh) * | 2020-09-04 | 2020-12-25 | 苏州浪潮智能科技有限公司 | 一种基于True CDP的数据写入方法、装置及介质 |
CN114327270B (zh) * | 2021-12-23 | 2023-09-15 | 郑州云海信息技术有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
-
2021
- 2021-12-23 CN CN202111621376.0A patent/CN114327270B/zh active Active
-
2022
- 2022-09-28 WO PCT/CN2022/122296 patent/WO2023116109A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103049222A (zh) * | 2012-12-28 | 2013-04-17 | 中国船舶重工集团公司第七0九研究所 | 一种raid5的写io优化处理方法 |
US10789001B1 (en) * | 2016-11-21 | 2020-09-29 | Innovium, Inc. | Posted operation data control |
CN108563401A (zh) * | 2018-03-27 | 2018-09-21 | 深圳忆联信息***有限公司 | 一种ssd性能加速方法 |
CN111125447A (zh) * | 2019-12-22 | 2020-05-08 | 北京浪潮数据技术有限公司 | 一种元数据访问方法、装置、设备及可读存储介质 |
CN112328427A (zh) * | 2020-10-12 | 2021-02-05 | 苏州浪潮智能科技有限公司 | 一种基于reflink的True CDP数据保护方案设计与实现方法 |
CN113254198A (zh) * | 2021-04-30 | 2021-08-13 | 南开大学 | 融合Linux虚拟内存***和文件***的持久性内存统一管理方法 |
Non-Patent Citations (2)
Title |
---|
周权彪;张兴军;梁宁静;霍文洁;董小社;: "基于缓存映射项重用距离的闪存地址映射方法", 计算机研究与发展, no. 05 * |
孙志卓;张全新;李元章;谭毓安;刘靖宇;马忠梅;: "连续数据存储中面向RAID5的写操作优化设计", 计算机研究与发展, no. 08 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023116109A1 (zh) * | 2021-12-23 | 2023-06-29 | 郑州云海信息技术有限公司 | 一种请求处理方法、装置、设备及非易失性可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023116109A1 (zh) | 2023-06-29 |
CN114327270B (zh) | 2023-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210349632A1 (en) | Memory system and method for controlling nonvolatile memory | |
US9921955B1 (en) | Flash write amplification reduction | |
CN106055431B (zh) | 基于快照在线回滚的数据备份与恢复的方法及装置 | |
US8909887B1 (en) | Selective defragmentation based on IO hot spots | |
JP2020046963A (ja) | メモリシステムおよび制御方法 | |
CN114327270A (zh) | 一种请求处理方法、装置、设备及可读存储介质 | |
CN106201335B (zh) | 存储*** | |
KR20100132244A (ko) | 메모리 시스템 및 메모리 시스템 관리 방법 | |
CN111984188B (zh) | 混合内存数据的管理方法、装置及存储介质 | |
CN108319430B (zh) | 处理io请求的方法及装置 | |
CN107341114B (zh) | 一种目录管理的方法、节点控制器和*** | |
JP2021033848A (ja) | メモリシステムおよび制御方法 | |
US20230359380A1 (en) | Memory system and method for controlling nonvolatile memory | |
CN110389712B (zh) | 数据写入方法及其装置、固态硬盘和计算机可读存储介质 | |
CN110955488A (zh) | 一种持久性内存的虚拟化方法及*** | |
US20230333779A1 (en) | Memory system with controller to write data to memory based on lifetime information in write command | |
CN115617542A (zh) | 内存交换方法、装置、计算机设备及存储介质 | |
CN111198845A (zh) | 一种数据迁移方法、可读存储介质及计算设备 | |
CN108664217B (zh) | 一种降低固态盘存储***写性能抖动的缓存方法及*** | |
CN110968266B (zh) | 一种基于热度的存储管理方法及*** | |
JPH04313126A (ja) | 分散ファイルシステムのファイル入出力方式 | |
US20170031601A1 (en) | Memory system and storage system | |
CN105765542B (zh) | 访问文件的方法、分布式存储***和存储节点 | |
JP4965456B2 (ja) | システムと共有バッファ内のストレージとの間でデータを転送する方法、システム、及びコンピュータ・プログラム(システムと共有バッファ内ストレージとの間のデータ転送) | |
CN108984432B (zh) | 一种处理io请求的方法及装置 |
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 |