CN111126002A - 一种数据全局唯一性标识id的生成方法及系统 - Google Patents
一种数据全局唯一性标识id的生成方法及系统 Download PDFInfo
- Publication number
- CN111126002A CN111126002A CN201910946046.5A CN201910946046A CN111126002A CN 111126002 A CN111126002 A CN 111126002A CN 201910946046 A CN201910946046 A CN 201910946046A CN 111126002 A CN111126002 A CN 111126002A
- Authority
- CN
- China
- Prior art keywords
- seed field
- field data
- separator
- data
- sequence number
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种数据全局唯一性标识id的生成方法及系统。本发明首先获取种子字段数据,所述种子字段至少由一位数字构成,用于唯一标识当前系统;然后基于所述种子字段数据为当前目标数据对象生成全局唯一性标识ID;所述全局唯一性标识ID包括种子字段、分隔符和序列号,所述分隔符和序列号均为数字。本发明满足了最基本的id不重复的问题,同时与现有技术相比,实现了id存储位数减少,减小内存消耗,且都是用有序的数字存储,便于记性,并且在内存中实现序列号的生成,性能也较高。
Description
技术领域
本发明涉及数据编码技术领域,具体涉及一种数据全局唯一性标识id的生成方法及系统。
背景技术
UUID是通用唯一标识码,它可以实现分布式系统中的所有元素具备全局唯一性。UUID的生成策略规定由以下元素生成UUID:当前时间戳,序列,唯一的IEEE机器识别号,名字空间,随机或伪随机数,最终生成128位长的数字,通常表现为32个16进制的字符,中间用‘-’分隔开。其中时间戳+UUID版本号分三段占16个字符,时钟序列号和保留字段占4个字符,节点标识占12个字符。现有的UUID具有多个版本,每个版本的算法不同,应用范围也不同。包括基于时间的UUID:通过计算当前时间戳,随机数和机器MAC地址得到;DCE安全的UUID:和基于时间的UUID相同,但会把时间戳的前4位换为POSIX的UID或GID;基于名字的UUID(MD5):通过计算机名称和名字空间的MD5散列值得到;随机UUID:根据随机数或伪随机数生成;基于名字的UUID(SHA1):和基于名字的UUID(MD5)的算法类似,只是散列值采用的是SHA1算法。
UUID字符串较长,占用空间比较大;形成的是无意义的字符串,可读性差,对用户不友好;在使用B+树建立索引时,由于UUID的无序性,在加入树的时候会比较消耗性能;做不了递增,如果需要实现排序功能,难度较大。
发明内容
本发明针对现有技术中存在的技术问题,提供一种数据全局唯一性标识id的生成方法及系统,通过种子+分隔符+序列号三部分纯数字内容组成,可确保id唯一不重复,并且每次生成的是有序的数字,长度较短,可读性好,数据读取性能优良。
本发明解决上述技术问题的技术方案如下:
第一方面,本发明提供一种数据全局唯一性标识id的生成方法,包括以下步骤:
获取种子字段数据,所述种子字段至少由一位数字构成,用于唯一标识当前系统;
基于所述种子字段数据为当前目标数据对象生成全局唯一性标识ID;所述全局唯一性标识ID包括种子字段、分隔符和序列号,所述分隔符和序列号均为数字。
进一步的,所述的基于所述种子字段数据为目标数据对象生成全局唯一性标识ID,包括:
在所述种子字段后添加分隔符,并在所述分隔符后添加序列号;
所述序列号在每次分配后按指定步长递增,作为下一目标数据对象的序列号。
进一步的,在所述的获取种子字段数据之前还包括:
上一级系统响应当前系统发出种子字段获取请求,向当前系统发送种子字段数据;
上一级系统分配种子字段数据后,按照指定步长对种子字段数据进行递增处理,作为下一次分配的种子字段数据。
进一步的,所述分隔符还用于限定所述序列号的进制规则。
第二方面,本发明提供一种数据全局唯一性标识id的生成系统,包括主系统及次级系统,所述主系统为所述次级系统分配种子字段数据;所述次级系统以所述种子字段数据为基础为目标数据对象生成全局唯一性标识ID;所述全局唯一性标识ID包括种子字段、分隔符和序列号,所述分隔符和序列号均为数字。
进一步的,所述主系统在为次级系统分配种子字段数据后,按照指定步长对种子字段数据进行递增处理,作为下一子系统分配的种子字段数据。
进一步的,所述次级系统在序列号分配后对所述序列号按指定步长递增处理,并将递增后的序列号作为下一目标数据对象的序列号。
进一步的,所述分隔符还用于限定所述序列号的进制规则。
本发明的有益效果是:本发明满足了最基本的id不重复的问题,同时与现有技术相比,实现了id存储位数减少,减小内存消耗,且都是用有序的数字存储,便于记性,并且在内存中实现序列号的生成,性能也较高。
附图说明
图1为本发明实施例提供的一种数据全局唯一性标识id的生成方法流程图;
图2为本发明实施例提供的一种数据全局唯一性标识id的生成系统结构图。
图3为本发明实施例提供的ID组成结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
实施例一
如图1所示,本发明实施例提供的一种数据全局唯一性标识id的生成方法。
包括以下步骤:
上一级系统响应当前系统发出的种子字段获取请求,向当前系统发送种子字段数据;
上一级系统分配种子字段数据后,按照指定步长对种子字段数据进行递增处理,作为下一次分配的种子字段数据。
获取种子字段数据,所述种子字段至少由一位数字构成,用于唯一标识当前系统;
基于所述种子字段数据为当前目标数据对象生成全局唯一性标识ID;
在所述种子字段后添加分隔符,并在所述分隔符后添加序列号;所述分隔符和序列号均为数字。
所述序列号在每次分配后按指定步长递增,作为下一目标数据对象的序列号。
进一步的,所述分隔符还用于限定所述序列号的进制规则。
例如:
假设一分布式应用场景,包括以存储系统作为上一级主系统和分布式子系统作为次级系统的分布式系统,存储系统为分布式子系统分配种子字段数据,或者分布式子系统从存储系统中取种子字段数据。
初始化服务时,在存储系统的配置表中存储一份种子值0,按十进制数存储。
服务每次启动时,子系统从存储系统中取一次种子值并在原值上加1回写入存储系统中,或者存储系统相应子系统请求将种子值分配给子系统然后再在原值上加1并写入存储系统。
子系统在获取的种子值后添加分隔符9以及序列号,序列号的值从0开始不断递增,为九进制,避免与分隔符重复,如图3所示。
服务再次启动时,则重复执行上述步骤即可。
如第一次启动服务,则生成的id依次为190,191...198,1910,1911...,第二次再次启动服务,则生成的id依次为290,291...298,2910,2911...依次类推。
本实施例提供的方法满足了最基本的id不重复的问题,同时与现有技术相比,实现了id存储位数减少,减小内存消耗,且都是用有序的数字存储,便于记性,并且在内存中实现序列号的生成,性能也较高。
实施例二
图2为本发明提供一种数据全局唯一性标识id的生成系统结构,包括主系统及次级系统,所述主系统为所述次级系统分配种子字段数据;所述次级系统以所述种子字段数据为基础为目标数据对象生成全局唯一性标识ID;所述全局唯一性标识ID包括种子字段、分隔符和序列号,所述分隔符和序列号均为数字。
进一步的,所述主系统在为次级系统分配种子字段数据后,按照指定步长对种子字段数据进行递增处理,作为下一子系统分配的种子字段数据。
进一步的,所述次级系统在序列号分配后对所述序列号按指定步长递增处理,并将递增后的序列号作为下一目标数据对象的序列号。
进一步的,所述分隔符还用于限定所述序列号的进制规则。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种数据全局唯一性标识id的生成方法,其特征在于,包括以下步骤:
获取种子字段数据,所述种子字段至少由一位数字构成,用于唯一标识当前系统;
基于所述种子字段数据为当前目标数据对象生成全局唯一性标识ID;所述全局唯一性标识ID包括种子字段、分隔符和序列号,所述分隔符和序列号均为数字。
2.根据权利要求1所述的方法,其特征在于,所述的基于所述种子字段数据为目标数据对象生成全局唯一性标识ID,包括:
在所述种子字段后添加分隔符,并在所述分隔符后添加序列号;
所述序列号在每次分配后按指定步长递增,作为下一目标数据对象的序列号。
3.根据权利要求1所述的方法,其特征在于,在所述的获取种子字段数据之前还包括:
上一级系统响应当前系统发出种子字段获取请求,向当前系统发送种子字段数据;
上一级系统分配种子字段数据后,按照指定步长对种子字段数据进行递增处理,作为下一次分配的种子字段数据。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述分隔符还用于限定所述序列号的进制规则。
5.一种数据全局唯一性标识id的生成系统,其特征在于,包括主系统及次级系统,所述主系统为所述次级系统分配种子字段数据;所述次级系统以所述种子字段数据为基础为目标数据对象生成全局唯一性标识ID;所述全局唯一性标识ID包括种子字段、分隔符和序列号,所述分隔符和序列号均为数字。
6.根据权利要求5所述的系统,其特征在于,所述主系统在为次级系统分配种子字段数据后,按照指定步长对种子字段数据进行递增处理,作为下一子系统分配的种子字段数据。
7.根据权利要求5所述的系统,其特征在于,所述次级系统在序列号分配后对所述序列号按指定步长递增处理,并将递增后的序列号作为下一目标数据对象的序列号。
8.根据权利要求5-7任一项所述的系统,其特征在于,所述分隔符还用于限定所述序列号的进制规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910946046.5A CN111126002A (zh) | 2019-10-01 | 2019-10-01 | 一种数据全局唯一性标识id的生成方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910946046.5A CN111126002A (zh) | 2019-10-01 | 2019-10-01 | 一种数据全局唯一性标识id的生成方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111126002A true CN111126002A (zh) | 2020-05-08 |
Family
ID=70496039
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910946046.5A Pending CN111126002A (zh) | 2019-10-01 | 2019-10-01 | 一种数据全局唯一性标识id的生成方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111126002A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831617A (zh) * | 2020-07-16 | 2020-10-27 | 福建天晴数码有限公司 | 一种基于分布式系统保证日志数据唯一性的方法 |
CN112354189A (zh) * | 2020-11-23 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 一种游戏数据对象匹配方法、装置、设备及存储介质 |
CN114143284A (zh) * | 2021-11-25 | 2022-03-04 | 奇安信科技集团股份有限公司 | 数据标识生成方法、装置、电子设备及存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823810A (zh) * | 2012-11-19 | 2014-05-28 | 中国电信股份有限公司 | 一种在分布式系统中生成唯一键的方法、装置及系统 |
CN106572165A (zh) * | 2016-10-26 | 2017-04-19 | 宜人恒业科技发展(北京)有限公司 | 一种分布式全局唯一id应用方法 |
CN107247734A (zh) * | 2017-05-05 | 2017-10-13 | 上海斐讯数据通信技术有限公司 | 一种分布式数据库主键生成方法及系统 |
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
US20180307576A1 (en) * | 2017-04-21 | 2018-10-25 | Nec Laboratories America, Inc. | Field content based pattern generation for heterogeneous logs |
CN108733802A (zh) * | 2018-05-17 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 识别码生成及解析方法、装置、存储介质和电子设备 |
US20190089785A1 (en) * | 2016-03-03 | 2019-03-21 | Cadami GmbH | Identification encoding device and identification decoding device for data distribution and networks, and network elements comprising such devices |
-
2019
- 2019-10-01 CN CN201910946046.5A patent/CN111126002A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103823810A (zh) * | 2012-11-19 | 2014-05-28 | 中国电信股份有限公司 | 一种在分布式系统中生成唯一键的方法、装置及系统 |
US20190089785A1 (en) * | 2016-03-03 | 2019-03-21 | Cadami GmbH | Identification encoding device and identification decoding device for data distribution and networks, and network elements comprising such devices |
CN106572165A (zh) * | 2016-10-26 | 2017-04-19 | 宜人恒业科技发展(北京)有限公司 | 一种分布式全局唯一id应用方法 |
US20180307576A1 (en) * | 2017-04-21 | 2018-10-25 | Nec Laboratories America, Inc. | Field content based pattern generation for heterogeneous logs |
CN107247734A (zh) * | 2017-05-05 | 2017-10-13 | 上海斐讯数据通信技术有限公司 | 一种分布式数据库主键生成方法及系统 |
CN108647193A (zh) * | 2018-04-20 | 2018-10-12 | 河南中烟工业有限责任公司 | 一种可应用于分布式系统的唯一标识符生成方法及装置 |
CN108733802A (zh) * | 2018-05-17 | 2018-11-02 | 腾讯科技(深圳)有限公司 | 识别码生成及解析方法、装置、存储介质和电子设备 |
Non-Patent Citations (1)
Title |
---|
张晓林: "数字对象的唯一标识符技术" * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111831617A (zh) * | 2020-07-16 | 2020-10-27 | 福建天晴数码有限公司 | 一种基于分布式系统保证日志数据唯一性的方法 |
CN111831617B (zh) * | 2020-07-16 | 2022-08-09 | 福建天晴数码有限公司 | 一种基于分布式系统保证日志数据唯一性的方法 |
CN112354189A (zh) * | 2020-11-23 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 一种游戏数据对象匹配方法、装置、设备及存储介质 |
CN112354189B (zh) * | 2020-11-23 | 2022-05-20 | 腾讯科技(深圳)有限公司 | 一种游戏数据对象匹配方法、装置、设备及存储介质 |
CN114143284A (zh) * | 2021-11-25 | 2022-03-04 | 奇安信科技集团股份有限公司 | 数据标识生成方法、装置、电子设备及存储介质 |
CN114143284B (zh) * | 2021-11-25 | 2024-06-21 | 奇安信科技集团股份有限公司 | 数据标识生成方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108959386B (zh) | 分布式全局唯一id生成方法、装置、设备和存储介质 | |
CN111126002A (zh) | 一种数据全局唯一性标识id的生成方法及系统 | |
US20150169716A1 (en) | Volume cohorts in object-redundant storage systems | |
US10620830B2 (en) | Reconciling volumelets in volume cohorts | |
WO2020224091A1 (zh) | 序列生成方法、装置、计算机设备及存储介质 | |
CN103246659B (zh) | 键值数据查询的方法和装置 | |
CN107454203A (zh) | 在分布式系统中生成唯一id的方法 | |
CN111353275B (zh) | 一种分布式系统唯一标识符及其生成方法 | |
CN105072160A (zh) | 一种流水号生成方法、装置及服务器 | |
US20180253438A1 (en) | Teleporting content over network using hash matches | |
CN107247734A (zh) | 一种分布式数据库主键生成方法及系统 | |
CN105279258B (zh) | 一种均衡分布的文件存储方法及系统 | |
CN106777258B (zh) | 一种医疗大数据存储中Hbase行键的编码及压缩方法 | |
CN103460209A (zh) | 编码数据标识符的方法 | |
CN105450712A (zh) | 一种数据传输方法及装置 | |
CN111416880A (zh) | Ip地址的寻址方法及装置,计算机存储介质及电子设备 | |
CN108733802B (zh) | 识别码生成及解析方法、装置、存储介质和电子设备 | |
CN112380004B (zh) | 内存管理方法、装置、计算机可读存储介质及电子设备 | |
CN105447141A (zh) | 一种数据处理的方法及节点 | |
CN112329393A (zh) | 一种短码id的生成方法、设备、存储介质 | |
CA2934041C (en) | Reconciling volumelets in volume cohorts | |
CN110460634B (zh) | 边缘计算共识请求管理方法和系统 | |
CN110708374B (zh) | 一种边缘节点的分配方法、分配装置及可读存储介质 | |
CN107454209B (zh) | 一种域名解析方法及装置 | |
US9176972B1 (en) | Implied M83 names in alternate name generation in directories supporting multiple naming protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |