CN108052284A - 一种分布式数据存储方法及装置 - Google Patents
一种分布式数据存储方法及装置 Download PDFInfo
- Publication number
- CN108052284A CN108052284A CN201711298223.0A CN201711298223A CN108052284A CN 108052284 A CN108052284 A CN 108052284A CN 201711298223 A CN201711298223 A CN 201711298223A CN 108052284 A CN108052284 A CN 108052284A
- Authority
- CN
- China
- Prior art keywords
- data
- data object
- data block
- storage region
- index information
- 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/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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
-
- 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/0662—Virtualisation aspects
- G06F3/0667—Virtualisation aspects at data level, e.g. file, record or object virtualisation
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
技术领域
本发明涉及计算机技术领域,特别是涉及一种分布式数据存储方法及装置。
背景技术
随着移动互联网、物联网等应用的飞速发展,全球数据量出现了爆炸式增长。面对大规模的数据量,目前通常采用分布式数据存储方式对大量数据进行存储。在对大量数据进行分布式存储时,由于数据量较大,因此需要有专门的模块来管理上传数据的元信息,但是对元信息进行有效地管理是一个相当复杂的过程。因此,如何在对数据进行存储时有效地简化元信息的处理逻辑以及提高数据接收、存储速率,是一个亟待解决的技术问题。
此外,现有的对存储数据进行复制、删除数据的方式是直接对数据的内容进行复制和删除,这使得存储数据库中同时保存有多份相同的数据内容,特别是在对所占内存较大的数据进行复制时,会造成内存资源的巨大浪费,不利于内存资源的有效利用。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的分布式数据存储方法及装置。
根据本发明的一方面,提供了一种分布式数据存储方法,包括:接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中;当所述数据对象的全部数据块在所述虚拟存储区中存储后,获取存储在所述虚拟存储区中的各数据块的元信息;将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作。
可选地,在接收到对数据对象进行存储的存储指令之前,还包括:建立虚拟存储区,并将所述虚拟存储区对应的索引信息保存至索引数据库中,所述虚拟存储区由对所述数据对象进行存储的存储指令触发调用。
可选地,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:利用不同服务器分别接收所述数据对象被划分后各数据块,并将接收的数据块存储至所述虚拟存储区中,其中,所述不同服务器由服务器集群根据负载均衡原理为准备上传的各数据块分配。
可选地,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:依据被划分后的各数据块在所述数据对象中的位置次序,在所述虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区;在接收到数据块时,分析所述数据块在所述数据对象中的位置,并将所述数据块存储至与其对应的虚拟子存储区中,直到将所述数据对象的全部数据块分别存储至各自对应的虚拟子存储区中。
可选地,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:在接收到所述数据对象的任一数据块时,将该数据块存储至所述虚拟存储区中,直到将所述数据对象的全部数据块都存储至虚拟存储区中;获取所述任一数据块对应的元信息,并将获取的元信息保存至索引数据库中。
可选地,当所述数据对象的全部数据块都存储至虚拟存储区中之后,还包括:依据各数据块的元信息,对所述虚拟存储区中各数据块的位置顺序进行调整,以使所述虚拟存储区中各数据块的位置顺序对应于各数据块在所述数据对象中的位置次序。
可选地,所述将获取的元信息进行整合得到所述数据对象的索引信息,包括:将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息。
可选地,所述将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息,包括:根据获取的元信息确定各数据块在所述数据对象中的位置次序;依据各数据块在所述数据对象中的位置次序,将各数据块对应的元信息进行组合,利用组合后的元信息作为所述数据对象的索引信息。
可选地,所述将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作之后,还包括:当接收到对所述数据对象进行复制的复制指令时,判断所述复制指令是否为复制完整的数据对象;若是,查找与所述数据对象对应的索引信息,复制查找到的索引信息并将所述查找到的索引信息对应的数据存储区的引用计数加一。
可选地,若判断所述复制指令不是复制完整的数据对象,则分析所述复制指令对应的待复制数据块,查找与所述待复制数据块对应的索引信息;依据查找到的索引信息建立所述待复制数据块的新的索引信息,并将建立的新的索引信息保存至索引数据库中;将查找到的索引信息对应的数据存储区的引用计数加一。
可选地,所述将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的元信息,以完成所述数据对象的存储操作之后,还包括:当接收到对所述数据对象进行删除的删除指令时,查找与所述数据对象对应的索引信息;将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一。
可选地,所述将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一之后,还包括:判断所述查找到的索引信息对应的数据存储区的引用计数是否为0,若是,删除该索引信息对应的数据对象。
可选地,所述元信息的内容包括以下至少一项:所述数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识。
依据本发明的另一方面,还提供了一种分布式数据存储装置,包括:调起模块,适于接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;存储模块,适于接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中;获取模块,适于当所述数据对象的全部数据块在所述虚拟存储区中存储后,获取存储在所述虚拟存储区中的各数据块的元信息;整合模块,适于将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作。
可选地,所述装置还包括:建立模块,适于在所述调起模块接收到对数据对象进行存储的存储指令之前,建立虚拟存储区,并将所述虚拟存储区对应的索引信息保存至索引数据库中,所述虚拟存储区由对所述数据对象进行存储的存储指令触发调用。
可选地,所述存储模块还适于:利用不同服务器分别接收所述数据对象被划分后各数据块,并将接收的数据块存储至所述虚拟存储区中,其中,所述不同服务器由服务器集群根据负载均衡原理为准备上传的各数据块分配。
可选地,所述存储模块还适于:依据被划分后的各数据块在所述数据对象中的位置次序,在所述虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区;在接收到数据块时,分析所述数据块在所述数据对象中的位置,并将所述数据块存储至与其对应的虚拟子存储区中,直到将所述数据对象的全部数据块分别存储至各自对应的虚拟子存储区中。
可选地,所述存储模块还适于:在接收到所述数据对象的任一数据块时,将该数据块存储至所述虚拟存储区中,直到将所述数据对象的全部数据块都存储至虚拟存储区中;获取所述任一数据块对应的元信息,并将获取的元信息保存至索引数据库中。
可选地,所述装置还包括:调整模块,适于在所述存储模块将所述数据对象的全部数据块都存储至虚拟存储区中之后,依据各数据块的元信息,对所述虚拟存储区中各数据块的位置顺序进行调整,以使所述虚拟存储区中各数据块的位置顺序对应于各数据块在所述数据对象中的位置次序。
可选地,所述整合模块还适于:将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息。
可选地,所述整合模块还适于:根据获取的元信息确定各数据块在所述数据对象中的位置次序;依据各数据块在所述数据对象中的位置次序,将各数据块对应的元信息进行组合,利用组合后的元信息作为所述数据对象的索引信息。
可选地,所述装置还包括复制模块,适于:当接收到对所述数据对象进行复制的复制指令时,判断所述复制指令是否为复制完整的数据对象;若是,查找与所述数据对象对应的索引信息,复制查找到的索引信息并将所述查找到的索引信息对应的数据存储区的引用计数加一。
可选地,所述复制模块还适于:若判断所述复制指令不是复制完整的数据对象,则分析所述复制指令对应的待复制数据块,查找与所述待复制数据块对应的索引信息;依据查找到的索引信息建立所述待复制数据块的新的索引信息,并将建立的新的索引信息保存至索引数据库中;将查找到的索引信息对应的数据存储区的引用计数加一。
可选地,所述装置还包括删除模块,适于:当接收到对所述数据对象进行删除的删除指令时,查找与所述数据对象对应的索引信息;将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一。
可选地,所述删除模块还适于:判断所述查找到的索引信息对应的数据存储区的引用计数是否为0,若是,删除该索引信息对应的数据对象。
可选地,所述元信息的内容包括以下至少一项:所述数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识。
依据本发明的又一方面,还提供了一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述任意实施例所述的分布式数据存储方法。
依据本发明的再一方面,还提供了一种计算机存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行上述任意实施例所述的分布式数据存储方法。
本发明实施例中,当接收到对数据对象进行存储的存储指令时,调起之前预设的虚拟存储区,然后接收数据对象被划分后的数据块,并将数据块存储至虚拟存储区中。当数据对象的全部数据块在虚拟存储区中存储后,获取存储在虚拟存储区中的各数据块的元信息。进而将获取的元信息进行整合得到数据对象的索引信息,并利用数据对象的索引信息替换虚拟存储区的索引信息,以完成数据对象的存储操作。由此,本发明实施例在对数据对象进行存储时,数据对象已经被划分为多个数据块,从而能够实现同时并行的接收各个数据块并将接收到的各数据块存储至虚拟存储区中,有效地提高了数据对象的存储效率,特别是对于较大的数据对象,可以大大缩短数据对象的接收、存储时间。并且,在数据对象全部接收完毕后,通过获取各数据块的元信息并将其整合得到数据对象的索引信息,能够方便后续对数据对象的集中管理。进一步地,对数据对象的索引信息进行集中管理还可以有效地减少数据处理量,进而提高数据的处理效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的分布式数据存储方法的流程示意图;
图2示出了根据本发明一个实施例的复制数据对象的流程示意图;
图3示出了根据本发明一个实施例的分布式数据存储装置的结构示意图;
图4示出了根据本发明另一个实施例的分布式数据存储装置的结构示意图;
图5示意性地示出了用于执行根据本发明的分布式数据存储方法的计算设备的框图;以及
图6示意性地示出了用于保持或者携带实现根据本发明的分布式数据存储方法的程序代码的存储单元。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
为解决上述技术问题,本发明实施例提供了一种分布式数据存储方法。图1示出了根据本发明一个实施例的分布式数据存储方法的流程示意图。参见图1,该方法至少包括步骤S102至步骤S108。
步骤S102,接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区。
在该步骤中,预设虚拟存储区可以是预设在计算机磁盘上的虚拟存储区。进而,在后续对数据对象进行存储时,可以将接收到的数据直接存储至磁盘上的虚拟存储区中。
步骤S104,接收数据对象被划分后的数据块,并将数据块存储至虚拟存储区中。
在该步骤中,数据对象被划分为多个数据块,各数据块可以是相同大小的数据块,也可以是不同大小的数据块。例如,数据对象占用内存大小为5GB,该数据对象可以被平均划分为5个数据块,其中每个数据块大小为1GB,或者该数据对象也可以被划分为4个数据块,其中,3个数据块大小为1GB,1个数据块大小为2GB。本发明实施例对接收到的各数据块的大小,以及数据块的数量不做具体限定。
步骤S106,当数据对象的全部数据块在虚拟存储区中存储后,获取存储在虚拟存储区中的各数据块的元信息。
在该步骤中,元信息指的是数据对象的信息,用于描述数据对象的结构、语义、用途和用法等等。例如,元信息的内容可以包含数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识等等。
步骤S108,将获取的元信息进行整合得到数据对象的索引信息,并利用数据对象的索引信息替换虚拟存储区的索引信息,以完成数据对象的存储操作。
本发明实施例在对数据对象进行存储时,数据对象已经被划分为多个数据块,从而能够实现同时并行的接收各个数据块并将接收到的各数据块存储至虚拟存储区中,有效地提高了数据对象的存储效率,特别是对于较大的数据对象,可以大大缩短数据对象的接收、存储时间。并且,在数据对象全部接收完毕后,通过获取各数据块的元信息并将其整合得到数据对象的索引信息,能够方便后续对数据对象的集中管理。进一步地,对数据对象的索引信息进行集中管理还可以有效地减少数据处理量,进而提高数据的处理效率。
参见上文步骤S102,在本发明实施例中,在接收到对数据对象进行存储的存储指令之前,本发明可以在计算机磁盘上建立虚拟存储区,并将虚拟存储区对应的索引信息保存至索引数据库中,以供后续的存储指令对虚拟存储区进行触发调用。本发明实施例的索引数据库可以采用redis数据库,redis是一个高性能的多数据结构数据库。
参见上文步骤S104,在本发明实施例中,在接收数据对象被划分后的数据块,并将数据块存储至虚拟存储区中的存储方式可以包含两种方式。
方式一、直接将接收到的各数据块存储至虚拟存储区中,进而再对全部接收的数据块进行位置调整。
具体的,数据对象被划分成多个数据块后,同时并行的接收各数据块。当接收到任意一个数据块时,直接将接收到的数据块存储至调用的虚拟存储区中。同时,还可以获取该数据块的元信息,并将获取的元信息保存至redis中。当数据对象的全部数据块都已经接收完毕且全部存储至虚拟存储区后,各数据块对应的元信息也都保存至redis中。由于受到各数据块大小不同、接收时间不同、服务器的处理能力等因素的影响,各数据块在存储至虚拟存储区后,它们的顺序可能并非是原来在的数据对象中对应的位置顺序。因此,在数据对象的全部数据块都存储至虚拟存储区后,还需要对数据块的位置顺序进行调整,以使虚拟存储区中各数据块的位置顺序对应于各数据块在数据对象中的位置次序,对数据块的位置顺序时可以依据各数据块的元信息对虚拟存储区中各数据块的位置顺序进行调整。
例如,数据对象object1按照数据内容被依次划分为part-a、part-b以及part-c,各数据块的元信息分别标识各数据块在数据对象中的位置顺序为1、2、3。其中,object1的大小为5GB,part-a、part-b以及part-c的大小分别为2GB、2GB、1GB。当全部数据块都存储至虚拟存储区后,各数据块在虚拟存储区中的顺序为part-c、part-a、part-b。当依据各数据块的元信息对数据块进行排序后,得虚拟存储区中各数据块的位置顺序依次为part-a、part-b以及part-c。
方式二、将虚拟存储区划分为与各数据块对应的多个虚拟子存储区,进而将接收到的各数据块存储至对应的虚拟子存储区中,这种方式无需后续对各数据块在虚拟存储区中的位置进行调整。
具体的,在接收数据块之前,先依据被划分后的各数据块在数据对象中的位置次序,在虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区。进而,当接收到数据块时,分析接收到的数据块在数据对象中的位置,并将数据块存储至与其对应的虚拟子存储区中。分析接收到的数据块在数据对象中的位置的依据可以是据数据块的元信息。
例如,数据对象object2按照数据内容被依次划分为part-a、part-b以及part-c,各数据块的元信息分别标识对应数据块在数据对象中的位置顺序为1、2、3,为各数据块分配的虚拟子存储区为虚拟子存储区11、虚拟子存储区12、虚拟子存储区13,其中11、12、13代表各虚拟子存储区的存储地址。当接收到part-a时,通过分析part-a的元信息可知其对应于虚拟子存储区11,因此,将part-a存储至虚拟子存储区11中。当接收到part-c时,通过分析part-c的元信息可知其对应于虚拟子存储区13,因此,将part-c存储至虚拟子存储区13中。按照这样的方式,直到part-a、part-b以及part-c分别存储至各自对应的虚拟子存储区中,以将完整的object2存储至虚拟存储区中。
在本发明实施例中,数据对象在存储之前已经被划分为多个数据块,因此,为了提高数据对象的接收和存储效率,可以根据数据块的数量分配多个服务器,以利用不同服务器分别接收各数据块,进而将接收的数据块存储至预先设置于磁盘上的虚拟存储区中。其中,不同服务器可以由服务器集群根据负载均衡原理为准备上传的各数据块进行分配。例如,object一共有10个数据块,服务器集群为其分配了3个服务器来同时接收这10个数据块。首先,服务器1、服务器2和服务器3先分别接收1个数据块,当任意一个服务器完成本次接收任务后,再接收其他数据块。例如,最终服务器1完成了3个数据块的接收任务,服务器2完成了4个数据块的接收任务,服务器3完成了3个数据块的接收任务。当然,还可以有针对性的为各数据块分配对应的服务器,例如由处理能力较强的服务器接收占用内存较大的数据块、或者较多数量的数据块,这样可以大大地提高数据对象的接收和存储速率。
参见上文步骤S108,在本发明一实施例中,在获取到各数据块的元信息后,还需要对获取的元信息进行整合,具体整合时可以依据各数据块之间的关系对获取的元信息进行整合,并将整合后的元信息作为数据对象的索引信息。
在该实施例中,数据对象的索引信息的形成过程可以采用如下方式。首先,根据获取到的数据块元信息确定各数据块在数据对象中的位置次序。然后,依据各数据块在数据对象中的位置次序,将各数据块对应的元信息进行组合。进而,利用组合后的元信息作为数据对象的索引信息。例如,part-a、part-b和part-c的元信息分别包含infor1、infor2、infor3,组合后的数据对象的索引信息包含infor123。在上文中介绍,当建立虚拟存储区时会将虚拟存储区对应的索引信息保存至redis数据库中。因此,当得到虚拟存储区中的数据对象的索引信息时,会利用该数据对象的索引信息替换虚拟存储区对应的索引信息,进而在后续利用索引信息infor123就可以直接查找到相应的数据对象。当然,此处列举的元信息和索引信息仅仅是示意性的,实际上,元信息中包含有与数据相关的大量信息,例如上文所讲的数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识等等。本发明实施例对索引信息的形成过程不做具体限定。
至此,数据对象的存储过程已经进行了详细的介绍。当数据对象已经存储至磁盘上的虚拟存储区后,本发明实施例还相应的提供了对存储区中的数据对象的复制方法和删除方法。
首先,介绍对数据对象进行复制的过程,参见图2,该过程可以包括如下步骤S202至步骤S210。
步骤S202,接收对数据对象进行复制的复制指令。
步骤S203,判断复制指令是否为复制完整的数据对象。若是,执行步骤S204;若否,执行步骤S206。
步骤S204,查找与数据对象对应的索引信息,复制查找到的索引信息并将查找到的索引信息对应的数据存储区的引用计数加一。
在该步骤中,在复制数据对象object过程中,无需对object本身进行复制,而是直接将object的索引信息进行复制,这不仅有效地减少了数据处理量,还节约了数据对象的存储空间。
在每个object的元信息中都会包含有一个block的信息,block信息记录的是object在存储时所分配的空间。由于在复制object时仅仅复制了object的索引信息而未复制object本身,因此还需将该object的索引信息对应的block的计数加1,从而实现完整object的复制过程。若object被复制了N次,则object索引信息对应的数据存储区的引用计数为1+N。
步骤S206,分析复制指令对应的待复制数据块,查找与待复制数据块对应的索引信息,进而执行步骤S208。
步骤S208,依据查找到的索引信息建立待复制数据块的新的索引信息,并将建立的新的索引信息保存至索引数据库中,进而执行步骤S210。
步骤S210,将查找到的索引信息对应的数据存储区的引用计数加一。
参见上文件步骤S206至步骤S210,若复制指令并不是要复制完整的数据对象object,而是复制object中的某些数据块,例如,在复制object中的part-a和part-b时,需要查找part-a和part-b分别对应的索引信息,如索引信息分别为infor1和infor2。根据查找到的索引信息infor1和infor2建立的新的索引信息为infor3,并将新的索引信息infor3保存至索引数据库中。
在复制part-a和part-b时也仅需对其索引信息复制,不复制part-a和part-b本身,因此,在复制索引信息之后还需将part-a和part-b的索引信息对应的block的引用计数加1,进而实现part-a和part-b的复制。
对数据对象的复制过程介绍完毕,现在介绍对数据对象的删除过程。
具体的,在接收到对数据对象进行删除的删除指令时,先查找与数据对象对应的索引信息,然后将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一。例如,在接收到对object进行删除的删除指令时,将object的索引信息放入待删队列中,由待删队列中负责删除的模块对索引信息进行删除,并且将object的索引信息对应的block的引用计数减1。
对应于上文对数据对象的复制过程,每复制一次object,则将该object对应的索引信息对应的block的引用计数加1。若object之前已经被复制了3次,则object此时对应的block的引用计数为1+3。在收到删除object的指令时,将object的索引信息对应的block的引用计数减1,此时,object的索引信息对应的数据存储区的引用计数为1+2。
在本发明一实施例中,在将查找到的索引信息对应的数据存储区的引用计数减一之后,还可以判断查找到的索引信息对应的数据存储区的引用计数是否为0,若是,则直接删除该索引信息对应的数据对象。例如,若object1的索引信息对应的数据存储区的引用计数为1+0,接收到对object1的删除指令时,在删除object1的索引信息的同时,还将object1本身直接删除。
在该实施例中,若多个磁盘中均包含相同的数据对象的索引信息,例如磁盘C和磁盘D中分别包含object2对应的索引信息,若要直接删除object2可以分为两种情况。
一种情况,当磁盘C和磁盘D中object2的索引信息分别对应的数据存储区的引用计数都为0时,直接将object2本身删除。另一种情况,当object2在磁盘C或磁盘D中的索引信息对应的数据存储区的引用计数为0时,删除object2本身,即当object2在任一磁盘的索引信息对应的数据存储区的引用计数为0时,删除object2本身。
基于同一发明构思,本发明实施例还提供了一种分布式数据存储装置,图3示出了根据本发明一个实施例的分布式数据存储装置的结构示意图。参见图3,该分布式数据存储装置300至少包括调起模块310、存储模块320、获取模块330以及整合模块340。
现介绍本发明实施例的分布式数据存储装置300的各组成或器件的功能以及各部分间的连接关系:
调起模块310,适于接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;
存储模块320,与调起模块310耦合,适于接收数据对象被划分后的数据块,并将数据块存储至虚拟存储区中;
获取模块330,与存储模块320耦合,适于当数据对象的全部数据块在虚拟存储区中存储后,获取存储在虚拟存储区中的各数据块的元信息;
整合模块340,与获取模块330耦合,适于将获取的元信息进行整合得到数据对象的索引信息,并利用数据对象的索引信息替换虚拟存储区的索引信息,以完成数据对象的存储操作。
在本发明一实施例中,存储模块320还适于利用不同服务器分别接收数据对象被划分后各数据块,并将接收的数据块存储至虚拟存储区中,其中,不同服务器由服务器集群根据负载均衡原理为准备上传的各数据块分配。
在本发明一实施例中,存储模块320还适于依据被划分后的各数据块在数据对象中的位置次序,在虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区。在接收到数据块时,分析数据块在数据对象中的位置,并将数据块存储至与其对应的虚拟子存储区中,直到将数据对象的全部数据块分别存储至各自对应的虚拟子存储区中。
在本发明一实施例中,存储模块320还适于在接收到数据对象的任一数据块时,将该数据块存储至虚拟存储区中,直到将数据对象的全部数据块都存储至虚拟存储区中。并且获取任一数据块对应的元信息,并将获取的元信息保存至索引数据库中。
本发明实施例还提供了另一种分布式数据存储装置,图4示出了根据本发明另一个实施例的分布式数据存储装置的结构示意图。参见图4,该分布式数据存储装置300除了包括调起模块310、存储模块320、获取模块330以及整合模块340,还包括建立模块350、调整模块360、复制模块370以及删除模块380。其中,
建立模块350,与调起模块310耦合,适于在调起模块310接收到对数据对象进行存储的存储指令之前,建立虚拟存储区,并将虚拟存储区对应的索引信息保存至索引数据库中,虚拟存储区由对数据对象进行存储的存储指令触发调用。
调整模块360,与存储模块320耦合,适于在存储模块320将数据对象的全部数据块都存储至虚拟存储区中之后,依据各数据块的元信息,对虚拟存储区中各数据块的位置顺序进行调整,以使虚拟存储区中各数据块的位置顺序对应于各数据块在数据对象中的位置次序。
复制模块370,与整合模块340耦合,适于当接收到对数据对象进行复制的复制指令时,判断复制指令是否为复制完整的数据对象。若是,查找与数据对象对应的索引信息,复制查找到的索引信息并将查找到的索引信息对应的数据存储区的引用计数加一。
删除模块380,与整合模块340耦合,适于当接收到对数据对象进行删除的删除指令时,查找与数据对象对应的索引信息。将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一。
在本发明一实施例中,整合模块340还适于将获取的元信息依据各数据块之间的关系进行整合,以得到数据对象的索引信息。
在本发明一实施例中,整合模块340还适于根据获取的元信息确定各数据块在数据对象中的位置次序,并依据各数据块在数据对象中的位置次序,将各数据块对应的元信息进行组合,利用组合后的元信息作为数据对象的索引信息。
在本发明一实施例中,复制模块370还适于若判断复制指令不是复制完整的数据对象,则分析复制指令对应的待复制数据块,查找与待复制数据块对应的索引信息。依据查找到的索引信息建立待复制数据块的新的索引信息,并将建立的新的索引信息保存至索引数据库中。将查找到的索引信息对应的数据存储区的引用计数加一。
在本发明另一实施例中,删除模块380还适于判断查找到的索引信息对应的数据存储区的引用计数是否为0,若是,删除该索引信息对应的数据对象。
在本发明一实施例中,元信息的内容包括以下至少一项:数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识。
根据上述任意一个优选实施例或多个优选实施例的组合,本发明实施例能够达到如下有益效果:
当接收到对数据对象进行存储的存储指令时,调起之前预设的虚拟存储区,然后接收数据对象被划分后的数据块,并将数据块存储至虚拟存储区中。当数据对象的全部数据块在虚拟存储区中存储后,获取存储在虚拟存储区中的各数据块的元信息。进而将获取的元信息进行整合得到数据对象的索引信息,并利用数据对象的索引信息替换虚拟存储区的索引信息,以完成数据对象的存储操作。由此,本发明实施例在对数据对象进行存储时,数据对象已经被划分为多个数据块,从而能够实现同时并行的接收各个数据块,并将接收到的各数据块存储至虚拟存储区中,有效地提高了数据对象的存储效率,特别是对于较大的数据对象,可以大大缩短数据对象的接收、存储时间。并且,在数据对象全部接收完毕后,通过获取各数据块的元信息并将其整合得到数据对象的索引信息,能够方便后续对数据对象的集中管理。进一步地,对数据对象的索引信息进行集中管理还可以有效地减少数据处理量,进而提高数据的处理效率。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的分布式数据存储装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
本发明实施例还提供了一种电子设备,包括处理器、以及被安排成存储计算机可执行指令的存储器,可执行指令在被执行时使处理器执行根据上文任一个实施例中的分布式数据存储方法。
另外,本发明实施例还提供了一种计算机存储介质,其中,计算机可读存储介质存储一个或多个程序,一个或多个程序当被包括多个应用程序的电子设备执行时,使得电子设备执行根据上文任一个实施例中的分布式数据存储方法。
例如,图5示出了可以实现分布式数据存储方法的计算设备(即上文提及的电子设备)。该计算设备传统上包括处理器510和存储器520形式的计算机程序产品或者计算机可读介质。存储器520可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器520具有存储用于执行上述方法中的任何方法步骤的程序代码531的存储空间530。例如,存储程序代码的存储空间530可以包括分别用于实现上面的方法中的各种步骤的各个程序代码531。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为例如图6所示的便携式或者固定存储单元。该存储单元可以具有与图5的计算设备中的存储器520类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括用于执行本发明的方法步骤的计算机可读代码531’,即可以由诸如510之类的处理器读取的代码,当这些代码由计算设备运行时,导致该计算设备执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。本发明实施例还提供了A1、一种分布式数据存储方法,包括:
接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;
接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中;
当所述数据对象的全部数据块在所述虚拟存储区中存储后,获取存储在所述虚拟存储区中的各数据块的元信息;
将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作。
A2、根据A1所述的方法,其中,所述在接收到对数据对象进行存储的存储指令之前,还包括:
建立虚拟存储区,并将所述虚拟存储区对应的索引信息保存至索引数据库中,所述虚拟存储区由对所述数据对象进行存储的存储指令触发调用。
A3、根据A1或A2所述的方法,其中,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:
利用不同服务器分别接收所述数据对象被划分后各数据块,并将接收的数据块存储至所述虚拟存储区中,其中,所述不同服务器由服务器集群根据负载均衡原理为准备上传的各数据块分配。
A4、根据A1或A2所述的方法,其中,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:
依据被划分后的各数据块在所述数据对象中的位置次序,在所述虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区;
在接收到数据块时,分析所述数据块在所述数据对象中的位置,并将所述数据块存储至与其对应的虚拟子存储区中,直到将所述数据对象的全部数据块分别存储至各自对应的虚拟子存储区中。
A5、根据A1或A2所述的方法,其中,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:
在接收到所述数据对象的任一数据块时,将该数据块存储至所述虚拟存储区中,直到将所述数据对象的全部数据块都存储至虚拟存储区中;
获取所述任一数据块对应的元信息,并将获取的元信息保存至索引数据库中。
A6、根据A5所述的方法,其中,当所述数据对象的全部数据块都存储至虚拟存储区中之后,还包括:
依据各数据块的元信息,对所述虚拟存储区中各数据块的位置顺序进行调整,以使所述虚拟存储区中各数据块的位置顺序对应于各数据块在所述数据对象中的位置次序。
A7、根据A1或A2所述的方法,其中,所述将获取的元信息进行整合得到所述数据对象的索引信息,包括:
将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息。
A8、根据权利要求A7所述的方法,其中,所述将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息,包括:
根据获取的元信息确定各数据块在所述数据对象中的位置次序;
依据各数据块在所述数据对象中的位置次序,将各数据块对应的元信息进行组合,利用组合后的元信息作为所述数据对象的索引信息。
A9、根据A1或A2所述的方法,其中,所述将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作之后,还包括:
当接收到对所述数据对象进行复制的复制指令时,判断所述复制指令是否为复制完整的数据对象;
若是,查找与所述数据对象对应的索引信息,复制查找到的索引信息并将所述查找到的索引信息对应的数据存储区的引用计数加一。
A10、根据A9所述的方法,其中,若判断所述复制指令不是复制完整的数据对象,则
分析所述复制指令对应的待复制数据块,查找与所述待复制数据块对应的索引信息;
依据查找到的索引信息建立所述待复制数据块的新的索引信息,并将建立的新的索引信息保存至索引数据库中;
将查找到的索引信息对应的数据存储区的引用计数加一。
A11、根据A1或A2所述的方法,其中,所述将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的元信息,以完成所述数据对象的存储操作之后,还包括:
当接收到对所述数据对象进行删除的删除指令时,查找与所述数据对象对应的索引信息;
将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一。
A12、根据A11所述的方法,其中,所述将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一之后,还包括:
判断所述查找到的索引信息对应的数据存储区的引用计数是否为0,若是,删除该索引信息对应的数据对象。
A13、根据A1或A2所述的方法,其中,所述元信息的内容包括以下至少一项:
所述数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识。
B14、一种分布式数据存储装置,包括:
调起模块,适于接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;
存储模块,适于接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中;
获取模块,适于当所述数据对象的全部数据块在所述虚拟存储区中存储后,获取存储在所述虚拟存储区中的各数据块的元信息;
整合模块,适于将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作。
B15、根据B14所述的装置,其中,还包括:
建立模块,适于在所述调起模块接收到对数据对象进行存储的存储指令之前,建立虚拟存储区,并将所述虚拟存储区对应的索引信息保存至索引数据库中,所述虚拟存储区由对所述数据对象进行存储的存储指令触发调用。
B16、根据B14或B15所述的装置,其中,所述存储模块还适于:
利用不同服务器分别接收所述数据对象被划分后各数据块,并将接收的数据块存储至所述虚拟存储区中,其中,所述不同服务器由服务器集群根据负载均衡原理为准备上传的各数据块分配。
B17、根据B14或B15所述的装置,其中,所述存储模块还适于:
依据被划分后的各数据块在所述数据对象中的位置次序,在所述虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区;
在接收到数据块时,分析所述数据块在所述数据对象中的位置,并将所述数据块存储至与其对应的虚拟子存储区中,直到将所述数据对象的全部数据块分别存储至各自对应的虚拟子存储区中。
B18、根据B14或B15所述的装置,其中,所述存储模块还适于:
在接收到所述数据对象的任一数据块时,将该数据块存储至所述虚拟存储区中,直到将所述数据对象的全部数据块都存储至虚拟存储区中;
获取所述任一数据块对应的元信息,并将获取的元信息保存至索引数据库中。
B19、根据B18所述的装置,其中,还包括:
调整模块,适于在所述存储模块将所述数据对象的全部数据块都存储至虚拟存储区中之后,依据各数据块的元信息,对所述虚拟存储区中各数据块的位置顺序进行调整,以使所述虚拟存储区中各数据块的位置顺序对应于各数据块在所述数据对象中的位置次序。
B20、根据B14或B15所述的装置,其中,所述整合模块还适于:
将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息。
B21、根据B20所述的装置,其中,所述整合模块还适于:
根据获取的元信息确定各数据块在所述数据对象中的位置次序;
依据各数据块在所述数据对象中的位置次序,将各数据块对应的元信息进行组合,利用组合后的元信息作为所述数据对象的索引信息。
B22、根据B14或B15所述的装置,其中,还包括复制模块,适于:
当接收到对所述数据对象进行复制的复制指令时,判断所述复制指令是否为复制完整的数据对象;
若是,查找与所述数据对象对应的索引信息,复制查找到的索引信息并将所述查找到的索引信息对应的数据存储区的引用计数加一。
B23、根据B22所述的装置,其中,所述复制模块还适于:
若判断所述复制指令不是复制完整的数据对象,则
分析所述复制指令对应的待复制数据块,查找与所述待复制数据块对应的索引信息;
依据查找到的索引信息建立所述待复制数据块的新的索引信息,并将建立的新的索引信息保存至索引数据库中;
将查找到的索引信息对应的数据存储区的引用计数加一。
B24、根据B14或B15所述的装置,其中,还包括删除模块,适于:
当接收到对所述数据对象进行删除的删除指令时,查找与所述数据对象对应的索引信息;
将查找到的索引信息放入待删队列中,并将查找到的索引信息对应的数据存储区的引用计数减一。
B25、根据B24所述的装置,其中,所述删除模块还适于:
判断所述查找到的索引信息对应的数据存储区的引用计数是否为0,若是,删除该索引信息对应的数据对象。
B26、根据B14或B15所述的装置,其中,所述元信息的内容包括以下至少一项:
所述数据块的数据大小、数据类型、数据存储地址、数据结构、数据属性以及唯一标识。
C27、一种电子设备,包括处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据A1-A13任一项所述的分布式数据存储方法。
D28、一种计算机存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据A1-A13任一项所述的分布式数据存储方法。
Claims (10)
1.一种分布式数据存储方法,包括:
接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;
接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中;
当所述数据对象的全部数据块在所述虚拟存储区中存储后,获取存储在所述虚拟存储区中的各数据块的元信息;
将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作。
2.根据权利要求1所述的方法,其中,所述在接收到对数据对象进行存储的存储指令之前,还包括:
建立虚拟存储区,并将所述虚拟存储区对应的索引信息保存至索引数据库中,所述虚拟存储区由对所述数据对象进行存储的存储指令触发调用。
3.根据权利要求1或2所述的方法,其中,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:
利用不同服务器分别接收所述数据对象被划分后各数据块,并将接收的数据块存储至所述虚拟存储区中,其中,所述不同服务器由服务器集群根据负载均衡原理为准备上传的各数据块分配。
4.根据权利要求1或2所述的方法,其中,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:
依据被划分后的各数据块在所述数据对象中的位置次序,在所述虚拟存储区中以存储地址递增的顺序为各数据块分配独立的虚拟子存储区;
在接收到数据块时,分析所述数据块在所述数据对象中的位置,并将所述数据块存储至与其对应的虚拟子存储区中,直到将所述数据对象的全部数据块分别存储至各自对应的虚拟子存储区中。
5.根据权利要求1或2所述的方法,其中,所述接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中,包括:
在接收到所述数据对象的任一数据块时,将该数据块存储至所述虚拟存储区中,直到将所述数据对象的全部数据块都存储至虚拟存储区中;
获取所述任一数据块对应的元信息,并将获取的元信息保存至索引数据库中。
6.根据权利要求5所述的方法,其中,当所述数据对象的全部数据块都存储至虚拟存储区中之后,还包括:
依据各数据块的元信息,对所述虚拟存储区中各数据块的位置顺序进行调整,以使所述虚拟存储区中各数据块的位置顺序对应于各数据块在所述数据对象中的位置次序。
7.根据权利要求1或2所述的方法,其中,所述将获取的元信息进行整合得到所述数据对象的索引信息,包括:
将获取的元信息依据各数据块之间的关系进行整合,以得到所述数据对象的索引信息。
8.一种分布式数据存储装置,包括:
调起模块,适于接收到对数据对象进行存储的存储指令时,调起预设虚拟存储区;
存储模块,适于接收所述数据对象被划分后的数据块,并将所述数据块存储至所述虚拟存储区中;
获取模块,适于当所述数据对象的全部数据块在所述虚拟存储区中存储后,获取存储在所述虚拟存储区中的各数据块的元信息;
整合模块,适于将获取的元信息进行整合得到所述数据对象的索引信息,并利用所述数据对象的索引信息替换所述虚拟存储区的索引信息,以完成所述数据对象的存储操作。
9.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行根据权利要求1-7任一项所述的分布式数据存储方法。
10.一种计算机存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行根据权利要求1-7任一项所述的分布式数据存储方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298223.0A CN108052284B (zh) | 2017-12-08 | 2017-12-08 | 一种分布式数据存储方法及装置 |
PCT/CN2018/079158 WO2019109538A1 (zh) | 2017-12-08 | 2018-03-15 | 一种分布式数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711298223.0A CN108052284B (zh) | 2017-12-08 | 2017-12-08 | 一种分布式数据存储方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108052284A true CN108052284A (zh) | 2018-05-18 |
CN108052284B CN108052284B (zh) | 2020-11-06 |
Family
ID=62123789
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711298223.0A Active CN108052284B (zh) | 2017-12-08 | 2017-12-08 | 一种分布式数据存储方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108052284B (zh) |
WO (1) | WO2019109538A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020006715A1 (zh) * | 2018-07-04 | 2020-01-09 | 华为技术有限公司 | 一种数据存储方法、装置及相关设备 |
WO2020215580A1 (zh) * | 2019-04-23 | 2020-10-29 | 平安科技(深圳)有限公司 | 一种分布式全局数据去重方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082525A1 (en) * | 2006-09-29 | 2008-04-03 | Cha Myung Hoon | File storage system, file storing method and file searching method therein |
CN102882983A (zh) * | 2012-10-22 | 2013-01-16 | 南京云创存储科技有限公司 | 一种云存储系统中提升并发访问性能的数据快速存储方法 |
CN103019887A (zh) * | 2012-12-12 | 2013-04-03 | 华为技术有限公司 | 数据备份方法及装置 |
CN103530388A (zh) * | 2013-10-22 | 2014-01-22 | 浪潮电子信息产业股份有限公司 | 一种云存储系统中提升性能的数据处理方法 |
CN106302659A (zh) * | 2016-08-02 | 2017-01-04 | 合肥奇也信息科技有限公司 | 一种基于云存储系统中提升访问数据快速存储方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104408091B (zh) * | 2014-11-11 | 2019-03-01 | 清华大学 | 分布式文件系统的数据存储方法及系统 |
RU2634224C2 (ru) * | 2015-06-30 | 2017-10-24 | Общество С Ограниченной Ответственностью "Яндекс" | Система и способ и постоянный машиночитаемый носитель дублирования файлов на клиентском устройстве для облачного хранилища |
CN106294585B (zh) * | 2016-07-28 | 2019-10-18 | 上海倍增智能科技有限公司 | 一种云计算平台下的存储方法 |
-
2017
- 2017-12-08 CN CN201711298223.0A patent/CN108052284B/zh active Active
-
2018
- 2018-03-15 WO PCT/CN2018/079158 patent/WO2019109538A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080082525A1 (en) * | 2006-09-29 | 2008-04-03 | Cha Myung Hoon | File storage system, file storing method and file searching method therein |
CN102882983A (zh) * | 2012-10-22 | 2013-01-16 | 南京云创存储科技有限公司 | 一种云存储系统中提升并发访问性能的数据快速存储方法 |
CN103019887A (zh) * | 2012-12-12 | 2013-04-03 | 华为技术有限公司 | 数据备份方法及装置 |
CN103530388A (zh) * | 2013-10-22 | 2014-01-22 | 浪潮电子信息产业股份有限公司 | 一种云存储系统中提升性能的数据处理方法 |
CN106302659A (zh) * | 2016-08-02 | 2017-01-04 | 合肥奇也信息科技有限公司 | 一种基于云存储系统中提升访问数据快速存储方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020006715A1 (zh) * | 2018-07-04 | 2020-01-09 | 华为技术有限公司 | 一种数据存储方法、装置及相关设备 |
CN110881277A (zh) * | 2018-07-04 | 2020-03-13 | 华为技术有限公司 | 一种数据存储方法、装置及相关设备 |
WO2020215580A1 (zh) * | 2019-04-23 | 2020-10-29 | 平安科技(深圳)有限公司 | 一种分布式全局数据去重方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108052284B (zh) | 2020-11-06 |
WO2019109538A1 (zh) | 2019-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7117294B1 (en) | Method and system for archiving and compacting data in a data storage array | |
CN110199273B (zh) | 用于在多维数据库环境中的一次扫描中进行加载、聚合和批量计算的系统和方法 | |
US10713589B1 (en) | Consistent sort-based record-level shuffling of machine learning data | |
US8799291B2 (en) | Forensic index method and apparatus by distributed processing | |
KR20170054299A (ko) | 메모리 관리 시의 중복 제거를 위해서 기준 세트로 기준 블록을 취합하는 기법 | |
CN106021256A (zh) | 使用基于云的对象存储的消除重复分布式文件系统 | |
CN107918612A (zh) | 键值存储系统数据结构的实现方法和装置 | |
US10289707B2 (en) | Data skipping and compression through partitioning of data | |
CN107229730A (zh) | 数据查询方法及装置 | |
CN101556666A (zh) | 建立审计模型的方法、装置及审计系统 | |
CN107229420A (zh) | 数据存储方法、读取方法、删除方法和数据操作系统 | |
CN105426375B (zh) | 一种关系网络的计算方法及装置 | |
CN107918621A (zh) | 日志数据处理方法、装置及业务系统 | |
CN107545021A (zh) | 一种数据存储方法及装置 | |
CN105630566A (zh) | 应用页面加载时长的确定方法及装置 | |
US8676850B2 (en) | Prioritization mechanism for deletion of chunks of deduplicated data objects | |
CN106407442B (zh) | 一种海量文本数据处理方法及装置 | |
CN108052284A (zh) | 一种分布式数据存储方法及装置 | |
CN108319608A (zh) | 访问日志存储查询的方法、装置及系统 | |
CN111414410A (zh) | 数据处理方法、装置、设备和存储介质 | |
CN103365923A (zh) | 用于评估数据库的分区方案的方法和装置 | |
CN106919617A (zh) | 一种压缩存储方法和装置 | |
CN112948460A (zh) | 网络流量数据的筛选方法及装置、计算机可读存储介质 | |
CN107563219B (zh) | 一种数据库管理方法及装置 | |
CN104750743A (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 |