CN102004761A - 数据存储方法和系统 - Google Patents
数据存储方法和系统 Download PDFInfo
- Publication number
- CN102004761A CN102004761A CN 201010532143 CN201010532143A CN102004761A CN 102004761 A CN102004761 A CN 102004761A CN 201010532143 CN201010532143 CN 201010532143 CN 201010532143 A CN201010532143 A CN 201010532143A CN 102004761 A CN102004761 A CN 102004761A
- Authority
- CN
- China
- Prior art keywords
- server
- data
- storaging mark
- servers
- storage
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据存储方法,根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及一个以上第一数据与一个以上第二数据的序列标识的对应关系;根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;根据一个以上第二数据的序列标识,分别获取每个第二数据的存储标识;根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。本发明还提供一种采用上述数据存储方法的数据存储系统。采用本发明提供的数据存储方法和系统,能够实现准确、高效的数据存储。
Description
技术领域
本发明涉及数据存储技术,尤其涉及一种数据存储方法和系统。
背景技术
在计算机系统中,通常需要用到数据存储系统。随着网络应用的迅速发展,对数据存储具有访问量大、数据量大、高并发等要求,为应对突然剧增的访问量,需要在短时间内迅速扩大数据存储系统规模。
目前的数据存储采用关系型数据库。现有的关系型数据库,在扩大数据存储系统规模时,通常采用数据垂直分区方法或数据水平分区方法。现有的数据垂直分区方法,要求每一台服务器必须能够存储全部数据。现有的数据水平分区方法,采用人工划分数据,将全部数据按照水平分区的总个数平均分成相同份数的数据,每个分区分别存储其中的一份数据。
采用现有的数据垂直分区方法,由于每一台服务器均存储全部数据,对于数据量大的情况,需要大量服务器资源,数据存储系统庞大,存储效率低。而采用现有的数据水平分区方法,由于每个分区只存储其中一部分数据,一旦有分区损坏,则会影响整个数据存储系统的服务应用,数据存储的准确率低。并且,采用人工划分数据,对于数据量大的情况,需要大量的处理时间,数据存储的效率低,维护成本高。
总之,采用现有的数据存储方法和系统,在存在大量数据量要求的网络应用中,无法实现准确、高效的数据存储。
发明内容
本发明提供一种数据存储方法,用以解决现有技术中的缺陷,实现准确、高效的数据存储。
本发明还提供一种数据存储系统,用以解决现有技术中的缺陷,实现准确、高效的数据存储。
本发明提供一种数据存储方法,包括:
根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及所述一个以上第一数据与一个以上第二数据的序列标识的对应关系;
根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;
根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识;
根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。
如上所述的数据存储方法,其中,所述根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围包括:对所述两个以上第二服务器的标识进行映射运算,获取所述两个以上第二服务器的标识的映射值;根据所述两个以上第二服务器的标识的映射值,将映射值集合划分为两个以上映射值区间;将所述两个以上映射值区间分别对应所述两个以上第二服务器,作为该第二服务器的存储标识范围;
所述根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识包括:对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。
如上所述的数据存储方法,其中,所述根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器包括:
根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定所述每个第二数据对应的主第二服务器;根据所述每个第二数据对应的主第二服务器和预设的冗余参数,确定所述每个第二数据对应的一个以上备份第二服务器;将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器。
如上所述的数据存储方法,其中,所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器包括:将所述每个第二数据和存储时间戳存储到该第二数据对应的主第二服务器和备份第二服务器;
所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器之后还包括:当所述主第二服务器和所述一个以上备份第二服务器中的任意一个第二服务器存储完成时,返回存储操作成功报告。
如上所述的数据存储方法,其中,所述将该第二数据存储到对应的第二服务器之后还包括:
关闭所述两个以上第二服务器中的一个以上第二服务器;将存储标识属于关闭的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标记;重新开启关闭的所述一个以上第二服务器;根据第二数据标记的所述第二服务器的标识,将该第二数据存储到该标识对应的第二服务器;
和/或,
增加一个以上第二服务器;根据所述两个以上第二服务器和增加的所述一个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;将存储在所述两个以上第二服务器中的存储标识属于增加的所述一个以上第二服务器的存储标识范围的第二数据,从所述两个以上第二服务器存储到增加的所述一个以上第二服务器。
本发明还提供一种数据存储系统,包括:
第一服务器,用于根据关系型数据存储方法存储一个以上第一类数据以及一个以上第一类数据与一个以上第二类数据的标识的对应关系;
两个以上第二服务器,用于根据每个第二服务器的标识分别获取每个第二服务器的存储标识范围,根据所述一个以上第二数据的序列标识分别获取每个第二数据的存储标识,根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围将该第二数据存储到对应的第二服务器。
如上所述的数据存储系统,其中,所述两个以上第二服务器具体用于对自身的标识进行映射运算,获取所述两个以上第二服务器的标识的映射值,根据所述两个以上第二服务器的标识的映射值将映射值集合划分为两个以上映射值区间,将所述两个以上映射值区间分别对应所述两个以上第二服务器,作为该第二服务器的存储标识范围,对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。
如上所述的数据存储系统,其中,所述两个以上第二服务器具体用于根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定所述每个第二数据对应的主第二服务器,根据所述每个第二数据对应的主第二服务器和预设的冗余参数,确定所述每个第二数据对应的一个以上备份第二服务器,将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器。
如上所述的数据存储系统,其中,所述两个以上第二服务器还用于将所述每个第二数据和存储时间戳存储到该第二数据对应的主第二服务器和备份第二服务器,当所述主第二服务器和所述一个以上备份第二服务器中的任意一个第二服务器存储完成时,返回存储操作成功报告。
如上所述的数据存储系统,其中,所述两个以上第二服务器还用于当其中的一个以上第二服务器关闭时,将存储标识属于关闭的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标记,当关闭的所述一个以上第二服务器重新开启时,根据第二数据标记的所述第二服务器的标识,将该第二数据存储到该标识对应的第二服务器;
和/或,
所述两个以上第二服务器还用于当增加一个以上第二服务器时,根据所述两个以上第二服务器和增加的所述一个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围,将存储在所述两个以上第二服务器中的存储标识属于增加的所述一个以上第二服务器的存储标识范围的第二数据,从所述两个以上第二服务器存储到增加的所述一个以上第二服务器。
由上述技术方案可知,本发明将数据划分为第一数据与第二数据,采用关系型数据库存储第一数据以及第一数据与第二数据的标识的对应关系,通过分别计算每个第二数据的存储标识和每个第二服务器的存储标识范围,将多个第二数据分别存储到多个第二服务器中。因此,在数据查询时,能够在关系型数据库中查询到第一数据以及对应的第二数据的标识,根据第二数据的标识从对应的第二服务器上查询到第二数据,从而实现了准确、高效的数据存储。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的数据存储方法的流程图;
图2为本发明实施例一的第二服务器的的逻辑关系示意图;
图3为本发明实施例二的数据存储方法的流程图;
图4为本发明实施例三的数据存储方法的流程图;
图5为本发明实施例三的第二服务器的的逻辑关系示意图;
图6为本发明实施例四的数据存储系统的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的数据存储方法的流程图。如图1所示,该方法包括如下过程。
步骤101:根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及一个以上第一数据与一个以上第二数据的序列标识的对应关系。
在本步骤中,第一数据为元数据,其包括但不限于:格式数据、结构数据和定义数据。第二数据为仓储数据,是数据存储系统中主要存储消耗的部分。第一数据的数据量不大,并且需要复杂条件查询,因此,在本步骤中,采用关系型数据存储方法,在关系型数据库中存储第一数据。具体的关系型数据存储方法可以采用任意现有的关系型数据存储方法,在此不再赘述。并且,本发明实施例对于第二数据的序列标识不做限制,较佳地,由于现有的数据存储方法采用键-值模型,对于每一条数据均包括键与值两部分,其中,键为该数据的标识,每一条数据均有唯一的一一对应的键,值为该数据的具体数据内容,因此,本发明实施例中,采用第二数据的键作为该第二数据的序列标识,在第一服务器中,存储第一数据以及第一数据与第二数据的键的对应关系。
步骤102:根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围。
本步骤的具体方法包括:首先,对两个以上第二服务器的标识进行映射运算,获取两个以上第二服务器的标识的映射值。本发明实施例对第二服务器的标识和映射运算的具体类型不作限制,较佳地,第二服务器的标识可以为第二服务器的物理(MAC)地址,映射运算可以采用哈希运算。然后,根据两个以上第二服务器的标识的映射值,将映射值集合划分为两个以上映射值区间。最后,将上述两个以上映射值区间分别对应上述两个以上第二服务器,作为该第二服务器的存储标识范围。以下通过一个具体实施例对本步骤的具体方法进行说明。图2为本发明实施例一的第二服务器的的逻辑关系示意图。如图2所示,在本实施例中,以包括四台第二服务器为例,分别为:第二服务器A、第二服务器B、第二服务器C和第二服务器D。首先,对上述四台第二服务器的MAC地址进行哈希运算,获得如下结果:第二服务器A的哈希值为C015D5A;第二服务器B的哈希值为280DA66A;第二服务器C的哈希值为40CD6D31;第二服务器D的哈希值为950A069E。然后,根据以上4个哈希值,将整个哈希值集合划分为5个哈希值区间,分别为:(0,C015D5A]、(C015D5A,280DA66A]、(280DA66A,40CD6D31]、(40CD6D31,950A069E]和(950A069E,MAX]。最后,将上述5个哈希值区间分别对应上述4个第二服务器,作为该第二服务器的存储标识范围,具体为,第二服务器B、第二服务器C和第二服务器D以包含自身哈希值的区间作为存储标识范围,第二服务器A以其余的所有区间作为存储标识范围,因此,确定第二服务器A的存储标识范围为(0,C015D5A]∪(950A069E,MAX];第二服务器B的存储标识范围为(C015D5A,280DA66A];第二服务器C的存储标识范围为(280DA66A,40CD6D31];第二服务器D的存储标识范围为(40CD6D31,950A069E]。
步骤103:根据一个以上第二数据的序列标识,分别获取每个第二数据的存储标识。
本步骤的具体方法包括:对一个以上第二数据的序列标识进行映射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。本步骤中所采用的映射运算与步骤202中的映射运算相同,如果步骤202中采用哈希运算,则本步骤203中也采用哈希运算。本发明实施例对第二数据的序列标识的具体类型不作限制。较佳地,第二数据的序列标识可以为第二数据的键。步骤202中以图2所示的第二服务器为例,则在步骤203中,对每个第二数据的键进行哈希运算,以运算获得的哈希值作为该第二数据的存储标识。
步骤104:根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。
本步骤的具体方法包括:首先,根据每个第二数据的存储标识和每个第二服务器的存储标识范围,确定每个第二数据对应的主第二服务器。仍以上述具体实施例为例,以第二数据的存储标识为280DA66A为例,由于280DA66A属于区间(C015D5A,280DA66A],则可以确定该第二数据对应的主第二服务器为第二服务器B。然后,根据每个第二数据对应的主第二服务器和预设的冗余参数,确定每个第二数据对应的一个以上备份第二服务器。具体地,可以根据数据存储系统的容量以及对系统可靠性的要求,预先设置冗余参数,一种较佳的实施方式是,预先设置冗余参数为3。根据主服务器为第二服务器B,并且冗余参数为3,将存储标识范围在第二服务器B之后的2个第二服务器设为备份第二服务器,即,备份第二服务器为第二服务器C和第二服务器D。最后,将每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器。将存储标识为280DA66A的第二数据分别存储到第二服务器B、第二服务器C和第二服务器D上。
进一步地,在同时向主服务器和备份服务器存储第二数据的情况下,为了保证数据存储系统的响应速度,在存储每个第二数据时,数据存储系统不必等所有主服务器和备份服务器均完成存储操作时才返回存储操作成功报告,而是当主第二服务器和备份第二服务器中的任意一个第二服务器存储完成时,就返回存储操作成功报告。在返回存储操作成功报告之后,继续完成其余第二服务器的存储操作。相应地,为了保证在数据读取时能够获取到正确的第二数据,在将每个第二数据存储到该第二数据对应的主第二服务器和备份第二服务器的时,保存存储时间戳,将该第二数据和存储时间戳一同存储到该第二数据对应的主第二服务器和备份第二服务器中。在读取第二数据时,从主第二服务器和备份第二服务器中读取出该第二数据和对应的存储时间戳,通过比较存储时间戳,选择读取存储时间戳为最新的第二数据。
在本发明实施例一中,将数据分为两部分,分别为:第一数据与第二数据。对于第一数据,采用关系型数据库存储第一数据以及第一数据与第二数据的标识的对应关系;对于第二数据,通过分别计算每个第二数据的存储标识和每个第二服务器的存储标识范围,将多个第二数据分别存储到多个第二服务器中。因此,在数据查询时,能够在关系型数据库中查询到第一数据以及对应的第二数据的标识,根据第二数据的标识从对应的第二服务器上查询到第二数据,从而实现了准确、高效的数据存储。
图3为本发明实施例二的数据存储方法的流程图。如图3所示,该方法包括如下过程。
步骤101:根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及一个以上第一数据与一个以上第二数据的序列标识的对应关系。
步骤102:根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围。
步骤103:根据一个以上第二数据的序列标识,分别获取每个第二数据的存储标识。
步骤104:根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。
在执行上述步骤101至步骤104之后,已经完成一次数据存储过程。在本发明实施例二中,还可以在数据存储的过程中对上述两个以上第二服务器进行实时检测,如果发现其中有第二服务器发生故障,可以暂时关闭发生故障的第二服务器,在故障消除后再重新开启该第二服务器。在这一过程中,本发明实施例二的数据存储方法还可以包括以下步骤。
步骤305:关闭上述两个以上第二服务器中的一个以上第二服务器。
在本步骤中,仍以图2所示的4个第二服务器为例,以其中第二服务器C发生故障为例,则关闭该第二服务器C。
步骤306:将存储标识属于关闭的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标记。
在本步骤中,在第二服务器C关闭后,如果发生数据存储操作,对于存储标识在第二服务器C的存储标识范围内的第二数据,将其存储到存储标识范围在第二服务器C之后的第二服务器上,即存储到第二服务器D上,并且,对该第二数据进行标记,将其标记上第二服务器C的标识。
步骤307:重新开启关闭的上述一个以上第二服务器。
在本步骤中,当第二服务器C故障解除后,重新开启第二服务器C。
步骤308:根据第二数据标记的第二服务器的标识,将该第二数据存储到该标识对应的第二服务器。
因为在步骤306中,对于存储标识属于第二服务器C的第二数据,在将其存储到第二服务器D的同时用第二服务器C的标识对其进行了标记,因此,在步骤308中,根据存储在第二服务器D中的第二数据的标记,将带有第二服务器C的标识的第二数据存储到第二服务器C中,以保证在按照该第二数据的键读取数据时,能够在准确的第二服务器C中读取到该第二数据,从而保证数据存储的准确性。
在本发明实施例二中,当一个或多个第二服务器发生故障时,关闭发生故障的第二服务器,将存储标识属于该第二服务器的第二数据临时存储在存储标识范围在该第二服务器之后的第二服务器中,并且对其进行标记,当故障解除后,重新开启该第二服务器,并将带有标记的临时存储的第二数据存储到该重新开启的第二服务器中,从而进一步提高了数据存储的效率和准确性。
图4为本发明实施例三的数据存储方法的流程图。如图4所示,该方法包括如下过程。
步骤101:根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及一个以上第一数据与一个以上第二数据的序列标识的对应关系。
步骤102:根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围。
步骤103:根据一个以上第二数据的序列标识,分别获取每个第二数据的存储标识。
步骤104:根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。
在执行上述步骤101至步骤104之后,已经完成一次数据存储过程。在本发明实施例三中,为了提高数据存储系统的可扩展性,还可以在数据存储的过程中在系统中增加第二服务器。在这一过程中,本发明实施例三的数据存储方法还可以包括以下步骤。
步骤405:增加一个以上第二服务器。
在本步骤中,通过一个具体实施例对第二服务器的增加进行说明。图5为本发明实施例三的第二服务器的逻辑关系示意图,在本实施例中,以在图3所示的第二服务器中增加一个第二服务器为例。将新增加的第二服务器标记为第二服务器E。增加一个以上第二服务器的方法可以根据本实施例中增加一个第二服务器的方法同理获得,在此不再赘述。
步骤406:根据上述两个以上第二服务器和增加的上述一个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围。
在本步骤中,首先,分别对第二服务器A、第二服务器B、第二服务器C与第二服务器D的MAC地址进行哈希运算,其结果为:第二服务器A的哈希值为C015D5A;第二服务器B的哈希值为280DA66A;第二服务器C的哈希值为40CD6D31;第二服务器D的哈希值为950A069E。并且,对第二服务器E的MAC地址进行哈希运算,获得其哈希值为59EB1A。然后,因为增加的第二服务器E的哈希值位于第二服务器C与第二服务器D的哈希值之间,因此,增加第二服务器E仅影响第二服务器D的存储标识范围,其它第二服务器的存储标识范围不会发生改变。具体地,第二服务器A的存储标识范围仍为(0,C015D5A]∪(950A069E,MAX];第二服务器B的存储标识范围仍为(C015D5A,280DA66A];第二服务器C的存储标识范围仍为(280DA66A,40CD6D31]。而第二服务器E的存储标识范围为(40CD6D31,59EB1A],第二服务器D的存储标识范围为(59EB1A,950A069E]。
步骤407:将存储在上述两个以上第二服务器中的存储标识属于增加的上述一个以上第二服务器的存储标识范围的第二数据,从上述两个以上第二服务器存储到增加的上述一个以上第二服务器。
在本步骤中,因为在增加第二服务器E之前,存储标识属于(40CD6D31,59EB1A]区间的第二数据已经存储到第二服务器D中,因此,在增加了第二服务器E之后,在步骤407中,将已经存储到第二服务器D中的存储标识属于(40CD6D31,59EB1A]区间的第二数据存储到第二服务器E中。
在本发明实施例三中,当数据存储系统中增加第二服务器时,根据该增加的第二服务器的标识确定存储标识范围,将存储在原有第二服务器中的存储标识属于增加的第二服务器的存储标识范围的第二数据,从原有的第二服务器存储到增加的第二服务器中,从而既保证了数据存储的准确性,又扩展了数据存储系统容量,进一步提高了数据存储效率。
在上述本发明实施例一、实施例二和实施例三中,步骤102与步骤103的执行顺序可以互换,也可以同时执行。
需要说明的是:对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
以上通过三个实施例对本发明的数据存储方法进行了说明,下面对采用上述方法的数据存储系统进行介绍。图6为本发明实施例四的数据存储系统的结构示意图。如图6所示,该数据存储系统包括:第一服务器61和两个以上第二服务器62。
其中,第一服务器61的数量可以为一个或多个。第一服务器61根据关系型数据存储方法存储一个以上第一类数据以及一个以上第一类数据与一个以上第二类数据的标识的对应关系。
第二服务器62的数量为两个或两个以上。两个或两个以上第二服务器62根据每个第二服务器62的标识分别获取每个第二服务器62的存储标识范围,根据一个以上第二数据的序列标识分别获取每个第二数据的存储标识,根据每个第二数据的存储标识和每个第二服务器62的存储标识范围将该第二数据存储到对应的第二服务器62。
具体地,该两个以上第二服务器62对自身的标识进行映射运算,获取两个以上第二服务器62的标识的映射值,根据两个以上第二服务器62的标识的映射值将映射值集合划分为两个以上映射值区间,将两个以上映射值区间分别对应两个以上第二服务器62,作为该第二服务器62的存储标识范围。该两个以上第二服务器62对一个以上第二数据的序列标识进行映射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。
具体地,两个以上第二服务器62根据每个第二数据的存储标识和每个第二服务器62的存储标识范围,确定每个第二数据对应的主第二服务器62,根据每个第二数据对应的主第二服务器62和预设的冗余参数,确定每个第二数据对应的一个以上备份第二服务器62,将每个第二数据存储到该第二数据对应的主第二服务器62和一个以上备份第二服务器62。
进一步地,两个以上第二服务器62还将每个第二数据和存储时间戳存储到该第二数据对应的主第二服务器62和备份第二服务器62,当主第二服务器62和一个以上备份第二服务器62中的任意一个第二服务器62存储完成时,返回存储操作成功报告。
在本发明实施例四中,数据存储系统包括第一服务器和两个以上第二服务器。其中,第一服务器采用关系型数据库存储第一数据以及第一数据与第二数据的标识的对应关系;根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将多个第二数据存储到多个第二服务器。因此,在数据查询时,能够在第一服务器中查询到第一数据以及对应的第二数据的标识,根据第二数据的标识从对应的第二服务器上查询到第二数据,从而实现了准确、高效的数据存储。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种数据存储方法,其特征在于,包括:
根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及所述一个以上第一数据与一个以上第二数据的序列标识的对应关系;
根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;
根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识;
根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。
2.根据权利要求1所述的数据存储方法,其特征在于,
所述根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围包括:对所述两个以上第二服务器的标识进行映射运算,获取所述两个以上第二服务器的标识的映射值;根据所述两个以上第二服务器的标识的映射值,将映射值集合划分为两个以上映射值区间;将所述两个以上映射值区间分别对应所述两个以上第二服务器,作为该第二服务器的存储标识范围;
所述根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识包括:对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。
3.根据权利要求1或2所述的数据存储方法,其特征在于,
所述根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器包括:
根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定所述每个第二数据对应的主第二服务器;
根据所述每个第二数据对应的主第二服务器和预设的冗余参数,确定所述每个第二数据对应的一个以上备份第二服务器;
将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器。
4.根据权利要求3所述的数据存储方法,其特征在于,
所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器包括:将所述每个第二数据和存储时间戳存储到该第二数据对应的主第二服务器和备份第二服务器;
所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器之后还包括:当所述主第二服务器和所述一个以上备份第二服务器中的任意一个第二服务器存储完成时,返回存储操作成功报告。
5.根据权利要求2所述的数据存储方法,其特征在于,所述将该第二数据存储到对应的第二服务器之后还包括:
关闭所述两个以上第二服务器中的一个以上第二服务器;将存储标识属于关闭的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标记;重新开启关闭的所述一个以上第二服务器;根据第二数据标记的所述第二服务器的标识,将该第二数据存储到该标识对应的第二服务器;
和/或,
增加一个以上第二服务器;根据所述两个以上第二服务器和增加的所述一个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;将存储在所述两个以上第二服务器中的存储标识属于增加的所述一个以上第二服务器的存储标识范围的第二数据,从所述两个以上第二服务器存储到增加的所述一个以上第二服务器。
6.一种数据存储系统,其特征在于,包括:
第一服务器,用于根据关系型数据存储方法存储一个以上第一类数据以及一个以上第一类数据与一个以上第二类数据的标识的对应关系;
两个以上第二服务器,用于根据每个第二服务器的标识分别获取每个第二服务器的存储标识范围,根据所述一个以上第二数据的序列标识分别获取每个第二数据的存储标识,根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围将该第二数据存储到对应的第二服务器。
7.根据权利要求6所述的数据存储系统,其特征在于,
所述两个以上第二服务器具体用于对自身的标识进行映射运算,获取所述两个以上第二服务器的标识的映射值,根据所述两个以上第二服务器的标识的映射值将映射值集合划分为两个以上映射值区间,将所述两个以上映射值区间分别对应所述两个以上第二服务器,作为该第二服务器的存储标识范围,对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。
8.根据权利要求6或7所述的数据存储系统,其特征在于,
所述两个以上第二服务器具体用于根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定所述每个第二数据对应的主第二服务器,根据所述每个第二数据对应的主第二服务器和预设的冗余参数,确定所述每个第二数据对应的一个以上备份第二服务器,将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器。
9.根据权利要求8所述的数据存储系统,其特征在于,
所述两个以上第二服务器还用于将所述每个第二数据和存储时间戳存储到该第二数据对应的主第二服务器和备份第二服务器,当所述主第二服务器和所述一个以上备份第二服务器中的任意一个第二服务器存储完成时,返回存储操作成功报告。
10.根据权利要求7所述的数据存储系统,其特征在于,
所述两个以上第二服务器还用于当其中的一个以上第二服务器关闭时,将存储标识属于关闭的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标记,当关闭的所述一个以上第二服务器重新开启时,根据第二数据标记的所述第二服务器的标识,将该第二数据存储到该标识对应的第二服务器;
和/或,
所述两个以上第二服务器还用于当增加一个以上第二服务器时,根据所述两个以上第二服务器和增加的所述一个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围,将存储在所述两个以上第二服务器中的存储标识属于增加的所述一个以上第二服务器的存储标识范围的第二数据,从所述两个以上第二服务器存储到增加的所述一个以上第二服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010532143 CN102004761B (zh) | 2010-11-01 | 2010-11-01 | 数据存储方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010532143 CN102004761B (zh) | 2010-11-01 | 2010-11-01 | 数据存储方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102004761A true CN102004761A (zh) | 2011-04-06 |
CN102004761B CN102004761B (zh) | 2012-12-26 |
Family
ID=43812124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010532143 Expired - Fee Related CN102004761B (zh) | 2010-11-01 | 2010-11-01 | 数据存储方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102004761B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799628A (zh) * | 2012-06-21 | 2012-11-28 | 新浪网技术(中国)有限公司 | 在key-value数据库中进行数据分区的方法和装置 |
CN109408599A (zh) * | 2018-09-20 | 2019-03-01 | 佛山科学技术学院 | 一种大数据的分布式存储方法 |
CN109933580A (zh) * | 2019-02-14 | 2019-06-25 | 北京奇艺世纪科技有限公司 | 训练数据生成方法、装置及服务器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188097A1 (en) * | 2002-03-29 | 2003-10-02 | Holland Mark C. | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data |
CN1971562A (zh) * | 2006-11-29 | 2007-05-30 | 华中科技大学 | 面向对象存储系统中的对象分布方法 |
-
2010
- 2010-11-01 CN CN 201010532143 patent/CN102004761B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030188097A1 (en) * | 2002-03-29 | 2003-10-02 | Holland Mark C. | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data |
CN1971562A (zh) * | 2006-11-29 | 2007-05-30 | 华中科技大学 | 面向对象存储系统中的对象分布方法 |
Non-Patent Citations (2)
Title |
---|
《中国优秀硕士学位论文全文数据库信息科技辑(2008年)》 20080315 曹建 一种新的基于分布式哈希表DHT的P2P-SIP网络电话研究与设计 第2.1.4-2.2节 1-10 , 第3期 * |
《全国网络与信息安全技术研讨会(2007)》 20071231 赵竞 等 广域网分布式哈希表存储副本可靠性的维护 第2-3.1节 3-4,8-9 , * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102799628A (zh) * | 2012-06-21 | 2012-11-28 | 新浪网技术(中国)有限公司 | 在key-value数据库中进行数据分区的方法和装置 |
CN109408599A (zh) * | 2018-09-20 | 2019-03-01 | 佛山科学技术学院 | 一种大数据的分布式存储方法 |
CN109408599B (zh) * | 2018-09-20 | 2021-09-28 | 佛山科学技术学院 | 一种大数据的分布式存储方法 |
CN109933580A (zh) * | 2019-02-14 | 2019-06-25 | 北京奇艺世纪科技有限公司 | 训练数据生成方法、装置及服务器 |
CN109933580B (zh) * | 2019-02-14 | 2020-12-25 | 北京奇艺世纪科技有限公司 | 训练数据生成方法、装置及服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN102004761B (zh) | 2012-12-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10725692B2 (en) | Data storage method and apparatus | |
CN102129442B (zh) | 一种分布式数据库系统和数据访问方法 | |
US20140310245A1 (en) | Partition level backup and restore of a massively parallel processing database | |
CN105653560B (zh) | 数据归档方法和装置 | |
CN103902623A (zh) | 用于在存储系统上存取文件的方法和系统 | |
CN103744906A (zh) | 一种数据同步系统、方法及装置 | |
CN102184229B (zh) | 一种海量rfid标签信息的内存数据存储方法 | |
CN104536904A (zh) | 一种数据管理的方法、设备与系统 | |
CN103902702A (zh) | 一种数据存储系统和存储方法 | |
CN104008111A (zh) | 一种数据的存储管理方法及装置 | |
CN101308471A (zh) | 一种恢复数据的方法及装置 | |
CN105095247A (zh) | 符号数据分析方法和系统 | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN106897338A (zh) | 一种针对数据库的数据修改请求处理方法及装置 | |
CN110413631B (zh) | 一种数据查询方法及装置 | |
CN101458655B (zh) | 内存管理方法、系统及内存控制装置 | |
CN107153680B (zh) | 一种分布式内存数据库在线扩展节点的方法及系统 | |
US20050154786A1 (en) | Ordering updates in remote copying of data | |
CN116166849A (zh) | 一种数据管理方法、装置、设备及存储介质 | |
CN109491834A (zh) | 一种应用于数据库的数据恢复方法及装置 | |
CN102004761B (zh) | 数据存储方法和系统 | |
CN103763126A (zh) | 监控数据库的系统、方法及数据库监控装置 | |
CN105205178A (zh) | 一种多进程访问内存数据库系统 | |
CN102768672B (zh) | 一种磁盘空间管理方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20151030 Address after: 100015 Beijing City, Chaoyang District Shun Street No. 6 hospital of Beijing city LINK12 Patentee after: Beijing SA data Technology Co., Ltd. Address before: 266555 Shandong Jiangshan Qingdao economic and Technological Development Zone Branch Road No. 458 building 18 layer Patentee before: Qingdao Pojaa Intelligent Information Co., Ltd. |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121226 Termination date: 20171101 |
|
CF01 | Termination of patent right due to non-payment of annual fee |