CN115309528A - One-master multi-slave data source scheduling and managing device - Google Patents

One-master multi-slave data source scheduling and managing device Download PDF

Info

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
Application number
CN202210976835.5A
Other languages
Chinese (zh)
Inventor
李宝君
何玉华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Quantong Jinxin Holdings Guangdong Co ltd
Original Assignee
Quantong Jinxin Holdings Guangdong Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Quantong Jinxin Holdings Guangdong Co ltd filed Critical Quantong Jinxin Holdings Guangdong Co ltd
Priority to CN202210976835.5A priority Critical patent/CN115309528A/en
Publication of CN115309528A publication Critical patent/CN115309528A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation 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

One-master multi-slave data source scheduling and managing device
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() {..}。
CN202210976835.5A 2022-08-15 2022-08-15 One-master multi-slave data source scheduling and managing device Pending CN115309528A (en)

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)

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