CN109407985A - 一种数据管理的方法以及相关装置 - Google Patents
一种数据管理的方法以及相关装置 Download PDFInfo
- Publication number
- CN109407985A CN109407985A CN201811198300.XA CN201811198300A CN109407985A CN 109407985 A CN109407985 A CN 109407985A CN 201811198300 A CN201811198300 A CN 201811198300A CN 109407985 A CN109407985 A CN 109407985A
- Authority
- CN
- China
- Prior art keywords
- node
- subdata
- data
- memory
- service condition
- 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
- 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/061—Improving I/O performance
-
- 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/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种数据管理的方法,所述方法应用于存储系统,包括:从第一存储器中读取第一子数据;从第二存储器中读取第二子数据;根据所述第一子数据以及所述第二子数据生成目标数据;将所述目标数据写入至所述第一存储器中的目标节点。本申请实施例还公开了一种数据管理装置。本申请实施例中提供了一种方法,将原有的数据进行合并后一次写入,通过扩大一次写入节点的容量,实现同时写入多个节点的操作。既提升了写入的效率,又降低了读取的无用数据量。
Description
技术领域
本申请涉及数据管理技术领域,尤其涉及一种数据管理的方法以及相关装置。
背景技术
在人类生活中,随着互联网、云计算、物联网、大数据等技术的发展及广泛应用,每时每刻都在产生的海量数据需要进行处理和存储,因此对存储系统的性能提出了更高的要求。固态硬盘(solid state drives,SSD)因为其具有读写速度快、能耗低等特点,而被广泛的应用。由于SSD中的存储颗粒有寿命的限制,一般采用重删技术以及写时重定向(redirect on write,ROW)技术等技术,减少系统写入的次数和数据量,从而延长SSD的使用时间。
系统对固态硬盘执行输入/输出(input/output,I/O)操作时,系统端是以节点的形式将数据存储或读取。写入的数据的物理地址与逻辑地址之间的映射关系由一种特定的数据进行标识,该数据称为元数据。因此对元数据进行写入操作时,是同样采用的节点的方式。系统需要使用元数据对与元数据对应的数据进行重删处理以及写时重定向处理。
现有技术中,由于系统对数据进行存储或读取操作时,对数据的基本单位是单个节点,因此写入元数据时,同样采用节点的方式进行写入,通常节点的容量是8千字节(kilobyte,KB)每个。由于写入的节点容量较小,元数据写入效率低下,而仅增大节点的容量,又会使得读取数据时读放大更加严重的问题,读放大为系统读取节点中的有用数据时,需要读取该节点中的无用数据,当节点越大时,需要读取的无用数据量越大,降低数据读取的效率。
申请内容
本申请实施例提供了一种数据管理的方法以及相关装置,将原有的数据进行合并后一次写入,通过扩大一次写入节点的容量,实现同时写入多个节点的操作。既提升了写入的效率,又降低了读取的无用数据量。
有鉴于此,本申请第一方面提供了一种数据管理的方法,一种数据管理的方法,所述方法应用于存储系统,包括:
从第一存储器中读取第一子数据,其中,所述第一子数据位于第一子节点;
从第二存储器中读取第二子数据,其中,所述第二子数据位于第二子节点;
根据所述第一子数据以及所述第二子数据生成目标数据;
将所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址。
结合本申请实施例的第一方面,在第一方面的第一种可能的实现方式中,所述将所述目标数据写入至所述第一存储器中的所述目标节点之前,所述方法还包括:
读取第三子数据以及第四子数据;
所述根据所述第一子数据以及所述第二子数据生成目标数据,包括:
根据所述第一子数据、所述第二子数据、所述第三子数据以及所述第四子数据生成所述目标数据;
所述将所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址,包括:
所述将所述目标数据写入至所述第一存储器中的所述目标节点,其中,所述目标节点包含四个子节点,每个子节点分别存储不同的子数据,且所述四个子节点对应于相同的逻辑地址。
结合本申请实施例的第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述目标节点中四个子节点分别对应的键值对Key/Value为有序序列。
结合本申请实施例的第一方面至第一方面的第二种可能的实现方式中的任一种实现方式,在第一方面的第三种可能的实现方式中,所述将所述目标数据写入至所述第一存储器中的所述目标节点之后,所述方法还包括:
生成所述目标节点对应的使用情况标识,其中,所述使用情况标识用于标记节点的使用情况;
若生成的所述使用情况标识为不可使用标识,则所述节点为无效节点,其中,所述无效节点中的数据为可读数据,所述无效节点不可写入数据;
若生成的所述使用情况标识为可用标识,则所述目标节点为有效节点,其中,所述有效节点可写入数据。
结合本申请实施例的第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将所述目标数据写入至所述第一存储器中的目标节点之前,所述方法还包括:
遍历所述第一存储器中的节点的所述使用情况标识,包括:
若查找到节点的所述使用情况标识为所述可用标识时,所述节点为所述有效节点,向所述节点写入所述目标数据;
若查找到节点的所述使用情况标识为所述不可使用标识时,继续查找所述第一存储器中余下节点的所述使用情况标识,直至查找到所述使用情况标识为所述可用标识的节点。
本申请第二方面提供了一种数据管理装置,所述数据管理装置包括:
读取模块,用于从第一存储器中读取第一子数据,其中,所述第一子数据位于第一子节点;
所述读取模块,还用于从第二存储器中读取第二子数据,其中,所述第二子数据位于第二子节点;
生成模块,用于根据所述读取模块读取到的所述第一子数据以及所述第二子数据生成目标数据;
写入模块,用于将所述生成模块生成的所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址。
结合本申请实施例的第二方面,在第二方面的第一种可能的实现方式中,提供了一种数据管理装置,包括:
所述读取模块,还用于读取第三子数据以及第四子数据;
所述生成模块,用于所述根据所述读取模块读取到的所述第一子数据以及所述第二子数据生成目标数据,包括:
所述生成模块,还用于根据所述读取模块读取到的所述第一子数据、所述第二子数据、所述第三子数据以及所述第四子数据生成所述目标数据;
所述写入模块,用于所述将所述生成模块生成的所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址,包括:
所述写入模块,还用于将所述生成模块生成的所述目标数据写入至所述第一存储器中的所述目标节点,其中,所述目标节点包含四个子节点,每个子节点分别存储不同的子数据,且所述四个子节点对应于相同的逻辑地址。
结合本申请实施例的第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,提供了一种数据管理装置,包括:
所述目标节点中四个子节点分别对应的键值对Key/Value为有序序列。
结合本申请实施例的第二方面至第一方面的第二种可能的实现方式中的任一种实现方式,在第二方面的第三种可能的实现方式中,提供了一种数据管理装置,包括:
所述生成模块,还用于生成所述目标节点对应的使用情况标识,其中,所述使用情况标识用于标记节点的使用情况;
若生成的所述使用情况标识为不可使用标识,则所述节点为无效节点,其中,所述无效节点中的数据为可读数据,所述无效节点不可写入数据;
若生成的所述使用情况标识为可用标识,则所述目标节点为有效节点,其中,所述有效节点可写入数据。
结合本申请实施例的第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,提供了一种数据管理装置,包括:
遍历模块,用于遍历所述第一存储器中的节点的所述使用情况标识,包括:
所述遍历模块,具体用于若查找到节点的所述使用情况标识为所述可用标识时,所述节点为所述有效节点,向所述节点写入所述目标数据;
所述遍历模块,具体用于若查找到节点的所述使用情况标识为所述不可使用标识时,继续查找所述第一存储器中余下节点的所述使用情况标识,直至查找到所述使用情况标识为所述可用标识的节点。
从以上技术方案可以看出,本申请实施例具有以下优点:
本申请实施例提供了一种数据管理的方法以及相关装置,通过上述方式,将原有的数据进行合并后一次写入,通过扩大一次写入节点的容量,实现同时写入多个节点的操作。既提升了写入的效率,又降低了读取的无用数据量。
附图说明
图1为本申请实施例中存储系统的结构组成示意图;
图2为本申请实施例中数据管理的方法的一个实施例示意图;
图3为本申请实施例中数据管理装置的一个实施例示意图;
图4为本申请实施例中数据管理装置的另一个实施例示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请实施例提供了一种数据管理的方法以及相关装置,通过上述方式,将原有的数据进行合并后一次写入,通过扩大一次写入节点的容量,实现同时写入多个节点的操作。既提升了写入的效率,又降低了读取的无用数据量。
应理解,本申请主要应用于存储系统中,为了便于理解,请参阅图1,图1为本申请实施例中存储系统的结构组成示意图:
如图1所示,本申请主要应用于存储系统中,该存储系统可运行于如下软件环境中如:Windows系统中的HPFS文件系统,Mac系统中的HFS、HFS+文件系统,Linux系统中的ResiserFS、XFS、Ext3FS以及JFS文件系统,数据库中的ORACLE,MYSQL以及SQLSERVER等。
该存储系统主要由内存与磁盘组成,其中,内存类型可以包括双倍速率同步动态随机存储器(double data rate,DDR)、DDR2、DDR3、DDR4以及未来即将面世的DDR5,磁盘的类型主要为固态硬盘(solid state drives,SSD),SSD的存储颗粒类型为与非型闪存颗粒(not and flash,Nand Flash),根据SSD中存储颗粒类型的分类,本申请可以应用的与非型闪存颗粒还可以分为单层式存储单元(single-level cell,SLC)、多层式存储单元(multi-level cell,MLC)以及三层式存储单元(trinary-level cell,TLC),此处不对与非型闪存颗粒的类型作限定。本申请既可以应用于有多个与非型闪存颗粒组成的SSD中,也可以应用于由多个SSD组成的磁盘阵列(redundant arrays of independent drives,RAID)中,此处不作限定。
由于SSD中的存储颗粒有寿命的限制,一般采用重删技术以及压缩技术等技术手段,减少系统数据的写入次数和数据写入的数据量,从而延长SSD的寿命。在使用重删技术与压缩技术时,会产生目标数据对应的元数据,元数据的类型多种多样,用于表示对应数据的特性,如逻辑地址到物理地址的映射关系以及进行重删操作后的对应于数据的哈希值(hash)等。当元数据的类型为逻辑地址到物理地址的映射关系,此时的含义如下:当系统往逻辑地址A写入一段长度为L的数据后,存储于磁盘的地址可能是以物理地址B为起始的长度为M的数据段。地址与长度(A,L)映射到(B,M)的记录称为元数据,即整个逻辑地址到物理地址的映射称为元数据。
由于元数据为索引数据的关键部分,因此在数据管理中起着至关重要的作用,元数据管理成为影响整个存储系统整体性能的关键部分。但是元数据的大小与对应的数据量成正比关系,当对应的数据量很大时,内存无法提供足够的空间供存储系统存放元数据,因此存储系统必须具备将元数据存放于磁盘,支持磁盘与内存之间元数据换入换出,以及磁盘中元数据与内存中元数据合并的能力。当元数据在内存中达到一定阈值需要下刷到磁盘时,如果元数据下刷磁盘的速度不够会导致内存的存储资源不能够及时释放,当内存资源耗尽时会导致系统处理I/O的能力严重下降,甚至导致系统宕机。如何提高内存元数据刷盘速度,如何处理内存元数据与磁盘元数据的关系,关系整个存储系统的性能。
下面对本申请中数据管理的方法进行解释,请参阅图2,图2为本申请实施例中数据管理的方法的一个实施例示意图,包括:
101、从第一存储器中读取第一子数据;
本实施例中,当存储系统从第一存储器中读取数据,该数据可以为元数据,称为第一子数据,第一存储器为磁盘。
102、从第二存储器中读取第二子数据;
本实施例中,存储系统从第二存储器中读取数据,该数据可以为元数据,该数据称为第二子数据,第二存储器为内存。
其中步骤101与步骤102之间没有时序上的限定,既可以先从第一存储器中读取数据,再从第二存储器中读取数据,也可以先从第二存储器中读取数据,再从第一存储器中读取数据,此处不作限定。当内存中数据量达到预设的阈值时触发步骤101或步骤102的动作,一般情况下,该预设的阈值为200兆字节(mbyte,MB),也可以根据实际情况确定最优值。
103、根据第一子数据以及第二子数据生成目标数据;
本实施例中,当第一子数据与第二子数据为元数据时,由于元数据在内存与硬盘中以B+树的形式组织,因此以第一子数据以及第二子数据合并生成新的目标数据,该目标数据为以B+树形式组织的数据,第一子数据与第二子数据以独立子节点的形式组成该目标数据。
其中,B+树是一种树数据结构,是一个n叉排序树,每个节点通常有多个孩子,一棵B+树包含根节点、内部节点和叶子节点。根节点可能是一个叶子节点,也可能是一个包含两个或两个以上孩子节点的节点。
104、将目标数据写入至第一存储器中的目标节点。
本实施例中,在存储系统根据第一子数据以及第二子数据生成了目标数据之后,将该目标数据写入至第一存储器中的目标节点,其中,目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且至少两个子节点对应于相同的逻辑地址。
本申请实施例中,首先从第一存储器中读取第一子数据以及从第二存储器中读取第二子数据,其次,根据第一子数据以及第二子数据生成目标数据,再次,将目标数据写入至第一存储器中的目标节点。通过上述方式,将原有的数据进行合并后一次写入,通过扩大一次写入节点的容量,实现同时写入多个节点的操作。既提升了写入的效率,又降低了读取的无用数据量。
可选地,在图2对应的本申请实施例中提供的第一种数据管理的方法的基础上,本申请实施例提供的第二种数据管理的方法的实施例中,将目标数据写入至第一存储器中的目标节点之前,方法还包括:
读取第三子数据以及第四子数据;
根据第一子数据以及第二子数据生成目标数据,包括:
根据第一子数据、第二子数据、第三子数据以及第四子数据生成目标数据;
将目标数据写入至第一存储器中的目标节点,其中,目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且至少两个子节点对应于相同的逻辑地址,包括:
将目标数据写入至第一存储器中的目标节点,其中,目标节点包含四个子节点,每个子节点分别存储不同的子数据,且四个子节点对应于相同的逻辑地址。
本实施例中,存储系统在读取来源于第一存储器的第一子数据以及来源于第二存储器的第二子数据之外,存储系统还可以读取第三子数据以及第四子数据,第三子数据以及第四子数据的来源既可以都来源于第一存储器,也可以来源于第二存储器,还可以是一个子数据来源于第一存储器,另一个来源于第二存储器,此处不做限定。
存储系统在读取到这四个子数据之后,根据这四个子数据生成目标数据,目标数据的组成方式为B+树结构,每一个子数据在目标数据中均是一个子节点,存储系统在生成了目标数据后,将该目标数据写入第一存储器中的目标节点,在第一存储器的目标节点中,组成的目标数据这四个子数据依旧以独立子节点形式存储,每个独立的子节点中存储着对应的子数据,这四个独立的子节点之间以指针的形式相互联系,每个独立的子节点中存在标记该子节点属于目标节点的指针,组成目标数据的四个子节点写入的逻辑地址相同。
其中,当每一个子节点占用的存储空间为8KB时,该目标节点占用的存储空间为32KB。
本申请实施例中,提出了一种数据管理的方法,进一步地扩大一次写入节点的容量,实现同时写入多个节点的操作。由于每个写入的子节点都是独立存储的,因此既提升了写入的效率,又降低了读取的无用数据量。
可选地,在图2对应的本申请实施例中提供的第二种数据管理的方法的基础上,本申请实施例提供的第三种数据管理的方法的实施例中,目标节点中四个子节点分别对应的键值对Key/Value为有序序列。
本实施例中,每一个子数据对应的子节点都有标识本身信息的键值对Key/Value,简称K/V对。由于每一个子数据存储于对应的存储器时,存储的基本单位也是子节点,每一个子数据对应一个子节点,存储系统选择需要读取的子数据的方式为,选择K/V对呈有序序列的四个子节点读取,并读取该四个子节点对应的子数据。采用的方法为并归排序,具体如下:首先对比的是子节点包含的K/V对中的Key值,依次选择Key值最小的子节点读取数据,当遇到Key值相同的子节点时,再选择Key值相同的子节点中Value值最小的子节点进行读取,由读取的顺序决定在目标节点中存储的顺序,直至组成由4个子数据构成的目标数据时结束。
本申请实施例中,提供了一种根据Key/Value选择目标数据中子数据的方法,采用并归排序组成目标数据,使得写入至第一存储器中的目标数据中各个子节点可以以B+树的形式组织数据,提升了生成目标数据的效率,提升了方案的可行性。
可选地,在图2对应的本申请实施例中提供的第一种数据管理的方法至第三种数据管理的方法中任一种方法的基础上,本申请实施例提供的第四种数据管理的方法的实施例中,将目标数据写入至第一存储器中的目标节点之后,方法还包括:
生成目标节点对应的使用情况标识,其中,使用情况标识用于标记节点的使用情况;
若生成的使用情况标识为不可使用标识,则节点为无效节点,其中,无效节点中的数据为可读数据,无效节点不可写入数据;
若生成的使用情况标识为可用标识,则目标节点为有效节点,其中,有效节点可写入数据。
本实施例中,将目标数据写入至第一存储器的目标节点后,可生成标识该目标节点的使用情况标识,若目标数据中包含有有效的数据,则生成的标识为不可使用标识,不可使用标识用于标记目标节点为无效节点,该目标节点中的数据为可读数据。若目标数据中不包含有效的数据,即写入空(null),则生成的标识为可用标识,可用标识用于标识该目标节点为有效节点,该目标节点可以写入数据。
本申请实施例中,提供了一种标记节点的方法,当目标数据中包含有有效的数据时,标记存储有目标数据的目标节点为无效节点,在后续的写入操作中,当查找到该目标节点存在不可使用标识时,不对该目标节点进行写入操作,防止因写入操作引起的数据丢失情况的发生。当目标数据中不包含有效的数据时,标记存储有目标数据的目标节点为有效节点,在后续的写入操作中,当查找到该目标节点存在可用标识时,可对该目标节点进行写入操作,释放该目标节点占用的存储空间。
可选地,在图2对应的本申请实施例中提供的第四种数据管理的方法的基础上,本申请实施例中提供的第五种数据管理的方法中,将目标数据写入至第一存储器中的目标节点之前,方法还包括:
遍历第一存储器中的节点的使用情况标识,包括:
若查找到节点的使用情况标识为可用标识时,节点为有效节点,向节点写入目标数据;
若查找到节点的使用情况标识为不可使用标识时,继续查找第一存储器中余下节点的使用情况标识,直至查找到使用情况标识为可用标识的节点。
本实施例中,存储系统在将目标数据写入至第一存储器中的目标节点之前,首先遍历第一存储器中的所有节点的使用情况标识,避免写入至无效节点中,当遍历的过程中查找到节点中使用情况标识为可用标识时,该节点为有效节点,可以写入目标数据,当遍历的过程中查找到节点中使用情况标识为不可使用标识时,继续查找第一存储器中余下未查找的节点的使用情况标识,直至查找到使用情况标识为可用标识的节点。
本申请实施例中,提供了一种方法,在写入目标数据之前,对第一存储器中所有节点的使用情况标识进行查找的方法,避免了向存储有有效数据的节点进行数据写入情况的发生,防止了原有存储数据丢失以及写入目标数据失败情况的发送,提升了数据的安全性。
下面对本申请中数据管理装置进行详细描述,请参阅图3,图3为本申请实施例中数据管理装置的一个实施例示意图,本申请实施例提供的数据管理装置20的第一种可选实施例中,数据管理装置20包括:
读取模块201,用于从第一存储器中读取第一子数据,其中,第一子数据位于第一子节点;
读取模块201,还用于从第二存储器中读取第二子数据,其中,第二子数据位于第二子节点;
生成模块202,用于根据读取模块201读取到的第一子数据以及第二子数据生成目标数据;
写入模块203,用于将生成模块202生成的目标数据写入至第一存储器中的目标节点,其中,目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且至少两个子节点对应于相同的逻辑地址。
本实施例中,读取模块201,用于从第一存储器中读取第一子数据,其中,第一子数据位于第一子节点;读取模块201,还用于从第二存储器中读取第二子数据,其中,第二子数据位于第二子节点;生成模块202,用于根据读取模块201读取到的第一子数据以及第二子数据生成目标数据;写入模块203,用于将生成模块202生成的目标数据写入至第一存储器中的目标节点,其中,目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且至少两个子节点对应于相同的逻辑地址。
本申请实施例中,首先从第一存储器中读取第一子数据以及从第二存储器中读取第二子数据,其次,根据第一子数据以及第二子数据生成目标数据,再次,将目标数据写入至第一存储器中的目标节点。通过上述方式,将原有的数据进行合并后一次写入,通过扩大一次写入节点的容量,实现同时写入多个节点的操作。既提升了写入的效率,又降低了读取的无用数据量。
可选地,在上述图3对应的数据管理装置20的第一种可选实施例的基础上,本申请实施例提供的数据管理装置20的第二种可选实施例中,数据管理装置20包括:
读取模块201,还用于读取第三子数据以及第四子数据;
生成模块202,用于根据读取模块201读取到的第一子数据以及第二子数据生成目标数据,包括:
生成模块202,还用于根据读取模块201读取到的第一子数据、第二子数据、第三子数据以及第四子数据生成目标数据;
写入模块203,用于将生成模块202生成的目标数据写入至第一存储器中的目标节点,其中,目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且至少两个子节点对应于相同的逻辑地址,包括:
写入模块203,还用于将生成模块202生成的目标数据写入至第一存储器中的目标节点,其中,目标节点包含四个子节点,每个子节点分别存储不同的子数据,且四个子节点对应于相同的逻辑地址。
本申请实施例中,提出了一种数据管理的方法,进一步地扩大一次写入节点的容量,实现同时写入多个节点的操作。由于每个写入的子节点都是独立存储的,因此既提升了写入的效率,又降低了读取的无用数据量。
可选地,在上述图3对应的数据管理装置20的第二种可选实施例的基础上,本申请实施例提供的数据管理装置20的第三种可选实施例中,数据管理装置20包括:
目标节点中四个子节点分别对应的键值对Key/Value为有序序列。
本申请实施例中,提供了一种根据Key/Value选择目标数据中子数据的方法,采用并归排序组成目标数据,使得写入至第一存储器中的目标数据中各个子节点可以以B+树的形式组织数据,提升了生成目标数据的效率,提升了方案的可行性。
可选地,在图3对应的本申请实施例中提供的数据管理装置20的第一种可选实施例至第三种可选实施例中任一种可选实施例的基础上,本申请实施例提供的数据管理装置20的第四种可选实施例中,数据处理装置20包括:
生成模块201,还用于生成目标节点对应的使用情况标识,其中,使用情况标识用于标记节点的使用情况;
若生成的使用情况标识为不可使用标识,则节点为无效节点,其中,无效节点中的数据为可读数据,无效节点不可写入数据;
若生成的使用情况标识为可用标识,则目标节点为有效节点,其中,有效节点可写入数据。
本申请实施例中,提供了一种标记节点的方法,当目标数据中包含有有效的数据时,标记存储有目标数据的目标节点为无效节点,在后续的写入操作中,当查找到该目标节点存在不可使用标识时,不对该目标节点进行写入操作,防止因写入操作引起的数据丢失情况的发生。当目标数据中不包含有效的数据时,标记存储有目标数据的目标节点为有效节点,在后续的写入操作中,当查找到该目标节点存在可用标识时,可对该目标节点进行写入操作,释放该目标节点占用的存储空间。
可选地,在上述图3对应的数据管理装置20的第四种可选实施例的基础上,请参阅图4,图4为本申请实施例中数据管理装置的另一个实施例示意图,本申请实施例提供的数据管理装置20的第五种可选实施例中,数据管理装置20包括:
遍历模块204,用于遍历第一存储器中的节点的使用情况标识,包括:
遍历模块204,具体用于若查找到节点的使用情况标识为可用标识时,节点为有效节点,向节点写入目标数据;
遍历模块204,具体用于若查找到节点的使用情况标识为不可使用标识时,继续查找第一存储器中余下节点的使用情况标识,直至查找到使用情况标识为可用标识的节点。
本申请实施例中,提供了一种方法,在写入目标数据之前,对第一存储器中所有节点的使用情况标识进行查找的方法,避免了向存储有有效数据的节点进行数据写入情况的发生,防止了原有存储数据丢失以及写入目标数据失败情况的发送,提升了数据的安全性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种数据管理的方法,其特征在于,所述方法应用于存储系统,所述方法包括:
从第一存储器中读取第一子数据,其中,所述第一子数据位于第一子节点;
从第二存储器中读取第二子数据,其中,所述第二子数据位于第二子节点;
根据所述第一子数据以及所述第二子数据生成目标数据;
将所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标数据写入至所述第一存储器中的所述目标节点之前,所述方法还包括:
读取第三子数据以及第四子数据;
所述根据所述第一子数据以及所述第二子数据生成目标数据,包括:
根据所述第一子数据、所述第二子数据、所述第三子数据以及所述第四子数据生成所述目标数据;
所述将所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址,包括:
所述将所述目标数据写入至所述第一存储器中的所述目标节点,其中,所述目标节点包含四个子节点,每个子节点分别存储不同的子数据,且所述四个子节点对应于相同的逻辑地址。
3.根据权利要求2所述的方法,其特征在于,所述目标节点中四个子节点分别对应的键值对Key/Value为有序序列。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述将所述目标数据写入至所述第一存储器中的所述目标节点之后,所述方法还包括:
生成所述目标节点对应的使用情况标识,其中,所述使用情况标识用于标记节点的使用情况;
若生成的所述使用情况标识为不可使用标识,则所述节点为无效节点,其中,所述无效节点中的数据为可读数据,所述无效节点不可写入数据;
若生成的所述使用情况标识为可用标识,则所述目标节点为有效节点,其中,所述有效节点可写入数据。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标数据写入至所述第一存储器中的目标节点之前,所述方法还包括:
遍历所述第一存储器中的节点的所述使用情况标识,包括:
若查找到节点的所述使用情况标识为所述可用标识时,所述节点为所述有效节点,向所述节点写入所述目标数据;
若查找到节点的所述使用情况标识为所述不可使用标识时,继续查找所述第一存储器中余下节点的所述使用情况标识,直至查找到所述使用情况标识为所述可用标识的节点。
6.一种数据管理装置,其特征在于
读取模块,用于从第一存储器中读取第一子数据,其中,所述第一子数据位于第一子节点;
所述读取模块,还用于从第二存储器中读取第二子数据,其中,所述第二子数据位于第二子节点;
生成模块,用于根据所述读取模块读取到的所述第一子数据以及所述第二子数据生成目标数据;
写入模块,用于将所述生成模块生成的所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址。
7.根据权利要求6所述的数据管理装置,其特征在于
所述读取模块,还用于读取第三子数据以及第四子数据;
所述生成模块,用于所述根据所述读取模块读取到的所述第一子数据以及所述第二子数据生成目标数据,包括:
所述生成模块,还用于根据所述读取模块读取到的所述第一子数据、所述第二子数据、所述第三子数据以及所述第四子数据生成所述目标数据;
所述写入模块,用于所述将所述生成模块生成的所述目标数据写入至所述第一存储器中的目标节点,其中,所述目标节点包含至少两个子节点,每个子节点分别存储不同的子数据,且所述至少两个子节点对应于相同的逻辑地址,包括:
所述写入模块,还用于将所述生成模块生成的所述目标数据写入至所述第一存储器中的所述目标节点,其中,所述目标节点包含四个子节点,每个子节点分别存储不同的子数据,且所述四个子节点对应于相同的逻辑地址。
8.根据权利要求7所述的数据管理装置,其特征在于,所述目标节点中四个子节点分别对应的键值对Key/Value为有序序列。
9.根据权利要求6至8中任一项所述的数据管理装置,其特征在于,
所述生成模块,还用于生成所述目标节点对应的使用情况标识,其中,所述使用情况标识用于标记节点的使用情况;
若生成的所述使用情况标识为不可使用标识,则所述节点为无效节点,其中,所述无效节点中的数据为可读数据,所述无效节点不可写入数据;
若生成的所述使用情况标识为可用标识,则所述目标节点为有效节点,其中,所述有效节点可写入数据。
10.根据权利要求9所述的数据管理装置,其特征在于,
遍历模块,用于遍历所述第一存储器中的节点的所述使用情况标识,包括:
所述遍历模块,具体用于若查找到节点的所述使用情况标识为所述可用标识时,所述节点为所述有效节点,向所述节点写入所述目标数据;
所述遍历模块,具体用于若查找到节点的所述使用情况标识为所述不可使用标识时,继续查找所述第一存储器中余下节点的所述使用情况标识,直至查找到所述使用情况标识为所述可用标识的节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811198300.XA CN109407985B (zh) | 2018-10-15 | 2018-10-15 | 一种数据管理的方法以及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811198300.XA CN109407985B (zh) | 2018-10-15 | 2018-10-15 | 一种数据管理的方法以及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109407985A true CN109407985A (zh) | 2019-03-01 |
CN109407985B CN109407985B (zh) | 2022-02-18 |
Family
ID=65467224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811198300.XA Active CN109407985B (zh) | 2018-10-15 | 2018-10-15 | 一种数据管理的方法以及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109407985B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113076068A (zh) * | 2021-04-27 | 2021-07-06 | 哈尔滨工业大学(深圳) | 一种数据存储方法、装置、电子设备及可读存储介质 |
CN113448490A (zh) * | 2020-03-25 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于存储的方法、设备和计算机程序产品 |
CN113670293A (zh) * | 2021-08-11 | 2021-11-19 | 追觅创新科技(苏州)有限公司 | 地图构建方法及装置 |
CN113867627A (zh) * | 2021-08-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种存储系统性能优化方法及系统 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949223A (zh) * | 2006-12-01 | 2007-04-18 | 金蝶软件(中国)有限公司 | 一种联机分析处理系统中多维数据读写的方法和装置 |
US20110126045A1 (en) * | 2007-03-29 | 2011-05-26 | Bennett Jon C R | Memory system with multiple striping of raid groups and method for performing the same |
CN102662724A (zh) * | 2012-03-15 | 2012-09-12 | 华为技术有限公司 | 设备初始化的方法、装置及系统 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN103810237A (zh) * | 2012-11-13 | 2014-05-21 | 国际商业机器公司 | 数据管理方法和系统 |
CN104077423A (zh) * | 2014-07-23 | 2014-10-01 | 山东大学(威海) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 |
CN104199892A (zh) * | 2014-08-26 | 2014-12-10 | 上海爱数软件有限公司 | 一种基于压缩合并异步更新的索引读写方法 |
CN105117415A (zh) * | 2015-07-30 | 2015-12-02 | 西安交通大学 | 一种优化的ssd数据更新方法 |
CN105320775A (zh) * | 2015-11-11 | 2016-02-10 | 中科曙光信息技术无锡有限公司 | 数据的存取方法和装置 |
US20160124972A1 (en) * | 2014-11-04 | 2016-05-05 | Rubrik, Inc. | Converged search and archival system |
CN106776967A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
US20170351697A1 (en) * | 2016-06-03 | 2017-12-07 | Dell Products L.P. | Maintaining data deduplication reference information |
CN107948334A (zh) * | 2018-01-09 | 2018-04-20 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的数据处理方法 |
CN108595109A (zh) * | 2017-12-29 | 2018-09-28 | 郑州云海信息技术有限公司 | 一种基于Ceph分布式存储系统的多客户端写的方法 |
-
2018
- 2018-10-15 CN CN201811198300.XA patent/CN109407985B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1949223A (zh) * | 2006-12-01 | 2007-04-18 | 金蝶软件(中国)有限公司 | 一种联机分析处理系统中多维数据读写的方法和装置 |
US20110126045A1 (en) * | 2007-03-29 | 2011-05-26 | Bennett Jon C R | Memory system with multiple striping of raid groups and method for performing the same |
CN102662724A (zh) * | 2012-03-15 | 2012-09-12 | 华为技术有限公司 | 设备初始化的方法、装置及系统 |
CN103810237A (zh) * | 2012-11-13 | 2014-05-21 | 国际商业机器公司 | 数据管理方法和系统 |
CN103577123A (zh) * | 2013-11-12 | 2014-02-12 | 河海大学 | 一种基于hdfs的小文件优化存储方法 |
CN104077423A (zh) * | 2014-07-23 | 2014-10-01 | 山东大学(威海) | 一种基于一致性散列的结构化数据存储、查询和迁移方法 |
CN104199892A (zh) * | 2014-08-26 | 2014-12-10 | 上海爱数软件有限公司 | 一种基于压缩合并异步更新的索引读写方法 |
US20160124972A1 (en) * | 2014-11-04 | 2016-05-05 | Rubrik, Inc. | Converged search and archival system |
CN105117415A (zh) * | 2015-07-30 | 2015-12-02 | 西安交通大学 | 一种优化的ssd数据更新方法 |
CN105320775A (zh) * | 2015-11-11 | 2016-02-10 | 中科曙光信息技术无锡有限公司 | 数据的存取方法和装置 |
US20170351697A1 (en) * | 2016-06-03 | 2017-12-07 | Dell Products L.P. | Maintaining data deduplication reference information |
CN106776967A (zh) * | 2016-12-05 | 2017-05-31 | 哈尔滨工业大学(威海) | 基于时序聚合算法的海量小文件实时存储方法及装置 |
CN108595109A (zh) * | 2017-12-29 | 2018-09-28 | 郑州云海信息技术有限公司 | 一种基于Ceph分布式存储系统的多客户端写的方法 |
CN107948334A (zh) * | 2018-01-09 | 2018-04-20 | 无锡华云数据技术服务有限公司 | 基于分布式存储系统的数据处理方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113448490A (zh) * | 2020-03-25 | 2021-09-28 | 伊姆西Ip控股有限责任公司 | 用于存储的方法、设备和计算机程序产品 |
CN113076068A (zh) * | 2021-04-27 | 2021-07-06 | 哈尔滨工业大学(深圳) | 一种数据存储方法、装置、电子设备及可读存储介质 |
CN113670293A (zh) * | 2021-08-11 | 2021-11-19 | 追觅创新科技(苏州)有限公司 | 地图构建方法及装置 |
CN113867627A (zh) * | 2021-08-29 | 2021-12-31 | 苏州浪潮智能科技有限公司 | 一种存储系统性能优化方法及系统 |
CN113867627B (zh) * | 2021-08-29 | 2023-08-22 | 苏州浪潮智能科技有限公司 | 一种存储系统性能优化方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN109407985B (zh) | 2022-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11379142B2 (en) | Snapshot-enabled storage system implementing algorithm for efficient reclamation of snapshot storage space | |
US11386042B2 (en) | Snapshot-enabled storage system implementing algorithm for efficient reading of data from stored snapshots | |
EP3095029B1 (en) | Set-associative hash table organization for efficient storage and retrieval of data in a storage system | |
CN109407985A (zh) | 一种数据管理的方法以及相关装置 | |
CN103874980B (zh) | 存储系统中的映射 | |
CN107122131B (zh) | 自动精简配置的方法及装置 | |
CN105589812B (zh) | 磁盘碎片整理方法、装置及主机 | |
US8051050B2 (en) | Block-level data de-duplication using thinly provisioned data storage volumes | |
CN103345472B (zh) | 基于有限二叉树布隆过滤器的去冗文件系统及其构建方法 | |
CN109313538B (zh) | 内联去重 | |
CN107153707B (zh) | 一种针对非易失内存的哈希表构建方法及系统 | |
US7761648B2 (en) | Caching method for NAND flash translation layer | |
US20110107052A1 (en) | Virtual Disk Mapping | |
US10223005B2 (en) | Performing multiple write operations to a memory using a pending write queue/cache | |
CN107066393A (zh) | 提高地址映射表中映射信息密度的方法 | |
CN109558084B (zh) | 一种数据处理方法以及相关设备 | |
US11061788B2 (en) | Storage management method, electronic device, and computer program product | |
US10503424B2 (en) | Storage system | |
CN107844436B (zh) | 一种缓存中脏数据的组织管理方法、系统及存储系统 | |
JP2015512604A (ja) | 暗号ハッシュ・データベース | |
CN107209714A (zh) | 分布式存储系统及分布式存储系统的控制方法 | |
CN114860163A (zh) | 一种存储系统、内存管理方法和管理节点 | |
US20120054427A1 (en) | Increasing data access performance | |
CN110134338A (zh) | 一种分布式存储系统及其数据冗余保护方法和相关设备 | |
KR100907477B1 (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 |
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 |