@effect/cluster 0.52.7 → 0.52.9
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/ClusterWorkflowEngine.js +19 -4
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/SqlRunnerStorage.js +46 -29
- package/dist/cjs/SqlRunnerStorage.js.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/SqlRunnerStorage.d.ts.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +19 -4
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/SqlRunnerStorage.js +46 -29
- package/dist/esm/SqlRunnerStorage.js.map +1 -1
- package/package.json +3 -3
- package/src/ClusterWorkflowEngine.ts +19 -4
- package/src/SqlRunnerStorage.ts +49 -35
|
@@ -152,10 +152,22 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
152
152
|
yield* sharding.pollStorage;
|
|
153
153
|
});
|
|
154
154
|
const sendResumeParent = Effect.fnUntraced(function* (options) {
|
|
155
|
-
const
|
|
156
|
-
|
|
157
|
-
|
|
155
|
+
const requestId = yield* requestIdFor({
|
|
156
|
+
workflow: workflows.get(options.workflowName),
|
|
157
|
+
entityType: `Workflow/${options.workflowName}`,
|
|
158
|
+
executionId: options.executionId,
|
|
159
|
+
tag: "resume",
|
|
160
|
+
id: ""
|
|
158
161
|
});
|
|
162
|
+
if (Option.isNone(requestId)) {
|
|
163
|
+
const client = (yield* RcMap.get(clientsPartial, options.workflowName))(options.executionId);
|
|
164
|
+
return yield* client.resume({}, {
|
|
165
|
+
discard: true
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
const reply = yield* replyForRequestId(requestId.value);
|
|
169
|
+
if (Option.isNone(reply)) return;
|
|
170
|
+
yield* sharding.reset(requestId.value);
|
|
159
171
|
}, Effect.scoped);
|
|
160
172
|
return _WorkflowEngine.WorkflowEngine.of({
|
|
161
173
|
register(workflow, execute) {
|
|
@@ -423,7 +435,10 @@ const DeferredRpc = /*#__PURE__*/Rpc.make("deferred", {
|
|
|
423
435
|
}) => name,
|
|
424
436
|
success: ExitUnknown
|
|
425
437
|
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
|
|
426
|
-
const ResumeRpc = /*#__PURE__*/Rpc.make("resume"
|
|
438
|
+
const ResumeRpc = /*#__PURE__*/Rpc.make("resume", {
|
|
439
|
+
payload: {},
|
|
440
|
+
primaryKey: () => ""
|
|
441
|
+
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
|
|
427
442
|
const makePartialWorkflowEntity = workflowName => Entity.make(`Workflow/${workflowName}`, [DeferredRpc, ResumeRpc, ActivityRpc]);
|
|
428
443
|
const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
|
|
429
444
|
class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","_interopRequireWildcard","require","RpcServer","_workflow","Activity","DurableClock","Workflow","_WorkflowEngine","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","_EntityAddress","_EntityId","_EntityType","_MessageStorage","Sharding","Snowflake","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","gen","sharding","storage","MessageStorage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","name","makeWorkflowEntity","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","EntityId","address","EntityAddress","entityType","EntityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","WorkflowEngine","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","WorkflowInstance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","activityExecute","annotateCurrentSpan","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","DurableDeferred","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","_interopRequireWildcard","require","RpcServer","_workflow","Activity","DurableClock","Workflow","_WorkflowEngine","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","_EntityAddress","_EntityId","_EntityType","_MessageStorage","Sharding","Snowflake","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","gen","sharding","storage","MessageStorage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","name","makeWorkflowEntity","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","EntityId","address","EntityAddress","entityType","EntityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","WorkflowEngine","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","WorkflowInstance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","activityExecute","annotateCurrentSpan","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","DurableDeferred","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -33,14 +33,24 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
33
33
|
const acquireLockConn = sql.onDialectOrElse({
|
|
34
34
|
pg: () => Effect.fnUntraced(function* (scope) {
|
|
35
35
|
const conn = yield* Effect.orDie(sql.reserve).pipe(Scope.extend(scope));
|
|
36
|
+
const pid = (yield* conn.executeValues("SELECT pg_backend_pid()", []))[0][0];
|
|
36
37
|
yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT pg_advisory_unlock_all()", [])));
|
|
37
|
-
return conn;
|
|
38
|
-
}),
|
|
38
|
+
return [conn, pid];
|
|
39
|
+
}, Effect.orDie),
|
|
39
40
|
mysql: () => Effect.fnUntraced(function* (scope) {
|
|
40
41
|
const conn = yield* Effect.orDie(sql.reserve).pipe(Scope.extend(scope));
|
|
42
|
+
// we need to get the connection id using IS_USED_LOCK to properly
|
|
43
|
+
// support vitess
|
|
44
|
+
let pid = undefined;
|
|
45
|
+
while (pid === undefined) {
|
|
46
|
+
const address = `cluster:pid:${Math.random() * Number.MAX_SAFE_INTEGER | 0}`;
|
|
47
|
+
const taken = (yield* conn.executeValues(`SELECT GET_LOCK('${address}', 10), IS_USED_LOCK('${address}')`, []))[0];
|
|
48
|
+
if (taken[0] === null) continue;
|
|
49
|
+
pid = taken[1];
|
|
50
|
+
}
|
|
41
51
|
yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT RELEASE_ALL_LOCKS()", [])));
|
|
42
|
-
return conn;
|
|
43
|
-
}),
|
|
52
|
+
return [conn, pid];
|
|
53
|
+
}, Effect.orDie),
|
|
44
54
|
orElse: () => undefined
|
|
45
55
|
});
|
|
46
56
|
const lockConn = acquireLockConn && (yield* _resourceRef.ResourceRef.from(yield* Effect.scope, acquireLockConn));
|
|
@@ -186,19 +196,19 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
186
196
|
const execWithLockConn = effect => {
|
|
187
197
|
if (!lockConn) return effect;
|
|
188
198
|
const [query, params] = effect.compile();
|
|
189
|
-
return lockConn.await.pipe(Effect.flatMap(conn => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
199
|
+
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
190
200
|
};
|
|
191
201
|
const execWithLockConnValues = effect => {
|
|
192
202
|
if (!lockConn) return effect.values;
|
|
193
203
|
const [query, params] = effect.compile();
|
|
194
|
-
return lockConn.await.pipe(Effect.flatMap(conn => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
204
|
+
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
195
205
|
};
|
|
196
206
|
const acquireLock = sql.onDialectOrElse({
|
|
197
207
|
pg: () => Effect.fnUntraced(function* (_address, shardIds) {
|
|
198
|
-
const conn = yield* lockConn.await;
|
|
208
|
+
const [conn, pid] = yield* lockConn.await;
|
|
199
209
|
const acquiredShardIds = [];
|
|
200
210
|
const toAcquire = new Map(shardIds.map(shardId => [lockNumbers.get(shardId), shardId]));
|
|
201
|
-
const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid =
|
|
211
|
+
const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = ${pid} ORDER BY objid`, []);
|
|
202
212
|
for (let i = 0; i < takenLocks.length; i++) {
|
|
203
213
|
const lockNum = takenLocks[i][0];
|
|
204
214
|
acquiredShardIds.push(lockNumbersReverse.get(lockNum));
|
|
@@ -217,12 +227,14 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
217
227
|
return acquiredShardIds;
|
|
218
228
|
}, Effect.onError(() => lockConn.unsafeRebuild())),
|
|
219
229
|
mysql: () => Effect.fnUntraced(function* (_address, shardIds) {
|
|
220
|
-
const conn = yield* lockConn.await;
|
|
221
|
-
const takenLocks = (yield* conn.
|
|
230
|
+
const [conn, pid] = yield* lockConn.await;
|
|
231
|
+
const takenLocks = (yield* conn.executeValues(`SELECT ${allMySqlTakenLocks}`, []))[0];
|
|
222
232
|
const acquiredShardIds = [];
|
|
223
233
|
const toAcquire = [];
|
|
224
|
-
for (
|
|
225
|
-
|
|
234
|
+
for (let i = 0; i < shardIds.length; i++) {
|
|
235
|
+
const shardId = shardIds[i];
|
|
236
|
+
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)];
|
|
237
|
+
if (lockTakenBy === pid) {
|
|
226
238
|
acquiredShardIds.push(shardId);
|
|
227
239
|
} else if (shardIds.includes(shardId)) {
|
|
228
240
|
toAcquire.push(shardId);
|
|
@@ -231,10 +243,10 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
231
243
|
if (toAcquire.length === 0) {
|
|
232
244
|
return acquiredShardIds;
|
|
233
245
|
}
|
|
234
|
-
const results = (yield* conn.
|
|
235
|
-
for (
|
|
236
|
-
if (results[
|
|
237
|
-
acquiredShardIds.push(
|
|
246
|
+
const results = (yield* conn.executeValues(`SELECT ${mysqlLocks(toAcquire)}`, []))[0];
|
|
247
|
+
for (let i = 0; i < results.length; i++) {
|
|
248
|
+
if (results[i] === 1) {
|
|
249
|
+
acquiredShardIds.push(toAcquire[i]);
|
|
238
250
|
}
|
|
239
251
|
}
|
|
240
252
|
return acquiredShardIds;
|
|
@@ -282,20 +294,25 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
282
294
|
lockNumbersReverse.set(lockNum, shardId);
|
|
283
295
|
}
|
|
284
296
|
}
|
|
297
|
+
const shardIdsIndex = new Map();
|
|
285
298
|
const lockNames = new Map();
|
|
286
299
|
const lockNamesReverse = new Map();
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
for (let
|
|
290
|
-
const
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
300
|
+
{
|
|
301
|
+
let index = 0;
|
|
302
|
+
for (let i = 0; i < config.shardGroups.length; i++) {
|
|
303
|
+
const group = config.shardGroups[i];
|
|
304
|
+
for (let shard = 1; shard <= config.shardsPerGroup; shard++) {
|
|
305
|
+
const shardId = ShardId.make(group, shard).toString();
|
|
306
|
+
const lockName = `${prefix}.${shardId}`;
|
|
307
|
+
shardIdsIndex.set(shardId, index++);
|
|
308
|
+
lockNames.set(shardId, lockName);
|
|
309
|
+
lockNamesReverse.set(lockName, shardId);
|
|
310
|
+
}
|
|
294
311
|
}
|
|
295
312
|
}
|
|
296
313
|
const pgLocks = shardIdsMap => Array.from(shardIdsMap.entries(), ([lockNum, shardId]) => `pg_try_advisory_lock(${lockNum}) AS "${shardId}"`).join(", ");
|
|
297
314
|
const mysqlLocks = shardIds => shardIds.map(shardId => `GET_LOCK('${lockNames.get(shardId)}', 0) AS "${shardId}"`).join(", ");
|
|
298
|
-
const allMySqlTakenLocks = Array.from(lockNames.entries(), ([shardId, lockName]) => `IS_USED_LOCK('${lockName}')
|
|
315
|
+
const allMySqlTakenLocks = Array.from(lockNames.entries(), ([shardId, lockName]) => `IS_USED_LOCK('${lockName}') AS "${shardId}"`).join(", ");
|
|
299
316
|
const acquiredLocks = (address, shardIds) => sql`
|
|
300
317
|
SELECT shard_id FROM ${sql(locksTable)}
|
|
301
318
|
WHERE address = ${address}
|
|
@@ -335,21 +352,21 @@ const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
335
352
|
pg: () => Effect.fnUntraced(function* (_address, shardId) {
|
|
336
353
|
const lockNum = lockNumbers.get(shardId);
|
|
337
354
|
for (let i = 0; i < 5; i++) {
|
|
338
|
-
const conn = yield* lockConn.await;
|
|
355
|
+
const [conn] = yield* lockConn.await;
|
|
339
356
|
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
|
|
340
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}`, []);
|
|
341
358
|
if (takenLocks.length === 0) return;
|
|
342
359
|
}
|
|
343
|
-
const conn = yield* lockConn.await;
|
|
360
|
+
const [conn] = yield* lockConn.await;
|
|
344
361
|
yield* conn.executeRaw(`SELECT pg_advisory_unlock_all()`, []);
|
|
345
362
|
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, _ClusterError.PersistenceError.refail),
|
|
346
363
|
mysql: () => Effect.fnUntraced(function* (_address, shardId) {
|
|
347
364
|
const lockName = lockNames.get(shardId);
|
|
348
365
|
while (true) {
|
|
349
|
-
const conn = yield* lockConn.await;
|
|
366
|
+
const [conn, pid] = yield* lockConn.await;
|
|
350
367
|
yield* conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, []);
|
|
351
|
-
const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}')
|
|
352
|
-
if (takenLocks.length === 0 || takenLocks[0][0] !==
|
|
368
|
+
const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}')`, []);
|
|
369
|
+
if (takenLocks.length === 0 || takenLocks[0][0] !== pid) return;
|
|
353
370
|
}
|
|
354
371
|
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, _ClusterError.PersistenceError.refail),
|
|
355
372
|
orElse: () => (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(_ClusterError.PersistenceError.refail)
|
|
@@ -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","addFinalizerExit","executeRaw","mysql","orElse","undefined","lockConn","ResourceRef","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","void","sqlNowString","sqlNow","literal","expiresSeconds","Math","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","address","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnValues","executeValues","acquireLock","_address","shardIds","acquiredShardIds","toAcquire","Map","shardId","lockNumbers","takenLocks","length","lockNum","push","lockNumbersReverse","delete","size","rows","executeUnprepared","pgLocks","allMySqlTakenLocks","includes","mysqlLocks","stringLiteral","csv","andThen","acquiredLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","lockNames","lockNamesReverse","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","makeEncoded","getRunners","PersistenceError","refail","String","Boolean","register","Number","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","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/ClusterWorkflowEngine.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAMlF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAO1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;uBAfiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.d.ts","sourceRoot":"","sources":["../../src/ClusterWorkflowEngine.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAA;AAC7D,OAAO,KAAK,QAAQ,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAMlF,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAIvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAOvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAO1C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAGzC;;;GAGG;AACH,eAAO,MAAM,IAAI;;;;;;;uBAfiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;2DAwejC,CAAA;AA4HF;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAC7B,cAAc,EACd,KAAK,EACL,QAAQ,CAAC,QAAQ,GAAG,cAAc,CAGnC,CAAA"}
|
|
@@ -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;;;;;;;;;;+EA0fhB,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"}
|
|
@@ -144,10 +144,22 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
144
144
|
yield* sharding.pollStorage;
|
|
145
145
|
});
|
|
146
146
|
const sendResumeParent = Effect.fnUntraced(function* (options) {
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
147
|
+
const requestId = yield* requestIdFor({
|
|
148
|
+
workflow: workflows.get(options.workflowName),
|
|
149
|
+
entityType: `Workflow/${options.workflowName}`,
|
|
150
|
+
executionId: options.executionId,
|
|
151
|
+
tag: "resume",
|
|
152
|
+
id: ""
|
|
150
153
|
});
|
|
154
|
+
if (Option.isNone(requestId)) {
|
|
155
|
+
const client = (yield* RcMap.get(clientsPartial, options.workflowName))(options.executionId);
|
|
156
|
+
return yield* client.resume({}, {
|
|
157
|
+
discard: true
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
const reply = yield* replyForRequestId(requestId.value);
|
|
161
|
+
if (Option.isNone(reply)) return;
|
|
162
|
+
yield* sharding.reset(requestId.value);
|
|
151
163
|
}, Effect.scoped);
|
|
152
164
|
return WorkflowEngine.of({
|
|
153
165
|
register(workflow, execute) {
|
|
@@ -415,7 +427,10 @@ const DeferredRpc = /*#__PURE__*/Rpc.make("deferred", {
|
|
|
415
427
|
}) => name,
|
|
416
428
|
success: ExitUnknown
|
|
417
429
|
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
|
|
418
|
-
const ResumeRpc = /*#__PURE__*/Rpc.make("resume"
|
|
430
|
+
const ResumeRpc = /*#__PURE__*/Rpc.make("resume", {
|
|
431
|
+
payload: {},
|
|
432
|
+
primaryKey: () => ""
|
|
433
|
+
}).annotate(ClusterSchema.Persisted, true).annotate(ClusterSchema.Uninterruptible, true);
|
|
419
434
|
const makePartialWorkflowEntity = workflowName => Entity.make(`Workflow/${workflowName}`, [DeferredRpc, ResumeRpc, ActivityRpc]);
|
|
420
435
|
const activityPrimaryKey = (activity, attempt) => `${activity}/${attempt}`;
|
|
421
436
|
class ClockPayload extends /*#__PURE__*/Schema.Class(`Workflow/DurableClock/Run`)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","RpcServer","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","e","activityExecute","annotateCurrentSpan","has","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","RpcServer","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","e","activityExecute","annotateCurrentSpan","has","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -25,14 +25,24 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
25
25
|
const acquireLockConn = sql.onDialectOrElse({
|
|
26
26
|
pg: () => Effect.fnUntraced(function* (scope) {
|
|
27
27
|
const conn = yield* Effect.orDie(sql.reserve).pipe(Scope.extend(scope));
|
|
28
|
+
const pid = (yield* conn.executeValues("SELECT pg_backend_pid()", []))[0][0];
|
|
28
29
|
yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT pg_advisory_unlock_all()", [])));
|
|
29
|
-
return conn;
|
|
30
|
-
}),
|
|
30
|
+
return [conn, pid];
|
|
31
|
+
}, Effect.orDie),
|
|
31
32
|
mysql: () => Effect.fnUntraced(function* (scope) {
|
|
32
33
|
const conn = yield* Effect.orDie(sql.reserve).pipe(Scope.extend(scope));
|
|
34
|
+
// we need to get the connection id using IS_USED_LOCK to properly
|
|
35
|
+
// support vitess
|
|
36
|
+
let pid = undefined;
|
|
37
|
+
while (pid === undefined) {
|
|
38
|
+
const address = `cluster:pid:${Math.random() * Number.MAX_SAFE_INTEGER | 0}`;
|
|
39
|
+
const taken = (yield* conn.executeValues(`SELECT GET_LOCK('${address}', 10), IS_USED_LOCK('${address}')`, []))[0];
|
|
40
|
+
if (taken[0] === null) continue;
|
|
41
|
+
pid = taken[1];
|
|
42
|
+
}
|
|
33
43
|
yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT RELEASE_ALL_LOCKS()", [])));
|
|
34
|
-
return conn;
|
|
35
|
-
}),
|
|
44
|
+
return [conn, pid];
|
|
45
|
+
}, Effect.orDie),
|
|
36
46
|
orElse: () => undefined
|
|
37
47
|
});
|
|
38
48
|
const lockConn = acquireLockConn && (yield* ResourceRef.from(yield* Effect.scope, acquireLockConn));
|
|
@@ -178,19 +188,19 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
178
188
|
const execWithLockConn = effect => {
|
|
179
189
|
if (!lockConn) return effect;
|
|
180
190
|
const [query, params] = effect.compile();
|
|
181
|
-
return lockConn.await.pipe(Effect.flatMap(conn => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
191
|
+
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeRaw(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
182
192
|
};
|
|
183
193
|
const execWithLockConnValues = effect => {
|
|
184
194
|
if (!lockConn) return effect.values;
|
|
185
195
|
const [query, params] = effect.compile();
|
|
186
|
-
return lockConn.await.pipe(Effect.flatMap(conn => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
196
|
+
return lockConn.await.pipe(Effect.flatMap(([conn]) => conn.executeValues(query, params)), Effect.onError(() => lockConn.unsafeRebuild()));
|
|
187
197
|
};
|
|
188
198
|
const acquireLock = sql.onDialectOrElse({
|
|
189
199
|
pg: () => Effect.fnUntraced(function* (_address, shardIds) {
|
|
190
|
-
const conn = yield* lockConn.await;
|
|
200
|
+
const [conn, pid] = yield* lockConn.await;
|
|
191
201
|
const acquiredShardIds = [];
|
|
192
202
|
const toAcquire = new Map(shardIds.map(shardId => [lockNumbers.get(shardId), shardId]));
|
|
193
|
-
const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid =
|
|
203
|
+
const takenLocks = yield* conn.executeValues(`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = ${pid} ORDER BY objid`, []);
|
|
194
204
|
for (let i = 0; i < takenLocks.length; i++) {
|
|
195
205
|
const lockNum = takenLocks[i][0];
|
|
196
206
|
acquiredShardIds.push(lockNumbersReverse.get(lockNum));
|
|
@@ -209,12 +219,14 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
209
219
|
return acquiredShardIds;
|
|
210
220
|
}, Effect.onError(() => lockConn.unsafeRebuild())),
|
|
211
221
|
mysql: () => Effect.fnUntraced(function* (_address, shardIds) {
|
|
212
|
-
const conn = yield* lockConn.await;
|
|
213
|
-
const takenLocks = (yield* conn.
|
|
222
|
+
const [conn, pid] = yield* lockConn.await;
|
|
223
|
+
const takenLocks = (yield* conn.executeValues(`SELECT ${allMySqlTakenLocks}`, []))[0];
|
|
214
224
|
const acquiredShardIds = [];
|
|
215
225
|
const toAcquire = [];
|
|
216
|
-
for (
|
|
217
|
-
|
|
226
|
+
for (let i = 0; i < shardIds.length; i++) {
|
|
227
|
+
const shardId = shardIds[i];
|
|
228
|
+
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)];
|
|
229
|
+
if (lockTakenBy === pid) {
|
|
218
230
|
acquiredShardIds.push(shardId);
|
|
219
231
|
} else if (shardIds.includes(shardId)) {
|
|
220
232
|
toAcquire.push(shardId);
|
|
@@ -223,10 +235,10 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
223
235
|
if (toAcquire.length === 0) {
|
|
224
236
|
return acquiredShardIds;
|
|
225
237
|
}
|
|
226
|
-
const results = (yield* conn.
|
|
227
|
-
for (
|
|
228
|
-
if (results[
|
|
229
|
-
acquiredShardIds.push(
|
|
238
|
+
const results = (yield* conn.executeValues(`SELECT ${mysqlLocks(toAcquire)}`, []))[0];
|
|
239
|
+
for (let i = 0; i < results.length; i++) {
|
|
240
|
+
if (results[i] === 1) {
|
|
241
|
+
acquiredShardIds.push(toAcquire[i]);
|
|
230
242
|
}
|
|
231
243
|
}
|
|
232
244
|
return acquiredShardIds;
|
|
@@ -274,20 +286,25 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
274
286
|
lockNumbersReverse.set(lockNum, shardId);
|
|
275
287
|
}
|
|
276
288
|
}
|
|
289
|
+
const shardIdsIndex = new Map();
|
|
277
290
|
const lockNames = new Map();
|
|
278
291
|
const lockNamesReverse = new Map();
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
for (let
|
|
282
|
-
const
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
292
|
+
{
|
|
293
|
+
let index = 0;
|
|
294
|
+
for (let i = 0; i < config.shardGroups.length; i++) {
|
|
295
|
+
const group = config.shardGroups[i];
|
|
296
|
+
for (let shard = 1; shard <= config.shardsPerGroup; shard++) {
|
|
297
|
+
const shardId = ShardId.make(group, shard).toString();
|
|
298
|
+
const lockName = `${prefix}.${shardId}`;
|
|
299
|
+
shardIdsIndex.set(shardId, index++);
|
|
300
|
+
lockNames.set(shardId, lockName);
|
|
301
|
+
lockNamesReverse.set(lockName, shardId);
|
|
302
|
+
}
|
|
286
303
|
}
|
|
287
304
|
}
|
|
288
305
|
const pgLocks = shardIdsMap => Array.from(shardIdsMap.entries(), ([lockNum, shardId]) => `pg_try_advisory_lock(${lockNum}) AS "${shardId}"`).join(", ");
|
|
289
306
|
const mysqlLocks = shardIds => shardIds.map(shardId => `GET_LOCK('${lockNames.get(shardId)}', 0) AS "${shardId}"`).join(", ");
|
|
290
|
-
const allMySqlTakenLocks = Array.from(lockNames.entries(), ([shardId, lockName]) => `IS_USED_LOCK('${lockName}')
|
|
307
|
+
const allMySqlTakenLocks = Array.from(lockNames.entries(), ([shardId, lockName]) => `IS_USED_LOCK('${lockName}') AS "${shardId}"`).join(", ");
|
|
291
308
|
const acquiredLocks = (address, shardIds) => sql`
|
|
292
309
|
SELECT shard_id FROM ${sql(locksTable)}
|
|
293
310
|
WHERE address = ${address}
|
|
@@ -327,21 +344,21 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
|
327
344
|
pg: () => Effect.fnUntraced(function* (_address, shardId) {
|
|
328
345
|
const lockNum = lockNumbers.get(shardId);
|
|
329
346
|
for (let i = 0; i < 5; i++) {
|
|
330
|
-
const conn = yield* lockConn.await;
|
|
347
|
+
const [conn] = yield* lockConn.await;
|
|
331
348
|
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, []);
|
|
332
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}`, []);
|
|
333
350
|
if (takenLocks.length === 0) return;
|
|
334
351
|
}
|
|
335
|
-
const conn = yield* lockConn.await;
|
|
352
|
+
const [conn] = yield* lockConn.await;
|
|
336
353
|
yield* conn.executeRaw(`SELECT pg_advisory_unlock_all()`, []);
|
|
337
354
|
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, PersistenceError.refail),
|
|
338
355
|
mysql: () => Effect.fnUntraced(function* (_address, shardId) {
|
|
339
356
|
const lockName = lockNames.get(shardId);
|
|
340
357
|
while (true) {
|
|
341
|
-
const conn = yield* lockConn.await;
|
|
358
|
+
const [conn, pid] = yield* lockConn.await;
|
|
342
359
|
yield* conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, []);
|
|
343
|
-
const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}')
|
|
344
|
-
if (takenLocks.length === 0 || takenLocks[0][0] !==
|
|
360
|
+
const takenLocks = yield* conn.executeValues(`SELECT IS_USED_LOCK('${lockName}')`, []);
|
|
361
|
+
if (takenLocks.length === 0 || takenLocks[0][0] !== pid) return;
|
|
345
362
|
}
|
|
346
363
|
}, Effect.onError(() => lockConn.unsafeRebuild()), Effect.asVoid, PersistenceError.refail),
|
|
347
364
|
orElse: () => (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail)
|
|
@@ -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","addFinalizerExit","executeRaw","mysql","orElse","undefined","lockConn","from","runnersTable","runnersTableSql","hasOldTables","isSuccess","ignore","mssql","locksTable","locksTableSql","void","sqlNowString","sqlNow","literal","expiresSeconds","Math","ceil","toSeconds","shardLockExpiration","toString","lockExpiresAt","encodeBoolean","b","sqlite","insertRunner","address","runner","healthy","values","unprepared","map","results","machine_id","execWithLockConn","effect","query","params","compile","await","flatMap","onError","unsafeRebuild","execWithLockConnValues","executeValues","acquireLock","_address","shardIds","acquiredShardIds","toAcquire","Map","shardId","lockNumbers","get","takenLocks","i","length","lockNum","push","lockNumbersReverse","delete","size","rows","executeUnprepared","pgLocks","allMySqlTakenLocks","includes","mysqlLocks","stringLiteral","csv","andThen","acquiredLocks","withTransaction","shardGroups","group","base","shard","shardsPerGroup","set","lockNames","lockNamesReverse","lockName","shardIdsMap","Array","entries","join","stringLiteralArr","row","wrapString","s","arr","refreshShards","makeEncoded","getRunners","refail","String","Boolean","register","Number","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","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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@effect/cluster",
|
|
3
|
-
"version": "0.52.
|
|
3
|
+
"version": "0.52.9",
|
|
4
4
|
"description": "Unified interfaces for common cluster-specific services",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
"sideEffects": [],
|
|
12
12
|
"homepage": "https://effect.website",
|
|
13
13
|
"peerDependencies": {
|
|
14
|
-
"@effect/platform": "^0.93.0",
|
|
15
14
|
"@effect/rpc": "^0.72.1",
|
|
16
15
|
"@effect/sql": "^0.48.0",
|
|
16
|
+
"effect": "^3.19.3",
|
|
17
17
|
"@effect/workflow": "^0.12.2",
|
|
18
|
-
"effect": "^
|
|
18
|
+
"@effect/platform": "^0.93.0"
|
|
19
19
|
},
|
|
20
20
|
"publishConfig": {
|
|
21
21
|
"provenance": true
|
|
@@ -72,7 +72,7 @@ export const make = Effect.gen(function*() {
|
|
|
72
72
|
Schema.Struct<{ name: typeof Schema.String; attempt: typeof Schema.Number }>,
|
|
73
73
|
Schema.Schema<Workflow.Result<any, any>>
|
|
74
74
|
>
|
|
75
|
-
| Rpc.Rpc<"resume"
|
|
75
|
+
| Rpc.Rpc<"resume", Schema.Struct<{}>>
|
|
76
76
|
>
|
|
77
77
|
>()
|
|
78
78
|
const partialEntities = new Map<
|
|
@@ -236,8 +236,20 @@ export const make = Effect.gen(function*() {
|
|
|
236
236
|
readonly workflowName: string
|
|
237
237
|
readonly executionId: string
|
|
238
238
|
}) {
|
|
239
|
-
const
|
|
240
|
-
|
|
239
|
+
const requestId = yield* requestIdFor({
|
|
240
|
+
workflow: workflows.get(options.workflowName)!,
|
|
241
|
+
entityType: `Workflow/${options.workflowName}`,
|
|
242
|
+
executionId: options.executionId,
|
|
243
|
+
tag: "resume",
|
|
244
|
+
id: ""
|
|
245
|
+
})
|
|
246
|
+
if (Option.isNone(requestId)) {
|
|
247
|
+
const client = (yield* RcMap.get(clientsPartial, options.workflowName))(options.executionId)
|
|
248
|
+
return yield* client.resume({} as any, { discard: true })
|
|
249
|
+
}
|
|
250
|
+
const reply = yield* replyForRequestId(requestId.value)
|
|
251
|
+
if (Option.isNone(reply)) return
|
|
252
|
+
yield* sharding.reset(requestId.value)
|
|
241
253
|
}, Effect.scoped)
|
|
242
254
|
|
|
243
255
|
return WorkflowEngine.of({
|
|
@@ -573,7 +585,10 @@ const DeferredRpc = Rpc.make("deferred", {
|
|
|
573
585
|
.annotate(ClusterSchema.Persisted, true)
|
|
574
586
|
.annotate(ClusterSchema.Uninterruptible, true)
|
|
575
587
|
|
|
576
|
-
const ResumeRpc = Rpc.make("resume"
|
|
588
|
+
const ResumeRpc = Rpc.make("resume", {
|
|
589
|
+
payload: {},
|
|
590
|
+
primaryKey: () => ""
|
|
591
|
+
})
|
|
577
592
|
.annotate(ClusterSchema.Persisted, true)
|
|
578
593
|
.annotate(ClusterSchema.Uninterruptible, true)
|
|
579
594
|
|
package/src/SqlRunnerStorage.ts
CHANGED
|
@@ -35,17 +35,30 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
35
35
|
const conn = yield* Effect.orDie(sql.reserve).pipe(
|
|
36
36
|
Scope.extend(scope)
|
|
37
37
|
)
|
|
38
|
+
const pid = (yield* conn.executeValues("SELECT pg_backend_pid()", []))[0][0] as number
|
|
38
39
|
yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT pg_advisory_unlock_all()", [])))
|
|
39
|
-
return conn
|
|
40
|
-
}),
|
|
40
|
+
return [conn, pid] as const
|
|
41
|
+
}, Effect.orDie),
|
|
41
42
|
mysql: () =>
|
|
42
43
|
Effect.fnUntraced(function*(scope: Scope.Scope) {
|
|
43
44
|
const conn = yield* Effect.orDie(sql.reserve).pipe(
|
|
44
45
|
Scope.extend(scope)
|
|
45
46
|
)
|
|
47
|
+
// we need to get the connection id using IS_USED_LOCK to properly
|
|
48
|
+
// support vitess
|
|
49
|
+
let pid: number | undefined = undefined
|
|
50
|
+
while (pid === undefined) {
|
|
51
|
+
const address = `cluster:pid:${(Math.random() * Number.MAX_SAFE_INTEGER) | 0}`
|
|
52
|
+
const taken = (yield* conn.executeValues(
|
|
53
|
+
`SELECT GET_LOCK('${address}', 10), IS_USED_LOCK('${address}')`,
|
|
54
|
+
[]
|
|
55
|
+
))[0] as [1 | null, number]
|
|
56
|
+
if (taken[0] === null) continue
|
|
57
|
+
pid = taken[1]
|
|
58
|
+
}
|
|
46
59
|
yield* Scope.addFinalizerExit(scope, () => Effect.orDie(conn.executeRaw("SELECT RELEASE_ALL_LOCKS()", [])))
|
|
47
|
-
return conn
|
|
48
|
-
}),
|
|
60
|
+
return [conn, pid] as const
|
|
61
|
+
}, Effect.orDie),
|
|
49
62
|
orElse: () => undefined
|
|
50
63
|
})
|
|
51
64
|
const lockConn = acquireLockConn && (yield* ResourceRef.from(yield* Effect.scope, acquireLockConn))
|
|
@@ -215,7 +228,7 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
215
228
|
if (!lockConn) return effect
|
|
216
229
|
const [query, params] = effect.compile()
|
|
217
230
|
return lockConn.await.pipe(
|
|
218
|
-
Effect.flatMap((conn) => conn.executeRaw(query, params)),
|
|
231
|
+
Effect.flatMap(([conn]) => conn.executeRaw(query, params)),
|
|
219
232
|
Effect.onError(() => lockConn.unsafeRebuild())
|
|
220
233
|
)
|
|
221
234
|
}
|
|
@@ -225,7 +238,7 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
225
238
|
if (!lockConn) return effect.values
|
|
226
239
|
const [query, params] = effect.compile()
|
|
227
240
|
return lockConn.await.pipe(
|
|
228
|
-
Effect.flatMap((conn) => conn.executeValues(query, params)),
|
|
241
|
+
Effect.flatMap(([conn]) => conn.executeValues(query, params)),
|
|
229
242
|
Effect.onError(() => lockConn.unsafeRebuild())
|
|
230
243
|
)
|
|
231
244
|
}
|
|
@@ -233,11 +246,11 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
233
246
|
const acquireLock = sql.onDialectOrElse({
|
|
234
247
|
pg: () =>
|
|
235
248
|
Effect.fnUntraced(function*(_address: string, shardIds: ReadonlyArray<string>) {
|
|
236
|
-
const conn = yield* lockConn!.await
|
|
249
|
+
const [conn, pid] = yield* lockConn!.await
|
|
237
250
|
const acquiredShardIds: Array<string> = []
|
|
238
251
|
const toAcquire = new Map(shardIds.map((shardId) => [lockNumbers.get(shardId)!, shardId]))
|
|
239
252
|
const takenLocks = yield* conn.executeValues(
|
|
240
|
-
`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid =
|
|
253
|
+
`SELECT objid FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = ${pid} ORDER BY objid`,
|
|
241
254
|
[]
|
|
242
255
|
)
|
|
243
256
|
for (let i = 0; i < takenLocks.length; i++) {
|
|
@@ -260,15 +273,14 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
260
273
|
|
|
261
274
|
mysql: () =>
|
|
262
275
|
Effect.fnUntraced(function*(_address: string, shardIds: ReadonlyArray<string>) {
|
|
263
|
-
const conn = yield* lockConn!.await
|
|
264
|
-
const takenLocks = (yield* conn.
|
|
265
|
-
string,
|
|
266
|
-
1 | null
|
|
267
|
-
>
|
|
276
|
+
const [conn, pid] = yield* lockConn!.await
|
|
277
|
+
const takenLocks = (yield* conn.executeValues(`SELECT ${allMySqlTakenLocks}`, []))[0] as Array<number | null>
|
|
268
278
|
const acquiredShardIds: Array<string> = []
|
|
269
279
|
const toAcquire: Array<string> = []
|
|
270
|
-
for (
|
|
271
|
-
|
|
280
|
+
for (let i = 0; i < shardIds.length; i++) {
|
|
281
|
+
const shardId = shardIds[i]
|
|
282
|
+
const lockTakenBy = takenLocks[shardIdsIndex.get(shardId)!]
|
|
283
|
+
if (lockTakenBy === pid) {
|
|
272
284
|
acquiredShardIds.push(shardId)
|
|
273
285
|
} else if (shardIds.includes(shardId)) {
|
|
274
286
|
toAcquire.push(shardId)
|
|
@@ -277,13 +289,10 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
277
289
|
if (toAcquire.length === 0) {
|
|
278
290
|
return acquiredShardIds
|
|
279
291
|
}
|
|
280
|
-
const results = (yield* conn.
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
for (const shardId in results) {
|
|
285
|
-
if (results[shardId] === 1) {
|
|
286
|
-
acquiredShardIds.push(shardId)
|
|
292
|
+
const results = (yield* conn.executeValues(`SELECT ${mysqlLocks(toAcquire)}`, []))[0] as Array<number>
|
|
293
|
+
for (let i = 0; i < results.length; i++) {
|
|
294
|
+
if (results[i] === 1) {
|
|
295
|
+
acquiredShardIds.push(toAcquire[i])
|
|
287
296
|
}
|
|
288
297
|
}
|
|
289
298
|
return acquiredShardIds
|
|
@@ -341,15 +350,20 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
341
350
|
}
|
|
342
351
|
}
|
|
343
352
|
|
|
353
|
+
const shardIdsIndex = new Map<string, number>()
|
|
344
354
|
const lockNames = new Map<string, string>()
|
|
345
355
|
const lockNamesReverse = new Map<string, string>()
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
for (let
|
|
349
|
-
const
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
356
|
+
{
|
|
357
|
+
let index = 0
|
|
358
|
+
for (let i = 0; i < config.shardGroups.length; i++) {
|
|
359
|
+
const group = config.shardGroups[i]
|
|
360
|
+
for (let shard = 1; shard <= config.shardsPerGroup; shard++) {
|
|
361
|
+
const shardId = ShardId.make(group, shard).toString()
|
|
362
|
+
const lockName = `${prefix}.${shardId}`
|
|
363
|
+
shardIdsIndex.set(shardId, index++)
|
|
364
|
+
lockNames.set(shardId, lockName)
|
|
365
|
+
lockNamesReverse.set(lockName, shardId)
|
|
366
|
+
}
|
|
353
367
|
}
|
|
354
368
|
}
|
|
355
369
|
|
|
@@ -364,7 +378,7 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
364
378
|
|
|
365
379
|
const allMySqlTakenLocks = Array.from(
|
|
366
380
|
lockNames.entries(),
|
|
367
|
-
([shardId, lockName]) => `IS_USED_LOCK('${lockName}')
|
|
381
|
+
([shardId, lockName]) => `IS_USED_LOCK('${lockName}') AS "${shardId}"`
|
|
368
382
|
).join(", ")
|
|
369
383
|
|
|
370
384
|
const acquiredLocks = (address: string, shardIds: ReadonlyArray<string>) =>
|
|
@@ -453,7 +467,7 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
453
467
|
function*(_address, shardId) {
|
|
454
468
|
const lockNum = lockNumbers.get(shardId)!
|
|
455
469
|
for (let i = 0; i < 5; i++) {
|
|
456
|
-
const conn = yield* lockConn!.await
|
|
470
|
+
const [conn] = yield* lockConn!.await
|
|
457
471
|
yield* conn.executeRaw(`SELECT pg_advisory_unlock(${lockNum})`, [])
|
|
458
472
|
const takenLocks = yield* conn.executeValues(
|
|
459
473
|
`SELECT 1 FROM pg_locks WHERE locktype = 'advisory' AND granted = true AND pid = pg_backend_pid() AND objid = ${lockNum}`,
|
|
@@ -461,7 +475,7 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
461
475
|
)
|
|
462
476
|
if (takenLocks.length === 0) return
|
|
463
477
|
}
|
|
464
|
-
const conn = yield* lockConn!.await
|
|
478
|
+
const [conn] = yield* lockConn!.await
|
|
465
479
|
yield* conn.executeRaw(`SELECT pg_advisory_unlock_all()`, [])
|
|
466
480
|
},
|
|
467
481
|
Effect.onError(() => lockConn!.unsafeRebuild()),
|
|
@@ -473,13 +487,13 @@ export const make = Effect.fnUntraced(function*(options: {
|
|
|
473
487
|
function*(_address, shardId) {
|
|
474
488
|
const lockName = lockNames.get(shardId)!
|
|
475
489
|
while (true) {
|
|
476
|
-
const conn = yield* lockConn!.await
|
|
490
|
+
const [conn, pid] = yield* lockConn!.await
|
|
477
491
|
yield* conn.executeRaw(`SELECT RELEASE_LOCK('${lockName}')`, [])
|
|
478
492
|
const takenLocks = yield* conn.executeValues(
|
|
479
|
-
`SELECT IS_USED_LOCK('${lockName}')
|
|
493
|
+
`SELECT IS_USED_LOCK('${lockName}')`,
|
|
480
494
|
[]
|
|
481
495
|
)
|
|
482
|
-
if (takenLocks.length === 0 || takenLocks[0][0] !==
|
|
496
|
+
if (takenLocks.length === 0 || takenLocks[0][0] !== pid) return
|
|
483
497
|
}
|
|
484
498
|
},
|
|
485
499
|
Effect.onError(() => lockConn!.unsafeRebuild()),
|