2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Ut omnes novimus, mySQL databases primarias et secundarias (duos nodi) plerumque consequi altas notitias disponibilitatem per replicationem asynchronam et replicationem semi-synchronam (Semi-Sync). Primae et secundariae architecturae graves difficultates post HA mutandi occurrent. Probabilitas notitiarum inconstantiae erit (refertur ut RPO!=0).Quamdiu negotium notitia alicuius momenti est, non debes eligere productum datorum cum MySQL prima et secundaria architectura (duobus nodi).
MySQL communitas, quod attinet ad evolutionem multi-copi technologiae cum RPO=0:
PolarDB-X Notio integrationis centralised et distributae: nodi data DN sine forma adhiberi possunt ut forma centralised (vexillum versionis) quae plene compatitur cum forma database stanti-sola. Negotium cum crescit usque ad dilatationem distributa requiritur, architectura ad formam distributam in loco collocatur, et partes distributae compaginem cum notis originalibus adnexam habent et distributionem habere potes. Usability et scalabilitas hac formula, architecturae descriptione allata;"Centralized Distributed Integration"
MySQL's MGR et PolarDB-X norma versionis DN utraeque protocollo Paxos ab infimo principio utuntur. Hic articulus elaborat aspectibus comparationis architecturae, differentiarum clavis, et probatio comparationis.
MGR/DN abbreviationis descriptio: MGR significat technicam formae MySQL MGR, et DN technicam formam PolarDB-X repraesentat una DN centralised (vexilla versio).
Analysis comparativa detailed respective longa est, ergo primam summam et conclusionem legere potes. Si summatim vis, summatim sequere et in articulis subsequentibus exquirere potes.
MySQL MGR non commendatur pro negotiis et societatibus generalibus quia technicam scientiam requirit et operationem et sustentationem quadrigis ut bene utatur. Hic articulus etiam tres "occultas foveas" de MySQL MGR imitatur, qui diu in industria versati sunt. :
Comparatus cum MySQL MGR, PolarDB-X Paxos non habet foveas similes cum MGR secundum constantiam datae, cubiculi transversis computatris receptam calamitatem, et operationem nodi et sustentationem.
MGR/DN abbreviation description:
MGR unicum dominum et multi-dominium modos sustinet, et systematis replicationis MySQL plene reuses, inter Event, Binlog & Nullamlog, Applicare, Binlog Applicare Recuperationem, et GTID. Praecipua differentia a DN est quod aculeus punctum maioris negotii MGR ad consensum perveniendi est antequam negotium principale database committatur.
Causa quare MGR processum superius adoptat, est quia MGR in multi-domino modo defalta est, et uterque nodi scribere potest eam cum negotio scribenti accipit ut princeps ut se submittat, fasciculus binlogorum producitur ut rem finalem in duobus scenicis dimissionis processu submittat.
DN reuses MySQL notae fundamentales structurae ac functionis codicis, sed arcte replicationem logam, administrationem stipes, logorum fabularum, et recuperationem ruinae cum protocollo X-Paxos formare suam partem maioris replicationis et status machinae mechanismum formare. Clavis differentia a MGR est quod punctum aculei maioris negotii ad DN ad consensum perueniendum est in principali negotii datorum processu submissionis.
Causa huius consilii est quia DN in praesenti modo unicum dominum modum sustinet, ergo stipes in gradu X-Paxos est ipsum binlogum pari pretio.
MGR
DN
Theoretice sive Paxos et Raft notitias constantiae efficere possunt et tigna quae ad maiorem partem pervenerunt post Crash Recuperatio non amittetur, sed adhuc differentiae sunt in inceptis specificis.
MGR
XCOM protocollo Paxos perfecte encapsulat, et omnia eius protocollo in memoria primo condiuntur. In casu ubi plerique pies decedunt et dux deficit, grave problema erit de RPO!=0.Summam sem:
Sub ambitu defalta communitatis, plures negotiorum pertinaciam logam non requirit nec spondet RPO=0. Hoc considerari potest mercatura-off ad effectum deducendi in exsequenda propositi XCOM. Ut absolutum RPO=0, configurare debes parametri group_replication_ constantiam quae moderatur legere et scribere constantiam in POST. et effectus pauperrimus erit.
DN
PolarDB-X DN utitur X-Paxos ad protocollum distributum efficiendum et ad processum committendum coetus MySQL ne- que tenetur. Pleraque orbis collocatio hic refert ad collocationem Binlog bibliothecae principalis. Itaque, etiamsi omnes nodi in extremis missionibus deficiunt, notitia non amittetur et RPO=0 praestari potest.
Tempus RTO intime coniungitur cum tempore supra caput frigoris ipsius systematis sileo, quod in peculiaribus functionibus fundamentalibus resultat;Culpa detectio mechanism-> ruina recuperatio mechanism-> dominus lectio mechanism-> stipes libratio
MGR
DN
MGR
DN
In uno-magistri modo, MGR scriptor XCOM et DN X-Paxos, modus ducis fortis, idem principium principale ad eligendum ducem - tigna quae ab botro pacta sunt revolvi non possunt. Sed quantum ad inconsensum, sunt differentiae
MGR
DN
Coaequatio log significat moram replicationis esse in lignis inter databases primarium et secundarium, et secundarium datorum opus est ligna aequare. Nodi enim, qui sileo et restituti sunt, recuperatio plerumque cum sto database incepit, et replicatio dilatio iam facta est cum principali database, et ligna cum database principali rapienda sunt. Nodi enim illi qui corporaliter longe sunt a Duce, plures attingentes nihil habent quod cum illis faciant. Hae condiciones specificas exsecutionem machinarum requirunt ad solutionem opportunam retolutione morarum.
MGR
DN
Mora sto database playback est mora inter tempus quo idem negotium perficitur in principali datorum et tempore quo negotium applicatur in sto database. Afficit quousque sumpsit ut database sto ad perficiendum data applicatione sua et operas legendas et scribendas praebeat cum exceptione occurrat.
MGR
DN
Magnae transactiones non solum ad obsequium ordinariarum transactionum afficiunt, sed etiam stabilitatem totius protocolli in systemate distributo affecto afficiunt.
MGR
DN
MGR
DN
MGR | DN | ||
Protocol efficientiam | Re deditionem tempus | 1.5~2.5 RTT | 1 RTT |
Maioritas Perseverantia | XCOM nisi memoria | Binlog perseverantia | |
reliability | RPO=0 | Non praestatur per defaltam | plene praestatur |
Culpa deprehensio | Omnes nodi se invicem reprehendo, onus retis altum est Cordis exolvuntur non urna | Dominus nodi periodice alias lymphaticorum Cordis exolvuntur parametri Novifacta | |
Plures Collapse Recuperatio | manual interventu | Lorem recuperatio | |
Minoritas Credo Recuperatio | Recuperatio automatic in pluribus, interventus manualis in specialibus adiunctis | Lorem recuperatio | |
Elige dominum | Libere ordinem electionis | Libere ordinem electionis | |
Log tie | Tigna pigri non excedunt XCOM 1GB cache | BInlog files non sunt deleta | |
Sto database playback mora | Duo gradus + duplex unum, tardissimum | Unus scaena + duplex nulla, velocior | |
Magnum negotium | Congue modus est ultra 143MB | Nulla mole modus | |
forma | Princeps disponibilitate pretium | Plene tria exemplaria operata sunt, 3 exemplaria datarum repositionum supra caput | Logger log copy, 2 exemplaria data storage |
legere solum nodi | Impleri cum domino servo replicationem | Protocollum venit cum Leaner legere solum effingo implementation |
MGR in MySQL 5.7.17 introducta est, sed plures lineamenta MGR relatas in MySQL 8.0 tantum in promptu sunt, et in MySQL 8.0.22 et in recentioribus versionibus altiore effectus stabilior et certior erit. Ideo postremam versionem 8.0.32 utriusque partis pro probatione comparativa delegimus.
Considerans differentias in ambitibus testium, compilationem methodi, methodos instruere, parametris operandi, methodos tentare in probatione comparativa PolarDB-X DN et MySQL MGR, quae ad inaccuratam probationem comparationis datam ducere possunt, hic articulus varias in singulas partes collocabit. .
test praeparatio | PolarDB-X DN | MySQL MGR[1] |
Hardware environment | Eadem physica machina cum 96C 754GB memoria et SSD orbis | |
sistema operatum | Linux 4.9.168-019.ali3000.alios7.x86_64 | |
Kernel version | Usus baseline nucleo in communi versione 8.0.32 . fundatur | |
Compilation methodo | Compilare cum eodem RelWithDebInfo | |
Operating parametri | Eodem PolarDB-X utere , ut 32C128G venderet cum eisdem specificationibus et parametris | |
Modum instruere | Unius dominus modus |
Nota:
Euismod probatio prima est, quisque attendit datorum deligendo. Hic utimur instrumento officiali sysbench ad aedificandas XVI tabulas, unaquaeque cum X milliones datarum, ut perficiat experimentum in missionibus OLTP, et probamus et comparamus effectum duarum sub diversis condicionibus concurrentiae in diversis missionibus OLTP.Variis instituti condicionibus consideratis, quattuor sequentes missiones respective instruere simulamus:
illustrare;
a.
b sem instruere.
1 | 4 | 16 | 64 | 256 | ||
oltp_read_only | MGR_1 | 688.42 | 2731.68 | 6920.54 | 11492.88 | 14561.71 |
MGR_0 | 699.27 | 2778.06 | 7989.45 | 11590.28 | 15038.34 | |
DN | 656.69 | 2612.58 | 7657.03 | 11328.72 | 14771.12 | |
MGR_0 nobis MGR_1 | 1.58% | 1.70% | 15.45% | 0.85% | 3.27% | |
DN nobis MGR_1 | -4.61% | -4.36% | 10.64% | -1.43% | 1.44% | |
DN nobis MGR_0 | -6.09% | -5.96% | -4.16% | -2.26% | -1.78% | |
oltp_read_write | MGR_1 | 317.85 | 1322.89 | 3464.07 | 5052.58 | 6736.55 |
MGR_0 | 117.91 | 425.25 | 721.45 | 217.11 | 228.24 | |
DN | 360.27 | 1485.99 | 3741.36 | 5460.47 | 7536.16 | |
MGR_0 nobis MGR_1 | -62.90% | -67.85% | -79.17% | -95.70% | -96.61% | |
DN nobis MGR_1 | 13.35% | 12.33% | 8.00% | 8.07% | 11.87% | |
DN nobis MGR_0 | 205.55% | 249.44% | 418.59% | 2415.07% | 3201.86% | |
oltp_write_only | MGR_1 | 761.87 | 2924.1 | 7211.97 | 10374.15 | 16092.02 |
MGR_0 | 309.83 | 465.44 | 748.68 | 245.75 | 318.48 | |
DN | 1121.07 | 3787.64 | 7627.26 | 11684.37 | 15137.23 | |
MGR_0 nobis MGR_1 | -59.33% | -84.08% | -89.62% | -97.63% | -98.02% | |
DN nobis MGR_1 | 47.15% | 29.53% | 5.76% | 12.63% | -5.93% | |
DN nobis MGR_0 | 261.83% | 713.78% | 918.76% | 4654.58% | 4652.96% |
Ex probatis eventibus videri potest:
TPS comparationis | 1 | 4 | 16 | 64 | 256 | |
oltp_read_only | MGR_1 | 695.69 | 2697.91 | 7223.43 | 11699.29 | 14542.4 |
MGR_0 | 691.17 | 2708.6 | 7849.98 | 11636.94 | 14670.99 | |
DN | 645.11 | 2611.15 | 7628.39 | 11294.36 | 14647.22 | |
MGR_0 nobis MGR_1 | -0.65% | 0.40% | 8.67% | -0.53% | 0.88% | |
DN nobis MGR_1 | -7.27% | -3.22% | 5.61% | -3.46% | 0.72% | |
DN nobis MGR_0 | -6.66% | -3.60% | -2.82% | -2.94% | -0.16% | |
oltp_read_write | MGR_1 | 171.37 | 677.77 | 2230 | 3872.87 | 6096.62 |
MGR_0 | 117.11 | 469.17 | 765.64 | 813.85 | 812.46 | |
DN | 257.35 | 1126.07 | 3296.49 | 5135.18 | 7010.37 | |
MGR_0 nobis MGR_1 | -31.66% | -30.78% | -65.67% | -78.99% | -86.67% | |
DN nobis MGR_1 | 50.17% | 66.14% | 47.82% | 32.59% | 14.99% | |
DN nobis MGR_0 | 119.75% | 140.01% | 330.55% | 530.97% | 762.86% | |
oltp_write_only | MGR_1 | 248.37 | 951.88 | 2791.07 | 5989.57 | 11666.16 |
MGR_0 | 162.92 | 603.72 | 791.27 | 828.16 | 866.65 | |
DN | 553.69 | 2173.18 | 5836.64 | 10588.9 | 13241.74 | |
MGR_0 nobis MGR_1 | -34.40% | -36.58% | -71.65% | -86.17% | -92.57% | |
DN nobis MGR_1 | 122.93% | 128.30% | 109.12% | 76.79% | 13.51% | |
DN nobis MGR_0 | 239.85% | 259.96% | 637.63% | 1178.61% | 1427.92% |
Ex probatis eventibus videri potest:
TPS comparationis | 1 | 4 | 16 | 64 | 256 | |
oltp_read_only | MGR_1 | 687.76 | 2703.5 | 7030.37 | 11580.36 | 14674.7 |
MGR_0 | 687.17 | 2744.41 | 7908.44 | 11535.35 | 14656 | |
DN | 657.06 | 2610.58 | 7591.21 | 11174.94 | 14545.45 | |
MGR_0 nobis MGR_1 | -0.09% | 1.51% | 12.49% | -0.39% | -0.13% | |
DN nobis MGR_1 | -4.46% | -3.44% | 7.98% | -3.50% | -0.88% | |
DN nobis MGR_0 | -4.38% | -4.88% | -4.01% | -3.12% | -0.75% | |
oltp_read_write | MGR_1 | 29.13 | 118.64 | 572.25 | 997.92 | 2253.19 |
MGR_0 | 26.94 | 90.8 | 313.64 | 419.17 | 426.7 | |
DN | 254.87 | 1146.57 | 3339.83 | 5307.85 | 7171.95 | |
MGR_0 nobis MGR_1 | -7.52% | -23.47% | -45.19% | -58.00% | -81.06% | |
DN nobis MGR_1 | 774.94% | 866.43% | 483.63% | 431.89% | 218.30% | |
DN nobis MGR_0 | 846.07% | 1162.74% | 964.86% | 1166.28% | 1580.79% | |
oltp_write_only | MGR_1 | 30.81 | 145.54 | 576.61 | 1387.64 | 3705.51 |
MGR_0 | 28.68 | 108.86 | 387.48 | 470.5 | 476.4 | |
DN | 550.11 | 2171.64 | 5866.41 | 10381.72 | 14478.38 | |
MGR_0 nobis MGR_1 | -6.91% | -25.20% | -32.80% | -66.09% | -87.14% | |
DN nobis MGR_1 | 1685.49% | 1392.13% | 917.40% | 648.16% | 290.73% | |
DN nobis MGR_0 | 1818.10% | 1894.89% | 1413.99% | 2106.53% | 2939.12% |
Ex probatis eventibus videri potest:
TPS comparationis | 1 | 4 | 16 | 64 | 256 | |
oltp_read_only | MGR_1 | 688.49 | 2747.69 | 7853.91 | 11722.71 | 15292.73 |
MGR_0 | 687.66 | 2756.3 | 8005.11 | 11567.89 | 15055.69 | |
DN | 656.06 | 2600.35 | 7657.85 | 11227.56 | 14562.86 | |
MGR_0 nobis MGR_1 | -0.12% | 0.31% | 1.93% | -1.32% | -1.55% | |
DN nobis MGR_1 | -4.71% | -5.36% | -2.50% | -4.22% | -4.77% | |
DN nobis MGR_0 | -4.60% | -5.66% | -4.34% | -2.94% | -3.27% | |
oltp_read_write | MGR_1 | 26.01 | 113.98 | 334.95 | 693.34 | 2030.6 |
MGR_0 | 23.93 | 110.17 | 475.68 | 497.92 | 511.99 | |
DN | 122.06 | 525.88 | 1885.7 | 3314.9 | 5889.79 | |
MGR_0 nobis MGR_1 | -8.00% | -3.34% | 42.02% | -28.19% | -74.79% | |
DN nobis MGR_1 | 369.28% | 361.38% | 462.98% | 378.11% | 190.05% | |
DN nobis MGR_0 | 410.07% | 377.34% | 296.42% | 565.75% | 1050.37% | |
oltp_write_only | MGR_1 | 27.5 | 141.64 | 344.05 | 982.47 | 2889.85 |
MGR_0 | 25.52 | 155.43 | 393.35 | 470.92 | 504.68 | |
DN | 171.74 | 535.83 | 1774.58 | 4328.44 | 9429.24 | |
MGR_0 nobis MGR_1 | -7.20% | 9.74% | 14.33% | -52.07% | -82.54% | |
DN nobis MGR_1 | 524.51% | 278.30% | 415.79% | 340.57% | 226.29% | |
DN nobis MGR_0 | 572.96% | 244.74% | 351.15% | 819.15% | 1768.36% |
Ex probatis eventibus videri potest:
Ut clare comparemus mutationes perficientur sub diversis methodis instruere, TPS notitias MGR et DN sub diversis rationibus instruere sub modo s Comparavit TPS notitia diversorum instituti methodorum. Rationem collocare ad perspiciendam differentiam in mutationibus in transversis urbis instruere
MGR_1 (256 concurrente) | DN (256 concurrente) | Commoda DN cum MGR . comparati | |
Eodem computatrum locus | 16092.02 | 15137.23 | -5.93% |
Tres centra in eadem civitate | 11666.16 (72.50%) | 13241.74 (87.48%) | +13.50% |
Duo loca et tria centra | 3705.51 (23.03%) | 14478.38 (95.64%) | +290.72% |
Tria loca et tria centra | 2889.85 (17.96%) | 9429.24 (62.29%) | +226.28% |
Ex probatis eventibus videri potest:
In usu ipso, non solum operam ad notitias faciendas, sed etiam operam ad jitter faciendum attendere oportet. Ceterum, si jitter similis est cylindro coaster, experientia ipsa usoris pauperrimus erit. Monitor nos et TPS real-time output data propono.
Assumpto exemplo missionis 256 concurrentibus oltp_read_Scribe, peraeque TPS ipsius MGR_1 (RPO<>0) et DN (RPO=0) in eodem conclavi computandi, tria centra in eadem urbe, tria centra in duobus locis et tria sedium, in three places. Ipsum graphi jitterae sic se habet, et indicatio actualis indicativi cuiusque missionis hoc modo est:
CV | Eodem computatrum locus | Tres centra in eadem civitate | Duo loca et tria centra | Tria loca et tria centra |
MGR_1 | 10.04% | 8.96% | 6.02% | 8.63% |
DN | 3.68% | 3.78% | 2.55% | 4.05% |
MGR_1/DN | 272.83% | 237.04% | 236.08% | 213.09% |
Ex probatis eventibus videri potest:
In nucleo notae datorum distributae prompta promptitudo est. Defectus nodi cuiuslibet in botro non afficit promptitudinem altiorem. Ad formam instruere typicam 3 nodis cum uno magistro et duobus tergum in eodem conclavi explicantibus, usabilitatis probationes in tribus sequentibus missionibus gerere conati sumus;
Cum non est onus, interfice ducem et monitor status vices cuiusque nodi in botro et sive sit writable.
MGR | DN | |
Satus Northmanni | 0 | 0 |
princeps occidere | 0 | 0 |
Abnormes nodi tempus invenerunt | 5 | 5 |
Tempus ad redigendum III lymphaticorum ad II lymphaticorum | 23 | 8 |
MGR | DN | |
Satus Northmanni | 0 | 0 |
occidere ducem, automatice sursum trahere | 0 | 0 |
Abnormes nodi tempus invenerunt | 5 | 5 |
Tempus ad redigendum III lymphaticorum ad II lymphaticorum | 23 | 8 |
II nodi restituat III nodi tempore | 37 | 15 |
Videri potest e euentu euentuum nulla pressione condiciones:
Utere sysbench ut concurrentem accentus experimentum 16 staminum in missionis oltp_read_scribit.
Ex testi eventus chart videri potest:
Continuantes probationem, sileo ac stolidorum datorum restituimus et observamus mutationes in TPS notitia principalis datorum.
Ex testi eventus chart videri potest:
Ad maiorem defectum RPO<>0 missionis construendam, propria MTR Casus communitatis methodo ad culpam injectionem probandam in MGR faciendam. Casus designatus sic est:
- --echo
- --echo ############################################################
- --echo # 1. Deploy a 3 members group in single primary mode.
- --source include/have_debug.inc
- --source include/have_group_replication_plugin.inc
- --let $group_replication_group_name= aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
- --let $rpl_group_replication_single_primary_mode=1
- --let $rpl_skip_group_replication_start= 1
- --let $rpl_server_count= 3
- --source include/group_replication.inc
-
- --let $rpl_connection_name= server1
- --source include/rpl_connection.inc
- --let $server1_uuid= `SELECT @@server_uuid`
- --source include/start_and_bootstrap_group_replication.inc
-
- --let $rpl_connection_name= server2
- --source include/rpl_connection.inc
- --source include/start_group_replication.inc
-
- --let $rpl_connection_name= server3
- --source include/rpl_connection.inc
- --source include/start_group_replication.inc
-
- --echo
- --echo ############################################################
- --echo # 2. Init data
- --let $rpl_connection_name = server1
- --source include/rpl_connection.inc
- CREATE TABLE t1 (c1 INT PRIMARY KEY);
- INSERT INTO t1 VALUES(1);
-
- --source include/rpl_sync.inc
- SELECT * FROM t1;
-
- --let $rpl_connection_name = server2
- --source include/rpl_connection.inc
- SELECT * FROM t1;
-
- --let $rpl_connection_name = server3
- --source include/rpl_connection.inc
- SELECT * FROM t1;
-
- --echo
- --echo ############################################################
- --echo # 3. Mock crash majority members
-
- --echo # server 2 wait before write relay log
- --let $rpl_connection_name = server2
- --source include/rpl_connection.inc
- SET GLOBAL debug = '+d,wait_in_the_middle_of_trx';
-
- --echo # server 3 wait before write relay log
- --let $rpl_connection_name = server3
- --source include/rpl_connection.inc
- SET GLOBAL debug = '+d,wait_in_the_middle_of_trx';
-
-
- --echo # server 1 commit new transaction
- --let $rpl_connection_name = server1
- --source include/rpl_connection.inc
- INSERT INTO t1 VALUES(2);
- # server 1 commit t1(c1=2) record
- SELECT * FROM t1;
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- --echo # server 1 crash
- --source include/kill_mysqld.inc
-
- --echo # sleep enough time for electing new leader
- sleep 60;
-
- --echo
- --echo # server 3 check
- --let $rpl_connection_name = server3
- --source include/rpl_connection.inc
- SELECT * FROM t1;
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- --echo # server 3 crash and restart
- --source include/kill_and_restart_mysqld.inc
-
- --echo # sleep enough time for electing new leader
- sleep 60;
-
- --echo
- --echo # server 2 check
- --let $rpl_connection_name = server2
- --source include/rpl_connection.inc
- SELECT * FROM t1;
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- --echo # server 2 crash and restart
- --source include/kill_and_restart_mysqld.inc
-
- --echo # sleep enough time for electing new leader
- sleep 60;
-
- --echo
- --echo ############################################################
- --echo # 4. Check alive members, lost t1(c1=2) record
-
- --echo # server 3 check
- --let $rpl_connection_name= server3
- --source include/rpl_connection.inc
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- --echo # server 3 lost t1(c1=2) record
- SELECT * FROM t1;
-
- --echo
- --echo # server 2 check
- --let $rpl_connection_name = server2
- --source include/rpl_connection.inc
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- --echo # server 2 lost t1(c1=2) record
- SELECT * FROM t1;
- !include ../my.cnf
-
- [mysqld.1]
- loose-group_replication_member_weight=100
-
- [mysqld.2]
- loose-group_replication_member_weight=90
-
- [mysqld.3]
- loose-group_replication_member_weight=80
-
- [ENV]
- SERVER_MYPORT_3= @mysqld.3.port
- SERVER_MYSOCK_3= @mysqld.3.socket
Causae cursus eventus sunt haec:
-
- ############################################################
- # 1. Deploy a 3 members group in single primary mode.
- include/group_replication.inc [rpl_server_count=3]
- Warnings:
- Note #### Sending passwords in plain text without SSL/TLS is extremely insecure.
- Note #### Storing MySQL user name or password information in the master info repository is not secure and is therefore not recommended. Please consider using the USER and PASSWORD connection options for START SLAVE; see the 'START SLAVE Syntax' in the MySQL Manual for more information.
- [connection server1]
- [connection server1]
- include/start_and_bootstrap_group_replication.inc
- [connection server2]
- include/start_group_replication.inc
- [connection server3]
- include/start_group_replication.inc
-
- ############################################################
- # 2. Init data
- [connection server1]
- CREATE TABLE t1 (c1 INT PRIMARY KEY);
- INSERT INTO t1 VALUES(1);
- include/rpl_sync.inc
- SELECT * FROM t1;
- c1
- 1
- [connection server2]
- SELECT * FROM t1;
- c1
- 1
- [connection server3]
- SELECT * FROM t1;
- c1
- 1
-
- ############################################################
- # 3. Mock crash majority members
- # server 2 wait before write relay log
- [connection server2]
- SET GLOBAL debug = '+d,wait_in_the_middle_of_trx';
- # server 3 wait before write relay log
- [connection server3]
- SET GLOBAL debug = '+d,wait_in_the_middle_of_trx';
- # server 1 commit new transaction
- [connection server1]
- INSERT INTO t1 VALUES(2);
- SELECT * FROM t1;
- c1
- 1
- 2
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- CHANNEL_NAME MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION MEMBER_COMMUNICATION_STACK
- group_replication_applier 127.0.0.1 13000 ONLINE PRIMARY 8.0.32 XCom
- group_replication_applier 127.0.0.1 13002 ONLINE SECONDARY 8.0.32 XCom
- group_replication_applier 127.0.0.1 13004 ONLINE SECONDARY 8.0.32 XCom
- # server 1 crash
- # Kill the server
- # sleep enough time for electing new leader
-
- # server 3 check
- [connection server3]
- SELECT * FROM t1;
- c1
- 1
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- CHANNEL_NAME MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION MEMBER_COMMUNICATION_STACK
- group_replication_applier 127.0.0.1 13002 ONLINE PRIMARY 8.0.32 XCom
- group_replication_applier 127.0.0.1 13004 ONLINE SECONDARY 8.0.32 XCom
- # server 3 crash and restart
- # Kill and restart
- # sleep enough time for electing new leader
-
- # server 2 check
- [connection server2]
- SELECT * FROM t1;
- c1
- 1
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- CHANNEL_NAME MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION MEMBER_COMMUNICATION_STACK
- group_replication_applier 127.0.0.1 13002 ONLINE PRIMARY 8.0.32 XCom
- group_replication_applier 127.0.0.1 13004 UNREACHABLE SECONDARY 8.0.32 XCom
- # server 2 crash and restart
- # Kill and restart
- # sleep enough time for electing new leader
-
- ############################################################
- # 4. Check alive members, lost t1(c1=2) record
- # server 3 check
- [connection server3]
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- CHANNEL_NAME MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION MEMBER_COMMUNICATION_STACK
- group_replication_applier NULL OFFLINE
- # server 3 lost t1(c1=2) record
- SELECT * FROM t1;
- c1
- 1
-
- # server 2 check
- [connection server2]
- select CHANNEL_NAME,MEMBER_HOST,MEMBER_PORT,MEMBER_STATE,MEMBER_ROLE,MEMBER_VERSION,MEMBER_COMMUNICATION_STACK from performance_schema.replication_group_members order by MEMBER_PORT;
- CHANNEL_NAME MEMBER_HOST MEMBER_PORT MEMBER_STATE MEMBER_ROLE MEMBER_VERSION MEMBER_COMMUNICATION_STACK
- group_replication_applier NULL OFFLINE
- # server 2 lost t1(c1=2) record
- SELECT * FROM t1;
- c1
- 1
Logica approximata casus qui numerorum absentium exprimit talis est:
Secundum casum superius, pro MGR, cum maior pars ministrantium descendit et principale datorum perpendat, post restautionem datorum sto, notitia damna RPO<>0 erit, et recordum prosperi committendi quod erat. primum ad clientem rediit periit.
Nam DN maioris consecutio requirit ut trabes in pluribus perseverent, ne in superiori quidem missione, notitia non amittetur et RPO=0 praestari potest.
In tradito modo activo-statis MySQL, the standby database plerumque continet IO fila et stamina applica pendent in caput Applicare playback of the standby database.
Sysbench utimur ad probationem missionis oltp_write_ tantum, et probamus durationem morae in stabulo playback datorum sub 100 concurrentia et numero eventuum diversorum.In standby database playbacks mora tempus determinari potest per vigilantiam APPLYING_TRANSACTION_ORIGINAL_COMMIT_TIMESTAMP columnae perficiendi_schema.replication_applier_status_by_ operarii mensae ad videndum num unusquisque operarius tempore reali laborat ad determinare an replicatio finiatur.
Ex testi eventus chart videri potest:
MGR | DN | ||
perficientur | Legere transaction | plana | plana |
scribentes injustitiam transaction | Effectum non tam bonum quam DN cum RPO<>0 Cum RPO = 0, effectus longe inferior DN Crucem-civitatis deployment perficientur gravissime excidit per XXVII% ~ LXXXII% | Scribere transaction perficientur multo altior quam MGR Crux urbis instruere perficiendi decrescit per 4% ad 37%. | |
Jitter | Euismod jitter gravis est, jitter range est VI ~ X% | Relative stabulum ad 3%, dimidium tantum MGR | |
RTO | Pelagus database quod descendit | Abnormitas in 5s deprehensa est, et ad duos nodi in 23s redacta. | Abnormitas in 5s deprehensa est et ad duos nodos redacta in octo s. |
Sileo pelagus bibliotheca | Abnormitas in secundis quinque deprehensa est, et tres nodi in 37 secundis restituti sunt. | Abnormitas in secundis quinque deprehensa est, et tres nodi in 15 secundis restituuntur. | |
Tergum database downtime | Negotiatio datorum principalis omissa ad 0 pro 20 secundis. Sublevari potest per expressam conversionem in coetus_replication_paxos_single_ductoris. | Continua alta dispositis principalis database | |
Standby database sileo | Negotiatio datorum principalis omissa ad 0 pro 10 secundis. Diserte conversus in group_replication_paxos_single_leader quoque effectum non habet. | Continua alta dispositis principalis database | |
RPO | Casum recursu | RPO <> 0 cum pars maioris descenderit Euismod et RPO=0 utrumque habere non potest. | RPO = 0 |
Standby database mora | Tergum database playback tempus | Mora inter activam et standby maxima est. Latentia prima et prima-tergum simul fieri non potest. | Totum tempus in altiore stabulo playback datorum consumptum est 4% of MGR, quod est 25 temporibus illius MGR. |
modulus | key parametri |
| Default configuration, nullum opus doctorum conformationem customize |
Postquam altius technica analysis et effectus comparationis;PolarDB-X Cum suo evoluta X-Paxos protocollo et serie consiliorum optimized, DN multa commoda in MySQL MGR demonstravit in terminis faciendis, rectitudinis, promptitudinis et facultatis supra caput. Tamen, MGR etiam in MySQL oecosystematis situm obtinet , variae condiciones ut eu eu jitter datorum sto, machinae cella calamitatis recuperatio ambigua perficiendi, ac stabilitas considerari debes suscipio.
Adversus magnas scalas, altae concurrentias et necessariae promptitudinis requisita, machina reposita PolarDB-X singulares technicas commoda et praestantes effectus habet.PolarDB-XDN-substructio centralised (versio mensurae) bonam proportionem inter functiones et effectus habet, eamque solutionem datorum competitive maxime facit.