CN118170742A - 一种应用于内存数据库的顺序号确定方法及装置 - Google Patents
一种应用于内存数据库的顺序号确定方法及装置 Download PDFInfo
- Publication number
- CN118170742A CN118170742A CN202410228968.3A CN202410228968A CN118170742A CN 118170742 A CN118170742 A CN 118170742A CN 202410228968 A CN202410228968 A CN 202410228968A CN 118170742 A CN118170742 A CN 118170742A
- Authority
- CN
- China
- Prior art keywords
- node
- sequence number
- server cluster
- determining
- target
- 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 40
- 238000012795 verification Methods 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 101150096185 PAAS gene Proteins 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Abstract
本申请公开了一种应用于内存数据库的顺序号确定方法及装置,该方法包括:响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得当前主节点的节点序列号,并将节点序列号确定为与目标请求对应的待生成的顺序号对应的目标前缀信息;基于服务器集群生成的上一顺序号的后缀信息,确定目标后缀信息;基于目标前缀信息和目标后缀信息,确定与目标请求对应的目标顺序号,并将目标顺序号发送至客户端。在本申请实施例中将节点的序列号作为前缀信息,以递增的方式生成顺序号的后缀信息,保证主从节点切换后顺序号是递增的,无需要主从之间进行数据同步,实现了顺序号不重复,满足了实际顺序号应用需求。
Description
技术领域
本申请涉及数据库技术领域,特别是涉及一种应用于内存数据库的顺序号确定方法及装置。
背景技术
在分布式系统中,通常需要生成一个有序的顺序号,该有序的顺序号可以作为分片表的主键,也可以作为日志号或事务号;在全局有序的情况下,顺序号可以代表事务发生的先后顺序,保证事物的因果性和一致性。例如,支持MVCC(多版本并发控制)机制实现一致性快照读的关键是通过递增的顺序号来判断不同版本事务的可见性。单机系统生成顺序号的过程较为简单,例如,只需要在系统内存里维护一个变量就可以实现,MySQL(关系型数据库管理系统)的innodb存储引擎的事务号,就是在内存中维护一个变量,但是由于多线程的原因,需要对该变量进行加锁访问。
Redis(表示一个键-值对(Key-Value)存储系统)由于是内存数据库,使用IO多路复用机制利用单个线程来同时监听多个客户端发送到节点的socket(套接字),单线程执行纯内存的操作可以避免对资源上锁,因此比MySQL生成事务号的方式性能高。Redis单副本机制无法确保高可用,Redis多副本机制一定程度实现了高可用,但是Redis的主从节点为了保证高性能,主从节点同步模式是异步执行的,主节点不用等待从节点同步成功再向客户端返回成功,副本的数据比主节点落后,因此在进行主从切换后,会导致顺序号重复,无法满足实际的应用需求。
发明内容
有鉴于此,本申请提供了如下技术方案:
一种应用于内存数据库的顺序号确定方法,包括:
响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得所述当前主节点的节点序列号,并将所述节点序列号确定为与所述目标请求对应的待生成的顺序号对应的目标前缀信息,其中,内存数据库配置有所述服务器集群,且所述服务器集群中设置有相同功能的主节点和从节点;
基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息;
基于所述目标前缀信息和所述目标后缀信息,确定与所述目标请求对应的目标顺序号,并将所述目标顺序号发送至所述客户端。
可选地,所述获得所述当前主节点的节点序列号,包括:
确定所述服务器集群的存储架构;
基于所述存储架构,确定与所述当前主节点对应的查询信息;
基于所述查询信息在所述服务器集群的节点配置信息中进行查询,得到所述当前主节点的节点序列号。
可选地,所述方法还包括:
在所述服务器集群中创建临时节点;
基于所述服务器集群的存储架构,确定节点校验方式;
基于所述节点校验方式,对各个所述临时节点进行校验,将验证通过的节点确定为所述服务器集群的有效节点,并生成与每一所述有效节点对应的节点序列号;
将所述节点序列号存储至所述服务器集群的节点配置信息中。
可选地,还包括:
获得所述服务器集群中各个节点的节点序列号;
将节点序列号最小的节点确定为所述服务器集群的主节点;
监测所述服务器集群中各个节点的节点状态,若存在被删除的节点,确定所述主节点是否为节点序列号最小的节点;
如果否,将当前节点序列号最小的节点确定为所述服务器集群的当前主节点。
可选地,所述方法还包括:
响应于获得所述服务器集群的当前主节点,检测是否存在原始主节点,如果存在所述原始主节点,控制关闭所述原始主节点的内存数据库的服务端接口,并控制开启所述当前主节点的内存数据库的服务端接口;
发送所述当前主节点的节点信息至所述服务器集群的各个节点,以使得所述各个节点记录所述当前主节点的节点信息。
可选地,所述基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息,包括:
获得顺序号的后缀信息的递增间隔参数;
基于所述服务器集群生成的上一顺序号的后缀信息与所述递增间隔参数,确定与所述待生成的顺序号对应的目标后缀信息。
一种应用于内存数据库的顺序号确定装置,包括:
第一获取单元,用于响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得所述当前主节点的节点序列号,并将所述节点序列号确定为与所述目标请求对应的待生成的顺序号对应的目标前缀信息,其中,内存数据库配置有所述服务器集群,且所述服务器集群中设置有相同功能的主节点和从节点;
第一确定单元,用于基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息;
第二确定单元,用于基于所述目标前缀信息和所述目标后缀信息,确定与所述目标请求对应的目标顺序号,并将所述目标顺序号发送至所述客户端。
可选地,所述第一获取单元包括:
第一确定子单元,用于确定所述服务器集群的存储架构;
第二确定子单元,用于基于所述存储架构,确定与所述当前主节点对应的查询信息;
查询子单元,用于基于所述查询信息在所述服务器集群的节点配置信息中进行查询,得到所述当前主节点的节点序列号。
一种存储介质,所述存储介质存储有可执行指令,所述指令被处理器执行时实现如上述中任意一项所述的应用于内存数据库的顺序号确定方法。
一种电子设备,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于实现如上述中任意一项所述的应用于内存数据库的顺序号确定方法。
相较于现有技术,本申请提供了一种应用于内存数据库的顺序号确定方法及装置,该方法包括:响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得当前主节点的节点序列号,并将节点序列号确定为与目标请求对应的待生成的顺序号对应的目标前缀信息;基于服务器集群生成的上一顺序号的后缀信息,确定与待生成的顺序号对应的目标后缀信息;基于目标前缀信息和目标后缀信息,确定与目标请求对应的目标顺序号,并将目标顺序号发送至客户端。在本申请实施例中将节点的序列号作为前缀信息,以递增的方式生成顺序号的后缀信息,保证主从节点切换后顺序号是递增的,无需要主从之间进行数据同步,实现了顺序号不重复的目的,满足了实际顺序号应用需求。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种应用于内存数据库的顺序号确定方法的流程示意图;
图2为本申请实施例提供的一种应用于内存数据库的顺序号确定装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
如图1所示,在本申请实施例中提供了一种应用于内存数据库的顺序号确定方法,该顺序号可以是内存数据库中的分片表的主键,即通过该顺序号可以在内存数据库中进行查询获得对应的分片表的数据,也可以请求获得该顺序号,生成与该顺序号对应的数据,并将数据插入到内存数据库。对应的,顺序号还可以代表事务发生的先后顺序,保证事务的因果性和一致性。基于本申请实施例的顺序号确定方法可以保证主从节点切换后,从节点作为新的主节点的时候也可以生成与之前不重复的顺序号,并且保证顺序号有序且递增,满足了顺序号在分布式系统中的应用需求。
S101、响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得当前主节点的节点序列号,并将节点序列号确定为与目标请求对应的待生成的顺序号对应的目标前缀信息。
客户端可以将对应的数据写入到内存数据库,也可以在内存数据库中读取相关数据,还可以对内存数据库中的数据进行修改或删除。若客户端直接将相关的数据请求直接发送到内存数据库,若内存数据库宕机,大量的请求会直接发送到数据库,使得数据库也将面临宕机的风险。因此,通常是通过内存数据库配置的服务器集群来响应客户端针对内存数据库的请求。客户端可以将客户端的相关配置信息,以及客户端中的应用程序的相关信息存储到内存数据库中,当其需要访问内存数据库中的数据的时候,客户端可以将对应的数据请求发送至服务器集群,通过服务器集群中的对应节点执行该数据请求。
在本申请实施例中服务器集群中设置有相同功能的主节点和从节点,服务器集群中的每一节点可以是一个服务器,也可以是多个服务器构建的子集群,可以通过服务器集群中的节点对内存数据库进行数据读取、写入、修改或者删除等操作。在本申请实施例中服务器集群中的主节点和从节点的节点功能相同是指每一节点可以执行的功能操作相同,例如,每一个节点均能完成数据读取、数据写入以及数据删除等功能。其中,每一服务器集群中一个主节点可以对应至少一个从节点,通过是由服务器集群中的主节点响应客户端的相关请求,当主节点发生故障,或者性能下降,需要进行主从节点切换,可以从这些从节点选取性能较优或者数据同步最全的从节点作为新的主节点。
服务器集群的当前主节点就是服务器集群中当前响应客户端的主节点,在该服务器集群中每一节点均存在与之对应的节点序列号,不同的服务器集群的集群架构其生成节点序列号的方式可以不同,对应的节点序列号的存储位置也可以不同。将节点序列号作为生成序列号前缀信息可以保证能够区分不同节点生成的序列号,以辅助生成不重复的序列号。
S102、基于服务器集群生成的上一顺序号的后缀信息,确定与待生成的顺序号对应的目标后缀信息。
S103、基于目标前缀信息和目标后缀信息,确定与目标请求对应的目标顺序号,并将目标顺序号发送至客户端。
在本申请实施例中服务器集群中生成的顺序号包括前缀信息和后缀信息,前缀信息与生成该顺序号的服务器集群中的当前主节点的节点序列号有关,后缀信息与服务器集群中产生的上一顺序号的后缀信息有关,后缀信息对应的数值初始化可以为0。例如,上一顺序号为10035,其中,100为前缀信息表示生成该顺序号的主节点的节点序列号为100,后缀信息为35,若后缀的增量为1,该后缀信息表示当前服务器集群中生成的第35个顺序号。若当前主节点不变,生成的目标序列号为10036,即后缀信息递增1。若主从节点切换了,当前主节点为新的主节点,其对应的节点序列号为101,则生成的目标序列号为10136。
具体的,在本申请实施例的一种实施方式中,基于服务器集群生成的上一顺序号的后缀信息,确定与待生成的顺序号对应的目标后缀信息,包括:
获得顺序号的后缀信息的递增间隔参数;基于服务器集群生成的上一顺序号的后缀信息与递增间隔参数,确定待生成的顺序号对应的目标后缀信息。
其中,递增间隔参数可以基于实际的应用场景灵活设置,通常设置为1。
在本申请实施例中的应用于内存数据库的顺序号确定方法,可以实现主从切换时,将节点的序列号作为顺序号的前缀的方式,生成递增且不重复的序列号,同时无需主从之间先进行数据同步再生成顺序号,满足了顺序号的应用需求。
不同的服务器集群,其存储节点序列号信息的位置不同,可以基于服务器集群的存储架构来确定当前主节点的节点序列号。在一种实施方式中,所述获得当前主节点的节点序列号,包括:
确定服务器集群的存储架构;基于存储架构,确定与当前主节点对应的查询信息;基于查询信息在服务器集群的节点配置信息中进行查询,得到当前主节点的节点序列号。
例如,zookeeper是一种树形结构的存储模型,当以其作为服务器集群的架构时,可以通过根节点信息来查询得到节点的序列号。ETCD是一种键值对存储模型,可以按照Key进行查询获得节点的序列号。
具体的,以内存数据库为Redis为例,启动多个Redis单机,通过防火墙关闭Redis对外服务端口。启动zookeeper集群或者ETCD集群。
在Redis中建立顺序号前缀信息(也称为前缀变量)和后缀信息(也称为后缀变量),后缀变量初始化为0。
在zookeeper中创建主从选举的永久性根节点/seq(zookeeper存储模是树形结构),如果是ETCD集群,由于ETCD存储模型是key-value结构,并且支持按照key的前缀进行查询,采用相同的前缀/seq代替zookeeper的根节点功能。这样可以基于根节点信息或者key值进行查询,获得当前主节点的节点序列号。
当有新的节点需要加入到节点集群中,也可以对新加入的节点进行验证后再加入,并将其对应的节点序列号存储到节点配置信息中,便于在节点配置信息中能够实时获得到每一节点的节点序列号。在本申请实施例的一种实施方式中,所述方法还包括:
在服务器集群中创建临时节点;基于服务器集群的存储架构,确定节点校验方式;基于节点校验方式,对各个临时节点进行校验,将验证通过的节点确定为服务器集群的有效节点,并生成与每一有效节点对应的节点序列号;将节点序列号存储至服务器集群的节点配置信息中。
其中,若存储架构为zookeeper,可以通过心跳测试来确定节点的有效性;若架构为ETCD可以通过租约验证的方式来确定节点的有效性。具体的,各个Redis单机在zookeeper永久根节点/seq下创建临时顺序节点,节点内容为各自节点的地址。或者Redis单机在ETCD中创建前缀都为/seq的唯一key,对应的value为各自节点的地址。对于zookeeper的临时节点,当创建临节点的Redis单机在心跳测试无反应后,该临时节点会自动销毁。对于ETCD,需要Redis单机在key上绑定租约,并定期进行续约,如果Redis单机因异常没有续约,则key会自动销毁。
为了保证生成的顺序号是有序递增的,且由于顺序号的前缀为当前主节点的节点序列号,所以需要保证当前主节点是序号最小的节点,这样下次进行主从切换时,会切换到一个序号较大的从节点作为新的主节点,使得新生成的顺序号的前缀信息对应的数值会大于上一顺序号的前缀信息的数值。具体的,本申请实施例还包括:
获得服务器集群中各个节点的序列号;将节点序列号最小的节点确定为服务器集群的主节点;监测服务器集群中各个节点的节点状态,若存在被删除的节点,确定主节点是否为节点序列号最小的节点;如果否,将当前节点序列号最小的节点确定为所述服务器集群的当前主节点。
具体的,以Redis为例,Redis单机以及调用Redis的客户端监听zookeeper集群根节点/seq,或监听ETCD集群以/seq为key的前缀,当有临时节点被删除时,检查最小序号节点是否变化,如果发生变化,获取当前最小序号节点作为新的主节点。
在主节点确定成功后,本申请实施例还包括:
响应于获得服务器集群的当前主节点,检测是否存在原始主节点,如果存在原始主节点,控制关闭原始主节点的内存数据库的服务端接口,并控制开启当前主节点的内存数据库的服务端接口;发送当前主节点的节点信息至服务器集群的各个节点,以使得各个节点记录当前主节点的节点信息。
以Redis为例,某台Redis查询或监听发现自己已经是主节点。先执行防脑裂操作(防止多个主对外服务):通过shell远程在老的主节点上执行通过防火墙关闭老主节点Redis服务端口命令。如果没有原始主节点(即老的主节点),则不进行本步操作。把Redis前缀信息(也称为前缀变量)赋值成zookeeper对应的临时节点的顺序号,或者ETCD的主节点key的Revision值。在本机通过防火墙开启Redis服务端,此后即可作为新的主节点对外服务。对于非主节点,在主节点发生变化后记录下新的主节点。
在Redis中,客户端调用主节点服务生成顺序号时,主节点可以执行如下操作,以下操作为原子操作,通过一个Lua脚本实现:
首先查询Redis后缀值;然后把Redis后缀值变量增加1;最后把Redis前缀值和后缀值在前后顺序拼接在一起返回客户端。
若将本申请实施例提供的一种应用于内存数据库的顺序号确定方法应用在Redis存储系统中,并且以zookeeper或者ETCD架构为,可以利用IO多路复用机制利用单个线程来同时监听多个客户端发送到节点的socket,单线程执行纯内存的操作(单线程存内存操作因没有其他IO操作导致线程阻塞,可以充分提升CPU利用率),可以避免对资源上锁,高性能的生成递增序列号。通过把Zookeeper集群上临时节点顺序号或者ETCD集群的key的Revision值作为顺序号的前缀,Redis内生成顺序号后缀的方式,保证主从切换后顺序号是递增的,好处是主从切换后顺序号的后缀可以从0开始计数,主从之间无序同步数据,无需持久化内存数据。Zookeeper和ETCD是作为分布式系统保存全局变量的组件,是分布式系统最常用的基础组件,ETCD是作为PAAS云平台的基础组件,对于PAAS云上应用简单,可以很好的利用分布式系统基础组件生成唯一递增高可用高性能顺序号。
在本申请的另一实施例中,还提供了一种应用于内存数据库的顺序号确定装置,参见图2,该装置可以包括:、
第一获取单元201,用于响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得所述当前主节点的节点序列号,并将所述节点序列号确定为与所述目标请求对应的待生成的顺序号对应的目标前缀信息,其中,内存数据库配置有所述服务器集群,且所述服务器集群中设置有相同功能的主节点和从节点;
第一确定单元202,用于基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息;
第二确定单元203,用于基于所述目标前缀信息和所述目标后缀信息,确定与所述目标请求对应的目标顺序号,并将所述目标顺序号发送至所述客户端。
可选地,所述第一获取单元包括:
第一确定子单元,用于确定所述服务器集群的存储架构;
第二确定子单元,用于基于所述存储架构,确定与所述当前主节点对应的查询信息;
查询子单元,用于基于所述查询信息在所述服务器集群的节点配置信息中进行查询,得到所述当前主节点的节点序列号。
可选地,所述装置还包括:
创建单元,用于在所述服务器集群中创建临时节点;
第三确定单元,用于基于所述服务器集群的存储架构,确定节点校验方式;
校验单元,用于基于所述节点校验方式,对各个所述临时节点进行校验,将验证通过的节点确定为所述服务器集群的有效节点,并生成与每一所述有效节点对应的节点序列号;
存储单元,用于将所述节点序列号存储至所述服务器集群的节点配置信息中。
可选地,所述装置还包括:
第二获取单元,用于获得所述服务器集群中各个节点的节点序列号;
第四确定单元,用于将节点序列号最小的节点确定为所述服务器集群的主节点;
监测单元,用于监测所述服务器集群中各个节点的节点状态,若存在被删除的节点,确定所述主节点是否为节点序列号最小的节点;
第五确定单元,用于如果否,将当前节点序列号最小的节点确定为所述服务器集群的当前主节点。
可选地,所述装置还包括:
检测单元,用于响应于获得所述服务器集群的当前主节点,检测是否存在原始主节点,如果存在所述原始主节点,控制关闭所述原始主节点的内存数据库的服务端接口,并控制开启所述当前主节点的内存数据库的服务端接口;
发送单元,用于发送所述当前主节点的节点信息至所述服务器集群的各个节点,以使得所述各个节点记录所述当前主节点的节点信息。
可选地,所述第一确定单元包括:
参数获取子单元,用于获得顺序号的后缀信息的递增间隔参数;
第三确定子单元,用于基于所述服务器集群生成的上一顺序号的后缀信息与所述递增间隔参数,确定与所述待生成的顺序号对应的目标后缀信息。
需要说明的是,本实施例中各个单元以及子单元的具体实现可以参考前文中的相应内容,此处不再详述。
在本申请的另一实施例中,还提供了一种存储介质,该存储介质存储有可执行指令,该指令被处理器执行时实现如上述任意一项所述的应用于内存数据库的顺序号确定方法。
在本申请的另一实施例中,还提供了一种电子设备,该电子设备包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于实现如上述中任意一项所述的应用于内存数据库的顺序号确定方法。
需要说明的是,本实施例中处理器的具体实现可以参考前文中的相应内容,此处不再详述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种应用于内存数据库的顺序号确定方法,其特征在于,包括:
响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得所述当前主节点的节点序列号,并将所述节点序列号确定为与所述目标请求对应的待生成的顺序号对应的目标前缀信息,其中,内存数据库配置有所述服务器集群,且所述服务器集群中设置有相同功能的主节点和从节点;
基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息;
基于所述目标前缀信息和所述目标后缀信息,确定与所述目标请求对应的目标顺序号,并将所述目标顺序号发送至所述客户端。
2.根据权利要求1所述的方法,其特征在于,所述获得所述当前主节点的节点序列号,包括:
确定所述服务器集群的存储架构;
基于所述存储架构,确定与所述当前主节点对应的查询信息;
基于所述查询信息在所述服务器集群的节点配置信息中进行查询,得到所述当前主节点的节点序列号。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述服务器集群中创建临时节点;
基于所述服务器集群的存储架构,确定节点校验方式;
基于所述节点校验方式,对各个所述临时节点进行校验,将验证通过的节点确定为所述服务器集群的有效节点,并生成与每一所述有效节点对应的节点序列号;
将所述节点序列号存储至所述服务器集群的节点配置信息中。
4.根据权利要求1所述的方法,其特征在于,还包括:
获得所述服务器集群中各个节点的节点序列号;
将节点序列号最小的节点确定为所述服务器集群的主节点;
监测所述服务器集群中各个节点的节点状态,若存在被删除的节点,确定所述主节点是否为节点序列号最小的节点;
如果否,将当前节点序列号最小的节点确定为所述服务器集群的当前主节点。
5.根据权利要求2所述的方法,其特征在于,所述方法还包括:
响应于获得所述服务器集群的当前主节点,检测是否存在原始主节点,如果存在所述原始主节点,控制关闭所述原始主节点的内存数据库的服务端接口,并控制开启所述当前主节点的内存数据库的服务端接口;
发送所述当前主节点的节点信息至所述服务器集群的各个节点,以使得所述各个节点记录所述当前主节点的节点信息。
6.根据权利要求1所述的方法,其特征在于,所述基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息,包括:
获得顺序号的后缀信息的递增间隔参数;
基于所述服务器集群生成的上一顺序号的后缀信息与所述递增间隔参数,确定与所述待生成的顺序号对应的目标后缀信息。
7.一种应用于内存数据库的顺序号确定装置,其特征在于,包括:
第一获取单元,用于响应于客户端向服务器集群的当前主节点发送获得顺序号的目标请求,获得所述当前主节点的节点序列号,并将所述节点序列号确定为与所述目标请求对应的待生成的顺序号对应的目标前缀信息,其中,内存数据库配置有所述服务器集群,且所述服务器集群中设置有相同功能的主节点和从节点;
第一确定单元,用于基于所述服务器集群生成的上一顺序号的后缀信息,确定与所述待生成的顺序号对应的目标后缀信息;
第二确定单元,用于基于所述目标前缀信息和所述目标后缀信息,确定与所述目标请求对应的目标顺序号,并将所述目标顺序号发送至所述客户端。
8.根据权利要求7所述的装置,其特征在于,所述第一获取单元包括:
第一确定子单元,用于确定所述服务器集群的存储架构;
第二确定子单元,用于基于所述存储架构,确定与所述当前主节点对应的查询信息;
查询子单元,用于基于所述查询信息在所述服务器集群的节点配置信息中进行查询,得到所述当前主节点的节点序列号。
9.一种存储介质,其特征在于,所述存储介质存储有可执行指令,所述指令被处理器执行时实现如权利要求1-6中任意一项所述的应用于内存数据库的顺序号确定方法。
10.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述程序,所述程序具体用于实现如权利要求1-6中任意一项所述的应用于内存数据库的顺序号确定方法。
Publications (1)
Publication Number | Publication Date |
---|---|
CN118170742A true CN118170742A (zh) | 2024-06-11 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110532247B (zh) | 数据迁移方法和数据迁移系统 | |
US11455217B2 (en) | Transaction consistency query support for replicated data from recovery log to external data stores | |
CN110309161B (zh) | 一种数据同步方法、装置及服务器 | |
US9984140B1 (en) | Lease based leader election system | |
EP3127018B1 (en) | Geographically-distributed file system using coordinated namespace replication | |
US9690679B2 (en) | Transaction commitment and replication in a storage system | |
CN110825420A (zh) | 分布式集群的配置参数更新方法、装置、设备及存储介质 | |
JP7389793B2 (ja) | 分散型異種ストレージシステムにおけるデータ一貫性のリアルタイムチェックのための方法、デバイス、およびシステム | |
CN111614733B (zh) | 一种分布式多分片集群的部署方法、装置及存储介质 | |
CN110895484A (zh) | 任务调度方法及装置 | |
CN110895487B (zh) | 分布式任务调度系统 | |
CN110895488B (zh) | 任务调度方法及装置 | |
CN110895483A (zh) | 任务恢复方法及装置 | |
CN110895486B (zh) | 分布式任务调度系统 | |
WO2022242372A1 (zh) | 对象处理方法、装置、计算机设备和存储介质 | |
CN109726211B (zh) | 一种分布式时序数据库 | |
CN109299116B (zh) | 一种数据同步方法、装置、设备及可读存储介质 | |
US11061889B2 (en) | Systems and methods of managing manifest refresh in a database | |
CN110895485A (zh) | 任务调度系统 | |
Pankowski | Consistency and availability of Data in replicated NoSQL databases | |
CN118170742A (zh) | 一种应用于内存数据库的顺序号确定方法及装置 | |
CN114500289B (zh) | 控制平面恢复方法、装置、控制节点及存储介质 | |
CN114205354B (zh) | 事件管理系统、事件管理方法、服务器及存储介质 | |
CN116991815B (zh) | 一种分布式存储系统的日志收集方法、装置、设备及介质 | |
WO2017124726A1 (zh) | 一种北向文件生成的方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |