CN112052230A - 多机房数据同步方法、计算设备及存储介质 - Google Patents

多机房数据同步方法、计算设备及存储介质 Download PDF

Info

Publication number
CN112052230A
CN112052230A CN202010912032.4A CN202010912032A CN112052230A CN 112052230 A CN112052230 A CN 112052230A CN 202010912032 A CN202010912032 A CN 202010912032A CN 112052230 A CN112052230 A CN 112052230A
Authority
CN
China
Prior art keywords
synchronization
data
machine room
opposite
data operation
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.)
Granted
Application number
CN202010912032.4A
Other languages
English (en)
Other versions
CN112052230B (zh
Inventor
谭帅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ireader Technology Co Ltd
Original Assignee
Ireader Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ireader Technology Co Ltd filed Critical Ireader Technology Co Ltd
Priority to CN202010912032.4A priority Critical patent/CN112052230B/zh
Publication of CN112052230A publication Critical patent/CN112052230A/zh
Application granted granted Critical
Publication of CN112052230B publication Critical patent/CN112052230B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明公开了一种多机房数据同步方法、计算设备及存储介质,其中,该方法包括:接收客户端发送的数据写入请求,并对数据写入请求进行封装处理,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供主节点执行封装后的数据写入请求,并将数据操作记录至主节点的日志文件中;读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。该方案实现了断点续传,有效地减少了资源的消耗,并且有效地保证了数据同步时的幂等性,确保了多个机房的数据一致性。

Description

多机房数据同步方法、计算设备及存储介质
技术领域
本发明涉及数据处理技术领域,具体涉及一种多机房数据同步方法、计算设备及存储介质。
背景技术
Codis是一个分布式Redis解决方案,上层应用可以像使用单机的Redis一样使用,Codis底层会处理请求的转发。其中,Redis是一种内存型数据库,具有读写数据速度较快的优势。为了防止机房中的服务器挂掉而导致服务中断的情况发生,一般会在多个地方设置机房,以便在一个机房挂掉后还能够通过另外的机房提供可靠服务。为了确保多个机房随时能够提供可靠服务,多个机房中的数据需要进行同步,从而使多个机房中的数据保持一致。现有的基于Codis所搭建的机房在进行机房间的数据同步时,很可能会由于各种原因导致同步中断,然而基于Redis的同步机制,在同步重新建立之后,由于无法获知已经同步了哪些数据,就需要进行全量数据同步,不仅需要耗费较长的同步时间,而且还会消耗大量的资源。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的多机房数据同步方法、计算设备及存储介质。
根据本发明的一个方面,提供了一种多机房数据同步方法,该方法适用于基于Redis集群的机房之间的同步,Redis集群中包含有多个Redis组,每个Redis组包括一个主节点和主节点的所有从节点;该方法包括:
接收客户端发送的数据写入请求,并对数据写入请求进行封装处理,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供主节点执行封装后的数据写入请求,并将数据操作记录至主节点的日志文件中;
读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。
根据本发明实施例的另一方面,提供了一种计算设备,包括:处理器、存储器、通信接口和通信总线,处理器、存储器和通信接口通过通信总线完成相互间的通信;
存储器用于存放至少一可执行指令,可执行指令使处理器执行上述多机房数据同步方法对应的操作。
根据本发明实施例的又一方面,提供了一种计算机存储介质,存储介质中存储有至少一可执行指令,可执行指令使处理器执行如上述多机房数据同步方法对应的操作。
根据本发明提供的技术方案,使得基于Redis集群的机房之间能够根据记录到日志文件中的数据操作进行数据同步,无需在同步断开又恢复后进行全量数据同步,实现了断点续传,有效地减少了资源的消耗;并且,对端机房还能够根据实时记录的已同步的数据操作对应的文件偏移量对待同步的数据操作进行去重处理,从而避免了数据同步发生重复,有效地保证了数据同步时的幂等性,确保了多个机房的数据一致性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的一种多机房数据同步方法的流程示意图;
图2a示出了根据本发明实施例二的一种多机房数据同步方法的流程示意图;
图2b示出了根据本发明实施例二的一种多机房数据同步方法对应的架构示意图;
图3示出了根据本发明实施例四的一种计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了根据本发明实施例一的一种多机房数据同步方法的流程示意图,如图1所示,该方法包括如下步骤:
步骤S101,接收客户端发送的数据写入请求,并对数据写入请求进行封装处理。
该方法可适用于基于Redis集群的机房之间的同步,即适用于基于Codis所搭建的机房之间的数据同步,该数据同步可以是多个机房之间的双向同步,也可以是多个机房之间的单向同步。其中,Redis集群中包含有多个Redis组(Redis group),每个Redis组包括一个主节点和该主节点的所有从节点,主节点和从节点均为Redis节点,主节点和从节点之间需要进行主从同步。
通常客户端对机房中的主节点所执行的操作一般可包括写数据和读数据,也就是将数据写入至主节点中,以及从主节点中读取数据。为了实现基于Redis集群的机房之间的数据同步,该方法预先设置了若干个命令,例如预设写入命令、预设读命令、同步命令等,并为机房后端的Redis节点增加了日志模块,使得主节点根据所执行的数据操作生成对应的日志文件。
下面以多个机房中的任一机房为例,对本实施例提供的多机房数据同步方法进行介绍。当客户端想要将数据写入至本机房时,可向本机房发送数据写入请求,其中,数据写入请求可携带有请求方法、请求内容、请求URL、请求的服务器地址、通信协议、客户端标识等信息。本机房在接收到客户端发送的数据写入请求时,并不是立即根据该数据写入请求执行数据写入操作,而是对该数据写入请求进行了相应的处理,例如利用预设写入命令对客户端发送的数据写入请求进行封装处理,本领域技术人员可根据实际需要对封装处理的具体方式进行设置,此处不做限定。例如可在数据写入请求的前面增加预设前缀,预设前缀可为withdq等。预设写入命令是为了主节点能够实现将数据操作记录至日志文件中而增设的命令,经过预设写入命令封装后的数据写入请求是一个新的数据写入请求,封装后的数据写入请求在保留了原有数据写入要求外,还被赋予了其它数据处理要求,例如,记录日志文件等。
步骤S102,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供主节点执行封装后的数据写入请求,并将数据操作记录至主节点的日志文件中。
在完成了对数据写入请求的封装之后,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,也就是将封装后的数据写入请求发送至本机房中用于处理该请求的Redis组中的主节点。该主节点在接收到该封装后的数据写入请求之后,执行该请求,完成对应的数据写入操作,并在执行成功后将数据操作记录至该主节点的日志文件中,日志文件具体可以是binlog文件。
步骤S103,读取本机房的每个Redis组中的主节点的日志文件中的数据操作。
在需要进行机房之间的数据同步时,可读取本机房的每个Redis组中的主节点的日志文件中的数据操作。具体地,可由本机房的同步组件针对本机房的每个Redis组中的主节点执行预设读命令,读取每个主节点的日志文件中的数据操作。
步骤S104,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。
其中,本机房是指进行数据同步的源机房,对端机房是指进行数据同步的目标机房。在步骤S104中,同步组件可利用本机房与对端机房之间建立的同步链路(例如机房间的机房专线等)将读取到的待同步的数据操作发送至对端机房,以供对端机房执行待同步的数据操作以完成数据同步。
若同步链路断开导致同步失败,那么在同步链路重新恢复时,可从断点位置再次执行同步操作直至同步成功。具体地,本机房的每个Redis组中的主节点在同步过程中,会根据对端机房的同步完成情况,记录对端机房已同步的数据操作在日志文件中的文件偏移量,以便同步链路在断开后恢复时,根据主节点记录的已同步的数据操作对应的文件偏移量确定断点位置,从断点位置继续读取日志文件中的数据操作,将数据同步至对端机房,以实现多个机房之间的断点续传。
考虑到主节点对于已同步的数据操作对应的文件偏移量的记录可能会存在延迟,例如主节点每隔预设时间间隔才记录一次已同步的数据操作对应的文件偏移量,其所记录的文件偏移量可能并不是当前最新的已同步的数据操作对应的文件偏移量,有些已完成同步的数据操作会重放至对端机房,导致对端机房与本机房数据不一致。
为了保证数据同步时的幂等性,对端机房在成功执行待同步的数据操作之后,会实时记录已同步的数据操作对应的文件偏移量,以清楚地反映对端机房已经完成同步的数据操作在日志文件中的偏移位置。
为了将对端机房记录的已同步的数据操作对应的文件偏移量、本机房与对端机房之间待同步的数据操作对应的文件偏移量以及本机房的主节点记录的已同步的数据操作对应的文件偏移量进行有效区分,在本实施例中,将对端机房侧记录的已同步的数据操作对应的文件偏移量称为第一文件偏移量,将待同步的数据操作对应的文件偏移量称为第二文件偏移量,将本机房侧记录的已同步的数据操作对应的文件偏移量称为第三文件偏移量,其中,第二文件偏移量是根据第三文件偏移量确定的。例如,主节点的日志文件中依次记录有数据操作1至数据操作10,当同步链路断开时,主节点记录的第三文件偏移量为数据操作5在日志文件中的偏移位置,那么在同步恢复后将数据操作5的下一个数据操作(即数据操作6)在日志文件中的偏移位置确定为第二文件偏移量。
由于对端机房记录有能够反映最新同步完成情况的第一文件偏移量,那么在同步链路恢复后,对端机房可根据所记录的第一文件偏移量对待同步的数据操作进行去重处理,去除重复同步的数据操作,执行去重后的待同步的数据操作,从而避免数据同步发生重复,有效地保证了数据同步时的幂等性,确保了多个机房的数据一致性。
利用本实施例提供的多机房数据同步方法,使得基于Redis集群的机房之间能够根据记录到日志文件中的数据操作进行数据同步,无需在同步断开又恢复后进行全量数据同步,实现了断点续传,有效地减少了资源的消耗;并且,对端机房还能够根据实时记录的已同步的数据操作对应的文件偏移量对待同步的数据操作进行去重处理,从而避免了数据同步发生重复,有效地保证了数据同步时的幂等性,确保了多个机房的数据一致性。
实施例二
图2a示出了根据本发明实施例二的一种多机房数据同步方法的流程示意图,如图2所示,该方法包括如下步骤:
步骤S201,接收客户端发送的数据写入请求,并对数据写入请求进行封装处理。
该方法可适用于基于Redis集群的机房之间的数据同步,该数据同步可以是多个机房之间的双向同步,也可以是多个机房之间的单向同步。
步骤S202,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供主节点执行封装后的数据写入请求,并将数据操作记录至主节点的日志文件中。
步骤S203,针对每个Redis组,读取主节点的日志文件中的数据操作,并为Redis组分配对应的同步线程,调用同步线程根据读取到的待同步的数据操作构造同步命令,并利用同步链路将同步命令发送至对端机房。
图2b示出了根据本发明实施例二的一种多机房数据同步方法对应的架构示意图,如图2b所示,当客户端想要将数据写入至本机房时,可向本机房发送数据写入请求,本机房中的Codis代理(Codis proxy)对接收到的数据写入请求进行封装处理,例如可将数据写入请求封装为“withdq+数据写入请求”的形式,接着将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,主节点执行该请求,完成对应的数据写入操作,并在执行成功后将数据操作记录至该主节点的日志文件中。在需要进行机房之间的数据同步时,本机房的同步组件针对本机房的每个Redis组中的主节点执行预设读命令,读取每个主节点的日志文件中的数据操作。同步组件可根据数据键key进行哈希处理,为每个Redis组分配对应的同步线程。针对每个主节点,调用对应的同步线程根据读取到的待同步的数据操作构造同步命令,并利用本机房与对端机房之间建立的同步链路将同步命令发送至对端机房。如图2b所示,可将同步命令发送至对端机房的同步代理,同步代理在接收到同步命令之后,可将同步命令分配至对端机房的对端主节点进行处理。其中,同步命令包含有待同步的数据操作对应的第二文件偏移量和日志源标识,日志源标识用于唯一标识待同步的数据操作所属的日志文件。同步命令还可包含有其他数据,例如key等,此处不做限定。
对端主节点在接收到同步命令之后,可根据所记录的第一文件偏移量对同步命令进行去重处理,执行去重后的同步命令,并在对端主节点中更新第一文件偏移量。具体地,对端主节点内部维护有一个{日志源标识:第一文件偏移量}的字典集合,对端主节点在执行同步命令之前,可根据同步命令中的日志源标识查询字典集合从而获取对应的第一文件偏移量,判断同步命令中的第二文件偏移量是否大于第一文件偏移量;若是,说明该同步命令不是重复的同步命令,则对端主节点正常执行将该同步命令,完成对待同步的数据操作的同步,并更新第一文件偏移量;若否,则丢弃该同步命令,达到去重的目的。
步骤S204,接收对端机房在成功执行同步命令之后返回的执行成功信息。
考虑到机房还可能会存在主从节点切换的情况,为了确保在主从节点切换场景下多个机房的数据仍然具有一致性,在将同步命令分配至对端机房的对端主节点之后,还可向对端主节点发送等待命令,其中,等待命令表示执行的命令必须也落到对端主节点的对端从节点上才能返回执行成功信息,否则阻塞等待,也就是说,在对端从节点完成对同步命令对应的数据操作的主从同步之后才返回执行成功信息。对端主节点根据等待命令在对端从节点完成对同步命令对应的数据操作的主从同步之后向本机房的同步组件返回执行成功信息。通过这种处理,使得对端机房的主从节点的数据是实时保持一致的,即使对端机房发生主从切换,新的对端主节点也能够保证完整数据,从而保证了多个机房之间的数据一致性。
步骤S205,每隔预设时间间隔调用对应的同步线程根据执行成功信息构造携带有已同步的数据操作对应的文件偏移量的同步确认命令,并将同步确认命令发送至对应的主节点。
具体地,本机房的同步组件在接收到执行成功信息之后,可每隔预设时间间隔(例如10s等)调用对应的同步线程根据接收到的执行成功信息构造同步确认命令,同步确认命令用于表示对端机房已完成对同步命令的执行,其中,同步确认命令中包含有已同步的数据操作对应的文件偏移量。同步组件将同步确认命令发送至对应的主节点,以供主节点根据同步确认命令中的文件偏移量,记录第三文件偏移量。
步骤S206,若同步链路在断开后恢复,则读取主节点中记录的第三文件偏移量,根据第三文件偏移量确定断点位置,从断点位置再次执行同步操作直至同步成功。
可选地,本机房也可能存在主从节点切换的情况,那么该方法还可包括:若本机房的任一Redis组中的从节点变更为新主节点,则读取新主节点中记录的第三文件偏移量,根据第三文件偏移量确定断点位置,从断点位置再次执行同步操作直至同步成功。其中,新主节点中记录的第三文件偏移量是从原先的主节点同步过来的。
考虑到在本机房存在主从节点切换的场景下,如果主从节点的主从同步有延迟,那么在主从切换后,可能会带来一部分数据的丢失,导致多个机房的数据不一致。为了解决该问题,在多个机房的同步过程中,在读取本机房的每个Redis组中的主节点的日志文件中的数据操作之后,该方法还可包括:检测主节点与从节点之间已主从同步的数据操作对应的第四文件偏移量,其中,第四文件偏移量是指在本机房内已经完成主从同步的数据操作在日志文件中的偏移位置;判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于第四文件偏移量;若是,则将待同步的数据操作发送至对端机房;若否,则等待预设时间,而后跳转执行判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于第四文件偏移量的步骤。通过这种处理方式,使得本机房与对端机房间的数据同步的速度始终不会比本机房主从同步的速度快。只有当本机房与对端机房间即将进行数据同步的数据操作对应的文件偏移量小于本机房的已主从同步的数据操作对应的文件偏移量时,才将该即将进行数据同步的数据操作同步至对端机房,否则等待。通过这种处理方式,能够有效地保证在本机房的从节点切换为主节点时,断点位置永远小于已完成主从同步的数据操作的位置,从此位置继续同步,数据不会丢失,保证了本机房与对端机房间的数据一致性。
考虑到本机房还可能会存在数据迁移的场景,例如key1原本在Redis组1上,数据槽slot迁移,需要将key1迁移到Redis组2上,但是如果此时有对key1进行操作的数据操作,迁移之前key1的数据操作记录在Redis组1的主节点的日志文件中,迁移后的key1的数据操作记录在Redis组2的主节点的日志文件中。如果Redis组1和Redis组2对应的同步线程都在向对端机房同步数据,但很难保证同步速度,那么很有可能造成针对key1的数据操作到对端机房的时序性错乱问题。为了解决该问题,该方法还可包括:在将数据从源Redis组迁移至目标Redis组之前,停止目标Redis组对应的同步线程,使得目标Redis组不再同步数据到对端机房;在源Redis组中的数据完成迁移之后,恢复调用目标Redis组对应的同步线程。具体地,在源Redis组中的数据完成迁移之后,向源Redis组下的主节点中添加一个特定key,当这个源Redis组对应的同步线程同步数据过程中,检测到这个特定key,说明迁移已经完成,修改zk节点。当检测到此zk节点变更时,重新启动目标Redis组对应的同步线程,也就是恢复调用目标Redis组对应的同步线程,开始同步数据到对端机房。通过这种处理方式,能够保证数据迁移过程中,对迁移key的数据操作同步顺序是串行的,不会出现时序性错乱问题,从而有效地保证了机房间的数据一致性。
考虑到本机房还可能会存在扩容、缩容的情况,为了保证在扩容缩容场景下Redis组的数据同步,该方法还可包括:实时或定时检测本机房中Redis组的变更信息;若检测到存在新增的Redis组,则为新增的Redis组分配对应的同步线程,利用所分配的同步线程开始同步数据;若检测到存在下线的Redis组,则停止下线的Redis组对应的同步线程。
利用本实施例提供的多机房数据同步方法,使得基于Redis集群的机房之间能够根据记录到日志文件中的数据操作进行数据同步,能够在同步断开又恢复后实现断点续传,无需同步全量数据,有效地减少了资源的消耗,提升了同步效率;并且,对端机房还能够对待同步的数据操作进行去重处理,从而避免了数据同步发生重复,有效地保证了数据同步时的幂等性;另外,通过多个方面的设置,使得在主从节点切换、数据迁移、扩容缩容等各个场景下,能够有效地保证多个机房的数据一致性;具体地,在对端从节点完成对同步命令对应的数据操作的主从同步之后才返回执行成功信息,使得对端机房的主从节点的数据是实时保持一致的,即使对端机房发生主从切换,新的对端主节点也能够保证完整数据;通过确保本机房与对端机房间的数据同步的速度始终不会比本机房主从同步的速度快,使得即使本机房发生主从切换,数据也不会丢失;在将数据从源Redis组迁移至目标Redis组之前,停止目标Redis组对应的同步线程,数据迁移完成之后,再恢复调用目标Redis组对应的同步线程,保证了在数据迁移过程中,同步的数据操作不会出现时序性错乱问题。
实施例三
本发明实施例三提供了一种非易失性存储介质,存储介质存储有至少一可执行指令,该可执行指令可执行上述任意方法实施例中的多机房数据同步方法。
可执行指令具体可以用于使得处理器执行以下操作:接收客户端发送的数据写入请求,并对数据写入请求进行封装处理,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供主节点执行封装后的数据写入请求,并将数据操作记录至主节点的日志文件中;读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:若同步链路断开导致同步失败,则从断点位置再次执行同步操作直至同步成功。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:针对每个Redis组,读取主节点的日志文件中的数据操作,并为Redis组分配对应的同步线程,调用同步线程根据读取到的待同步的数据操作构造同步命令,并利用同步链路将同步命令发送至对端机房,以供将同步命令分配至对端机房的对端主节点;对端机房的对端主节点根据所记录的第一文件偏移量对同步命令进行去重处理;执行去重后的同步命令,并在对端主节点中更新第一文件偏移量。
在一种可选的实施方式中,同步命令包含有待同步的数据操作对应的第二文件偏移量和日志源标识;可执行指令进一步使处理器执行以下操作:根据日志源标识获取对应的第一文件偏移量;判断第二文件偏移量是否大于第一文件偏移量;若否,则丢弃同步命令。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:在将同步命令分配至对端机房的对端主节点之后,向对端主节点发送等待命令,以供对端主节点根据等待命令在对端从节点完成对同步命令对应的数据操作的主从同步之后返回执行成功信息。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:接收对端机房在成功执行同步命令之后返回的执行成功信息,每隔预设时间间隔调用对应的同步线程根据执行成功信息构造携带有已同步的数据操作对应的文件偏移量的同步确认命令,并将同步确认命令发送至对应的主节点,以供主节点根据同步确认命令,记录第三文件偏移量。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:若本机房的任一Redis组中的从节点变更为新主节点,则读取新主节点中记录的第三文件偏移量,根据第三文件偏移量确定断点位置,从断点位置再次执行同步操作直至同步成功。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:在读取本机房的每个Redis组中的主节点的日志文件中的数据操作之后,检测主节点与从节点之间已主从同步的数据操作对应的第四文件偏移量;判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于第四文件偏移量;若是,则将待同步的数据操作发送至对端机房;若否,则等待预设时间,而后跳转执行判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于第四文件偏移量的步骤。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:在将数据从源Redis组迁移至目标Redis组之前,停止目标Redis组对应的同步线程;在源Redis组中的数据完成迁移之后,恢复调用目标Redis组对应的同步线程。
在一种可选的实施方式中,可执行指令进一步使处理器执行以下操作:检测本机房中Redis组的变更信息;若存在新增的Redis组,则为新增的Redis组分配对应的同步线程;若存在下线的Redis组,则停止下线的Redis组对应的同步线程。
实施例四
图3示出了根据本发明实施例四的一种计算设备的结构示意图,本发明具体实施例并不对计算设备的具体实现做限定。
如图3所示,该计算设备可以包括:处理器(processor)302、通信接口(Communications Interface)304、存储器(memory)306、以及通信总线308。
其中:
处理器302、通信接口304、以及存储器306通过通信总线308完成相互间的通信。
通信接口304,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器302,用于执行程序310,具体可以执行上述多机房数据同步方法实施例中的相关步骤。
具体地,程序310可以包括程序代码,该程序代码包括计算机操作指令。
处理器302可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。计算设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器306,用于存放程序310。存储器306可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序310具体可以用于使得处理器302执行以下操作:接收客户端发送的数据写入请求,并对数据写入请求进行封装处理,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供主节点执行封装后的数据写入请求,并将数据操作记录至主节点的日志文件中;读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:若同步链路断开导致同步失败,则从断点位置再次执行同步操作直至同步成功。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:针对每个Redis组,读取主节点的日志文件中的数据操作,并为Redis组分配对应的同步线程,调用同步线程根据读取到的待同步的数据操作构造同步命令,并利用同步链路将同步命令发送至对端机房,以供将同步命令分配至对端机房的对端主节点;对端机房的对端主节点根据所记录的第一文件偏移量对同步命令进行去重处理;执行去重后的同步命令,并在对端主节点中更新第一文件偏移量。
在一种可选的实施方式中,同步命令包含有待同步的数据操作对应的第二文件偏移量和日志源标识;程序310进一步使得处理器302执行以下操作:根据日志源标识获取对应的第一文件偏移量;判断第二文件偏移量是否大于第一文件偏移量;若否,则丢弃同步命令。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:在将同步命令分配至对端机房的对端主节点之后,向对端主节点发送等待命令,以供对端主节点根据等待命令在对端从节点完成对同步命令对应的数据操作的主从同步之后返回执行成功信息。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:接收对端机房在成功执行同步命令之后返回的执行成功信息,每隔预设时间间隔调用对应的同步线程根据执行成功信息构造携带有已同步的数据操作对应的文件偏移量的同步确认命令,并将同步确认命令发送至对应的主节点,以供主节点根据同步确认命令,记录第三文件偏移量。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:若本机房的任一Redis组中的从节点变更为新主节点,则读取新主节点中记录的第三文件偏移量,根据第三文件偏移量确定断点位置,从断点位置再次执行同步操作直至同步成功。
在一种可选的实施方式中,在读取本机房的每个Redis组中的主节点的日志文件中的数据操作之后,程序310进一步使得处理器302执行以下操作:检测主节点与从节点之间已主从同步的数据操作对应的第四文件偏移量;判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于第四文件偏移量;若是,则将待同步的数据操作发送至对端机房;若否,则等待预设时间,而后跳转执行判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于第四文件偏移量的步骤。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:在将数据从源Redis组迁移至目标Redis组之前,停止目标Redis组对应的同步线程;在源Redis组中的数据完成迁移之后,恢复调用目标Redis组对应的同步线程。
在一种可选的实施方式中,程序310进一步使得处理器302执行以下操作:检测本机房中Redis组的变更信息;若存在新增的Redis组,则为新增的Redis组分配对应的同步线程;若存在下线的Redis组,则停止下线的Redis组对应的同步线程。
程序310中各步骤的具体实现可以参见上述多机房数据同步实施例中的相应步骤对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,使得基于Redis集群的机房之间能够根据记录到日志文件中的数据操作进行数据同步,实现了断点续传,有效地减少了资源的消耗;并且能够对待同步的数据操作进行去重处理,从而避免了数据同步发生重复,有效地保证了数据同步时的幂等性,确保了多个机房的数据一致性。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1.一种多机房数据同步方法,所述方法适用于基于Redis集群的机房之间的同步,Redis集群中包含有多个Redis组,每个Redis组包括一个主节点和所述主节点的所有从节点;所述方法包括:
接收客户端发送的数据写入请求,并对所述数据写入请求进行封装处理,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供所述主节点执行所述封装后的数据写入请求,并将数据操作记录至所述主节点的日志文件中;
读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。
A2.根据A1所述的方法,所述方法还包括:若所述同步链路断开导致同步失败,则从断点位置再次执行同步操作直至同步成功。
A3.根据A1或A2所述的方法,所述读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房进一步包括:
针对每个Redis组,读取所述主节点的日志文件中的数据操作,并为所述Redis组分配对应的同步线程,调用所述同步线程根据读取到的待同步的数据操作构造同步命令,并利用所述同步链路将所述同步命令发送至对端机房,以供将所述同步命令分配至对端机房的对端主节点;
所述对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理具体为:对端机房的对端主节点根据所记录的第一文件偏移量对所述同步命令进行去重处理;执行去重后的同步命令,并在所述对端主节点中更新所述第一文件偏移量。
A4.根据A3所述的方法,所述同步命令包含有待同步的数据操作对应的第二文件偏移量和日志源标识;
所述对端机房的对端主节点根据所记录的第一文件偏移量对所述同步命令进行去重处理进一步包括:
根据所述日志源标识获取对应的第一文件偏移量;
判断所述第二文件偏移量是否大于所述第一文件偏移量;若否,则丢弃所述同步命令。
A5.根据A3或A4所述的方法,在将所述同步命令分配至对端机房的对端主节点之后,所述方法还包括:
向所述对端主节点发送等待命令,以供所述对端主节点根据所述等待命令在对端从节点完成对所述同步命令对应的数据操作的主从同步之后返回执行成功信息。
A6.根据A3-A5任一项所述的方法,所述方法还包括:
接收对端机房在成功执行同步命令之后返回的执行成功信息,每隔预设时间间隔调用对应的同步线程根据所述执行成功信息构造携带有已同步的数据操作对应的文件偏移量的同步确认命令,并将所述同步确认命令发送至对应的主节点,以供所述主节点根据所述同步确认命令,记录第三文件偏移量。
A7.根据A1-A6任一项所述的方法,所述方法还包括:
若本机房的任一Redis组中的从节点变更为新主节点,则读取所述新主节点中记录的第三文件偏移量,根据所述第三文件偏移量确定断点位置,从断点位置再次执行同步操作直至同步成功。
A8.根据A1-A7任一项所述的方法,在读取本机房的每个Redis组中的主节点的日志文件中的数据操作之后,所述方法还包括:
检测主节点与从节点之间已主从同步的数据操作对应的第四文件偏移量;
判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于所述第四文件偏移量;
若是,则将所述待同步的数据操作发送至对端机房;若否,则等待预设时间,而后跳转执行所述判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于所述第四文件偏移量的步骤。
A9.根据A1-A8任一项所述的方法,所述方法还包括:
在将数据从源Redis组迁移至目标Redis组之前,停止目标Redis组对应的同步线程;
在源Redis组中的数据完成迁移之后,恢复调用目标Redis组对应的同步线程。
A10.根据A1-A9任一项所述的方法,所述方法还包括:
检测本机房中Redis组的变更信息;若存在新增的Redis组,则为所述新增的Redis组分配对应的同步线程;若存在下线的Redis组,则停止所述下线的Redis组对应的同步线程。
A11.根据A1-A10任一项所述的方法,所述方法适用于多个机房之间的双向同步或单向同步。
本发明还公开了:B12.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如A1-A11中任一项所述的多机房数据同步方法对应的操作。
本发明还公开了:C13.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如A1-A11中任一项所述的多机房数据同步方法对应的操作。

Claims (10)

1.一种多机房数据同步方法,所述方法适用于基于Redis集群的机房之间的同步,Redis集群中包含有多个Redis组,每个Redis组包括一个主节点和所述主节点的所有从节点;所述方法包括:
接收客户端发送的数据写入请求,并对所述数据写入请求进行封装处理,将封装后的数据写入请求发送至本机房对应的Redis组中的主节点,以供所述主节点执行所述封装后的数据写入请求,并将数据操作记录至所述主节点的日志文件中;
读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房,以供对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理。
2.根据权利要求1所述的方法,所述方法还包括:若所述同步链路断开导致同步失败,则从断点位置再次执行同步操作直至同步成功。
3.根据权利要求1或2所述的方法,所述读取本机房的每个Redis组中的主节点的日志文件中的数据操作,利用同步链路将读取到的待同步的数据操作发送至对端机房进一步包括:
针对每个Redis组,读取所述主节点的日志文件中的数据操作,并为所述Redis组分配对应的同步线程,调用所述同步线程根据读取到的待同步的数据操作构造同步命令,并利用所述同步链路将所述同步命令发送至对端机房,以供将所述同步命令分配至对端机房的对端主节点;
所述对端机房根据实时记录的已同步的数据操作对应的第一文件偏移量对待同步的数据操作进行去重处理具体为:对端机房的对端主节点根据所记录的第一文件偏移量对所述同步命令进行去重处理;执行去重后的同步命令,并在所述对端主节点中更新所述第一文件偏移量。
4.根据权利要求3所述的方法,所述同步命令包含有待同步的数据操作对应的第二文件偏移量和日志源标识;
所述对端机房的对端主节点根据所记录的第一文件偏移量对所述同步命令进行去重处理进一步包括:
根据所述日志源标识获取对应的第一文件偏移量;
判断所述第二文件偏移量是否大于所述第一文件偏移量;若否,则丢弃所述同步命令。
5.根据权利要求3或4所述的方法,在将所述同步命令分配至对端机房的对端主节点之后,所述方法还包括:
向所述对端主节点发送等待命令,以供所述对端主节点根据所述等待命令在对端从节点完成对所述同步命令对应的数据操作的主从同步之后返回执行成功信息。
6.根据权利要求3-5任一项所述的方法,所述方法还包括:
接收对端机房在成功执行同步命令之后返回的执行成功信息,每隔预设时间间隔调用对应的同步线程根据所述执行成功信息构造携带有已同步的数据操作对应的文件偏移量的同步确认命令,并将所述同步确认命令发送至对应的主节点,以供所述主节点根据所述同步确认命令,记录第三文件偏移量。
7.根据权利要求1-6任一项所述的方法,所述方法还包括:
若本机房的任一Redis组中的从节点变更为新主节点,则读取所述新主节点中记录的第三文件偏移量,根据所述第三文件偏移量确定断点位置,从断点位置再次执行同步操作直至同步成功。
8.根据权利要求1-7任一项所述的方法,在读取本机房的每个Redis组中的主节点的日志文件中的数据操作之后,所述方法还包括:
检测主节点与从节点之间已主从同步的数据操作对应的第四文件偏移量;
判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于所述第四文件偏移量;
若是,则将所述待同步的数据操作发送至对端机房;若否,则等待预设时间,而后跳转执行所述判断本机房与对端机房之间待同步的数据操作对应的第二文件偏移量是否小于所述第四文件偏移量的步骤。
9.一种计算设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-8中任一项所述的多机房数据同步方法对应的操作。
10.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-8中任一项所述的多机房数据同步方法对应的操作。
CN202010912032.4A 2020-09-02 2020-09-02 多机房数据同步方法、计算设备及存储介质 Active CN112052230B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010912032.4A CN112052230B (zh) 2020-09-02 2020-09-02 多机房数据同步方法、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010912032.4A CN112052230B (zh) 2020-09-02 2020-09-02 多机房数据同步方法、计算设备及存储介质

Publications (2)

Publication Number Publication Date
CN112052230A true CN112052230A (zh) 2020-12-08
CN112052230B CN112052230B (zh) 2024-03-15

Family

ID=73607208

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010912032.4A Active CN112052230B (zh) 2020-09-02 2020-09-02 多机房数据同步方法、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN112052230B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925848A (zh) * 2021-02-23 2021-06-08 马上消费金融股份有限公司 一种数据同步方法、装置、设备及可读存储介质
CN113515502A (zh) * 2021-07-14 2021-10-19 重庆度小满优扬科技有限公司 数据迁移方法、装置、设备以及存储介质
CN115225649A (zh) * 2022-07-19 2022-10-21 维沃移动通信有限公司 数据同步方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160112516A1 (en) * 2013-07-02 2016-04-21 Huawei Technologies Co., Ltd. Distributed storage system, cluster node and range management method thereof
CN110647511A (zh) * 2019-09-27 2020-01-03 掌阅科技股份有限公司 数据同步方法、计算设备及计算机存储介质
CN110659256A (zh) * 2019-09-30 2020-01-07 掌阅科技股份有限公司 多机房同步方法、计算设备及计算机存储介质
CN110990432A (zh) * 2019-11-18 2020-04-10 北京禧云信息科技有限公司 一种跨机房同步分布式缓存集群的装置和方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160112516A1 (en) * 2013-07-02 2016-04-21 Huawei Technologies Co., Ltd. Distributed storage system, cluster node and range management method thereof
CN110647511A (zh) * 2019-09-27 2020-01-03 掌阅科技股份有限公司 数据同步方法、计算设备及计算机存储介质
CN110659256A (zh) * 2019-09-30 2020-01-07 掌阅科技股份有限公司 多机房同步方法、计算设备及计算机存储介质
CN110990432A (zh) * 2019-11-18 2020-04-10 北京禧云信息科技有限公司 一种跨机房同步分布式缓存集群的装置和方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112925848A (zh) * 2021-02-23 2021-06-08 马上消费金融股份有限公司 一种数据同步方法、装置、设备及可读存储介质
CN112925848B (zh) * 2021-02-23 2024-02-06 马上消费金融股份有限公司 一种数据同步方法、装置、设备及可读存储介质
CN113515502A (zh) * 2021-07-14 2021-10-19 重庆度小满优扬科技有限公司 数据迁移方法、装置、设备以及存储介质
CN113515502B (zh) * 2021-07-14 2023-11-21 重庆度小满优扬科技有限公司 数据迁移方法、装置、设备以及存储介质
CN115225649A (zh) * 2022-07-19 2022-10-21 维沃移动通信有限公司 数据同步方法、装置和电子设备

Also Published As

Publication number Publication date
CN112052230B (zh) 2024-03-15

Similar Documents

Publication Publication Date Title
CN108234641B (zh) 基于分布式一致性协议实现的数据读写方法及装置
CN102355369B (zh) 虚拟化集群系统及其处理方法和设备
US9934242B2 (en) Replication of data between mirrored data sites
CN112052230A (zh) 多机房数据同步方法、计算设备及存储介质
EP3839749A1 (en) Data storage method, device and server
CN110647511A (zh) 数据同步方法、计算设备及计算机存储介质
US20170168756A1 (en) Storage transactions
CN108228102B (zh) 节点间数据迁移方法、装置、计算设备及计算机存储介质
CN108595119B (zh) 一种数据同步方法及分布式系统
CN115599747B (zh) 一种分布式存储系统的元数据同步方法、系统及设备
CN112015595B (zh) 主从数据库的切换方法、计算设备及存储介质
CN108228812B (zh) 自适应的主节点切换方法及装置
CN106873902B (zh) 一种文件存储系统、数据调度方法及数据节点
EP3579501B1 (en) Message transmission method and device in cluster file system
JP4322240B2 (ja) 再起動方法、システム及びプログラム
WO2022033269A1 (zh) 数据处理的方法、设备及系统
CN107943615B (zh) 基于分布式集群的数据处理方法与系统
CN106775846B (zh) 用于物理服务器的在线迁移的方法及装置
CN111431951B (zh) 一种数据处理方法、节点设备、系统及存储介质
CN109992447B (zh) 数据复制方法、装置及存储介质
CN112527561B (zh) 基于物联网云存储的数据备份方法及装置
WO2015035891A1 (zh) 补丁方法、设备及系统
CN112905696B (zh) 基于事务标识的多机房同步方法、计算设备及存储介质
CN109271457A (zh) 一种数据同步方法及装置
CN114356214B (zh) 一种针对kubernetes系统提供本地存储卷的方法及系统

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
GR01 Patent grant
GR01 Patent grant