@effect/cluster 0.53.4 → 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/EntityResource.js +1 -1
- package/dist/cjs/EntityResource.js.map +1 -1
- 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/EntityResource.js +1 -1
- package/dist/esm/EntityResource.js.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/EntityResource.ts +2 -2
- package/src/ShardingConfig.ts +9 -0
- package/src/SqlRunnerStorage.ts +134 -22
|
@@ -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":"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","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/platform": "^0.93.
|
|
17
|
+
"@effect/platform": "^0.93.4",
|
|
18
|
+
"@effect/rpc": "^0.72.2",
|
|
18
19
|
"@effect/sql": "^0.48.0",
|
|
19
20
|
"@effect/workflow": "^0.13.0",
|
|
20
|
-
"effect": "^3.19.6"
|
|
21
|
-
"@effect/rpc": "^0.72.2"
|
|
21
|
+
"effect": "^3.19.6"
|
|
22
22
|
},
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"provenance": true
|
package/src/EntityResource.ts
CHANGED
|
@@ -73,6 +73,8 @@ export const make: <A, E, R>(options: {
|
|
|
73
73
|
}) {
|
|
74
74
|
let shuttingDown = false
|
|
75
75
|
|
|
76
|
+
yield* Entity.keepAlive(true)
|
|
77
|
+
|
|
76
78
|
const ref = yield* RcRef.make({
|
|
77
79
|
acquire: Effect.gen(function*() {
|
|
78
80
|
const closeable = yield* Scope.make()
|
|
@@ -85,8 +87,6 @@ export const make: <A, E, R>(options: {
|
|
|
85
87
|
})
|
|
86
88
|
)
|
|
87
89
|
|
|
88
|
-
yield* Entity.keepAlive(true)
|
|
89
|
-
|
|
90
90
|
return yield* options.acquire.pipe(
|
|
91
91
|
Effect.provideService(CloseScope, closeable)
|
|
92
92
|
)
|
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.")
|