[发明专利]一种主键分配方法、装置、服务器及存储介质有效
申请号: | 202010326648.3 | 申请日: | 2020-04-23 |
公开(公告)号: | CN111523002B | 公开(公告)日: | 2023-06-09 |
发明(设计)人: | 郭峰;崔攸;周志境 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F16/901 | 分类号: | G06F16/901 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 李婷婷 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 主键 分配 方法 装置 服务器 存储 介质 | ||
本申请提供的一种主键分配方法、装置、服务器及存储介质,当存在待被分配主键的业务数据时,读取本地存储的第一配置文件,第一配置文件中包括主键分配服务停止时内存缓存的主键序列中未被分配的主键;检测第一配置文件中是否存储有未被分配的主键;如果第一配置文件中未存储有未被分配的主键,检测当前内存缓存的主键序列中是否存在未被分配的主键;若存在,从当前内存缓存的主键序列中确定为业务数据分配的主键;若不存在,从数据库读取主键序列加载到内存,并从当前加载到内存的主键序列中确定为业务数据分配的主键。基于本发明,可以减少分布式系统的性能消耗,以及提高主键的利用率。
技术领域
本发明涉及通信技术领域,特别是涉及一种主键分配方法、装置、服务器及存储介质。
背景技术
服务器中业务数据的主键分配是分布式系统的数据管理中尤为重要的一部分。传统的主键分配方法是在服务器中存在待被分配主键的业务数据时,通过访问数据库中的主键配置信息来获取主键。这种传统主键分配方法会频繁的操作数据库中主键配置信息,频繁的操作数据库中的主键配置信息会严重的消耗分布式系统的性能。
现有的主键分配方法是由服务器操作数据库根据数据库中的主键配置信息读取一段主键序列并将其加载到内存,进而当该服务器存在待被分配主键的业务数据时,根据内存中的主键序列为业务数据分配主键。这种现有的主键分配方式,虽然通过操作一次数据库便可实现对服务器中多个业务数据的主键分配,避免对数据库的频繁操作,进而减少分布式系统的性能消耗。但是,当服务器发生意外宕机时,服务器内存中当前存储的主键序列被删除,若服务器重新启动,会从数据库重新读取一段主键序列,那么在服务器以外宕机时,内存中的主键序列中未被分配的主键便会浪费。
发明内容
有鉴于此,本申请实施例提供一种主键分配方法、装置、服务器及存储介质,以实现减少分布式系统的性能消耗,以及提高主键的利用率为目的。
技术方案如下:
本发明第一方面公开了一种主键分配方法,包括:
当存在待被分配主键的业务数据时,读取本地存储的第一配置文件,所述第一配置文件中包括主键分配服务停止时内存缓存的主键序列中未被分配的主键;
检测所述第一配置文件中是否存储有未被分配的主键;
如果所述第一配置文件中未存储有未被分配的主键,检测当前所述内存缓存的主键序列中是否存在未被分配的主键;
若当前所述内存缓存的主键序列中存在未被分配的主键,从当前所述内存缓存的主键序列中确定为所述业务数据分配的主键;
若当前所述内存缓存的主键序列中不存在未被分配的主键,从数据库读取主键序列加载到所述内存,并从当前加载到所述内存的主键序列中确定为所述业务数据分配的主键。
可选的,所述方法还包括:
若所述第一配置文件中存储有未被分配的主键,从所述第一配置文件的未被分配的主键中确定为所述业务数据分配的主键。
可选的,所述从数据库读取主键序列加载到所述内存,包括:
读取所述数据库中存储的与所述业务数据相关的第一主键、第二主键和步长;
将所述第一主键和所述步长的和作为第三主键;
比较所述第二主键和所述第三主键;
若所述第三主键不大于所述第二主键,将所述第一主键作为主键序列的起始主键且将所述第三主键作为所述主键序列的结束主键,将所述数据库中所述第一主键更新为所述第三主键,并将所述主键序列加载到所述内存;
若所述第三主键大于所述第二主键,返回错误信息。
可选的,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010326648.3/2.html,转载请声明来源钻瓜专利网。