CN115309528A - One-master multi-slave data source scheduling and managing device - Google Patents
One-master multi-slave data source scheduling and managing device Download PDFInfo
- Publication number
- CN115309528A CN115309528A CN202210976835.5A CN202210976835A CN115309528A CN 115309528 A CN115309528 A CN 115309528A CN 202210976835 A CN202210976835 A CN 202210976835A CN 115309528 A CN115309528 A CN 115309528A
- Authority
- CN
- China
- Prior art keywords
- data source
- proxy
- dao
- context
- slave
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
The invention relates to the technical field of Internet access data scheduling, and particularly discloses a one-master multi-slave data source scheduling and managing device, which comprises an agent data source, a DAO layer tangent plane interceptor and a data source context, and comprises the following steps: s1, acquiring a data source identifier; s2, the DAO layer tangent plane interceptor acquires a data source identifier of a label on the DAO layer interface and records the data source identifier to a data source context; s3, the agent data source obtains a data source identifier from the context of the data source; s4, returning the context of the data source to a data source identifier of the proxy data source; s5, selecting a data source and calling a database by the proxy data source according to the data source identifier; s6, the database feeds the calling data source back to the agent data source, the DAO layer and the DAO layer tangent plane interceptor; s7, checking whether a suspended spring transaction exists; the data source scheduling and managing device does not exhaust the available threads of the system due to waiting for the available connection, so that the whole application is blocked.
Description
Technical Field
The invention relates to the technical field of Internet access data scheduling, in particular to a data source scheduling and managing device with one master and multiple slaves.
Background
As more and more internet enterprise users are available, the amount of access will increase. The ability to process service requests concurrently becomes increasingly important. One of the key points is the database. Despite the efficiency of the business code, the processing power of the database is limited. Therefore, after the traffic reaches a certain level, the planning of reading and writing separation of the data in the database is imperative. The database in use is typically taken as the master and then one or more slave libraries are synchronized. A portion of the reads and writes are then shunted to the slave database to relieve the master database of stress. This requires that the data source in the code support the connection of multiple databases;
even though the master-slave library architecture is used, read-write is shunted, and when a large number of requests with slow queries are encountered, the problem of web application thread exhaustion is still encountered, because when a large number of requests with slow queries are encountered, the available connections of the data source are exhausted, and the requests without connection can only block the current thread until the available connections are reached. Therefore, when more requests which can not get connected are available, more blocked threads are available, all the available threads are exhausted, and finally, the web application can not receive subsequent requests, and an online production accident is caused.
Disclosure of Invention
In order to overcome the defects in the prior art, the invention provides a device for scheduling and managing a data source with one master and multiple slaves, which aims to solve the problem that more blocked threads in the background technology cause the exhaustion of all available threads and finally cause the failure of the web application to receive subsequent requests;
the technical scheme adopted by the invention for solving the technical problem is as follows: a data source scheduling and managing device with one master and multiple slaves comprises a proxy data source, a DAO layer tangent interceptor and a data source context, and comprises the following steps:
s1, acquiring a data source identifier, checking whether a spring transaction exists or not, and if yes, suspending the transaction;
s2, the DAO layer tangent interceptor acquires a data source identifier of a label on a DAO layer interface, records the data source identifier to a data source context, and calls a DAO layer and a proxy data source;
s3, the proxy data source obtains a data source identifier from a data source context, the proxy data source comprises a data source scheduler, a main data source and a slave data source key-value container, the data source scheduler is used for taking the data source identifier from the data source context, the main data source is a directly used data source, and a proxy slave data source is stored in the slave data source key-value container;
s4, returning the context of the data source to the 'data source identifier' of the proxy data source;
s5, selecting a data source and calling a database by the proxy data source according to the data source identification;
s6, the database feeds the calling data source back to the agent data source, the DAO layer and the DAO layer tangent plane interceptor;
s7, checking whether a suspended spring transaction exists, if so, recovering the transaction, removing the data source identification from the context of the data source, and then returning the result to the service layer;
further, the processing method of the DAO layer tangent plane interceptor includes: the DAO layer tangent plane interceptor tries to acquire a data source identifier from a DAO layer interface, and if the data source identifier is not acquired, the DAO layer interface is directly called; if the transaction is obtained, the DAO layer tangent plane interceptor calls a data source front processor, the processor records a data source identifier in a data source context, then checks whether a spring transaction exists, if yes, suspends the transaction, then calls the DAO layer, and after returning a calling result, checks whether the suspended spring transaction exists, and if yes, recovers the transaction;
specifically, the configuration of the DAO layer tangent plane interceptor is as follows:
<aop:config>
<aop:aspect ref="microServiceDaoInterceptor">
<aop:pointcut expression="execution(* cn.qtone.zf.*.*.dao..*Mapper.*(..))" id="daoInterceptor"/>
<aop:around method="around" pointcut-ref="daoInterceptor"/>
</aop:aspect>
</aop:config>
wherein, "# cn.qtone.zf.. X.. Dao.. Mapper.. X.)" is the interface that needs to be intercepted;
more specifically, the processing method of the DAO layer section interceptor further includes the steps of:
when a transaction managed by the spring is started on a service layer, the spring transaction manager acquires a link from a data source in advance, when interfaces functinA, functinB and functinC are called in sequence in a certain transaction method of the service layer, a main data source link master is acquired from a proxy data source, then sql of the functinA is executed, the link master is stored, a proxy slave data source link slave is acquired, the sql of the functinB is executed by using the link slave, then the link slave is released, the sql of the functinC is executed by using the link master, and the link master is released;
further, the proxy data source includes the following handover configuration method:
A. switching proxy configuration from a data source according to name, type, isProtected and config;
B. checking whether a corresponding proxy slave data source exists in the slave data source key-value container or not according to the name, if not, throwing the task to be abnormal and ending, and if so, entering the next step;
C. establishing an agent slave data source, and then transmitting and starting the type, the isProtected and the config; if the task cannot be started, throwing the task to be abnormal and ending, and if the task cannot be started normally, entering the next step;
D. taking out and storing the original data source corresponding to the name, and putting the new data source in;
E. checking whether the original data link has active connection, if not, closing the original data source and ending, and if so, circularly checking whether the original data link has active connection, and closing the original data source and ending until no active connection exists;
furthermore, a thread object provided by jdk is arranged in the data source context, and the thread object can store variables in the currently executed thread;
specifically, the data source context includes the following providing methods:
a. recording the data source identification into the thread local object:
public static void setSlaveDataSource(String slaveDataSource) {..};
b. the data source identification will be obtained from the ThreadLocal object:
public static String getSlaveDataSource() {..};
c. remove data source identification from ThreadLocal object:
public static String removeSlaveDataSource() {..};
the invention has the beneficial effects that:
1. the data source is planned to be a master/slave data source, the master data source is connected with the master library, and only one master data source is provided. Connecting a plurality of slave libraries from a data source;
2. for the agent slave data source, real-time database connection switching is supported, and shutdown is not needed;
3. for proxy slave data sources, protection mode may be enabled: when the number of available connections from the data source is exhausted, the subsequent sql request immediately returns exception handling, which has the advantage that when too many requests are requested for slow queries, the available threads of the system are not exhausted by waiting for available connections, thereby causing the entire application to block.
Drawings
FIG. 1 is a block flow diagram of a data source scheduling and managing apparatus according to the present invention;
FIG. 2 is a block diagram of a data source scheduling and managing apparatus according to the present invention;
FIG. 3 is a block flow diagram of a DAO layer and DAO layer cut plane interceptor;
FIG. 4 is a block diagram of the processing flow of the DAO layer and the DAO layer cut plane interceptor;
fig. 5 is a processing flow diagram of a method for switching configuration of a proxy data source.
Detailed Description
The following further describes embodiments of the present invention with reference to the drawings. It should be noted that the description of the embodiments is provided to help understanding of the present invention, and is not intended to limit the present invention. In addition, the technical features involved in the respective embodiments of the present invention described below may be combined with each other as long as they do not conflict with each other;
with reference to fig. 1 and fig. 2, a data source scheduling and managing apparatus for one master and multiple slaves includes a proxy data source, a DAO level cut interceptor and a data source context, and includes the following steps:
s1, acquiring a data source identifier, checking whether a spring transaction exists or not, and if yes, suspending the transaction;
s2, the DAO layer tangent interceptor acquires a data source identifier of a label on a DAO layer interface, records the data source identifier to a data source context, and calls a DAO layer and a proxy data source;
the configuration of the DAO layer is as follows:
Public interface InsertTestMapper extends Mapper<InsertTest>
{List<InsertTest>seletByIdMaster(String id);
@slaveDataSource(name=”slave1”)
List<InsertTest>seletByIdFromSlave(string id)};
and the configuration of the DAO layer section interceptor is as follows:
<aop:config>
<aop:aspect ref="microServiceDaoInterceptor">
<aop:pointcut expression="execution(* cn.qtone.zf.*.*.dao..*Mapper.*(..))" id="daoInterceptor"/>
<aop:around method="around" pointcut-ref="daoInterceptor"/>
</aop:aspect>
</aop:config>;
wherein ". Cndot. Qtone. Zf.. DAO.. Mapper.. ()" is an interface to be intercepted, "microservicedaointerposer" is a DAO sliced surface interceptor;
as shown in fig. 3 and fig. 4, the processing method of the DAO layer section interceptor of the present embodiment includes: the DAO layer cut surface interceptor tries to acquire an @ SlaveDataSource tag from an interface of a DAO layer, if the @ SlaveDataSource tag cannot be acquired, the interface of the DAO layer is directly called, if the @ SlaveDataSource tag cannot be acquired, the DAO layer cut surface interceptor calls a data source pre-processor, the data source identifier is recorded into the context of the data source by the processor, whether spring transactions exist or not is checked, if yes, the transactions are suspended, then the DAO layer is called, and if yes, whether the suspended spring transactions exist or not is checked after the DAO layer returns a calling result, and if yes, the transactions are recovered;
when a transaction managed by the spring is started on a service layer, a spring transaction manager acquires a link from a data source in advance, when interfaces functinA, functinB and functinC are called in sequence in a certain transaction method with the service layer, a proxy data source is shown as acquiring a main data source link master, then executing the sql of the functinA, saving the link master, acquiring a proxy slave data source link slave, executing the sql of the functinB by using the link slave, then releasing the link slave, executing the sql of the functinC by using the link master, and releasing the link master;
therefore, in the whole method for executing the servicre, the connection of the master always exists, so that the transaction validity of the main data source is ensured;
s3, the proxy data source obtains a data source identifier from a data source context, the proxy data source comprises a data source scheduler, a main data source and a slave data source key-value container, the data source scheduler is used for taking the data source identifier from the data source context, the main data source is a directly used data source, and a proxy slave data source is stored in the slave data source key-value container; the overall configuration of the proxy data source is as follows:
<bean id="dataSource" class="cn.qtone.zf.service.datasource.MultiDataSource">
<property name="master" ref="master"/>
<property name="slaves">
<map key-type="java.lang.String">
<entry key="slave1" value-ref="slaveHello"/>
</map>
</property>
</bean>
<bean id="slaveHello" class="cn.qtone.zf.service.datasource.SlaveSource">
<property name="type" value="hikari"/>
<property name="isProtected" value="true"/>
<property name="config" value=<![CDATA[{"driver":"xxx","password":"123","maxIdle":"100","minIdle":"10","url":"jdbc:mysql://127.0.0.1:3306/hello","username":"xft"}]]>/>
</bean>;
id = "dataSource" in the configuration is configured for the proxy data source, id = "slaveHello" is configured for one of the proxies in the proxy data source dataSource from the data source, and the configuration is explained as follows:
1. for a proxy data source, a master data source "master" and a proxy slave data source key-value container "slots" need to be configured, where each key value in the container is an identifier of the proxy slave data source, such as "slot 1" in the above example;
2. for the agent slave data source, the type of the data source, whether a protection mode is started and the configuration of the data source need to be configured, and the configuration of the data source is in a json format;
when a proxy data source is requested, a data source scheduler is called to take out a data source identifier from a data source context, and if the data source identifier is taken out to be empty, a main data source is taken out; if the retrieval is not empty, the agent is retrieved from the data source from the agent-value container; after the agent slave data source is obtained, judging whether the agent can be called or not, if the agent cannot be called, throwing exception, and if the agent can be called, calling the agent to obtain the data source from the data source; finally, the proxy data source returns the fetched data source to the upper layer for use
The agent slave data source structure and description are as follows, wherein InitializingBean is the interface of spring for a certain lifecycle:
public class SlaveDatasource implements InitializingBean{
private String type; // data Source type
private coolean isProtected; // is protection mode
private String config; // data Source configuration
private DataSource; // data Source
private int maximumPoolSize; // maximum number of connections of data Source
// set data Source type
public void setType(String type) {..}
// whether the setting is protection mode
public void setProtected(boolean isProtected){..}
// setting data Source configuration
public void setConfig(String config) {..}
V/initialize dataSource and maxiumPoolSize according to type, config and start the data source, if the start is not successful then throw exception
public void afterPropertiesSet() throws Exception {..}
// obtaining a data Source
public DataSource getDataSource() {..}
If yes, adjusting the data source to acquire the number of active connections and comparing the number with maximumPoolSize, if less than yes, returning true, otherwise, returning false
public boolean hasAvailableConnection() {..}
};
The proxy data source obtains the data source according to the data source identification, and also provides a configuration method for switching proxy from the data source; the method comprises the following steps:
public void restartSlave(String name,String type,boolean isProtected,String config);
the first parameter of the method is a key value of a target container in a key-value container of a slave data source, and the last three parameters are required parameters of the slave data source;
as shown in fig. 5, the proxy data source of this embodiment includes the following switching configuration methods:
A. switching proxy configuration from a data source according to name, type, isProtected and config;
B. checking whether a corresponding agent slave data source exists in the slave data source key-value container or not according to the name, if not, throwing the task to be abnormal and ending, and if so, entering the next step;
C. establishing an agent slave data source, and then transmitting and starting the type, the isProtected and the config; if the task cannot be started, throwing the task to be abnormal and ending, and if the task cannot be started normally, entering the next step;
D. taking out and storing the original data source corresponding to the name, and putting the new data source in;
E. checking whether the original data link has active connection, if not, closing the original data source and ending, and if so, circularly checking whether the original data link has active connection, and closing the original data source and ending until no active connection exists;
therefore, the new configuration is enabled by the new configuration to realize the effect of the new configuration, and the process is closed after the old data source is met;
s4, returning the context of the data source to the 'data source identifier' of the proxy data source;
s5, selecting a data source and calling a database by the proxy data source according to the data source identifier;
s6, the database feeds the calling data source back to the agent data source, the DAO layer and the DAO layer tangent plane interceptor;
s7, checking whether a suspended spring transaction exists, if so, recovering the transaction, removing the data source identification from the context of the data source, and then returning the result to the service layer;
a ThreadLocal object provided by jdk is arranged in the data source context of this embodiment, and the ThreadLocal object can store a variable in a currently executed thread; wherein, the data source context comprises the following providing methods:
a. recording the data source identification into the thread local object:
public static void setSlaveDataSource(String slaveDataSource) {..};
b. the data source identification will be obtained from the ThreadLocal object:
public static String getSlaveDataSource() {..};
c. remove data source identification from ThreadLocal object:
public static String removeSlaveDataSource() {..};
the data source of the invention is planned to be a master/slave data source, the master data source is connected with a master database, only one master data source is provided, the slave data source is connected with a slave database, and the number of the slave databases can be more than one; for the agent slave data source, real-time database connection switching is supported, and shutdown is not needed; for proxy slave data sources, protection mode may be enabled: when the number of usable connections from the data source is exhausted, the sql requests immediate return exception handling later. The advantage of this is that when the requests of the slow query are too many, the available threads of the system are not exhausted by waiting for the available connections, thereby causing the whole application to be blocked;
the embodiments of the present invention have been described in detail above with reference to the accompanying drawings, but the present invention is not limited to the described embodiments. It will be apparent to those skilled in the art that various changes, modifications, substitutions and alterations can be made in the embodiments without departing from the principles and spirit of the invention, and these embodiments are still within the scope of the invention.
Claims (7)
1. A data source scheduling and managing device with one master and multiple slaves comprises a proxy data source, a DAO layer tangent interceptor and a data source context, and is characterized by comprising the following steps:
s1, acquiring a data source identifier, checking whether a spring transaction exists or not, and if so, suspending the transaction;
s2, the DAO layer tangent interceptor acquires a data source identifier of a label on a DAO layer interface, records the data source identifier to a data source context, and calls a DAO layer and a proxy data source;
s3, the agent data source obtains a data source identifier from a data source context, the agent data source comprises a data source scheduler, a main data source and a secondary data source key-value container, the data source scheduler is used for taking the data source identifier from the data source context, the main data source is a directly used data source, and the secondary data source key-value container is stored with the agent secondary data source;
s4, returning the context of the data source to a data source identifier of the proxy data source;
s5, selecting a data source and calling a database by the proxy data source according to the data source identification;
s6, the database feeds the calling data source back to the agent data source, the DAO layer and the DAO layer tangent plane interceptor;
s7, checking whether the suspended spring transaction exists, if so, recovering the transaction, removing the data source identification from the data source context, and then returning the result to the service layer.
2. The device for scheduling and managing data sources with one master and multiple slaves as claimed in claim 1, wherein the processing method of the DAO level cut plane interceptor comprises: the DAO layer tangent plane interceptor tries to acquire a data source identifier from a DAO layer interface, and if the data source identifier is not acquired, the DAO layer interface is directly called; if the transaction is obtained, the DAO layer tangent plane interceptor calls a data source pre-processor, the processor records a data source identifier in a data source context, then checks whether a spring transaction exists, if so, suspends the transaction, then calls the DAO layer, and after returning a calling result, checks whether the suspended spring transaction exists, and if so, recovers the transaction.
3. The apparatus for scheduling and managing data sources with one master and multiple slaves as claimed in claim 2, wherein the configuration of the DAO level cut plane interceptor is as follows:
<aop:config>
<aop:aspect ref="microServiceDaoInterceptor">
<aop:pointcut expression="execution(* cn.qtone.zf.*.*.dao..*Mapper.*(..))" id="daoInterceptor"/>
<aop:around method="around" pointcut-ref="daoInterceptor"/>
</aop:aspect>
</aop:config>
wherein ". Cndot.qtone.zf.. Dapo.. Mapper.. Is the interface that needs to be intercepted.
4. The apparatus for scheduling and managing data sources of one master and multiple slaves as claimed in claim 3, wherein the processing method of the DAO layer tangent plane interceptor further comprises the following steps:
when a transaction managed by the spring is started on a service layer, the spring transaction manager acquires a link from a data source in advance, when interfaces functinA, functinB and functinC are called in sequence in a certain transaction method of the service layer, a main data source link master is acquired from a proxy data source, then sql of the functinA is executed, the link master is stored, a proxy slave data source link slave is acquired, the sql of the functinB is executed by using the link slave, then the link slave is released, the sql of the functinC is executed by using the link master, and the link master is released.
5. The device according to claim 1, wherein the proxy data source comprises the following handover configuration methods:
A. switching proxy configuration from a data source according to name, type, isProtected and config;
B. checking whether a corresponding proxy slave data source exists in the slave data source key-value container or not according to the name, if not, throwing the task to be abnormal and ending, and if so, entering the next step;
C. establishing an agent slave data source, and then transmitting and starting the type, the isProtected and the config; if the task cannot be started, throwing the task to be abnormal and ending, and if the task cannot be started normally, entering the next step;
D. taking out and storing the original data source corresponding to the name, and putting in the new data source;
E. and checking whether the original data link has active connection, if not, closing the original data source and ending, and if so, circularly checking whether the original data link has active connection, and closing the original data source and ending until no active connection exists.
6. The apparatus as claimed in claim 1, wherein a jdk provided ThreadLocal object is disposed in the data source context, and the ThreadLocal object can store variables in the currently executing thread.
7. The master-slave data source scheduling and managing device according to claim 6, wherein the data source context includes the following providing methods:
a. recording the data source identification into the thread local object:
public static void setSlaveDataSource(String slaveDataSource) {..};
b. the data source identification will be obtained from the ThreadLocal object:
public static String getSlaveDataSource() {..};
c. remove data source identification from ThreadLocal object:
public static String removeSlaveDataSource() {..}。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210976835.5A CN115309528A (en) | 2022-08-15 | 2022-08-15 | One-master multi-slave data source scheduling and managing device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210976835.5A CN115309528A (en) | 2022-08-15 | 2022-08-15 | One-master multi-slave data source scheduling and managing device |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115309528A true CN115309528A (en) | 2022-11-08 |
Family
ID=83862116
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210976835.5A Pending CN115309528A (en) | 2022-08-15 | 2022-08-15 | One-master multi-slave data source scheduling and managing device |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115309528A (en) |
-
2022
- 2022-08-15 CN CN202210976835.5A patent/CN115309528A/en active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11397709B2 (en) | Automated configuration of log-coordinated storage groups | |
US10116766B2 (en) | Asynchronous and idempotent distributed lock interfaces | |
CN106790694B (en) | Distributed system and scheduling method of target object in distributed system | |
CN105700939B (en) | The method and system of Multi-thread synchronization in a kind of distributed system | |
US10373247B2 (en) | Lifecycle transitions in log-coordinated data stores | |
US9286368B2 (en) | Linking framework for information technology management | |
US9984140B1 (en) | Lease based leader election system | |
US8938421B2 (en) | Method and a system for synchronizing data | |
US7958210B2 (en) | Update management method and update management unit | |
EP3195117B1 (en) | Automated configuration of log-coordinated storage groups | |
US7933866B2 (en) | Systems, methods and software programs for data synchronization | |
KR102072726B1 (en) | Systems and methods for supporting inline delegation of middle-tier transaction logs to database | |
CN103782574A (en) | Idempotence for database transactions | |
US10630566B1 (en) | Tightly-coupled external cluster monitoring | |
US9553951B1 (en) | Semaphores in distributed computing environments | |
CN104793988A (en) | Cross-database distributed transaction implementation method and device | |
US20100153940A1 (en) | Transportable refactoring object | |
US9514176B2 (en) | Database update notification method | |
CN114064414A (en) | High-availability cluster state monitoring method and system | |
CN113157411B (en) | Celery-based reliable configurable task system and device | |
CN105765555A (en) | Strict queue ordering in distributed system | |
US8132174B2 (en) | Concurrency management in cluster computing of business applications | |
CN112181627A (en) | Timing task scheduling method, device and system | |
CN105550342B (en) | A kind of data processing method of the distributed data base of all-transparent | |
US10191959B1 (en) | Versioned read-only snapshots of shared state in distributed computing environments |
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 |