数据存储方法和系统的制作方法

文档序号:6335236阅读:164来源:国知局
专利名称:数据存储方法和系统的制作方法
技术领域
本发明涉及数据存储技术,尤其涉及一种数据存储方法和系统。
背景技术
在计算机系统中,通常需要用到数据存储系统。随着网络应用的迅速发展,对数据 存储具有访问量大、数据量大、高并发等要求,为应对突然剧增的访问量,需要在短时间内 迅速扩大数据存储系统规模。目前的数据存储采用关系型数据库。现有的关系型数据库,在扩大数据存储系统 规模时,通常采用数据垂直分区方法或数据水平分区方法。现有的数据垂直分区方法,要求 每一台服务器必须能够存储全部数据。现有的数据水平分区方法,采用人工划分数据,将全 部数据按照水平分区的总个数平均分成相同份数的数据,每个分区分别存储其中的一份数 据。采用现有的数据垂直分区方法,由于每一台服务器均存储全部数据,对于数据量 大的情况,需要大量服务器资源,数据存储系统庞大,存储效率低。而采用现有的数据水平 分区方法,由于每个分区只存储其中一部分数据,一旦有分区损坏,则会影响整个数据存储 系统的服务应用,数据存储的准确率低。并且,采用人工划分数据,对于数据量大的情况,需 要大量的处理时间,数据存储的效率低,维护成本高。总之,采用现有的数据存储方法和系统,在存在大量数据量要求的网络应用中,无 法实现准确、高效的数据存储。

发明内容
本发明提供一种数据存储方法,用以解决现有技术中的缺陷,实现准确、高效的数 据存储。本发明还提供一种数据存储系统,用以解决现有技术中的缺陷,实现准确、高效的 数据存储。本发明提供一种数据存储方法,包括根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及所述一个以 上第一数据与一个以上第二数据的序列标识的对应关系;根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识;根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该 第二数据存储到对应的第二服务器。如上所述的数据存储方法,其中,所述根据两个以上第二服务器的标识,分别获取 每个第二服务器的存储标识范围包括对所述两个以上第二服务器的标识进行映射运算, 获取所述两个以上第二服务器的标识的映射值;根据所述两个以上第二服务器的标识的映 射值,将映射值集合划分为两个以上映射值区间;将所述两个以上映射值区间分别对应所述两个以上第二服务器,作为该第二服务器的存储标识范围;所述根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识 包括对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标 识的映射值作为该第二数据的存储标识。如上所述的数据存储方法,其中,所述根据所述每个第二数据的存储标识和所述 每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器包括 根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定 所述每个第二数据对应的主第二服务器;根据所述每个第二数据对应的主第二服务器和预 设的冗余参数,确定所述每个第二数据对应的一个以上备份第二服务器;将所述每个第二 数据存储到该第二数据对应的主第二服务器和一个以上备份第二服务器。如上所述的数据存储方法,其中,所述将所述每个第二数据存储到该第二数据对 应的主第二服务器和一个以上备份第二服务器包括将所述每个第二数据和存储时间戳存 储到该第二数据对应的主第二服务器和备份第二服务器;所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备 份第二服务器之后还包括当所述主第二服务器和所述一个以上备份第二服务器中的任意 一个第二服务器存储完成时,返回存储操作成功报告。如上所述的数据存储方法,其中,所述将该第二数据存储到对应的第二服务器之 后还包括关闭所述两个以上第二服务器中的一个以上第二服务器;将存储标识属于关闭 的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的 存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标 记;重新开启关闭的所述一个以上第二服务器;根据第二数据标记的所述第二服务器的标 识,将该第二数据存储到该标识对应的第二服务器;禾口/ 或,增加一个以上第二服务器;根据所述两个以上第二服务器和增加的所述一个以上 第二服务器的标识,分别获取每个第二服务器的存储标识范围;将存储在所述两个以上第 二服务器中的存储标识属于增加的所述一个以上第二服务器的存储标识范围的第二数据, 从所述两个以上第二服务器存储到增加的所述一个以上第二服务器。本发明还提供一种数据存储系统,包括第一服务器,用于根据关系型数据存储方法存储一个以上第一类数据以及一个以 上第一类数据与一个以上第二类数据的标识的对应关系;两个以上第二服务器,用于根据每个第二服务器的标识分别获取每个第二服务器 的存储标识范围,根据所述一个以上第二数据的序列标识分别获取每个第二数据的存储标 识,根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围将该第二数 据存储到对应的第二服务器。如上所述的数据存储系统,其中,所述两个以上第二服务器具体用于对自身的标 识进行映射运算,获取所述两个以上第二服务器的标识的映射值,根据所述两个以上第二 服务器的标识的映射值将映射值集合划分为两个以上映射值区间,将所述两个以上映射值 区间分别对应所述两个以上第二服务器,作为该第二服务器的存储标识范围,对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标识的映射值作为该 第二数据的存储标识。如上所述的数据存储系统,其中,所述两个以上第二服务器具体用于根据所述每 个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定所述每个第二数据对 应的主第二服务器,根据所述每个第二数据对应的主第二服务器和预设的冗余参数,确定 所述每个第二数据对应的一个以上备份第二服务器,将所述每个第二数据存储到该第二数 据对应的主第二服务器和一个以上备份第二服务器。如上所述的数据存储系统,其中,所述两个以上第二服务器还用于将所述每个第 二数据和存储时间戳存储到该第二数据对应的主第二服务器和备份第二服务器,当所述主 第二服务器和所述一个以上备份第二服务器中的任意一个第二服务器存储完成时,返回存 储操作成功报告。
如上所述的数据存储系统,其中,所述两个以上第二服务器还用于当其中的一个 以上第二服务器关闭时,将存储标识属于关闭的第二服务器的存储标识范围的第二数据, 存储到存储标识范围为该关闭的第二服务器的存储标识范围之后的第二服务器,并采用该 关闭的第二服务器的标识对该第二数据进行标记,当关闭的所述一个以上第二服务器重新 开启时,根据第二数据标记的所述第二服务器的标识,将该第二数据存储到该标识对应的 第二服务器;和/ 或,所述两个以上第二服务器还用于当增加一个以上第二服务器时,根据所述两个以 上第二服务器和增加的所述一个以上第二服务器的标识,分别获取每个第二服务器的存储 标识范围,将存储在所述两个以上第二服务器中的存储标识属于增加的所述一个以上第二 服务器的存储标识范围的第二数据,从所述两个以上第二服务器存储到增加的所述一个以
上第二服务器。由上述技术方案可知,本发明将数据划分为第一数据与第二数据,采用关系型数 据库存储第一数据以及第一数据与第二数据的标识的对应关系,通过分别计算每个第二数 据的存储标识和每个第二服务器的存储标识范围,将多个第二数据分别存储到多个第二服 务器中。因此,在数据查询时,能够在关系型数据库中查询到第一数据以及对应的第二数据 的标识,根据第二数据的标识从对应的第二服务器上查询到第二数据,从而实现了准确、高 效的数据存储。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根 据这些附图获得其他的附图。图1为本发明实施例一的数据存储方法的流程图;图2为本发明实施例一的第二服务器的的逻辑关系示意图;图3为本发明实施例二的数据存储方法的流程图;图4为本发明实施例三的数据存储方法的流程图5为本发明实施例三的第二服务器的的逻辑关系示意图;图6为本发明实施例四的数据存储系统的结构示意图。
具体实施例方式为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明实施例一提供的数据存储方法的流程图。如图1所示,该方法包括 如下过程。步骤101 根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及 一个以上第一数据与一个以上第二数据的序列标识的对应关系。在本步骤中,第一数据为元数据,其包括但不限于格式数据、结构数据和定义数 据。第二数据为仓储数据,是数据存储系统中主要存储消耗的部分。第一数据的数据量不 大,并且需要复杂条件查询,因此,在本步骤中,采用关系型数据存储方法,在关系型数据库 中存储第一数据。具体的关系型数据存储方法可以采用任意现有的关系型数据存储方法, 在此不再赘述。并且,本发明实施例对于第二数据的序列标识不做限制,较佳地,由于现有 的数据存储方法采用键-值模型,对于每一条数据均包括键与值两部分,其中,键为该数据 的标识,每一条数据均有唯一的一一对应的键,值为该数据的具体数据内容,因此,本发明 实施例中,采用第二数据的键作为该第二数据的序列标识,在第一服务器中,存储第一数据 以及第一数据与第二数据的键的对应关系。步骤102 根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标 识范围。本步骤的具体方法包括首先,对两个以上第二服务器的标识进行映射运算,获取 两个以上第二服务器的标识的映射值。本发明实施例对第二服务器的标识和映射运算的具 体类型不作限制,较佳地,第二服务器的标识可以为第二服务器的物理(MAC)地址,映射运 算可以采用哈希运算。然后,根据两个以上第二服务器的标识的映射值,将映射值集合划 分为两个以上映射值区间。最后,将上述两个以上映射值区间分别对应上述两个以上第二 服务器,作为该第二服务器的存储标识范围。以下通过一个具体实施例对本步骤的具体方 法进行说明。图2为本发明实施例一的第二服务器的的逻辑关系示意图。如图2所示,在 本实施例中,以包括四台第二服务器为例,分别为第二服务器A、第二服务器B、第二服务 器C和第二服务器D。首先,对上述四台第二服务器的MAC地址进行哈希运算,获得如下结 果第二服务器A的哈希值为C015D5A ;第二服务器B的哈希值为280DA66A ;第二服务器C 的哈希值为40⑶6D31 ;第二服务器D的哈希值为950A069E。然后,根据以上4个哈希值, 将整个哈希值集合划分为5个哈希值区间,分别为(0,C015D5A]、(C015D5A,280DA66A]、 (280DA66A,40CD6D31]、(40CD6D31,950A069E]和(950A069E,MAX]。最后,将上述 5 个哈希 值区间分别对应上述4个第二服务器,作为该第二服务器的存储标识范围,具体为,第二服 务器B、第二服务器C和第二服务器D以包含自身哈希值的区间作为存储标识范围,第二服 务器A以其余的所有区间作为存储标识范围,因此,确定第二服务器A的存储标识范围为(0,C015D5A] U (950A069E, MAX];第二服务器 B 的存储标识范围为(C015D5A, 280DA66A]; 第二服务器C的存储标识范围为(280DA66A,40⑶6D31];第二服务器D的存储标识范围为 (40CD6D3L950A069E]。
步骤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的哈希值为40⑶6D31 ;第二服务器D的哈希值为 950A069E。并且,对第二服务器E的MAC地址进行哈希运算,获得其哈希值为59EB1A。然 后,因为增加的第二服务器E的哈希值位于第二服务器C与第二服务器D的哈希值之间,因 此,增加第二服务器E仅影响第二服务器D的存储标识范围,其它第二服务器的存储标识范 围不会发生改变。具体地,第二服务器A的存储标识范围仍为(0,C015D5A] U (950A069E, MAX];第二服务器B的存储标识范围仍为(C015D5A,280DA66A];第二服务器C的存储标识 范围仍为(280DA66A,40CD6D31]。而第二服务器E的存储标识范围为(40CD6D31,59EB1A], 第二服务器D的存储标识范围为(59EB1A,950A069E]。步骤407 将存储在上述两个以上第二服务器中的存储标识属于增加的上述一个 以上第二服务器的存储标识范围的第二数据,从上述两个以上第二服务器存储到增加的上 述一个以上第二服务器。在本步骤中,因为在增加第二服务器E之前,存储标识属于(40⑶6D31,59EB1A]区 间的第二数据已经存储到第二服务器D中,因此,在增加了第二服务器E之后,在步骤407 中,将已经存储到第二服务器D中的存储标识属于(40⑶6D31,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存储完成时,返回存储操作成功报告。在本发明实施例四中,数据存储系统包括第一服务器和两个以上第二服务器。其 中,第一服务器采用关系型数据库存储第一数据以及第一数据与第二数据的标识的对应关 系;根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将多个第二数据存 储到多个第二服务器。因此,在数据查询时,能够在第一服务器中查询到第一数据以及对应 的第二数据的标识,根据第二数据的标识从对应的第二服务器上查询到第二数据,从而实 现了准确、高效的数据存储。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部 分,可以参见其他实施例的相关描述。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案,而非对其限制;尽 管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依然 可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替 换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精 神和范围。
权利要求
1. 一种数据存储方法,其特征在于,包括根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及所述一个以上第 一数据与一个以上第二数据的序列标识的对应关系;根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围; 根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识; 根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该第二 数据存储到对应的第二服务器。
2.根据权利要求1所述的数据存储方法,其特征在于,所述根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围包 括对所述两个以上第二服务器的标识进行映射运算,获取所述两个以上第二服务器的标 识的映射值;根据所述两个以上第二服务器的标识的映射值,将映射值集合划分为两个以 上映射值区间;将所述两个以上映射值区间分别对应所述两个以上第二服务器,作为该第 二服务器的存储标识范围;所述根据所述一个以上第二数据的序列标识,分别获取每个第二数据的存储标识包 括对所述一个以上第二数据的序列标识进行所述映射运算,以每个第二数据的序列标识 的映射值作为该第二数据的存储标识。
3.根据权利要求1或2所述的数据存储方法,其特征在于,所述根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,将该 第二数据存储到对应的第二服务器包括根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围,确定所述 每个第二数据对应的主第二服务器;根据所述每个第二数据对应的主第二服务器和预设的冗余参数,确定所述每个第二数 据对应的一个以上备份第二服务器;将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第二服 务器。
4.根据权利要求3所述的数据存储方法,其特征在于,所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第 二服务器包括将所述每个第二数据和存储时间戳存储到该第二数据对应的主第二服务器 和备份第二服务器;所述将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备份第 二服务器之后还包括当所述主第二服务器和所述一个以上备份第二服务器中的任意一个 第二服务器存储完成时,返回存储操作成功报告。
5.根据权利要求2所述的数据存储方法,其特征在于,所述将该第二数据存储到对应 的第二服务器之后还包括关闭所述两个以上第二服务器中的一个以上第二服务器;将存储标识属于关闭的第二 服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服务器的存储标 识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据进行标记;重 新开启关闭的所述一个以上第二服务器;根据第二数据标记的所述第二服务器的标识,将 该第二数据存储到该标识对应的第二服务器;和/或,增加一个以上第二服务器;根据所述两个以上第二服务器和增加的所述一个以上第二 服务器的标识,分别获取每个第二服务器的存储标识范围;将存储在所述两个以上第二服 务器中的存储标识属于增加的所述一个以上第二服务器的存储标识范围的第二数据,从所 述两个以上第二服务器存储到增加的所述一个以上第二服务器。
6.一种数据存储系统,其特征在于,包括第一服务器,用于根据关系型数据存储方法存储一个以上第一类数据以及一个以上第 一类数据与一个以上第二类数据的标识的对应关系;两个以上第二服务器,用于根据每个第二服务器的标识分别获取每个第二服务器的存 储标识范围,根据所述一个以上第二数据的序列标识分别获取每个第二数据的存储标识, 根据所述每个第二数据的存储标识和所述每个第二服务器的存储标识范围将该第二数据 存储到对应的第二服务器。
7.根据权利要求6所述的数据存储系统,其特征在于,所述两个以上第二服务器具体用于对自身的标识进行映射运算,获取所述两个以上 第二服务器的标识的映射值,根据所述两个以上第二服务器的标识的映射值将映射值集合 划分为两个以上映射值区间,将所述两个以上映射值区间分别对应所述两个以上第二服务 器,作为该第二服务器的存储标识范围,对所述一个以上第二数据的序列标识进行所述映 射运算,以每个第二数据的序列标识的映射值作为该第二数据的存储标识。
8.根据权利要求6或7所述的数据存储系统,其特征在于,所述两个以上第二服务器具体用于根据所述每个第二数据的存储标识和所述每个第 二服务器的存储标识范围,确定所述每个第二数据对应的主第二服务器,根据所述每个第 二数据对应的主第二服务器和预设的冗余参数,确定所述每个第二数据对应的一个以上备 份第二服务器,将所述每个第二数据存储到该第二数据对应的主第二服务器和一个以上备 份第二服务器。
9.根据权利要求8所述的数据存储系统,其特征在于,所述两个以上第二服务器还用于将所述每个第二数据和存储时间戳存储到该第二数 据对应的主第二服务器和备份第二服务器,当所述主第二服务器和所述一个以上备份第二 服务器中的任意一个第二服务器存储完成时,返回存储操作成功报告。
10.根据权利要求7所述的数据存储系统,其特征在于,所述两个以上第二服务器还用于当其中的一个以上第二服务器关闭时,将存储标识属 于关闭的第二服务器的存储标识范围的第二数据,存储到存储标识范围为该关闭的第二服 务器的存储标识范围之后的第二服务器,并采用该关闭的第二服务器的标识对该第二数据 进行标记,当关闭的所述一个以上第二服务器重新开启时,根据第二数据标记的所述第二 服务器的标识,将该第二数据存储到该标识对应的第二服务器;和/或,所述两个以上第二服务器还用于当增加一个以上第二服务器时,根据所述两个以上第 二服务器和增加的所述一个以上第二服务器的标识,分别获取每个第二服务器的存储标识 范围,将存储在所述两个以上第二服务器中的存储标识属于增加的所述一个以上第二服务 器的存储标识范围的第二数据,从所述两个以上第二服务器存储到增加的所述一个以上第二服务器。
全文摘要
本发明提供一种数据存储方法,根据关系型数据存储方法,在第一服务器存储一个以上第一数据以及一个以上第一数据与一个以上第二数据的序列标识的对应关系;根据两个以上第二服务器的标识,分别获取每个第二服务器的存储标识范围;根据一个以上第二数据的序列标识,分别获取每个第二数据的存储标识;根据每个第二数据的存储标识和每个第二服务器的存储标识范围,将该第二数据存储到对应的第二服务器。本发明还提供一种采用上述数据存储方法的数据存储系统。采用本发明提供的数据存储方法和系统,能够实现准确、高效的数据存储。
文档编号G06F17/30GK102004761SQ20101053214
公开日2011年4月6日 申请日期2010年11月1日 优先权日2010年11月1日
发明者余孟春, 王堃, 石柱国, 谢清禄, 陈新宾 申请人:青岛普加智能信息有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1