当前位置:网站首页>Principle of universal gbase high availability synchronization tool in Nanjing University
Principle of universal gbase high availability synchronization tool in Nanjing University
2022-07-05 12:27:00 【yang881221】
Data synchronization is an essential role in distributed databases . It's used by Nantah gbse8a Database products , As a mature market product , Its data synchronization function is also very perfect , Whether in terms of function or performance , Are impeccable .
Here is a brief explanation gbase8a The principle of product data synchronization .
As we all know , Data synchronization is both functional and performance . That is, it should be fast and accurate .
If the synchronized data is wrong or lost, it is unintentionally a failure , Similarly, if the data synchronization is accurate , But every time I have to toss for a long time , This is also unbearable .
Get down to business ,gbase8a The data synchronization of the product adopts the working mode of pipeline , combination client-server The model works , Ensure concurrent processing , Ensure the accuracy of data verification during synchronization .
But piecemeal data parallelization

The above figure shows the data of the same table , Parallelization of different data slices . If the data of a table has 1g, It is divided into 3 Slice to 3 Each node , After parallelization , Time can be changed into the original 1/3
Multi slice data parallelization

Thread processing piple line Pattern

piple line Mode can make full use of the processing power of multithreading , For example, some threads read data , Some threads verify the read data , Some threads write the correct data or send the correct data .
Because each thread and the magnitude of calculation and processing may be different , such as check Faster ,read slower , This will cause some threads to be busy and others to be idle
Then you can use different number of threads according to the business volume
piple+multi pthd Pattern

work -group Pattern : In this mode, state machine management is required , But this can do the most with the least number of threads , But the disadvantage is that the thread context will switch frequently

The above is the current gbase The specific principle of synchronization . It makes full use of the idea of concurrency and multi-core .
Of course, it can be optimized later , such as perthd Pattern , Lockless queue mode ,RCU Queue processing . Or introduce a collaboration process for processing .
边栏推荐
- End to end neural network
- Matlab boundarymask function (find the boundary of the divided area)
- Differences between IPv6 and IPv4 three departments including the office of network information technology promote IPv6 scale deployment
- Detailed structure and code of inception V3
- Pytoch loads the initialization V3 pre training model and reports an error
- Linux安装部署LAMP(Apache+MySQL+PHP)
- How to clear floating?
- Introduction to GNN
- MySQL storage engine
- MySQL log module of InnoDB engine
猜你喜欢

强化学习-学习笔记3 | 策略学习

Matlab imoverlay function (burn binary mask into two-dimensional image)

Matlab label2idx function (convert the label matrix into a cell array with linear index)

How can beginners learn flutter efficiently?

Simple production of wechat applet cloud development authorization login

Select drop-down box realizes three-level linkage of provinces and cities in China

Average lookup length when hash table lookup fails

Third party payment interface design

Resnet18 actual battle Baoke dream spirit

Get the variable address of structure member in C language
随机推荐
Video networkState 属性
Is investment and finance suitable for girls? What financial products can girls buy?
[HDU 2096] 小明A+B
Complete activity switching according to sliding
嵌入式软件架构设计-消息交互
How can beginners learn flutter efficiently?
Redis highly available sentinel mechanism
Interviewer: is acid fully guaranteed for redis transactions?
ZABBIX customized monitoring disk IO performance
Tabbar configuration at the bottom of wechat applet
Clear neo4j database data
Reinforcement learning - learning notes 3 | strategic learning
NPM install reports an error
Redis highly available sentinel cluster
Pytoch loads the initialization V3 pre training model and reports an error
Get data from the database when using JMeter for database assertion
POJ-2499 Binary Tree
How to design an interface?
Seven polymorphisms
Halcon template matching actual code (I)