CN110781244A - Method and device for controlling concurrent operation of database - Google Patents
Method and device for controlling concurrent operation of database Download PDFInfo
- Publication number
- CN110781244A CN110781244A CN201910859269.8A CN201910859269A CN110781244A CN 110781244 A CN110781244 A CN 110781244A CN 201910859269 A CN201910859269 A CN 201910859269A CN 110781244 A CN110781244 A CN 110781244A
- Authority
- CN
- China
- Prior art keywords
- database
- operation request
- preset
- database operation
- concurrent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The application discloses a method for controlling concurrent operation of a database, which comprises the following steps: receiving a database operation request aiming at a database; judging whether an index value representing the load pressure of the database is smaller than a preset first threshold value or not; if yes, continuing to process the database operation request and submitting the database operation request to a storage engine for execution; if not, ending the processing of the database operation request. The application also provides a device for controlling the concurrent operation of the database. By adopting the method provided by the application, the load pressure of the database can be finely controlled, the response time aiming at the database operation request is maintained in the range acceptable by the application, and the integral usability of the database is improved.
Description
The application is a divisional application of a Chinese patent application with the application date of 2014, 12 and 03, the application number of 201410727590.8, and the invention name of a method and a device for controlling concurrent operation of a MySQL database.
Technical Field
The present application relates to the field of databases, and in particular, to a method for controlling concurrent operations of a database. The application also provides a device for controlling the concurrent operation of the database.
Background
MySQL is an open source relational database management system, which accelerates data access speed and improves flexibility by storing data in different interrelated data tables, rather than putting all data in a large warehouse. MySQL supports plug-in database engines, and the main stream of the MySQL supports an InoDB storage engine supporting a transaction mechanism and also supports storage engines such as MyISAM, BDB and Memory.
The architecture of a MySQL database typically includes two layers, the first being the MySQL server layer, at which all work is done before the MySQL database system processes the underlying data, including: the method comprises the following steps of client identity authentication, connection management, analysis, optimization, cache query and other operations aiming at a database operation request of a client; the second Layer is a Storage Engine Layer (Storage Engine Layer), that is, a bottom Layer data access operation implementation part, which is composed of multiple Storage engines and is responsible for performing operations such as data Storage, data reading, and index establishment.
In general, database operation requests from clients (for example: upper layer applications) are random, so that a situation that a large number of requests are concurrent may occur, and the prior art generally adopts two ways to guarantee the availability of the MySQL database:
1) protection by relying on upper layer application current limiting, for example: when the upper application finds that the response time of the MySQl database exceeds a preset threshold value, pausing or slowing down the action of establishing connection with the MySQL database and sending a database operation request;
2) rely on the concurrency control mechanism of the underlying storage engine itself. Taking the memory engine InNODB as an example, when a thread enters InNODB for execution, if the number of the threads concurrently executing in the InNODB exceeds the preset concurrent number, the thread waits in the FIFO queue of the InNODB and cannot enter the InNODB for direct execution, and the thread waiting in the FIFO queue cannot be woken up and enters the InNODB for execution until the thread exits from the InNODB after the execution of the thread is finished.
The two modes can protect the MySQL database to a certain extent, but in practical application, both have certain defects: by adopting the method 1), because the feedback of the upper-layer application is needed, the processing time is usually long, the load pressure of the MySQL database cannot be relieved in time, and the condition that the current limiting effect is not exerted and the MySQL database is broken down may occur; by adopting the mode 2), under the condition that the load pressure of the MySQL database is large to a certain degree, although the storage engine has a concurrency control mechanism, the MySQL Server layer lacks effective self-protection capability, if the scale of concurrent operation exceeds the processing capability of the MySQL Server layer, the MySQL database may not stably provide service, the response time to the upper application fluctuates in a large range, even cannot respond, and the availability of the MySQL database cannot be effectively guaranteed.
Disclosure of Invention
The application provides a method for controlling concurrent operation of a database, so as to solve the problem that the database may not be capable of stably providing service under the condition of a large number of concurrent operations. The present application additionally provides an apparatus for controlling concurrent operations of a database.
The application provides a method for controlling concurrent operations of a database, comprising:
receiving a database operation request aiming at a database;
judging whether the database operation request meets preset non-limiting conditions or not;
if not, judging whether the operation type of the database operation request belongs to one of preset first current limiting types or not;
if the value of the data is less than the preset first threshold, judging whether the value of the threads _ running variable of the database is less than the preset first threshold; if the operation request is smaller than the preset value, the database operation request is continuously processed and delivered to a storage engine for execution; and if not, ending the processing of the database operation request.
Optionally, when the result of determining whether the value of the threads _ running variable of the database is smaller than the preset first threshold is "smaller", before continuing to process the database operation request and submitting it to the storage engine for execution, the following operations are performed:
judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of concurrent threads is not less than a preset second threshold or not;
when the two judgment results are yes, distributing the thread corresponding to the database operation request to a first-in first-out queue for waiting;
otherwise, executing the step of continuously processing the database operation request and submitting the database operation request to a storage engine for execution, and adding one to the number of the concurrent threads when the operation type of the database operation request belongs to one of preset second current limiting types;
the number of the concurrent threads refers to the number of the threads corresponding to the database operation requests, the operation types of which belong to one of the preset second current limiting types and are continuously processed and delivered to the storage engine for execution.
Optionally, when the result of determining whether the operation type of the database operation request belongs to one of the preset first current limiting types is "not belonging", before continuing to process the database operation request and submitting the database operation request to the storage engine for execution, the following operations are performed:
and judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of the concurrent threads is not less than a preset second threshold value or not.
Optionally, the first current limit type includes: and (5) inquiring operation.
Optionally, the determining whether the database operation request meets a preset unrestricted flow condition specifically means determining whether the database operation request meets any one of the following three conditions:
the initiator of the database operation request has super authority to operate the database;
the database transaction to which the operation related to the database operation request belongs is already started;
the operation type of the database operation request is one of transaction submission or transaction rollback;
and when the database operation request meets any one of the three conditions, the database operation request is continuously processed and delivered to a storage engine for execution.
Optionally, when the result of determining whether the database operation request meets the preset unrestricted flow condition is "met", before continuing to process the database operation request and submitting it to the storage engine for execution, the following operations are performed:
and judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of the concurrent threads is not less than a preset second threshold value or not.
Optionally, the second current limit type includes: query operations, insert operations, update operations, and delete operations.
Optionally, when determining whether the operation type of the database operation request belongs to one of the preset second current-limiting types and whether the number of concurrent threads is not less than the preset second threshold, first perform the following operations:
judging whether the database operation request meets any one of the following three conditions, if so, turning to the step of continuously processing the database operation request and handing the database operation request to a storage engine for execution:
the initiator of the database operation request has super authority to operate the database;
the database operation request relates to that a database transaction to which the operation belongs is started;
the operation type of the database operation request is one of transaction submission, transaction rollback or a database operation related to a data definition language.
Optionally, after the database operation request is executed by the storage engine, the waiting threads in the fifo queue are sequentially waken up to continue processing the database operation request corresponding to the thread and are handed over to the storage engine for execution.
Optionally, the method further includes:
monitoring the waiting time of each thread in the first-in first-out queue;
and when the waiting time is greater than a preset waiting threshold, returning a response of refusing execution to the initiator of the database operation request corresponding to the thread, and terminating the running of the thread.
Optionally, the number of the first-in first-out queues is multiple, and the threads that need to enter the wait state are sequentially allocated to different first-in first-out queues.
Optionally, after the step of receiving the database operation request, the following operations are first performed:
judging whether the preset first threshold is zero or not; if so, setting the preset first threshold as the maximum connection number supported by the database;
judging whether the preset first threshold is smaller than the preset second threshold or not; and if so, setting the preset first threshold value as the preset second threshold value.
Correspondingly, the present application also provides an apparatus for controlling concurrent operations of a database, comprising:
an operation request receiving unit, configured to receive a database operation request for a database;
the first condition judging unit is used for judging whether the database operation request meets the preset non-limiting condition or not;
the first current limiting type judging unit is used for judging whether the operation type of the database operation request belongs to one of preset first current limiting types or not when the judgment result of the first condition judging unit is 'unsatisfied';
a variable index judging unit, configured to, when the judgment result of the first current limiting type judging unit is "belong to", judge whether a value of a threads _ running variable of a database is smaller than a preset first threshold;
the operation request processing unit is used for continuously processing the database operation request and delivering the database operation request to a storage engine for execution when the output of the variable index judging unit is less than the output of the variable index judging unit;
and an operation request ending unit configured to end the processing of the database operation request when the output of the variable index judgment unit is "not less than".
Compared with the prior art, the method has the following advantages:
according to the method for controlling the concurrent operation of the database, after the database operation request is received, the index value representing the load pressure of the database is detected in real time, when the index value is smaller than a preset first threshold value, the database operation request is continuously processed and delivered to a storage engine for execution, and otherwise, the processing of the database operation request is finished. By adopting the method, under the condition of high database load pressure, the processing of the database operation request is directly finished, so that the fine control of the database load is realized, the response time aiming at the database operation request is maintained within the range acceptable by the application, and the integral usability of the database is improved.
Drawings
FIG. 1 is a flow diagram of one embodiment of a method for controlling concurrent operation of a database of the present application;
fig. 2 is a flowchart of a process of limiting current according to threads _ running according to the present embodiment;
fig. 3 is a flowchart of a process for performing current limiting in the FIFO queue manner according to this embodiment;
FIG. 4 is a graph illustrating the relationship between QPS and the number of active threads in different current limiting manners provided by the present embodiment;
FIG. 5 is a schematic diagram of an embodiment of an apparatus for controlling concurrent operations of a database according to the present application.
Detailed Description
In the following description, numerous specific details are set forth in order to provide a thorough understanding of the present application. This application is capable of implementation in many different ways than those herein set forth and of similar import by those skilled in the art without departing from the spirit of this application and is therefore not limited to the specific implementations disclosed below.
In the present application, a method for controlling concurrent operations of a database and an apparatus for controlling concurrent operations of a database are provided, respectively, and are described in detail in the following embodiments one by one.
Please refer to fig. 1, which is a flowchart illustrating an embodiment of a method for controlling concurrent operations of a database according to the present application, the method comprising the following steps:
step 101: a database operation request for a MySQL database is received.
The database operation request for the MySQL database refers to an operation request sent from a client (for example, an upper application) to the MySQL database, where the operation request usually includes an SQL statement requesting the MySQL database to execute, for example: query, insert, delete, update, and creation, modification, deletion of data tables, and other SQL statements, as well as other MySQL database supported SQL statements.
In a specific implementation, the database operation request is received by a server layer of MySQL, and since MySQL usually employs a multithreading mechanism, the server layer allocates a thread for processing the database operation request for each received database operation request, where the allocation operation may be to create a new thread or to directly obtain an idle thread from a thread buffer pool (thread cache). It will also be appreciated that each database operation request received by the MySQL database is carried by, or corresponds to, a thread.
Step 102: and judging whether the index value representing the load pressure of the MySQL database is smaller than a preset first threshold value, if so, executing a step 103, and otherwise, executing a step 104.
According to the technical scheme provided by the application, under the condition that the load pressure of the MySQL database is large, the processing of the received database operation request can be directly finished, namely: and no processing is carried out, so that the load pressure of the MySQL database is relieved, and the usability of the MySQL database is guaranteed.
In order to achieve the above purpose, firstly, the current load condition of the MySQL database needs to be judged. In a specific operation process, there are many bases for judging the MySQL load condition, for example: TPS (Transaction Per Second-system throughput), QPS (Query Per Second Query rate), RT (Response Time-Response Time), TR (Threads _ Running-active thread count), Context Switch Per Second, and the like. Some of the operation indexes of the host where the MySQL database is located are considered from the inside of the MySQL database, and from the viewpoint of universality and reflecting MySQL load conditions as accurately and in real time as possible, the TR is selected as the index representing the load pressure of the MySQL database in the embodiment. In other embodiments, the above or other indexes capable of representing the load pressure condition of the MySQL database may be selected, and the technical solution of the present application may also be implemented.
After the database operation request is subjected to necessary processing by the server layer of MySQL, the database operation request usually enters the storage engine layer (e.g., InnoDB) to execute an actual database operation, the thread _ Running variable maintained by the MySQL database is the number of Threads entering the storage engine layer (which may be executing or may wait for acquiring an execution opportunity), and may also be referred to as the number of Threads in an execution state or the number of active Threads, and it is generally considered that when the value is relatively large, the load pressure of the whole MySQL database is relatively large.
Judging whether to continue processing the database operation request according to the value of Threads _ Running, if the value is smaller than a preset first threshold, indicating that the load pressure of the MySQL database is still within the processing capacity range thereof, executing step 103 to continue processing the database operation request, otherwise indicating that the load pressure of the MySQL database may exceed the processing capacity range thereof, and then taking a current limiting measure, namely: execution 104 ends processing of the database operation request.
In a specific example of this embodiment, on the basis of the above-mentioned determination manner, the type of the database operation request or the authority of the initiator is also taken as a consideration for whether to limit the current according to the actual running requirement, so the processing procedure of this step includes the following steps 102-1 to 102-3, which will be described below with reference to fig. 2.
Step 102-1: and judging whether the database operation request meets the preset non-limiting condition, if so, turning to the step 103 for execution, and otherwise, executing the step 102-2.
Considering that a database operation request from a client (e.g. an upper layer application) may relate to various database operations supported by the MySQL database, some of which are special-purpose or relatively important operations (e.g. binlog operations related to database synchronization operations) that a user with super-authority (i.e. super-authority) can perform, such operations may generally be performed directly in step 103 without taking current-limiting measures.
Furthermore, if InNODB is used as the underlying storage engine, there are some transaction-related operations to ensure the atomicity of database transactions or the integrity of transaction processes, such as: commit operation (commit), rollback (rollback) operation of the transaction, and the individual operations contained in the opened transaction may also generally not take current limiting measures, but may go directly to step 103 for execution.
In the above specific example of this embodiment, the condition of no current limiting in this step refers to:
1) the initiator of the database operation request has super authority to operate the database;
2) the database transaction to which the operation related to the database operation request belongs is already started;
3) the operation type of the database operation request is one of transaction commit (commit) or transaction rollback (rollback).
When the database operation request meets any one of the above conditions, the current limiting judgment is not performed, and the process directly goes to step 103 to be executed.
Step 102-2: and judging whether the operation type of the database operation request belongs to one of preset first current limiting types, if so, executing the step 102-3, otherwise, turning to the step 103 for execution.
In an actual business scenario, the operation types of a large number of database operation requests are as follows: the types of SQL statements carried in the request are all the types of operations related to DML (data manipulation language) statements, for example: querying select, inserting insert, updating update, deleting delete, etc., which are generally regarded as operation requests of a service level; in addition, the database operation request received by MySQL may also have other operation requests related to the database hierarchy, such as: operations involved in DDL (data definition language) statements or operations involved in DCL statements, etc., the number of such operation requests is relatively small.
In conventional applications, the database operation request at the service level is usually the focus of executing the current limiting operation, and the execution time of the query operation may be relatively long, and a large number of concurrent query operations may cause relatively large pressure on the MySQL database. Therefore, considering the performance efficiency of the method and the current limiting effect in a trade-off manner, the first current limiting type may be set to include only: and (4) performing query operation, namely if the database operation request is query operation, turning to the step 102-3 for execution, and otherwise, directly turning to the step 103 for execution without flow limitation.
Of course, in other embodiments, the preset first current limiting type may be different from the setting in this embodiment according to the database operation characteristics of the actual service scenario, and the technical solution of the present application may also be implemented and is also within the protection scope of the present application.
Step 102-3: and judging whether the value of the threads _ running variable of the MySQL database is smaller than a preset first threshold, if so, executing a step 103, and otherwise, executing a step 104.
Executing the step to indicate that the database operation request belongs to an operation type which can be limited, so that the step determines whether to limit the current flow by judging the value of the threads _ running variable, if the value of the threads _ running is smaller than a preset first threshold, indicating that the current load pressure of the MySQL database is still within the processing capacity range of the MySQL database, so that the current flow limitation is not needed, executing the step 103, otherwise, going to the step 104 to finish the processing of the database operation request.
The above describes the determination process of whether to perform throttling according to the value of the threads _ running, which is equivalent to setting a hard upper limit for the threads _ running variable, and when the number of active threads exceeds the upper limit, the database operation request will not be processed (see the subsequent step 104), so that the value of the threads _ running can be substantially maintained within a controllable range.
In a specific implementation process, in order to obtain a better current limiting effect, the present embodiment further provides a preferred implementation manner, that is: two-stage current limiting measures are adopted, FIFO queues are adopted to further limit current on the basis of the current limiting scheme, and therefore the availability of the MySQL database can be effectively guaranteed. In order to distinguish the two current limiting methods, the method of limiting current according to the threads _ running is referred to as high-water current limiting, and the method of limiting current using the FIFO queue, which is described below, is referred to as low-water current limiting. That is, in the case that the high-level current limit does not limit the database operation request, the execution may not be directly transferred to step 103, but the necessary queue waiting processing is performed through the low-level current limit, so that the load pressure of the MySQL server layer can be relieved in advance.
The process of the low level flow restriction includes steps 102-4 to 102-7 as shown below, and is described with reference to fig. 3.
Step 102-4: and judging whether the database operation request meets the preset condition of not performing low water level current limiting, if so, turning to a step 103 for execution, and otherwise, executing a step 102-5.
Similar to the reason described in step 102-1, in order to ensure that some special or important database operation requests can be processed in time and ensure the integrity of database transactions as much as possible, when the database operation requests meet the preset condition of not performing low-water level current limiting, directly go to step 103 to execute, otherwise, execute step 102-5 to continue to perform low-water level current limiting judgment.
In the above specific example of this embodiment, the condition that the low water level current limit is not performed in this step refers to:
1) the initiator of the database operation request has super authority to operate the database;
2) the database transaction to which the operation related to the database operation request belongs is already started;
3) the operation type of the database operation request is one of transaction submission, transaction rollback or a database operation related to a data definition language.
When the database operation request meets any one of the above conditions, the process goes to step 103 to execute.
Step 102-5: and judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of the concurrent threads is not less than a preset second threshold or not, if the two judgment results are yes, executing a step 102-7 to enter an FIFO queue for waiting, and if not, executing a step 102-6.
Similar to the reason described in step 102-2, the second current limit type described in this step mainly refers to a database operation type related to a service level, and in a specific example of this embodiment, the preset second current limit type includes: query operations, insert operations, update operations, and delete operations. In other embodiments, the preset second current limit type may be different from the specific example.
The number of the concurrent threads refers to the number of threads corresponding to the database operation requests, the operation types of which belong to one of the preset second current limiting types and are continuously processed. That is, if there is a thread meeting the above current limit type requirement to continue the subsequent processing at the server layer and enter the storage engine layer for execution (including the two cases of not being limited by the low-level current limit and waking up in the FIFO queue), the number of the concurrent threads is increased by one, and when the thread meeting the above current limit type requirement exits from the storage engine layer, the number of the concurrent threads is decreased by one.
In the judgment of this step, if both judgment results are yes, it indicates that the number of concurrent threads is not less than the preset second threshold, and in order to control the number of concurrent threads within the preset second threshold at this time, it is necessary to go to step 102-7 for queuing processing.
Step 102-6: and when the operation type of the database operation request belongs to one of preset second current limiting types, adding one to the number of the concurrent threads, and going to step 103 to execute.
Step 102-7: and allocating the thread corresponding to the database operation request to a first-in first-out queue to wait.
For the database operation request that is limited In the determination of step 102-5, the processing cannot be continued, so In this step, the thread corresponding to the database operation request is allocated to a First-In First-Out (FIFO) queue to wait, and after other threads bearing the database operation request exit from the storage engine layer, the threads waiting In the FIFO queue are sequentially waken up, and the processing is continued and the threads enter the storage engine layer to execute (i.e., the subsequent step 103 is executed).
Generally, in a system adopting a multi-thread mechanism, a CPU executes a plurality of threads in a time slice round robin scheduling manner, and when a current time slice ends and scheduling of a next thread is started, a context switch (contextswitch) process is usually required, which is also time-consuming, and frequent switching operations may affect the stability of the system. By adopting the low-water-level current-limiting processing mode, the threads which run in the MySQL server layer concurrently can be controlled within a certain number, context switching and possible lock competition among a large number of threads are reduced, and therefore the MySQL database can keep better performance and stability.
In a specific implementation process, in order to prevent a thread from being processed due to long-time waiting in a FIFO caused by some unexpected situations, the waiting time of each thread entering a FIFO queue may be monitored, when the waiting time of a certain thread is found to exceed a preset waiting threshold, the thread is actively terminated, and a response of rejecting execution is returned to an initiator of a database operation request carried by the thread, and the initiator may resend the database operation request according to a certain policy after receiving the response.
Considering that the FIFO queue is a shared resource, in order to avoid operation conflict, when a thread enters or exits the FIFO queue, a locking/unlocking operation generally needs to be performed, and under the condition that a large number of threads run concurrently, lock contention inevitably occurs, thereby affecting the running efficiency. In order to solve the above problem, the present embodiment provides a preferred embodiment, that is: a plurality of first-in first-out queues (multi-FIFO) are adopted, and threads needing to enter a waiting state are sequentially distributed into different first-in first-out queues according to a round robin (round robin) mode. By adopting the implementation mode, the shared resources are added, so that the lock competition can be relieved, and the aim of improving the operation efficiency is fulfilled.
The two-stage current limiting mechanism adopted in the present embodiment is described above, and the current limiting is mainly performed according to the first threshold and the second threshold. In a specific implementation, the two thresholds may be set before the method is implemented, or the initialization detection and necessary setting as shown below may be performed when (or before) a database operation request is received:
1) judging whether the preset first threshold is zero or not; if yes, setting the preset first threshold as the maximum connection number supported by the MySQL database;
2) judging whether the preset first threshold is smaller than the preset second threshold or not; and if so, setting the preset first threshold value as the preset second threshold value.
In order to enable both high-water-level current limiting and low-water-level current limiting to exert effects, the first threshold is usually set to be larger than the second threshold, and as for the specific set value, the specific set value can be adjusted according to actual application scenarios and business requirements, and the application is not specifically limited.
Step 103: and continuing to process the database operation request and handing the database operation request to a storage engine for execution.
And if the judgment result in the step 102 shows that the database operation request does not need to be limited currently, continuing to process the database operation request and delivering the database operation request to a storage engine for execution. The step of continuously processing the database operation request means that corresponding processing is continuously executed in the MySQL server layer, for example: analyzing the database operation request, performing access control management, performing necessary optimization on query operation, and selecting each processing branch according to the analysis result: a table manager module, a table modification module, a table maintenance module, a status report module, etc. The handing over to the storage engine for execution in this step means that after the above-mentioned necessary processing is completed, a thread bearing the database operation request is scheduled to enter a storage engine layer for execution, that is: and performing actual data query, storage, updating and other operations. The implementation of this part of functions can refer to the relevant part of the open source code of the MySQL database, and will not be described herein again.
It should be noted that, when the database operation request is executed via the storage engine and exits, if low-water-level current limiting is adopted in step 102, it should be checked whether a thread in a waiting state exists in the FIFO queue, if so, the waiting threads therein are waken one by one according to an entry sequence (it is ensured that the number of the concurrent threads described in this application is within a preset second threshold range), and the wakened thread continues to process the database operation request carried by the thread and enters the storage engine for execution; and if no thread in the waiting state exists in the FIFO queue, performing a decrement operation on the number of the concurrent threads, thereby ensuring that the number can correctly reflect the number of the threads which are continuously processed and enter the storage engine to be executed after the low water level detection.
Step 104: and finishing the processing of the database operation request.
If the judgment result in the step 102 indicates that the current flow limitation needs to be performed on the database operation request, which indicates that the load pressure of the MySQL database is already or is about to exceed the processing capacity of the MySQL database, the MySQL server layer cannot continue to process the database operation request at this time, but directly ends the processing of the database operation request.
In a specific implementation, the processing of the database operation request is ended, and usually the thread bearing the request needs to be terminated, and if the thread is acquired from a thread buffer (thread cache) when being created, the thread does not need to be destroyed, but is made to re-enter the thread buffer to wait for processing of a next database operation request.
After the processing of the database operation request is finished, a response of refusing execution can be returned to the client (for example, upper application) sending the request, so that the client can know the processing condition of the database operation request in time and perform subsequent processing according to own strategy.
So far, the method for controlling the concurrent operation of the MySQL database provided by the present application is described in detail. In specific implementation, because MySQL is a relational database system of open source codes, the processing related to high-water-level current limit and low-water-level current limit of the technical scheme can be added on the basis of existing codes, for example: the relevant code for high-water-level current limiting can be added before the code for sql parsing, the relevant code for low-water-level current limiting can be added after sql parsing and before different processors are selected according to the parsing result for processing and delivering to the storage engine for execution, for example, before Mysql _ execute _ command () is called; of course, it is also possible to add both the processing code for high and low water level current limiting after sql parsing and before the Mysql _ execute _ command () function executes. Modifications of the above embodiments and other embodiments not listed herein are within the scope of the present application as long as the current limiting function of the technical party of the present application can be implemented to ensure the availability of the MySQL database.
The embodiment adopts low water level current limiting on the basis of high water level current limiting, thereby obtaining satisfactory implementation effect. The MySQL database supports a multithreading mechanism, the number of concurrent threads of the MySQL server layer can be controlled within a certain range by adopting high-water-level current limiting, and the phenomenon that the MySQL cannot provide stable service under the condition of a large number of concurrent requests is avoided as much as possible. The availability of the MySQL can be further guaranteed by the low-water-level current limit, the second threshold is usually smaller than the first threshold, namely along with the gradual increase of the database load, the low-water-level current limit can play a role first before the high-water-level current limit plays a role, the number of concurrent threads of the MySQL server layer is reduced in a FIFO queuing mode, and the cost of context switching is reduced, so that the availability of the database can be guaranteed before the high-water-level current limit plays a role, and stable service is provided for upper-layer application.
In the above description, the preferred embodiment provided by this embodiment is described, and in other implementation processes, only the high-water-level current limiting scheme or only the low-water-level current limiting scheme may be adopted, so that the purpose of guaranteeing the availability of the MySQL database may also be achieved. Specifically, a variable indicating that the function is enabled or disabled may be set for the high water level current limit and the low water level current limit, respectively, and a value of the variable may be set according to a requirement in an actual application, so as to enable or disable the related function; the function enabling or disabling function may also be implemented directly using the first threshold or the second threshold described in this application, for example, when the first threshold is 0, it indicates that high-water-level current limiting is not performed, and when the second threshold is 0, it indicates that low-water-level current limiting is not performed.
In specific implementation, only high-water-level current limiting or low-water-level current limiting is adopted, so that the availability of the database can be guaranteed, and stable service can be provided for upper-layer applications. Please refer to fig. 4, which is a graph of QPS (query rate per second) versus number of active threads under different current limiting modes by using the InnoDB storage engine, wherein normal mysql-0 is a curve that does not enable the concurrency control mechanism inside the InnoDB, normal mysql-1 is a curve that enables the concurrency control mechanism inside the InnoDB and sets the maximum concurrency number to be 32, and patched mysql is a curve that implements the low-water-level current limiting scheme provided by the present application. As can be seen from the figure, under the condition that the number of the active threads is gradually increased, the QPS indexes of the normal mysql-0 and normal mysql-1 curves are obviously reduced to different degrees, and the QPS index of the patched mysql curve adopting the technical scheme of the application is relatively stable.
To sum up, the method for controlling concurrent operations of the MySQL database provided by the present application detects an index value representing the load pressure of the MySQL database in real time after receiving the database operation request, and when the index value is smaller than a preset first threshold, continues to process the database operation request and delivers the database operation request to the storage engine for execution, otherwise ends the processing of the database operation request. By adopting the method, under the condition that the load pressure of the MySQL database is large, the processing of the database operation request is directly finished, so that the fine control of the MySQL database load is realized, the response time aiming at each database operation request is ensured to be maintained within the range acceptable by the application, and the integral usability of the MySQL database is improved. In particular, better implementation results can be obtained when the low water level current limiting scheme provided by the application is used together.
In the foregoing embodiment, a method for controlling concurrent operations of a database is provided, and correspondingly, an apparatus for controlling concurrent operations of a database is also provided. Please refer to fig. 5, which is a schematic diagram of an embodiment of an apparatus for controlling concurrent operations of a database according to the present application. Since the apparatus embodiments are substantially similar to the method embodiments, they are described in a relatively simple manner, and reference may be made to some of the descriptions of the method embodiments for relevant points. The device embodiments described below are merely illustrative.
An apparatus for controlling concurrent operations of a MySQL database according to this embodiment includes: an operation request receiving unit 501, configured to receive a database operation request for a MySQL database; a load pressure judging unit 502, configured to judge whether an index value representing the load pressure of the MySQL database is smaller than a preset first threshold; an operation request processing unit 503, configured to, when the output of the load pressure determination unit is "yes", continue to process the database operation request and deliver the database operation request to a storage engine for execution; an operation request ending unit 504 configured to end the processing of the database operation request when the output of the load pressure determination unit is "no".
Optionally, the apparatus includes:
a concurrent thread judging unit, configured to, when the output of the load pressure judging unit is "yes", judge whether the operation type of the database operation request belongs to one of preset second current limiting types and whether the number of concurrent threads is not less than a preset second threshold;
the thread waiting unit is used for distributing the thread corresponding to the database operation request to a first-in first-out queue for waiting when the output of the concurrent thread judging unit is 'yes';
and the continuous processing unit is used for triggering the operation request processing unit to work when the output of the concurrent thread judging unit is 'no', and adding one to the number of the concurrent threads when the operation type of the database operation request belongs to one of preset second current limiting types.
Optionally, the load pressure determining unit is specifically configured to determine whether a value of a threads _ running variable of the MySQL database is smaller than a preset first threshold.
Optionally, the apparatus includes:
the first current limiting type judging unit is used for judging whether the operation type of the database operation request belongs to one of preset first current limiting types or not before judging whether the value of the threads _ running variable of the MySQL database is smaller than a preset first threshold value or not;
and the skip control unit is used for triggering the load pressure judging unit to work when the output of the first current-limiting type judging unit is 'yes', and otherwise triggering the concurrent thread judging unit to work.
Optionally, the apparatus includes:
the first condition judging unit is used for judging whether the database operation request meets any one of the following three conditions before judging whether the operation type of the database operation request belongs to one of preset first current-limiting types, if so, the concurrent thread judging unit is triggered to work, and if not, the first current-limiting type judging unit is triggered to work:
the initiator of the database operation request has super authority to operate the database;
the database operation request relates to that a database transaction to which the operation belongs is started;
the operation type of the database operation request is one of a transaction commit or a transaction rollback.
Optionally, the concurrent thread determining unit includes, in addition to the body subunit for implementing the function thereof, further:
the second condition judgment subunit is configured to judge whether the database operation request meets any one of the following three conditions, if yes, trigger the operation request processing unit to work, and otherwise trigger the body subunit to work:
the initiator of the database operation request has super authority to operate the database;
the database operation request relates to that a database transaction to which the operation belongs is started;
the operation type of the database operation request is one of transaction submission, transaction rollback or a database operation related to a data definition language.
Optionally, the apparatus includes:
and the waiting queue awakening unit is used for sequentially awakening the waiting threads in the first-in first-out queue to continuously process the database operation requests corresponding to the threads and delivering the database operation requests to the storage engine for execution after the database operation requests are completely executed by the storage engine.
Optionally, the apparatus further comprises:
the waiting time monitoring unit is used for monitoring the waiting time of each thread in the first-in first-out queue;
and the thread termination unit is used for returning a response of refusing execution to the initiator of the database operation request corresponding to the thread when the waiting time monitoring unit monitors that the waiting time of the thread in the first-in first-out queue is greater than a preset waiting threshold value, and terminating the operation of the thread.
Optionally, the thread waiting unit includes a plurality of first-in first-out queues, and the threads that need to enter the waiting state are sequentially allocated to different first-in first-out queues.
Optionally, the apparatus includes:
the threshold setting unit is used for judging whether the preset first threshold is zero or not after receiving the database operation request; if yes, setting the preset first threshold as the maximum connection number supported by the MySQL database; judging whether the preset first threshold is smaller than the preset second threshold or not; and if so, setting the preset first threshold value as the preset second threshold value.
Although the present application has been described with reference to the preferred embodiments, it is not intended to limit the present application, and those skilled in the art can make variations and modifications without departing from the spirit and scope of the present application, therefore, the scope of the present application should be determined by the claims that follow.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
1. Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, computer readable media does not include non-transitory computer readable media (transient media), such as modulated data signals and carrier waves.
2. As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
Claims (13)
1. A method for controlling concurrent operations of a database, comprising:
receiving a database operation request aiming at a database;
judging whether the database operation request meets preset non-limiting conditions or not;
if not, judging whether the operation type of the database operation request belongs to one of preset first current limiting types or not;
if the value of the data is less than the preset first threshold, judging whether the value of the threads _ running variable of the database is less than the preset first threshold; if the operation request is smaller than the preset value, the database operation request is continuously processed and delivered to a storage engine for execution; and if not, ending the processing of the database operation request.
2. The method for controlling the concurrent operation of the database according to claim 1, wherein when the result of the determination of whether the value of the threads _ running variable of the database is smaller than the preset first threshold value is "smaller", before continuing to process the database operation request and submitting it to the storage engine, the following operations are performed:
judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of concurrent threads is not less than a preset second threshold or not;
when the two judgment results are yes, distributing the thread corresponding to the database operation request to a first-in first-out queue for waiting;
otherwise, executing the step of continuously processing the database operation request and submitting the database operation request to a storage engine for execution, and adding one to the number of the concurrent threads when the operation type of the database operation request belongs to one of preset second current limiting types;
the number of the concurrent threads refers to the number of the threads corresponding to the database operation requests, the operation types of which belong to one of the preset second current limiting types and are continuously processed and delivered to the storage engine for execution.
3. The method for controlling the concurrent operation of the database according to claim 2, wherein when the result of the determination of whether the operation type of the database operation request belongs to one of the preset first current limiting types is "not belonging", before continuing to process the database operation request and submitting it to the storage engine, the following operations are performed:
and judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of the concurrent threads is not less than a preset second threshold value or not.
4. The method for controlling concurrent operations of a database according to claim 3, wherein the first type of current limit comprises: and (5) inquiring operation.
5. The method according to claim 1, wherein the determining whether the database operation request satisfies a predetermined unrestricted condition is specifically determining whether the database operation request satisfies any one of the following three conditions:
the initiator of the database operation request has super authority to operate the database;
the database transaction to which the operation related to the database operation request belongs is already started;
the operation type of the database operation request is one of transaction submission or transaction rollback;
and when the database operation request meets any one of the three conditions, the database operation request is continuously processed and delivered to a storage engine for execution.
6. The method for controlling the concurrent operation of the database according to claim 5, wherein when the result of the determination of whether the database operation request satisfies the predetermined unrestricted condition is "satisfied", before continuing to process the database operation request and submitting it to the storage engine, the following operations are performed:
and judging whether the operation type of the database operation request belongs to one of preset second current limiting types or not and whether the number of the concurrent threads is not less than a preset second threshold value or not.
7. Method for controlling the concurrent operation of a database according to any of claims 2-4, 6, wherein the second type of current limitation comprises: query operations, insert operations, update operations, and delete operations.
8. The method for controlling the concurrent operations of the database according to any one of claims 2 to 4 or 6, wherein when determining whether the operation type of the database operation request belongs to one of the preset second current limiting types and whether the number of the concurrent threads is not less than the preset second threshold, the following operations are first performed:
judging whether the database operation request meets any one of the following three conditions, if so, turning to the step of continuously processing the database operation request and handing the database operation request to a storage engine for execution:
the initiator of the database operation request has super authority to operate the database;
the database operation request relates to that a database transaction to which the operation belongs is started;
the operation type of the database operation request is one of transaction submission, transaction rollback or a database operation related to a data definition language.
9. The method according to any of claims 3 to 6, wherein after the database operation request is executed by the storage engine, the waiting threads in the FIFO queue are sequentially awakened to continue processing the database operation request corresponding to the thread and then are submitted to the storage engine for execution.
10. The method for controlling concurrent operations of a database as recited in claim 9, further comprising:
monitoring the waiting time of each thread in the first-in first-out queue;
and when the waiting time is greater than a preset waiting threshold, returning a response of refusing execution to the initiator of the database operation request corresponding to the thread, and terminating the running of the thread.
11. The method of claim 9, wherein the number of the fifo queues is plural, and the threads that need to enter the wait state are sequentially allocated to different fifo queues.
12. The method for controlling the concurrent operation of the database according to claim 2, wherein after the step of receiving the database operation request, the following operations are first performed:
judging whether the preset first threshold is zero or not; if so, setting the preset first threshold as the maximum connection number supported by the database;
judging whether the preset first threshold is smaller than the preset second threshold or not; and if so, setting the preset first threshold value as the preset second threshold value.
13. An apparatus for controlling concurrent operations of a database, comprising:
an operation request receiving unit, configured to receive a database operation request for a database;
the first condition judging unit is used for judging whether the database operation request meets the preset non-limiting condition or not;
the first current limiting type judging unit is used for judging whether the operation type of the database operation request belongs to one of preset first current limiting types or not when the judgment result of the first condition judging unit is 'unsatisfied';
a variable index judging unit, configured to, when the judgment result of the first current limiting type judging unit is "belong to", judge whether a value of a threads _ running variable of a database is smaller than a preset first threshold;
the operation request processing unit is used for continuously processing the database operation request and delivering the database operation request to a storage engine for execution when the output of the variable index judging unit is less than the output of the variable index judging unit;
and an operation request ending unit configured to end the processing of the database operation request when the output of the variable index judgment unit is "not less than".
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910859269.8A CN110781244B (en) | 2014-12-03 | 2014-12-03 | Method and device for controlling concurrent operation of database |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410727590.8A CN105718474B (en) | 2014-12-03 | 2014-12-03 | The method and device controlled for the concurrent operations to MySQL database |
CN201910859269.8A CN110781244B (en) | 2014-12-03 | 2014-12-03 | Method and device for controlling concurrent operation of database |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410727590.8A Division CN105718474B (en) | 2014-12-03 | 2014-12-03 | The method and device controlled for the concurrent operations to MySQL database |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781244A true CN110781244A (en) | 2020-02-11 |
CN110781244B CN110781244B (en) | 2023-06-13 |
Family
ID=56091007
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910859269.8A Active CN110781244B (en) | 2014-12-03 | 2014-12-03 | Method and device for controlling concurrent operation of database |
CN201410727590.8A Active CN105718474B (en) | 2014-12-03 | 2014-12-03 | The method and device controlled for the concurrent operations to MySQL database |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410727590.8A Active CN105718474B (en) | 2014-12-03 | 2014-12-03 | The method and device controlled for the concurrent operations to MySQL database |
Country Status (2)
Country | Link |
---|---|
CN (2) | CN110781244B (en) |
WO (1) | WO2016086800A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181948A (en) * | 2020-09-30 | 2021-01-05 | 中国工商银行股份有限公司 | Database operation statement processing method and device, electronic equipment and medium |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107528885B (en) * | 2017-07-17 | 2021-01-26 | 创新先进技术有限公司 | Service request processing method and device |
CN110147508A (en) * | 2017-10-26 | 2019-08-20 | 北京京东尚科信息技术有限公司 | A kind of method and apparatus of system current limliting |
CN109145015B (en) * | 2018-08-02 | 2022-12-23 | 北京百度网讯科技有限公司 | Data query method, device and system based on structured query language |
CN110865926A (en) * | 2019-11-20 | 2020-03-06 | 珠海格力电器股份有限公司 | Database system and control method thereof |
CN111083063B (en) * | 2019-11-22 | 2023-04-18 | 北京云杉信息技术有限公司 | Method and device for dynamically adjusting down-pressure |
CN113722347B (en) * | 2021-02-10 | 2024-07-16 | 京东科技控股股份有限公司 | Database management method, device, electronic equipment and storage medium |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991792A (en) * | 1998-01-02 | 1999-11-23 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically managing a thread pool of reusable threads in a computer system |
JP2003316590A (en) * | 2002-04-22 | 2003-11-07 | Nec Corp | Multi-thread program |
CN102143380A (en) * | 2010-12-31 | 2011-08-03 | 华为技术有限公司 | Content provision control method, content provision control device and content provision control system for content transmission network |
CN102752387A (en) * | 2012-06-29 | 2012-10-24 | 用友软件股份有限公司 | Data storage processing system and data storage processing method |
CN103810203A (en) * | 2012-11-13 | 2014-05-21 | 深圳市腾讯计算机系统有限公司 | Connection multiplexing method and connection multiplexing device for database management system |
CN103853986A (en) * | 2014-01-03 | 2014-06-11 | 李凤华 | Access control method and device |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2096564B1 (en) * | 2008-02-29 | 2018-08-08 | Euroclear SA/NV | Improvements relating to handling and processing of massive numbers of processing instructions in real time |
US9129000B2 (en) * | 2010-04-30 | 2015-09-08 | International Business Machines Corporation | Method and system for centralized control of database applications |
-
2014
- 2014-12-03 CN CN201910859269.8A patent/CN110781244B/en active Active
- 2014-12-03 CN CN201410727590.8A patent/CN105718474B/en active Active
-
2015
- 2015-11-27 WO PCT/CN2015/095832 patent/WO2016086800A1/en active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5991792A (en) * | 1998-01-02 | 1999-11-23 | International Business Machines Corporation | Method, apparatus and computer program product for dynamically managing a thread pool of reusable threads in a computer system |
JP2003316590A (en) * | 2002-04-22 | 2003-11-07 | Nec Corp | Multi-thread program |
CN102143380A (en) * | 2010-12-31 | 2011-08-03 | 华为技术有限公司 | Content provision control method, content provision control device and content provision control system for content transmission network |
CN102752387A (en) * | 2012-06-29 | 2012-10-24 | 用友软件股份有限公司 | Data storage processing system and data storage processing method |
CN103810203A (en) * | 2012-11-13 | 2014-05-21 | 深圳市腾讯计算机系统有限公司 | Connection multiplexing method and connection multiplexing device for database management system |
CN103853986A (en) * | 2014-01-03 | 2014-06-11 | 李凤华 | Access control method and device |
Non-Patent Citations (3)
Title |
---|
MARCO CONTI 等: "Load distribution among replicated Web servers: a QoS-based approach" * |
荆一楠: "分布式拒绝服务攻击中攻击源追踪的研究" * |
邓安远;: "存储测试平台监控系统的设计与实现" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181948A (en) * | 2020-09-30 | 2021-01-05 | 中国工商银行股份有限公司 | Database operation statement processing method and device, electronic equipment and medium |
CN112181948B (en) * | 2020-09-30 | 2024-02-02 | 中国工商银行股份有限公司 | Processing method and device of database operation statement, electronic equipment and medium |
Also Published As
Publication number | Publication date |
---|---|
CN105718474A (en) | 2016-06-29 |
CN105718474B (en) | 2019-10-18 |
CN110781244B (en) | 2023-06-13 |
WO2016086800A1 (en) | 2016-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781244A (en) | Method and device for controlling concurrent operation of database | |
US12056540B2 (en) | Generic concurrency restriction | |
US8818989B2 (en) | Memory usage query governor | |
Luo et al. | On performance stability in LSM-based storage systems (extended version) | |
US9128895B2 (en) | Intelligent flood control management | |
US8499004B2 (en) | File system with optimistic I/O operations on shared storage | |
US9275102B2 (en) | System load query governor | |
US8583608B2 (en) | Maximum allowable runtime query governor | |
US9110715B2 (en) | System and method for using a sequencer in a concurrent priority queue | |
CN104376096B (en) | The method of asynchronous refresh based on buffering area | |
US20200228461A1 (en) | Resource allocation using restore credits | |
US11249800B2 (en) | System and method for dynamic CPU multitasking | |
US6631446B1 (en) | Self-tuning buffer management | |
CN117725035B (en) | File merging method for LSM tree and related equipment | |
US20130239114A1 (en) | Fine Grained Adaptive Throttling of Background Processes | |
US11500799B2 (en) | Managing access to a CPU on behalf of a block application and a non-block application | |
US9558035B2 (en) | System and method for supporting adaptive busy wait in a computing environment | |
CN113010535A (en) | Cache data updating method, device, equipment and storage medium | |
WO2023066070A1 (en) | Sql statement control method and apparatus | |
US10606795B2 (en) | Methods for managing a buffer cache and devices thereof | |
CN109582460B (en) | Redis memory data elimination method and device | |
US20140165073A1 (en) | Method and System for Hardware Assisted Semaphores | |
US20210286725A1 (en) | Information processing apparatus, computer-readable recording medium having stored therein memory control program, and computer-readable recording medium having stored therein information processing program | |
US10565044B2 (en) | Message handling related to non-parallelizable functionality | |
US9378045B2 (en) | System and method for supporting cooperative concurrency in a middleware machine environment |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230713 Address after: Room 1-2-A06, Yungu Park, No. 1008 Dengcai Street, Sandun Town, Xihu District, Hangzhou City, Zhejiang Province Patentee after: Aliyun Computing Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Patentee before: ALIBABA GROUP HOLDING Ltd. |