CN107330035B - Operation log synchronization method in database, mobile terminal and computer readable storage medium - Google Patents

Operation log synchronization method in database, mobile terminal and computer readable storage medium Download PDF

Info

Publication number
CN107330035B
CN107330035B CN201710496408.6A CN201710496408A CN107330035B CN 107330035 B CN107330035 B CN 107330035B CN 201710496408 A CN201710496408 A CN 201710496408A CN 107330035 B CN107330035 B CN 107330035B
Authority
CN
China
Prior art keywords
database
redis cluster
operation log
log
write
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.)
Expired - Fee Related
Application number
CN201710496408.6A
Other languages
Chinese (zh)
Other versions
CN107330035A (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.)
Ningbo Turing Qidian Intelligent Technology Co ltd
Original Assignee
Ningbo Turing Qidian Intelligent 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 Ningbo Turing Qidian Intelligent Technology Co Ltd filed Critical Ningbo Turing Qidian Intelligent Technology Co Ltd
Priority to CN201710496408.6A priority Critical patent/CN107330035B/en
Publication of CN107330035A publication Critical patent/CN107330035A/en
Application granted granted Critical
Publication of CN107330035B publication Critical patent/CN107330035B/en
Expired - Fee Related 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/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Abstract

The invention discloses a method for synchronizing operation logs in a database, which comprises the steps of storing the operation logs of a main database into a Redis cluster; reading the operation log from the Redis cluster; and analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases. The invention also discloses a mobile terminal and a computer readable storage medium, which solve the problems of low efficiency in data synchronization of asynchronous replication and semi-synchronous replication in the related technology, and the operation logs in the master database are synchronized into the Redis cluster, the operation logs of the master database are uniformly read from the Redis cluster from the database, the writing operation in the logs is analyzed, and the writing operation is synchronized into the own database, so that the data synchronization is realized, the synchronization efficiency is improved, and the user experience is improved.

Description

Operation log synchronization method in database, mobile terminal and computer readable storage medium
Technical Field
The present invention relates to the field of mobile communications technologies, and in particular, to a method for synchronizing operation logs in a database, a mobile terminal, and a computer-readable storage medium.
Background
Along with the development of the internet and the popularization of the terminal, the user group of the terminal is larger and larger, and meanwhile, more intelligent and humanized requirements are provided for software.
In the prior art, a real terminal is used as a game machine or a television by a user, possibly a learning machine, possibly a playground of a baby and the like, so that more fun is brought to the life of people. With the upgrading of communication products, mobile terminals (such as mobile phones, Personal Digital Assistants (PDAs), etc.) have become a necessary communication tool for people. Various functions which are convenient for people to live can be realized on the mobile terminal, such as mobile phone television, GPS, mobile payment and the like, and the functions can be realized only by accessing the mobile terminal to the Internet.
Along with the rapid development of the electronic industry, the intelligent degree of the mobile terminal is higher and higher. Research and development companies of mobile terminals also pay more and more attention to intellectualization and humanized design. Under the background of rapid development of the mobile terminal, the convenient operation and humanized design of the terminal become a part of the mobile terminal which is not ignored.
MySQ L is a small-scale relational database management system of open source code, the developer is MySQ L AB company of Sweden, MySQ L is widely applied to small and medium-sized websites on the Internet at present, MySQ L is selected as a website database for reducing the total ownership cost of the website due to the characteristics of small size, high speed and low total ownership cost, especially the open source code, account numbers and systems related to key services such as finance and the like require highly available and highly consistent databases, most of the systems are traditional MySQ L master-slave databases, and the high availability and the high consistency are realized through the master-slave databases.
The related technology has the problems that when a machine is damaged, a network fails or master-slave switching is carried out, the traditional MySQ L master-slave cannot ensure high availability and high consistency, the efficiency is low when data is synchronized due to asynchronous replication and semi-synchronous replication in the traditional scheme, the user payment problem caused by data inconsistency occurs, and great difficulty is caused when the problem reason is searched.
Aiming at the problem that the efficiency is low when data is synchronized in asynchronous replication and semi-synchronous replication in the related technology, no solution is provided at present.
Disclosure of Invention
The invention mainly aims to provide a method for synchronizing operation logs in a database, a mobile terminal and a computer readable storage medium, and aims to solve the problem that the efficiency is low when data is synchronized due to asynchronous replication and semi-synchronous replication in the related technology.
In order to achieve the above object, an embodiment of the present invention provides a method for synchronizing operation logs in a database, including:
storing the operation log of the main database into a Redis cluster;
reading the operation log from the Redis cluster;
and analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases.
Preferably, storing the oplog of the master database into the Redis cluster comprises:
and storing each operation log in a Set of the Redis cluster, and marking whether each operation log is synchronized with one or more servers of the slave database or not through a flag bit.
Preferably, the method further comprises:
the method comprises the steps of storing operation logs of a main database into a Redis cluster, and synchronously saving the operation logs on a server of the main database.
Preferably, after parsing the write operations in the operation log and synchronizing the write operations to the one or more slave databases, the method further comprises:
regularly checking whether the operation logs saved on the server of the main database are consistent with the operation logs on the Redis cluster;
synchronizing the oplogs saved on the servers of the master database to the Redis cluster if the oplogs saved on the servers of the master database are inconsistent with the oplogs on the Redis cluster.
Preferably, after parsing the write operations in the operation log and synchronizing the write operations to the one or more slave databases, the method further comprises:
receiving a read-write request message for reading and writing data in the main database;
intercepting the read-write request message through an increased route;
acquiring the address information of the current main database through the route;
and forwarding the intercepted read-write request message to the current main database according to the address information.
Preferably, after parsing the write operations in the operation log and synchronizing the write operations to the one or more slave databases, the method further comprises:
monitoring, by an agent on a server of the master database, whether the master database is normally serviced;
if the service is normal, the lease of the main database as the main database is prolonged regularly;
if the service is abnormal, the lease is determined to be expired.
Preferably, after monitoring whether the master database is normally serviced by an agent on a server of the master database, the method further comprises:
monitoring, by an agent on a server of the one or more slave databases, whether a lease of the master database expires;
checking whether the plurality of slave databases are consistent with the oplogs on the Redis cluster in case that the lease of the master database is monitored to expire;
if the data is consistent, receiving the votes of the one or more election main databases initiated from the databases through the general agent;
and determining one slave database as a new master database from the plurality of slave databases according to the PaxOS algorithm.
According to another aspect of the embodiments of the present invention, there is also provided a mobile terminal, including a processor, a memory, and a communication bus;
the communication bus is used for realizing connection communication between the processor and the memory;
the processor is used for executing an operation log synchronization program in a database stored in the memory so as to realize the following steps:
storing the operation log of the main database into a Redis cluster;
reading the operation log from the Redis cluster;
and analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases.
Preferably, the processor is further configured to execute an oplog synchronization program in the database to implement the following steps:
and storing each operation log in a Set of the Redis cluster, and marking whether each operation log is synchronized with one or more servers of the slave database or not through a flag bit.
Preferably, the processor is further configured to execute an oplog synchronization program in the database to implement the following steps:
the method comprises the steps of storing operation logs of a main database into a Redis cluster, and synchronously saving the operation logs on a server of the main database.
Preferably, the processor is further configured to execute an oplog synchronization program in the database to implement the following steps:
after analyzing the write operation in the operation log and synchronizing the write operation to the one or more slave databases, periodically checking whether the operation log saved on the server of the master database is consistent with the operation log on the Redis cluster;
synchronizing the oplogs saved on the servers of the master database to the Redis cluster if the oplogs saved on the servers of the master database are inconsistent with the oplogs on the Redis cluster.
Preferably, the processor is further configured to execute an oplog synchronization program in the database to implement the following steps:
after the write operation in the operation log is analyzed and synchronized to the one or more slave databases, receiving a read-write request message for reading and writing data in the master database;
intercepting the read-write request message through an increased route;
acquiring the address information of the current main database through the route;
and forwarding the intercepted read-write request message to the current main database according to the address information.
Preferably, the processor is further configured to execute an oplog synchronization program in the database to implement the following steps:
monitoring, by an agent on a server of the master database, whether the master database is normally serviced after parsing write operations in the oplog, synchronizing the write operations to the one or more slave databases;
if the service is normal, the lease of the main database as the main database is prolonged regularly;
if the service is abnormal, the lease is determined to be expired.
Preferably, the processor is further configured to execute an oplog synchronization program in the database to implement the following steps:
monitoring, by an agent on a server of the one or more slave databases, whether a lease of the master database has expired after monitoring, by an agent on a server of the master database, whether the master database is normally serviced;
checking whether the plurality of slave databases are consistent with the oplogs on the Redis cluster in case that the lease of the master database is monitored to expire;
if the data is consistent, receiving the votes of the one or more election main databases initiated from the databases through the general agent;
and determining one slave database as a new master database from the plurality of slave databases according to the PaxOS algorithm.
According to another aspect of the embodiments of the present invention, there is also provided a computer-readable storage medium storing one or more programs, which are executable by one or more processors, to implement the steps of the operation log synchronization method in the database.
By the method and the device, the operation log of the main database is stored in the Redis cluster; reading the operation log from the Redis cluster; the write operation in the operation log is analyzed, the write operation is synchronized to one or more slave databases, the problem that the efficiency is low in data synchronization due to asynchronous replication and semi-synchronous replication in the related technology is solved, the operation log in the master database is synchronized to the Redis cluster, the slave databases uniformly read the operation log of the master database from the Redis cluster, the write operation in the log is analyzed, and the write operation is synchronized to the own database, so that the data synchronization is realized, the synchronization efficiency is improved, and the user experience is improved.
Drawings
Fig. 1 is a schematic diagram of a hardware structure of an optional mobile terminal for implementing various embodiments of the present invention;
FIG. 2 is a diagram of a wireless communication system for the mobile terminal shown in FIG. 1;
FIG. 3 is a flow chart of a method for synchronization of oplogs in a database according to an embodiment of the present invention;
FIG. 4 is a schematic diagram of oplog synchronization in a database, according to an embodiment of the invention;
FIG. 5 is a flow diagram of oplog synchronization in a database according to an embodiment of the invention;
FIG. 6 is a diagram of oplog synchronization in a database in accordance with a preferred embodiment of the present invention;
fig. 7 is a block diagram of a mobile terminal synchronizing operation logs in accordance with a preferred embodiment of the present invention.
The implementation, functional features and advantages of the objects of the present invention will be further explained with reference to the accompanying drawings.
Detailed Description
It should be understood that the specific embodiments described herein are merely illustrative of the invention and are not intended to limit the invention.
In the following description, suffixes such as "module", "component", or "unit" used to denote elements are used only for facilitating the explanation of the present invention, and have no specific meaning in itself. Thus, "module", "component" or "unit" may be used mixedly.
The terminal may be implemented in various forms. For example, the terminal described in the present invention may include a mobile terminal such as a mobile phone, a tablet computer, a notebook computer, a palmtop computer, a Personal Digital Assistant (PDA), a Portable Media Player (PMP), a navigation device, a wearable device, a smart band, a pedometer, and the like, and a fixed terminal such as a Digital TV, a desktop computer, and the like.
The following description will be given by way of example of a mobile terminal, and it will be understood by those skilled in the art that the construction according to the embodiment of the present invention can be applied to a fixed type terminal, in addition to elements particularly used for mobile purposes.
Referring to fig. 1, which is a schematic diagram of a hardware structure of a mobile terminal for implementing various embodiments of the present invention, the mobile terminal 100 may include: RF (Radio Frequency) unit 101, WiFi module 102, audio output unit 103, a/V (audio/video) input unit 104, sensor 105, display unit 106, user input unit 107, interface unit 108, memory 109, processor 110, and power supply 111. Those skilled in the art will appreciate that the mobile terminal architecture shown in fig. 1 is not intended to be limiting of mobile terminals, which may include more or fewer components than those shown, or some components may be combined, or a different arrangement of components.
The following describes each component of the mobile terminal in detail with reference to fig. 1:
the Radio Frequency unit 101 may be configured to receive and transmit signals during a message transmission or call, specifically, receive downlink information of a base station and then process the received downlink information to the processor 110, and transmit uplink data to the base station, in General, the Radio Frequency unit 101 includes, but is not limited to, an antenna, at least one amplifier, a transceiver, a coupler, a low noise amplifier, a duplexer, and the like, and in addition, the Radio Frequency unit 101 may further communicate with a network and other devices through wireless communication, and the wireless communication may use any communication standard or protocol, including, but not limited to, GSM (Global System of Mobile communication), GPRS (General Packet Radio Service), CDMA2000(Code Division Multiple Access 2000), WCDMA (Wideband Code Division Multiple Access ), TD-SCDMA (Synchronous Time Division Multiple Access, Code Division Multiple Access, Time Division Multiple Access, etc., TDD — Time Division Multiple Access, L Time Division Multiple Access, etc.
WiFi belongs to short-distance wireless transmission technology, and the mobile terminal can help a user to receive and send e-mails, browse webpages, access streaming media and the like through the WiFi module 102, and provides wireless broadband internet access for the user. Although fig. 1 shows the WiFi module 102, it is understood that it does not belong to the essential constitution of the mobile terminal, and may be omitted entirely as needed within the scope not changing the essence of the invention.
The audio output unit 103 may convert audio data received by the radio frequency unit 101 or the WiFi module 102 or stored in the memory 109 into an audio signal and output as sound when the mobile terminal 100 is in a call signal reception mode, a call mode, a recording mode, a voice recognition mode, a broadcast reception mode, or the like. Also, the audio output unit 103 may also provide audio output related to a specific function performed by the mobile terminal 100 (e.g., a call signal reception sound, a message reception sound, etc.). The audio output unit 103 may include a speaker, a buzzer, and the like.
The a/V input unit 104 is used to receive audio or video signals. The a/V input Unit 104 may include a Graphics Processing Unit (GPU) 1041 and a microphone 1042, the Graphics processor 1041 Processing image data of still pictures or video obtained by an image capturing device (e.g., a camera) in a video capturing mode or an image capturing mode. The processed image frames may be displayed on the display unit 106. The image frames processed by the graphic processor 1041 may be stored in the memory 109 (or other storage medium) or transmitted via the radio frequency unit 101 or the WiFi module 102. The microphone 1042 may receive sounds (audio data) via the microphone 1042 in a phone call mode, a recording mode, a voice recognition mode, or the like, and may be capable of processing such sounds into audio data. The processed audio (voice) data may be converted into a format output transmittable to a mobile communication base station via the radio frequency unit 101 in case of a phone call mode. The microphone 1042 may implement various types of noise cancellation (or suppression) algorithms to cancel (or suppress) noise or interference generated in the course of receiving and transmitting audio signals.
The mobile terminal 100 also includes at least one sensor 105, such as a light sensor, a motion sensor, and other sensors. Specifically, the light sensor includes an ambient light sensor that can adjust the brightness of the display panel 1061 according to the brightness of ambient light, and a proximity sensor that can turn off the display panel 1061 and/or a backlight when the mobile terminal 100 is moved to the ear. As one of the motion sensors, the accelerometer sensor can detect the magnitude of acceleration in each direction (generally, three axes), can detect the magnitude and direction of gravity when stationary, and can be used for applications of recognizing the posture of a mobile phone (such as horizontal and vertical screen switching, related games, magnetometer posture calibration), vibration recognition related functions (such as pedometer and tapping), and the like; as for other sensors such as a fingerprint sensor, a pressure sensor, an iris sensor, a molecular sensor, a gyroscope, a barometer, a hygrometer, a thermometer, and an infrared sensor, which can be configured on the mobile phone, further description is omitted here.
The Display unit 106 may include a Display panel 1061, and the Display panel 1061 may be configured in the form of a liquid Crystal Display (L acquired Crystal Display, L CD), an Organic light-Emitting Diode (O L ED), or the like.
The user input unit 107 may be used to receive input numeric or character information and generate key signal inputs related to user settings and function control of the mobile terminal. Specifically, the user input unit 107 may include a touch panel 1071 and other input devices 1072. The touch panel 1071, also referred to as a touch screen, may collect a touch operation performed by a user on or near the touch panel 1071 (e.g., an operation performed by the user on or near the touch panel 1071 using a finger, a stylus, or any other suitable object or accessory), and drive a corresponding connection device according to a predetermined program. The touch panel 1071 may include two parts of a touch detection device and a touch controller. The touch detection device detects the touch direction of a user, detects a signal brought by touch operation and transmits the signal to the touch controller; the touch controller receives touch information from the touch sensing device, converts the touch information into touch point coordinates, sends the touch point coordinates to the processor 110, and can receive and execute commands sent by the processor 110. In addition, the touch panel 1071 may be implemented in various types, such as a resistive type, a capacitive type, an infrared ray, and a surface acoustic wave. In addition to the touch panel 1071, the user input unit 107 may include other input devices 1072. In particular, other input devices 1072 may include, but are not limited to, one or more of a physical keyboard, function keys (e.g., volume control keys, switch keys, etc.), a trackball, a mouse, a joystick, and the like, and are not limited to these specific examples.
Further, the touch panel 1071 may cover the display panel 1061, and when the touch panel 1071 detects a touch operation thereon or nearby, the touch panel 1071 transmits the touch operation to the processor 110 to determine the type of the touch event, and then the processor 110 provides a corresponding visual output on the display panel 1061 according to the type of the touch event. Although the touch panel 1071 and the display panel 1061 are shown in fig. 1 as two separate components to implement the input and output functions of the mobile terminal, in some embodiments, the touch panel 1071 and the display panel 1061 may be integrated to implement the input and output functions of the mobile terminal, and is not limited herein.
The interface unit 108 serves as an interface through which at least one external device is connected to the mobile terminal 100. For example, the external device may include a wired or wireless headset port, an external power supply (or battery charger) port, a wired or wireless data port, a memory card port, a port for connecting a device having an identification module, an audio input/output (I/O) port, a video I/O port, an earphone port, and the like. The interface unit 108 may be used to receive input (e.g., data information, power, etc.) from external devices and transmit the received input to one or more elements within the mobile terminal 100 or may be used to transmit data between the mobile terminal 100 and external devices.
The memory 109 may be used to store software programs as well as various data. The memory 109 may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required by at least one function (such as a sound playing function, an image playing function, etc.), and the like; the storage data area may store data (such as audio data, a phonebook, etc.) created according to the use of the cellular phone, and the like. Further, the memory 109 may include high speed random access memory, and may also include non-volatile memory, such as at least one magnetic disk storage device, flash memory device, or other volatile solid state storage device.
The processor 110 is a control center of the mobile terminal, connects various parts of the entire mobile terminal using various interfaces and lines, and performs various functions of the mobile terminal and processes data by operating or executing software programs and/or modules stored in the memory 109 and calling data stored in the memory 109, thereby performing overall monitoring of the mobile terminal. Processor 110 may include one or more processing units; preferably, the processor 110 may integrate an application processor, which mainly handles operating systems, user interfaces, application programs, etc., and a modem processor, which mainly handles wireless communications. It will be appreciated that the modem processor described above may not be integrated into the processor 110.
The mobile terminal 100 may further include a power supply 111 (e.g., a battery) for supplying power to various components, and preferably, the power supply 111 may be logically connected to the processor 110 via a power management system, so as to manage charging, discharging, and power consumption management functions via the power management system.
Although not shown in fig. 1, the mobile terminal 100 may further include a bluetooth module or the like, which is not described in detail herein.
In order to facilitate understanding of the embodiments of the present invention, a communication network system on which the mobile terminal of the present invention is based is described below.
Referring to fig. 2, fig. 2 is an architecture diagram of a communication Network system according to an embodiment of the present invention, the communication Network system is L TE system of universal mobile telecommunications technology, and the L TE system includes a UE (User Equipment) 201, an E-UTRAN (Evolved UMTS Terrestrial Radio Access Network) 202, an EPC (Evolved Packet Core) 203, and an IP service 204 of an operator, which are in communication connection in sequence.
Specifically, the UE201 may be the terminal 100 described above, and is not described herein again.
The E-UTRAN202 includes eNodeB2021 and other eNodeBs 2022, among others. Among them, the eNodeB2021 may be connected with other eNodeB2022 through backhaul (e.g., X2 interface), the eNodeB2021 is connected to the EPC203, and the eNodeB2021 may provide the UE201 access to the EPC 203.
The EPC203 may include an MME (Mobility Management Entity) 2031, an HSS (Home Subscriber Server) 2032, other MMEs 2033, an SGW (Serving gateway) 2034, a PGW (PDN gateway) 2035, and a PCRF (Policy and charging functions Entity) 2036, and the like. The MME2031 is a control node that handles signaling between the UE201 and the EPC203, and provides bearer and connection management. HSS2032 is used to provide registers to manage functions such as home location register (not shown) and holds subscriber specific information about service characteristics, data rates, etc. All user data may be sent through SGW2034, PGW2035 may provide IP address assignment for UE201 and other functions, and PCRF2036 is a policy and charging control policy decision point for traffic data flow and IP bearer resources, which selects and provides available policy and charging control decisions for a policy and charging enforcement function (not shown).
The IP services 204 may include the internet, intranets, IMS (IP Multimedia Subsystem), or other IP services, among others.
Although L TE system is described as an example, it should be understood by those skilled in the art that the present invention is not limited to L TE system, but also applicable to other wireless communication systems, such as GSM, CDMA2000, WCDMA, TD-SCDMA, and future new network systems.
Based on the above mobile terminal hardware structure and communication network system, the present invention provides various embodiments of the method.
Example 1
Based on the foregoing mobile terminal, an embodiment of the present invention provides a method for synchronizing an operation log in a database, where fig. 3 is a first flowchart of the method for synchronizing an operation log in a database according to the embodiment of the present invention, and as shown in fig. 3, the method includes the following steps:
step S301, storing the operation log of the master database into a Redis cluster;
step S302, reading the operation log from the Redis cluster;
step S303, analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases.
Through the steps, storing the operation log of the main database into the Redis cluster; reading the operation log from the Redis cluster; the write operation in the operation log is analyzed, the write operation is synchronized to one or more slave databases, the problem that the efficiency is low in data synchronization due to asynchronous replication and semi-synchronous replication in the related technology is solved, the operation log in the master database is synchronized to the Redis cluster, the slave databases uniformly read the operation log of the master database from the Redis cluster, the write operation in the log is analyzed, and the write operation is synchronized to the own database, so that the data synchronization is realized, the synchronization efficiency is improved, and the user experience is improved.
In an alternative embodiment, the step S301 further includes: the Redis cluster receives log information sent by a master database, wherein the log information is used for representing data modification operation in the master database. The updating operation of the master database needs to be updated to the Redis cluster, specifically, the modification operation of the master database is recorded as log information, and the synchronization operation of the Redis cluster is completed on the Redis cluster in a way of re-executing the log information. Therefore, firstly, the log information sent by the master database is received, and the log information is used for representing the data modification operation in the master database, and after the log information sent by the master database is received by the Redis cluster, the log information can be put into a buffer area of the Redis cluster.
The type of the data modification operation comprises three types of deletion, insertion and update, so that the Redis cluster comprises a corresponding statement template, the statement template comprises 3 Structured Query language (sql) statements, the 3 sql statements are respectively used for realizing functions of deletion, insertion and update, in the process of starting the Redis cluster, the 3 sql statements included in the statement template are compiled and analyzed, and after the Redis cluster acquires the type and the parameters of the data modification operation, the acquired parameters of the data modification operation are bound to the statement template corresponding to the type of the data modification operation to generate the data modification operation statement, wherein the form of the data modification operation statement is the 3 sql statements, the type of the data modification operation comprises the names of the deletion, insertion and modification, and the names of the corresponding statements in the data modification operation table, the names of the corresponding statements in the data modification table, and the like.
Optionally, the method for generating a statement of a data modification operation includes the steps of binding parameters of the obtained data modification operation to a statement template corresponding to the type of the data modification operation, and before generating the statement of the data modification operation, further: and generating a statement template, so that when the statement of the data modification operation is executed, only the parameters of the obtained data modification operation are bound to the statement template for execution.
And running the data modification operation statement to complete the modification of the data in the same storage position in the Redis cluster. And when the Redis cluster binds the acquired parameters of the data modification operation to the corresponding statement template to generate a data modification operation statement, operating the data modification operation statement to complete the modification of the data at the same storage position in the Redis cluster. Wherein the same storage location refers to that the data in the master database has the same table entry identifier and field identifier as the data corresponding to the Redis cluster.
Further, the data modification operation statement is added to a statement group. The Redis cluster binds the acquired parameters of the data modification operation to the statement template corresponding to the type of the data modification operation to generate data modification operation statements, and the Redis cluster can set statement groups because a large number of data modification operation statements may exist according to log information. Firstly, determining the type of the data modification operation statement, and adding the data modification operation statement to a corresponding statement group according to the type of the data modification operation statement. Specifically, the data modification operation statements may be classified and added to the corresponding statement group according to the classification, where the classification manner may be: the data modification operation statements of the same type are put into the same statement group, and can be of different types, and the classification mode is not limited here. Adding the data modification operation statement to the statement group may be implemented by a gm _ execute _ add function. Optionally, when the Redis cluster is started, the Redis cluster applies for the statement group through an application function. Before executing the data modification operation statement, the Redis cluster firstly applies for a statement group through an application function. Wherein the application function may be a gm _ alloc _ group function.
And when the statement quantity of the statement group reaches a preset value, operating the statement group to finish modifying the data at the same storage position in the Redis cluster. The preset value is set for each statement group, so that data modification operation statements included in the statement group are limited, and the synchronization efficiency of the master database and the Redis cluster is effectively improved.
In the embodiment of the invention, the Redis cluster receives the log information sent by the main database, acquires the type and the parameters of the data modification operation in the log information, binds the acquired parameters of the data modification operation to the statement template corresponding to the type of the data modification operation to generate the data modification operation statement, and runs the data modification operation statement to complete the modification of the data at the same storage position in the Redis cluster. Thereby improving the efficiency of database synchronization.
In another optional embodiment, the step S301 of storing the operation log of the master database in the Redis cluster may further include: and storing each operation log in a Set of the Redis cluster, and marking whether each operation log is synchronized with one or more servers of the slave database or not through a flag bit.
Preferably, the operation logs of the master database are synchronously saved on the servers of the master database while being stored in the Redis cluster.
After parsing write operations in the oplogs and synchronizing the write operations to the one or more slave databases, the method further comprises periodically updating the oplogs in the Redis cluster, periodically checking whether the oplogs saved on the servers of the master database are consistent with the oplogs on the Redis cluster; synchronizing the oplogs saved on the servers of the master database to the Redis cluster if the oplogs saved on the servers of the master database are inconsistent with the oplogs on the Redis cluster.
In this embodiment, after parsing the write operations in the operation log and synchronizing the write operations to the one or more slave databases, the method further includes: receiving a read-write request message for reading and writing data in the main database; intercepting the read-write request message through an increased route; acquiring the address information of the current main database through the route; and forwarding the intercepted read-write request message to the current main database according to the address information.
In this embodiment, after parsing the write operations in the oplog and synchronizing the write operations to the one or more slave databases, the method further comprises detecting whether a master database needs to be replaced, monitoring whether the master database is normally serviced by an agent on a server of the master database; if the service is normal, the lease of the main database as the main database is prolonged regularly; if the service is abnormal, the lease is determined to be expired.
In this embodiment, after monitoring whether the master database is normally serviced by an agent on a server of the master database, the method further comprises: monitoring, by an agent on a server of the one or more slave databases, whether a lease of the master database expires; checking whether the plurality of slave databases are consistent with the oplogs on the Redis cluster in case that the lease of the master database is monitored to expire; if the data is consistent, receiving the votes of the one or more election main databases initiated from the databases through the general agent; and determining one slave database as a new master database from the plurality of slave databases according to the PaxOS algorithm.
The source code of the MySQ L is not modified, and only certain interface methods are inherited on the basis of the source code of the MySQ L for expansion, so that the system using the MySQ L originally can be switched without cost, and the maintenance of operation and maintenance personnel is facilitated.
The MySQ L writes operation logs into Bin L og during data operation, rewrites the log storage interface to change the logs to be stored into a Redis cluster with high availability and high consistency by utilizing the characteristic, firstly, a Set of reliable log storage is ensured, then, the database cluster uniformly reads the operation logs of a master database from the Redis cluster, analyzes the write operation in the logs, synchronizes the write operation into the own database, thereby realizing the synchronization of the data, each log is stored in a Set of the Redis cluster, and marks whether the log is synchronized with a certain database server or not through a flag bit, for example, a distributed system has 6 flags, and independently maintains 6 flags, because the Redis cluster reads data very quickly, the master database and the database are further ensured to be consistent according to the operation log of the master database, and the operation log of the master database is further ensured according to the following steps:
step S401, a main database initiates write operation;
step S402, writing the log into a local server and writing the log into a Redis cluster;
step S403, the Redis log cluster saves the log of the main database;
step S404, whether each log of the main database is consistent with the log stored in the Redis log cluster or not is judged;
step S405, if the log clusters are inconsistent, reading the Redis log cluster, and acquiring the logs which are not synchronized;
step S406, the master database returns the unsynchronized logs to the Redis log cluster;
step S407, reading logs from the Redis log cluster from the database;
step S408, analyzing the writing operation from the read log from the database;
step S409, completing the write operation to realize data synchronization;
step S410, submitting synchronous confirmation from a database;
step S411, the Redis log cluster informs the master database of completing log synchronization;
step S412, the master database submits synchronous confirmation;
in step S413, the Redis log cluster records the synchronization mark of the server of the slave database.
In order to not modify the original code of MySQ L and solve the problem, a routing layer is added on the access layer of MySQ L, a database request from the system does not directly access the database, but accesses the routing first, and the request is guided to a new master database by a proxy agent, FIG. 5 is a flow chart of operation log synchronization in the database according to the embodiment of the invention, as shown in FIG. 5, and the method specifically comprises the following steps:
step S501, receiving a read-write request;
step S502, intercepting the read-write request through a route;
step S503, acquiring the address information of the current latest main database through the route;
step S504, loading the read-write request into the latest master database according to the address information.
The scheme is based on PaxOS algorithm, and the selection of the master database is carried out in a multi-machine voting mode, in order to not modify source codes of MySQ L, a set of proxy mechanisms are implemented in the distributed database, and the proxy initiates the selection of the master vote and the renewal of the master database.
The agent on the main database server monitors whether the main database is normally served, if the main database is normally served, the lease of the main database is periodically prolonged, and if the main database is abnormally served, the lease expires; and each slave database server is also provided with an agent which can monitor whether the lease of the master database is due or not, check whether the lease is consistent with the logs on the Redis cluster or not once the lease is due, and initiate voting to select the master database. After receiving the vote, the head office agent decides who to act as the new master database according to the PaxOS algorithm. By this mechanism, high availability and consistency of the distributed database are guaranteed.
FIG. 6 is a diagram of operation log synchronization in a database, according to the preferred embodiment of the present invention, as shown in FIG. 6, including the following steps:
step S601, starting an agent of a server of a main database for monitoring;
step S602, monitoring whether the service of the main database is normal, and if so, prolonging the lease;
step S603, if the log is abnormal, the lease is stopped, and a stop message is written into the Redis log cluster;
step S604, informing each slave database of the stop message by the Redis log cluster;
step S605, each slave database detects whether the local log is consistent with the log in the Redis log cluster;
step S606, if they are consistent, initiating voting to select itself as new main database;
step S607, receiving votes of each slave database by the Redis log cluster, and determining the latest master database according to the paxOS algorithm;
step 608, the message of the latest master database determined by the Redis log cluster is notified to the slave database successfully selected by the election, the selected slave database declares that the slave database is the new master database, and the master-slave switching is completed.
The processing is carried out based on a Redis memory database in the embodiment of the invention, the Redis is an open source log-type and Key-Value database which is written by using ANSI C language, supports network, can be based on memory and can also be persistent, and provides API of multiple languages.
According to another aspect of the embodiments of the present invention, there is also provided a mobile terminal, and fig. 7 is a block diagram of a mobile terminal for synchronizing oplogs according to a preferred embodiment of the present invention, as shown in fig. 7, the mobile terminal including a processor, a memory, and a communication bus;
the communication bus is used for realizing connection communication between the processor and the memory;
the processor is used for executing an operation log synchronization program in a database stored in the memory so as to realize the following steps:
storing the operation log of the main database into a Redis cluster;
reading the operation log from the Redis cluster;
and analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases.
In this embodiment, the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
and storing each operation log in a Set of the Redis cluster, and marking whether each operation log is synchronized with one or more servers of the slave database or not through a flag bit.
In this embodiment, the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
the method comprises the steps of storing operation logs of a main database into a Redis cluster, and synchronously saving the operation logs on a server of the main database.
In this embodiment, the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
after analyzing the write operation in the operation log and synchronizing the write operation to the one or more slave databases, periodically checking whether the operation log saved on the server of the master database is consistent with the operation log on the Redis cluster;
synchronizing the oplogs saved on the servers of the master database to the Redis cluster if the oplogs saved on the servers of the master database are inconsistent with the oplogs on the Redis cluster.
In this embodiment, the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
after the write operation in the operation log is analyzed and synchronized to the one or more slave databases, receiving a read-write request message for reading and writing data in the master database;
intercepting the read-write request message through an increased route;
acquiring the address information of the current main database through the route;
and forwarding the intercepted read-write request message to the current main database according to the address information.
In this embodiment, the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
monitoring, by an agent on a server of the master database, whether the master database is normally serviced after parsing write operations in the oplog, synchronizing the write operations to the one or more slave databases;
if the service is normal, the lease of the main database as the main database is prolonged regularly;
if the service is abnormal, the lease is determined to be expired.
In this embodiment, the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
monitoring, by an agent on a server of the one or more slave databases, whether a lease of the master database has expired after monitoring, by an agent on a server of the master database, whether the master database is normally serviced;
checking whether the plurality of slave databases are consistent with the oplogs on the Redis cluster in case that the lease of the master database is monitored to expire;
if the data is consistent, receiving the votes of the one or more election main databases initiated from the databases through the general agent;
and determining one slave database as a new master database from the plurality of slave databases according to the PaxOS algorithm.
According to another aspect of the embodiments of the present invention, there is also provided a computer-readable storage medium storing one or more programs, which are executable by one or more processors, to implement the steps of the operation log synchronization method in the database.
In the embodiment of the invention, the operation log of the main database is stored in the Redis cluster; reading the operation log from the Redis cluster; the write operation in the operation log is analyzed, the write operation is synchronized to one or more slave databases, the problem that the efficiency is low in data synchronization due to asynchronous replication and semi-synchronous replication in the related technology is solved, the operation log in the master database is synchronized to the Redis cluster, the slave databases uniformly read the operation log of the master database from the Redis cluster, the write operation in the log is analyzed, and the write operation is synchronized to the own database, so that the data synchronization is realized, the synchronization efficiency is improved, and the user experience is improved.
It should be noted that, in this document, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
The above-mentioned serial numbers of the embodiments of the present invention are merely for description and do not represent the merits of the embodiments.
Through the above description of the embodiments, those skilled in the art will clearly understand that the method of the above embodiments can be implemented by software plus a necessary general hardware platform, and certainly can also be implemented by hardware, but in many cases, the former is a better implementation manner. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a storage medium (such as ROM/RAM, magnetic disk, optical disk) and includes instructions for enabling a terminal (such as a mobile phone, a computer, a server, an air conditioner, or a network device) to execute the method according to the embodiments of the present invention.
While the present invention has been described with reference to the embodiments shown in the drawings, the present invention is not limited to the embodiments, which are illustrative and not restrictive, and it will be apparent to those skilled in the art that various changes and modifications can be made therein without departing from the spirit and scope of the invention as defined in the appended claims.

Claims (9)

1. A method for synchronizing operation logs in a database is characterized by comprising the following steps:
storing the operation log of the main database into a Redis cluster;
reading the operation log from the Redis cluster;
analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases;
after parsing write operations in the oplog and synchronizing the write operations to the one or more slave databases, the method further comprises:
receiving a read-write request message for reading and writing data in the main database;
intercepting the read-write request message through an increased route;
acquiring the address information of the current main database through the route;
and forwarding the intercepted read-write request message to the current main database according to the address information.
2. The method of claim 1, wherein the step of storing the oplog of the master database in the Redis cluster comprises:
and storing each operation log in a Set of the Redis cluster, and marking whether each operation log is synchronized with one or more servers of the slave database or not through a flag bit.
3. The method of claim 1, further comprising:
the method comprises the steps of storing operation logs of a main database into a Redis cluster, and synchronously saving the operation logs on a server of the main database.
4. The method of claim 3, wherein after parsing write operations in the oplog and synchronizing the write operations to the one or more slave databases, the method further comprises:
regularly checking whether the operation logs saved on the server of the main database are consistent with the operation logs on the Redis cluster;
synchronizing the oplogs saved on the servers of the master database to the Redis cluster if the oplogs saved on the servers of the master database are inconsistent with the oplogs on the Redis cluster.
5. The method of claim 1, wherein after parsing write operations in the oplog and synchronizing the write operations to the one or more slave databases, the method further comprises:
monitoring, by an agent on a server of the master database, whether the master database is normally serviced;
if the service is normal, the lease of the main database as the main database is prolonged regularly;
if the service is abnormal, the lease is determined to be expired.
6. The method of claim 5, wherein after monitoring whether the master database is normally serviced by an agent on a server of the master database, the method further comprises:
monitoring, by an agent on a server of the one or more slave databases, whether a lease of the master database expires;
checking whether the plurality of slave databases are consistent with the oplogs on the Redis cluster in case that the lease of the master database is monitored to expire;
if the data is consistent, receiving the votes of the one or more election main databases initiated from the databases through the general agent;
and determining one slave database as a new master database from the plurality of slave databases according to the PaxOS algorithm.
7. A mobile terminal, characterized in that the mobile terminal comprises a processor, a memory and a communication bus;
the communication bus is used for realizing connection communication between the processor and the memory;
the processor is used for executing an operation log synchronization program in a database stored in the memory so as to realize the following steps:
storing the operation log of the main database into a Redis cluster;
reading the operation log from the Redis cluster;
analyzing the write operation in the operation log, and synchronizing the write operation to one or more slave databases;
after parsing write operations in the oplog and synchronizing the write operations to the one or more slave databases, the processor further implements the steps of:
receiving a read-write request message for reading and writing data in the main database;
intercepting the read-write request message through an increased route;
acquiring the address information of the current main database through the route;
and forwarding the intercepted read-write request message to the current main database according to the address information.
8. The mobile terminal of claim 7, wherein the processor is further configured to execute an oplog synchronization program in a database to implement the following steps:
and storing each operation log in a Set of the Redis cluster, and marking whether each operation log is synchronized with one or more servers of the slave database or not through a flag bit.
9. A computer-readable storage medium storing one or more programs, the one or more programs being executable by one or more processors to perform the steps of the method for synchronization of oplogs in a database according to any one of claims 1-6.
CN201710496408.6A 2017-06-26 2017-06-26 Operation log synchronization method in database, mobile terminal and computer readable storage medium Expired - Fee Related CN107330035B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710496408.6A CN107330035B (en) 2017-06-26 2017-06-26 Operation log synchronization method in database, mobile terminal and computer readable storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710496408.6A CN107330035B (en) 2017-06-26 2017-06-26 Operation log synchronization method in database, mobile terminal and computer readable storage medium

Publications (2)

Publication Number Publication Date
CN107330035A CN107330035A (en) 2017-11-07
CN107330035B true CN107330035B (en) 2020-08-07

Family

ID=60197763

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710496408.6A Expired - Fee Related CN107330035B (en) 2017-06-26 2017-06-26 Operation log synchronization method in database, mobile terminal and computer readable storage medium

Country Status (1)

Country Link
CN (1) CN107330035B (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110232053B (en) * 2017-12-05 2024-02-02 华为技术有限公司 Log processing method, related equipment and system
CN107995302B (en) * 2017-12-11 2021-04-13 北京恒华伟业科技股份有限公司 Data synchronization system
CN110019484B (en) * 2018-01-04 2023-06-02 腾讯科技(深圳)有限公司 Database system, implementation method, management device, data interface device and medium
CN108090222B (en) * 2018-01-05 2020-07-07 中国科学院计算技术研究所 Data synchronization system between database cluster nodes
CN108880779B (en) * 2018-06-29 2021-12-10 广东星舆科技有限公司 Text synchronization method based on redis message notification
CN108920637A (en) * 2018-07-02 2018-11-30 北京科东电力控制系统有限责任公司 Method for synchronizing data of database and device applied to synchronization subsystem
CN109582656A (en) * 2018-11-19 2019-04-05 平安科技(深圳)有限公司 Call center's O&M method and device, electronic equipment, storage medium
CN110851528B (en) * 2019-10-09 2022-09-02 网联清算有限公司 Database synchronization method and device, storage medium and computer equipment
CN113626475A (en) * 2020-05-07 2021-11-09 青岛奥利普自动化控制系统有限公司 Data recovery method and system based on cache server
CN111858501B (en) * 2020-06-02 2023-03-28 武汉达梦数据库股份有限公司 Log reading method based on log analysis synchronization and data synchronization system
CN113821492A (en) * 2020-06-19 2021-12-21 北京国电思达科技有限公司 Redis-based fan data read-write method, device, system and medium
CN113177093A (en) * 2021-05-24 2021-07-27 商汤国际私人有限公司 Data synchronization method and device, electronic equipment and storage medium
CN113626473A (en) * 2021-08-17 2021-11-09 北京京东振世信息技术有限公司 Data information query method and device
CN115422210A (en) * 2022-11-08 2022-12-02 北京锐融天下科技股份有限公司 Method and system for guaranteeing service operation data validity under multi-active architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848245A (en) * 2010-02-05 2010-09-29 南京德讯信息系统有限公司 Database access agent method and system based on SSL/XML
CN104866556A (en) * 2015-05-15 2015-08-26 北京奇虎科技有限公司 Database fault handling method and apparatus, and database system
CN105260376A (en) * 2015-08-17 2016-01-20 北京京东尚科信息技术有限公司 Method, equipment and system used for cluster node contraction and expansion
CN106302700A (en) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 Distributed system consistent update method and system based on paxos algorithm

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9230001B2 (en) * 2013-11-14 2016-01-05 Vmware, Inc. Intelligent data propagation using performance monitoring
US9977798B2 (en) * 2015-07-20 2018-05-22 International Business Machines Corporation Data migration and table manipulation in a database management system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101848245A (en) * 2010-02-05 2010-09-29 南京德讯信息系统有限公司 Database access agent method and system based on SSL/XML
CN104866556A (en) * 2015-05-15 2015-08-26 北京奇虎科技有限公司 Database fault handling method and apparatus, and database system
CN105260376A (en) * 2015-08-17 2016-01-20 北京京东尚科信息技术有限公司 Method, equipment and system used for cluster node contraction and expansion
CN106302700A (en) * 2016-08-11 2017-01-04 浪潮(北京)电子信息产业有限公司 Distributed system consistent update method and system based on paxos algorithm

Also Published As

Publication number Publication date
CN107330035A (en) 2017-11-07

Similar Documents

Publication Publication Date Title
CN107330035B (en) Operation log synchronization method in database, mobile terminal and computer readable storage medium
CN107357704B (en) Application program detection method, terminal and computer readable storage medium
CN107967322B (en) File classification display method, mobile terminal and computer readable storage medium
CN107038245B (en) Page switching method, mobile terminal and storage medium
CN108509299B (en) Message processing method, device and computer readable storage medium
CN107562705B (en) Data export method, server and computer readable storage medium
CN107220132B (en) Method, equipment and storage medium for monitoring file creation information
CN107862217B (en) Position information acquisition method, mobile terminal and computer storage medium
CN108600516B (en) Data acquisition method, mobile terminal and computer readable storage medium
CN107124466B (en) Method and device for preventing cache from penetrating and computer readable storage medium
CN109766119B (en) Recovery partition upgrade method, terminal and computer readable storage medium
CN109002547B (en) Log file storage method, mobile terminal and computer readable storage medium
CN112597115A (en) Container mirror image compression method and device, terminal equipment and medium
CN107480054B (en) Call chain data processing method and device and computer readable storage medium
CN109254972B (en) Offline command word bank updating method, terminal and computer readable storage medium
CN108063863B (en) Information browsing method, terminal, server and computer readable storage medium
CN107748680B (en) Kernel configuration method, terminal and computer readable storage medium
CN112347067A (en) Log information management and control method and device and computer readable storage medium
CN112423211A (en) Multi-audio transmission control method, equipment and computer readable storage medium
CN109684132B (en) Data backup method of mobile terminal, mobile terminal and storage medium
CN109885325B (en) Terminal system upgrading method, terminal and computer readable storage medium
CN107992564B (en) Login verification processing method, mobile terminal and computer readable storage medium
CN108845821B (en) Application program updating method, terminal and computer readable storage medium
CN108319665B (en) Hbase column value searching method, terminal and storage medium
CN107404568B (en) Control switch management method and mobile terminal

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
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200702

Address after: Room 8-1-6, No. 405, west section of Huancheng North Road, Jiangbei District, Ningbo City, Zhejiang Province, 315000

Applicant after: Ningbo Turing Qidian Intelligent Technology Co.,Ltd.

Address before: 518057 Guangdong Province, Shenzhen high tech Zone of Nanshan District City, No. 9018 North Central Avenue's innovation building A, 6-8 layer, 10-11 layer, B layer, C District 6-10 District 6 floor

Applicant before: NUBIA TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200807