CN110442535A - 提高分布式固态盘键值缓存系统可靠性的方法及系统 - Google Patents
提高分布式固态盘键值缓存系统可靠性的方法及系统 Download PDFInfo
- Publication number
- CN110442535A CN110442535A CN201910655375.4A CN201910655375A CN110442535A CN 110442535 A CN110442535 A CN 110442535A CN 201910655375 A CN201910655375 A CN 201910655375A CN 110442535 A CN110442535 A CN 110442535A
- Authority
- CN
- China
- Prior art keywords
- block
- state disk
- solid
- server
- 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.)
- Granted
Links
Classifications
-
- 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/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种提高分布式固态盘键值缓存系统可靠性的方法及系统,属于计算机存储领域,包括:写操作步骤,写入数据的同时缓存数据,将同一固态盘服务器的数据聚合为数据块,并执行纠删码编码得到条带,条带中一个校验块写入内存服务器,其余编码块写入不同的固态盘服务器;更新操作步骤,更新数据块,同时计算更新差值,利用更新差值更新内存服务器中的校验块,并将更新差值记录到日志中;以及降级读操作步骤,按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取条带内的其他编码块,并在成功获取到n个编码块时,解码得到丢失数据块。本发明能够提高分布式固态盘键值缓存系统的可靠性,并优化系统性能。
Description
技术领域
本发明属于计算机存储领域,更具体地,涉及一种提高分布式固态盘键值缓存系统可靠性的方法及系统。
背景技术
随着互联网的高速发展,满足海量数据的快速访问的这一需求变得越来越迫切,这对数据存储系统提出了更高的要求。传统的关系型数据库正面临着以下三个主要挑战:高性能、海量存储、可扩展性。受到上述问题的驱动,非关系型的数据库迅速发展,非关系型的数据库具有查找速度快、数据结构要求不严格、可扩展性强的特点。其中的键值存储数据库将数据按照键值对的形式进行组织、索引和存储,能够在海量数据中迅速定位所需数据,同时能够很好地存储非结构化数据和半结构化数据,适合不涉及过多数据关系业务的业务数据,通过分布式的方式,键值数据库也能方便快捷地进行扩展。
为提高系统性能,热门数据在存入键值数据库之前,会先缓存在分布式键缓存系统中,以减轻数据库的压力。分布式固态盘键值缓存系统主要以固态盘作为缓存数据的设备,相比于基于内存的分布式键值缓存系统,能够为大量数据提供相对较低成本的缓存服务,随着数据规模的增大,许多应用的数据规模已经达到了PB级甚至EB级,分布式固态盘键值缓存系统也获得了越来越广泛的应用。由于内存断电、系统崩溃、网络或电力故障和地震、海啸、飓风导致的数据中心的破坏等,分布式键值缓存系统中的数据永久丢失或者无法访问的现象已经越来越常见,缓存失效会导致数据库的负载极大增加,导致系统性能下降,甚至崩溃。因此,通过容错技术保证分布式键值缓存系统的可靠性有着重要的实际意义。
纠删码是大规模分布式存储系统中一种主要的容错技术,但目前,该技术仅用于为基于内存的分布式键值缓存系统提供可靠性保证,对于分布式固态盘键值缓存系统而言,仍缺乏数据可靠性保证。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种提高分布式固态盘键值缓存系统可靠性的方法及系统,其目的在于,提高分布式固态盘键值缓存系统的可靠性,并优化更新操作性能和降级读操作性能。
为实现上述目的,按照本发明的一个方面,提供了一种提高分布式固态盘键值缓存系统可靠性的方法,包括:写操作步骤、更新操作步骤以及降级读操作步骤;
写操作步骤包括:将数据写入固态盘服务器,同时在元数据服务器中进行缓存,以将位于同一固态盘服务器的数据聚合为数据块;选取n个位于不同固态盘服务器中的数据块,执行纠删码编码得到m个校验块后,将一个校验块写入内存服务器,并将其余的m-1个校验块分别写入不同的固态盘服务器,从而由所选取的数据块及所生成的校验块构成一个条带,并且该条带中各编码块位于不同的存储服务器中;
更新操作步骤包括:更新数据块,同时利用新数据块和原始数据块计算更新差值;获取被更新的数据块所在的条带,根据更新差值,通过纠删码计算更新该条带中位于内存服务器的校验块,并将更新差值记录到日志中;
降级读操作步骤包括:按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取丢失数据块所在条带内的其他编码块;若成功获取到至少n个编码块,则利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块,降级读操作成功;否则,降级读操作失败;
其中,n和m为纠删码的编码参数,分别表示执行纠删码编码所得的条带中数据块和校验块的数量,编码块为纠删码条带中的数据块或校验块,存储服务器为分布式固态盘键值缓存系统中的内存服务器或固态盘服务器。
本发明在写操作中,通过数据聚合并编码生成条带,使得在数据丢失时,能够根据条带中的其他块恢复丢失的数据块,为分布式固态盘键值缓存系统提供了可靠性;在更新操作中,仅实时更新内存服务器中的校验块,并将更新差值记录到日志中,能够减少更新数据块时对系统的读写次数,由此能够提高更新操作性能;在降级读操作中,优先读取数据块和内存服务器中的校验块,使得容单错的降级读操作无需读固态盘服务器中的校验块,也无需读日志,因此能够有效提升降级读操作的性能。总的来说,本发明能够提高分布式固态盘键值缓存系统的可靠性,并优化更新操作性能和降级读操作性能。
本发明利用日志记录更新差值,大大减少了对位于固态盘服务器中校验块的更新操作,因此,本发明能够减少对系统中固态盘服务器的读写次数,增加固态盘的使用寿命。
进一步地,降级读操作步骤中,利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块,包括:
若n个编码块中包含位于固态盘服务器的校验块,且该校验块不是最新的校验块,则根据日志记录的更新差值对该校验块进行更新,并利用更新之后的校验块连同所获取的其他编码块一起执行纠删码解码,以恢复得到丢失数据块;
否则,直接利用所获取的编码块执行纠删码解码,以恢复得到丢失数据块。
通过上述操作,能够在多个节点故障的情况下,保证正确地修复出丢失数据块。
进一步地,写操作步骤中,各条带中需要写入固态盘服务器的校验块以Round-Robin策略写入固态盘服务器,以避免纠删码校验块的读写不均衡性造成节点负载的不均衡。
进一步地,写操作步骤中,若执行纠删码编码所得到的校验块中,存在由同一条带中的数据块直接异或得到的校验块,则选取该校验块写入内存服务器;对于与数据块满足直接异或关系的校验块,利用该校验块执行纠删码解码以恢复丢失数据块时,计算更为简单;在本发明中,由于降级读操作中,内存服务器中的校验位会先于固态盘服务器中的校验块被读取,容单错的降级读操作仅需读取内存服务器中的校验块,将与数据块满足直接异或关系的校验块放置在内存节点中,能够进一步简化计算,从而提高降级读操作的性能。
进一步地,本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法,还包括:若日志大小超过预设的阈值,则根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录;通过控制日志大小,能够避免在需要利用固态盘服务器中的校验块完成降级读操作时,对该校验块的更新过于复杂而导致降级读操作耗时过长。
进一步地,本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法,还包括:在系统空闲时,根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录;利用系统空闲时间更新位于固态盘服务器中的校验块,能够在不影响系统其它操作的情况下,尽量保证固态盘服务器中的校验块是最新的,由此能够在需要利用固态盘服务器中的校验块完成降级读操作时,提高降级读操作的性能。
进一步地,本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法,还包括:按照预设的时间间隔,或按照预设的请求数量间隔,根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录;可以根据系统的负载,合理设置根据日志中的更新差值对校验块进行更新的时间间隔或数量间隔,使得校验块更新差值日志的提交高效而简洁。
按照本发明的另一个方面,提供了一种提高分布式固态盘键值缓存系统可靠性的系统,包括:写操作执行模块、更新操作执行模块以及降级读操作执行模块;
写操作执行模块,用于将数据写入固态盘服务器,同时在元数据服务器中进行缓存,以将位于同一固态盘服务器的数据聚合为数据块;选取n个位于不同固态盘服务器中的数据块,执行纠删码编码得到m个校验块后,将一个校验块写入内存服务器,并将其余的m-1个校验块分别写入不同的固态盘服务器,从而由所选取的数据块及所生成的校验块构成一个条带,并且该条带中各编码块位于不同的存储服务器中;
更新操作执行模块,用于更新数据块,同时利用新数据块和原始数据块计算更新差值;获取被更新的数据块所在的条带,根据更新差值,通过纠删码计算更新该条带中位于内存服务器的校验块,并将更新差值记录到日志中;
降级读操作执行模块,用于按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取丢失数据块所在条带内的其他编码块;并在成功获取到至少n个编码块时,利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块;
其中,n和m为纠删码的编码参数,分别表示执行纠删码编码所得的条带中数据块和校验块的数量,编码块为纠删码条带中的数据块或校验块,存储服务器为分布式固态盘键值缓存系统中的内存服务器或固态盘服务器。
总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法及系统,在写操作中,通过数据聚合并编码生成条带,使得在数据丢失时,能够根据条带中的其他块恢复丢失的数据块,为分布式固态盘键值缓存系统提供了可靠性;在更新操作中,仅实时更新内存服务器中的校验块,并将更新差值记录到日志中,能够减少更新数据块时对系统的读写次数,由此能够提高更新操作性能;在降级读操作中,优先读取数据块和内存服务器中的校验块,使得容单错的降级读操作无需读固态盘服务器中的校验块,也无需读日志,因此能够有效提升降级读操作的性能。总的来说,本发明能够提高分布式固态盘键值缓存系统的可靠性,并优化更新操作性能和降级读操作性能。
(2)本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法及系统,利用日志记录更新差值,大大减少了对位于固态盘服务器中校验块的更新操作,因此,本发明能够减少对系统中固态盘服务器的读写次数,增加固态盘的使用寿命。
(3)本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法及系统,在其优选方案中,将与条带内数据块满足直接异或关系的校验块,放置在内存服务器中,能够在容单错的降级读操作中进一步简化计算,从而提高降级读操作的性能。
附图说明
图1为现有的分布式固态盘键值缓存系统的示意图;
图2为本发明实施例提供的提高分布式固态盘键值缓存系统可靠性的方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
在详细解释本发明的技术方案之前,先对本发明所适用的分布式固态盘缓存系统的架构进行简单介绍;本发明所适用的分布式固态盘键值缓存系统如图1所示,包括元数据服务器、固态盘服务器和内存服务器,其中,元数据服务器为管理设备,固态盘服务器和内存服务器为存储设备,各存储设备可设置相应的日志设备。
纠删码是大规模分布式存储系统中的一种容错技术,利用多个数据块编码生成冗余的校验块;以纠删码RS(n,m)为例,执行纠删码编码后,一个条带上包含n个数据块、m个校验块。由于一个条带中的校验块是利用数据块编码得到的,在更新操作中,为了维护条带中数据块与校验块的编码关系,对数据块进行更新后,相应地也需要对校验块进行更新。当分布式存储系统中某个节点发生故障,导致数据块丢失后,丢失数据块不能直接读取,此时需要执行降级读操作,即读取同一条带内的其他数据块/校验块,并解码得到丢失的数据块。
为了提高分布式固态盘键值存储系统的存储可靠性,并提高更新操作性能和降级读操作性能,本发明所提供的提高分布式固态盘键值缓存系统可靠性的方法,包括:写操作步骤、更新操作步骤以及降级读操作步骤;
写操作步骤包括:将数据写入固态盘服务器,同时在元数据服务器中进行缓存,以将位于同一固态盘服务器的数据聚合为数据块;选取n个位于不同固态盘服务器中的数据块,执行纠删码编码得到m个校验块后,将一个校验块写入内存服务器,并将其余的m-1个校验块分别写入不同的固态盘服务器,从而由所选取的数据块及所生成的校验块构成一个条带,并且该条带中各编码块位于不同的存储服务器中;
在一个可选的实施方式中,写操作步骤中,各条带中需要写入固态盘服务器的校验块以Round-Robin策略写入固态盘服务器,以避免纠删码校验块的读写不均衡性造成节点负载的不均衡;应当说明的是,该写入策略仅为本发明的一种优选策略,不应理解为对本发明的唯一限定,在实际应用中,可以根据具体需求选用其他策略将校验块写入固态盘服务器中;
更新操作步骤包括:更新数据块,同时利用新数据块和原始数据块计算更新差值;获取被更新的数据块所在的条带,根据更新差值,通过纠删码计算更新该条带中位于内存服务器的校验块,并将更新差值记录到日志中;
在本实施例中,降级读操作步骤中,利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块,具体包括:
若n个编码块中包含位于固态盘服务器的校验块,且该校验块不是最新的校验块,则根据日志记录的更新差值对该校验块进行更新,并利用更新之后的校验块连同所获取的其他编码块一起执行纠删码解码,以恢复得到丢失数据块;
否则,直接利用所获取的编码块执行纠删码解码,以恢复得到丢失数据块;
通过上述操作,能够在多个节点故障的情况下,保证正确地修复出丢失数据块;
降级读操作步骤包括:按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取丢失数据块所在条带内的其他编码块;若成功获取到至少n个编码块,则利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块,降级读操作成功;否则,降级读操作失败;
其中,n和m为纠删码的编码参数,分别表示执行纠删码编码所得的条带中数据块和校验块的数量,编码块为纠删码条带中的数据块或校验块,存储服务器为分布式固态盘键值缓存系统中的内存服务器或固态盘服务器。
本发明在写操作中,通过数据聚合并编码生成条带,使得在数据丢失时,能够根据条带中的其他块恢复丢失的数据块,为分布式固态盘键值缓存系统提供了可靠性;在更新操作中,仅实时更新内存服务器中的校验块,并将更新差值记录到日志中,能够减少更新数据块时对系统的读写次数,由此能够提高更新操作性能;在降级读操作中,优先读取数据块和内存服务器中的校验块,使得容单错的降级读操作无需读固态盘服务器中的校验块,也无需读日志,因此能够有效提升降级读操作的性能。总的来说,本发明能够提高分布式固态盘键值缓存系统的可靠性,并优化更新操作性能和降级读操作性能。
本发明利用日志记录更新差值,大大减少了对位于固态盘服务器中校验块的更新操作,因此,本发明能够减少对系统中固态盘服务器的读写次数,增加固态盘的使用寿命。
在一个可选的实施方式中,写操作步骤中,若执行纠删码编码所得到的校验块中,存在由同一条带中的数据块直接异或得到的校验块,则选取该校验块写入内存服务器;
以RS(3,2)纠删码为例,根据原始的编码关系,同一条带中数据块与校验块满足如下关系:
其中,d1、d2和d3为数据块,p1和p2为校验块,MC为编码矩阵,其中的元素均为相应的系数;
对于与数据块满足直接异或关系的校验块,例如,若m41=m42=m43=1,则p1=d1+d2+d3,此时校验块p1与数据块d1、d2和d3满足直接异或的关系,当一个数据块丢失时,利用校验块p1与其他数据块通过简单的异或运算即可恢复出丢失的数据块;
在本发明中,由于降级读操作中,内存服务器中的校验位会先于固态盘服务器中的校验块被读取,容单错的降级读操作仅需读取内存服务器中的校验块,将与数据块满足直接异或关系的校验块放置在内存节点中,能够进一步简化计算,从而提高降级读操作的性能。
在一个可选的实施方式中,上述提高分布式固态盘键值缓存系统可靠性的方法,还可包括:若日志大小超过预设的阈值,则根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录;通过控制日志大小,能够避免在需要利用固态盘服务器中的校验块完成降级读操作时,对该校验块的更新过于复杂而导致降级读操作耗时过长。
在一个可选的实施方式中,上述提高分布式固态盘键值缓存系统可靠性的方法,还可包括:在系统空闲时,根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录;利用系统空闲时间更新位于固态盘服务器中的校验块,能够在不影响系统其它操作的情况下,尽量保证固态盘服务器中的校验块是最新的,由此能够在需要利用固态盘服务器中的校验块完成降级读操作时,提高降级读操作的性能。
在一个可选的实施方式中,上述提高分布式固态盘键值缓存系统可靠性的方法,还可包括:按照预设的时间间隔,或按照预设的请求数量间隔,根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录;可以根据系统的负载,合理设置根据日志中的更新差值对校验块进行更新的时间间隔或数量间隔,使得校验块更新差值日志的提交高效而简洁。
在一个可选的实施方式中,上述提高分布式固态盘键值缓存系统可靠性的方法,还可包括:直接向该分布式固态盘键值缓存系统发送命令,以根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录。
本发明还提供了一种提高分布式固态盘键值缓存系统可靠性的系统,用于执行上述提高分布式固态盘键值缓存系统可靠性的方法的各步骤,该系统包括:写操作执行模块、更新操作执行模块以及降级读操作执行模块;
写操作执行模块,用于将数据写入固态盘服务器,同时在元数据服务器中进行缓存,以将位于同一固态盘服务器的数据聚合为数据块;选取n个位于不同固态盘服务器中的数据块,执行纠删码编码得到m个校验块后,将一个校验块写入内存服务器,并将其余的m-1个校验块分别写入不同的固态盘服务器,从而由所选取的数据块及所生成的校验块构成一个条带,并且该条带中各编码块位于不同的存储服务器中;
更新操作执行模块,用于更新数据块,同时利用新数据块和原始数据块计算更新差值;获取被更新的数据块所在的条带,根据更新差值,通过纠删码计算更新该条带中位于内存服务器的校验块,并将更新差值记录到日志中;
降级读操作执行模块,用于按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取丢失数据块所在条带内的其他编码块;并在成功获取到至少n个编码块时,利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块;
其中,n和m为纠删码的编码参数,分别表示执行纠删码编码所得的条带中数据块和校验块的数量,编码块为纠删码条带中的数据块或校验块,存储服务器为分布式固态盘键值缓存系统中的内存服务器或固态盘服务器;
在发明实施例中,各模块的具体实施方式,可参考上述方法实施例中的描述,在此将不作复述。
应用实例:
如图2所示,以四个条带为例来进行说明,采用的纠删码为RS(n,m)=(3,2);在写操作中,经过聚合得到12个原始数据块A0、B0、C0、A1、B1、C1、A2、B2、C2、A3、B3、C3,执行纠删码编码后,利用数据块A0、B0、C0生成校验块P0、Q0,利用数据块A1、B1、C1生成校验块P1、Q1,利用数据块A2、B2、C2生成校验块P2、Q2,利用数据块A3、B3、C3生成校验块P3、Q3,由此形成4个条带;12个原始数据块与8个校验块中,每个条带中的一个校验块存储在内存服务器中,其余4个校验块和12个原始数据块一起均匀分布在固态盘服务器中;固态盘服务器中的校验块以Round-Robin策略写入固态盘服务器,以避免纠删码校验块的读写不均衡性造成节点负载的不均衡,具体各编码块(包括数据块和校验块)在分布式键值缓存系统中的分布如图2所示。
对B0、C0、A1执行更新操作,其中数据块B0和C0在同一个条带中,数据块A1单独在一个条带中;数据块A1在执行更新操作时,由数据块A1的更新差值△A1计算得到更新差值△Q11,然后用△Q11实时更新内存服务器中的校验块P1,并将更新差值△Q11写入日志设备中;数据块B0和C0在执行更新操作时,首先根据数据块B0的更新差值△B0计算更新差值△Q01,并根据数据块C0的更新差值△C0计算得到更新差值△Q02,然后用△Q01+△Q02更新P0,并将△Q01+△Q02写入日志设备中。
当A0、A1、A2、Q3所在的节点崩溃,其中的数据块丢失,读取A0操作失败,触发降级读操作,首先获取条带信息,即条带中的其他块B0、C0、Q0、P0,其中P0在内存中,B0、C0、Q0在固态盘中,因此读取B0、C0、P0,经过纠删码计算得到A0;在本应用实例中,若一个条带中有大于3个编码块读取成功时,降级读就能成功,当B0、C0、P0中有一个块由于各种原因读取失败,则读取Q0进行纠删码计算;若需读取Q0进行纠删码计算,即读取位于固态盘中的校验块时,需要检查该校验块是否为最新版本,若是,则直接执行纠删码解码,否则要读取日志设备中的差值对该校验块进行更新,并利用更新后的结果执行纠删码解码。
总体而言,本发明所提供的基于纠删码的可靠性方案,将纠删码引入系统为其提供可靠性,通过校验块日志和首块校验块聚集的方式,提升了系统的更新和降级读性能,同时延长了固态盘的寿命。实验表明,本发明所提供的基于纠删码的可靠性方案,相对于副本方案,能节省存储资源89%以上,相比于原始的纠删码方案,更新性能可提升50%以上,相比于原始纠删码方案,降级读性能可最多提升40%。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,包括:写操作步骤、更新操作步骤以及降级读操作步骤;
所述写操作步骤包括:将数据写入固态盘服务器,同时在元数据服务器中进行缓存,以将位于同一固态盘服务器的数据聚合为数据块;选取n个位于不同固态盘服务器中的数据块,执行纠删码编码得到m个校验块后,将一个校验块写入内存服务器,并将其余的m-1个校验块分别写入不同的固态盘服务器,从而由所选取的数据块及所生成的校验块构成一个条带,并且该条带中各编码块位于不同的存储服务器中;
所述更新操作步骤包括:更新数据块,同时利用新数据块和原始数据块计算更新差值;获取被更新的数据块所在的条带,根据所述更新差值,通过纠删码计算更新该条带中位于内存服务器的校验块,并将所述更新差值记录到日志中;
所述降级读操作步骤包括:按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取丢失数据块所在条带内的其他编码块;若成功获取到至少n个编码块,则利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块,降级读操作成功;否则,降级读操作失败;
其中,n和m为纠删码的编码参数,分别表示执行纠删码编码所得的条带中数据块和校验块的数量,编码块为纠删码条带中的数据块或校验块,存储服务器为分布式固态盘键值缓存系统中的内存服务器或固态盘服务器。
2.如权利要求1所述的提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,所述降级读操作步骤中,利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块,包括:
若n个编码块中包含位于固态盘服务器的校验块,且该校验块不是最新的校验块,则根据所述日志记录的更新差值对该校验块进行更新,并利用更新之后的校验块连同所获取的其他编码块一起执行纠删码解码,以恢复得到丢失数据块;
否则,直接利用所获取的编码块执行纠删码解码,以恢复得到丢失数据块。
3.如权利要求1或2所述的提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,所述写操作步骤中,各条带中需要写入固态盘服务器的校验块以Round-Robin策略写入固态盘服务器。
4.如权利要求1或2所述的提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,所述写操作步骤中,若执行纠删码编码所得到的校验块中,存在由同一条带中的数据块直接异或得到的校验块,则选取该校验块写入内存服务器。
5.如权利要求1或2所述的提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,还包括:若日志大小超过预设的阈值,则根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录。
6.如权利要求1或2所述的提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,还包括:在系统空闲时,根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录。
7.如权利要求1或2所述的提高分布式固态盘键值缓存系统可靠性的方法,其特征在于,还包括:按照预设的时间间隔,或按照预设的请求数量间隔,根据日志所记录的更新差值对位于固态盘服务器中的校验块进行更新,并在更新完成后,删除相应记录。
8.一种提高分布式固态盘键值缓存系统可靠性的系统,其特征在于,包括:写操作执行模块、更新操作执行模块以及降级读操作执行模块;
所述写操作执行模块,用于将数据写入固态盘服务器,同时在元数据服务器中进行缓存,以将位于同一固态盘服务器的数据聚合为数据块;选取n个位于不同固态盘服务器中的数据块,执行纠删码编码得到m个校验块后,将一个校验块写入内存服务器,并将其余的m-1个校验块分别写入不同的固态盘服务器,从而由所选取的数据块及所生成的校验块构成一个条带,并且该条带中各编码块位于不同的存储服务器中;
所述更新操作执行模块,用于更新数据块,同时利用新数据块和原始数据块计算更新差值;获取被更新的数据块所在的条带,根据所述更新差值,通过纠删码计算更新该条带中位于内存服务器的校验块,并将所述更新差值记录到日志中;
所述降级读操作执行模块,用于按照数据块、内存服务器中的校验块、固态盘服务器中的校验块的优先级顺序,依次获取丢失数据块所在条带内的其他编码块;并在成功获取到至少n个编码块时,利用所获取的n个编码块执行纠删码解码以恢复得到丢失数据块;
其中,n和m为纠删码的编码参数,分别表示执行纠删码编码所得的条带中数据块和校验块的数量,编码块为纠删码条带中的数据块或校验块,存储服务器为分布式固态盘键值缓存系统中的内存服务器或固态盘服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910655375.4A CN110442535B (zh) | 2019-07-19 | 2019-07-19 | 提高分布式固态盘键值缓存系统可靠性的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910655375.4A CN110442535B (zh) | 2019-07-19 | 2019-07-19 | 提高分布式固态盘键值缓存系统可靠性的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110442535A true CN110442535A (zh) | 2019-11-12 |
CN110442535B CN110442535B (zh) | 2021-06-11 |
Family
ID=68430928
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910655375.4A Active CN110442535B (zh) | 2019-07-19 | 2019-07-19 | 提高分布式固态盘键值缓存系统可靠性的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110442535B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176883A (zh) * | 2019-12-24 | 2020-05-19 | 中山大学 | 基于纠删码的闪存固态盘数据主动重构方法及读取方法 |
CN111400083A (zh) * | 2020-03-17 | 2020-07-10 | 上海七牛信息技术有限公司 | 数据存储方法及系统、存储介质 |
CN111831480A (zh) * | 2020-06-17 | 2020-10-27 | 华中科技大学 | 一种基于去重系统的分层编码方法、装置及去重系统 |
CN112799872A (zh) * | 2021-02-19 | 2021-05-14 | 上海交通大学 | 一种基于键值对存储系统的纠删码编码方法及装置 |
CN112799875A (zh) * | 2020-12-18 | 2021-05-14 | 苏州浪潮智能科技有限公司 | 基于高斯消元进行校验恢复的方法、系统、设备及介质 |
CN113258936A (zh) * | 2021-06-03 | 2021-08-13 | 成都信息工程大学 | 一种基于循环移位的双重编码的构造方法 |
CN114003174A (zh) * | 2021-11-01 | 2022-02-01 | 联想(北京)有限公司 | 一种纠删码存储方法、系统及电子设备 |
CN114138526A (zh) * | 2021-11-09 | 2022-03-04 | 华中科技大学 | 一种面向内存键值纠删码的混合数据更新方法及存储系统 |
CN114816837A (zh) * | 2022-06-28 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种纠删码融合方法、系统、电子设备及存储介质 |
CN118349188A (zh) * | 2024-06-14 | 2024-07-16 | 天津理工大学 | 一种基于非易失性存储的编码数据快速更新方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606629B1 (en) * | 2000-05-17 | 2003-08-12 | Lsi Logic Corporation | Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique |
CN102508733A (zh) * | 2011-09-22 | 2012-06-20 | 杭州华三通信技术有限公司 | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 |
US20150149819A1 (en) * | 2013-11-27 | 2015-05-28 | Electronics And Telecommunications Research Institute | Parity chunk operating method and data server apparatus for supporting the same in distributed raid system |
CN105930103A (zh) * | 2016-05-10 | 2016-09-07 | 南京大学 | 一种分布式存储ceph的纠删码覆盖写方法 |
US9535790B2 (en) * | 2014-01-31 | 2017-01-03 | Google Inc. | Prioritizing data reconstruction in distributed storage systems |
CN107728943A (zh) * | 2017-10-09 | 2018-02-23 | 华中科技大学 | 一种延迟产生校验光盘的方法及其对应的数据恢复方法 |
KR20180078337A (ko) * | 2013-06-09 | 2018-07-09 | 애플 인크. | 사용자 활동에 기초한 모바일 디바이스의 동적 조정 |
CN108536396A (zh) * | 2018-04-08 | 2018-09-14 | 华中科技大学 | 一种基于网络编码的存储扩展方法 |
CN109739436A (zh) * | 2018-12-19 | 2019-05-10 | 河南创新科信息技术有限公司 | Raid重构方法、存储介质和装置 |
CN109783016A (zh) * | 2018-12-25 | 2019-05-21 | 西安交通大学 | 一种分布式存储系统中的弹性多维度冗余方法 |
-
2019
- 2019-07-19 CN CN201910655375.4A patent/CN110442535B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6606629B1 (en) * | 2000-05-17 | 2003-08-12 | Lsi Logic Corporation | Data structures containing sequence and revision number metadata used in mass storage data integrity-assuring technique |
CN102508733A (zh) * | 2011-09-22 | 2012-06-20 | 杭州华三通信技术有限公司 | 一种基于磁盘阵列的数据处理方法及磁盘阵列管理器 |
KR20180078337A (ko) * | 2013-06-09 | 2018-07-09 | 애플 인크. | 사용자 활동에 기초한 모바일 디바이스의 동적 조정 |
US20150149819A1 (en) * | 2013-11-27 | 2015-05-28 | Electronics And Telecommunications Research Institute | Parity chunk operating method and data server apparatus for supporting the same in distributed raid system |
US9535790B2 (en) * | 2014-01-31 | 2017-01-03 | Google Inc. | Prioritizing data reconstruction in distributed storage systems |
CN105930103A (zh) * | 2016-05-10 | 2016-09-07 | 南京大学 | 一种分布式存储ceph的纠删码覆盖写方法 |
CN107728943A (zh) * | 2017-10-09 | 2018-02-23 | 华中科技大学 | 一种延迟产生校验光盘的方法及其对应的数据恢复方法 |
CN108536396A (zh) * | 2018-04-08 | 2018-09-14 | 华中科技大学 | 一种基于网络编码的存储扩展方法 |
CN109739436A (zh) * | 2018-12-19 | 2019-05-10 | 河南创新科信息技术有限公司 | Raid重构方法、存储介质和装置 |
CN109783016A (zh) * | 2018-12-25 | 2019-05-21 | 西安交通大学 | 一种分布式存储系统中的弹性多维度冗余方法 |
Non-Patent Citations (3)
Title |
---|
YINGXUN FU等: "Reconsidering Single Disk Failure Recovery for Erasure Coded Storage Systems: Optimizing Load Balancing in Stack-Level", 《IEEE TRANSACTIONS ON PARALLEL AND DISTRIBUTED SYSTEMS》 * |
王意洁等: "分布式存储中的纠删码容错技术研究", 《计算机学报》 * |
胡燏翀: "基于网络编码的分布式存储容错机制研究", 《中国博士学位论文全文数据库(信息科技辑)》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111176883B (zh) * | 2019-12-24 | 2022-05-20 | 中山大学 | 基于纠删码的闪存固态盘数据主动重构方法及读取方法 |
CN111176883A (zh) * | 2019-12-24 | 2020-05-19 | 中山大学 | 基于纠删码的闪存固态盘数据主动重构方法及读取方法 |
CN111400083A (zh) * | 2020-03-17 | 2020-07-10 | 上海七牛信息技术有限公司 | 数据存储方法及系统、存储介质 |
CN111400083B (zh) * | 2020-03-17 | 2024-02-23 | 上海七牛信息技术有限公司 | 数据存储方法及系统、存储介质 |
CN111831480A (zh) * | 2020-06-17 | 2020-10-27 | 华中科技大学 | 一种基于去重系统的分层编码方法、装置及去重系统 |
CN111831480B (zh) * | 2020-06-17 | 2024-04-19 | 华中科技大学 | 一种基于去重系统的分层编码方法、装置及去重系统 |
CN112799875A (zh) * | 2020-12-18 | 2021-05-14 | 苏州浪潮智能科技有限公司 | 基于高斯消元进行校验恢复的方法、系统、设备及介质 |
CN112799875B (zh) * | 2020-12-18 | 2023-01-06 | 苏州浪潮智能科技有限公司 | 基于高斯消元进行校验恢复的方法、系统、设备及介质 |
US12117905B2 (en) | 2020-12-18 | 2024-10-15 | Inspur Suzhou Intelligent Technology Co., Ltd. | Method and system for performing check recovery based on Gaussian elimination, device, and medium |
CN112799872A (zh) * | 2021-02-19 | 2021-05-14 | 上海交通大学 | 一种基于键值对存储系统的纠删码编码方法及装置 |
CN113258936B (zh) * | 2021-06-03 | 2021-10-15 | 成都信息工程大学 | 一种基于循环移位的双重编码的构造方法 |
CN113258936A (zh) * | 2021-06-03 | 2021-08-13 | 成都信息工程大学 | 一种基于循环移位的双重编码的构造方法 |
CN114003174A (zh) * | 2021-11-01 | 2022-02-01 | 联想(北京)有限公司 | 一种纠删码存储方法、系统及电子设备 |
CN114138526A (zh) * | 2021-11-09 | 2022-03-04 | 华中科技大学 | 一种面向内存键值纠删码的混合数据更新方法及存储系统 |
WO2023082556A1 (zh) * | 2021-11-09 | 2023-05-19 | 华中科技大学 | 一种面向内存键值纠删码的混合数据更新方法及存储系统 |
CN114816837A (zh) * | 2022-06-28 | 2022-07-29 | 苏州浪潮智能科技有限公司 | 一种纠删码融合方法、系统、电子设备及存储介质 |
CN118349188A (zh) * | 2024-06-14 | 2024-07-16 | 天津理工大学 | 一种基于非易失性存储的编码数据快速更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110442535B (zh) | 2021-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110442535A (zh) | 提高分布式固态盘键值缓存系统可靠性的方法及系统 | |
CN103944981B (zh) | 一种基于纠删码技术改进的云存储系统及实现方法 | |
US20140052706A1 (en) | Archival storage and retrieval system | |
CN110262922A (zh) | 基于副本数据日志的纠删码更新方法及系统 | |
US11093387B1 (en) | Garbage collection based on transmission object models | |
CN106775476A (zh) | 混合内存系统及其管理方法 | |
WO2019001521A1 (zh) | 数据存储方法、存储设备、客户端及系统 | |
CN103392167A (zh) | 分布式存储系统的缓存方法、节点和计算机可读介质 | |
CN106951340B (zh) | 一种基于局部性优先的rs纠删码数据布局方法及系统 | |
CN110427156B (zh) | 一种基于分片的mbr的并行读方法 | |
Shen et al. | Cross-rack-aware updates in erasure-coded data centers | |
US11449402B2 (en) | Handling of offline storage disk | |
CN109992204A (zh) | 数据存储方法及装置 | |
CN106788468A (zh) | 一种纠删码更新方法及装置,电子设备 | |
WO2023082556A1 (zh) | 一种面向内存键值纠删码的混合数据更新方法及存储系统 | |
CN110502188A (zh) | 一种基于数据库读写性能的数据存储方法与装置 | |
Xie et al. | MICRO: A multilevel caching-based reconstruction optimization for mobile storage systems | |
CN111444114B (zh) | 一种非易失性内存中数据的处理方法、装置及系统 | |
CN113031876B (zh) | 一种数据处理方法、装置、设备及可读存储介质 | |
US11841762B2 (en) | Data processing | |
CN116436962A (zh) | 面向dfs的全局聚合命名空间下跨计算节点的持久性缓存方法和装置 | |
CN115981559A (zh) | 分布式数据存储方法、装置、电子设备和可读介质 | |
Dong | Coop-u: a cooperative update scheme for erasure-coded storage systems | |
Subedi et al. | CoARC: co-operative, aggressive recovery and caching for failures in erasure coded hadoop | |
CN114153395A (zh) | 一种对象存储数据生命周期管理方法、装置及设备 |
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 |