@powersync/service-module-mysql 0.0.0-dev-20260602073133 → 0.0.0-dev-20260909133214
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +134 -4
- package/dist/api/MySQLRouteAPIAdapter.d.ts +3 -3
- package/dist/api/MySQLRouteAPIAdapter.js +6 -5
- package/dist/api/MySQLRouteAPIAdapter.js.map +1 -1
- package/dist/common/ReplicatedGTID.d.ts +16 -9
- package/dist/common/ReplicatedGTID.js +49 -25
- package/dist/common/ReplicatedGTID.js.map +1 -1
- package/dist/common/check-source-configuration.js +11 -0
- package/dist/common/check-source-configuration.js.map +1 -1
- package/dist/common/read-executed-gtid.d.ts +11 -1
- package/dist/common/read-executed-gtid.js +67 -5
- package/dist/common/read-executed-gtid.js.map +1 -1
- package/dist/common/schema-utils.js +4 -0
- package/dist/common/schema-utils.js.map +1 -1
- package/dist/replication/BinLogReplicationJob.d.ts +1 -1
- package/dist/replication/BinLogReplicationJob.js +6 -4
- package/dist/replication/BinLogReplicationJob.js.map +1 -1
- package/dist/replication/BinLogReplicator.js +1 -1
- package/dist/replication/BinLogReplicator.js.map +1 -1
- package/dist/replication/BinLogStream.d.ts +8 -0
- package/dist/replication/BinLogStream.js +62 -22
- package/dist/replication/BinLogStream.js.map +1 -1
- package/dist/replication/MySQLConnectionManager.js +6 -0
- package/dist/replication/MySQLConnectionManager.js.map +1 -1
- package/dist/replication/zongji/BinLogListener.d.ts +41 -2
- package/dist/replication/zongji/BinLogListener.js +104 -30
- package/dist/replication/zongji/BinLogListener.js.map +1 -1
- package/dist/utils/mysql-utils.d.ts +6 -0
- package/dist/utils/mysql-utils.js +10 -0
- package/dist/utils/mysql-utils.js.map +1 -1
- package/package.json +12 -22
- package/src/api/MySQLRouteAPIAdapter.ts +10 -9
- package/src/common/ReplicatedGTID.ts +65 -32
- package/src/common/check-source-configuration.ts +15 -0
- package/src/common/read-executed-gtid.ts +76 -6
- package/src/common/schema-utils.ts +8 -0
- package/src/replication/BinLogReplicationJob.ts +6 -4
- package/src/replication/BinLogReplicator.ts +1 -1
- package/src/replication/BinLogStream.ts +67 -22
- package/src/replication/MySQLConnectionManager.ts +6 -0
- package/src/replication/zongji/BinLogListener.ts +131 -30
- package/src/utils/mysql-utils.ts +11 -0
- package/test/src/BinLogListener.test.ts +140 -1
- package/test/src/BinlogStreamUtils.ts +23 -23
- package/test/src/ReplicatedGTID.test.ts +138 -0
- package/test/src/check-source-configuration.test.ts +70 -0
- package/test/src/mysql-utils.test.ts +19 -1
- package/test/src/read-executed-gtid.test.ts +188 -0
- package/test/src/util.ts +27 -2
- package/tsconfig.json +0 -3
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../../src/common/schema-utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"schema-utils.js","sourceRoot":"","sources":["../../src/common/schema-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export declare class BinLogReplicationJob extends replication.AbstractReplicatio
|
|
|
7
7
|
private connectionFactory;
|
|
8
8
|
private lastStream;
|
|
9
9
|
constructor(options: BinLogReplicationJobOptions);
|
|
10
|
-
get
|
|
10
|
+
get replicationStreamName(): string;
|
|
11
11
|
keepAlive(): Promise<void>;
|
|
12
12
|
replicate(): Promise<void>;
|
|
13
13
|
replicateOnce(): Promise<void>;
|
|
@@ -9,11 +9,13 @@ export class BinLogReplicationJob extends replication.AbstractReplicationJob {
|
|
|
9
9
|
this.logger = options.storage.logger;
|
|
10
10
|
this.connectionFactory = options.connectionFactory;
|
|
11
11
|
}
|
|
12
|
-
get
|
|
13
|
-
return this.options.storage.
|
|
12
|
+
get replicationStreamName() {
|
|
13
|
+
return this.options.storage.replicationStreamName;
|
|
14
14
|
}
|
|
15
15
|
async keepAlive() {
|
|
16
|
-
//
|
|
16
|
+
// The binlog connection is kept alive by the MySQL server heartbeat mechanism. The control
|
|
17
|
+
// connection carries no traffic between metadata queries, so probe its liveness here.
|
|
18
|
+
this.lastStream?.probeControlConnection();
|
|
17
19
|
}
|
|
18
20
|
async replicate() {
|
|
19
21
|
try {
|
|
@@ -28,7 +30,7 @@ export class BinLogReplicationJob extends replication.AbstractReplicationJob {
|
|
|
28
30
|
// Report the error if relevant, before retrying
|
|
29
31
|
container.reporter.captureException(e, {
|
|
30
32
|
metadata: {
|
|
31
|
-
replication_slot: this.
|
|
33
|
+
replication_slot: this.replicationStreamName
|
|
32
34
|
}
|
|
33
35
|
});
|
|
34
36
|
// This sets the retry delay
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinLogReplicationJob.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicationJob.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAOjD,MAAM,OAAO,oBAAqB,SAAQ,WAAW,CAAC,sBAAsB;IAClE,iBAAiB,CAAgC;IACjD,UAAU,GAAwB,IAAI,CAAC;IAE/C,YAAY,OAAoC;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;QACrC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,IAAI,
|
|
1
|
+
{"version":3,"file":"BinLogReplicationJob.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicationJob.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export class BinLogReplicator extends replication.AbstractReplicator {
|
|
|
9
9
|
}
|
|
10
10
|
createJob(options) {
|
|
11
11
|
return new BinLogReplicationJob({
|
|
12
|
-
id: this.createJobId(options.storage.
|
|
12
|
+
id: this.createJobId(options.storage.replicationStreamId),
|
|
13
13
|
storage: options.storage,
|
|
14
14
|
metrics: this.metrics,
|
|
15
15
|
lock: options.lock,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinLogReplicator.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAOjE,MAAM,OAAO,gBAAiB,SAAQ,WAAW,CAAC,kBAAwC;IACvE,iBAAiB,CAAgC;IAElE,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,OAAO,IAAI,oBAAoB,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"BinLogReplicator.js","sourceRoot":"","sources":["../../src/replication/BinLogReplicator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAOjE,MAAM,OAAO,gBAAiB,SAAQ,WAAW,CAAC,kBAAwC;IACvE,iBAAiB,CAAgC;IAElE,YAAY,OAAgC;QAC1C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACrD,CAAC;IAED,SAAS,CAAC,OAAqC;QAC7C,OAAO,IAAI,oBAAoB,CAAC;YAC9B,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;YACzD,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;YACzC,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,gBAAgD;QAC5D,wFAAwF;IAC1F,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,OAAO,MAAM,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACnF,CAAC;CACF"}
|
|
@@ -21,8 +21,10 @@ export declare class BinLogStream {
|
|
|
21
21
|
private readonly connections;
|
|
22
22
|
private readonly abortSignal;
|
|
23
23
|
private readonly logger;
|
|
24
|
+
private activeServerUuid;
|
|
24
25
|
private tableCache;
|
|
25
26
|
private replicationLag;
|
|
27
|
+
private binLogListener;
|
|
26
28
|
constructor(options: BinLogStreamOptions);
|
|
27
29
|
get connectionTag(): string;
|
|
28
30
|
private get metrics();
|
|
@@ -45,6 +47,7 @@ export declare class BinLogStream {
|
|
|
45
47
|
startInitialReplication(): Promise<void>;
|
|
46
48
|
private snapshotTable;
|
|
47
49
|
replicate(): Promise<void>;
|
|
50
|
+
private ensureActiveServerUuid;
|
|
48
51
|
initReplication(): Promise<void>;
|
|
49
52
|
private getTables;
|
|
50
53
|
streamChanges(): Promise<void>;
|
|
@@ -56,5 +59,10 @@ export declare class BinLogStream {
|
|
|
56
59
|
private toSQLiteRow;
|
|
57
60
|
private writeChange;
|
|
58
61
|
getReplicationLagMillis(): number | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Probe the liveness of the BinLog Listener's control connection. Called from the replication
|
|
64
|
+
* job's keepAlive. Does nothing before streaming starts (during the initial snapshot).
|
|
65
|
+
*/
|
|
66
|
+
probeControlConnection(): void;
|
|
59
67
|
tryRollback(promiseConnection: mysqlPromise.Connection): Promise<void>;
|
|
60
68
|
}
|
|
@@ -27,15 +27,17 @@ export class BinLogStream {
|
|
|
27
27
|
connections;
|
|
28
28
|
abortSignal;
|
|
29
29
|
logger;
|
|
30
|
+
activeServerUuid = null;
|
|
30
31
|
tableCache = new Map();
|
|
31
32
|
replicationLag = new ReplicationLagTracker();
|
|
33
|
+
binLogListener = null;
|
|
32
34
|
constructor(options) {
|
|
33
35
|
this.options = options;
|
|
34
36
|
this.logger = options.logger ?? defaultLogger;
|
|
35
37
|
this.storage = options.storage;
|
|
36
38
|
this.connections = options.connections;
|
|
37
39
|
this.syncRules = options.storage.getParsedSyncRules({ defaultSchema: this.defaultSchema });
|
|
38
|
-
this.groupId = options.storage.
|
|
40
|
+
this.groupId = options.storage.replicationStreamId;
|
|
39
41
|
this.abortSignal = options.abortSignal;
|
|
40
42
|
}
|
|
41
43
|
get connectionTag() {
|
|
@@ -141,18 +143,22 @@ export class BinLogStream {
|
|
|
141
143
|
*/
|
|
142
144
|
async checkInitialReplicated() {
|
|
143
145
|
const status = await this.storage.getStatus();
|
|
144
|
-
const lastKnowGTID = status.
|
|
145
|
-
if (status.
|
|
146
|
+
const lastKnowGTID = status.resumeLsn ? common.ReplicatedGTID.fromSerialized(status.resumeLsn) : null;
|
|
147
|
+
if (status.snapshotDone) {
|
|
146
148
|
this.logger.info(`Initial replication already done.`);
|
|
147
149
|
if (lastKnowGTID) {
|
|
148
|
-
// Check if the specific binlog file is still available. If it isn't, we need to snapshot again.
|
|
149
150
|
const connection = await this.connections.getConnection();
|
|
150
151
|
try {
|
|
151
|
-
|
|
152
|
+
// Check if the active server uuid matches the one in the GTID
|
|
153
|
+
if (this.activeServerUuid !== lastKnowGTID.serverUuid) {
|
|
154
|
+
this.logger.info(`The source server uuid has changed. Active server uuid ${this.activeServerUuid} does not match the server uuid from the resume checkpoint: ${lastKnowGTID.serverUuid}, re-snapshotting to ensure consistency.`);
|
|
155
|
+
return false;
|
|
156
|
+
}
|
|
157
|
+
const isAvailable = await common.isGtidPositionStillAvailable(connection, lastKnowGTID);
|
|
152
158
|
if (!isAvailable) {
|
|
153
|
-
this.logger.info(`
|
|
159
|
+
this.logger.info(`Resume GTID ${lastKnowGTID.raw} at ${lastKnowGTID.position.filename}:${lastKnowGTID.position.offset} is no longer present in the executed GTID history or available BinLogs, re-snapshotting to ensure consistency.`);
|
|
160
|
+
return false;
|
|
154
161
|
}
|
|
155
|
-
return isAvailable;
|
|
156
162
|
}
|
|
157
163
|
finally {
|
|
158
164
|
connection.release();
|
|
@@ -184,9 +190,10 @@ export class BinLogStream {
|
|
|
184
190
|
const sourceTables = this.syncRules.getSourceTables();
|
|
185
191
|
const flushResults = await this.storage.startBatch({
|
|
186
192
|
logger: this.logger,
|
|
187
|
-
zeroLSN: common.ReplicatedGTID.ZERO.comparable,
|
|
193
|
+
zeroLSN: common.ReplicatedGTID.ZERO(this.activeServerUuid).comparable,
|
|
188
194
|
defaultSchema: this.defaultSchema,
|
|
189
|
-
storeCurrentData: false
|
|
195
|
+
storeCurrentData: false,
|
|
196
|
+
signal: this.abortSignal
|
|
190
197
|
}, async (batch) => {
|
|
191
198
|
for (let tablePattern of sourceTables) {
|
|
192
199
|
const tables = await this.getQualifiedTableNames(batch, tablePattern);
|
|
@@ -212,8 +219,8 @@ export class BinLogStream {
|
|
|
212
219
|
connection.release();
|
|
213
220
|
}
|
|
214
221
|
if (lastOp != null) {
|
|
215
|
-
//
|
|
216
|
-
await this.storage.
|
|
222
|
+
// Compact storage _after_ initial replication, but _before_ we switch to this replication stream.
|
|
223
|
+
await this.storage.compactInitialReplication({
|
|
217
224
|
// No checkpoint yet, but we do have the opId.
|
|
218
225
|
maxOpId: lastOp,
|
|
219
226
|
signal: this.abortSignal
|
|
@@ -264,7 +271,19 @@ export class BinLogStream {
|
|
|
264
271
|
throw e;
|
|
265
272
|
}
|
|
266
273
|
}
|
|
274
|
+
async ensureActiveServerUuid() {
|
|
275
|
+
if (this.activeServerUuid == null) {
|
|
276
|
+
const connection = await this.connections.getConnection();
|
|
277
|
+
try {
|
|
278
|
+
this.activeServerUuid = await common.readServerUuid(connection);
|
|
279
|
+
}
|
|
280
|
+
finally {
|
|
281
|
+
connection.release();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
}
|
|
267
285
|
async initReplication() {
|
|
286
|
+
await this.ensureActiveServerUuid();
|
|
268
287
|
const connection = await this.connections.getConnection();
|
|
269
288
|
const errors = await common.checkSourceConfiguration(connection);
|
|
270
289
|
connection.release();
|
|
@@ -281,9 +300,10 @@ export class BinLogStream {
|
|
|
281
300
|
const sourceTables = this.syncRules.getSourceTables();
|
|
282
301
|
await this.storage.startBatch({
|
|
283
302
|
logger: this.logger,
|
|
284
|
-
zeroLSN: common.ReplicatedGTID.ZERO.comparable,
|
|
303
|
+
zeroLSN: common.ReplicatedGTID.ZERO(this.activeServerUuid).comparable,
|
|
285
304
|
defaultSchema: this.defaultSchema,
|
|
286
|
-
storeCurrentData: false
|
|
305
|
+
storeCurrentData: false,
|
|
306
|
+
signal: this.abortSignal
|
|
287
307
|
}, async (batch) => {
|
|
288
308
|
for (let tablePattern of sourceTables) {
|
|
289
309
|
await this.getQualifiedTableNames(batch, tablePattern);
|
|
@@ -301,18 +321,29 @@ export class BinLogStream {
|
|
|
301
321
|
return tables;
|
|
302
322
|
}
|
|
303
323
|
async streamChanges() {
|
|
304
|
-
|
|
324
|
+
await this.ensureActiveServerUuid();
|
|
325
|
+
const serverId = createRandomServerId(this.storage.replicationStreamId);
|
|
305
326
|
const connection = await this.connections.getConnection();
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
327
|
+
let fromGTID;
|
|
328
|
+
try {
|
|
329
|
+
const { resumeLsn: resume_lsn } = await this.storage.getStatus();
|
|
330
|
+
if (resume_lsn) {
|
|
331
|
+
this.logger.info(`Existing resume LSN found: ${resume_lsn}`);
|
|
332
|
+
}
|
|
333
|
+
fromGTID = resume_lsn
|
|
334
|
+
? common.ReplicatedGTID.fromSerialized(resume_lsn)
|
|
335
|
+
: await common.readExecutedGtid(connection);
|
|
336
|
+
}
|
|
337
|
+
finally {
|
|
338
|
+
connection.release();
|
|
309
339
|
}
|
|
310
|
-
const fromGTID = checkpoint_lsn
|
|
311
|
-
? common.ReplicatedGTID.fromSerialized(checkpoint_lsn)
|
|
312
|
-
: await common.readExecutedGtid(connection);
|
|
313
|
-
connection.release();
|
|
314
340
|
if (!this.stopped) {
|
|
315
|
-
await this.storage.startBatch({
|
|
341
|
+
await this.storage.startBatch({
|
|
342
|
+
zeroLSN: common.ReplicatedGTID.ZERO(this.activeServerUuid).comparable,
|
|
343
|
+
defaultSchema: this.defaultSchema,
|
|
344
|
+
storeCurrentData: false,
|
|
345
|
+
signal: this.abortSignal
|
|
346
|
+
}, async (batch) => {
|
|
316
347
|
const binlogEventHandler = this.createBinlogEventHandler(batch);
|
|
317
348
|
const binlogListener = new BinLogListener({
|
|
318
349
|
logger: this.logger,
|
|
@@ -320,8 +351,10 @@ export class BinLogStream {
|
|
|
320
351
|
startGTID: fromGTID,
|
|
321
352
|
connectionManager: this.connections,
|
|
322
353
|
serverId: serverId,
|
|
354
|
+
activeServerUuid: this.activeServerUuid,
|
|
323
355
|
eventHandler: binlogEventHandler
|
|
324
356
|
});
|
|
357
|
+
this.binLogListener = binlogListener;
|
|
325
358
|
this.abortSignal.addEventListener('abort', async () => {
|
|
326
359
|
await binlogListener.stop();
|
|
327
360
|
}, { once: true });
|
|
@@ -513,6 +546,13 @@ export class BinLogStream {
|
|
|
513
546
|
getReplicationLagMillis() {
|
|
514
547
|
return this.replicationLag.getLagMillis();
|
|
515
548
|
}
|
|
549
|
+
/**
|
|
550
|
+
* Probe the liveness of the BinLog Listener's control connection. Called from the replication
|
|
551
|
+
* job's keepAlive. Does nothing before streaming starts (during the initial snapshot).
|
|
552
|
+
*/
|
|
553
|
+
probeControlConnection() {
|
|
554
|
+
this.binLogListener?.probeControlConnection();
|
|
555
|
+
}
|
|
516
556
|
async tryRollback(promiseConnection) {
|
|
517
557
|
try {
|
|
518
558
|
await promiseConnection.query('ROLLBACK');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinLogStream.js","sourceRoot":"","sources":["../../src/replication/BinLogStream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BinLogStream.js","sourceRoot":"","sources":["../../src/replication/BinLogStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,11 +35,17 @@ export class MySQLConnectionManager extends BaseObserver {
|
|
|
35
35
|
* Create a new replication listener
|
|
36
36
|
*/
|
|
37
37
|
createBinlogListener() {
|
|
38
|
+
// These options apply to both the binlog connection and the control connection Zongji creates.
|
|
38
39
|
const listener = new ZongJi({
|
|
39
40
|
host: this.options.hostname,
|
|
40
41
|
port: this.options.port,
|
|
41
42
|
user: this.options.username,
|
|
42
43
|
password: this.options.password,
|
|
44
|
+
// TCP keepalive is disabled by default in @vlasky/mysql. Without it, the idle control
|
|
45
|
+
// connection can be silently dropped by stateful firewalls, freezing replication on the
|
|
46
|
+
// next table metadata query until the TCP retransmission timeout (~950s).
|
|
47
|
+
enableKeepAlive: true,
|
|
48
|
+
keepAliveInitialDelay: mysql_utils.TCP_KEEPALIVE_INITIAL_DELAY,
|
|
43
49
|
// We want to avoid parsing date/time values to Date, because that drops sub-millisecond precision.
|
|
44
50
|
dateStrings: true,
|
|
45
51
|
timeZone: 'Z'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MySQLConnectionManager.js","sourceRoot":"","sources":["../../src/replication/MySQLConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MySQLConnectionManager.js","sourceRoot":"","sources":["../../src/replication/MySQLConnectionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,16 @@ import { MySQLConnectionManager } from '../MySQLConnectionManager.js';
|
|
|
8
8
|
* Seconds of inactivity after which a keepalive event is sent by the MySQL server.
|
|
9
9
|
*/
|
|
10
10
|
export declare const KEEPALIVE_INACTIVITY_THRESHOLD = 30;
|
|
11
|
+
/**
|
|
12
|
+
* Maximum time in milliseconds to wait for Zongji to stop before force-closing its control connection.
|
|
13
|
+
*/
|
|
14
|
+
export declare const ZONGJI_STOP_TIMEOUT = 5000;
|
|
15
|
+
/**
|
|
16
|
+
* Maximum time in milliseconds a control connection liveness probe may execute before the
|
|
17
|
+
* connection is considered dead. Time the probe spends queued behind other control queries
|
|
18
|
+
* does not count towards this.
|
|
19
|
+
*/
|
|
20
|
+
export declare const CTRL_CONNECTION_PROBE_TIMEOUT = 5000;
|
|
11
21
|
export type Row = Record<string, any>;
|
|
12
22
|
/**
|
|
13
23
|
* Schema changes that are detectable by inspecting query events.
|
|
@@ -49,10 +59,18 @@ export interface BinLogListenerOptions {
|
|
|
49
59
|
connectionManager: MySQLConnectionManager;
|
|
50
60
|
eventHandler: BinLogEventHandler;
|
|
51
61
|
sourceTables: TablePattern[];
|
|
62
|
+
/**
|
|
63
|
+
* Id that identifies this replication client.
|
|
64
|
+
*/
|
|
52
65
|
serverId: number;
|
|
66
|
+
/**
|
|
67
|
+
* The server uuid of the source MySQL server that is being replicated.
|
|
68
|
+
*/
|
|
69
|
+
activeServerUuid: string;
|
|
53
70
|
startGTID: common.ReplicatedGTID;
|
|
54
71
|
logger?: Logger;
|
|
55
72
|
keepAliveInactivitySeconds?: number;
|
|
73
|
+
ctrlConnectionProbeTimeoutMs?: number;
|
|
56
74
|
}
|
|
57
75
|
/**
|
|
58
76
|
* Wrapper class for the Zongji BinLog listener. Internally handles the creation and management of the listener and posts
|
|
@@ -61,8 +79,6 @@ export interface BinLogListenerOptions {
|
|
|
61
79
|
export declare class BinLogListener {
|
|
62
80
|
options: BinLogListenerOptions;
|
|
63
81
|
private sqlParser;
|
|
64
|
-
private connectionManager;
|
|
65
|
-
private eventHandler;
|
|
66
82
|
private binLogPosition;
|
|
67
83
|
private currentGTID;
|
|
68
84
|
private logger;
|
|
@@ -70,6 +86,7 @@ export declare class BinLogListener {
|
|
|
70
86
|
private databaseFilter;
|
|
71
87
|
private isStopped;
|
|
72
88
|
private isStopping;
|
|
89
|
+
private probePending;
|
|
73
90
|
private isTransactionOpen;
|
|
74
91
|
zongji: ZongJi;
|
|
75
92
|
processingQueue: async.QueueObject<BinLogEvent>;
|
|
@@ -78,6 +95,9 @@ export declare class BinLogListener {
|
|
|
78
95
|
*/
|
|
79
96
|
queueMemoryUsage: number;
|
|
80
97
|
constructor(options: BinLogListenerOptions);
|
|
98
|
+
private get connectionManager();
|
|
99
|
+
private get eventHandler();
|
|
100
|
+
private get activeServerUuid();
|
|
81
101
|
/**
|
|
82
102
|
* The queue memory limit in bytes as defined in the connection options.
|
|
83
103
|
* @private
|
|
@@ -88,10 +108,29 @@ export declare class BinLogListener {
|
|
|
88
108
|
private stopZongji;
|
|
89
109
|
stop(): Promise<void>;
|
|
90
110
|
replicateUntilStopped(): Promise<void>;
|
|
111
|
+
/**
|
|
112
|
+
* The binlog connection is kept alive by the MySQL server heartbeat, but the control connection
|
|
113
|
+
* carries no traffic between metadata queries. TCP keepalive stops it from being dropped when idle,
|
|
114
|
+
* but detects an already dead connection slowly, so the replication job's keepAlive additionally
|
|
115
|
+
* probes it with a lightweight query and stops the listener (restarting replication) if the probe
|
|
116
|
+
* does not respond in time.
|
|
117
|
+
*
|
|
118
|
+
* The driver starts the query timeout when the query begins executing, not when it is queued, so a
|
|
119
|
+
* probe waiting behind a legitimately slow metadata query does not produce a false failure. A probe
|
|
120
|
+
* queued on a dead socket is failed together with the queued query by TCP keepalive on the socket.
|
|
121
|
+
*/
|
|
122
|
+
probeControlConnection(): void;
|
|
91
123
|
private createProcessingQueue;
|
|
92
124
|
private createZongjiListener;
|
|
93
125
|
isQueueOverCapacity(): boolean;
|
|
94
126
|
private createQueueWorker;
|
|
127
|
+
/**
|
|
128
|
+
* Advances the binlog position to the end of a committed transaction and updates the currentGTID to match.
|
|
129
|
+
* This ensures subsequent heartbeat keepalives report an LSN that is not behind the last commit LSN,
|
|
130
|
+
* which would otherwise block checkpoint creation until the next transaction arrives.
|
|
131
|
+
* Returns the commit LSN.
|
|
132
|
+
*/
|
|
133
|
+
private advanceCommitPosition;
|
|
95
134
|
private processQueryEvent;
|
|
96
135
|
/**
|
|
97
136
|
* Function that interprets a DDL query for any applicable schema changes.
|