数据读取方法及装置制造方法及图纸

技术编号:22688965 阅读:23 留言:0更新日期:2019-11-30 03:36
本发明专利技术提供了一种数据读取方法及装置,该方法包括:确定当前网络中各个待分配哈希桶和预先注册的各个数据节点;其中,每个所述数据节点与待读取业务对应,所述待读取业务包括多份业务数据,所述业务数据和所述待分配哈希桶一一对应;将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,使每个所述数据节点依据分配得到的每个哈希桶的哈希函数,读取每个所述哈希桶所对应的业务数据。应用本发明专利技术提供的数据读取方法,为各个数据节点分配哈希桶,使每个数据节点依据分配得到的哈希桶的哈希函数读取哈希桶对应的业务数据,实现多个数据节点并行读取同一业务数据,加快业务数据读取的速度,从而提高业务处理效率。

Data reading method and device

The invention provides a data reading method and device, the method includes: determining each hash bucket to be allocated and each data node to be registered in advance in the current network; wherein, each data node corresponds to the business to be read, the business to be read includes multiple business data, the business data corresponds to the hash bucket to be allocated one by one; each business to be allocated The hash bucket is allocated to each data node in the current network according to the preset allocation rules, so that each data node reads the business data corresponding to each hash bucket according to the hash function of each hash bucket allocated. Applying the data reading method provided by the invention, each data node is allocated with a hash bucket, so that each data node reads the business data corresponding to the hash bucket according to the hash function of the allocated hash bucket, realizes multiple data nodes reading the same business data in parallel, speeds up the reading speed of business data, and improves the business processing efficiency.

【技术实现步骤摘要】
数据读取方法及装置
本专利技术涉及计算机
,尤其涉及一种数据读取方法及装置。
技术介绍
随着互联网技术的快速发展,越来越多的应用系统采用多节点的业务处理框架读取业务数据,并对读取到的业务数据进行处理,以实现同时处理多个业务。现有数据读取方法中,针对每一个业务,当有节点想要读取该业务的数据时,若该业务没有加锁,则该节点可以直接读取该业务的数据,并将该业务加锁,若该业务已经加锁,则该节点无法读取业务的数据。应用现有数据读取方法,同一业务在同一时间只能被同一节点读取,数据读取的速度较慢,从而降低业务处理的效率。
技术实现思路
本专利技术所要解决的技术问题是提供一种数据读取方法,能够实现多节点无锁并行读取同一业务数据,加快业务数据读取的速度,从而提高业务处理效率。本专利技术还提供了一种数据读取装置,用于保证上述方法在实际中的实现及应用。一种数据读取方法,包括:确定当前网络中各个待分配哈希桶和预先注册的各个数据节点;其中,每个所述数据节点与待读取业务对应,所述待读取业务包括多份业务数据,所述业务数据和所述待分配哈希桶一一对应;将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,使每个所述数据节点依据分配得到的每个哈希桶的哈希函数,读取每个所述哈希桶所对应的业务数据。上述的方法,可选的,所述将各个所述待分配哈希桶按预设的分配规则分配至每个所述数据节点之后,还包括:当监听到新的数据节点加入所述网络时,若所述新的数据节点的配置参数表征读取所述待读取业务,则确定当前网络中每个数据节点的目标分配数量;针对已被分配哈希桶的每个数据节点,判断所述数据节点分配得到的哈希桶的数量是否大于所述目标分配数量,若大于,则触发所述数据节点释放与第一数值对应的哈希桶,并将每个所释放的哈希桶作为待分配哈希桶;其中,所述第一数值为所述数据节点分配得到的哈希桶的数量与所述目标分配数量的差值;将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点。上述的方法,可选的,还包括:在预设的检测时刻,获取预设的节点注册表中与每个数据节点对应的心跳时间;其中,每个所述心跳时间表征与其对应的数据节点最近一次活动的时间;针对每个所述数据节点,判断所述数据节点对应的心跳时间和所述检测时刻之间的时间差是否大于预设的时间间隔,若大于,则回收所述数据节点分配得到的所有哈希桶,并将所回收的每个哈希桶作为待分配哈希桶,并注销所述数据节点;将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点。上述的方法,可选的,所述将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,包括:从当前网络中的多个所述数据节点中确定出至少一个待分配节点;其中,所述待分配节点为所述数据节点中包含分配得到的哈希桶的数量最少的数据节点;为每个所述待分配节点分配一个所述待分配哈希桶;判断是否存在待分配哈希桶,若存在,返回执行所述从当前网络中的多个所述数据节点中确定出至少一个待分配节点的步骤,直至完成所有所述待分配哈希桶的分配。上述的方法,可选的,每个所述数据节点的注册过程,包括:判断是否存在未分配的节点ID;若存在未分配的节点ID,从所述未分配的节点ID中选取一个节点ID分配至所述数据节点,并将已分配至所述数据节点的节点ID写入至所述节点注册表中;当已分配至所述数据节点的节点ID成功写入至所述节点注册表时,完成对所述数据节点的注册。一种数据读取装置,包括:确定单元,用于确定当前网络中各个待分配哈希桶和预先注册的各个数据节点;其中,每个所述数据节点与待读取业务对应,所述待读取业务包括多份业务数据,所述业务数据和所述待分配哈希桶一一对应;第一分配单元,用于将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,使每个所述数据节点依据分配得到的每个哈希桶的哈希函数,读取每个所述哈希桶所对应的业务数据。上述的装置,可选的,还包括:监听单元,用于当监听到新的数据节点加入所述网络时,若所述新的数据节点的配置参数表征读取所述待读取业务,则确定当前网络中每个数据节点的目标分配数量;第一释放单元,用于针对已被分配哈希桶的每个数据节点,判断所述数据节点分配得到的哈希桶的数量是否大于所述目标分配数量,若大于,则触发所述数据节点释放与第一数值对应的哈希桶,并将每个所释放的哈希桶作为待分配哈希桶;其中,所述第一数值为所述数据节点分配得到的哈希桶的数量与所述目标分配数量的差值;第二分配单元,用于将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点。上述的装置,可选的,还包括:获取单元,用于在预设的检测时刻,获取预设的节点注册表中与每个数据节点对应的心跳时间;其中,每个所述心跳时间表征与其对应的数据节点最近一次活动的时间;第二释放单元,用于针对每个所述数据节点,判断所述数据节点对应的心跳时间和所述检测时刻之间的时间差是否大于预设的时间间隔,若大于,则回收所述数据节点分配得到的所有哈希桶,并将所回收的每个哈希桶作为待分配哈希桶,并注销所述数据节点;第三分配单元,用于将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点。上述的装置,可选的,所述第一分配单元,包括:确定子单元,用于从当前网络中的多个所述数据节点中确定出至少一个待分配节点;其中,所述待分配节点为所述数据节点中包含分配得到的哈希桶的数量最少的数据节点;分配子单元,用于为每个所述待分配节点分配一个所述待分配哈希桶;返回子单元,用于判断是否存在待分配哈希桶,若存在,返回执行所述从当前网络中的多个所述数据节点中确定出至少一个待分配节点的步骤,直至完成所有所述待分配哈希桶的分配。上述的装置,可选的,所述确定单元,包括:判断子单元,用于判断是否存在未分配的节点ID;选取子单元,用于若存在未分配的节点ID,从所述未分配的节点ID中选取一个节点ID分配至所述数据节点,并将已分配至所述数据节点的节点ID写入至所述节点注册表中;结束子单元,用于当已分配至所述数据节点的节点ID成功写入至所述节点注册表时,完成对所述数据节点的注册。一种存储介质,所述存储介质包括存储的指令,其中,在所述指令运行时控制所述存储介质所在的设备执行上述的数据读取方法。一种电子设备,包括存储器,以及一个或者一个以上的指令,其中一个或者一个以上指令存储于存储器中,且经配置以由一个或者一个以上处理器执行上述的数据读取方法。与现有技术相比,本专利技术包括以下优点:本专利技术提供了一种数据读取方法,包括:确定当前网络中各个待分配哈希桶和预先注册的各个数据节点;其中,每个所述数据节点与待读取业务对应,所述待读取业务包括多份业务数据,所述业务数据和所述待分配哈希桶一一对应;将各个所述待分配哈希桶本文档来自技高网...

【技术保护点】
1.一种数据读取方法,其特征在于,包括:/n确定当前网络中各个待分配哈希桶和预先注册的各个数据节点;其中,每个所述数据节点与待读取业务对应,所述待读取业务包括多份业务数据,所述业务数据和所述待分配哈希桶一一对应;/n将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,使每个所述数据节点依据分配得到的每个哈希桶的哈希函数,读取每个所述哈希桶所对应的业务数据。/n

【技术特征摘要】
1.一种数据读取方法,其特征在于,包括:
确定当前网络中各个待分配哈希桶和预先注册的各个数据节点;其中,每个所述数据节点与待读取业务对应,所述待读取业务包括多份业务数据,所述业务数据和所述待分配哈希桶一一对应;
将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,使每个所述数据节点依据分配得到的每个哈希桶的哈希函数,读取每个所述哈希桶所对应的业务数据。


2.根据权利要求1所述的方法,其特征在于,所述将各个所述待分配哈希桶按预设的分配规则分配至每个所述数据节点之后,还包括:
当监听到新的数据节点加入所述网络时,若所述新的数据节点的配置参数表征读取所述待读取业务,则确定当前网络中每个数据节点的目标分配数量;
针对已被分配哈希桶的每个数据节点,判断所述数据节点分配得到的哈希桶的数量是否大于所述目标分配数量,若大于,则触发所述数据节点释放与第一数值对应的哈希桶,并将每个所释放的哈希桶作为待分配哈希桶;其中,所述第一数值为所述数据节点分配得到的哈希桶的数量与所述目标分配数量的差值;
将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点。


3.根据权利要求1所述的方法,其特征在于,还包括:
在预设的检测时刻,获取预设的节点注册表中与每个数据节点对应的心跳时间;其中,每个所述心跳时间表征与其对应的数据节点最近一次活动的时间;
针对每个所述数据节点,判断所述数据节点对应的心跳时间和所述检测时刻之间的时间差是否大于预设的时间间隔,若大于,则回收所述数据节点分配得到的所有哈希桶,并将所回收的每个哈希桶作为待分配哈希桶,并注销所述数据节点;
将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点。


4.根据权利要求1-3任意一项所述的方法,其特征在于,所述将各个所述待分配哈希桶按预设的分配规则分配至当前网络中的每个所述数据节点,包括:
从当前网络中的多个所述数据节点中确定出至少一个待分配节点;其中,所述待分配节点为所述数据节点中包含分配得到的哈希桶的数量最少的数据节点;
为每个所述待分配节点分配一个所述待分配哈希桶;
判断是否存在待分配哈希桶,若存在,返回执行所述从当前网络中的多个所述数据节点中确定出至少一个待分配节点的步骤,直至完成所有所述待分配哈希桶的分配。


5.根据权利要求3所述的方法,其特征在于,每个所述数据节点的注册过程,包括:
判断是否存在未分配的节点ID;
若存在未分配的节点ID,从所述未分配的节点ID中选取一个节点ID分配至所述数据节点,并将已分配至所述数据节点的节点ID写入至所述节点注册表中;
当已分配至所述数据节点的节点ID成功写入至所述节点注册表时,完成对所述数据节点的注册。


6.一种数据读取装置,其特征在...

【专利技术属性】
技术研发人员:谢珊珊区述辉陆昭鸣
申请(专利权)人:中国银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1