CN105404679A - 数据处理方法和装置 - Google Patents

数据处理方法和装置 Download PDF

Info

Publication number
CN105404679A
CN105404679A CN201510828383.6A CN201510828383A CN105404679A CN 105404679 A CN105404679 A CN 105404679A CN 201510828383 A CN201510828383 A CN 201510828383A CN 105404679 A CN105404679 A CN 105404679A
Authority
CN
China
Prior art keywords
data
hash module
business datum
slot
partition
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
Application number
CN201510828383.6A
Other languages
English (en)
Other versions
CN105404679B (zh
Inventor
熊刚
彭勇飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201510828383.6A priority Critical patent/CN105404679B/zh
Publication of CN105404679A publication Critical patent/CN105404679A/zh
Priority to PCT/CN2016/106391 priority patent/WO2017088705A1/zh
Priority to EP16867928.0A priority patent/EP3364310A4/en
Priority to US15/985,609 priority patent/US20180268046A1/en
Application granted granted Critical
Publication of CN105404679B publication Critical patent/CN105404679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/278Data partitioning, e.g. horizontal or vertical partitioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/214Database migration support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2255Hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2272Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24554Unary operations; Data partitioning operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables

Abstract

本发明实施例提供一种数据处理方法和装置。本发明数据处理装置,包括:第一哈希模块、至少一个第二哈希模块和块数据扫描器模块;第一哈希模块包括多个槽位,各槽位用于与各数据分区一一对应或者与各数据集合一一对应;至少一个第二哈希模块中的每一个第二哈希模块与第一哈希模块中的一个槽位相关联,第二哈希模块用于存放相关联槽位对应的数据分区的业务数据在存储引擎中的位置信息,或者订阅关系的数据集合中的业务数据在存储引擎中的位置信息。利用本发明的数据处理装置在需要将数据分区或订阅关系的数据集合中的业务数据同步到其他结点时,可以快速的将相应数据分区或订阅关系的数据集合中的所有业务数据同步到其他结点,处理效率高。

Description

数据处理方法和装置
技术领域
本发明实施例涉及计算机技术,尤其涉及一种数据处理方法和装置。
背景技术
分布式数据库是指利用高速计算机网络将物理上分散的多个数据存储单元连接起来组成一个逻辑上统一的数据库。分布式数据库的基本思想是将原来集中式数据库中的数据分散存储到多个通过网络连接的数据存储结点上,以获取更大的存储容量和更高的并发访问量。近年来,随着数据量的高速增长,分布式数据库技术也得到了快速的发展。
在分布式数据库下通常具有以下三种业务应用场景,(1)数据需要以一定的分布策略分布在多个数据结点中,系统弹性可伸缩下,数据按照一定的集合方式迁移到的其它结点;(2)多副本冗余,为了提高数据库系统的可靠性,会对数据进行备份,在备份过程中,利用一定的同步策略将新副本同步到相应结点;(3)在数据库客户端应用部署本地快速缓冲贮存区,需要分布式数据库具有订阅推送能力,即数据库服务器可以根据数据特征将数据推送到应用结点中。这些应用场景都需要将满足一定条件的业务数据同步到其它结点,该结点可以是分布式系统内部的数据结点,如数据库服务器(DBServer),也可以是数据的使用者,如数据库客户端(DBClient)。
然而,由于存储引擎中的数据与数据的分布策略相互独立,使得在需要将满足一定条件(分区或订阅关系)的业务数据同步到其他结点时,需要扫描存储引擎中的所有业务数据,这样会导致处理效率低,尤其是在存储引擎中数量特别大的情况下,数据结点将满足一定条件的业务数据同步到其他结点所需时间开销较大。
发明内容
本发明实施例提供一种数据处理方法和装置,以实现在需要将满足一定条件业务数据同步到其他结点时,有效降低所需时间开销。
第一方面,本发明实施例提供一种数据处理装置,所述数据处理装置应用于分布式数据库系统中的数据节点中,包括:第一哈希模块、至少一个第二哈希模块和块数据扫描器模块;
所述第一哈希模块包括多个槽位,各槽位用于与各数据分区一一对应或者与各数据集合一一对应;
至少一个第二哈希模块中的每一个第二哈希模块与所述第一哈希模块中的一个槽位相关联,所述第二哈希模块用于存放相关联槽位对应的数据分区的业务数据在存储引擎中的位置信息,或者订阅关系的数据集合中的业务数据在存储引擎中的位置信息;
所述块数据扫描器模块用于根据所述第一哈希模块的槽位在与所述槽位对应的第二哈希模块中进行扫描,获取业务数据在存储引擎中的位置信息,并根据所述位置信息在所述存储引擎中提取业务数据。
结合第一方面,在第一方面的第一种可能的实现方式中,在数据节点启动时,所述第一哈希模块还用于根据分布策略或订阅关系对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述分布策略包括所述节点的至少一个分区标识和业务数据的特征值与分区标识的映射函数;
所述第一哈希模块还用于根据分布策略对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作具体包括:
所述第一哈希模块还用于将各分区标识与所述第一哈希模块的各槽位一一对应,根据业务数据的特征值和所述业务数据的特征值与分区标识的映射函数获取所述业务数据对应的分区标识,将所述业务数据在存储引擎中的位置信息存放在与所述分区标识对应的槽位相关联的第二哈希模块中。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,若需要在所述数据节点中存储新增业务数据,将所述新增业务数据存放在所述数据节点的存储引擎中,所述第一哈希模块还用于根据所述新增业务数据的特征值和所述映射函数,计算所述新增业务数据对应的分区标识,将所述新增业务数据在存储引擎中的位置信息存放在与所述新增业务数据对应的分区标识相关联的第二哈希模块中。
结合第一方面的第二种可能的实现方式,在第一方面的第四种可能的实现方式中,若需要删除所述数据节点中的一业务数据,将存储引擎中的业务数据删除,所述第一哈希模块还用于根据业务数据的特征值和所述映射函数,计算业务数据对应的分区标识,将与业务数据对应的分区标识相关联的第二哈希模块中的业务数据在存储引擎中的位置信息删除。
结合第一方面的第一种可能的实现方式,在第一方面的第五种可能的实现方式中,在数据节点启动时,所述订阅关系包括至少一个满足预设条件的数据集合信息;
所述第一哈希模块还用于根据订阅关系对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作,具体包括:
所述第一哈希模块还用于将各满足预设条件的数据集合信息与所述第一哈希模块的槽位一一对应,将满足预设条件的业务数据的位置信息存放在与满足预设条件的数据集合信息相关联的第二哈希模块中。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,若需要在所述数据节点中存储新增业务数据,将所述新增业务数据存放在所述数据节点的存储引擎中,所述第一哈希模块还用于根据所述新增业务数据的特征值获取所述新增业务数据所属的满足预设条件的数据集合信息,将所述新增业务数据在存储引擎中的位置信息存放在与所述满足预设条件的数据集合信息相关联的第二哈希模块中。
结合第一方面的第五种可能的实现方式,在第一方面的第七种可能的实现方式中,若需要删除所述数据节点中的一业务数据,将存储引擎中的业务数据删除,所述第一哈希模块还用于根据业务数据的特征值获取业务数据所属的满足预设条件的数据集合信息,将与业务数据所属的满足预设条件的数据集合信息相关联的第二哈希模块中的业务数据在存储引擎中的位置信息删除。
第二方面,本发明实施例提供一种利用第一方面、第一方面的第一种至第七种任一种可能的实现方式的数据处理装置实现数据处理的方法,包括:
目的数据节点的数据处理装置获取待处理数据分区,将第一哈希模块的一槽位与所述待处理数据分区对应;
所述目的数据节点的数据处理装置创建一新的第二哈希模块,将所述新的第二哈希模块与所述第一哈希模块的所述槽位关联;
所述目的数据节点的数据处理装置接收源数据节点发送的所述待处理数据分区中的业务数据;
所述目的数据节点的数据处理装置将所述待处理数据分区中的业务数据存储在所述目的数据节点的存储引擎中,并将所述待处理数据分区中的业务数据在存储引擎中的位置信息存储在所述新的第二哈希模块中;
其中,所述待处理数据分区包括待迁移数据分区和待备份数据分区。
第三方面,本发明实施例提供一种利用第一方面、第一方面的第一种至第七种任一种可能的实现方式的数据处理装置实现数据处理的方法,包括:
源数据节点的数据处理装置获取待处理数据分区,根据所述待处理分区获取第一哈希模块中与所述待处理分区对应的槽位;
所述源数据节点的数据处理装置利用块数据扫描器模块获取与所述待处理数据分区对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据;
所述源数据节点的数据处理装置将所述业务数据发送给目的数据节点;
其中,所述待处理数据分区包括待迁移数据分区和待备份数据分区。
结合第三方面,在第三方面的第一种可能的实现方式中,若所述待处理数据分区为待迁移数据分区时,所述方法还包括;
所源数据节点的数据处理装置删除所述待迁移数据分区在存储引擎中的业务数据,并删除与所述待迁移数据分区对应的槽位相关联的第二哈希模块中的各位置信息。
第四方面,本发明实施例提供一种利用第一方面、第一方面的第一种至第七种任一种可能的实现方式的数据处理装置实现数据处理的方法,包括:
源数据节点的数据处理装置获取订阅关系对应的第一哈希模块的槽位,并获取与所述第一哈希模块的槽位相关联的第二哈希模块;
所述源数据节点的数据处理装置利用块数据扫描器模块获取与所述订阅关系对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据;
所述源数据节点将所述业务数据发送给数据使用设备。
本发明实施例数据处理方法和装置,将本实施的数据处理装置应用于分布式数据库系统中的各数据节点中,通过第一哈希模块和第二哈希模块可以将业务数据从存储引擎中进行映射,在需要获取数据分区或订阅关系的数据集合中的业务数据时,无需对存储引擎中的业务数据进行逐一扫描,根据该第一哈希模块和第二哈希模块可以快速获取相应数据分区或订阅关系的数据集合中的业务数据在存储引擎的位置信息,进而可以快速在存储引擎中获取相应的业务数据,从而在需要将数据分区或订阅关系的数据集合中的业务数据同步到其他结点时,可以快速的将相应数据分区或订阅关系的数据集合中的所有业务数据同步到其他结点,处理效率高。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明数据处理装置实施例一的示意图;
图2为本发明数据处理装置根据分布策略进行初始化的示意图;
图3为本发明数据处理装置的块数据扫描器进行数据发送的方法流程图;
图4为本发明数据处理装置实现数据处理的方法实施例一的流程图;
图5为本发明数据处理装置实现数据处理的方法实施例二的流程图;
图6为本发明数据处理装置实现数据处理的方法实施例三的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据处理装置实施例一的示意图,所述数据处理装置应用于分布式数据库系统中的各数据节点中,如图1所示,本实施例的数据处理装置可以包括:第一哈希模块11、至少一个第二哈希模块12和块数据扫描器模块13。
所述第一哈希模块11包括多个槽位(111-11n),各槽位用于与各数据分区一一对应或者与各订阅关系的数据集合一一对应。其中,所述第一哈希模块中的槽位个数与系统能容纳的最大分区个数有关。
至少一个第二哈希模块12中的每一个第二哈希模块与所述第一哈希模块中的一个槽位相关联,所述第二哈希模块用于存放相关联槽位对应的数据分区的业务数据在存储引擎中的位置信息,或者订阅关系的数据集合中的业务数据在存储引擎中的位置信息。具体,该位置信息可以是分布式数据库中业务数据在存储引擎中的rowid。
所述块数据扫描器模块13用于根据所述第一哈希模块的槽位在与所述槽位对应的第二哈希模块中进行扫描,获取业务数据在存储引擎中的位置信息,并根据所述位置信息在所述存储引擎中提取业务数据。
进一步的,在数据节点启动时,所述第一哈希模块还用于根据分布策略或订阅关系对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作。下面具体分别根据分布策略和订阅关系进行初始化操作的具体实现过程进行说明。
一种可实现的方式,所述分布策略包括所述节点的至少一个分区标识和业务数据的特征值与分区标识的映射函数;其中,所述分布策略可以是控制节点生成的。图2为本发明数据处理装置根据分布策略进行初始化的示意图,如图2所示,以节点A和节点B为例,所述分布策略的具体内容可以是节点A:0分区和2分区,节点B:1分区,控制节点可以将该分布策略发送给节点A和节点B,节点A的数据处理装置和节点B的数据处理装置根据分布策略进行初始化操作,即节点A中的第一哈希模块的一槽位对应0分区,将该槽位与一个第二哈希模块关联,另一槽位对应2分区,将该槽位与另一个第二哈希模块关联。节点B的第一哈希模块的一槽位对应1分区,将该槽位与一个第二哈希模块关联。
所述数据处理装置根据分布策略对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作具体可以为:所述第一哈希模块还用于将各分区标识与所述第一哈希模块的各槽位一一对应,根据业务数据的特征值和所述业务数据的特征值与分区标识的映射函数获取所述业务数据对应的分区标识,将所述业务数据在存储引擎中的位置信息存放在与所述分区标识对应的槽位相关联的第二哈希模块中。
以上述举例做进一步举例说明,即根据分布策略的映射函数和业务数据的特征值获取该业务数据对应的分区标识,根据映射函数获取一业务数据对应的分区标识为0,那么就将该业务数据在存储引擎中的位置信息存放在与0分区关联的第二哈希模块中。
可选的,若需要在所述数据节点中存储新增业务数据,将所述新增业务数据存放在所述数据节点的存储引擎中,所述第一哈希模块还用于根据所述新增业务数据的特征值和所述映射函数,计算所述新增业务数据对应的分区标识,将所述新增业务数据在存储引擎中的位置信息存放在与所述新增业务数据对应的分区标识相关联的第二哈希模块中。
可选的,若需要删除所述数据节点中的一业务数据,将存储引擎中的业务数据删除,所述第一哈希模块还用于根据业务数据的特征值和所述映射函数,计算业务数据对应的分区标识,将与业务数据对应的分区标识相关联的第二哈希模块中的业务数据在存储引擎中的位置信息删除。
另一种可实现的方式,在数据节点启动时,所述订阅关系包括至少一个满足预设条件的数据集合信息;
所述数据处理装置根据订阅关系对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作,具体可以为:所述第一哈希模块还用于将各满足预设条件的数据集合信息与所述第一哈希模块的槽位一一对应,将满足预设条件的业务数据的位置信息存放在与满足预设条件的数据集合信息相关联的第二哈希模块中。
可选的,若需要在所述数据节点中存储新增业务数据,将所述新增业务数据存放在所述数据节点的存储引擎中,所述第一哈希模块还用于根据所述新增业务数据的特征值获取所述新增业务数据所属的满足预设条件的数据集合信息,将所述新增业务数据在存储引擎中的位置信息存放在与所述满足预设条件的数据集合信息相关联的第二哈希模块中。
可选的,若需要删除所述数据节点中的一业务数据,将存储引擎中的业务数据删除,所述第一哈希模块还用于根据业务数据的特征值获取业务数据所属的满足预设条件的数据集合信息,将与业务数据所属的满足预设条件的数据集合信息相关联的第二哈希模块中的业务数据在存储引擎中的位置信息删除。
由于业务数据的位置信息在第二哈希模块中充分的散列,因此在进行上述插入和删除业务数据过程中,花费的代价较小并且可以迅速完成插入和删除操作。
将本实施例的数据处理装置应用于分布式数据库系统中的数据节点中,通过第一哈希模块和第二哈希模块可以将业务数据从存储引擎中进行映射,在需要获取数据分区或订阅关系的数据集合中的业务数据时,无需对存储引擎中的业务数据进行逐一扫描,根据该第一哈希模块和第二哈希模块可以快速获取相应数据分区或订阅关系的数据集合中的业务数据在存储引擎的位置信息,进而可以快速在存储引擎中获取相应的业务数据,从而在需要将数据分区或订阅关系的数据集合中的业务数据同步到其他结点时,可以快速的将相应数据分区或订阅关系的数据集合中的所有业务数据同步到其他结点,处理效率高。
图3为本发明数据处理装置的块数据扫描器进行数据发送的方法流程图,本实施例以源数据节点的数据处理装置将分区2的业务数据发送给目的数据节点做举例说明,如图3所示,本实施例的方法可以包括:
S301、源数据节点的数据处理装置的块数据扫描器申请扫描句柄,重置扫描位置。
S302、源数据节点的数据处理装置的块数据扫描器从与分区2对应的槽位相关联的第二哈希模块中预取批量的位置信息。
S303、源数据节点的数据处理装置的块数据扫描器根据位置信息在存储引擎中获取相应的业务数据,并进行封装。
S304、源数据节点的数据处理装置的块数据扫描器将封装后的业务数据发送给目的数据节点。
S305、源数据节点的数据处理装置的块数据扫描器释放扫描句柄。
可以理解的,在S305之前,还可以包括接收目的数据节点发送的确认(ACK)消息。
本实施例的数据处理装置的块数据扫描器模块通过批量在第二哈希模块中进行扫描获取位置信息,并根据位置信息在存储引擎中批量提取业务数据,从而实现无需进行数据匹配,高效的获取业务数据并发送给目的数据节点。
下面以几个具体的实施例对将本实施例的数据处理装置应用于数据节点中实现上述数据迁移、副本复制、订阅推送进行解释说明。
图4为本发明数据处理装置实现数据处理的方法实施例一的流程图,本实施例的执行主体为目的数据节点的数据处理装置,如图4所示,本实施例的方法可以包括:
步骤401、目的数据节点的数据处理装置获取待处理数据分区,将第一哈希模块的一槽位与所述待处理数据分区对应。
其中,该待处理数据分区为需要从源数据节点迁移到该目的数据节点的数据分区。
步骤402、所述目的数据节点的数据处理装置创建一新的第二哈希模块,将所述新的第二哈希模块与所述第一哈希模块的所述槽位关联。
步骤403、所述目的数据节点的数据处理装置接收源数据节点发送的所述待处理数据分区中的业务数据。
步骤404、所述目的数据节点将所述待处理数据分区中的业务数据存储在所述目的数据节点的存储引擎中,并将所述待处理数据分区中的业务数据在存储引擎中的位置信息存储在所述新的第二哈希模块中。
其中,所述待处理数据分区包括待迁移数据分区和待备份数据分区。即相应的,数据处理包括数据迁移和副本复制。
本实施例在实现数据迁移或副本复制过程中,目的数据节点的数据处理装置通过创建新的第二哈希模块,将接收到的业务数据存储到存储引擎中,并将业务数据在存储引擎中的位置信息存储在该第二哈希模块中,从而可以实现各个分区独立的进行迁移或者副本复制,仅需要对第一哈希模块的一槽位和第二哈希模块进行操作,无需额外计算,并且不依赖特定的存储引擎,可以较为高效的完成数据迁移和副本复制。
图5为本发明数据处理装置实现数据处理的方法实施例二的流程图,本实施例的执行主体为源数据节点的数据处理装置,如图5所示,本实施例的方法可以包括:
步骤501、源数据节点的数据处理装置获取待处理数据分区,根据所述待处理分区获取第一哈希模块中与所述待处理分区对应的槽位。
步骤502、所述源数据节点的数据处理装置利用块数据扫描器模块获取与所述待处理数据分区对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据。
步骤503、所述源数据节点将所述业务数据发送给目的数据节点。
其中,所述待处理数据分区包括待迁移数据分区和待备份数据分区。
进一步的,若所述待处理数据分区为待迁移数据分区;所源数据节点的数据处理装置删除所述待迁移数据分区在存储引擎中的业务数据,并删除与所述待迁移数据分区对应的槽位相关联的第二哈希模块中的各位置信息。
即,在进行数据迁移时,源数据节点的数据处理装置需要删除第一哈希模块和第二哈希模块中该迁移数据分区的信息。
本实施例在实现数据迁移或副本复制过程中,源数据节点的数据处理装置通过从第一哈希模块中与所述待处理分区对应的槽位,利用块数据扫描器模块获取与所述待处理数据分区对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据,并批量发送给目的数据节点,从而可以实现各个分区独立的进行迁移或者副本复制,并且无需进行数据匹配,可以较为高效的完成数据迁移和副本复制。
图6为本发明数据处理装置实现数据处理的方法实施例三的流程图,本实施例的执行主体为源数据节点的数据处理装置,如图6所示,本实施例的方法可以包括:
步骤601、源数据节点的数据处理装置获取订阅关系对应的第一哈希模块的槽位,并获取与所述第一哈希模块的槽位相关联的第二哈希模块。
步骤602、所述源数据节点的数据处理装置利用块数据扫描器模块获取与所述订阅关系对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据。
步骤603、所述源数据节点将所述业务数据发送给数据使用设备。
本实施例在实现订阅推送过程中,源数据节点的数据处理装置通过获取订阅关系对应的第一哈希模块的槽位,并获取与第一哈希模块的槽位相关联的第二哈希模块,利用块数据扫描器模块获取与所述订阅关系对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据,并发送给数据使用者。本实施例可以将满足订阅关系的所有业务数据发送至相应的数据使用者,从而实现高效的订阅推送。
需要说明的是,通过上述各实施例的解释说明,利用本发明实施例的数据处理装置将数据库中存储引擎中业务数据进行相应映射,从而形成了不依赖特定数据库、不与特定的数据分布策略强相关的数据映射方式,使得分布式数据库系统的各数据节点能够支持扩容、缩容、故障下的数据迁移、副本复制以及各种订阅关系下的数据推送,并且均具有较高的数据处理效率。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (12)

1.一种数据处理装置,所述数据处理装置应用于分布式数据库系统中的数据节点中,其特征在于,包括:第一哈希模块、至少一个第二哈希模块和块数据扫描器模块;
所述第一哈希模块包括多个槽位,各槽位用于与各数据分区一一对应或者与各订阅关系的数据集合一一对应;
至少一个第二哈希模块中的每一个第二哈希模块与所述第一哈希模块中的一个槽位相关联,所述第二哈希模块用于存放相关联槽位对应的数据分区的业务数据在存储引擎中的位置信息,或者订阅关系的数据集合中的业务数据在存储引擎中的位置信息;
所述块数据扫描器模块用于根据所述第一哈希模块的槽位在与所述槽位对应的第二哈希模块中进行扫描,获取业务数据在存储引擎中的位置信息,并根据所述位置信息在所述存储引擎中提取业务数据。
2.根据权利要求1所述的数据处理装置,其特征在于,在数据节点启动时,所述第一哈希模块还用于根据分布策略或订阅关系对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作。
3.根据权利要求2所述的数据处理装置,其特征在于,所述分布策略包括所述节点的至少一个分区标识和业务数据的特征值与分区标识的映射函数;
所述第一哈希模块还用于根据分布策略对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作具体包括:
所述第一哈希模块还用于将各分区标识与所述第一哈希模块的各槽位一一对应,根据业务数据的特征值和所述业务数据的特征值与分区标识的映射函数获取所述业务数据对应的分区标识,将所述业务数据在存储引擎中的位置信息存放在与所述分区标识对应的槽位相关联的第二哈希模块中。
4.根据权利要求3所述的数据处理装置,其特征在于,若需要在所述数据节点中存储新增业务数据,将所述新增业务数据存放在所述数据节点的存储引擎中,所述第一哈希模块还用于根据所述新增业务数据的特征值和所述映射函数,计算所述新增业务数据对应的分区标识,将所述新增业务数据在存储引擎中的位置信息存放在与所述新增业务数据对应的分区标识相关联的第二哈希模块中。
5.根据权利要求3所述的数据处理装置,其特征在于,若需要删除所述数据节点中的一业务数据,将存储引擎中的业务数据删除,所述第一哈希模块还用于根据业务数据的特征值和所述映射函数,计算业务数据对应的分区标识,将与业务数据对应的分区标识相关联的第二哈希模块中的业务数据在存储引擎中的位置信息删除。
6.根据权利要求2所述的数据处理装置,其特征在于,在数据节点启动时,所述订阅关系包括至少一个满足预设条件的数据集合信息;
所述第一哈希模块还用于根据订阅关系对第一哈希模块的槽位,和所述槽位与所述第二哈希模块的关联关系进行初始化操作,具体包括:
所述第一哈希模块还用于将各满足预设条件的数据集合信息与所述第一哈希模块的槽位一一对应,将满足预设条件的业务数据的位置信息存放在与满足预设条件的数据集合信息相关联的第二哈希模块中。
7.根据权利要求6所述的数据处理装置,其特征在于,若需要在所述数据节点中存储新增业务数据,将所述新增业务数据存放在所述数据节点的存储引擎中,所述第一哈希模块还用于根据所述新增业务数据的特征值获取所述新增业务数据所属的满足预设条件的数据集合信息,将所述新增业务数据在存储引擎中的位置信息存放在与所述满足预设条件的数据集合信息相关联的第二哈希模块中。
8.根据权利要求6所述的数据处理装置,其特征在于,若需要删除所述数据节点中的一业务数据,将存储引擎中的业务数据删除,所述第一哈希模块还用于根据业务数据的特征值获取业务数据所属的满足预设条件的数据集合信息,将与业务数据所属的满足预设条件的数据集合信息相关联的第二哈希模块中的业务数据在存储引擎中的位置信息删除。
9.一种利用如权利要求1至8任一项所述的数据处理装置实现数据处理的方法,其特征在于,包括:
目的数据节点的数据处理装置获取待处理数据分区,将第一哈希模块的一槽位与所述待处理数据分区对应;
所述目的数据节点的数据处理装置创建一新的第二哈希模块,将所述新的第二哈希模块与所述第一哈希模块的所述槽位关联;
所述目的数据节点的数据处理装置接收源数据节点发送的所述待处理数据分区中的业务数据;
所述目的数据节点的数据处理装置将所述待处理数据分区中的业务数据存储在所述目的数据节点的存储引擎中,并将所述待处理数据分区中的业务数据在存储引擎中的位置信息存储在所述新的第二哈希模块中;
其中,所述待处理数据分区包括待迁移数据分区和待备份数据分区。
10.一种利用如权利要求1至8任一项所述的数据处理装置实现数据处理的方法,其特征在于,包括:
源数据节点的数据处理装置获取待处理数据分区,根据所述待处理分区获取第一哈希模块中与所述待处理分区对应的槽位;
所述源数据节点的数据处理装置利用块数据扫描器模块获取与所述待处理数据分区对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据;
所述源数据节点的数据处理装置将所述业务数据发送给目的数据节点;
其中,所述待处理数据分区包括待迁移数据分区和待备份数据分区。
11.根据权利要求10所述的方法,其特征在于,若所述待处理数据分区为待迁移数据分区时,所述方法还包括;
所源数据节点的数据处理装置删除所述待迁移数据分区在存储引擎中的业务数据,并删除与所述待迁移数据分区对应的槽位相关联的第二哈希模块中的各位置信息。
12.一种利用如权利要求1至8任一项所述的数据处理装置实现数据处理的方法,其特征在于,包括:
源数据节点的数据处理装置获取订阅关系对应的第一哈希模块的槽位,并获取与所述第一哈希模块的槽位相关联的第二哈希模块;
所述源数据节点的数据处理装置利用块数据扫描器模块获取与所述订阅关系对应的槽位相关联的第二哈希模块中的各位置信息,并从存储引擎中提取各位置信息对应的业务数据;
所述源数据节点将所述业务数据发送给数据使用设备。
CN201510828383.6A 2015-11-24 2015-11-24 数据处理方法和装置 Active CN105404679B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201510828383.6A CN105404679B (zh) 2015-11-24 2015-11-24 数据处理方法和装置
PCT/CN2016/106391 WO2017088705A1 (zh) 2015-11-24 2016-11-18 数据处理方法和装置
EP16867928.0A EP3364310A4 (en) 2015-11-24 2016-11-18 Data processing method and device
US15/985,609 US20180268046A1 (en) 2015-11-24 2018-05-21 Data processing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510828383.6A CN105404679B (zh) 2015-11-24 2015-11-24 数据处理方法和装置

Publications (2)

Publication Number Publication Date
CN105404679A true CN105404679A (zh) 2016-03-16
CN105404679B CN105404679B (zh) 2019-02-01

Family

ID=55470168

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510828383.6A Active CN105404679B (zh) 2015-11-24 2015-11-24 数据处理方法和装置

Country Status (4)

Country Link
US (1) US20180268046A1 (zh)
EP (1) EP3364310A4 (zh)
CN (1) CN105404679B (zh)
WO (1) WO2017088705A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105893543A (zh) * 2016-03-31 2016-08-24 微梦创科网络科技(中国)有限公司 数据缓冲服务方法及系统
WO2017088705A1 (zh) * 2015-11-24 2017-06-01 华为技术有限公司 数据处理方法和装置
CN107688438A (zh) * 2017-08-03 2018-02-13 中国石油集团川庆钻探工程有限公司地球物理勘探公司 适用于大规模地震数据存储、快速定位的方法及装置
CN109274665A (zh) * 2018-09-13 2019-01-25 北京奇安信科技有限公司 Dns威胁情报处理方法及装置
CN109947778A (zh) * 2019-03-27 2019-06-28 联想(北京)有限公司 一种Spark存储方法及系统
CN110134678A (zh) * 2018-02-08 2019-08-16 深圳先进技术研究院 一种生物数据的索引方法、系统及电子设备
CN110727678A (zh) * 2019-09-25 2020-01-24 湖南新云网科技有限公司 用户信息与移动终端的绑定方法、装置及存储介质
CN111182014A (zh) * 2018-11-09 2020-05-19 北京华为数字技术有限公司 一种数据同步方法和装置
CN111475535A (zh) * 2020-03-09 2020-07-31 咪咕文化科技有限公司 数据存储、访问方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11620233B1 (en) * 2019-09-30 2023-04-04 Amazon Technologies, Inc. Memory data migration hardware
US20230065546A1 (en) * 2021-08-31 2023-03-02 Advanced Micro Devices, Inc. Distributing Model Data in Memories in Nodes in an Electronic Device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312749A1 (en) * 2009-06-04 2010-12-09 Microsoft Corporation Scalable lookup service for distributed database
CN102307250A (zh) * 2011-10-12 2012-01-04 北京网康科技有限公司 一种ip地址查找方法及其设备
CN102968498A (zh) * 2012-12-05 2013-03-13 华为技术有限公司 数据处理方法及装置
CN103116661A (zh) * 2013-03-20 2013-05-22 广东宜通世纪科技股份有限公司 一种数据库的数据处理方法
CN104794162A (zh) * 2015-03-25 2015-07-22 中国人民大学 实时数据存储与查询方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2583010B2 (ja) * 1993-01-07 1997-02-19 インターナショナル・ビジネス・マシーンズ・コーポレイション 多層インデックス構造におけるローカルインデックステーブル及び大域インデックステーブルの間の一貫性を維持する方法
US6665684B2 (en) * 1999-09-27 2003-12-16 Oracle International Corporation Partition pruning with composite partitioning
US8880554B2 (en) * 2010-12-03 2014-11-04 Futurewei Technologies, Inc. Method and apparatus for high performance, updatable, and deterministic hash table for network equipment
ES2397911B1 (es) * 2011-05-12 2014-01-15 Telefónica, S.A. Método para la distribución de contenido en una red de distribución de contenido.
US10049078B1 (en) * 2015-06-25 2018-08-14 Amazon Technologies, Inc. Accessing a memory location using a two-stage hash scheme
CN105404679B (zh) * 2015-11-24 2019-02-01 华为技术有限公司 数据处理方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100312749A1 (en) * 2009-06-04 2010-12-09 Microsoft Corporation Scalable lookup service for distributed database
CN102307250A (zh) * 2011-10-12 2012-01-04 北京网康科技有限公司 一种ip地址查找方法及其设备
CN102968498A (zh) * 2012-12-05 2013-03-13 华为技术有限公司 数据处理方法及装置
CN103116661A (zh) * 2013-03-20 2013-05-22 广东宜通世纪科技股份有限公司 一种数据库的数据处理方法
CN104794162A (zh) * 2015-03-25 2015-07-22 中国人民大学 实时数据存储与查询方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017088705A1 (zh) * 2015-11-24 2017-06-01 华为技术有限公司 数据处理方法和装置
CN105893543B (zh) * 2016-03-31 2019-09-24 微梦创科网络科技(中国)有限公司 数据缓冲服务方法及系统
CN105893543A (zh) * 2016-03-31 2016-08-24 微梦创科网络科技(中国)有限公司 数据缓冲服务方法及系统
CN107688438A (zh) * 2017-08-03 2018-02-13 中国石油集团川庆钻探工程有限公司地球物理勘探公司 适用于大规模地震数据存储、快速定位的方法及装置
CN107688438B (zh) * 2017-08-03 2021-08-27 中国石油集团东方地球物理勘探有限责任公司 适用于大规模地震数据存储、快速定位的方法及装置
CN110134678A (zh) * 2018-02-08 2019-08-16 深圳先进技术研究院 一种生物数据的索引方法、系统及电子设备
CN109274665A (zh) * 2018-09-13 2019-01-25 北京奇安信科技有限公司 Dns威胁情报处理方法及装置
CN111182014A (zh) * 2018-11-09 2020-05-19 北京华为数字技术有限公司 一种数据同步方法和装置
CN111182014B (zh) * 2018-11-09 2022-04-26 北京华为数字技术有限公司 一种数据同步方法和装置
CN109947778A (zh) * 2019-03-27 2019-06-28 联想(北京)有限公司 一种Spark存储方法及系统
CN110727678A (zh) * 2019-09-25 2020-01-24 湖南新云网科技有限公司 用户信息与移动终端的绑定方法、装置及存储介质
CN111475535A (zh) * 2020-03-09 2020-07-31 咪咕文化科技有限公司 数据存储、访问方法及装置
CN111475535B (zh) * 2020-03-09 2024-02-06 咪咕文化科技有限公司 数据存储、访问方法及装置

Also Published As

Publication number Publication date
EP3364310A1 (en) 2018-08-22
WO2017088705A1 (zh) 2017-06-01
EP3364310A4 (en) 2018-08-22
CN105404679B (zh) 2019-02-01
US20180268046A1 (en) 2018-09-20

Similar Documents

Publication Publication Date Title
CN105404679A (zh) 数据处理方法和装置
CN101334797B (zh) 一种分布式文件系统及其数据块一致性管理的方法
CN103473277B (zh) 文件系统的快照方法和装置
JP6044539B2 (ja) 分散ストレージシステムおよび方法
CN102098342B (zh) 一种基于事务级的数据同步方法、装置及系统
CN106446126B (zh) 一种海量空间信息数据存储管理方法及存储管理系统
CN103875229B (zh) 异步复制方法、装置与系统
US9753944B2 (en) System and method for streaming files through differential compression
CN103020255B (zh) 分级存储方法和装置
CN106156359A (zh) 一种云计算平台下的数据同步更新方法
CN106663022A (zh) 对使用外部化存储页面的虚拟机的实时迁移
CN104580439B (zh) 一种云存储系统中使数据均匀分布的方法
CN111339192A (zh) 一种分布式边缘计算数据存储系统
CN102811260A (zh) 文件云同步系统及方法
CN105516284B (zh) 一种集群数据库分布式存储的方法和装置
CN103916479A (zh) 一种基于工作组文件的云同步局域网加速系统
CN103902410A (zh) 云存储系统的数据备份加速方法
CN105518641A (zh) 点对点数据复制方法、设备和系统以及主节点切换方法、设备和系统
CN103970875A (zh) 一种并行重复数据删除方法
CN113010496A (zh) 一种数据迁移方法、装置、设备和存储介质
CN111930716A (zh) 一种数据库扩容方法、装置及系统
KR101875763B1 (ko) 테이블 재구성시 트랜잭션의 성능저하를 최소화하는 온라인 데이터 베이스 관리 시스템 및 방법
CN105760398A (zh) 一种日志记录系统及日志记录操作方法
CN105468733B (zh) 一种基于源端数据重删的卷复制方法
CN104866245B (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
GR01 Patent grant
GR01 Patent grant