CN117931825A - 序列号生成方法、系统、装置、计算机设备及存储介质 - Google Patents
序列号生成方法、系统、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN117931825A CN117931825A CN202410151511.7A CN202410151511A CN117931825A CN 117931825 A CN117931825 A CN 117931825A CN 202410151511 A CN202410151511 A CN 202410151511A CN 117931825 A CN117931825 A CN 117931825A
- Authority
- CN
- China
- Prior art keywords
- sequence number
- current
- segment
- number segment
- database node
- 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
- 238000000034 method Methods 0.000 title claims abstract description 42
- 230000004044 response Effects 0.000 claims abstract description 12
- 238000004590 computer program Methods 0.000 claims description 22
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- OKTJSMMVPCPJKN-UHFFFAOYSA-N Carbon Chemical compound [C] OKTJSMMVPCPJKN-UHFFFAOYSA-N 0.000 description 1
- 229910021389 graphene Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种序列号生成方法、系统、装置、计算机设备及存储介质,涉及计算机技术领域,可用于金融科技领域或其他相关领域。所述方法包括:确定序列号生成请求对应的序列号类型及目标数据库节点;从缓存中读取当前序列号段及当前序列号,根据当前序列号确定目标序列号;在当前序列号段中存在未使用序列号的情况下,通过未使用序列号对当前序列号进行更新;或者在不存在未使用序列号的情况下,向目标数据库节点发送当前序列号段更新请求,接收目标数据库节点响应于当前序列号段更新请求发送的新的序列号段,通过新的序列号段对当前序列号段进行更新,并对当前序列号进行更新。采用本方法能够提高生成序列号的效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种序列号生成方法、系统、装置、计算机设备及存储介质。
背景技术
随着互联网技术在各行各业的飞速发展,唯一序列号广泛用于各个业务系统中,用于标识业务对象,定位具体数据,如银行系统的交易流水号、业务单号、客户编号、订单号等。为避免唯一序列号的生成速度成为业务瓶颈,唯一序列号的生成必须要稳定、快速、高效。尤其在复杂的分布式业务场景中,一个优秀的唯一序列号生成方法尤为重要。
现有技术通常将序列号保存在数据库中,前端业务节点需要使用序列号时从数据库中读取。但由于数据库的读写速度较慢,序列号的生成速度也会较慢,在业务高发期生成序列号的速度将限制业务进行的速度。
发明内容
基于此,有必要针对上述技术问题,提供一种序列号生成方法、系统、装置、计算机设备及存储介质。
第一方面,本申请提供了一种序列号生成方法。所述方法包括:
确定序列号生成请求对应的序列号类型及目标数据库节点;
从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者,
在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求,接收所述目标数据库节点响应于所述当前序列号段更新请求发送的新的序列号段,通过所述新的序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
在其中一个实施例中,所述缓存分为一级缓存、二级缓存、三级缓存,所述三级缓存用于存储缓存序列号段,所述二级缓存用于存储所述缓存序列号段所属的数据库节点的各序列号段,所述一级缓存用于存储各数据库节点对应的各序列号段,所述三级缓存的读取速度大于所述二级缓存的读取速度,且所述二级缓存的读取速度大于所述一级缓存的读取速度。
在其中一个实施例中,所述从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,包括:
从所述三级缓存中读取所述缓存序列号段,在所述缓存序列号段与所述序列号类型及所述目标数据库节点相匹配的情况下,将所述缓存序列号段作为当前序列号段;或者,
在所述缓存序列号段与所述目标数据库节点相匹配、且与所述序列号类型不匹配的情况下,从所述二级缓存中读取与所述序列号类型相匹配的第一目标序列号段,将所述第一目标序列号段作为当前序列号段,并将所述第一目标序列号段作为所述缓存序列号段储存于所述三级缓存中;或者,
在所述缓存序列号段与所述目标数据库节点不匹配、且与所述序列号类型不匹配的情况下,从所述一级缓存中读取与所述目标数据库节点及所述序列号类型相匹配的第二目标序列号段,将所述第二目标序列号段作为当前序列号段,并将所述目标数据库节点对应的各序列号段存储至所述二级缓存中,将所述第二目标序列号段作为所述缓存序列号段储存于所述三级缓存中。
在其中一个实施例中,所述在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新,包括:
在排列在所述当前序列号之后、且与所述当前序列号相邻的候选序列号不是所述当前序列号段的结束序列号的情况下,确定所述当前序列号段中存在未使用序列号,并通过所述候选序列号对所述当前序列号进行更新。
在其中一个实施例中,所述通过更新后的当前序列号段对所述当前序列号进行更新,包括:
将排列在更新后的当前序列号段的第一位的序列号,作为新的当前序列号。
第二方面,本申请还提供了一种序列号生成系统。所述系统包括至少一个服务器节点与至少一个数据库节点,其中,
所述服务器节点,用于确定序列号生成请求对应的序列号类型及目标数据库节点,从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
所述服务器节点,还用于在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求;
所述目标数据库节点,用于响应于所述当前序列号段更新请求,将所述目标数据库节点中储存的储存序列号段发送至所述服务器节点,并对所述储存序列号段进行更新;
所述服务器节点,还用于通过所述储存序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
在其中一个实施例中,所述当前序列号段由第一起始序列号、当前序列号及第一结束序列号组成,所述储存序列号段由第二起始序列号及序列号段长度组成,
所述目标数据库节点,还用于响应于所述当前序列号段更新请求,将所述第二起始序列号及序列号段长度发送至所述服务器节点,并将所述第二起始序列号与所述序列号段长度之和作为新的第二起始序列号;
所述服务器节点,还用于将所述第一起始序列号更新为所述第二起始序列号,并将所述第一结束序列号更新为所述第二起始序列号与所述序列号段长度之和。
在其中一个实施例中,所述数据库节点对应至少一个备数据库节点,所述系统还包括消息中间件,
所述消息中间件,用于接收所述当前序列号段更新请求,并将所述当前序列号段更新请求发送至所述目标数据库节点;或者在所述目标数据库节点发生故障的情况下,将所述当前序列号段更新请求发送至所述目标数据库节点的所述备数据库节点。
第三方面,本申请还提供了一种序列号生成装置。所述装置包括:
确定模块,用于确定序列号生成请求对应的序列号类型及目标数据库节点;
读取模块,用于从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
更新模块,用于在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求,接收所述目标数据库节点响应于所述当前序列号段更新请求发送的新的序列号段,通过所述新的序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
在其中一个实施例中,所述缓存分为一级缓存、二级缓存、三级缓存,所述三级缓存用于存储缓存序列号段,所述二级缓存用于存储所述缓存序列号段所属的数据库节点的各序列号段,所述一级缓存用于存储各数据库节点对应的各序列号段,所述三级缓存的读取速度大于所述二级缓存的读取速度,且所述二级缓存的读取速度大于所述一级缓存的读取速度。
在其中一个实施例中,所述读取模块,还用于:
从所述三级缓存中读取所述缓存序列号段,在所述缓存序列号段与所述序列号类型及所述目标数据库节点相匹配的情况下,将所述缓存序列号段作为当前序列号段;或者,
在所述缓存序列号段与所述目标数据库节点相匹配、且与所述序列号类型不匹配的情况下,从所述二级缓存中读取与所述序列号类型相匹配的第一目标序列号段,将所述第一目标序列号段作为当前序列号段,并将所述第一目标序列号段作为所述缓存序列号段储存于所述三级缓存中;或者,
在所述缓存序列号段与所述目标数据库节点不匹配、且与所述序列号类型不匹配的情况下,从所述一级缓存中读取与所述目标数据库节点及所述序列号类型相匹配的第二目标序列号段,将所述第二目标序列号段作为当前序列号段,并将所述目标数据库节点对应的各序列号段存储至所述二级缓存中,将所述第二目标序列号段作为所述缓存序列号段储存于所述三级缓存中。
在其中一个实施例中,所述更新模块,还用于:
在排列在所述当前序列号之后、且与所述当前序列号相邻的候选序列号不是所述当前序列号段的结束序列号的情况下,确定所述当前序列号段中存在未使用序列号,并通过所述候选序列号对所述当前序列号进行更新。
在其中一个实施例中,所述更新模块,还用于:
将排列在更新后的当前序列号段的第一位的序列号,作为新的当前序列号。
第四方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以上任一项方法。
第五方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上任一项方法。
第六方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以上任一项方法。
上述序列号生成方法、系统、装置、计算机设备及存储介质,预先将数据库节点生成的序列号段存储于缓存中,并在接收到序列号生成请求的情况下,从缓存中读取当前序列号段并读取当前序列号,在根据当前序列号确定序列号生成请求对应的目标序列号后,重新根据当前序列号段确定需要存储在缓存中的当前序列号,仅需要在当前序列号段用尽的情况下向数据库发送请求对当前序列号段进行更新。因此可以减少需要访问数据库的次数,提高生成序列号的速度。
附图说明
图1为一个实施例中序列号生成方法的流程示意图;
图2为一个实施例中服务器节点的缓存的示意图;
图3为一个实施例中序列号生成系统的示意图;
图4为一个实施例中序列号生成系统的示意图;
图5为一个实施例中序列号生成装置的结构框图;
图6为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种序列号生成方法。本实施例以该方法应用于分布式系统中的服务器节点进行举例说明,该方法包括以下步骤:
步骤102,确定序列号生成请求对应的序列号类型及目标数据库节点。
本申请实施例中,前端业务节点需要获取序列号时,可以向分布式系统发送序列号生成请求,分布式系统根据系统负载等参数选择处理该序列号生成请求的服务器节点,并将序列号生成请求发送至该服务器节点。服务器节点的缓存中分别储存有各数据库节点分配给该服务器节点的各序列号类型的序列号段,每个数据库节点中储存有本数据库节点生成各序列号类型的序列号的具体规则。服务器节点可以在初次加入分布式系统时向各数据库节点发送请求,以使得各数据库节点生成各序列号类型的序列号段,并将序列号段发送至服务器节点,服务器节点进而将各数据库节点的序列号段储存于缓存中。
服务器节点在接收到序列号生成请求的情况下,根据序列号生成请求中携带的标识确定序列号生成请求对应的序列号类型(例如是需要生成订单号还是客户编号等),进而确定该序列号生成请求对应的目标数据库节点。本申请实施例对于确定目标数据库节点的方式不作具体限定。例如可以将本服务器节点在接收到上一个序列号生成请求时使用的数据库节点作为本次的目标数据库节点,或者通过一致性哈希算法针对序列号生成请求的特定字段进行哈希运算,以随机得到目标数据库节点等。
步骤104,从缓存中读取目标数据库节点对应序列号类型的当前序列号段,从当前序列号段中读取当前序列号,根据当前序列号确定序列号生成请求对应的目标序列号。
本申请实施例中,缓存中的每一序列号段中均记录有该序列号段的当前序列号。示例性的,序列号段可以记录为【起始序列号,当前序列号,结束序列号】的形式,比如【500,627, 1000】,或者也可以记录为【起始序列号,序列号段长度,当前序列号】的形式,比如【500, 500, 627】,在序列号段不连续时也可以采用其他形式记录序列号段,只要序列号段中记录有当前序列号即可。在从缓存中读取当前序列号段后,服务器节点可以从当前序列号段中获取当前序列号。
获取当前序列号后,可以基于当前序列号生成最终的目标序列号。例如为确保目标序列号的全局唯一性,避免各数据库节点生成的当前序列号相同从而导致目标序列号相同的问题,可以使得目标序列号由当前序列号和该当前序列号对应的目标数据库节点的唯一标识号组成。除此之外,还可以使得目标序列号由当前序列号、目标数据库节点的唯一标识号和当前时间戳组成等,进一步确保目标序列号的全局唯一性。
步骤106,在当前序列号段中存在未使用序列号的情况下,通过未使用序列号对当前序列号进行更新。
本申请实施例中,为使得服务器节点在下一次接收到序列号生成请求时能够快速获取到当前序列号,可以在本次生成序列号生成请求对应的目标序列号后就预先生成下一次需要使用的当前序列号,并将生成的新的当前序列号储存于当前序列号段中。
示例性的,可以预先设定生成新的当前序列号的规则,例如使新的当前序列号为旧的当前序列号+1,这样每次生成的当前序列号都是连续的,通过判断旧的当前序列号是否小于当前序列号段的结束序列号,可以确定当前序列号段中是否存在未使用序列号,若存在未使用序列号,则可以通过对旧的当前序列号+1得到新的当前序列号。或者为使得生成的序列号不具有规律性,避免序列号的规律被破解导致其他人员对序列号进行伪造,可以从未使用序列号中随机取一个序列号作为新的当前序列号,且可以在每次使用过旧的当前序列号后对旧的当前序列号进行记录,这样通过从当前序列号段中去除已经使用过的旧的当前序列号,就可以得到当前序列号段中的未使用序列号。
步骤108,在当前序列号段中不存在未使用序列号的情况下,向目标数据库节点发送当前序列号段更新请求,接收目标数据库节点响应于当前序列号段更新请求发送的新的序列号段,通过新的序列号段对当前序列号段进行更新,并通过更新后的当前序列号段对当前序列号进行更新。
本申请实施例中,若当前序列号段中不存在未使用序列号,则服务器节点需要从目标数据库节点中获取新的序列号段,以对当前序列号段进行更新。服务器节点可以向目标数据库节点发送当前序列号段更新请求,目标数据库节点接收到当前序列号段更新请求后,可以基于当前序列号段更新请求对应的序列号类型,获取该序列号类型生成序列号的具体规则,并基于该规则生成新的序列号段发送至服务器节点。服务器节点根据新的序列号段对自身缓存内存储的当前序列号段进行更新,并基于生成新的当前序列号的规则从新的序列号段中确定新的当前序列号。
本申请实施例提供的序列号生成方法,预先将数据库节点生成的序列号段存储于缓存中,并在接收到序列号生成请求的情况下,从缓存中读取当前序列号段并读取当前序列号,在根据当前序列号确定序列号生成请求对应的目标序列号后,重新根据当前序列号段确定需要存储在缓存中的当前序列号,仅需要在当前序列号段用尽的情况下向数据库发送请求对当前序列号段进行更新。因此可以减少需要访问数据库的次数,提高生成序列号的速度。
在一个实施例中,缓存分为一级缓存、二级缓存、三级缓存,三级缓存用于存储缓存序列号段,二级缓存用于存储缓存序列号段所属的数据库节点的各序列号段,一级缓存用于存储各数据库节点对应的各序列号段,三级缓存的读取速度大于二级缓存的读取速度,且二级缓存的读取速度大于一级缓存的读取速度。
本申请实施例中,如图2所示,服务器节点的缓存分为三级,其中三级缓存的读取速度大于二级缓存的读取速度,二级缓存的读取速度大于一级缓存的读取速度,同时三级缓存的大小小于二级缓存的大小,二级缓存的大小小于一级缓存的大小。服务器节点可以将各当前序列号段存储在最大的一级缓存中,同时将服务器节点使用次数较多的数据存储在二级缓存和三级缓存中,以进一步加快服务器节点通过使用次数较多的数据生成目标序列号的速度。
缓存序列号段是服务器节点的缓存中储存的一个或多个序列号段,可以预先确定需要将哪一些序列号段作为缓存序列号段存储至三级缓存中。例如在服务器节点每一次都将接收到上一个序列号生成请求时使用的数据库节点作为本次的目标数据库节点的情况下,可以选择一个数据库节点的全部序列号段作为缓存序列号段。在服务器节点随机选择数据库节点的情况下,可以确定对应序列号生成请求最多的序列号类型,并将部分或全部数据库节点对应该序列号类型的序列号段存储至三级缓存中。也可以通过其他的方式确定缓存序列号段,本申请实施例对此不作具体限定。这样由于序列号生成请求需要使用的当前序列号段大概率存储于三级缓存中,服务器节点可以以较快的速度读取当前序列号段及当前序列号,加快生成目标序列号的速度。
可以将缓存序列号段所属的数据库节点的各序列号段存储于二级缓存中,这样在服务器节点使用上一个序列号生成请求的数据库节点作为本次的目标数据库节点的情况下,即便本次的序列号生成请求对应的序列号类型与上一次的序列号生成请求对应的序列号类型不同,服务器节点也可以从二级缓存中以较快的速度读取当前序列号段及当前序列号。而在服务器节点随机选择数据库节点的情况下,这样就相当于随机选取部分当前序列号段存储至二级缓存中,以使得服务器节点有一定概率可以直接从二级缓存中获取序列号生成请求需要使用的当前序列号段,加快生成目标序列号的速度。
若服务器节点无法从三级缓存或二级缓存中读取到当前序列号段,则服务器节点可以从一级缓存中存储的全部序列号段中,读取到和目标数据库节点及序列号类型均对应的当前序列号段。
在一个实施例中,步骤104中,从缓存中读取目标数据库节点对应序列号类型的当前序列号段,包括:
从三级缓存中读取缓存序列号段,在缓存序列号段与序列号类型及目标数据库节点相匹配的情况下,将缓存序列号段作为当前序列号段;或者,
在缓存序列号段与目标数据库节点相匹配、且与序列号类型不匹配的情况下,从二级缓存中读取与序列号类型相匹配的第一目标序列号段,将第一目标序列号段作为当前序列号段,并将第一目标序列号段作为缓存序列号段储存于三级缓存中;或者,
在缓存序列号段与目标数据库节点不匹配、且与序列号类型不匹配的情况下,从一级缓存中读取与目标数据库节点及序列号类型相匹配的第二目标序列号段,将第二目标序列号段作为当前序列号段,并将目标数据库节点对应的各序列号段存储至二级缓存中,将第二目标序列号段作为缓存序列号段储存于三级缓存中。
本申请实施例中,可以根据本次使用的当前序列号段,对三级缓存和二级缓存中存储的数据进行更新。服务器节点在每次读取当前序列号段时,可以首先确定存储在三级缓存中的缓存序列号段中,是否存在与序列号生成请求的序列号类型及目标数据库节点均匹配的序列号段。若存在,则可以将该序列号段作为目标数据库节点对应序列号类型的当前序列号段,并从当前序列号段中读取当前序列号。
若不存在这样的序列号段,但存在与目标数据库节点相匹配的缓存序列号段,则表明与目标数据库节点和序列号类型均匹配的序列号段位于二级缓存中。服务器节点可以从二级缓存中读取该第一目标序列号段,将第一目标序列号段作为本次需要使用的当前序列号段,并从当前序列号段中读取当前序列号。
由于服务器节点本次使用了第一目标序列号段,因此可以将第一目标序列号段存储为缓存序列号段,以使得下一次服务器节点需要使用第一目标序列号段时可以直接从三级缓存中读取第一目标序列号段,提高获取当前序列号段的速度。若三级缓存已经被占满,则可以从三级缓存中删除在一段时间内被调用次数最少的缓存序列号段。
若三级缓存中的缓存序列号段与目标数据库节点及序列号类型均不匹配,则表明与目标数据库节点和序列号类型均匹配的序列号段位于一级缓存中。服务器节点可以从一级缓存中读取该第二目标序列号段,将第二目标序列号段作为本次需要使用的当前序列号段,并从当前序列号段中读取当前序列号。
由于服务器节点本次使用了第二目标序列号段,因此可以将第二目标序列号段存储为缓存序列号段。同时由于第二目标序列号段属于目标数据库节点,服务器节点可以将目标数据库节点的各序列号段存储至二级缓存中。若二级缓存已经被占满,则可以统计二级缓存中每个数据库节点所属的各序列号段在一段时间内被调用的次数之和,并删除被调用次数之和最少的数据库节点对应的各序列号段。
本申请实施例提供的序列号生成方法,将缓存划分为多级,并在读取速度最快的三级缓存中储存特定的缓存序列号段,在读取速度居中的二级缓存中储存缓存序列号段所属的数据库节点的各序列号段,在一级缓存中储存全部数据库节点对应的全部序列号段,可以使得服务器节点在读取部分序列号段时直接从读取速度较快的三级缓存和二级缓存中读取,加快获取当前序列号段和当前序列号的速度,进而加快生成目标序列号的速度。
在一个实施例中,步骤106中,在当前序列号段中存在未使用序列号的情况下,通过未使用序列号对当前序列号进行更新,包括:
在排列在当前序列号之后、且与当前序列号相邻的候选序列号不是当前序列号段的结束序列号的情况下,确定当前序列号段中存在未使用序列号,并通过候选序列号对当前序列号进行更新。
本申请实施例中,可以通过对旧的序列号+1得到新的序列号。可以使得每个序列号段都不包括该序列号段的结束序列号,也即若一个序列号段的起始序列号是500,结束序列号是1000,则在服务器节点获取到的当前序列号是999时,就表明当前序列号段已用尽,需要从数据库节点获取新的序列号段。因此在排列在当前序列号之后、且与当前序列号相邻(也即排列在当前序列号后一位的序列号)的候选序列号不是结束序列号的情况下,表明当前序列号段未用尽,可以将候选序列号作为新的当前序列号。
在候选序列号是结束序列号的情况下,表明当前序列号已经用尽,需要从数据库节点中获取新的当前序列号段。
在一个实施例中,步骤108中,通过更新后的当前序列号段对当前序列号进行更新,包括:
将排列在更新后的当前序列号段的第一位的序列号,作为新的当前序列号。
本申请实施例中,在从数据库节点获取新的当前序列号段后,可以将排列在当前序列号段第一位的序列号(也即新的当前序列号段的起始序列号)作为当前序列号。例如在新的当前序列号段的起始序列号是1000,结束序列号是1500的情况下,服务器节点可以确定当前序列号为1000,并将当前序列号记录在当前序列号段中。
本申请实施例提供的序列号生成方法,对旧的当前序列号+1以获取新的当前序列号,因此可以通过判断排列在当前序列号后一位的候选序列号是否是结束序列号,确定当前序列号段中是否存在未使用序列号,提高判断当前序列号段中是否存在未使用序列号的速度。
在一个实施例中,如图3所示,提供了一种序列号生成系统。系统包括至少一个服务器节点与至少一个数据库节点,其中服务器节点用于确定序列号生成请求对应的序列号类型及目标数据库节点,从缓存中读取目标数据库节点对应序列号类型的当前序列号段,从当前序列号段中读取当前序列号,根据当前序列号确定序列号生成请求对应的目标序列号;服务器节点还用于在当前序列号段中存在未使用序列号的情况下,通过未使用序列号对当前序列号进行更新;或者在当前序列号段中不存在未使用序列号的情况下,向目标数据库节点发送当前序列号段更新请求;目标数据库节点用于响应于当前序列号段更新请求,将目标数据库节点中储存的储存序列号段发送至服务器节点,并对储存序列号段进行更新;服务器节点还用于通过新的序列号段对当前序列号段进行更新,并通过更新后的当前序列号段对当前序列号进行更新。
本申请实施例中,序列号生成系统由至少一个服务器节点和至少一个数据库节点组成,序列号生成系统的接入层接收前端业务节点发送的序列号生成请求,并根据服务器节点的负载、服务器节点的带宽等参数选择需要将序列号生成请求分发至哪一服务器节点。服务器节点确定序列号生成请求对应的目标数据库节点(可以根据哈希算法随机选择,或者也可以将上一次使用的数据库节点作为本次的目标数据库节点)从自身的缓存中读取属于目标数据库节点,且与序列号生成请求指定的序列号类型相对应的当前序列号段,从当前序列号段中读取当前序列号,进而基于当前序列号生成目标序列号返回至前端业务节点。
服务器节点生成目标序列号后,需要对当前序列号段中记录的当前序列号进行更新,便于下一次接收到序列号生成请求时快速获取当前序列号。若当前序列号段未用尽,也即当前序列号段中还存在未使用序列号,则可以从未使用序列号中选择新的当前序列号,并对当前序列号进行更新。若当前序列号段已用尽,则服务器节点需要向目标数据库节点发送当前序列号段更新请求。
各数据库节点中储存有预先生成的、各序列号类型对应的储存序列号段,数据库节点在接收到当前序列号段更新请求后,将与当前序列号段更新请求对应的序列号类型的储存序列号段发送至服务器节点。由于各服务器节点使用的数据库节点相同,为避免出现数据库节点将相同的储存序列号段发送至不同的服务器节点,导致生成的序列号出现重复的情况,可以使得数据库节点一次只处理一个当前序列号段更新请求,并且在将储存序列号段发送至一个服务器节点后,就对储存序列号段进行更新,使得更新后的储存序列号段与更新前的储存序列号段不存在重叠。这样可以确保每个服务器节点的缓存内储存的序列号段都是不同的,确保目标序列号的全局唯一性。
服务器节点在接收到储存序列号段后,对自身缓存中储存的当前序列号段进行更新,并从当前序列号段中确定当前序列号,将当前序列号记录在当前序列号段中。
本申请实施例提供的序列号生成系统,预先将数据库节点生成的序列号段存储于缓存中,并在接收到序列号生成请求的情况下,从缓存中读取当前序列号段并读取当前序列号,在根据当前序列号确定序列号生成请求对应的目标序列号后,重新根据当前序列号段确定需要存储在缓存中的当前序列号,仅需要在当前序列号段用尽的情况下向数据库发送请求对当前序列号段进行更新。因此可以减少需要访问数据库的次数,提高生成序列号的速度。
在一个实施例中,当前序列号段由第一起始序列号、当前序列号及第一结束序列号组成,储存序列号段由第二起始序列号及序列号段长度组成,目标数据库节点还用于响应于当前序列号段更新请求,将第二起始序列号及序列号段长度发送至服务器节点,并将第二起始序列号与序列号段长度之和作为新的第二起始序列号;服务器节点,还用于将第一起始序列号更新为第二起始序列号,并将第一结束序列号更新为第二起始序列号与序列号段长度之和。
本申请实施例中,数据库节点中记录的储存序列号段由第二起始序列号及序列号段长度组成。数据库节点可以基于MySQL开发,各序列号类型的储存序列号段可以以数据表的形式储存在数据库节点中,参见下表1:
表1
其中,起始序列号最小值和起始序列号最大值的用途是限定生成的序列号的长度,若第二起始序列号超过起始序列号最大值,则可以将第二起始序列号重置为起始序列号最小值。为避免重置第二起始序列号导致的当前序列号重复会导致目标序列号重复,可以使得目标序列号中还包括时间戳。
在数据库节点需要向服务器节点发送储存序列号段时,数据库节点可以根据当前序列号段更新请求中指定的序列号类型,读取序列名称与序列号类型相符的储存序列号段,并将储存序列号段的第二起始序列号和序列号段长度发送至服务器节点。数据库节点进而对储存序列号段进行更新,将第二起始序列号与序列号段长度之和作为新的第二起始序列号。以储存序列号段是上表1中的客户编号为例,数据库节点在将第二起始序列号500和序列号段长度500发送至服务器节点后,可以将第二起始序列号与序列号段长度之和(1000)作为新的第二起始序列号,将客户编号这一储存序列号段的第二起始序列号修改为1000。
服务器节点中储存的当前序列号段由第一起始序列号、当前序列号和第一结束序列号组成,当前序列号段不包括第一结束序列号,也即若第一起始序列号是500,第一结束序列号是1000,则当前序列号只能取500-999之间的值。服务器节点在收到储存序列号段后,将第一起始序列号更新为第二起始序列号,将当前序列号更新为第二起始序列号,将第一结束序列号更新为第一起始序列号与序列号段长度之和,完成对当前序列号段的更新。服务器节点还可以从当前序列号段中确定当前序列号,进而将当前序列号存储于当前序列号段中。
本申请实施例提供的序列号生成系统,使得数据库节点在将储存序列号段发送至服务器节点后对储存序列号段进行更新,可以确保数据库节点每次向服务器节点发送的都是不同的储存序列号段,避免出现不同的服务器节点中储存的序列号段相同的情况,确保当前序列号的全局唯一性。
在一个实施例中,如图4所示,数据库节点(以下称为主数据库节点)对应至少一个备数据库节点,上述系统还包括消息中间件,消息中间件用于接收当前序列号段更新请求,并将当前序列号段更新请求发送至目标数据库节点;或者在目标数据库节点发生故障的情况下,将当前序列号段更新请求发送至目标数据库节点的备数据库节点。
本申请实施例中,为赋予系统高可用性,可以为主数据库节点设置备数据库节点。备数据库节点和主数据库节点定期进行系统级同步。如图4所示,在存在多个备数据库节点的情况下,还可以将不同的备数据库节点放置在不同的园区中,例如园区一中放置主数据库节点和1个备数据库节点,园区二中放置2个备数据库节点,这样在整个园区发生故障的情况下,另一个园区的备数据库节点还可以正常处理序列号生成请求,避免出现用于生成序列号的数据库节点不可用导致其他业务也发生崩溃的情况。
消息中间件用于对当前序列号段更新请求进行路由。示例性的,消息中间件可以采用DBLE分布式中间件(一种企业级开源分布式中间件)。当前序列号段更新请求中包含该请求需要访问的数据库节点的标识,消息中间件可以根据该标识将当前序列号段更新请求分发至对应的数据库节点。若主数据库节点出现故障,则消息中间件可以从备数据库节点中重新确定一个主数据库节点,并将当前序列号段更新请求重新路由至该节点。
本申请实施例提供的序列号生成系统,为数据库节点设置备数据库节点,同时设置消息中间件对当前序列号段更新请求进行路由。设置多个备数据库节点可以确保服务的高可用性,同时设置消息中间件可以减少瞬时流量对数据库节点的冲击,进一步提高系统运行的稳定性。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的序列号生成方法的序列号生成装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个序列号生成装置实施例中的具体限定可以参见上文中对于序列号生成方法的限定,在此不再赘述。
在一个实施例中,如图5所示,提供了一种序列号生成装置500,包括:确定模块502、读取模块504、更新模块506,其中:
确定模块502,用于确定序列号生成请求对应的序列号类型及目标数据库节点;
读取模块504,用于从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
更新模块506,用于在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求,接收所述目标数据库节点响应于所述当前序列号段更新请求发送的新的序列号段,通过所述新的序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
本申请实施例提供的序列号生成装置,预先将数据库节点生成的序列号段存储于缓存中,并在接收到序列号生成请求的情况下,从缓存中读取当前序列号段并读取当前序列号,在根据当前序列号确定序列号生成请求对应的目标序列号后,重新根据当前序列号段确定需要存储在缓存中的当前序列号,仅需要在当前序列号段用尽的情况下向数据库发送请求对当前序列号段进行更新。因此可以减少需要访问数据库的次数,提高生成序列号的速度。
在其中一个实施例中,所述缓存分为一级缓存、二级缓存、三级缓存,所述三级缓存用于存储缓存序列号段,所述二级缓存用于存储所述缓存序列号段所属的数据库节点的各序列号段,所述一级缓存用于存储各数据库节点对应的各序列号段,所述三级缓存的读取速度大于所述二级缓存的读取速度,且所述二级缓存的读取速度大于所述一级缓存的读取速度。
在其中一个实施例中,所述读取模块504,还用于:
从所述三级缓存中读取所述缓存序列号段,在所述缓存序列号段与所述序列号类型及所述目标数据库节点相匹配的情况下,将所述缓存序列号段作为当前序列号段;或者,
在所述缓存序列号段与所述目标数据库节点相匹配、且与所述序列号类型不匹配的情况下,从所述二级缓存中读取与所述序列号类型相匹配的第一目标序列号段,将所述第一目标序列号段作为当前序列号段,并将所述第一目标序列号段作为所述缓存序列号段储存于所述三级缓存中;或者,
在所述缓存序列号段与所述目标数据库节点不匹配、且与所述序列号类型不匹配的情况下,从所述一级缓存中读取与所述目标数据库节点及所述序列号类型相匹配的第二目标序列号段,将所述第二目标序列号段作为当前序列号段,并将所述目标数据库节点对应的各序列号段存储至所述二级缓存中,将所述第二目标序列号段作为所述缓存序列号段储存于所述三级缓存中。
在其中一个实施例中,所述更新模块506,还用于:
在排列在所述当前序列号之后、且与所述当前序列号相邻的候选序列号不是所述当前序列号段的结束序列号的情况下,确定所述当前序列号段中存在未使用序列号,并通过所述候选序列号对所述当前序列号进行更新。
在其中一个实施例中,所述更新模块506,还用于:
将排列在更新后的当前序列号段的第一位的序列号,作为新的当前序列号。
上述装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图6所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种序列号生成方法。
本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (12)
1.一种序列号生成方法,其特征在于,所述方法包括:
确定序列号生成请求对应的序列号类型及目标数据库节点;
从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者,
在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求,接收所述目标数据库节点响应于所述当前序列号段更新请求发送的新的序列号段,通过所述新的序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
2.根据权利要求1所述的方法,其特征在于,所述缓存分为一级缓存、二级缓存、三级缓存,所述三级缓存用于存储缓存序列号段,所述二级缓存用于存储所述缓存序列号段所属的数据库节点的各序列号段,所述一级缓存用于存储各数据库节点对应的各序列号段,所述三级缓存的读取速度大于所述二级缓存的读取速度,且所述二级缓存的读取速度大于所述一级缓存的读取速度。
3.根据权利要求2所述的方法,其特征在于,所述从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,包括:
从所述三级缓存中读取所述缓存序列号段,在所述缓存序列号段与所述序列号类型及所述目标数据库节点相匹配的情况下,将所述缓存序列号段作为当前序列号段;或者,
在所述缓存序列号段与所述目标数据库节点相匹配、且与所述序列号类型不匹配的情况下,从所述二级缓存中读取与所述序列号类型相匹配的第一目标序列号段,将所述第一目标序列号段作为当前序列号段,并将所述第一目标序列号段作为所述缓存序列号段储存于所述三级缓存中;或者,
在所述缓存序列号段与所述目标数据库节点不匹配、且与所述序列号类型不匹配的情况下,从所述一级缓存中读取与所述目标数据库节点及所述序列号类型相匹配的第二目标序列号段,将所述第二目标序列号段作为当前序列号段,并将所述目标数据库节点对应的各序列号段存储至所述二级缓存中,将所述第二目标序列号段作为所述缓存序列号段储存于所述三级缓存中。
4.根据权利要求1所述的方法,其特征在于,所述在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新,包括:
在排列在所述当前序列号之后、且与所述当前序列号相邻的候选序列号不是所述当前序列号段的结束序列号的情况下,确定所述当前序列号段中存在未使用序列号,并通过所述候选序列号对所述当前序列号进行更新。
5.根据权利要求4所述的方法,其特征在于,所述通过更新后的当前序列号段对所述当前序列号进行更新,包括:
将排列在更新后的当前序列号段的第一位的序列号,作为新的当前序列号。
6.一种序列号生成系统,其特征在于,所述系统包括至少一个服务器节点与至少一个数据库节点,其中,
所述服务器节点,用于确定序列号生成请求对应的序列号类型及目标数据库节点,从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
所述服务器节点,还用于在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求;
所述目标数据库节点,用于响应于所述当前序列号段更新请求,将所述目标数据库节点中储存的储存序列号段发送至所述服务器节点,并对所述储存序列号段进行更新;
所述服务器节点,还用于通过所述储存序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
7.根据权利要求6所述的系统,其特征在于,所述当前序列号段由第一起始序列号、当前序列号及第一结束序列号组成,所述储存序列号段由第二起始序列号及序列号段长度组成,
所述目标数据库节点,还用于响应于所述当前序列号段更新请求,将所述第二起始序列号及序列号段长度发送至所述服务器节点,并将所述第二起始序列号与所述序列号段长度之和作为新的第二起始序列号;
所述服务器节点,还用于将所述第一起始序列号更新为所述第二起始序列号,并将所述第一结束序列号更新为所述第二起始序列号与所述序列号段长度之和。
8.根据权利要求6所述的系统,其特征在于,所述数据库节点对应至少一个备数据库节点,所述系统还包括消息中间件,
所述消息中间件,用于接收所述当前序列号段更新请求,并将所述当前序列号段更新请求发送至所述目标数据库节点;或者在所述目标数据库节点发生故障的情况下,将所述当前序列号段更新请求发送至所述目标数据库节点的所述备数据库节点。
9.一种序列号生成装置,其特征在于,所述装置包括:
确定模块,用于确定序列号生成请求对应的序列号类型及目标数据库节点;
读取模块,用于从缓存中读取所述目标数据库节点对应所述序列号类型的当前序列号段,从所述当前序列号段中读取当前序列号,根据所述当前序列号确定所述序列号生成请求对应的目标序列号;
更新模块,用于在所述当前序列号段中存在未使用序列号的情况下,通过所述未使用序列号对所述当前序列号进行更新;或者在所述当前序列号段中不存在未使用序列号的情况下,向所述目标数据库节点发送当前序列号段更新请求,接收所述目标数据库节点响应于所述当前序列号段更新请求发送的新的序列号段,通过所述新的序列号段对所述当前序列号段进行更新,并通过更新后的当前序列号段对所述当前序列号进行更新。
10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述的方法的步骤。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
12.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410151511.7A CN117931825A (zh) | 2024-02-02 | 2024-02-02 | 序列号生成方法、系统、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410151511.7A CN117931825A (zh) | 2024-02-02 | 2024-02-02 | 序列号生成方法、系统、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117931825A true CN117931825A (zh) | 2024-04-26 |
Family
ID=90761190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410151511.7A Pending CN117931825A (zh) | 2024-02-02 | 2024-02-02 | 序列号生成方法、系统、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117931825A (zh) |
-
2024
- 2024-02-02 CN CN202410151511.7A patent/CN117931825A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275884B (zh) | 数据存储方法及节点 | |
CN109766341B (zh) | 一种建立哈希映射的方法、装置、存储介质 | |
CN111444196B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
US20100312749A1 (en) | Scalable lookup service for distributed database | |
US11294875B2 (en) | Data storage on tree nodes | |
CN111444192B (zh) | 块链式账本中全局状态的哈希的生成方法、装置及设备 | |
CN108399175B (zh) | 一种数据存储、查询方法及其装置 | |
CN105159604A (zh) | 一种磁盘数据读写方法和系统 | |
CN113901395B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN110647514A (zh) | 一种元数据更新方法、装置及元数据服务器 | |
CN106776795B (zh) | 基于Hbase数据库的数据写入方法及装置 | |
CN114721594A (zh) | 一种分布式存储方法、装置、设备及机器可读存储介质 | |
CN117931825A (zh) | 序列号生成方法、系统、装置、计算机设备及存储介质 | |
CN116048878A (zh) | 业务服务恢复方法、装置、计算机设备 | |
CN112800057B (zh) | 一种指纹表管理方法及装置 | |
CN112307272B (zh) | 确定对象之间关系信息的方法、装置、计算设备及存储介质 | |
CN111191082B (zh) | 数据管理方法、装置、计算机设备和存储介质 | |
CN111209304B (zh) | 数据处理方法、装置及系统 | |
CN111444197A (zh) | 一种块链式账本中数据记录的验证方法、装置及设备 | |
CN115604290B (zh) | Kafka消息执行方法、装置、设备及存储介质 | |
CN115994244B (zh) | 基于大数据的有向图数据处理方法、装置、计算机设备 | |
CN115730016B (zh) | 数据同步方法、系统、装置、计算机设备和存储介质 | |
EP4369658A2 (en) | Method of storing blockchain transaction data using fountain codes and apparatus for the same | |
CN117076470A (zh) | 金融数据库的扩容方法、装置、设备、介质和程序产品 | |
CN116932504A (zh) | 详细话单访问方法及装置 |
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 |