@effect/cluster 0.37.2 → 0.38.0

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.
Files changed (141) hide show
  1. package/ClusterCron/package.json +6 -0
  2. package/dist/cjs/ClusterCron.js +86 -0
  3. package/dist/cjs/ClusterCron.js.map +1 -0
  4. package/dist/cjs/ClusterSchema.js +9 -1
  5. package/dist/cjs/ClusterSchema.js.map +1 -1
  6. package/dist/cjs/ClusterWorkflowEngine.js +21 -6
  7. package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
  8. package/dist/cjs/Entity.js +6 -1
  9. package/dist/cjs/Entity.js.map +1 -1
  10. package/dist/cjs/EntityAddress.js +8 -1
  11. package/dist/cjs/EntityAddress.js.map +1 -1
  12. package/dist/cjs/MessageStorage.js +6 -4
  13. package/dist/cjs/MessageStorage.js.map +1 -1
  14. package/dist/cjs/Runner.js +15 -0
  15. package/dist/cjs/Runner.js.map +1 -1
  16. package/dist/cjs/RunnerAddress.js +8 -1
  17. package/dist/cjs/RunnerAddress.js.map +1 -1
  18. package/dist/cjs/Runners.js +5 -0
  19. package/dist/cjs/Runners.js.map +1 -1
  20. package/dist/cjs/ShardId.js +75 -7
  21. package/dist/cjs/ShardId.js.map +1 -1
  22. package/dist/cjs/ShardManager.js +63 -43
  23. package/dist/cjs/ShardManager.js.map +1 -1
  24. package/dist/cjs/ShardStorage.js +45 -36
  25. package/dist/cjs/ShardStorage.js.map +1 -1
  26. package/dist/cjs/Sharding.js +45 -37
  27. package/dist/cjs/Sharding.js.map +1 -1
  28. package/dist/cjs/ShardingConfig.js +9 -2
  29. package/dist/cjs/ShardingConfig.js.map +1 -1
  30. package/dist/cjs/Singleton.js +2 -2
  31. package/dist/cjs/Singleton.js.map +1 -1
  32. package/dist/cjs/SingletonAddress.js +2 -2
  33. package/dist/cjs/SingletonAddress.js.map +1 -1
  34. package/dist/cjs/SqlMessageStorage.js +32 -27
  35. package/dist/cjs/SqlMessageStorage.js.map +1 -1
  36. package/dist/cjs/SqlShardStorage.js +14 -14
  37. package/dist/cjs/SqlShardStorage.js.map +1 -1
  38. package/dist/cjs/index.js +3 -1
  39. package/dist/cjs/internal/entityManager.js +2 -1
  40. package/dist/cjs/internal/entityManager.js.map +1 -1
  41. package/dist/cjs/internal/shardManager.js +138 -37
  42. package/dist/cjs/internal/shardManager.js.map +1 -1
  43. package/dist/dts/ClusterCron.d.ts +37 -0
  44. package/dist/dts/ClusterCron.d.ts.map +1 -0
  45. package/dist/dts/ClusterSchema.d.ts +8 -0
  46. package/dist/dts/ClusterSchema.d.ts.map +1 -1
  47. package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
  48. package/dist/dts/Entity.d.ts +10 -0
  49. package/dist/dts/Entity.d.ts.map +1 -1
  50. package/dist/dts/EntityAddress.d.ts +9 -3
  51. package/dist/dts/EntityAddress.d.ts.map +1 -1
  52. package/dist/dts/MessageStorage.d.ts +3 -3
  53. package/dist/dts/MessageStorage.d.ts.map +1 -1
  54. package/dist/dts/Runner.d.ts +15 -0
  55. package/dist/dts/Runner.d.ts.map +1 -1
  56. package/dist/dts/RunnerAddress.d.ts +5 -0
  57. package/dist/dts/RunnerAddress.d.ts.map +1 -1
  58. package/dist/dts/Runners.d.ts.map +1 -1
  59. package/dist/dts/ShardId.d.ts +60 -6
  60. package/dist/dts/ShardId.d.ts.map +1 -1
  61. package/dist/dts/ShardManager.d.ts +13 -13
  62. package/dist/dts/ShardManager.d.ts.map +1 -1
  63. package/dist/dts/ShardStorage.d.ts +11 -14
  64. package/dist/dts/ShardStorage.d.ts.map +1 -1
  65. package/dist/dts/Sharding.d.ts +4 -2
  66. package/dist/dts/Sharding.d.ts.map +1 -1
  67. package/dist/dts/ShardingConfig.d.ts +32 -6
  68. package/dist/dts/ShardingConfig.d.ts.map +1 -1
  69. package/dist/dts/Singleton.d.ts +3 -1
  70. package/dist/dts/Singleton.d.ts.map +1 -1
  71. package/dist/dts/SingletonAddress.d.ts +4 -3
  72. package/dist/dts/SingletonAddress.d.ts.map +1 -1
  73. package/dist/dts/SqlMessageStorage.d.ts +3 -2
  74. package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
  75. package/dist/dts/SqlShardStorage.d.ts +1 -1
  76. package/dist/dts/index.d.ts +4 -0
  77. package/dist/dts/index.d.ts.map +1 -1
  78. package/dist/esm/ClusterCron.js +77 -0
  79. package/dist/esm/ClusterCron.js.map +1 -0
  80. package/dist/esm/ClusterSchema.js +7 -0
  81. package/dist/esm/ClusterSchema.js.map +1 -1
  82. package/dist/esm/ClusterWorkflowEngine.js +21 -6
  83. package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
  84. package/dist/esm/Entity.js +6 -1
  85. package/dist/esm/Entity.js.map +1 -1
  86. package/dist/esm/EntityAddress.js +8 -1
  87. package/dist/esm/EntityAddress.js.map +1 -1
  88. package/dist/esm/MessageStorage.js +6 -4
  89. package/dist/esm/MessageStorage.js.map +1 -1
  90. package/dist/esm/Runner.js +15 -0
  91. package/dist/esm/Runner.js.map +1 -1
  92. package/dist/esm/RunnerAddress.js +8 -1
  93. package/dist/esm/RunnerAddress.js.map +1 -1
  94. package/dist/esm/Runners.js +5 -0
  95. package/dist/esm/Runners.js.map +1 -1
  96. package/dist/esm/ShardId.js +73 -6
  97. package/dist/esm/ShardId.js.map +1 -1
  98. package/dist/esm/ShardManager.js +64 -45
  99. package/dist/esm/ShardManager.js.map +1 -1
  100. package/dist/esm/ShardStorage.js +44 -36
  101. package/dist/esm/ShardStorage.js.map +1 -1
  102. package/dist/esm/Sharding.js +45 -37
  103. package/dist/esm/Sharding.js.map +1 -1
  104. package/dist/esm/ShardingConfig.js +9 -2
  105. package/dist/esm/ShardingConfig.js.map +1 -1
  106. package/dist/esm/Singleton.js +2 -2
  107. package/dist/esm/Singleton.js.map +1 -1
  108. package/dist/esm/SingletonAddress.js +2 -2
  109. package/dist/esm/SingletonAddress.js.map +1 -1
  110. package/dist/esm/SqlMessageStorage.js +32 -27
  111. package/dist/esm/SqlMessageStorage.js.map +1 -1
  112. package/dist/esm/SqlShardStorage.js +14 -14
  113. package/dist/esm/SqlShardStorage.js.map +1 -1
  114. package/dist/esm/index.js +4 -0
  115. package/dist/esm/index.js.map +1 -1
  116. package/dist/esm/internal/entityManager.js +2 -1
  117. package/dist/esm/internal/entityManager.js.map +1 -1
  118. package/dist/esm/internal/shardManager.js +136 -36
  119. package/dist/esm/internal/shardManager.js.map +1 -1
  120. package/package.json +12 -4
  121. package/src/ClusterCron.ts +129 -0
  122. package/src/ClusterSchema.ts +9 -0
  123. package/src/ClusterWorkflowEngine.ts +37 -6
  124. package/src/Entity.ts +20 -1
  125. package/src/EntityAddress.ts +11 -1
  126. package/src/MessageStorage.ts +12 -7
  127. package/src/Runner.ts +18 -0
  128. package/src/RunnerAddress.ts +9 -1
  129. package/src/Runners.ts +5 -0
  130. package/src/ShardId.ts +81 -11
  131. package/src/ShardManager.ts +74 -45
  132. package/src/ShardStorage.ts +51 -47
  133. package/src/Sharding.ts +45 -39
  134. package/src/ShardingConfig.ts +36 -7
  135. package/src/Singleton.ts +5 -2
  136. package/src/SingletonAddress.ts +2 -2
  137. package/src/SqlMessageStorage.ts +36 -30
  138. package/src/SqlShardStorage.ts +15 -15
  139. package/src/index.ts +5 -0
  140. package/src/internal/entityManager.ts +2 -1
  141. package/src/internal/shardManager.ts +158 -52
@@ -105,7 +105,10 @@ const layerConfig = config => Layer.succeed(Config, {
105
105
  * @category Config
106
106
  */
107
107
  exports.layerConfig = layerConfig;
108
- const layerConfigFromEnv = exports.layerConfigFromEnv = /*#__PURE__*/Layer.effect(Config, configFromEnv);
108
+ const layerConfigFromEnv = config => Layer.effect(Config, config ? Effect.map(configFromEnv, env => ({
109
+ ...env,
110
+ ...config
111
+ })) : configFromEnv);
109
112
  /**
110
113
  * Represents a client which can be used to communicate with the
111
114
  * `ShardManager`.
@@ -113,6 +116,7 @@ const layerConfigFromEnv = exports.layerConfigFromEnv = /*#__PURE__*/Layer.effec
113
116
  * @since 1.0.0
114
117
  * @category Client
115
118
  */
119
+ exports.layerConfigFromEnv = layerConfigFromEnv;
116
120
  class ShardManagerClient extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardManager/ShardManagerClient")() {}
117
121
  /**
118
122
  * @since 1.0.0
@@ -150,10 +154,7 @@ class Rpcs extends /*#__PURE__*/RpcGroup.make(/*#__PURE__*/Rpc.make("Register",
150
154
  address: _RunnerAddress.RunnerAddress
151
155
  }
152
156
  }), /*#__PURE__*/Rpc.make("GetAssignments", {
153
- success: /*#__PURE__*/Schema.ReadonlyMap({
154
- key: _ShardId.ShardId,
155
- value: /*#__PURE__*/Schema.Option(_RunnerAddress.RunnerAddress)
156
- })
157
+ success: /*#__PURE__*/Schema.Array(/*#__PURE__*/Schema.Tuple(_ShardId.ShardId, /*#__PURE__*/Schema.Option(_RunnerAddress.RunnerAddress)))
157
158
  }), /*#__PURE__*/Rpc.make("ShardingEvents", {
158
159
  success: ShardingEventSchema,
159
160
  stream: true
@@ -171,15 +172,22 @@ const ShardingEvent = exports.ShardingEvent = /*#__PURE__*/Data.taggedEnum();
171
172
  * @category Client
172
173
  */
173
174
  const makeClientLocal = exports.makeClientLocal = /*#__PURE__*/Effect.gen(function* () {
174
- const runnerAddress = yield* _ShardingConfig.ShardingConfig;
175
+ const config = yield* _ShardingConfig.ShardingConfig;
175
176
  const clock = yield* Effect.clock;
176
- const shards = new Map();
177
- for (let n = 1; n <= runnerAddress.numberOfShards; n++) {
178
- shards.set(_ShardId.ShardId.make(n), runnerAddress.runnerAddress);
179
- }
177
+ const groups = new Set();
178
+ const shards = MutableHashMap.empty();
180
179
  let machineId = 0;
181
180
  return ShardManagerClient.of({
182
- register: () => Effect.sync(() => MachineId.make(++machineId)),
181
+ register: (_, groupsToAdd) => Effect.sync(() => {
182
+ for (const group of groupsToAdd) {
183
+ if (groups.has(group)) continue;
184
+ groups.add(group);
185
+ for (let n = 1; n <= config.shardsPerGroup; n++) {
186
+ MutableHashMap.set(shards, (0, _ShardId.make)(group, n), config.runnerAddress);
187
+ }
188
+ }
189
+ return MachineId.make(++machineId);
190
+ }),
183
191
  unregister: () => Effect.void,
184
192
  notifyUnhealthyRunner: () => Effect.void,
185
193
  getAssignments: Effect.succeed(shards),
@@ -202,10 +210,11 @@ const makeClientRpc = exports.makeClientRpc = /*#__PURE__*/Effect.gen(function*
202
210
  disableTracing: true
203
211
  });
204
212
  return ShardManagerClient.of({
205
- register: address => client.Register({
213
+ register: (address, groups) => client.Register({
206
214
  runner: _Runner.Runner.make({
207
215
  address,
208
- version: config.serverVersion
216
+ version: config.serverVersion,
217
+ groups
209
218
  })
210
219
  }),
211
220
  unregister: address => client.Unregister({
@@ -246,11 +255,11 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
246
255
  const clock = yield* Effect.clock;
247
256
  const config = yield* Config;
248
257
  const shardingConfig = yield* _ShardingConfig.ShardingConfig;
249
- const state = yield* Effect.orDie(_shardManager.State.fromStorage(shardingConfig.numberOfShards));
258
+ const state = yield* Effect.orDie(_shardManager.State.fromStorage(shardingConfig.shardsPerGroup));
250
259
  const scope = yield* Effect.scope;
251
260
  const events = yield* PubSub.unbounded();
252
- yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.runners));
253
- for (const address of state.shards.values()) {
261
+ yield* Metric.incrementBy(ClusterMetrics.runners, MutableHashMap.size(state.allRunners));
262
+ for (const [, address] of state.assignments) {
254
263
  const metric = Option.isSome(address) ? Metric.tagged(ClusterMetrics.assignedShards, "address", address.toString()) : ClusterMetrics.unassignedShards;
255
264
  yield* Metric.increment(metric);
256
265
  }
@@ -260,10 +269,10 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
260
269
  times: config.persistRetryCount
261
270
  }), Effect.ignore);
262
271
  }
263
- const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.runners, ([address, runner]) => [address, runner.runner])))));
264
- const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.shards))));
272
+ const persistRunners = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveRunners(Iterable.map(state.allRunners, ([address, runner]) => [address, runner.runner])))));
273
+ const persistAssignments = Effect.unsafeMakeSemaphore(1).withPermits(1)(withRetry(Effect.suspend(() => storage.saveAssignments(state.assignments))));
265
274
  const notifyUnhealthyRunner = Effect.fnUntraced(function* (address) {
266
- if (!MutableHashMap.has(state.runners, address)) return;
275
+ if (!MutableHashMap.has(state.allRunners, address)) return;
267
276
  yield* Metric.increment(Metric.tagged(ClusterMetrics.runnerHealthChecked, "runner_address", address.toString()));
268
277
  if (!(yield* runnerHealthApi.isAlive(address))) {
269
278
  yield* Effect.logWarning(`Runner at address '${address.toString()}' is not alive`);
@@ -272,48 +281,41 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
272
281
  });
273
282
  function updateShardsState(shards, address) {
274
283
  return Effect.suspend(() => {
275
- if (Option.isSome(address) && !MutableHashMap.has(state.runners, address.value)) {
284
+ if (Option.isSome(address) && !MutableHashMap.has(state.allRunners, address.value)) {
276
285
  return Effect.fail(new _ClusterError.RunnerNotRegistered({
277
286
  address: address.value
278
287
  }));
279
288
  }
280
- for (const shardId of shards) {
281
- if (!state.shards.has(shardId)) continue;
282
- state.shards.set(shardId, address);
283
- }
289
+ state.addAssignments(shards, address);
284
290
  return Effect.void;
285
291
  });
286
292
  }
287
- const getAssignments = Effect.sync(() => state.shards);
293
+ const getAssignments = Effect.sync(() => state.assignments);
288
294
  let machineId = 0;
289
295
  const register = Effect.fnUntraced(function* (runner) {
290
296
  yield* Effect.logInfo(`Registering runner ${_Runner.Runner.pretty(runner)}`);
291
- const now = clock.unsafeCurrentTimeMillis();
292
- MutableHashMap.set(state.runners, runner.address, (0, _shardManager.RunnerWithMetadata)({
293
- runner,
294
- registeredAt: now
295
- }));
297
+ state.addRunner(runner, clock.unsafeCurrentTimeMillis());
296
298
  yield* Metric.increment(ClusterMetrics.runners);
297
299
  yield* PubSub.publish(events, ShardingEvent.RunnerRegistered({
298
300
  address: runner.address
299
301
  }));
300
- if (state.unassignedShards.length > 0) {
302
+ if (state.allUnassignedShards.length > 0) {
301
303
  yield* rebalance(false);
302
304
  }
303
305
  yield* Effect.forkIn(persistRunners, scope);
304
306
  return MachineId.make(++machineId);
305
307
  });
306
308
  const unregister = Effect.fnUntraced(function* (address) {
307
- if (!MutableHashMap.has(state.runners, address)) return;
309
+ if (!MutableHashMap.has(state.allRunners, address)) return;
308
310
  yield* Effect.logInfo("Unregistering runner at address:", address);
309
311
  const unassignments = Arr.empty();
310
- for (const [shard, runner] of state.shards) {
312
+ for (const [shard, runner] of state.assignments) {
311
313
  if (Option.isSome(runner) && Equal.equals(runner.value, address)) {
312
314
  unassignments.push(shard);
313
- state.shards.set(shard, Option.none());
314
315
  }
315
316
  }
316
- MutableHashMap.remove(state.runners, address);
317
+ state.addAssignments(unassignments, Option.none());
318
+ state.removeRunner(address);
317
319
  yield* Metric.incrementBy(ClusterMetrics.runners, -1);
318
320
  if (unassignments.length > 0) {
319
321
  yield* Metric.incrementBy(Metric.tagged(ClusterMetrics.unassignedShards, "runner_address", address.toString()), unassignments.length);
@@ -359,8 +361,26 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
359
361
  const runRebalance = Effect.fn("ShardManager.rebalance")(function* (immediate) {
360
362
  yield* Effect.annotateCurrentSpan("immmediate", immediate);
361
363
  yield* Effect.sleep(config.rebalanceDebounce);
364
+ if (state.shards.size === 0) {
365
+ yield* Effect.logDebug("No shards to rebalance");
366
+ return;
367
+ }
362
368
  // Determine which shards to assign and unassign
363
- const [assignments, unassignments, changes] = immediate || state.unassignedShards.length > 0 ? (0, _shardManager.decideAssignmentsForUnassignedShards)(state) : (0, _shardManager.decideAssignmentsForUnbalancedShards)(state, config.rebalanceRate);
369
+ const assignments = MutableHashMap.empty();
370
+ const unassignments = MutableHashMap.empty();
371
+ const changes = MutableHashSet.empty();
372
+ for (const group of state.shards.keys()) {
373
+ const [groupAssignments, groupUnassignments, groupChanges] = immediate || state.unassignedShards(group).length > 0 ? (0, _shardManager.decideAssignmentsForUnassignedShards)(state, group) : (0, _shardManager.decideAssignmentsForUnbalancedShards)(state, group, config.rebalanceRate);
374
+ for (const [address, shards] of groupAssignments) {
375
+ (0, _shardManager.addAllNested)(assignments, address, Array.from(shards, id => (0, _ShardId.make)(group, id)));
376
+ }
377
+ for (const [address, shards] of groupUnassignments) {
378
+ (0, _shardManager.addAllNested)(unassignments, address, Array.from(shards, id => (0, _ShardId.make)(group, id)));
379
+ }
380
+ for (const address of groupChanges) {
381
+ MutableHashSet.add(changes, address);
382
+ }
383
+ }
364
384
  yield* Effect.logDebug(`Rebalancing shards (immediate = ${immediate})`);
365
385
  if (MutableHashSet.size(changes) === 0) return;
366
386
  yield* Metric.increment(ClusterMetrics.rebalances);
@@ -388,7 +408,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
388
408
  return Effect.void;
389
409
  },
390
410
  onSuccess: () => {
391
- const shardCount = shards.size;
411
+ const shardCount = MutableHashSet.size(shards);
392
412
  return Metric.incrementBy(Metric.tagged(ClusterMetrics.assignedShards, "runner_address", address.toString()), -shardCount).pipe(Effect.zipRight(Metric.incrementBy(ClusterMetrics.unassignedShards, shardCount)), Effect.zipRight(PubSub.publish(events, ShardingEvent.ShardsUnassigned({
393
413
  address,
394
414
  shards: Array.from(shards)
@@ -400,9 +420,9 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
400
420
  // Remove failed shard unassignments from the assignments
401
421
  MutableHashMap.forEach(assignments, (shards, address) => {
402
422
  for (const shard of failedUnassignments) {
403
- shards.delete(shard);
423
+ MutableHashSet.remove(shards, shard);
404
424
  }
405
- if (shards.size === 0) {
425
+ if (MutableHashSet.size(shards) === 0) {
406
426
  MutableHashMap.remove(assignments, address);
407
427
  }
408
428
  });
@@ -414,7 +434,7 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
414
434
  return Effect.void;
415
435
  },
416
436
  onSuccess: () => {
417
- const shardCount = shards.size;
437
+ const shardCount = MutableHashSet.size(shards);
418
438
  return Metric.incrementBy(Metric.tagged(ClusterMetrics.assignedShards, "runner_address", address.toString()), -shardCount).pipe(Effect.zipRight(Metric.incrementBy(ClusterMetrics.unassignedShards, -shardCount)), Effect.zipRight(PubSub.publish(events, ShardingEvent.ShardsAssigned({
419
439
  address,
420
440
  shards: Array.from(shards)
@@ -437,14 +457,14 @@ const make = exports.make = /*#__PURE__*/Effect.gen(function* () {
437
457
  }
438
458
  yield* persistAssignments;
439
459
  });
440
- const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.runners), notifyUnhealthyRunner, {
460
+ const checkRunnerHealth = Effect.suspend(() => Effect.forEach(MutableHashMap.keys(state.allRunners), notifyUnhealthyRunner, {
441
461
  concurrency: 10,
442
462
  discard: true
443
463
  }));
444
464
  yield* Effect.addFinalizer(() => persistAssignments.pipe(Effect.catchAllCause(cause => Effect.logWarning("Failed to persist assignments on shutdown", cause)), Effect.zipRight(persistRunners.pipe(Effect.catchAllCause(cause => Effect.logWarning("Failed to persist runners on shutdown", cause))))));
445
465
  yield* Effect.forkIn(persistRunners, scope);
446
466
  // Rebalance immediately if there are unassigned shards
447
- yield* Effect.forkIn(rebalance(state.unassignedShards.length > 0), scope);
467
+ yield* Effect.forkIn(rebalance(state.allUnassignedShards.length > 0), scope);
448
468
  // Start a regular cluster rebalance at the configured interval
449
469
  yield* rebalance(false).pipe(Effect.andThen(Effect.sleep(config.rebalanceInterval)), Effect.forever, Effect.forkIn(scope));
450
470
  yield* checkRunnerHealth.pipe(Effect.andThen(Effect.sleep(config.runnerHealthCheckInterval)), Effect.forever, Effect.forkIn(scope));
@@ -487,7 +507,7 @@ const layerServerHandlers = exports.layerServerHandlers = /*#__PURE__*/Rpcs.toLa
487
507
  NotifyUnhealthyRunner: ({
488
508
  address
489
509
  }) => shardManager.notifyUnhealthyRunner(address),
490
- GetAssignments: () => shardManager.getAssignments,
510
+ GetAssignments: () => Effect.map(shardManager.getAssignments, assignments => Array.from(assignments)),
491
511
  ShardingEvents: Effect.fnUntraced(function* () {
492
512
  const queue = yield* shardManager.shardingEvents;
493
513
  const mailbox = yield* Mailbox.make();
@@ -1 +1 @@
1
- {"version":3,"file":"ShardManager.js","names":["Rpc","_interopRequireWildcard","require","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","_Function","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","_ClusterError","ClusterMetrics","_shardManager","MachineId","_Runner","_RunnerAddress","_RunnerHealth","_Runners","_ShardId","_ShardingConfig","_ShardStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardManager","Tag","exports","Config","defaults","rebalanceDebounce","millis","rebalanceInterval","seconds","rebalanceRetryInterval","rebalanceRate","persistRetryCount","persistRetryInterval","runnerHealthCheckInterval","minutes","runnerPingTimeout","configConfig","all","duration","pipe","withDefault","withDescription","number","integer","configFromEnv","withConfigProvider","fromEnv","constantCase","layerConfig","config","succeed","layerConfigFromEnv","effect","ShardManagerClient","ShardingEventSchema","Union","TaggedStruct","address","RunnerAddress","shards","Array","ShardId","Rpcs","make","payload","runner","Runner","success","ReadonlyMap","key","value","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","runnerAddress","ShardingConfig","clock","Map","numberOfShards","machineId","of","register","sync","unregister","void","notifyUnhealthyRunner","getAssignments","shardingEvents","mailbox","offer","StreamStarted","getTime","currentTimeMillis","makeClientRpc","client","spanPrefix","disableTracing","Register","version","serverVersion","Unregister","NotifyUnhealthyRunner","GetAssignments","ShardingEvents","asMailbox","GetTime","layerClientLocal","layerClientRpc","scoped","provide","Protocol","clientProtocol","RpcClientProtocol","shardManagerAddress","storage","ShardStorage","runnersApi","Runners","runnerHealthApi","RunnerHealth","shardingConfig","state","orDie","State","fromStorage","scope","events","unbounded","incrementBy","runners","size","values","metric","isSome","tagged","assignedShards","toString","unassignedShards","increment","withRetry","retry","schedule","spaced","times","ignore","persistRunners","unsafeMakeSemaphore","withPermits","suspend","saveRunners","map","persistAssignments","saveAssignments","fnUntraced","runnerHealthChecked","isAlive","logWarning","updateShardsState","fail","RunnerNotRegistered","shardId","logInfo","pretty","now","unsafeCurrentTimeMillis","RunnerWithMetadata","registeredAt","publish","RunnerRegistered","length","rebalance","forkIn","unassignments","empty","shard","equals","push","none","remove","RunnerUnregistered","rebalancing","nextRebalanceImmediate","rebalanceDeferred","rebalanceFibers","immmediate","withFiberRuntime","fiber","rebalanceLoop","unsafeMake","id","await","immediate","deferred","undefined","runRebalance","intoDeferred","identity","onExit","fn","annotateCurrentSpan","sleep","assignments","changes","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","logDebug","rebalances","failedRunners","run","ping","timeout","catchAll","add","awaitEmpty","failedUnassignments","Set","matchEffect","onFailure","onSuccess","shardCount","zipRight","ShardsUnassigned","from","forEach","delete","some","ShardsAssigned","wereFailures","discard","checkRunnerHealth","keys","concurrency","addFinalizer","catchAllCause","cause","andThen","forever","queue","subscribe","take","layer","layerServerHandlers","toLayer","shardManager","takeBetween","MAX_SAFE_INTEGER","flatMap","offerAll","forkScoped","layerServer"],"sources":["../../src/ShardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShardManager.js","names":["Rpc","_interopRequireWildcard","require","RpcClient","RpcGroup","RpcServer","Arr","Clock","Config_","ConfigProvider","Context","Data","Deferred","Duration","Effect","Equal","FiberSet","_Function","Iterable","Layer","Mailbox","Metric","MutableHashMap","MutableHashSet","Option","PubSub","Queue","Schedule","Schema","_ClusterError","ClusterMetrics","_shardManager","MachineId","_Runner","_RunnerAddress","_RunnerHealth","_Runners","_ShardId","_ShardingConfig","_ShardStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardManager","Tag","exports","Config","defaults","rebalanceDebounce","millis","rebalanceInterval","seconds","rebalanceRetryInterval","rebalanceRate","persistRetryCount","persistRetryInterval","runnerHealthCheckInterval","minutes","runnerPingTimeout","configConfig","all","duration","pipe","withDefault","withDescription","number","integer","configFromEnv","withConfigProvider","fromEnv","constantCase","layerConfig","config","succeed","layerConfigFromEnv","effect","map","env","ShardManagerClient","ShardingEventSchema","Union","TaggedStruct","address","RunnerAddress","shards","Array","ShardId","Rpcs","make","payload","runner","Runner","success","Tuple","stream","Number","ShardingEvent","taggedEnum","makeClientLocal","gen","ShardingConfig","clock","groups","Set","empty","machineId","of","register","_","groupsToAdd","sync","group","add","shardsPerGroup","makeShardId","runnerAddress","unregister","void","notifyUnhealthyRunner","getAssignments","shardingEvents","mailbox","offer","StreamStarted","getTime","currentTimeMillis","makeClientRpc","client","spanPrefix","disableTracing","Register","version","serverVersion","Unregister","NotifyUnhealthyRunner","GetAssignments","ShardingEvents","asMailbox","GetTime","layerClientLocal","layerClientRpc","scoped","provide","Protocol","clientProtocol","RpcClientProtocol","shardManagerAddress","storage","ShardStorage","runnersApi","Runners","runnerHealthApi","RunnerHealth","shardingConfig","state","orDie","State","fromStorage","scope","events","unbounded","incrementBy","runners","size","allRunners","assignments","metric","isSome","tagged","assignedShards","toString","unassignedShards","increment","withRetry","retry","schedule","spaced","times","ignore","persistRunners","unsafeMakeSemaphore","withPermits","suspend","saveRunners","persistAssignments","saveAssignments","fnUntraced","runnerHealthChecked","isAlive","logWarning","updateShardsState","value","fail","RunnerNotRegistered","addAssignments","logInfo","pretty","addRunner","unsafeCurrentTimeMillis","publish","RunnerRegistered","allUnassignedShards","length","rebalance","forkIn","unassignments","shard","equals","push","none","removeRunner","RunnerUnregistered","rebalancing","nextRebalanceImmediate","rebalanceDeferred","rebalanceFibers","immmediate","withFiberRuntime","fiber","rebalanceLoop","unsafeMake","id","await","immediate","deferred","undefined","runRebalance","intoDeferred","identity","onExit","fn","annotateCurrentSpan","sleep","logDebug","changes","keys","groupAssignments","groupUnassignments","groupChanges","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","addAllNested","from","rebalances","failedRunners","run","ping","timeout","catchAll","remove","awaitEmpty","failedUnassignments","matchEffect","onFailure","onSuccess","shardCount","zipRight","ShardsUnassigned","forEach","some","ShardsAssigned","wereFailures","discard","checkRunnerHealth","concurrency","addFinalizer","catchAllCause","cause","andThen","forever","queue","subscribe","take","layer","layerServerHandlers","toLayer","shardManager","takeBetween","MAX_SAFE_INTEGER","flatMap","offerAll","forkScoped","layerServer"],"sources":["../../src/ShardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.makeMemory = exports.makeEncoded = exports.layerNoop = exports.layerMemory = exports.ShardStorage = void 0;
7
+ var Arr = _interopRequireWildcard(require("effect/Array"));
7
8
  var Context = _interopRequireWildcard(require("effect/Context"));
8
9
  var Effect = _interopRequireWildcard(require("effect/Effect"));
9
10
  var Layer = _interopRequireWildcard(require("effect/Layer"));
@@ -30,47 +31,55 @@ class ShardStorage extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardStorag
30
31
  * @category layers
31
32
  */
32
33
  exports.ShardStorage = ShardStorage;
33
- const makeEncoded = exports.makeEncoded = /*#__PURE__*/Effect.fnUntraced(function* (encoded) {
34
- const activeShards = new Set();
35
- return ShardStorage.of({
36
- getAssignments: Effect.map(encoded.getAssignments, assignments => {
37
- const map = new Map();
38
- for (const [shardId, runnerAddress] of assignments) {
39
- map.set(_ShardId.ShardId.make(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress)));
40
- }
41
- return map;
42
- }),
43
- saveAssignments: assignments => encoded.saveAssignments(Array.from(assignments, ([shardId, runnerAddress]) => [shardId, Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)])),
44
- getRunners: Effect.gen(function* () {
45
- const runners = yield* encoded.getRunners;
46
- const results = new Array(runners.length);
47
- for (let i = 0; i < runners.length; i++) {
48
- const [address, runner] = runners[i];
49
- results[i] = [decodeRunnerAddress(address), _Runner.Runner.decodeSync(runner)];
50
- }
51
- return results;
52
- }),
53
- saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), _Runner.Runner.encodeSync(runner)]))),
54
- acquire: (address, shardIds) => encoded.acquire(encodeRunnerAddress(address), Array.from(shardIds)),
55
- refresh: (address, shardIds) => encoded.refresh(encodeRunnerAddress(address), Array.from(shardIds)),
56
- release: Effect.fnUntraced(function* (address, shardId) {
57
- activeShards.delete(shardId);
58
- yield* encoded.release(encodeRunnerAddress(address), shardId).pipe(Effect.onError(() => Effect.sync(() => activeShards.add(shardId))));
59
- }),
60
- releaseAll: Effect.fnUntraced(function* (address) {
61
- activeShards.clear();
62
- yield* encoded.releaseAll(encodeRunnerAddress(address));
63
- })
64
- });
34
+ const makeEncoded = encoded => ShardStorage.of({
35
+ getAssignments: Effect.map(encoded.getAssignments, assignments => {
36
+ const arr = Arr.empty();
37
+ for (const [shardId, runnerAddress] of assignments) {
38
+ arr.push([_ShardId.ShardId.fromString(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress))]);
39
+ }
40
+ return arr;
41
+ }),
42
+ saveAssignments: assignments => {
43
+ const arr = Arr.empty();
44
+ for (const [shardId, runnerAddress] of assignments) {
45
+ arr.push([shardId.toString(), Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)]);
46
+ }
47
+ return encoded.saveAssignments(arr);
48
+ },
49
+ getRunners: Effect.gen(function* () {
50
+ const runners = yield* encoded.getRunners;
51
+ const results = new Array(runners.length);
52
+ for (let i = 0; i < runners.length; i++) {
53
+ const [address, runner] = runners[i];
54
+ results[i] = [decodeRunnerAddress(address), _Runner.Runner.decodeSync(runner)];
55
+ }
56
+ return results;
57
+ }),
58
+ saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), _Runner.Runner.encodeSync(runner)]))),
59
+ acquire: (address, shardIds) => {
60
+ const arr = Array.from(shardIds, id => id.toString());
61
+ return encoded.acquire(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
62
+ },
63
+ refresh: (address, shardIds) => {
64
+ const arr = Array.from(shardIds, id => id.toString());
65
+ return encoded.refresh(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
66
+ },
67
+ release(address, shardId) {
68
+ return encoded.release(encodeRunnerAddress(address), shardId.toString());
69
+ },
70
+ releaseAll(address) {
71
+ return encoded.releaseAll(encodeRunnerAddress(address));
72
+ }
65
73
  });
66
74
  /**
67
75
  * @since 1.0.0
68
76
  * @category layers
69
77
  */
78
+ exports.makeEncoded = makeEncoded;
70
79
  const layerNoop = exports.layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () => {
71
80
  let acquired = [];
72
81
  return ShardStorage.of({
73
- getAssignments: Effect.succeed(new Map()),
82
+ getAssignments: Effect.sync(() => []),
74
83
  saveAssignments: () => Effect.void,
75
84
  getRunners: Effect.sync(() => []),
76
85
  saveRunners: () => Effect.void,
@@ -88,12 +97,12 @@ const layerNoop = exports.layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () =
88
97
  * @category constructors
89
98
  */
90
99
  const makeMemory = exports.makeMemory = /*#__PURE__*/Effect.gen(function* () {
91
- const assignments = new Map();
100
+ const assignments = MutableHashMap.empty();
92
101
  const runners = MutableHashMap.empty();
93
102
  function saveAssignments(value) {
94
103
  return Effect.sync(() => {
95
104
  for (const [shardId, runnerAddress] of value) {
96
- assignments.set(shardId, runnerAddress);
105
+ MutableHashMap.set(assignments, shardId, runnerAddress);
97
106
  }
98
107
  });
99
108
  }
@@ -106,7 +115,7 @@ const makeMemory = exports.makeMemory = /*#__PURE__*/Effect.gen(function* () {
106
115
  }
107
116
  let acquired = [];
108
117
  return ShardStorage.of({
109
- getAssignments: Effect.sync(() => new Map(assignments)),
118
+ getAssignments: Effect.sync(() => Array.from(assignments)),
110
119
  saveAssignments,
111
120
  getRunners: Effect.sync(() => Array.from(runners)),
112
121
  saveRunners,
@@ -1 +1 @@
1
- {"version":3,"file":"ShardStorage.js","names":["Context","_interopRequireWildcard","require","Effect","Layer","MutableHashMap","Option","_Runner","_RunnerAddress","_ShardId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardStorage","Tag","exports","makeEncoded","fnUntraced","encoded","activeShards","Set","of","getAssignments","map","assignments","Map","shardId","runnerAddress","ShardId","make","none","some","decodeRunnerAddress","saveAssignments","Array","from","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","length","address","runner","Runner","decodeSync","saveRunners","suspend","encodeSync","acquire","shardIds","refresh","release","delete","pipe","onError","sync","add","releaseAll","clear","layerNoop","acquired","succeed","void","_address","shards","makeMemory","empty","layerMemory","effect","host","port","split","RunnerAddress","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"ShardStorage.js","names":["Arr","_interopRequireWildcard","require","Context","Effect","Layer","MutableHashMap","Option","_Runner","_RunnerAddress","_ShardId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardStorage","Tag","exports","makeEncoded","encoded","of","getAssignments","map","assignments","arr","empty","shardId","runnerAddress","push","ShardId","fromString","none","some","decodeRunnerAddress","saveAssignments","toString","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","Array","length","address","runner","Runner","decodeSync","saveRunners","suspend","from","encodeSync","acquire","shardIds","id","pipe","shards","refresh","release","releaseAll","layerNoop","sync","acquired","void","_address","succeed","makeMemory","layerMemory","effect","host","port","split","RunnerAddress","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}