@effect/cluster 0.53.5 → 0.53.6
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/dist/cjs/ShardingConfig.js +2 -0
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/SqlRunnerStorage.js +149 -65
- package/dist/cjs/SqlRunnerStorage.js.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +8 -0
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/esm/ShardingConfig.js +2 -0
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/SqlRunnerStorage.js +149 -65
- package/dist/esm/SqlRunnerStorage.js.map +1 -1
- package/package.json +4 -4
- package/src/ShardingConfig.ts +9 -0
- package/src/SqlRunnerStorage.ts +134 -22
|
@@ -42,6 +42,7 @@ const defaults = exports.defaults = {
|
|
|
42
42
|
preemptiveShutdown: true,
|
|
43
43
|
shardLockRefreshInterval: /*#__PURE__*/Duration.seconds(10),
|
|
44
44
|
shardLockExpiration: /*#__PURE__*/Duration.seconds(35),
|
|
45
|
+
shardLockDisableAdvisory: false,
|
|
45
46
|
entityMailboxCapacity: 4096,
|
|
46
47
|
entityMaxIdleTime: /*#__PURE__*/Duration.minutes(1),
|
|
47
48
|
entityRegistrationTimeout: /*#__PURE__*/Duration.minutes(1),
|
|
@@ -86,6 +87,7 @@ const config = exports.config = /*#__PURE__*/Config.all({
|
|
|
86
87
|
preemptiveShutdown: /*#__PURE__*/Config.boolean("preemptiveShutdown").pipe(/*#__PURE__*/Config.withDefault(defaults.preemptiveShutdown), /*#__PURE__*/Config.withDescription("Start shutting down as soon as an Entity has started shutting down.")),
|
|
87
88
|
shardLockRefreshInterval: /*#__PURE__*/Config.duration("shardLockRefreshInterval").pipe(/*#__PURE__*/Config.withDefault(defaults.shardLockRefreshInterval), /*#__PURE__*/Config.withDescription("Shard lock refresh interval.")),
|
|
88
89
|
shardLockExpiration: /*#__PURE__*/Config.duration("shardLockExpiration").pipe(/*#__PURE__*/Config.withDefault(defaults.shardLockExpiration), /*#__PURE__*/Config.withDescription("Shard lock expiration duration.")),
|
|
90
|
+
shardLockDisableAdvisory: /*#__PURE__*/Config.boolean("shardLockDisableAdvisory").pipe(/*#__PURE__*/Config.withDefault(defaults.shardLockDisableAdvisory), /*#__PURE__*/Config.withDescription("Disable the use of advisory locks for shard locking.")),
|
|
89
91
|
entityMailboxCapacity: /*#__PURE__*/Config.integer("entityMailboxCapacity").pipe(/*#__PURE__*/Config.withDefault(defaults.entityMailboxCapacity), /*#__PURE__*/Config.withDescription("The default capacity of the mailbox for entities.")),
|
|
90
92
|
entityMaxIdleTime: /*#__PURE__*/Config.duration("entityMaxIdleTime").pipe(/*#__PURE__*/Config.withDefault(defaults.entityMaxIdleTime), /*#__PURE__*/Config.withDescription("The maximum duration of inactivity (i.e. without receiving a message) after which an entity will be interrupted.")),
|
|
91
93
|
entityRegistrationTimeout: /*#__PURE__*/Config.duration("entityRegistrationTimeout").pipe(/*#__PURE__*/Config.withDefault(defaults.entityRegistrationTimeout), /*#__PURE__*/Config.withDescription("If an entity does not register itself within this time after a message is sent to it, the message will be marked as failed.")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShardingConfig.js","names":["Config","_interopRequireWildcard","require","ConfigProvider","Context","Duration","Effect","Layer","Option","_RunnerAddress","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardingConfig","Tag","exports","defaultRunnerAddress","RunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","runnerShardWeight","shardsPerGroup","shardGroups","preemptiveShutdown","shardLockRefreshInterval","seconds","shardLockExpiration","entityMailboxCapacity","entityMaxIdleTime","minutes","entityRegistrationTimeout","entityTerminationTimeout","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","runnerHealthCheckInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","boolean","duration","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,cAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAH,uBAAA,CAAAC,OAAA;AAEA,IAAAG,QAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAL,uBAAA,CAAAC,OAAA;AACA,IAAAK,KAAA,GAAAN,uBAAA,CAAAC,OAAA;AACA,IAAAM,MAAA,GAAAP,uBAAA,CAAAC,OAAA;AACA,IAAAO,cAAA,GAAAP,OAAA;AAAkD,SAAAD,wBAAAS,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAX,uBAAA,YAAAA,CAAAS,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAZlD;;;;AAcA;;;;;;AAMM,MAAOkB,cAAe,sBAAQzB,OAAO,CAAC0B,GAAG,CAAC,gCAAgC,CAAC,
|
|
1
|
+
{"version":3,"file":"ShardingConfig.js","names":["Config","_interopRequireWildcard","require","ConfigProvider","Context","Duration","Effect","Layer","Option","_RunnerAddress","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardingConfig","Tag","exports","defaultRunnerAddress","RunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","runnerShardWeight","shardsPerGroup","shardGroups","preemptiveShutdown","shardLockRefreshInterval","seconds","shardLockExpiration","shardLockDisableAdvisory","entityMailboxCapacity","entityMaxIdleTime","minutes","entityRegistrationTimeout","entityTerminationTimeout","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","runnerHealthCheckInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","boolean","duration","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -27,6 +27,7 @@ const withTracerDisabled = /*#__PURE__*/Effect.withTracerEnabled(false);
|
|
|
27
27
|
*/
|
|
28
28
|
const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
29
29
|
const config = yield* ShardingConfig.ShardingConfig;
|
|
30
|
+
const disableAdvisoryLocks = config.shardLockDisableAdvisory;
|
|
30
31
|
const sql = (yield* SqlClient.SqlClient).withoutTransforms();
|
|
31
32
|
const prefix = options?.prefix ?? "cluster";
|
|
32
33
|
const table = name => `${prefix}_${name}`;
|
|
@@ -119,8 +120,20 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
119
120
|
acquired_at DATETIME NOT NULL
|
|
120
121
|
)
|
|
121
122
|
`,
|
|
122
|
-
mysql: () =>
|
|
123
|
-
|
|
123
|
+
mysql: () => sql`
|
|
124
|
+
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
125
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
|
126
|
+
address VARCHAR(255) NOT NULL,
|
|
127
|
+
acquired_at DATETIME NOT NULL
|
|
128
|
+
)
|
|
129
|
+
`,
|
|
130
|
+
pg: () => sql`
|
|
131
|
+
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
132
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
|
133
|
+
address VARCHAR(255) NOT NULL,
|
|
134
|
+
acquired_at TIMESTAMP NOT NULL
|
|
135
|
+
)
|
|
136
|
+
`,
|
|
124
137
|
orElse: () =>
|
|
125
138
|
// sqlite
|
|
126
139
|
sql`
|
|
@@ -198,59 +211,91 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
198
211
|
const [query, params] = effect.compile();
|
|
199
212
|
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
200
213
|
};
|
|
214
|
+
const execWithLockConnUnprepared = effect => {
|
|
215
|
+
if (!lockConn) return effect.values;
|
|
216
|
+
const [query, params] = effect.compile();
|
|
217
|
+
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeUnprepared(query, params, undefined)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
218
|
+
};
|
|
201
219
|
const execWithLockConnValues = effect => {
|
|
202
220
|
if (!lockConn) return effect.values;
|
|
203
221
|
const [query, params] = effect.compile();
|
|
204
222
|
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
205
223
|
};
|
|
206
224
|
const acquireLock = sql.onDialectOrElse({
|
|
207
|
-
pg: () =>
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
225
|
+
pg: () => {
|
|
226
|
+
if (disableAdvisoryLocks) {
|
|
227
|
+
return (address, shardIds) => {
|
|
228
|
+
const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
|
|
229
|
+
return sql`
|
|
230
|
+
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
231
|
+
ON CONFLICT (shard_id) DO UPDATE
|
|
232
|
+
SET address = ${address}, acquired_at = ${sqlNow}
|
|
233
|
+
WHERE ${locksTableSql}.address = ${address}
|
|
234
|
+
OR ${locksTableSql}.acquired_at < ${lockExpiresAt}
|
|
235
|
+
`.pipe(Effect.andThen(acquiredLocks(address, shardIds)));
|
|
236
|
+
};
|
|
216
237
|
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
acquiredShardIds.push(
|
|
238
|
+
return Effect.fnUntraced(function* (_address, shardIds) {
|
|
239
|
+
const [conn, pid] = yield* lockConn.await;
|
|
240
|
+
const acquiredShardIds = [];
|
|
241
|
+
const toAcquire = new Map(shardIds.map(shardId => [lockNumbers.get(shardId), shardId]));
|
|
242
|
+
const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = ${pid} ORDER BY objid`, []);
|
|
243
|
+
for (let i = 0; i < takenLocks.length; i++) {
|
|
244
|
+
const lockNum = takenLocks[i][0];
|
|
245
|
+
acquiredShardIds.push(lockNumbersReverse.get(lockNum));
|
|
246
|
+
toAcquire.delete(lockNum);
|
|
225
247
|
}
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
const shardId = shardIds[i];
|
|
236
|
-
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)];
|
|
237
|
-
if (lockTakenBy === pid) {
|
|
238
|
-
acquiredShardIds.push(shardId);
|
|
239
|
-
} else if (shardIds.includes(shardId)) {
|
|
240
|
-
toAcquire.push(shardId);
|
|
248
|
+
if (toAcquire.size === 0) {
|
|
249
|
+
return acquiredShardIds;
|
|
250
|
+
}
|
|
251
|
+
const rows = yield* conn.executeUnprepared(`SELECT ${pgLocks(toAcquire)}`, [], undefined);
|
|
252
|
+
const results = rows[0];
|
|
253
|
+
for (const shardId in results) {
|
|
254
|
+
if (results[shardId]) {
|
|
255
|
+
acquiredShardIds.push(shardId);
|
|
256
|
+
}
|
|
241
257
|
}
|
|
242
|
-
}
|
|
243
|
-
if (toAcquire.length === 0) {
|
|
244
258
|
return acquiredShardIds;
|
|
259
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()));
|
|
260
|
+
},
|
|
261
|
+
mysql: () => {
|
|
262
|
+
if (disableAdvisoryLocks) {
|
|
263
|
+
return (address, shardIds) => {
|
|
264
|
+
const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
|
|
265
|
+
return sql`
|
|
266
|
+
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
267
|
+
ON DUPLICATE KEY UPDATE
|
|
268
|
+
address = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(address), address),
|
|
269
|
+
acquired_at = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(acquired_at), acquired_at)
|
|
270
|
+
`.unprepared.pipe(Effect.andThen(acquiredLocks(address, shardIds)));
|
|
271
|
+
};
|
|
245
272
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
273
|
+
return Effect.fnUntraced(function* (_address, shardIds) {
|
|
274
|
+
const [conn, pid] = yield* lockConn.await;
|
|
275
|
+
const takenLocks = (yield* conn.executeValues(`SELECT ${allMySqlTakenLocks}`, []))[0];
|
|
276
|
+
const acquiredShardIds = [];
|
|
277
|
+
const toAcquire = [];
|
|
278
|
+
for (let i = 0; i < shardIds.length; i++) {
|
|
279
|
+
const shardId = shardIds[i];
|
|
280
|
+
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)];
|
|
281
|
+
if (lockTakenBy === pid) {
|
|
282
|
+
acquiredShardIds.push(shardId);
|
|
283
|
+
} else if (shardIds.includes(shardId)) {
|
|
284
|
+
toAcquire.push(shardId);
|
|
285
|
+
}
|
|
250
286
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
287
|
+
if (toAcquire.length === 0) {
|
|
288
|
+
return acquiredShardIds;
|
|
289
|
+
}
|
|
290
|
+
const results = (yield* conn.executeValues(`SELECT ${mysqlLocks(toAcquire)}`, []))[0];
|
|
291
|
+
for (let i = 0; i < results.length; i++) {
|
|
292
|
+
if (results[i] === 1) {
|
|
293
|
+
acquiredShardIds.push(toAcquire[i]);
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
return acquiredShardIds;
|
|
297
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()));
|
|
298
|
+
},
|
|
254
299
|
mssql: () => (address, shardIds) => {
|
|
255
300
|
const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
|
|
256
301
|
return sql`
|
|
@@ -326,8 +371,27 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
326
371
|
const stringLiteral = s => sql.literal(wrapString(s));
|
|
327
372
|
const stringLiteralArr = arr => sql.literal(`(${arr.map(wrapString).join(",")})`);
|
|
328
373
|
const refreshShards = sql.onDialectOrElse({
|
|
329
|
-
pg: () =>
|
|
330
|
-
|
|
374
|
+
pg: () => {
|
|
375
|
+
if (!disableAdvisoryLocks) return acquireLock;
|
|
376
|
+
return (address, shardIds) => sql`
|
|
377
|
+
UPDATE ${locksTableSql}
|
|
378
|
+
SET acquired_at = ${sqlNow}
|
|
379
|
+
WHERE address = ${address} AND shard_id IN ${stringLiteralArr(shardIds)}
|
|
380
|
+
RETURNING shard_id
|
|
381
|
+
`.pipe(execWithLockConnValues, Effect.map(rows => rows.map(row => row[0])));
|
|
382
|
+
},
|
|
383
|
+
mysql: () => {
|
|
384
|
+
if (!disableAdvisoryLocks) return acquireLock;
|
|
385
|
+
return (address, shardIds) => {
|
|
386
|
+
const shardIdsStr = stringLiteralArr(shardIds);
|
|
387
|
+
return sql`
|
|
388
|
+
UPDATE ${locksTableSql}
|
|
389
|
+
SET acquired_at = ${sqlNow}
|
|
390
|
+
WHERE address = ${address} AND shard_id IN ${shardIdsStr};
|
|
391
|
+
SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND shard_id IN ${shardIdsStr}
|
|
392
|
+
`.pipe(execWithLockConnUnprepared, Effect.map(rows => rows[1].map(row => row.shard_id)));
|
|
393
|
+
};
|
|
394
|
+
},
|
|
331
395
|
mssql: () => (address, shardIds) => sql`
|
|
332
396
|
UPDATE ${locksTableSql}
|
|
333
397
|
SET acquired_at = ${sqlNow}
|
|
@@ -349,31 +413,51 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
349
413
|
acquire: (address, shardIds) => acquireLock(address, shardIds).pipe(_ClusterError.PersistenceError.refail, withTracerDisabled),
|
|
350
414
|
refresh: (address, shardIds) => sql`UPDATE ${runnersTableSql} SET last_heartbeat = ${sqlNow} WHERE address = ${address}`.pipe(execWithLockConn, shardIds.length > 0 ? Effect.andThen(refreshShards(address, shardIds)) : Effect.as([]), _ClusterError.PersistenceError.refail),
|
|
351
415
|
release: sql.onDialectOrElse({
|
|
352
|
-
pg: () =>
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
const [conn] = yield* lockConn.await;
|
|
356
|
-
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
|
|
357
|
-
const takenLocks = yield* conn.executeValues(`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`, []);
|
|
358
|
-
if (takenLocks.length === 0) return;
|
|
416
|
+
pg: () => {
|
|
417
|
+
if (disableAdvisoryLocks) {
|
|
418
|
+
return (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(_ClusterError.PersistenceError.refail);
|
|
359
419
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
const
|
|
369
|
-
|
|
420
|
+
return Effect.fnUntraced(function* (_address, shardId) {
|
|
421
|
+
const lockNum = lockNumbers.get(shardId);
|
|
422
|
+
for (let i = 0; i < 5; i++) {
|
|
423
|
+
const [conn] = yield* lockConn.await;
|
|
424
|
+
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
|
|
425
|
+
const takenLocks = yield* conn.executeValues(`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`, []);
|
|
426
|
+
if (takenLocks.length === 0) return;
|
|
427
|
+
}
|
|
428
|
+
const [conn] = yield* lockConn.await;
|
|
429
|
+
yield* conn.executeRaw(`SELECT pg_advisory_unlock_all()`, []);
|
|
430
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, _ClusterError.PersistenceError.refail);
|
|
431
|
+
},
|
|
432
|
+
mysql: () => {
|
|
433
|
+
if (disableAdvisoryLocks) {
|
|
434
|
+
return (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(_ClusterError.PersistenceError.refail);
|
|
370
435
|
}
|
|
371
|
-
|
|
436
|
+
return Effect.fnUntraced(function* (_address, shardId) {
|
|
437
|
+
const lockName = lockNames.get(shardId);
|
|
438
|
+
while (true) {
|
|
439
|
+
const [conn, pid] = yield* lockConn.await;
|
|
440
|
+
yield* conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, []);
|
|
441
|
+
const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}')`, []);
|
|
442
|
+
if (takenLocks.length === 0 || takenLocks[0][0] !== pid) return;
|
|
443
|
+
}
|
|
444
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, _ClusterError.PersistenceError.refail);
|
|
445
|
+
},
|
|
372
446
|
orElse: () => (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(_ClusterError.PersistenceError.refail)
|
|
373
447
|
}),
|
|
374
448
|
releaseAll: sql.onDialectOrElse({
|
|
375
|
-
pg: () =>
|
|
376
|
-
|
|
449
|
+
pg: () => address => {
|
|
450
|
+
if (disableAdvisoryLocks) {
|
|
451
|
+
return sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled);
|
|
452
|
+
}
|
|
453
|
+
return sql`SELECT pg_advisory_unlock_all()`.pipe(execWithLockConn, Effect.asVoid, _ClusterError.PersistenceError.refail, withTracerDisabled);
|
|
454
|
+
},
|
|
455
|
+
mysql: () => address => {
|
|
456
|
+
if (disableAdvisoryLocks) {
|
|
457
|
+
return sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled);
|
|
458
|
+
}
|
|
459
|
+
return sql`SELECT RELEASE_ALL_LOCKS()`.pipe(execWithLockConn, Effect.asVoid, _ClusterError.PersistenceError.refail, withTracerDisabled);
|
|
460
|
+
},
|
|
377
461
|
orElse: () => address => sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled)
|
|
378
462
|
})
|
|
379
463
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlRunnerStorage.js","names":["SqlClient","_interopRequireWildcard","require","Arr","Duration","Effect","Layer","Scope","_ClusterError","_resourceRef","RunnerStorage","ShardId","ShardingConfig","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withTracerDisabled","withTracerEnabled","make","exports","fnUntraced","options","config","sql","withoutTransforms","prefix","table","name","acquireLockConn","onDialectOrElse","pg","scope","conn","orDie","reserve","pipe","extend","pid","executeValues","addFinalizerExit","executeRaw","mysql","undefined","address","Math","random","Number","MAX_SAFE_INTEGER","taken","orElse","lockConn","ResourceRef","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","void","sqlNowString","sqlNow","literal","expiresSeconds","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnValues","acquireLock","_address","shardIds","acquiredShardIds","toAcquire","Map","shardId","lockNumbers","takenLocks","length","lockNum","push","lockNumbersReverse","delete","size","rows","executeUnprepared","pgLocks","allMySqlTakenLocks","lockTakenBy","shardIdsIndex","includes","mysqlLocks","stringLiteral","csv","andThen","acquiredLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","lockNames","lockNamesReverse","index","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","makeEncoded","getRunners","PersistenceError","refail","String","Boolean","register","unregister","asVoid","setRunnerHealth","acquire","refresh","as","release","releaseAll","layer","scoped","layerWith"],"sources":["../../src/SqlRunnerStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SqlRunnerStorage.js","names":["SqlClient","_interopRequireWildcard","require","Arr","Duration","Effect","Layer","Scope","_ClusterError","_resourceRef","RunnerStorage","ShardId","ShardingConfig","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withTracerDisabled","withTracerEnabled","make","exports","fnUntraced","options","config","disableAdvisoryLocks","shardLockDisableAdvisory","sql","withoutTransforms","prefix","table","name","acquireLockConn","onDialectOrElse","pg","scope","conn","orDie","reserve","pipe","extend","pid","executeValues","addFinalizerExit","executeRaw","mysql","undefined","address","Math","random","Number","MAX_SAFE_INTEGER","taken","orElse","lockConn","ResourceRef","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","expiresSeconds","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnUnprepared","executeUnprepared","execWithLockConnValues","acquireLock","shardIds","shardId","stringLiteral","csv","andThen","acquiredLocks","_address","acquiredShardIds","toAcquire","Map","lockNumbers","takenLocks","length","lockNum","push","lockNumbersReverse","delete","size","rows","pgLocks","allMySqlTakenLocks","lockTakenBy","shardIdsIndex","includes","mysqlLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","lockNames","lockNamesReverse","index","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","shardIdsStr","shard_id","makeEncoded","getRunners","PersistenceError","refail","String","Boolean","register","unregister","asVoid","setRunnerHealth","acquire","refresh","as","release","releaseAll","layer","scoped","layerWith"],"sources":["../../src/SqlRunnerStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -54,6 +54,10 @@ declare const ShardingConfig_base: Context.TagClass<ShardingConfig, "@effect/clu
|
|
|
54
54
|
* Shard lock expiration duration.
|
|
55
55
|
*/
|
|
56
56
|
readonly shardLockExpiration: DurationInput;
|
|
57
|
+
/**
|
|
58
|
+
* Disable the use of advisory locks for shard locking.
|
|
59
|
+
*/
|
|
60
|
+
readonly shardLockDisableAdvisory: boolean;
|
|
57
61
|
/**
|
|
58
62
|
* Start shutting down as soon as an Entity has started shutting down.
|
|
59
63
|
*
|
|
@@ -186,6 +190,10 @@ export declare const configFromEnv: Effect.Effect<{
|
|
|
186
190
|
* Shard lock expiration duration.
|
|
187
191
|
*/
|
|
188
192
|
readonly shardLockExpiration: DurationInput;
|
|
193
|
+
/**
|
|
194
|
+
* Disable the use of advisory locks for shard locking.
|
|
195
|
+
*/
|
|
196
|
+
readonly shardLockDisableAdvisory: boolean;
|
|
189
197
|
/**
|
|
190
198
|
* Start shutting down as soon as an Entity has started shutting down.
|
|
191
199
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShardingConfig.d.ts","sourceRoot":"","sources":["../../src/ShardingConfig.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;;IAShD;;;;;;OAMG;4BACqB,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IACpD;;;;OAIG;kCAC2B,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;IAC1D;;;;;;;;OAQG;gCACyB,MAAM;IAClC;;;;OAIG;0BACmB,aAAa,CAAC,MAAM,CAAC;IAC3C;;;;OAIG;6BACsB,MAAM;IAC/B;;OAEG;uCACgC,aAAa;IAChD;;OAEG;kCAC2B,aAAa;IAC3C;;;;OAIG;iCAC0B,OAAO;IACpC;;OAEG;oCAC6B,MAAM,GAAG,WAAW;IACpD;;;OAGG;gCACyB,aAAa;IACzC;;;;;OAKG;wCACiC,aAAa;IACjD;;;;OAIG;uCACgC,aAAa;IAChD;;OAEG;wCACiC,aAAa;IACjD;;OAEG;sCAC+B,aAAa;IAC/C;;;OAGG;yCACkC,aAAa;IAClD;;OAEG;gCACyB,aAAa;IACzC;;OAEG;wCACiC,aAAa;IACjD;;;OAGG;0CACmC,OAAO;;
|
|
1
|
+
{"version":3,"file":"ShardingConfig.d.ts","sourceRoot":"","sources":["../../src/ShardingConfig.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlRunnerStorage.d.ts","sourceRoot":"","sources":["../../src/SqlRunnerStorage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAIpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAIrD;;;GAGG;AACH,eAAO,MAAM,IAAI;sBACG,MAAM,GAAG,SAAS;;;;;;;;;;+
|
|
1
|
+
{"version":3,"file":"SqlRunnerStorage.d.ts","sourceRoot":"","sources":["../../src/SqlRunnerStorage.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAA;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAIpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AAEpD,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAA;AACnD,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,cAAc,MAAM,qBAAqB,CAAA;AAIrD;;;GAGG;AACH,eAAO,MAAM,IAAI;sBACG,MAAM,GAAG,SAAS;;;;;;;;;;+EA0mBhB,CAAA;AAEtB;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,aAAa,CAAC,aAAa,EAC3B,QAAQ,EACR,SAAS,CAAC,SAAS,GAAG,cAAc,CAAC,cAAc,CACE,CAAA;AAEvD;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACrC,KAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,EAAE,SAAS,CAAC,SAAS,GAAG,cAAc,CAAC,cAAc,CAChD,CAAA"}
|
|
@@ -33,6 +33,7 @@ export const defaults = {
|
|
|
33
33
|
preemptiveShutdown: true,
|
|
34
34
|
shardLockRefreshInterval: /*#__PURE__*/Duration.seconds(10),
|
|
35
35
|
shardLockExpiration: /*#__PURE__*/Duration.seconds(35),
|
|
36
|
+
shardLockDisableAdvisory: false,
|
|
36
37
|
entityMailboxCapacity: 4096,
|
|
37
38
|
entityMaxIdleTime: /*#__PURE__*/Duration.minutes(1),
|
|
38
39
|
entityRegistrationTimeout: /*#__PURE__*/Duration.minutes(1),
|
|
@@ -76,6 +77,7 @@ export const config = /*#__PURE__*/Config.all({
|
|
|
76
77
|
preemptiveShutdown: /*#__PURE__*/Config.boolean("preemptiveShutdown").pipe(/*#__PURE__*/Config.withDefault(defaults.preemptiveShutdown), /*#__PURE__*/Config.withDescription("Start shutting down as soon as an Entity has started shutting down.")),
|
|
77
78
|
shardLockRefreshInterval: /*#__PURE__*/Config.duration("shardLockRefreshInterval").pipe(/*#__PURE__*/Config.withDefault(defaults.shardLockRefreshInterval), /*#__PURE__*/Config.withDescription("Shard lock refresh interval.")),
|
|
78
79
|
shardLockExpiration: /*#__PURE__*/Config.duration("shardLockExpiration").pipe(/*#__PURE__*/Config.withDefault(defaults.shardLockExpiration), /*#__PURE__*/Config.withDescription("Shard lock expiration duration.")),
|
|
80
|
+
shardLockDisableAdvisory: /*#__PURE__*/Config.boolean("shardLockDisableAdvisory").pipe(/*#__PURE__*/Config.withDefault(defaults.shardLockDisableAdvisory), /*#__PURE__*/Config.withDescription("Disable the use of advisory locks for shard locking.")),
|
|
79
81
|
entityMailboxCapacity: /*#__PURE__*/Config.integer("entityMailboxCapacity").pipe(/*#__PURE__*/Config.withDefault(defaults.entityMailboxCapacity), /*#__PURE__*/Config.withDescription("The default capacity of the mailbox for entities.")),
|
|
80
82
|
entityMaxIdleTime: /*#__PURE__*/Config.duration("entityMaxIdleTime").pipe(/*#__PURE__*/Config.withDefault(defaults.entityMaxIdleTime), /*#__PURE__*/Config.withDescription("The maximum duration of inactivity (i.e. without receiving a message) after which an entity will be interrupted.")),
|
|
81
83
|
entityRegistrationTimeout: /*#__PURE__*/Config.duration("entityRegistrationTimeout").pipe(/*#__PURE__*/Config.withDefault(defaults.entityRegistrationTimeout), /*#__PURE__*/Config.withDescription("If an entity does not register itself within this time after a message is sent to it, the message will be marked as failed.")),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShardingConfig.js","names":["Config","ConfigProvider","Context","Duration","Effect","Layer","Option","RunnerAddress","ShardingConfig","Tag","defaultRunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","runnerShardWeight","shardsPerGroup","shardGroups","preemptiveShutdown","shardLockRefreshInterval","seconds","shardLockExpiration","entityMailboxCapacity","entityMaxIdleTime","minutes","entityRegistrationTimeout","entityTerminationTimeout","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","runnerHealthCheckInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","boolean","duration","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AAEzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,aAAa,QAAQ,oBAAoB;AAElD;;;;;;AAMA,OAAM,MAAOC,cAAe,sBAAQN,OAAO,CAACO,GAAG,CAAC,gCAAgC,CAAC,
|
|
1
|
+
{"version":3,"file":"ShardingConfig.js","names":["Config","ConfigProvider","Context","Duration","Effect","Layer","Option","RunnerAddress","ShardingConfig","Tag","defaultRunnerAddress","make","host","port","defaults","runnerAddress","some","runnerListenAddress","none","runnerShardWeight","shardsPerGroup","shardGroups","preemptiveShutdown","shardLockRefreshInterval","seconds","shardLockExpiration","shardLockDisableAdvisory","entityMailboxCapacity","entityMaxIdleTime","minutes","entityRegistrationTimeout","entityTerminationTimeout","entityMessagePollInterval","entityReplyPollInterval","millis","sendRetryInterval","refreshAssignmentsInterval","runnerHealthCheckInterval","simulateRemoteSerialization","layer","options","succeed","layerDefaults","config","all","string","pipe","withDefault","withDescription","integer","map","option","array","boolean","duration","configFromEnv","withConfigProvider","fromEnv","constantCase","layerFromEnv","effect"],"sources":["../../src/ShardingConfig.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AAEzC,OAAO,KAAKC,QAAQ,MAAM,iBAAiB;AAC3C,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,aAAa,QAAQ,oBAAoB;AAElD;;;;;;AAMA,OAAM,MAAOC,cAAe,sBAAQN,OAAO,CAACO,GAAG,CAAC,gCAAgC,CAAC,EAuG7E;AAEJ,MAAMC,oBAAoB,gBAAGH,aAAa,CAACI,IAAI,CAAC;EAAEC,IAAI,EAAE,WAAW;EAAEC,IAAI,EAAE;AAAK,CAAE,CAAC;AAEnF;;;;AAIA,OAAO,MAAMC,QAAQ,GAA2B;EAC9CC,aAAa,eAAET,MAAM,CAACU,IAAI,CAACN,oBAAoB,CAAC;EAChDO,mBAAmB,eAAEX,MAAM,CAACY,IAAI,EAAE;EAClCC,iBAAiB,EAAE,CAAC;EACpBC,cAAc,EAAE,GAAG;EACnBC,WAAW,EAAE,CAAC,SAAS,CAAC;EACxBC,kBAAkB,EAAE,IAAI;EACxBC,wBAAwB,eAAEpB,QAAQ,CAACqB,OAAO,CAAC,EAAE,CAAC;EAC9CC,mBAAmB,eAAEtB,QAAQ,CAACqB,OAAO,CAAC,EAAE,CAAC;EACzCE,wBAAwB,EAAE,KAAK;EAC/BC,qBAAqB,EAAE,IAAI;EAC3BC,iBAAiB,eAAEzB,QAAQ,CAAC0B,OAAO,CAAC,CAAC,CAAC;EACtCC,yBAAyB,eAAE3B,QAAQ,CAAC0B,OAAO,CAAC,CAAC,CAAC;EAC9CE,wBAAwB,eAAE5B,QAAQ,CAACqB,OAAO,CAAC,EAAE,CAAC;EAC9CQ,yBAAyB,eAAE7B,QAAQ,CAACqB,OAAO,CAAC,EAAE,CAAC;EAC/CS,uBAAuB,eAAE9B,QAAQ,CAAC+B,MAAM,CAAC,GAAG,CAAC;EAC7CC,iBAAiB,eAAEhC,QAAQ,CAAC+B,MAAM,CAAC,GAAG,CAAC;EACvCE,0BAA0B,eAAEjC,QAAQ,CAACqB,OAAO,CAAC,CAAC,CAAC;EAC/Ca,yBAAyB,eAAElC,QAAQ,CAAC0B,OAAO,CAAC,CAAC,CAAC;EAC9CS,2BAA2B,EAAE;CAC9B;AAED;;;;AAIA,OAAO,MAAMC,KAAK,GAAIC,OAAyC,IAC7DnC,KAAK,CAACoC,OAAO,CAACjC,cAAc,EAAE;EAAE,GAAGM,QAAQ;EAAE,GAAG0B;AAAO,CAAE,CAAC;AAE5D;;;;AAIA,OAAO,MAAME,aAAa,gBAAgCH,KAAK,EAAE;AAEjE;;;;AAIA,OAAO,MAAMI,MAAM,gBAA0C3C,MAAM,CAAC4C,GAAG,CAAC;EACtE7B,aAAa,eAAEf,MAAM,CAAC4C,GAAG,CAAC;IACxBhC,IAAI,EAAEZ,MAAM,CAAC6C,MAAM,CAAC,MAAM,CAAC,CAACC,IAAI,CAC9B9C,MAAM,CAAC+C,WAAW,CAACrC,oBAAoB,CAACE,IAAI,CAAC,EAC7CZ,MAAM,CAACgD,eAAe,CAAC,2CAA2C,CAAC,CACpE;IACDnC,IAAI,EAAEb,MAAM,CAACiD,OAAO,CAAC,MAAM,CAAC,CAACH,IAAI,CAC/B9C,MAAM,CAAC+C,WAAW,CAACrC,oBAAoB,CAACG,IAAI,CAAC,EAC7Cb,MAAM,CAACgD,eAAe,CAAC,+CAA+C,CAAC;GAE1E,CAAC,CAACF,IAAI,cAAC9C,MAAM,CAACkD,GAAG,CAAEV,OAAO,IAAKjC,aAAa,CAACI,IAAI,CAAC6B,OAAO,CAAC,CAAC,EAAExC,MAAM,CAACmD,MAAM,CAAC;EAC5ElC,mBAAmB,eAAEjB,MAAM,CAAC4C,GAAG,CAAC;IAC9BhC,IAAI,EAAEZ,MAAM,CAAC6C,MAAM,CAAC,YAAY,CAAC,CAACC,IAAI,CACpC9C,MAAM,CAACgD,eAAe,CAAC,wBAAwB,CAAC,CACjD;IACDnC,IAAI,EAAEb,MAAM,CAACiD,OAAO,CAAC,YAAY,CAAC,CAACH,IAAI,CACrC9C,MAAM,CAAC+C,WAAW,CAACrC,oBAAoB,CAACG,IAAI,CAAC,EAC7Cb,MAAM,CAACgD,eAAe,CAAC,wBAAwB,CAAC;GAEnD,CAAC,CAACF,IAAI,cAAC9C,MAAM,CAACkD,GAAG,CAAEV,OAAO,IAAKjC,aAAa,CAACI,IAAI,CAAC6B,OAAO,CAAC,CAAC,EAAExC,MAAM,CAACmD,MAAM,CAAC;EAC5EhC,iBAAiB,eAAEnB,MAAM,CAACiD,OAAO,CAAC,mBAAmB,CAAC,CAACH,IAAI,cACzD9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACK,iBAAiB,CAAC,CAC/C;EACDE,WAAW,eAAErB,MAAM,CAACoD,KAAK,CAACpD,MAAM,CAAC6C,MAAM,CAAC,aAAa,CAAC,CAAC,CAACC,IAAI,cAC1D9C,MAAM,CAAC+C,WAAW,CAAC,CAAC,SAAS,CAAC,CAAC,eAC/B/C,MAAM,CAACgD,eAAe,CAAC,oDAAoD,CAAC,CAC7E;EACD5B,cAAc,eAAEpB,MAAM,CAACiD,OAAO,CAAC,gBAAgB,CAAC,CAACH,IAAI,cACnD9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACM,cAAc,CAAC,eAC3CpB,MAAM,CAACgD,eAAe,CAAC,mDAAmD,CAAC,CAC5E;EACD1B,kBAAkB,eAAEtB,MAAM,CAACqD,OAAO,CAAC,oBAAoB,CAAC,CAACP,IAAI,cAC3D9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACQ,kBAAkB,CAAC,eAC/CtB,MAAM,CAACgD,eAAe,CAAC,qEAAqE,CAAC,CAC9F;EACDzB,wBAAwB,eAAEvB,MAAM,CAACsD,QAAQ,CAAC,0BAA0B,CAAC,CAACR,IAAI,cACxE9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACS,wBAAwB,CAAC,eACrDvB,MAAM,CAACgD,eAAe,CAAC,8BAA8B,CAAC,CACvD;EACDvB,mBAAmB,eAAEzB,MAAM,CAACsD,QAAQ,CAAC,qBAAqB,CAAC,CAACR,IAAI,cAC9D9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACW,mBAAmB,CAAC,eAChDzB,MAAM,CAACgD,eAAe,CAAC,iCAAiC,CAAC,CAC1D;EACDtB,wBAAwB,eAAE1B,MAAM,CAACqD,OAAO,CAAC,0BAA0B,CAAC,CAACP,IAAI,cACvE9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACY,wBAAwB,CAAC,eACrD1B,MAAM,CAACgD,eAAe,CAAC,sDAAsD,CAAC,CAC/E;EACDrB,qBAAqB,eAAE3B,MAAM,CAACiD,OAAO,CAAC,uBAAuB,CAAC,CAACH,IAAI,cACjE9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACa,qBAAqB,CAAC,eAClD3B,MAAM,CAACgD,eAAe,CAAC,mDAAmD,CAAC,CAC5E;EACDpB,iBAAiB,eAAE5B,MAAM,CAACsD,QAAQ,CAAC,mBAAmB,CAAC,CAACR,IAAI,cAC1D9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACc,iBAAiB,CAAC,eAC9C5B,MAAM,CAACgD,eAAe,CACpB,kHAAkH,CACnH,CACF;EACDlB,yBAAyB,eAAE9B,MAAM,CAACsD,QAAQ,CAAC,2BAA2B,CAAC,CAACR,IAAI,cAC1E9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACgB,yBAAyB,CAAC,eACtD9B,MAAM,CAACgD,eAAe,CACpB,6HAA6H,CAC9H,CACF;EACDjB,wBAAwB,eAAE/B,MAAM,CAACsD,QAAQ,CAAC,0BAA0B,CAAC,CAACR,IAAI,cACxE9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACiB,wBAAwB,CAAC,eACrD/B,MAAM,CAACgD,eAAe,CAAC,kEAAkE,CAAC,CAC3F;EACDhB,yBAAyB,eAAEhC,MAAM,CAACsD,QAAQ,CAAC,2BAA2B,CAAC,CAACR,IAAI,cAC1E9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACkB,yBAAyB,CAAC,eACtDhC,MAAM,CAACgD,eAAe,CAAC,sEAAsE,CAAC,CAC/F;EACDf,uBAAuB,eAAEjC,MAAM,CAACsD,QAAQ,CAAC,yBAAyB,CAAC,CAACR,IAAI,cACtE9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACmB,uBAAuB,CAAC,eACpDjC,MAAM,CAACgD,eAAe,CAAC,gEAAgE,CAAC,CACzF;EACDb,iBAAiB,eAAEnC,MAAM,CAACsD,QAAQ,CAAC,mBAAmB,CAAC,CAACR,IAAI,cAC1D9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACqB,iBAAiB,CAAC,eAC9CnC,MAAM,CAACgD,eAAe,CAAC,wEAAwE,CAAC,CACjG;EACDZ,0BAA0B,eAAEpC,MAAM,CAACsD,QAAQ,CAAC,4BAA4B,CAAC,CAACR,IAAI,cAC5E9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACsB,0BAA0B,CAAC,eACvDpC,MAAM,CAACgD,eAAe,CAAC,qDAAqD,CAAC,CAC9E;EACDX,yBAAyB,eAAErC,MAAM,CAACsD,QAAQ,CAAC,2BAA2B,CAAC,CAACR,IAAI,cAC1E9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACuB,yBAAyB,CAAC,eACtDrC,MAAM,CAACgD,eAAe,CAAC,uEAAuE,CAAC,CAChG;EACDV,2BAA2B,eAAEtC,MAAM,CAACqD,OAAO,CAAC,6BAA6B,CAAC,CAACP,IAAI,cAC7E9C,MAAM,CAAC+C,WAAW,CAACjC,QAAQ,CAACwB,2BAA2B,CAAC,eACxDtC,MAAM,CAACgD,eAAe,CAAC,kFAAkF,CAAC;CAE7G,CAAC;AAEF;;;;AAIA,OAAO,MAAMO,aAAa,gBAAGZ,MAAM,CAACG,IAAI,cACtC1C,MAAM,CAACoD,kBAAkB,cACvBvD,cAAc,CAACwD,OAAO,EAAE,CAACX,IAAI,CAC3B7C,cAAc,CAACyD,YAAY,CAC5B,CACF,CACF;AAED;;;;AAIA,OAAO,MAAMC,YAAY,GAAInB,OAAqD,IAIhFnC,KAAK,CAACuD,MAAM,CACVpD,cAAc,EACdgC,OAAO,GAAGpC,MAAM,CAAC8C,GAAG,CAACK,aAAa,EAAGZ,MAAM,KAAM;EAAE,GAAGA,MAAM;EAAE,GAAGH;AAAO,CAAE,CAAC,CAAC,GAAGe,aAAa,CAC7F","ignoreList":[]}
|
|
@@ -19,6 +19,7 @@ const withTracerDisabled = /*#__PURE__*/Effect.withTracerEnabled(false);
|
|
|
19
19
|
*/
|
|
20
20
|
export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
21
21
|
const config = yield* ShardingConfig.ShardingConfig;
|
|
22
|
+
const disableAdvisoryLocks = config.shardLockDisableAdvisory;
|
|
22
23
|
const sql = (yield* SqlClient.SqlClient).withoutTransforms();
|
|
23
24
|
const prefix = options?.prefix ?? "cluster";
|
|
24
25
|
const table = name => `${prefix}_${name}`;
|
|
@@ -111,8 +112,20 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
111
112
|
acquired_at DATETIME NOT NULL
|
|
112
113
|
)
|
|
113
114
|
`,
|
|
114
|
-
mysql: () =>
|
|
115
|
-
|
|
115
|
+
mysql: () => sql`
|
|
116
|
+
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
117
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
|
118
|
+
address VARCHAR(255) NOT NULL,
|
|
119
|
+
acquired_at DATETIME NOT NULL
|
|
120
|
+
)
|
|
121
|
+
`,
|
|
122
|
+
pg: () => sql`
|
|
123
|
+
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
124
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
|
125
|
+
address VARCHAR(255) NOT NULL,
|
|
126
|
+
acquired_at TIMESTAMP NOT NULL
|
|
127
|
+
)
|
|
128
|
+
`,
|
|
116
129
|
orElse: () =>
|
|
117
130
|
// sqlite
|
|
118
131
|
sql`
|
|
@@ -190,59 +203,91 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
190
203
|
const [query, params] = effect.compile();
|
|
191
204
|
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
192
205
|
};
|
|
206
|
+
const execWithLockConnUnprepared = effect => {
|
|
207
|
+
if (!lockConn) return effect.values;
|
|
208
|
+
const [query, params] = effect.compile();
|
|
209
|
+
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeUnprepared(query, params, undefined)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
210
|
+
};
|
|
193
211
|
const execWithLockConnValues = effect => {
|
|
194
212
|
if (!lockConn) return effect.values;
|
|
195
213
|
const [query, params] = effect.compile();
|
|
196
214
|
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
197
215
|
};
|
|
198
216
|
const acquireLock = sql.onDialectOrElse({
|
|
199
|
-
pg: () =>
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
217
|
+
pg: () => {
|
|
218
|
+
if (disableAdvisoryLocks) {
|
|
219
|
+
return (address, shardIds) => {
|
|
220
|
+
const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
|
|
221
|
+
return sql`
|
|
222
|
+
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
223
|
+
ON CONFLICT (shard_id) DO UPDATE
|
|
224
|
+
SET address = ${address}, acquired_at = ${sqlNow}
|
|
225
|
+
WHERE ${locksTableSql}.address = ${address}
|
|
226
|
+
OR ${locksTableSql}.acquired_at < ${lockExpiresAt}
|
|
227
|
+
`.pipe(Effect.andThen(acquiredLocks(address, shardIds)));
|
|
228
|
+
};
|
|
208
229
|
}
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
acquiredShardIds.push(
|
|
230
|
+
return Effect.fnUntraced(function* (_address, shardIds) {
|
|
231
|
+
const [conn, pid] = yield* lockConn.await;
|
|
232
|
+
const acquiredShardIds = [];
|
|
233
|
+
const toAcquire = new Map(shardIds.map(shardId => [lockNumbers.get(shardId), shardId]));
|
|
234
|
+
const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = ${pid} ORDER BY objid`, []);
|
|
235
|
+
for (let i = 0; i < takenLocks.length; i++) {
|
|
236
|
+
const lockNum = takenLocks[i][0];
|
|
237
|
+
acquiredShardIds.push(lockNumbersReverse.get(lockNum));
|
|
238
|
+
toAcquire.delete(lockNum);
|
|
217
239
|
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
const shardId = shardIds[i];
|
|
228
|
-
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)];
|
|
229
|
-
if (lockTakenBy === pid) {
|
|
230
|
-
acquiredShardIds.push(shardId);
|
|
231
|
-
} else if (shardIds.includes(shardId)) {
|
|
232
|
-
toAcquire.push(shardId);
|
|
240
|
+
if (toAcquire.size === 0) {
|
|
241
|
+
return acquiredShardIds;
|
|
242
|
+
}
|
|
243
|
+
const rows = yield* conn.executeUnprepared(`SELECT ${pgLocks(toAcquire)}`, [], undefined);
|
|
244
|
+
const results = rows[0];
|
|
245
|
+
for (const shardId in results) {
|
|
246
|
+
if (results[shardId]) {
|
|
247
|
+
acquiredShardIds.push(shardId);
|
|
248
|
+
}
|
|
233
249
|
}
|
|
234
|
-
}
|
|
235
|
-
if (toAcquire.length === 0) {
|
|
236
250
|
return acquiredShardIds;
|
|
251
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()));
|
|
252
|
+
},
|
|
253
|
+
mysql: () => {
|
|
254
|
+
if (disableAdvisoryLocks) {
|
|
255
|
+
return (address, shardIds) => {
|
|
256
|
+
const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
|
|
257
|
+
return sql`
|
|
258
|
+
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
259
|
+
ON DUPLICATE KEY UPDATE
|
|
260
|
+
address = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(address), address),
|
|
261
|
+
acquired_at = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(acquired_at), acquired_at)
|
|
262
|
+
`.unprepared.pipe(Effect.andThen(acquiredLocks(address, shardIds)));
|
|
263
|
+
};
|
|
237
264
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
265
|
+
return Effect.fnUntraced(function* (_address, shardIds) {
|
|
266
|
+
const [conn, pid] = yield* lockConn.await;
|
|
267
|
+
const takenLocks = (yield* conn.executeValues(`SELECT ${allMySqlTakenLocks}`, []))[0];
|
|
268
|
+
const acquiredShardIds = [];
|
|
269
|
+
const toAcquire = [];
|
|
270
|
+
for (let i = 0; i < shardIds.length; i++) {
|
|
271
|
+
const shardId = shardIds[i];
|
|
272
|
+
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)];
|
|
273
|
+
if (lockTakenBy === pid) {
|
|
274
|
+
acquiredShardIds.push(shardId);
|
|
275
|
+
} else if (shardIds.includes(shardId)) {
|
|
276
|
+
toAcquire.push(shardId);
|
|
277
|
+
}
|
|
242
278
|
}
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
279
|
+
if (toAcquire.length === 0) {
|
|
280
|
+
return acquiredShardIds;
|
|
281
|
+
}
|
|
282
|
+
const results = (yield* conn.executeValues(`SELECT ${mysqlLocks(toAcquire)}`, []))[0];
|
|
283
|
+
for (let i = 0; i < results.length; i++) {
|
|
284
|
+
if (results[i] === 1) {
|
|
285
|
+
acquiredShardIds.push(toAcquire[i]);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return acquiredShardIds;
|
|
289
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()));
|
|
290
|
+
},
|
|
246
291
|
mssql: () => (address, shardIds) => {
|
|
247
292
|
const values = shardIds.map(shardId => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`);
|
|
248
293
|
return sql`
|
|
@@ -318,8 +363,27 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
318
363
|
const stringLiteral = s => sql.literal(wrapString(s));
|
|
319
364
|
const stringLiteralArr = arr => sql.literal(`(${arr.map(wrapString).join(",")})`);
|
|
320
365
|
const refreshShards = sql.onDialectOrElse({
|
|
321
|
-
pg: () =>
|
|
322
|
-
|
|
366
|
+
pg: () => {
|
|
367
|
+
if (!disableAdvisoryLocks) return acquireLock;
|
|
368
|
+
return (address, shardIds) => sql`
|
|
369
|
+
UPDATE ${locksTableSql}
|
|
370
|
+
SET acquired_at = ${sqlNow}
|
|
371
|
+
WHERE address = ${address} AND shard_id IN ${stringLiteralArr(shardIds)}
|
|
372
|
+
RETURNING shard_id
|
|
373
|
+
`.pipe(execWithLockConnValues, Effect.map(rows => rows.map(row => row[0])));
|
|
374
|
+
},
|
|
375
|
+
mysql: () => {
|
|
376
|
+
if (!disableAdvisoryLocks) return acquireLock;
|
|
377
|
+
return (address, shardIds) => {
|
|
378
|
+
const shardIdsStr = stringLiteralArr(shardIds);
|
|
379
|
+
return sql`
|
|
380
|
+
UPDATE ${locksTableSql}
|
|
381
|
+
SET acquired_at = ${sqlNow}
|
|
382
|
+
WHERE address = ${address} AND shard_id IN ${shardIdsStr};
|
|
383
|
+
SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND shard_id IN ${shardIdsStr}
|
|
384
|
+
`.pipe(execWithLockConnUnprepared, Effect.map(rows => rows[1].map(row => row.shard_id)));
|
|
385
|
+
};
|
|
386
|
+
},
|
|
323
387
|
mssql: () => (address, shardIds) => sql`
|
|
324
388
|
UPDATE ${locksTableSql}
|
|
325
389
|
SET acquired_at = ${sqlNow}
|
|
@@ -341,31 +405,51 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
341
405
|
acquire: (address, shardIds) => acquireLock(address, shardIds).pipe(PersistenceError.refail, withTracerDisabled),
|
|
342
406
|
refresh: (address, shardIds) => sql`UPDATE ${runnersTableSql} SET last_heartbeat = ${sqlNow} WHERE address = ${address}`.pipe(execWithLockConn, shardIds.length > 0 ? Effect.andThen(refreshShards(address, shardIds)) : Effect.as([]), PersistenceError.refail),
|
|
343
407
|
release: sql.onDialectOrElse({
|
|
344
|
-
pg: () =>
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
const [conn] = yield* lockConn.await;
|
|
348
|
-
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
|
|
349
|
-
const takenLocks = yield* conn.executeValues(`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`, []);
|
|
350
|
-
if (takenLocks.length === 0) return;
|
|
408
|
+
pg: () => {
|
|
409
|
+
if (disableAdvisoryLocks) {
|
|
410
|
+
return (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail);
|
|
351
411
|
}
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
const
|
|
361
|
-
|
|
412
|
+
return Effect.fnUntraced(function* (_address, shardId) {
|
|
413
|
+
const lockNum = lockNumbers.get(shardId);
|
|
414
|
+
for (let i = 0; i < 5; i++) {
|
|
415
|
+
const [conn] = yield* lockConn.await;
|
|
416
|
+
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
|
|
417
|
+
const takenLocks = yield* conn.executeValues(`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`, []);
|
|
418
|
+
if (takenLocks.length === 0) return;
|
|
419
|
+
}
|
|
420
|
+
const [conn] = yield* lockConn.await;
|
|
421
|
+
yield* conn.executeRaw(`SELECT pg_advisory_unlock_all()`, []);
|
|
422
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, PersistenceError.refail);
|
|
423
|
+
},
|
|
424
|
+
mysql: () => {
|
|
425
|
+
if (disableAdvisoryLocks) {
|
|
426
|
+
return (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail);
|
|
362
427
|
}
|
|
363
|
-
|
|
428
|
+
return Effect.fnUntraced(function* (_address, shardId) {
|
|
429
|
+
const lockName = lockNames.get(shardId);
|
|
430
|
+
while (true) {
|
|
431
|
+
const [conn, pid] = yield* lockConn.await;
|
|
432
|
+
yield* conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, []);
|
|
433
|
+
const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}')`, []);
|
|
434
|
+
if (takenLocks.length === 0 || takenLocks[0][0] !== pid) return;
|
|
435
|
+
}
|
|
436
|
+
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, PersistenceError.refail);
|
|
437
|
+
},
|
|
364
438
|
orElse: () => (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail)
|
|
365
439
|
}),
|
|
366
440
|
releaseAll: sql.onDialectOrElse({
|
|
367
|
-
pg: () =>
|
|
368
|
-
|
|
441
|
+
pg: () => address => {
|
|
442
|
+
if (disableAdvisoryLocks) {
|
|
443
|
+
return sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(PersistenceError.refail, withTracerDisabled);
|
|
444
|
+
}
|
|
445
|
+
return sql`SELECT pg_advisory_unlock_all()`.pipe(execWithLockConn, Effect.asVoid, PersistenceError.refail, withTracerDisabled);
|
|
446
|
+
},
|
|
447
|
+
mysql: () => address => {
|
|
448
|
+
if (disableAdvisoryLocks) {
|
|
449
|
+
return sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(PersistenceError.refail, withTracerDisabled);
|
|
450
|
+
}
|
|
451
|
+
return sql`SELECT RELEASE_ALL_LOCKS()`.pipe(execWithLockConn, Effect.asVoid, PersistenceError.refail, withTracerDisabled);
|
|
452
|
+
},
|
|
369
453
|
orElse: () => address => sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(PersistenceError.refail, withTracerDisabled)
|
|
370
454
|
})
|
|
371
455
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SqlRunnerStorage.js","names":["SqlClient","Arr","Duration","Effect","Layer","Scope","PersistenceError","ResourceRef","RunnerStorage","ShardId","ShardingConfig","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","config","sql","withoutTransforms","prefix","table","name","acquireLockConn","onDialectOrElse","pg","scope","conn","orDie","reserve","pipe","extend","pid","executeValues","addFinalizerExit","executeRaw","mysql","undefined","address","Math","random","Number","MAX_SAFE_INTEGER","taken","orElse","lockConn","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","void","sqlNowString","sqlNow","literal","expiresSeconds","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnValues","acquireLock","_address","shardIds","acquiredShardIds","toAcquire","Map","shardId","lockNumbers","get","takenLocks","i","length","lockNum","push","lockNumbersReverse","delete","size","rows","executeUnprepared","pgLocks","allMySqlTakenLocks","lockTakenBy","shardIdsIndex","includes","mysqlLocks","stringLiteral","csv","andThen","acquiredLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","set","lockNames","lockNamesReverse","index","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","makeEncoded","getRunners","refail","String","Boolean","register","unregister","asVoid","setRunnerHealth","acquire","refresh","as","release","releaseAll","layer","scoped","layerWith"],"sources":["../../src/SqlRunnerStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"SqlRunnerStorage.js","names":["SqlClient","Arr","Duration","Effect","Layer","Scope","PersistenceError","ResourceRef","RunnerStorage","ShardId","ShardingConfig","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","config","disableAdvisoryLocks","shardLockDisableAdvisory","sql","withoutTransforms","prefix","table","name","acquireLockConn","onDialectOrElse","pg","scope","conn","orDie","reserve","pipe","extend","pid","executeValues","addFinalizerExit","executeRaw","mysql","undefined","address","Math","random","Number","MAX_SAFE_INTEGER","taken","orElse","lockConn","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","expiresSeconds","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnUnprepared","executeUnprepared","execWithLockConnValues","acquireLock","shardIds","shardId","stringLiteral","csv","andThen","acquiredLocks","_address","acquiredShardIds","toAcquire","Map","lockNumbers","get","takenLocks","i","length","lockNum","push","lockNumbersReverse","delete","size","rows","pgLocks","allMySqlTakenLocks","lockTakenBy","shardIdsIndex","includes","mysqlLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","set","lockNames","lockNamesReverse","index","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","shardIdsStr","shard_id","makeEncoded","getRunners","refail","String","Boolean","register","unregister","asVoid","setRunnerHealth","acquire","refresh","as","release","releaseAll","layer","scoped","layerWith"],"sources":["../../src/SqlRunnerStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/cluster",
|
|
3
|
-
"version": "0.53.
|
|
3
|
+
"version": "0.53.6",
|
|
4
4
|
"description": "Unified interfaces for common cluster-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -14,11 +14,11 @@
|
|
|
14
14
|
"kubernetes-types": "^1.30.0"
|
|
15
15
|
},
|
|
16
16
|
"peerDependencies": {
|
|
17
|
-
"@effect/
|
|
17
|
+
"@effect/platform": "^0.93.4",
|
|
18
18
|
"@effect/rpc": "^0.72.2",
|
|
19
19
|
"@effect/sql": "^0.48.0",
|
|
20
|
-
"effect": "^
|
|
21
|
-
"
|
|
20
|
+
"@effect/workflow": "^0.13.0",
|
|
21
|
+
"effect": "^3.19.6"
|
|
22
22
|
},
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"provenance": true
|
package/src/ShardingConfig.ts
CHANGED
|
@@ -63,6 +63,10 @@ export class ShardingConfig extends Context.Tag("@effect/cluster/ShardingConfig"
|
|
|
63
63
|
* Shard lock expiration duration.
|
|
64
64
|
*/
|
|
65
65
|
readonly shardLockExpiration: DurationInput
|
|
66
|
+
/**
|
|
67
|
+
* Disable the use of advisory locks for shard locking.
|
|
68
|
+
*/
|
|
69
|
+
readonly shardLockDisableAdvisory: boolean
|
|
66
70
|
/**
|
|
67
71
|
* Start shutting down as soon as an Entity has started shutting down.
|
|
68
72
|
*
|
|
@@ -134,6 +138,7 @@ export const defaults: ShardingConfig["Type"] = {
|
|
|
134
138
|
preemptiveShutdown: true,
|
|
135
139
|
shardLockRefreshInterval: Duration.seconds(10),
|
|
136
140
|
shardLockExpiration: Duration.seconds(35),
|
|
141
|
+
shardLockDisableAdvisory: false,
|
|
137
142
|
entityMailboxCapacity: 4096,
|
|
138
143
|
entityMaxIdleTime: Duration.minutes(1),
|
|
139
144
|
entityRegistrationTimeout: Duration.minutes(1),
|
|
@@ -206,6 +211,10 @@ export const config: Config.Config<ShardingConfig["Type"]> = Config.all({
|
|
|
206
211
|
Config.withDefault(defaults.shardLockExpiration),
|
|
207
212
|
Config.withDescription("Shard lock expiration duration.")
|
|
208
213
|
),
|
|
214
|
+
shardLockDisableAdvisory: Config.boolean("shardLockDisableAdvisory").pipe(
|
|
215
|
+
Config.withDefault(defaults.shardLockDisableAdvisory),
|
|
216
|
+
Config.withDescription("Disable the use of advisory locks for shard locking.")
|
|
217
|
+
),
|
|
209
218
|
entityMailboxCapacity: Config.integer("entityMailboxCapacity").pipe(
|
|
210
219
|
Config.withDefault(defaults.entityMailboxCapacity),
|
|
211
220
|
Config.withDescription("The default capacity of the mailbox for entities.")
|
package/src/SqlRunnerStorage.ts
CHANGED
|
@@ -25,6 +25,7 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
25
25
|
readonly prefix?: string | undefined
|
|
26
26
|
}) {
|
|
27
27
|
const config = yield* ShardingConfig.ShardingConfig
|
|
28
|
+
const disableAdvisoryLocks = config.shardLockDisableAdvisory
|
|
28
29
|
const sql = (yield* SqlClient.SqlClient).withoutTransforms()
|
|
29
30
|
const prefix = options?.prefix ?? "cluster"
|
|
30
31
|
const table = (name: string) => `${prefix}_${name}`
|
|
@@ -138,8 +139,22 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
138
139
|
acquired_at DATETIME NOT NULL
|
|
139
140
|
)
|
|
140
141
|
`,
|
|
141
|
-
mysql: () =>
|
|
142
|
-
|
|
142
|
+
mysql: () =>
|
|
143
|
+
sql`
|
|
144
|
+
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
145
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
|
146
|
+
address VARCHAR(255) NOT NULL,
|
|
147
|
+
acquired_at DATETIME NOT NULL
|
|
148
|
+
)
|
|
149
|
+
`,
|
|
150
|
+
pg: () =>
|
|
151
|
+
sql`
|
|
152
|
+
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
153
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
|
154
|
+
address VARCHAR(255) NOT NULL,
|
|
155
|
+
acquired_at TIMESTAMP NOT NULL
|
|
156
|
+
)
|
|
157
|
+
`,
|
|
143
158
|
orElse: () =>
|
|
144
159
|
// sqlite
|
|
145
160
|
sql`
|
|
@@ -232,6 +247,16 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
232
247
|
Effect.onError(() => lockConn.unsafeRebuild())
|
|
233
248
|
)
|
|
234
249
|
}
|
|
250
|
+
const execWithLockConnUnprepared = <A>(
|
|
251
|
+
effect: Statement.Statement<A>
|
|
252
|
+
): Effect.Effect<ReadonlyArray<ReadonlyArray<any>>, SqlError> => {
|
|
253
|
+
if (!lockConn) return effect.values
|
|
254
|
+
const [query, params] = effect.compile()
|
|
255
|
+
return lockConn.await.pipe(
|
|
256
|
+
Effect.flatMap(([conn]) => conn.executeUnprepared(query, params, undefined)),
|
|
257
|
+
Effect.onError(() => lockConn.unsafeRebuild())
|
|
258
|
+
)
|
|
259
|
+
}
|
|
235
260
|
const execWithLockConnValues = <A>(
|
|
236
261
|
effect: Statement.Statement<A>
|
|
237
262
|
): Effect.Effect<ReadonlyArray<ReadonlyArray<any>>, SqlError> => {
|
|
@@ -244,8 +269,24 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
244
269
|
}
|
|
245
270
|
|
|
246
271
|
const acquireLock = sql.onDialectOrElse({
|
|
247
|
-
pg: () =>
|
|
248
|
-
|
|
272
|
+
pg: () => {
|
|
273
|
+
if (disableAdvisoryLocks) {
|
|
274
|
+
return (address: string, shardIds: ReadonlyArray<string>) => {
|
|
275
|
+
const values = shardIds.map((shardId) =>
|
|
276
|
+
sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`
|
|
277
|
+
)
|
|
278
|
+
return sql`
|
|
279
|
+
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
280
|
+
ON CONFLICT (shard_id) DO UPDATE
|
|
281
|
+
SET address = ${address}, acquired_at = ${sqlNow}
|
|
282
|
+
WHERE ${locksTableSql}.address = ${address}
|
|
283
|
+
OR ${locksTableSql}.acquired_at < ${lockExpiresAt}
|
|
284
|
+
`.pipe(
|
|
285
|
+
Effect.andThen(acquiredLocks(address, shardIds))
|
|
286
|
+
)
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
return Effect.fnUntraced(function*(_address: string, shardIds: ReadonlyArray<string>) {
|
|
249
290
|
const [conn, pid] = yield* lockConn!.await
|
|
250
291
|
const acquiredShardIds: Array<string> = []
|
|
251
292
|
const toAcquire = new Map(shardIds.map((shardId) => [lockNumbers.get(shardId)!, shardId]))
|
|
@@ -269,10 +310,26 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
269
310
|
}
|
|
270
311
|
}
|
|
271
312
|
return acquiredShardIds
|
|
272
|
-
}, Effect.onError(() => lockConn!.unsafeRebuild()))
|
|
313
|
+
}, Effect.onError(() => lockConn!.unsafeRebuild()))
|
|
314
|
+
},
|
|
273
315
|
|
|
274
|
-
mysql: () =>
|
|
275
|
-
|
|
316
|
+
mysql: () => {
|
|
317
|
+
if (disableAdvisoryLocks) {
|
|
318
|
+
return (address: string, shardIds: ReadonlyArray<string>) => {
|
|
319
|
+
const values = shardIds.map((shardId) =>
|
|
320
|
+
sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`
|
|
321
|
+
)
|
|
322
|
+
return sql`
|
|
323
|
+
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
324
|
+
ON DUPLICATE KEY UPDATE
|
|
325
|
+
address = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(address), address),
|
|
326
|
+
acquired_at = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(acquired_at), acquired_at)
|
|
327
|
+
`.unprepared.pipe(
|
|
328
|
+
Effect.andThen(acquiredLocks(address, shardIds))
|
|
329
|
+
)
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
return Effect.fnUntraced(function*(_address: string, shardIds: ReadonlyArray<string>) {
|
|
276
333
|
const [conn, pid] = yield* lockConn!.await
|
|
277
334
|
const takenLocks = (yield* conn.executeValues(`SELECT ${allMySqlTakenLocks}`, []))[0] as Array<number | null>
|
|
278
335
|
const acquiredShardIds: Array<string> = []
|
|
@@ -296,7 +353,8 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
296
353
|
}
|
|
297
354
|
}
|
|
298
355
|
return acquiredShardIds
|
|
299
|
-
}, Effect.onError(() => lockConn!.unsafeRebuild()))
|
|
356
|
+
}, Effect.onError(() => lockConn!.unsafeRebuild()))
|
|
357
|
+
},
|
|
300
358
|
|
|
301
359
|
mssql: () => (address: string, shardIds: ReadonlyArray<string>) => {
|
|
302
360
|
const values = shardIds.map((shardId) => sql`(${stringLiteral(shardId)}, ${stringLiteral(address)}, ${sqlNow})`)
|
|
@@ -399,8 +457,34 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
399
457
|
const stringLiteralArr = (arr: ReadonlyArray<string>) => sql.literal(`(${arr.map(wrapString).join(",")})`)
|
|
400
458
|
|
|
401
459
|
const refreshShards = sql.onDialectOrElse({
|
|
402
|
-
pg: () =>
|
|
403
|
-
|
|
460
|
+
pg: () => {
|
|
461
|
+
if (!disableAdvisoryLocks) return acquireLock
|
|
462
|
+
return (address: string, shardIds: ReadonlyArray<string>) =>
|
|
463
|
+
sql`
|
|
464
|
+
UPDATE ${locksTableSql}
|
|
465
|
+
SET acquired_at = ${sqlNow}
|
|
466
|
+
WHERE address = ${address} AND shard_id IN ${stringLiteralArr(shardIds)}
|
|
467
|
+
RETURNING shard_id
|
|
468
|
+
`.pipe(
|
|
469
|
+
execWithLockConnValues,
|
|
470
|
+
Effect.map((rows) => rows.map((row) => row[0] as string))
|
|
471
|
+
)
|
|
472
|
+
},
|
|
473
|
+
mysql: () => {
|
|
474
|
+
if (!disableAdvisoryLocks) return acquireLock
|
|
475
|
+
return (address: string, shardIds: ReadonlyArray<string>) => {
|
|
476
|
+
const shardIdsStr = stringLiteralArr(shardIds)
|
|
477
|
+
return sql<Array<{ shard_id: string }>>`
|
|
478
|
+
UPDATE ${locksTableSql}
|
|
479
|
+
SET acquired_at = ${sqlNow}
|
|
480
|
+
WHERE address = ${address} AND shard_id IN ${shardIdsStr};
|
|
481
|
+
SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND shard_id IN ${shardIdsStr}
|
|
482
|
+
`.pipe(
|
|
483
|
+
execWithLockConnUnprepared,
|
|
484
|
+
Effect.map((rows) => rows[1].map((row) => row.shard_id))
|
|
485
|
+
)
|
|
486
|
+
}
|
|
487
|
+
},
|
|
404
488
|
mssql: () => (address: string, shardIds: ReadonlyArray<string>) =>
|
|
405
489
|
sql`
|
|
406
490
|
UPDATE ${locksTableSql}
|
|
@@ -462,8 +546,14 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
462
546
|
),
|
|
463
547
|
|
|
464
548
|
release: sql.onDialectOrElse({
|
|
465
|
-
pg: () =>
|
|
466
|
-
|
|
549
|
+
pg: () => {
|
|
550
|
+
if (disableAdvisoryLocks) {
|
|
551
|
+
return (address: string, shardId: string) =>
|
|
552
|
+
sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(
|
|
553
|
+
PersistenceError.refail
|
|
554
|
+
)
|
|
555
|
+
}
|
|
556
|
+
return Effect.fnUntraced(
|
|
467
557
|
function*(_address, shardId) {
|
|
468
558
|
const lockNum = lockNumbers.get(shardId)!
|
|
469
559
|
for (let i = 0; i < 5; i++) {
|
|
@@ -481,9 +571,16 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
481
571
|
Effect.onError(() => lockConn!.unsafeRebuild()),
|
|
482
572
|
Effect.asVoid,
|
|
483
573
|
PersistenceError.refail
|
|
484
|
-
)
|
|
485
|
-
|
|
486
|
-
|
|
574
|
+
)
|
|
575
|
+
},
|
|
576
|
+
mysql: () => {
|
|
577
|
+
if (disableAdvisoryLocks) {
|
|
578
|
+
return (address: string, shardId: string) =>
|
|
579
|
+
sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(
|
|
580
|
+
PersistenceError.refail
|
|
581
|
+
)
|
|
582
|
+
}
|
|
583
|
+
return Effect.fnUntraced(
|
|
487
584
|
function*(_address, shardId) {
|
|
488
585
|
const lockName = lockNames.get(shardId)!
|
|
489
586
|
while (true) {
|
|
@@ -499,7 +596,8 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
499
596
|
Effect.onError(() => lockConn!.unsafeRebuild()),
|
|
500
597
|
Effect.asVoid,
|
|
501
598
|
PersistenceError.refail
|
|
502
|
-
)
|
|
599
|
+
)
|
|
600
|
+
},
|
|
503
601
|
orElse: () => (address, shardId) =>
|
|
504
602
|
sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(
|
|
505
603
|
PersistenceError.refail
|
|
@@ -507,20 +605,34 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
507
605
|
}),
|
|
508
606
|
|
|
509
607
|
releaseAll: sql.onDialectOrElse({
|
|
510
|
-
pg: () => (
|
|
511
|
-
|
|
608
|
+
pg: () => (address) => {
|
|
609
|
+
if (disableAdvisoryLocks) {
|
|
610
|
+
return sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(
|
|
611
|
+
PersistenceError.refail,
|
|
612
|
+
withTracerDisabled
|
|
613
|
+
)
|
|
614
|
+
}
|
|
615
|
+
return sql`SELECT pg_advisory_unlock_all()`.pipe(
|
|
512
616
|
execWithLockConn,
|
|
513
617
|
Effect.asVoid,
|
|
514
618
|
PersistenceError.refail,
|
|
515
619
|
withTracerDisabled
|
|
516
|
-
)
|
|
517
|
-
|
|
518
|
-
|
|
620
|
+
)
|
|
621
|
+
},
|
|
622
|
+
mysql: () => (address) => {
|
|
623
|
+
if (disableAdvisoryLocks) {
|
|
624
|
+
return sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(
|
|
625
|
+
PersistenceError.refail,
|
|
626
|
+
withTracerDisabled
|
|
627
|
+
)
|
|
628
|
+
}
|
|
629
|
+
return sql`SELECT RELEASE_ALL_LOCKS()`.pipe(
|
|
519
630
|
execWithLockConn,
|
|
520
631
|
Effect.asVoid,
|
|
521
632
|
PersistenceError.refail,
|
|
522
633
|
withTracerDisabled
|
|
523
|
-
)
|
|
634
|
+
)
|
|
635
|
+
},
|
|
524
636
|
orElse: () => (address) =>
|
|
525
637
|
sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(
|
|
526
638
|
PersistenceError.refail,
|