[发明专利]一种分布式数据库主键生成的方法和系统在审

专利信息
申请号: 201510962633.5 申请日: 2015-12-21
公开(公告)号: CN105608165A 公开(公告)日: 2016-05-25
发明(设计)人: 王帅 申请(专利权)人: 用友网络科技股份有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京中恒高博知识产权代理有限公司 11249 代理人: 刘洪京
地址: 100094 北京*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 分布式 数据库 主键 生成 方法 系统
【说明书】:

技术领域

发明涉及计算机技术领域,特别是涉及一种分布式数据库主键生成的方法和系统。

背景技术

随着互联网应用的不断发展,越来越多的应用系统部署朝着大规模、分布式、多机协同的方向发展。同时,所有项目中的数据库都需要选择一种主键生成的策略,用来完成唯一主键的生成工作。通常,数据库主键生成分为单机生成和分布式生成两种。单机生成是指在单台机器上生成主键,所有请求顺序执行,典型的方式是数据库自增ID。分布式生成则是指在多台机器上来生成主键。

其中分布式生成主键的通常做法,一种是利用特殊的规则在不同的机器上生成互不重复的ID,典型的方式是生成GUID或者包括地域、机房、机器信息在内的自定义编码;还有一种是通过一个集中式锁的管理来实现分布式主键生成的唯一性,典型的方式是通过关系数据库锁或者可以加锁的内存缓存。

关于第一种方法,虽然在特殊规则下可以生成不重复的ID编码,但由于编码本身的无规律性,这种编码会明显降低数据库主键索引的性能,同时因为字段通常比较长,需要占用更多的存储空间,如GUID是32个十六进制字符。

关于第二种方法,虽然采用集中式的锁可以继续使用自增ID这种有益于索引和存储的方式,但集中式的锁会是整个系统的瓶颈,因为每次生成主键都需要对锁资源进行锁定互斥处理,需要协同的机器越多,对集中式锁的访问冲突就会越剧烈,降低了整体分布式环境的处理能力,也限制了多级协同的规模。

同时,一旦集中式的锁出现故障,整个主键生成也将完全中断。因此如何解决分布式主键生成中集中式锁的缺陷就显得很有意义。

数据库中的每张数据表都有一个主键字段来唯一标识一条记录,主键也会默认加入到索引中以提高数据库操作的效率。主键生成策略的首要一点是保证生成记录的唯一性,一般对于单个数据库实例的主键通常会按照某个ID自增完成,但在业务规模越来越大的情况下,单个数据库实例会由于满足不了需求而按照一定规则拆分成多个分布式的数据库实例,如果按照普通的自增是无法保证在分布式环境中的主键唯一性,在这种情况下就需要在分布式的环境中生成唯一的数据库主键,同时还要最大化的提高主键生成效率。

发明内容

本发明的目的在于:针对现有技术中存在的上述技术问题,提供了一种分布式数据库主键生成的方法,并且提供了基于该方法保证分布式主键唯一性生成的系统。

本发明是通过以下技术方案实现的:一种分布式数据库主键生成的方法,在多机分布式环境中,保证各个节点都是对等的情况下,各个节点通过自动协商来决定主键生成。

进一步,所述的各节点协商确定主键生成是基于一致性算法下。

一种分布式数据库主键生成的系统,系统流程步骤如下:

(1)任意节点在正常运行中;

(2)某节点收到主键生成请求;

(3)该节点启动主键预生成,生成一个唯一标识;具体地如下:

如果某个节点收到某个主键的生成请求,则该节点先会根据主键标识和按照预定规则(如自增)生成的新主键ID值计算出一个在所有工作节点中对当前这个主键生成请求的唯一标识,然后以一个全局唯一且递增的编号向其他工作节点发出执行这个请求的提案,这个全局唯一且递增的编号可以由当前的时间戳加上工作节点IP组成,提案中的唯一标识代表请求本身。

其他节点在收到这个提案后,首先检查关于这个主键生成请求有没有已收到其他的提案,如果已收到关于这个生成请求的提案,接下来需要比较已收到的提案号和刚收到的这个提案号的大小。

如果已收到的提案号大于这个提案号,则直接拒绝当前提案。

如果已收到的提案号小于这个提案号,则同意该提案,但同时需要告知发起提案的节点本节点之前已经收到过其他节点关于这个请求的提案。

如果没有收到其他提案,则直接同意这个提案。

(4)该节点将步骤(3)生成的一个唯一标识与其他节点协商确定是否可以生成该节点;协商如下:

如果同意提案的节点数超过半数,且都是简单同意,则该节点再次向其他节点发起执行这个请求提案的提交。

如果同意提案的节点数超过半数,但有节点反馈在本提案之前已收到过其他关于这个请求的更小提案号,则该节点需要提交具备更小编号的其他节点关于这个请求执行的提案。

其他节点在收到新提交的提案后,按照与步骤(3)相同的规则进行判断处理。

最终,发起提案的节点在指定时间内收到其他节点的反馈后:

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于用友网络科技股份有限公司,未经用友网络科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201510962633.5/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top