本申请涉及数据库,特别涉及一种主动变更的方法、系统、服务器及存储介质。
背景技术:
1、分布式数据库,是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库,每个被连接起来的数据库单元称为站点或节点。分布式数据库主要有两种架构:共享存储架构(shared di sk)和无共享存储架构(shared noth ing)。其中,在shared di sk架构下的数据库中,多个服务器节点共享同一存储介质,每一个节点都可以访问共享存储介质中的数据向客户端提供数据服务。而在shared noth ing架构的数据库中,每一个节点都拥有自己的内存和磁盘,节点之间不相互共享内存及磁盘,数据库中的数据分布到多个节点上,节点之间通过网络连接。
2、在shared di sk架构下,数据库基于计算存储分离架构,将计算资源和存储资源解耦,方便存储资源扩容,提高数据库资源利用性和可用性。在计算存储分离架构中,计算是指消耗cpu和内存资源的查询处理、事务管理和日志处理等功能,存储是指消耗存储资源的日志与数据存储持久化相关功能。当前数据库系统基于计算存储分离架构,使用分布式存储系统(data funct ions vi rtua l izat ion l,dfv),具备弹性伸缩、资源共享等优势,能够实现分钟级计算扩容、秒级存储扩容,保证数据强一致。
3、但是,这一架构也带来了一个问题,多副本策略下沉到共享存储,计算层多副本,拥有了数据强一致性,但是牺牲了可用性。在数据库内核升级、扩容缩容、数据均衡等涉及到token迁移的场景,计算层的单副本会导致在token迁移时存在秒级的rto,在压力较大时对业务的影响会更加明显。
技术实现思路
1、本申请提供了一种主动变更的方法、系统、设备集群及存储介质,能够确保主动变更期间业务不受影响,同时保证数据在主动变更期间的一致性和可用性。
2、第一方面,提供了一种主动变更方法,该方法包括:首先,分布式数据库系统的第一数据库节点,使用第一rocksdb存储引擎,处理分布式数据库系统的第一写请求;然后,在需要切换第一数据库节点为分布式数据库系统的第二数据库节点时,第二数据库节点部署第二rocksdb存储引擎;当第一数据库节点完成将旧的第一写请求的数据存储至分布式数据库系统的共享存储后,第一数据库节点停止使用第一rocksdb存储引擎来处理后续写请求,第二数据库节点使用第二rocksdb存储引擎来处理分布式数据库系统的后续写请求。
3、通过上述方法可知,本申请在数据库发生主动变更期间,数据库节点通过部署rocksdb存储引擎,能够确保主动变更期间业务不受影响,同时保证数据的可用性。避免传统数据库计算层长期多副本带来的数据一致性问题,缓解了存储层和计算层同时多副本带来的成本高、运维难度大的问题。
4、结合第一方面,在一种可能的实现方式中,包括:在切换第一数据库节点为分布式数据库系统的第二数据库节点的期间,第一数据库节点和第二数据库节点均处理新的第二写请求。
5、实施上述实现方式,在数据库主动变更期间,由第一数据库节点和第二数据库节点均处理数据库系统新的第二写请求,新写入的数据同时写入第一rocksdb和第二rocksdb,确保数据在变更期间的一致性。
6、结合第一方面,在另一种可能的实现方式中,具体可以包括:在切换第一数据库节点为第二数据库节点之前,第一数据库节点,使用第一rocksdb存储引擎和分布式数据库系统的共享存储,处理分布式数据库系统的第一读请求。
7、实施上述实现方式,在数据库主动变更期间,由第一数据库节点使用第一rocksdb和共享存储处理数据库系统的第一读请求,保证业务数据的读写均不受影响。
8、结合第一方面及第一方面的任一种可能的实现方式,在第一方面的另一种可能的实现方式中,包括:在切换第一数据库节点为第二数据库节点之后,第二数据库节点,使用第二rocksdb存储引擎和分布式数据库系统的共享存储,处理分布式数据库系统的第二读请求。
9、第二方面,提供了一种分布式数据库系统,该分布式数据库系统包括:第一数据库节点,用于使用第一rocksdb存储引擎,处理分布式数据库系统的第一写请求;第二数据库节点,用于在需要切换第一数据库节点为分布式数据库系统的第二数据库节点时,部署第二rocksdb存储引擎;第一数据库节点,还用于当第一数据库节点完成将旧的第一写请求的数据存储至分布式数据库系统的共享存储后,停止使用第一rocksdb存储引擎处理后续写请求;第二数据库节点,还用于当第一数据库节点完成将旧的第一写请求的数据存储至分布式数据库系统的共享存储后,使用第二rocksdb存储引擎处理分布式数据库系统的后续写请求。
10、结合第二方面,在一种可能的实现方式中,上述第一数据库节点和第二数据库节点,还用于在切换第一数据库节点为分布式数据库的第二数据库节点的期间,均处理新的第二写请求。
11、结合第二方面,在另一种可能的实现方式中,上述第一数据库节点,还用于在切换第一数据库节点为第二数据节点之前,使用第一rocksdb存储引擎和分布式数据库系统的共享存储,处理分布式数据库系统的第一读请求。
12、结合第二方面及第二方面的任一种可能的实现方式,在第二方面的另一种可能的实现方式中,上述第二数据库节点,还用于在切换第一数据库节点为第二数据库节点之后,使用第二rocksdb存储引擎和分布式数据库系统的共享存储,处理分布式数据库系统的第二读请求。
13、第三方面,提供一种计算设备集群,该计算设备集群包括至少一个计算设备,每个计算设备包括处理器和存储器;其中,至少一个计算设备的处理器用于执行所述至少一个计算设备的存储器中存储的指令,以使得该计算设备集群执行如上述第一方面或者第一方面的任一可能的实现方式提供的方法。
14、第四方面,提供一种包含指令的计算机程序产品,当所述指令被计算设备集群运行时,使得上述计算设备集群执行如上述第一方面或者第一方面的任一可能的实现方式提供的方法。
15、第五方面,提供一种计算机可读存储介质,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如上述第一方面或者第一方面的任一可能的实现方式提供的方法。
1.一种主动变更的方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述方法包括:
3.根据权利要求1或2所述的方法,其特征在于,所述方法包括:
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法包括:
5.一种分布式数据库系统,其特征在于,所述分布式数据库系统包括:
6.根据权利要求5所述的系统,其特征在于,所述分布式数据库系统包括:
7.根据权利要求5或6所述的系统,其特征在于,所述分布式数据库系统包括:
8.根据权利要求5至7任一项所述的系统,其特征在于,所述分布式数据库系统包括:
9.一种计算设备集群,其特征在于,包括至少一个计算设备,每个计算设备包括处理器和存储器;
10.一种包含指令的计算机程序产品,其特征在于,当所述指令被计算设备集群运行时,使得所述计算设备集群执行如权利要求的1至4任一项所述的方法。
11.一种计算机可读存储介质,其特征在于,包括计算机程序指令,当所述计算机程序指令由计算设备集群执行时,所述计算设备集群执行如权利要求1至4任一项所述的方法。
