CN116149707B - Method and device for detecting and avoiding upgrading risk of distributed system - Google Patents

Method and device for detecting and avoiding upgrading risk of distributed system Download PDF

Info

Publication number
CN116149707B
CN116149707B CN202310148127.7A CN202310148127A CN116149707B CN 116149707 B CN116149707 B CN 116149707B CN 202310148127 A CN202310148127 A CN 202310148127A CN 116149707 B CN116149707 B CN 116149707B
Authority
CN
China
Prior art keywords
upgrade
risk
instruction
service
upgrading
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.)
Active
Application number
CN202310148127.7A
Other languages
Chinese (zh)
Other versions
CN116149707A (en
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.)
SmartX Inc
Original Assignee
SmartX Inc
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 SmartX Inc filed Critical SmartX Inc
Priority to CN202310148127.7A priority Critical patent/CN116149707B/en
Publication of CN116149707A publication Critical patent/CN116149707A/en
Application granted granted Critical
Publication of CN116149707B publication Critical patent/CN116149707B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

The invention discloses an upgrade risk detection and avoidance method and device of a distributed system, comprising the following steps: acquiring upgrading risk data, configuring corresponding upgrading rules and issuing the corresponding upgrading rules to distributed software upgrading service; responding to the upgrade instruction and scheduling the upgrade task, generating an upgrade plan according to the upgrade instruction, and transmitting the upgrade task to a plurality of nodes running the distributed software; judging whether an upgrade risk exists, when the upgrade risk exists, configuring a corresponding risk monitoring rule in the upgrade plan, and periodically executing risk detection and avoidance operation issued by an upgrade task scheduling service; receiving and executing an instruction sequence sent by the upgrade task scheduling service to finish the upgrade of the distributed software, finding out and executing a corresponding operation primitive according to a mapping table between the instruction and the operation primitive by the instruction sequence, and returning an execution result to the upgrade task scheduling service; the possibility of human error introduction is reduced, the transaction flow is shortened, and the effectiveness of upgrading risk avoidance is improved.

Description

Method and device for detecting and avoiding upgrading risk of distributed system
Technical Field
The present invention relates to the field of software upgrade technologies, and in particular, to a method and apparatus for detecting and avoiding upgrade risk of a distributed system.
Background
In a distributed system, upgrades refer to the process of upgrading some or all of the components in the system from an old version to a new version. In the process of upgrading distributed software, since the distributed software always runs on a plurality of nodes, and one or more components of the distributed software run on each node at the same time, the upgrading process is complex, and when components are upgraded in a distributed system, the following problems need to be considered: 1. upgrade planning: a detailed upgrade plan needs to be made, including which components need to be upgraded, when to upgrade, how to upgrade, etc. 2. And (3) data migration: during an upgrade, data in the old version may need to be migrated into the new version to ensure data integrity and consistency. 3. Smooth upgrade: in order to avoid the unavailability of the system in the upgrade process, a smooth upgrade mode should be adopted, that is, the components are gradually upgraded to the new version in the upgrade process, instead of upgrading all the components to the new version at one time. 4. Rollback: various unexpected problems may be encountered during the upgrade process, so a rollback scheme should be prepared to be able to quickly rollback to the old version when a problem arises.
These upgrade processes consist essentially of three parts, one part residing in the running logic of the software package itself, another part residing in the upgrade tools of the distributed software cluster, and finally a part of the operations that need to be done manually by the operation and maintenance personnel. To meet the above requirements, the complexity of the upgrade process will be high, so relying entirely on human operation is prone to error, and to prevent human error from affecting the usability and security of the distributed system, the upgrade process will be as automated as possible.
In the distributed software upgrading process, an ideal upgrading process can complete the upgrading of the whole distributed cluster by means of upgrading tool software by only operating and maintaining personnel according to the instruction of a document and executing a plurality of fixed instructions in sequence. However, any computer software inevitably has defects, and the distributed software upgrading tool itself may not be capable of completing upgrading according to expectations due to certain factors, and meanwhile, the defects which are discovered after the software is released and deployed cannot be well processed by both the software itself and the upgrading tool. For such cases, the main solutions at present are as follows:
1. the developer writes the document for processing the specific problem, and the operation and maintenance personnel execute additional fault checking and removing operations before upgrading according to the instruction of the document, and due to the characteristics of multiple nodes and multiple components of the distributed software, the manual operation often has the potential risk of misoperation, and meanwhile, heavy repeated labor is brought to the technicians.
2. Updating the upgrade tool software aiming at a specific problem, adding relevant processing logic in the upgrade tool, then upgrading the software package of the upgrade tool in the deployed software cluster, and finally running the upgrade tool of a new version to finish the upgrading of the cluster. The method has the problems that the method is inflexible, and for any newly discovered software defect, the whole process of development, test and deployment is required to normally complete the upgrade operation, so that the excessively redundant transaction process can increase the running cost of enterprises, the period for solving the problem can be prolonged, the running time of distributed software in a defective state can be prolonged, and the probability of failure is greatly increased.
Infrastructure software is the basis of all application software, improper upgrade operations may interrupt upper layer business, and many industries have high requirements on business continuity, for example, production software interruption may cause complete production line stoppage, and significant economic loss. The upgrade of the infrastructure software needs to be performed by selecting a time window in which the system state meets the upgrade condition, and a relatively long period exists between the problem discovery and the upgrade completion, and the software has to run in a risky state during this period, so that no better solution exists for the problem at present.
In view of the foregoing, there is a need for an upgrade risk detection and avoidance method for a distributed system that overcomes the above-described drawbacks.
Disclosure of Invention
The invention aims to provide an upgrade risk detection and avoidance method and device for a distributed system, which increase good expansibility for automatic upgrade software of distributed software by setting a domain specific language UpDSL for upgrade risk detection and avoidance, so that when a bug causing the risk of the software upgrade process is newly found in a software maintenance period, a solution can be directly distributed to a production environment in a mode of defining an upgrade rule, the traditional document and manual operation flow are not relied, the possibility of introducing errors by people is reduced, the transaction flow is shortened, and the risk operation of the software is reduced.
The invention provides an upgrade risk detection and avoidance method of a distributed system, which comprises the following steps:
acquiring upgrading risk data, configuring corresponding upgrading rules according to the upgrading risk data, and issuing the corresponding upgrading rules to distributed software upgrading service;
responding to an upgrade instruction and scheduling an upgrade task, generating an upgrade plan according to the upgrade instruction, and issuing the upgrade task to a plurality of nodes running distributed software, wherein each node comprises corresponding risk detection and avoidance service and distributed software upgrade service;
Judging whether an upgrade risk exists, when the upgrade risk exists, configuring a corresponding risk monitoring rule in the upgrade plan, and periodically executing risk detection and avoidance operation issued by an upgrade task scheduling service;
receiving and executing an instruction sequence sent by the upgrade task scheduling service to finish the upgrade of the distributed software, finding out and executing a corresponding operation primitive according to a mapping table between the instruction and the operation primitive, and returning an execution result to the upgrade task scheduling service;
the upgrade rule comprises a condition for processing upgrade problems or detecting operation risk triggering and corresponding evasion operation, one or more risk items existing in the upgrade process are detected through a judgment primitive given by UpDSL, and a solution operation is defined through an upgrade operation primitive given by UpDSL.
Preferably, the operation primitive defined in the UpDSL includes: source version scope, target version scope, node roles, file attributes and configuration items.
Preferably, the UpDSL given upgrade operation primitive includes: configuration file modification, service start, service stop, service restart, file backup, file restoration, and file deletion.
Preferably, the responding to the upgrade instruction and scheduling the upgrade task, generating an upgrade plan according to the upgrade instruction, and issuing the upgrade task to a plurality of nodes running the distributed software includes:
configuring an upgrade rule management module, and providing upgrade rule addition, deletion, inquiry and interface update for external equipment;
configuring an UpDSL interpretation module, receiving an upgrade script, performing grammar analysis, generating corresponding upgrade rules and storing the upgrade rules into an upgrade rule management module;
and configuring an upgrade task scheduling module, and taking charge of generating an upgrade plan, maintaining the state of the upgrade task and issuing the upgrade task.
Preferably, the risk monitoring rule is defined according to UpDSL, and if the target version is set to be empty in the rule definition, the rule is indicated to be a risk monitoring rule, and the risk monitoring rule includes a risk judging condition and a corresponding operation executed for avoiding the risk.
Preferably, the responding to the upgrade instruction and scheduling the upgrade task further comprises:
configuring UpDSL risk avoidance rules and uploading the UpDSL risk avoidance rules to an upgrade task scheduling service;
periodically triggering a risk detection task, traversing all risk monitoring rules, issuing to all nodes, receiving an instruction by a risk detection and avoidance service on each node, and executing corresponding operation;
And after the execution of one or more risk detection tasks is completed, the node detecting the risk executes automatic repair operation until the new version of software is released.
Preferably, the receiving and executing the instruction sequence sent by the upgrade task scheduling service to complete the upgrade of the distributed software includes:
acquiring a risk/vulnerability target and configuring an upgrade rule corresponding to UpDSL;
uploading the upgrade rule script to an UpDSL interpretation module, carrying out grammar analysis on the upgrade rule script, and inserting an upgrade rule list;
responding to an upgrade instruction of a user side, traversing all upgrade rules when an upgrade task scheduling service generates an upgrade plan for each node, judging whether the upgrade risk exists, and generating corresponding risk avoidance operation in the upgrade plan if the upgrade risk exists;
after the upgrade plan is generated, the distributed software upgrade service is issued to each node, after the distributed software upgrade service receives the instruction, the instruction is executed as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the instruction is analyzed, the primitive and the parameter are analyzed, the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and the parameter is filled and the operation is executed;
And after the upgrade plan execution is completed, the whole cluster is upgraded to the target version.
The invention provides an upgrade risk detection and avoidance device of a distributed system, which comprises:
the rule configuration module is used for acquiring upgrading risk data, configuring corresponding upgrading rules according to the upgrading risk data and issuing the corresponding upgrading rules to the distributed software upgrading service;
the upgrade task scheduling service is used for responding to the upgrade instruction and scheduling the upgrade task, generating an upgrade plan according to the upgrade instruction, and transmitting the upgrade task to a plurality of nodes running the distributed software, wherein each node comprises a corresponding risk detection and avoidance service and the distributed software upgrade service;
the risk detection and avoidance service is used for judging whether an upgrading risk exists, and when the upgrading risk exists, configuring a corresponding risk monitoring rule in the upgrading plan, and periodically executing the risk detection and avoidance operation issued by the upgrading task scheduling service;
the distributed software upgrading service is used for receiving and executing an instruction sequence sent by the upgrading task scheduling service to finish the upgrading of the distributed software, the instruction sequence finds out and executes the corresponding operation primitive according to a mapping table between the instruction and the operation primitive, and the executed result is returned to the upgrading task scheduling service;
The upgrade rule comprises a condition for processing upgrade problems or detecting operation risk triggering and corresponding evasion operation, one or more risk items existing in the upgrade process are detected through a judgment primitive given by UpDSL, and a solution operation is defined through an upgrade operation primitive given by UpDSL.
The invention provides an electronic device, comprising:
a memory for storing a processing program;
and the processor is used for realizing the upgrade risk detection and avoidance method suitable for the distributed system when executing the processing program.
The invention provides a computer readable storage medium, wherein a processing program is stored on the computer readable storage medium, and the processing program realizes the upgrade risk detection and avoidance method of the distributed system according to the embodiment of the invention when being executed by a processor.
Aiming at the prior art, the invention has the following beneficial effects:
according to the invention, by designing the domain specific language UpDSL for detecting and avoiding the upgrading risk, good expansibility is increased for the automatic upgrading software of the distributed software, so that the solution can be directly distributed to the production environment in a mode of defining the upgrading rule when the vulnerability causing the risk of the software upgrading process is newly found in the software maintenance period. The following technical effects are achieved:
1. The method does not depend on the traditional documents and manual operation flow, so that the possibility of human error introduction is reduced, the transaction flow is shortened, and the risk operation window of software is reduced;
2. the number of lines of codes is small, and rule writing is simple. Because the invention defines a domain specific language with higher abstraction level and which is specially applied to distributed software upgrading, common operations in the upgrading process are included, and a developer does not need to repeatedly write the operation logic of the bottom layer;
3. because UpDSL limits that a developer can only use a predefined and strictly verified operation primitive set when processing an upgrade problem, the risk is in a controllable range, and compared with the method that a temporary risk processing program is directly written by using an underlying language, the method is safer;
4. the method comprises the steps that known risks of software are checked regularly before the software is upgraded, and preset risk avoidance operation is executed, so that the software can meet the requirements of industries such as manufacturing industry and the like on the stability and reliability of the software;
5. environmental condition check before upgrading can be flexibly added, so that the upgrading process is more stable, safe and controllable.
Drawings
FIG. 1 is a flow chart of a method for detecting and avoiding upgrade risk of a distributed system according to a first embodiment of the present invention;
Fig. 2 is a diagram illustrating the composition of UpDSL operation primitives in accordance with a first embodiment of the present invention;
FIG. 3 is a general architecture diagram of a method for detecting and circumventing an upgrade risk of a distributed system according to a first embodiment of the present invention;
FIG. 4 is a flow chart of a risk detection and avoidance service according to an embodiment of the present invention;
FIG. 5 is a flowchart of a distributed software upgrade service according to an embodiment of the present invention;
fig. 6 is a specific schematic diagram of an UpDSL upgrade rule script in the first embodiment of the present invention;
fig. 7 is a specific schematic diagram of an UpDSL risk monitoring rule script in a first embodiment of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
Example 1
As shown in fig. 1, the method for detecting and avoiding upgrade risk of a distributed system provided by the present invention is applicable to a distributed system facing manufacturing industry, and includes:
Step S1, acquiring upgrade risk data, configuring corresponding upgrade rules according to the upgrade risk data, and issuing the upgrade rules to a distributed software upgrade service; the upgrade rule comprises a condition for processing upgrade problems or detecting operation risk triggering and corresponding evasion operation, one or more risk items existing in the upgrade process are detected through a judgment primitive given by UpDSL, and a solution operation is defined through an upgrade operation primitive given by UpDSL. Wherein the upgrade risk data may be obtained from a history log.
In this embodiment, the distributed software upgrade uses a specific language in the upgrade field, which is suitable for the upgrade of a distributed system facing the manufacturing industry, that is, a program script written by UpDSL, to describe a rule for processing the upgrade problem or detecting the running risk, including two main components of conditions and corresponding operations, and by using a decision primitive given by UpDSL, a specific risk item existing in the upgrade process is detected, and then a solution is defined by using an upgrade operation primitive given by UpDSL.
As shown in fig. 2, the operation primitives defined in the UpDSL include: source version scope, target version scope, node roles, file attributes, configuration items, and the like. The concrete explanation is as follows: the source version range judging primitive can acquire the current software version number by calling the operating system command, then compares the current software version number with the defined judging condition, returns a logic true value to indicate that the condition is met, and otherwise, indicates that the condition is not met. The definition of the version judgment condition can be completed through aggregation, interval and intersection and complement operation, and the judgment is completed through calculating whether the current version number is in the aggregation. The target version range judging primitive acquires the target version number from the upgrade command issued by the user and then compares the target version number with the judging condition. The node role judging primitive acquires the roles of the nodes by accessing the distributed consensus service and the configuration file items, the roles are divided into a leader, a follower and a bystander, the judging conditions are defined by the set of the roles, and the set contains the roles which represent that the judgment is successful. The file attribute judging primitive contains two parameters of an absolute path and an attribute name of a file, and the designated attribute value of the file pointed by the file path is inquired through an inquiry statement provided by an operating system and then is compared with a defined judging condition. The judging condition of the file attribute is realized differently according to the specific type of the attribute, the numerical value type is defined by an interval and a set, the character string type is defined by the set, and the authority type is defined by a numerical quadruple. The configuration item judging primitive comprises two parameters of an absolute path of a configuration file and a name of the configuration item, the operation firstly reads the content of the configuration file through opening the file path, then judges the type of the configuration file, calls a related configuration file operation program according to the specific type, reads the designated configuration item and compares the designated configuration item with preset judging conditions. The judging conditions of the configuration items are realized differently according to the specific types of the attributes, and the judging conditions are realized by the method for defining the file attribute judging conditions.
The upgrade operation primitive given by the UpDSL includes: configuration file modification, service start, service stop, service restart, file backup, file recovery, file deletion, and the like. The concrete explanation is as follows: the configuration file modification primitive comprises three parameters of an absolute path of a configuration file, a name of a configuration item and a value of the configuration item, the operation firstly reads the content of the configuration file through opening the file path, then judges the type of the configuration file, calls a related configuration file operation program according to the specific type, and sets the configuration item to be a specified value. The three primitives of service start/stop/restart include a parameter of service name, and the operation calls the operating system to command the completion of the operations of starting, stopping and restarting the corresponding service. The file backup and restore operation primitive contains a file path parameter, which may be a file or a folder, and when the parameter is a folder, the object of the operation contains the folder itself and all files subordinate thereto. The file backup operation will add a specific suffix to the file path to generate a target path, then copy a file to be backed up to the target path, and contrary to the process, the file recovery process will add a specific suffix to the file path to obtain a backed up file path, then copy a backup file to the designated file path and cover the existing file. The file delete operation primitive contains a parameter of the file path, which may be a file or folder, that will perform the delete operation via the operating system interface.
And step S2, responding to the upgrade instruction and scheduling the upgrade task, generating an upgrade plan according to the upgrade instruction, and transmitting the upgrade task to a plurality of nodes running the distributed software, wherein each node comprises corresponding risk detection and avoidance/avoidance services and distributed software upgrade services. The upgrade task is issued to the risk detection and avoidance/avoidance service and the distributed software upgrade service execution corresponding to each node, and the system/software is composed of several parts as shown in fig. 3. Distributed software upgrade services, upgrade task scheduling services, risk detection and avoidance/avoidance services, a predefined domain specific language (hereinafter UpDSL, upgrade Doma i n Spec i f i c Language) describing upgrade rules.
Specifically, in step S2, in response to the upgrade instruction and schedule the upgrade task, generating an upgrade plan according to the upgrade instruction, and issuing the upgrade task to the plurality of nodes running the distributed software includes:
configuring an upgrade rule management module, and providing upgrade rule addition, deletion, inquiry and interface update for external equipment;
configuring an UpDSL interpretation module, receiving an upgrade script, performing grammar analysis, generating corresponding upgrade rules and storing the upgrade rules into an upgrade rule management module;
And configuring an upgrade task scheduling module, and taking charge of generating an upgrade plan, maintaining the state of the upgrade task and issuing the upgrade task.
As will be appreciated by those skilled in the art, referring to fig. 3, the upgrade task scheduling service adopted in the embodiment of the present invention includes an upgrade rule management module, an UpDSL interpretation module, and an upgrade task scheduling module; the upgrade rule management module stores an upgrade rule list, wherein each rule in the list comprises a precondition and an operation to be executed, the precondition of the upgrade rule is a series of precondition operation primitives connected by logic words, and the operation to be executed is a list formed by upgrade operation primitives. The management module provides the addition, deletion, inquiry and update interfaces of the upgrade rules. The upgrade rule is added by uploading an UpDSL script by a user, the UpDSL interpretation module carries out grammar analysis on the received upgrade script to generate a corresponding upgrade rule, and then the generated rule is stored in the upgrade rule management module. The upgrade task scheduling module is responsible for generating an upgrade plan, maintaining the state of the upgrade task and issuing the upgrade task.
Specifically, the step S2 of responding to the upgrade instruction and scheduling the upgrade task further includes:
Configuring UpDSL risk avoidance rules and uploading the UpDSL risk avoidance rules to an upgrade task scheduling service;
periodically triggering a risk detection task, traversing all risk monitoring rules, issuing to all nodes, receiving an instruction by a risk detection and avoidance service on each node, and executing corresponding operation;
and after the execution of one or more risk detection tasks is completed, the node detecting the risk executes automatic repair operation until the new version of software is released.
Step S3, judging whether an upgrade risk exists, and when the upgrade risk exists, configuring a corresponding risk monitoring rule in the upgrade plan, and periodically executing risk detection and avoidance operation issued by an upgrade task scheduling service; referring to fig. 4, the risk detection and avoidance service adopted in this embodiment is responsible for periodically executing the risk detection and avoidance operation issued by the upgrade task scheduling service.
The risk monitoring rule is defined by the UpDSL, if the target version is set to be empty in the rule definition, the rule is a risk monitoring rule, and the rule comprises a risk judging condition and an operation which is supposed to be executed for avoiding the risk. At the moment when each risk detection task is triggered, the upgrade task scheduling service traverses all risk monitoring rules, issues risk detection and avoidance service execution to each node, retrieves the execution results and saves the execution results.
Step S4, receiving and executing an instruction sequence sent by the upgrade task scheduling service to finish upgrade of the distributed software, finding out and executing a corresponding operation primitive according to a mapping table between the instruction and the operation primitive, and returning an execution result to the upgrade task scheduling service; referring to fig. 5, the distributed software upgrade service is responsible for executing instruction sequences sent by the upgrade scheduling service, where the instruction sequences correspond to operation primitives in a domain-specific language, and find a corresponding operation primitive according to a mapping table between an instruction and the operation primitive, fill parameters of the operation language, execute the parameters, and finally return an executed result to the upgrade scheduling service.
After the upgrade plan is generated, the distributed software upgrade service is issued to each node, after the distributed software upgrade service receives the instruction, the instruction is executed as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the primitive and the parameter are analyzed, and the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and the preset upgrade operation is executed.
Specifically, the step S4 of receiving and executing the instruction sequence sent by the upgrade task scheduling service to complete the upgrade of the distributed software includes:
Acquiring a risk/vulnerability target and configuring an upgrade rule corresponding to UpDSL;
uploading the upgrade rule script to an UpDSL interpretation module, carrying out grammar analysis on the upgrade rule script, and inserting an upgrade rule list;
responding to an upgrade instruction of a user side, traversing all upgrade rules when an upgrade task scheduling service generates an upgrade plan for each node, judging whether the upgrade risk exists, and generating corresponding risk avoidance operation in the upgrade plan if the upgrade risk exists;
after the upgrade plan is generated, the distributed software upgrade service is issued to each node, after the distributed software upgrade service receives the instruction, the instruction is executed as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the instruction is analyzed, the primitive and the parameter are analyzed, the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and the parameter is filled and the operation is executed;
and after the upgrade plan execution is completed, the whole cluster is upgraded to the target version.
The operation of the system is described below by way of specific examples.
In one embodiment, as shown in FIG. 6, the method is applied to a software upgrade process: for a distributed software that has been deployed on a large scale in a production environment, the software is run on a database, and in subsequent maintenance cycles, developers find a program bug, where the bug is generated because an incorrect configuration of the database results in an excessively large log file for the running of the database, and the excessively large database log file results in a risk of data loss after the software upgrading operation, and the problem only occurs in part of the upgrading path. To ensure data security, this risk must be eliminated prior to upgrades. Under the condition that the technical scheme provided by the embodiment is not used, the software version and the log file size can be judged only by manually logging in each software node, then the configuration file is modified and the database service is restarted according to the situation, so that the risk of upgrading is avoided.
Under the condition of using the technical scheme provided by the embodiment, it is assumed that a distributed software cluster comprises A, B, C three nodes, namely 1,2 and 3 versions of software are respectively operated, roles are respectively a leader, a follower and a bystander, and only the leader and the follower operate database services. The conditions for the vulnerability triggering are as follows: from the software before version 2 to the subsequent version, the log file/var/log size is greater than 500MB, and the value of key1 item of configuration file/etc/conf i g is va l ue1. The risk avoiding method comprises the following steps: the value of configuration item key1 is modified to va l ue2 and then the database service is restarted.
Firstly, through analyzing the problem, writing a corresponding upgrading rule by using UpDSL:
the upgrade rule script is then uploaded to the UpDSL interpretation module, which parses the rule script, and inserts the rule into an upgrade rule list, referred to as rule 1.
At this point the user issues an upgrade command, desiring to upgrade the entire cluster to version 4. For each node, when generating an upgrade plan, the upgrade task scheduling service traverses all upgrade rules to determine whether upgrade risks exist, and if so, the upgrade plan contains corresponding risk avoidance operations.
For the node A, the source version is 1, the target version is 4, but the log file/var/log size is 300MB, and the conditions are not satisfied, so that in the case that the upgrade rule 1 is not named, the upgrade plan generated by the upgrade task scheduling service for the node A does not contain the risk avoidance operation specified in the rule 1;
for the node B, the source version is 2, the target version is 4, the log file/var/log size is 800MB, the role is a follower, and the condition is met, so that the upgrade rule 1 is hit, an upgrade plan generated by an upgrade task scheduling service for the node B will contain a risk avoidance operation specified in the rule 1, and the correct execution of the operations of modifying the configuration file and restarting the database service defined in the rule is ensured before the upgrade operation is executed;
for the node C, the source version is 3, and the condition is not satisfied, so that the upgrade rule 1 does not hit, and the upgrade plan generated by the upgrade task scheduling service for the node C does not contain the risk avoidance operation specified in the rule 1;
after the upgrade plan is generated, the upgrade plan is issued to the distributed software upgrade service of each node one by one, after the software upgrade service receives the instruction, the software upgrade service executes the instruction as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the sent instruction is analyzed, the primitive and the parameter are analyzed, the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and then the parameter is filled and executed.
When the execution of the upgrade plan is completed, the whole cluster is upgraded to the version 4, the upgrade risk is successfully avoided, and the developer does not need to have additional manual operation or modify deployed software while rapidly realizing the solution through UpDSL.
In one embodiment, as shown in FIG. 7, the application of the risk inspection and avoidance process: for a distributed software that has been deployed on a large scale in a production environment, the running of the software will typically depend on certain configuration files, such as the configuration files per etc/config/lower. Taking an exception of a configuration file as a risk check item as an example, in a subsequent maintenance period, a developer discovers a program running risk item, the configuration file cannot be read and written in some cases and can cause unexpected results, a subsequent software version can realize a repairing scheme, but a period of time exists before a new version can be deployed, so that in order to ensure safe running of the software, risks must be checked and removed periodically. Under the condition of using the technical scheme provided by the patent, assuming that one distributed software cluster comprises A, B two nodes, all running software with version 2, the risk avoiding method is as follows: and restarting the service S when the configuration file cannot be read and written.
The following rules are written through UpDSL and uploaded to the upgrade task scheduling service.
In the upgrade task scheduling service, the risk detection task is triggered periodically, the service will traverse all risk monitoring rules, issue to all nodes, and the risk detection and avoidance service on each node will receive instructions and execute.
For the node A, the configuration file/etc/conf i g can be read and written normally without any operation;
for the node B, the configuration file/etc/conf g can not be read and written normally, the subsequent operation of restarting the S service is executed, and then the result is returned to the upgrade task scheduling service;
after the execution of the one-time risk detection task is completed, the nodes detecting the risk execute automatic repair operation, and the task is triggered periodically, so that the software can be ensured to run stably until a reliable new version of software is released.
The invention designs a domain specific language UpDSL for upgrade operation and a series of operation primitives for distributed software upgrade, wherein the DSL has expansibility and defines a set of different operation primitives. The UpDSL increases expandability for the distributed software upgrading tool, can flexibly configure condition inspection before upgrading and automatically execute corresponding risk avoiding operation, can flexibly configure known risk inspection and avoiding operation executed regularly, and improves effectiveness of upgrading risk avoiding.
In another embodiment, all the software logic related to the upgrade is stripped from the software itself, and the latest version of upgrade tool must be installed for each upgrade, so that the upgrade tool can be used as an alternative of the present technical solution, belonging to different technical routes, and each having suitable scenes.
Example two
Based on the same conception, the invention provides an upgrade risk detection and avoidance device of a distributed system, comprising:
the rule configuration module is used for acquiring upgrading risk data, configuring corresponding upgrading rules according to the upgrading risk data and issuing the corresponding upgrading rules to the distributed software upgrading service;
the upgrade task scheduling service is used for responding to the upgrade instruction and scheduling the upgrade task, generating an upgrade plan according to the upgrade instruction, and transmitting the upgrade task to a plurality of nodes running the distributed software, wherein each node comprises a corresponding risk detection and avoidance service and the distributed software upgrade service;
the risk detection and avoidance service is used for judging whether an upgrading risk exists, and when the upgrading risk exists, configuring a corresponding risk monitoring rule in the upgrading plan, and periodically executing the risk detection and avoidance operation issued by the upgrading task scheduling service;
The distributed software upgrading service is used for receiving and executing an instruction sequence sent by the upgrading task scheduling service to finish the upgrading of the distributed software, the instruction sequence finds out and executes the corresponding operation primitive according to a mapping table between the instruction and the operation primitive, and the executed result is returned to the upgrading task scheduling service;
after the upgrade plan is generated, the upgrade plan is issued to the distributed software upgrade service of each node, after the distributed software upgrade service receives the instruction, the instruction is executed as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the primitive and the parameter are analyzed, and the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and the preset upgrade operation is executed;
the upgrade rule comprises a condition for processing upgrade problems or detecting operation risk triggering and corresponding evasion operation, one or more risk items existing in the upgrade process are detected through a judgment primitive given by UpDSL, and a solution operation is defined through an upgrade operation primitive given by UpDSL.
The invention designs a domain specific language UpDSL for upgrade operation and a series of operation primitives for distributed software upgrade, wherein the DSL has expansibility and defines a set of different operation primitives. The UpDSL increases expandability for the distributed software upgrading tool, can flexibly configure condition inspection before upgrading and automatically execute corresponding risk avoiding operation, can flexibly configure known risk inspection and avoiding operation executed regularly, and improves effectiveness of upgrading risk avoiding.
The specific content and implementation method of the rule configuration module, the upgrade task scheduling service, the risk detection and avoidance service, and the distributed software upgrade service are as described in the first embodiment, and are not described herein again.
Example III
Based on the same conception, the electronic equipment provided by the invention comprises:
a memory for storing a processing program;
and the processor is used for realizing the upgrade risk detection and avoidance method suitable for the distributed system when executing the processing program.
The readable storage medium is stored with a processing program, and the processing program realizes the upgrade risk detection and avoidance method of the distributed system according to the embodiment of the invention when being executed by a processor.
The upgrade risk detection and avoidance device of the distributed system may vary considerably in configuration or performance and may include one or more processors (centra l process i ng un i ts, CPU) and memory, one or more storage media (e.g., one or more mass storage devices) storing applications or data. The memory and storage medium may be transitory or persistent. The program stored on the storage medium may include one or more modules, each of which may include a series of instruction operations in an upgrade risk detection and avoidance apparatus for a distributed system.
Further, the processor may be configured to communicate with a storage medium and execute a series of instruction operations in the storage medium on an upgrade risk detection and avoidance device of the distributed system.
An upgrade risk detection and avoidance device of a distributed system may also include one or more power supplies, one or more wired or wireless network interfaces, one or more input output interfaces, and/or one or more operating systems, such as Wi-windows service, vi sta, and the like.
The present invention also provides a computer readable storage medium, on which a computer program is stored, which when executed by one or more processors, implements an upgrade risk detection and avoidance method for a distributed system as in the first embodiment of the present invention. The modules in the second embodiment may be stored in a computer-readable storage medium if implemented as software functional modules and sold or used as a separate product. Based on such understanding, the technical solution of the present invention may be embodied in software in essence or a part or all of the technical solution contributing to the prior art, and the computer readable storage medium may be a non-volatile computer readable storage medium, and the computer readable storage medium may also be a volatile computer readable storage medium. The computer readable storage medium has instructions stored therein that, when executed on a computer, cause the computer to perform the steps of upgrade risk detection and avoidance of the distributed system of embodiment one.
It will be appreciated by those skilled in the art that aspects of the present invention, in essence, or portions thereof, or all or part of the aspects of the present invention may be embodied in software, which is stored in a storage medium, including instructions for causing a computer device (which may be a personal computer, a server, or a network device, etc.) to perform all or part of the steps of a method according to embodiments of the present invention. And the aforementioned storage medium includes: a usb disk, a removable hard disk, a ROM, a RAM, a magnetic disk, or an optical disk, or other various media capable of storing program codes. It will be clearly understood by those skilled in the art that, for convenience and brevity of description, the specific working process of the apparatus described above may refer to the corresponding process in the foregoing method embodiment, which is not described herein again.
Finally, it should be noted that: the above embodiments are only for illustrating the technical solution of the present invention, and are not limiting; although the invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical scheme described in the foregoing embodiments can be modified or some technical features thereof can be replaced by equivalents; such modifications and substitutions do not depart from the spirit and scope of the technical solutions of the embodiments of the present invention.

Claims (9)

1. An upgrade risk detection and avoidance method for a distributed system, comprising:
acquiring upgrading risk data, configuring corresponding upgrading rules according to the upgrading risk data, and issuing the corresponding upgrading rules to distributed software upgrading service;
responding to an upgrade instruction and scheduling an upgrade task, generating an upgrade plan according to the upgrade instruction, and issuing the upgrade task to a plurality of nodes running distributed software, wherein each node comprises corresponding risk detection and avoidance service and distributed software upgrade service;
judging whether an upgrade risk exists, when the upgrade risk exists, configuring a corresponding risk monitoring rule in the upgrade plan, and periodically executing risk detection and avoidance operation issued by an upgrade task scheduling service;
receiving and executing an instruction sequence sent by the upgrade task scheduling service to finish the upgrade of the distributed software, finding out and executing a corresponding operation primitive according to a mapping table between the instruction and the operation primitive, and returning an execution result to the upgrade task scheduling service;
acquiring a risk/vulnerability target and configuring an upgrade rule corresponding to UpDSL;
uploading the upgrade rule script to an UpDSL interpretation module, carrying out grammar analysis on the upgrade rule script, and inserting an upgrade rule list;
Responding to an upgrade instruction of a user side, traversing all upgrade rules when an upgrade task scheduling service generates an upgrade plan for each node, judging whether the upgrade risk exists, and generating corresponding risk avoidance operation in the upgrade plan if the upgrade risk exists;
after the upgrade plan is generated, the distributed software upgrade service is issued to each node, after the distributed software upgrade service receives the instruction, the instruction is executed as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the instruction is analyzed, the primitive and the parameter are analyzed, the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and the parameter is filled and the operation is executed;
after the upgrade plan is executed, the whole cluster is upgraded to a target version; the upgrade rule comprises a condition for processing upgrade problems or detecting operation risk triggering and corresponding evasion operation, one or more risk items existing in the upgrade process are detected through a judgment primitive given by UpDSL, and a solution operation is defined through an upgrade operation primitive given by UpDSL.
2. The upgrade risk detection and avoidance method of a distributed system according to claim 1, wherein the operation primitives defined in the UpDSL include: source version scope, target version scope, node roles, file attributes and configuration items.
3. The upgrade risk detection and avoidance method of a distributed system according to claim 1, wherein said UpDSL given upgrade operation primitive comprises: configuration file modification, service start, service stop, service restart, file backup, file restoration, and file deletion.
4. The method for detecting and circumventing an upgrade risk of a distributed system according to claim 1, wherein said responding to upgrade instructions and scheduling upgrade tasks, generating an upgrade plan according to said upgrade instructions, and issuing upgrade tasks to a plurality of nodes running distributed software comprises:
configuring an upgrade rule management module, and providing upgrade rule addition, deletion, inquiry and interface update for external equipment;
configuring an UpDSL interpretation module, receiving an upgrade script, performing grammar analysis, generating corresponding upgrade rules and storing the upgrade rules into an upgrade rule management module;
and configuring an upgrade task scheduling module, and taking charge of generating an upgrade plan, maintaining the state of the upgrade task and issuing the upgrade task.
5. The method for detecting and avoiding the upgrade risk of a distributed system according to claim 1, wherein the risk monitoring rule is defined according to UpDSL, and if a destination version is set to be empty in the rule definition, the rule is indicated to be a risk monitoring rule, and the risk monitoring rule includes a risk determination condition and a corresponding operation performed to avoid the risk.
6. The method for detecting and circumventing an upgrade risk of a distributed system according to claim 1, wherein said scheduling an upgrade task in response to an upgrade instruction further comprises:
configuring UpDSL risk avoidance rules and uploading the UpDSL risk avoidance rules to an upgrade task scheduling service;
periodically triggering a risk detection task, traversing all risk monitoring rules, issuing to all nodes, receiving an instruction by a risk detection and avoidance service on each node, and executing corresponding operation;
and after one or more risk detection tasks are executed, executing automatic repair operation by the nodes with the risk detected until the new version of software is released.
7. An upgrade risk detection and avoidance apparatus for a distributed system, comprising:
the rule configuration module is used for acquiring upgrading risk data, configuring corresponding upgrading rules according to the upgrading risk data and issuing the corresponding upgrading rules to the distributed software upgrading service;
the upgrade task scheduling service is used for responding to the upgrade instruction and scheduling the upgrade task, generating an upgrade plan according to the upgrade instruction, and transmitting the upgrade task to a plurality of nodes running the distributed software, wherein each node comprises a corresponding risk detection and avoidance service and the distributed software upgrade service;
The risk detection and avoidance service is used for judging whether an upgrading risk exists, and when the upgrading risk exists, configuring a corresponding risk monitoring rule in the upgrading plan, and periodically executing the risk detection and avoidance operation issued by the upgrading task scheduling service;
the distributed software upgrading service is used for receiving and executing an instruction sequence sent by the upgrading task scheduling service to finish the upgrading of the distributed software, the instruction sequence finds out and executes the corresponding operation primitive according to a mapping table between the instruction and the operation primitive, and the executed result is returned to the upgrading task scheduling service;
acquiring a risk/vulnerability target and configuring an upgrade rule corresponding to UpDSL;
uploading the upgrade rule script to an UpDSL interpretation module, carrying out grammar analysis on the upgrade rule script, and inserting an upgrade rule list;
responding to an upgrade instruction of a user side, traversing all upgrade rules when an upgrade task scheduling service generates an upgrade plan for each node, judging whether the upgrade risk exists, and generating corresponding risk avoidance operation in the upgrade plan if the upgrade risk exists;
after the upgrade plan is generated, the distributed software upgrade service is issued to each node, after the distributed software upgrade service receives the instruction, the instruction is executed as usual if the instruction is a common upgrade instruction, if the instruction is an operation primitive defined in UpDSL, the instruction is analyzed, the primitive and the parameter are analyzed, the corresponding function call is queried through the primitive and a mapping table corresponding to the function call, and the parameter is filled and the operation is executed;
After the upgrade plan is executed, the whole cluster is upgraded to a target version;
the upgrade rule comprises a condition for processing upgrade problems or detecting operation risk triggering and corresponding evasion operation, one or more risk items existing in the upgrade process are detected through a judgment primitive given by UpDSL, and a solution operation is defined through an upgrade operation primitive given by UpDSL.
8. An electronic device, comprising:
a memory for storing a processing program;
a processor which, when executing the processing program, implements the upgrade risk detection and avoidance method of the distributed system as claimed in any one of claims 1 to 6.
9. A computer-readable storage medium, wherein a processing program is stored on the computer-readable storage medium, and the processing program when executed by a processor implements the upgrade risk detection and avoidance method of the distributed system according to any one of claims 1 to 6.
CN202310148127.7A 2023-02-22 2023-02-22 Method and device for detecting and avoiding upgrading risk of distributed system Active CN116149707B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310148127.7A CN116149707B (en) 2023-02-22 2023-02-22 Method and device for detecting and avoiding upgrading risk of distributed system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310148127.7A CN116149707B (en) 2023-02-22 2023-02-22 Method and device for detecting and avoiding upgrading risk of distributed system

Publications (2)

Publication Number Publication Date
CN116149707A CN116149707A (en) 2023-05-23
CN116149707B true CN116149707B (en) 2023-09-01

Family

ID=86338792

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310148127.7A Active CN116149707B (en) 2023-02-22 2023-02-22 Method and device for detecting and avoiding upgrading risk of distributed system

Country Status (1)

Country Link
CN (1) CN116149707B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741894A (en) * 2008-11-26 2010-06-16 中国移动通信集团公司 Upgrade method for distributed system and upgrade scheduling node and system
CN112202909A (en) * 2020-10-10 2021-01-08 上海威固信息技术股份有限公司 Online upgrading method and system for computer storage system
WO2021022713A1 (en) * 2019-08-05 2021-02-11 平安科技(深圳)有限公司 Distributed module update method, device, and storage medium
CN112860282A (en) * 2021-03-31 2021-05-28 中国工商银行股份有限公司 Upgrading method and device of cluster plug-in and server
CN115277145A (en) * 2022-07-20 2022-11-01 北京志凌海纳科技有限公司 Distributed storage access authorization management method, system, device and readable medium

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191435B2 (en) * 2002-06-07 2007-03-13 Sun Microsystems, Inc. Method and system for optimizing software upgrades
US20200026505A1 (en) * 2016-11-23 2020-01-23 Nutanix, Inc. Scheduling firmware operations in distributed computing systems

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101741894A (en) * 2008-11-26 2010-06-16 中国移动通信集团公司 Upgrade method for distributed system and upgrade scheduling node and system
WO2021022713A1 (en) * 2019-08-05 2021-02-11 平安科技(深圳)有限公司 Distributed module update method, device, and storage medium
CN112202909A (en) * 2020-10-10 2021-01-08 上海威固信息技术股份有限公司 Online upgrading method and system for computer storage system
CN112860282A (en) * 2021-03-31 2021-05-28 中国工商银行股份有限公司 Upgrading method and device of cluster plug-in and server
CN115277145A (en) * 2022-07-20 2022-11-01 北京志凌海纳科技有限公司 Distributed storage access authorization management method, system, device and readable medium

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
upDSL:一种描述动态更新策略的领域特定语言;张迎春;黄林鹏;;微电子学与计算机(第10期);全文 *

Also Published As

Publication number Publication date
CN116149707A (en) 2023-05-23

Similar Documents

Publication Publication Date Title
EP3769223B1 (en) Unified test automation system
US11048688B2 (en) Deleting configuration items in a configuration management database
US8954930B2 (en) System and method for reducing test effort by object risk analysis
EP2972821B1 (en) Application compatibility checking in a distributed computing environment
US20210191845A1 (en) Unit testing of components of dataflow graphs
US9256509B1 (en) Computing environment analyzer
US9342784B1 (en) Rule based module for analyzing computing environments
US20200310779A1 (en) Validating a firmware compliance policy prior to use in a production system
US20080172579A1 (en) Test Device For Verifying A Batch Processing
CN107179982B (en) Cross-process debugging method and device
CN110063042A (en) A kind of response method and its terminal of database failure
US11816499B2 (en) Transition manager system
US11422917B2 (en) Deriving software application dependency trees for white-box testing
CN109445800B (en) Version automatic deployment method and system based on distributed system
CN110795356A (en) System and method for realizing one-click deployment and automatic testing of software based on android
CN111831567A (en) Application test environment configuration method, device, system and medium
CN116149707B (en) Method and device for detecting and avoiding upgrading risk of distributed system
CN109116818B (en) Real-time data dump method and device during SCADA system upgrade
US11656977B2 (en) Automated code checking
CN114089965A (en) Program development project management method and device based on monolithic code warehouse Monorepo
CN112711575A (en) Deployment method, system and related device of database cluster
US8150821B2 (en) System and method for using generic utilities to perform database utilities on mainframe operated DB2 databases
CN106293897B (en) Automatic scheduling system of subassembly
US20240103853A1 (en) Code maintenance system
US20230393838A1 (en) Process for automatically upgrading an operating system on a computer

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