[发明专利]用于生成数据库记录主键的方法和装置有效
申请号: | 201911198000.6 | 申请日: | 2019-11-29 |
公开(公告)号: | CN111078693B | 公开(公告)日: | 2021-10-22 |
发明(设计)人: | 赖寿生;朱明宙 | 申请(专利权)人: | 叮当快药科技集团有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 北京律和信知识产权代理事务所(普通合伙) 11446 | 代理人: | 姚志远;苏捷 |
地址: | 100006 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 生成 数据库 记录 主键 方法 装置 | ||
本申请提供了一种用于生成数据库记录主键的方法和装置、电子设备、数据库记录主键的分布式发号器以及非瞬时性计算机可读存储介质。该方法包括:获取当前系统时间,生成数据库记录主键;记录新生成的所述数据库记录主键时的系统时间,根据与上一次生成同一时间片下的所述数据库记录主键时所记录的系统时间作比较,确定是否发生同一时间片下的时钟回拨;以及基于所确定的结果,生成新的所述数据库记录主键,所述数据库记录主键包括时间片数据,所述时间片数据占用所述数据库记录主键的多个数据位并且每发生一次时钟回拨进行一次数据切换。
技术领域
本申请涉及计算机技术领域,具体涉及一种用于生成数据库记录主键的方法和装置、电子设备、数据库记录主键的分布式发号器以及非瞬时性计算机可读存储介质。
背景技术
记录主键是数据库系统中标识每一条记录的唯一标识。目前,主流的数据库记录主键(也称为唯一ID)生成策略是使用序列号,即通过顺序递增的方式生成长整型的记录主键。但是,在多机房或多数据库实例的情况下,使用序列号生成的记录主键难以满足唯一性的要求,这是因为不同实例的数据库可能会生成完全一样的整型数值。为了解决这个问题,可采用雪花算法(snowflake)开发一个独立的系统(通常称为分布式ID发号器)来生成唯一ID。雪花算法是开源的分布式ID生成算法,其核心思想是把一个64位的二进制长整型数值划分为多个组成部分,包括时间戳、机器ID和序列号等,通过时间戳、机器ID和序列号来保证所生成ID的唯一性。
然而,这种算法严重依赖于服务器时钟,如果服务器时钟回拨了,生成的ID就不能保证唯一性。时钟回拨是指计算机服务器的时间由于某种原因在某一时刻的时间比之前的时间还早,则称之为时钟回拨。有多种可能造成服务器时钟回拨,例如:运维人员手动设置了比服务器当前时间更早的时间,服务器时钟在运行的时候走的比标准时间慢,或者是服务器时钟走的比标准时钟快、运行远程时钟同步后导致服务器时钟回拨等。当服务器时钟发生回拨时,分布式ID发号器会产生重复的ID导致进入不可用状态。
当前的分布式ID发号器对服务器时钟回拨的处理方式一般有两种,一种是发现时钟回拨了即时报错,拒绝生成新的ID,另一种是阻塞等待,直到服务器时钟追上最后生成ID的时间。然而,无论是以上哪种方式,都会影响该发号器的可用性,进而影响上层调用者。
发明内容
为了解决现有技术中出现的上述问题,本申请提供了一种用于生成数据库记录主键的方法和装置、电子设备、数据库记录主键的分布式发号器以及非瞬时性计算机可读存储介质。
根据本申请的一个方面,提供了一种用于生成数据库记录主键的方法,包括:
获取当前系统时间,生成数据库记录主键;
记录新生成的所述数据库记录主键时的系统时间,根据与上一次生成同一时间片下的所述数据库记录主键时所记录的系统时间作比较,确定是否发生同一时间片下的时钟回拨;以及
基于所确定的结果,生成新的所述数据库记录主键,所述数据库记录主键包括时间片数据,所述时间片数据占用所述数据库记录主键的多个数据位并且每发生一次时钟回拨进行一次数据切换。
根据一个实施方式,基于所确定的结果,生成新的所述数据库记录主键包括:
在确定发生同一时间片下的时钟回拨的情况下,修改所述时间片数据的值;以及
基于修改后的时间片数据的值,生成所述数据库记录主键。
根据一个实施方式,基于所确定的结果,生成所述数据库记录主键包括:
步骤A:在确定发生同一时间片下的时钟回拨的情况下,修改所述时间片数据的值;
步骤B:重新获取当前系统时间;
步骤C:将重新获取的当前系统时间与上一次生成修改后的时间片下的数据库记录主键时所记录的系统时间作比较;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于叮当快药科技集团有限公司,未经叮当快药科技集团有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911198000.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种装配式钢结构绿色生态围挡
- 下一篇:一种虚拟伙伴创建方法及虚拟伙伴系统