@effect/cluster 0.28.4 → 0.29.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.
- package/ClusterError/package.json +6 -0
- package/ClusterMetrics/package.json +6 -0
- package/ClusterSchema/package.json +6 -0
- package/DeliverAt/package.json +6 -0
- package/Entity/package.json +6 -0
- package/EntityAddress/package.json +6 -0
- package/EntityId/package.json +6 -0
- package/EntityType/package.json +6 -0
- package/Envelope/package.json +6 -0
- package/HttpCommon/package.json +6 -0
- package/HttpRunner/package.json +6 -0
- package/HttpShardManager/package.json +6 -0
- package/MachineId/package.json +6 -0
- package/MessageStorage/package.json +6 -0
- package/README.md +2 -2
- package/Reply/package.json +6 -0
- package/Runner/package.json +6 -0
- package/RunnerAddress/package.json +6 -0
- package/RunnerHealth/package.json +6 -0
- package/RunnerServer/package.json +6 -0
- package/Runners/package.json +6 -0
- package/ShardStorage/package.json +6 -0
- package/Singleton/package.json +6 -0
- package/SingletonAddress/package.json +6 -0
- package/Snowflake/package.json +6 -0
- package/SocketRunner/package.json +6 -0
- package/SocketShardManager/package.json +6 -0
- package/SqlMessageStorage/package.json +6 -0
- package/SqlShardStorage/package.json +6 -0
- package/SynchronizedClock/package.json +6 -0
- package/dist/cjs/ClusterError.js +180 -0
- package/dist/cjs/ClusterError.js.map +1 -0
- package/dist/cjs/ClusterMetrics.js +63 -0
- package/dist/cjs/ClusterMetrics.js.map +1 -0
- package/dist/cjs/{Pods.js → ClusterSchema.js} +10 -22
- package/dist/cjs/ClusterSchema.js.map +1 -0
- package/dist/cjs/DeliverAt.js +30 -0
- package/dist/cjs/DeliverAt.js.map +1 -0
- package/dist/cjs/Entity.js +187 -0
- package/dist/cjs/Entity.js.map +1 -0
- package/dist/cjs/EntityAddress.js +54 -0
- package/dist/cjs/EntityAddress.js.map +1 -0
- package/dist/cjs/{AtLeastOnce.js → EntityId.js} +6 -7
- package/dist/cjs/EntityId.js.map +1 -0
- package/dist/cjs/{ShardManagerClient.js → EntityType.js} +5 -16
- package/dist/cjs/EntityType.js.map +1 -0
- package/dist/cjs/Envelope.js +168 -0
- package/dist/cjs/Envelope.js.map +1 -0
- package/dist/cjs/HttpCommon.js +49 -0
- package/dist/cjs/HttpCommon.js.map +1 -0
- package/dist/cjs/HttpRunner.js +108 -0
- package/dist/cjs/HttpRunner.js.map +1 -0
- package/dist/cjs/HttpShardManager.js +140 -0
- package/dist/cjs/HttpShardManager.js.map +1 -0
- package/dist/cjs/{AtLeastOnceStorage.js → MachineId.js} +11 -9
- package/dist/cjs/MachineId.js.map +1 -0
- package/dist/cjs/Message.js +99 -18
- package/dist/cjs/Message.js.map +1 -1
- package/dist/cjs/MessageStorage.js +356 -0
- package/dist/cjs/MessageStorage.js.map +1 -0
- package/dist/cjs/Reply.js +200 -0
- package/dist/cjs/Reply.js.map +1 -0
- package/dist/cjs/Runner.js +79 -0
- package/dist/cjs/Runner.js.map +1 -0
- package/dist/cjs/RunnerAddress.js +63 -0
- package/dist/cjs/RunnerAddress.js.map +1 -0
- package/dist/cjs/RunnerHealth.js +68 -0
- package/dist/cjs/RunnerHealth.js.map +1 -0
- package/dist/cjs/RunnerServer.js +125 -0
- package/dist/cjs/RunnerServer.js.map +1 -0
- package/dist/cjs/Runners.js +344 -0
- package/dist/cjs/Runners.js.map +1 -0
- package/dist/cjs/ShardId.js +7 -46
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/ShardManager.js +493 -8
- package/dist/cjs/ShardManager.js.map +1 -1
- package/dist/cjs/ShardStorage.js +139 -0
- package/dist/cjs/ShardStorage.js.map +1 -0
- package/dist/cjs/Sharding.js +732 -88
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +85 -18
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/ShardingRegistrationEvent.js +26 -32
- package/dist/cjs/ShardingRegistrationEvent.js.map +1 -1
- package/dist/cjs/{ManagerConfig.js → Singleton.js} +11 -20
- package/dist/cjs/Singleton.js.map +1 -0
- package/dist/cjs/SingletonAddress.js +50 -0
- package/dist/cjs/SingletonAddress.js.map +1 -0
- package/dist/cjs/Snowflake.js +133 -0
- package/dist/cjs/Snowflake.js.map +1 -0
- package/dist/cjs/SocketRunner.js +40 -0
- package/dist/cjs/SocketRunner.js.map +1 -0
- package/dist/cjs/SocketShardManager.js +33 -0
- package/dist/cjs/SocketShardManager.js.map +1 -0
- package/dist/cjs/SqlMessageStorage.js +668 -0
- package/dist/cjs/SqlMessageStorage.js.map +1 -0
- package/dist/cjs/SqlShardStorage.js +228 -0
- package/dist/cjs/SqlShardStorage.js.map +1 -0
- package/dist/cjs/SynchronizedClock.js +66 -0
- package/dist/cjs/SynchronizedClock.js.map +1 -0
- package/dist/cjs/index.js +57 -45
- package/dist/cjs/internal/entityManager.js +311 -143
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/cjs/internal/entityReaper.js +47 -0
- package/dist/cjs/internal/entityReaper.js.map +1 -0
- package/dist/cjs/internal/hash.js +20 -0
- package/dist/cjs/internal/hash.js.map +1 -0
- package/dist/cjs/internal/interruptors.js +9 -0
- package/dist/cjs/internal/interruptors.js.map +1 -0
- package/dist/cjs/internal/resourceMap.js +88 -0
- package/dist/cjs/internal/resourceMap.js.map +1 -0
- package/dist/cjs/internal/resourceRef.js +92 -0
- package/dist/cjs/internal/resourceRef.js.map +1 -0
- package/dist/cjs/internal/shardManager.js +219 -235
- package/dist/cjs/internal/shardManager.js.map +1 -1
- package/dist/dts/ClusterError.d.ts +169 -0
- package/dist/dts/ClusterError.d.ts.map +1 -0
- package/dist/dts/ClusterMetrics.d.ts +50 -0
- package/dist/dts/ClusterMetrics.d.ts.map +1 -0
- package/dist/dts/ClusterSchema.d.ts +13 -0
- package/dist/dts/ClusterSchema.d.ts.map +1 -0
- package/dist/dts/DeliverAt.d.ts +27 -0
- package/dist/dts/DeliverAt.d.ts.map +1 -0
- package/dist/dts/Entity.d.ts +180 -0
- package/dist/dts/Entity.d.ts.map +1 -0
- package/dist/dts/EntityAddress.d.ts +55 -0
- package/dist/dts/EntityAddress.d.ts.map +1 -0
- package/dist/dts/EntityId.d.ts +15 -0
- package/dist/dts/EntityId.d.ts.map +1 -0
- package/dist/dts/EntityType.d.ts +15 -0
- package/dist/dts/EntityType.d.ts.map +1 -0
- package/dist/dts/Envelope.d.ts +252 -0
- package/dist/dts/Envelope.d.ts.map +1 -0
- package/dist/dts/HttpCommon.d.ts +25 -0
- package/dist/dts/HttpCommon.d.ts.map +1 -0
- package/dist/dts/HttpRunner.d.ts +76 -0
- package/dist/dts/HttpRunner.d.ts.map +1 -0
- package/dist/dts/HttpShardManager.d.ts +119 -0
- package/dist/dts/HttpShardManager.d.ts.map +1 -0
- package/dist/dts/MachineId.d.ts +20 -0
- package/dist/dts/MachineId.d.ts.map +1 -0
- package/dist/dts/Message.d.ts +91 -74
- package/dist/dts/Message.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts +336 -0
- package/dist/dts/MessageStorage.d.ts.map +1 -0
- package/dist/dts/Reply.d.ts +171 -0
- package/dist/dts/Reply.d.ts.map +1 -0
- package/dist/dts/Runner.d.ts +81 -0
- package/dist/dts/Runner.d.ts.map +1 -0
- package/dist/dts/RunnerAddress.d.ts +56 -0
- package/dist/dts/RunnerAddress.d.ts.map +1 -0
- package/dist/dts/RunnerHealth.d.ts +54 -0
- package/dist/dts/RunnerHealth.d.ts.map +1 -0
- package/dist/dts/RunnerServer.d.ts +44 -0
- package/dist/dts/RunnerServer.d.ts.map +1 -0
- package/dist/dts/Runners.d.ts +161 -0
- package/dist/dts/Runners.d.ts.map +1 -0
- package/dist/dts/ShardId.d.ts +5 -55
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/ShardManager.d.ts +435 -23
- package/dist/dts/ShardManager.d.ts.map +1 -1
- package/dist/dts/ShardStorage.d.ts +200 -0
- package/dist/dts/ShardStorage.d.ts.map +1 -0
- package/dist/dts/Sharding.d.ts +109 -131
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +147 -44
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/ShardingRegistrationEvent.d.ts +38 -23
- package/dist/dts/ShardingRegistrationEvent.d.ts.map +1 -1
- package/dist/dts/Singleton.d.ts +13 -0
- package/dist/dts/Singleton.d.ts.map +1 -0
- package/dist/dts/SingletonAddress.d.ts +49 -0
- package/dist/dts/SingletonAddress.d.ts.map +1 -0
- package/dist/dts/Snowflake.d.ts +121 -0
- package/dist/dts/Snowflake.d.ts.map +1 -0
- package/dist/dts/SocketRunner.d.ts +22 -0
- package/dist/dts/SocketRunner.d.ts.map +1 -0
- package/dist/dts/SocketShardManager.d.ts +17 -0
- package/dist/dts/SocketShardManager.d.ts.map +1 -0
- package/dist/dts/SqlMessageStorage.d.ts +43 -0
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -0
- package/dist/dts/SqlShardStorage.d.ts +38 -0
- package/dist/dts/SqlShardStorage.d.ts.map +1 -0
- package/dist/dts/SynchronizedClock.d.ts +19 -0
- package/dist/dts/SynchronizedClock.d.ts.map +1 -0
- package/dist/dts/index.d.ts +48 -24
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/dts/internal/entityReaper.d.ts +2 -0
- package/dist/dts/internal/entityReaper.d.ts.map +1 -0
- package/dist/dts/internal/hash.d.ts +2 -0
- package/dist/dts/internal/hash.d.ts.map +1 -0
- package/dist/dts/internal/interruptors.d.ts +2 -0
- package/dist/dts/internal/interruptors.d.ts.map +1 -0
- package/dist/dts/internal/resourceMap.d.ts +22 -0
- package/dist/dts/internal/resourceMap.d.ts.map +1 -0
- package/dist/dts/internal/resourceRef.d.ts +25 -0
- package/dist/dts/internal/resourceRef.d.ts.map +1 -0
- package/dist/dts/internal/shardManager.d.ts +1 -11
- package/dist/dts/internal/shardManager.d.ts.map +1 -1
- package/dist/esm/ClusterError.js +164 -0
- package/dist/esm/ClusterError.js.map +1 -0
- package/dist/esm/ClusterMetrics.js +54 -0
- package/dist/esm/ClusterMetrics.js.map +1 -0
- package/dist/esm/ClusterSchema.js +13 -0
- package/dist/esm/ClusterSchema.js.map +1 -0
- package/dist/esm/DeliverAt.js +22 -0
- package/dist/esm/DeliverAt.js.map +1 -0
- package/dist/esm/Entity.js +173 -0
- package/dist/esm/Entity.js.map +1 -0
- package/dist/esm/EntityAddress.js +44 -0
- package/dist/esm/EntityAddress.js.map +1 -0
- package/dist/esm/EntityId.js +10 -0
- package/dist/esm/EntityId.js.map +1 -0
- package/dist/esm/EntityType.js +10 -0
- package/dist/esm/EntityType.js.map +1 -0
- package/dist/esm/Envelope.js +154 -0
- package/dist/esm/Envelope.js.map +1 -0
- package/dist/esm/HttpCommon.js +38 -0
- package/dist/esm/HttpCommon.js.map +1 -0
- package/dist/esm/HttpRunner.js +98 -0
- package/dist/esm/HttpRunner.js.map +1 -0
- package/dist/esm/HttpShardManager.js +128 -0
- package/dist/esm/HttpShardManager.js.map +1 -0
- package/dist/esm/MachineId.js +17 -0
- package/dist/esm/MachineId.js.map +1 -0
- package/dist/esm/Message.js +88 -17
- package/dist/esm/Message.js.map +1 -1
- package/dist/esm/MessageStorage.js +345 -0
- package/dist/esm/MessageStorage.js.map +1 -0
- package/dist/esm/Reply.js +184 -0
- package/dist/esm/Reply.js.map +1 -0
- package/dist/esm/Runner.js +68 -0
- package/dist/esm/Runner.js.map +1 -0
- package/dist/esm/RunnerAddress.js +52 -0
- package/dist/esm/RunnerAddress.js.map +1 -0
- package/dist/esm/RunnerHealth.js +58 -0
- package/dist/esm/RunnerHealth.js.map +1 -0
- package/dist/esm/RunnerServer.js +116 -0
- package/dist/esm/RunnerServer.js.map +1 -0
- package/dist/esm/Runners.js +332 -0
- package/dist/esm/Runners.js.map +1 -0
- package/dist/esm/ShardId.js +5 -42
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/ShardManager.js +486 -7
- package/dist/esm/ShardManager.js.map +1 -1
- package/dist/esm/ShardStorage.js +129 -0
- package/dist/esm/ShardStorage.js.map +1 -0
- package/dist/esm/Sharding.js +730 -87
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +80 -17
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/ShardingRegistrationEvent.js +19 -29
- package/dist/esm/ShardingRegistrationEvent.js.map +1 -1
- package/dist/esm/Singleton.js +15 -0
- package/dist/esm/Singleton.js.map +1 -0
- package/dist/esm/SingletonAddress.js +40 -0
- package/dist/esm/SingletonAddress.js.map +1 -0
- package/dist/esm/Snowflake.js +117 -0
- package/dist/esm/Snowflake.js.map +1 -0
- package/dist/esm/SocketRunner.js +31 -0
- package/dist/esm/SocketRunner.js.map +1 -0
- package/dist/esm/SocketShardManager.js +24 -0
- package/dist/esm/SocketShardManager.js.map +1 -0
- package/dist/esm/SqlMessageStorage.js +658 -0
- package/dist/esm/SqlMessageStorage.js.map +1 -0
- package/dist/esm/SqlShardStorage.js +218 -0
- package/dist/esm/SqlShardStorage.js.map +1 -0
- package/dist/esm/SynchronizedClock.js +57 -0
- package/dist/esm/SynchronizedClock.js.map +1 -0
- package/dist/esm/index.js +48 -24
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/entityManager.js +311 -142
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/dist/esm/internal/entityReaper.js +38 -0
- package/dist/esm/internal/entityReaper.js.map +1 -0
- package/dist/esm/internal/hash.js +12 -0
- package/dist/esm/internal/hash.js.map +1 -0
- package/dist/esm/internal/interruptors.js +3 -0
- package/dist/esm/internal/interruptors.js.map +1 -0
- package/dist/esm/internal/resourceMap.js +79 -0
- package/dist/esm/internal/resourceMap.js.map +1 -0
- package/dist/esm/internal/resourceRef.js +83 -0
- package/dist/esm/internal/resourceRef.js.map +1 -0
- package/dist/esm/internal/shardManager.js +217 -233
- package/dist/esm/internal/shardManager.js.map +1 -1
- package/package.json +212 -154
- package/src/ClusterError.ts +193 -0
- package/src/ClusterMetrics.ts +62 -0
- package/src/ClusterSchema.ts +13 -0
- package/src/DeliverAt.ts +36 -0
- package/src/Entity.ts +438 -0
- package/src/EntityAddress.ts +55 -0
- package/src/EntityId.ts +16 -0
- package/src/EntityType.ts +16 -0
- package/src/Envelope.ts +352 -0
- package/src/HttpCommon.ts +73 -0
- package/src/HttpRunner.ts +196 -0
- package/src/HttpShardManager.ts +273 -0
- package/src/MachineId.ts +27 -0
- package/src/Message.ts +143 -92
- package/src/MessageStorage.ts +697 -0
- package/src/Reply.ts +295 -0
- package/src/Runner.ts +84 -0
- package/src/RunnerAddress.ts +61 -0
- package/src/RunnerHealth.ts +87 -0
- package/src/RunnerServer.ts +156 -0
- package/src/Runners.ts +533 -0
- package/src/ShardId.ts +10 -62
- package/src/ShardManager.ts +780 -29
- package/src/ShardStorage.ts +289 -0
- package/src/Sharding.ts +1060 -183
- package/src/ShardingConfig.ts +186 -45
- package/src/ShardingRegistrationEvent.ts +38 -39
- package/src/Singleton.ts +20 -0
- package/src/SingletonAddress.ts +47 -0
- package/src/Snowflake.ts +194 -0
- package/src/SocketRunner.ts +59 -0
- package/src/SocketShardManager.ts +48 -0
- package/src/SqlMessageStorage.ts +833 -0
- package/src/SqlShardStorage.ts +292 -0
- package/src/SynchronizedClock.ts +82 -0
- package/src/index.ts +54 -24
- package/src/internal/entityManager.ts +464 -361
- package/src/internal/entityReaper.ts +53 -0
- package/src/internal/hash.ts +11 -0
- package/src/internal/interruptors.ts +4 -0
- package/src/internal/resourceMap.ts +89 -0
- package/src/internal/resourceRef.ts +88 -0
- package/src/internal/shardManager.ts +273 -546
- package/AtLeastOnce/package.json +0 -6
- package/AtLeastOnceStorage/package.json +0 -6
- package/Broadcaster/package.json +0 -6
- package/ManagerConfig/package.json +0 -6
- package/MessageState/package.json +0 -6
- package/Messenger/package.json +0 -6
- package/Pod/package.json +0 -6
- package/PodAddress/package.json +0 -6
- package/Pods/package.json +0 -6
- package/PodsHealth/package.json +0 -6
- package/PoisonPill/package.json +0 -6
- package/RecipientAddress/package.json +0 -6
- package/RecipientBehaviour/package.json +0 -6
- package/RecipientBehaviourContext/package.json +0 -6
- package/RecipientType/package.json +0 -6
- package/Serialization/package.json +0 -6
- package/SerializedEnvelope/package.json +0 -6
- package/SerializedMessage/package.json +0 -6
- package/ShardManagerClient/package.json +0 -6
- package/ShardingEvent/package.json +0 -6
- package/ShardingException/package.json +0 -6
- package/Storage/package.json +0 -6
- package/dist/cjs/AtLeastOnce.js.map +0 -1
- package/dist/cjs/AtLeastOnceStorage.js.map +0 -1
- package/dist/cjs/Broadcaster.js +0 -6
- package/dist/cjs/Broadcaster.js.map +0 -1
- package/dist/cjs/ManagerConfig.js.map +0 -1
- package/dist/cjs/MessageState.js +0 -55
- package/dist/cjs/MessageState.js.map +0 -1
- package/dist/cjs/Messenger.js +0 -6
- package/dist/cjs/Messenger.js.map +0 -1
- package/dist/cjs/Pod.js +0 -78
- package/dist/cjs/Pod.js.map +0 -1
- package/dist/cjs/PodAddress.js +0 -77
- package/dist/cjs/PodAddress.js.map +0 -1
- package/dist/cjs/Pods.js.map +0 -1
- package/dist/cjs/PodsHealth.js +0 -41
- package/dist/cjs/PodsHealth.js.map +0 -1
- package/dist/cjs/PoisonPill.js +0 -78
- package/dist/cjs/PoisonPill.js.map +0 -1
- package/dist/cjs/RecipientAddress.js +0 -79
- package/dist/cjs/RecipientAddress.js.map +0 -1
- package/dist/cjs/RecipientBehaviour.js +0 -38
- package/dist/cjs/RecipientBehaviour.js.map +0 -1
- package/dist/cjs/RecipientBehaviourContext.js +0 -64
- package/dist/cjs/RecipientBehaviourContext.js.map +0 -1
- package/dist/cjs/RecipientType.js +0 -123
- package/dist/cjs/RecipientType.js.map +0 -1
- package/dist/cjs/Serialization.js +0 -32
- package/dist/cjs/Serialization.js.map +0 -1
- package/dist/cjs/SerializedEnvelope.js +0 -87
- package/dist/cjs/SerializedEnvelope.js.map +0 -1
- package/dist/cjs/SerializedMessage.js +0 -64
- package/dist/cjs/SerializedMessage.js.map +0 -1
- package/dist/cjs/ShardManagerClient.js.map +0 -1
- package/dist/cjs/ShardingEvent.js +0 -72
- package/dist/cjs/ShardingEvent.js.map +0 -1
- package/dist/cjs/ShardingException.js +0 -107
- package/dist/cjs/ShardingException.js.map +0 -1
- package/dist/cjs/Storage.js +0 -40
- package/dist/cjs/Storage.js.map +0 -1
- package/dist/cjs/internal/atLeastOnce.js +0 -35
- package/dist/cjs/internal/atLeastOnce.js.map +0 -1
- package/dist/cjs/internal/atLeastOnceStorage.js +0 -163
- package/dist/cjs/internal/atLeastOnceStorage.js.map +0 -1
- package/dist/cjs/internal/entityState.js +0 -47
- package/dist/cjs/internal/entityState.js.map +0 -1
- package/dist/cjs/internal/managerConfig.js +0 -46
- package/dist/cjs/internal/managerConfig.js.map +0 -1
- package/dist/cjs/internal/message.js +0 -48
- package/dist/cjs/internal/message.js.map +0 -1
- package/dist/cjs/internal/messageState.js +0 -79
- package/dist/cjs/internal/messageState.js.map +0 -1
- package/dist/cjs/internal/podWithMetadata.js +0 -54
- package/dist/cjs/internal/podWithMetadata.js.map +0 -1
- package/dist/cjs/internal/pods.js +0 -35
- package/dist/cjs/internal/pods.js.map +0 -1
- package/dist/cjs/internal/podsHealth.js +0 -40
- package/dist/cjs/internal/podsHealth.js.map +0 -1
- package/dist/cjs/internal/recipientBehaviour.js +0 -52
- package/dist/cjs/internal/recipientBehaviour.js.map +0 -1
- package/dist/cjs/internal/recipientBehaviourContext.js +0 -36
- package/dist/cjs/internal/recipientBehaviourContext.js.map +0 -1
- package/dist/cjs/internal/serialization.js +0 -48
- package/dist/cjs/internal/serialization.js.map +0 -1
- package/dist/cjs/internal/shardManagerClient.js +0 -48
- package/dist/cjs/internal/shardManagerClient.js.map +0 -1
- package/dist/cjs/internal/shardManagerState.js +0 -44
- package/dist/cjs/internal/shardManagerState.js.map +0 -1
- package/dist/cjs/internal/sharding.js +0 -306
- package/dist/cjs/internal/sharding.js.map +0 -1
- package/dist/cjs/internal/shardingConfig.js +0 -56
- package/dist/cjs/internal/shardingConfig.js.map +0 -1
- package/dist/cjs/internal/storage.js +0 -52
- package/dist/cjs/internal/storage.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -69
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/dts/AtLeastOnce.d.ts +0 -20
- package/dist/dts/AtLeastOnce.d.ts.map +0 -1
- package/dist/dts/AtLeastOnceStorage.d.ts +0 -75
- package/dist/dts/AtLeastOnceStorage.d.ts.map +0 -1
- package/dist/dts/Broadcaster.d.ts +0 -32
- package/dist/dts/Broadcaster.d.ts.map +0 -1
- package/dist/dts/ManagerConfig.d.ts +0 -61
- package/dist/dts/ManagerConfig.d.ts.map +0 -1
- package/dist/dts/MessageState.d.ts +0 -107
- package/dist/dts/MessageState.d.ts.map +0 -1
- package/dist/dts/Messenger.d.ts +0 -32
- package/dist/dts/Messenger.d.ts.map +0 -1
- package/dist/dts/Pod.d.ts +0 -81
- package/dist/dts/Pod.d.ts.map +0 -1
- package/dist/dts/PodAddress.d.ts +0 -80
- package/dist/dts/PodAddress.d.ts.map +0 -1
- package/dist/dts/Pods.d.ts +0 -78
- package/dist/dts/Pods.d.ts.map +0 -1
- package/dist/dts/PodsHealth.d.ts +0 -66
- package/dist/dts/PodsHealth.d.ts.map +0 -1
- package/dist/dts/PoisonPill.d.ts +0 -78
- package/dist/dts/PoisonPill.d.ts.map +0 -1
- package/dist/dts/RecipientAddress.d.ts +0 -57
- package/dist/dts/RecipientAddress.d.ts.map +0 -1
- package/dist/dts/RecipientBehaviour.d.ts +0 -72
- package/dist/dts/RecipientBehaviour.d.ts.map +0 -1
- package/dist/dts/RecipientBehaviourContext.d.ts +0 -83
- package/dist/dts/RecipientBehaviourContext.d.ts.map +0 -1
- package/dist/dts/RecipientType.d.ts +0 -93
- package/dist/dts/RecipientType.d.ts.map +0 -1
- package/dist/dts/Serialization.d.ts +0 -58
- package/dist/dts/Serialization.d.ts.map +0 -1
- package/dist/dts/SerializedEnvelope.d.ts +0 -86
- package/dist/dts/SerializedEnvelope.d.ts.map +0 -1
- package/dist/dts/SerializedMessage.d.ts +0 -66
- package/dist/dts/SerializedMessage.d.ts.map +0 -1
- package/dist/dts/ShardManagerClient.d.ts +0 -50
- package/dist/dts/ShardManagerClient.d.ts.map +0 -1
- package/dist/dts/ShardingEvent.d.ts +0 -90
- package/dist/dts/ShardingEvent.d.ts.map +0 -1
- package/dist/dts/ShardingException.d.ts +0 -125
- package/dist/dts/ShardingException.d.ts.map +0 -1
- package/dist/dts/Storage.d.ts +0 -78
- package/dist/dts/Storage.d.ts.map +0 -1
- package/dist/dts/internal/atLeastOnce.d.ts +0 -2
- package/dist/dts/internal/atLeastOnce.d.ts.map +0 -1
- package/dist/dts/internal/atLeastOnceStorage.d.ts +0 -2
- package/dist/dts/internal/atLeastOnceStorage.d.ts.map +0 -1
- package/dist/dts/internal/entityState.d.ts +0 -21
- package/dist/dts/internal/entityState.d.ts.map +0 -1
- package/dist/dts/internal/managerConfig.d.ts +0 -2
- package/dist/dts/internal/managerConfig.d.ts.map +0 -1
- package/dist/dts/internal/message.d.ts +0 -9
- package/dist/dts/internal/message.d.ts.map +0 -1
- package/dist/dts/internal/messageState.d.ts +0 -2
- package/dist/dts/internal/messageState.d.ts.map +0 -1
- package/dist/dts/internal/podWithMetadata.d.ts +0 -2
- package/dist/dts/internal/podWithMetadata.d.ts.map +0 -1
- package/dist/dts/internal/pods.d.ts +0 -2
- package/dist/dts/internal/pods.d.ts.map +0 -1
- package/dist/dts/internal/podsHealth.d.ts +0 -2
- package/dist/dts/internal/podsHealth.d.ts.map +0 -1
- package/dist/dts/internal/recipientBehaviour.d.ts +0 -2
- package/dist/dts/internal/recipientBehaviour.d.ts.map +0 -1
- package/dist/dts/internal/recipientBehaviourContext.d.ts +0 -2
- package/dist/dts/internal/recipientBehaviourContext.d.ts.map +0 -1
- package/dist/dts/internal/serialization.d.ts +0 -2
- package/dist/dts/internal/serialization.d.ts.map +0 -1
- package/dist/dts/internal/shardManagerClient.d.ts +0 -2
- package/dist/dts/internal/shardManagerClient.d.ts.map +0 -1
- package/dist/dts/internal/shardManagerState.d.ts +0 -26
- package/dist/dts/internal/shardManagerState.d.ts.map +0 -1
- package/dist/dts/internal/sharding.d.ts +0 -2
- package/dist/dts/internal/sharding.d.ts.map +0 -1
- package/dist/dts/internal/shardingConfig.d.ts +0 -2
- package/dist/dts/internal/shardingConfig.d.ts.map +0 -1
- package/dist/dts/internal/storage.d.ts +0 -2
- package/dist/dts/internal/storage.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -2
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/esm/AtLeastOnce.js +0 -12
- package/dist/esm/AtLeastOnce.js.map +0 -1
- package/dist/esm/AtLeastOnceStorage.js +0 -17
- package/dist/esm/AtLeastOnceStorage.js.map +0 -1
- package/dist/esm/Broadcaster.js +0 -2
- package/dist/esm/Broadcaster.js.map +0 -1
- package/dist/esm/ManagerConfig.js +0 -26
- package/dist/esm/ManagerConfig.js.map +0 -1
- package/dist/esm/MessageState.js +0 -47
- package/dist/esm/MessageState.js.map +0 -1
- package/dist/esm/Messenger.js +0 -2
- package/dist/esm/Messenger.js.map +0 -1
- package/dist/esm/Pod.js +0 -65
- package/dist/esm/Pod.js.map +0 -1
- package/dist/esm/PodAddress.js +0 -64
- package/dist/esm/PodAddress.js.map +0 -1
- package/dist/esm/Pods.js +0 -27
- package/dist/esm/Pods.js.map +0 -1
- package/dist/esm/PodsHealth.js +0 -33
- package/dist/esm/PodsHealth.js.map +0 -1
- package/dist/esm/PoisonPill.js +0 -65
- package/dist/esm/PoisonPill.js.map +0 -1
- package/dist/esm/RecipientAddress.js +0 -67
- package/dist/esm/RecipientAddress.js.map +0 -1
- package/dist/esm/RecipientBehaviour.js +0 -30
- package/dist/esm/RecipientBehaviour.js.map +0 -1
- package/dist/esm/RecipientBehaviourContext.js +0 -56
- package/dist/esm/RecipientBehaviourContext.js.map +0 -1
- package/dist/esm/RecipientType.js +0 -108
- package/dist/esm/RecipientType.js.map +0 -1
- package/dist/esm/Serialization.js +0 -24
- package/dist/esm/Serialization.js.map +0 -1
- package/dist/esm/SerializedEnvelope.js +0 -74
- package/dist/esm/SerializedEnvelope.js.map +0 -1
- package/dist/esm/SerializedMessage.js +0 -51
- package/dist/esm/SerializedMessage.js.map +0 -1
- package/dist/esm/ShardManagerClient.js +0 -22
- package/dist/esm/ShardManagerClient.js.map +0 -1
- package/dist/esm/ShardingEvent.js +0 -62
- package/dist/esm/ShardingEvent.js.map +0 -1
- package/dist/esm/ShardingException.js +0 -91
- package/dist/esm/ShardingException.js.map +0 -1
- package/dist/esm/Storage.js +0 -32
- package/dist/esm/Storage.js.map +0 -1
- package/dist/esm/internal/atLeastOnce.js +0 -26
- package/dist/esm/internal/atLeastOnce.js.map +0 -1
- package/dist/esm/internal/atLeastOnceStorage.js +0 -154
- package/dist/esm/internal/atLeastOnceStorage.js.map +0 -1
- package/dist/esm/internal/entityState.js +0 -35
- package/dist/esm/internal/entityState.js.map +0 -1
- package/dist/esm/internal/managerConfig.js +0 -38
- package/dist/esm/internal/managerConfig.js.map +0 -1
- package/dist/esm/internal/message.js +0 -35
- package/dist/esm/internal/message.js.map +0 -1
- package/dist/esm/internal/messageState.js +0 -66
- package/dist/esm/internal/messageState.js.map +0 -1
- package/dist/esm/internal/podWithMetadata.js +0 -41
- package/dist/esm/internal/podWithMetadata.js.map +0 -1
- package/dist/esm/internal/pods.js +0 -25
- package/dist/esm/internal/pods.js.map +0 -1
- package/dist/esm/internal/podsHealth.js +0 -30
- package/dist/esm/internal/podsHealth.js.map +0 -1
- package/dist/esm/internal/recipientBehaviour.js +0 -42
- package/dist/esm/internal/recipientBehaviour.js.map +0 -1
- package/dist/esm/internal/recipientBehaviourContext.js +0 -26
- package/dist/esm/internal/recipientBehaviourContext.js.map +0 -1
- package/dist/esm/internal/serialization.js +0 -38
- package/dist/esm/internal/serialization.js.map +0 -1
- package/dist/esm/internal/shardManagerClient.js +0 -38
- package/dist/esm/internal/shardManagerClient.js.map +0 -1
- package/dist/esm/internal/shardManagerState.js +0 -36
- package/dist/esm/internal/shardManagerState.js.map +0 -1
- package/dist/esm/internal/sharding.js +0 -288
- package/dist/esm/internal/sharding.js.map +0 -1
- package/dist/esm/internal/shardingConfig.js +0 -47
- package/dist/esm/internal/shardingConfig.js.map +0 -1
- package/dist/esm/internal/storage.js +0 -42
- package/dist/esm/internal/storage.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -56
- package/dist/esm/internal/utils.js.map +0 -1
- package/src/AtLeastOnce.ts +0 -28
- package/src/AtLeastOnceStorage.ts +0 -96
- package/src/Broadcaster.ts +0 -48
- package/src/ManagerConfig.ts +0 -67
- package/src/MessageState.ts +0 -126
- package/src/Messenger.ts +0 -40
- package/src/Pod.ts +0 -95
- package/src/PodAddress.ts +0 -94
- package/src/Pods.ts +0 -100
- package/src/PodsHealth.ts +0 -74
- package/src/PoisonPill.ts +0 -105
- package/src/RecipientAddress.ts +0 -72
- package/src/RecipientBehaviour.ts +0 -108
- package/src/RecipientBehaviourContext.ts +0 -101
- package/src/RecipientType.ts +0 -134
- package/src/Serialization.ts +0 -72
- package/src/SerializedEnvelope.ts +0 -108
- package/src/SerializedMessage.ts +0 -82
- package/src/ShardManagerClient.ts +0 -57
- package/src/ShardingEvent.ts +0 -121
- package/src/ShardingException.ts +0 -151
- package/src/Storage.ts +0 -92
- package/src/internal/atLeastOnce.ts +0 -59
- package/src/internal/atLeastOnceStorage.ts +0 -218
- package/src/internal/entityState.ts +0 -64
- package/src/internal/managerConfig.ts +0 -84
- package/src/internal/message.ts +0 -63
- package/src/internal/messageState.ts +0 -98
- package/src/internal/podWithMetadata.ts +0 -72
- package/src/internal/pods.ts +0 -29
- package/src/internal/podsHealth.ts +0 -39
- package/src/internal/recipientBehaviour.ts +0 -133
- package/src/internal/recipientBehaviourContext.ts +0 -70
- package/src/internal/serialization.ts +0 -63
- package/src/internal/shardManagerClient.ts +0 -49
- package/src/internal/shardManagerState.ts +0 -80
- package/src/internal/sharding.ts +0 -789
- package/src/internal/shardingConfig.ts +0 -97
- package/src/internal/storage.ts +0 -60
- package/src/internal/utils.ts +0 -54
@@ -3,266 +3,250 @@
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
4
4
|
value: true
|
5
5
|
});
|
6
|
-
exports.
|
6
|
+
exports.State = exports.RunnerWithMetadata = void 0;
|
7
7
|
exports.decideAssignmentsForUnassignedShards = decideAssignmentsForUnassignedShards;
|
8
8
|
exports.decideAssignmentsForUnbalancedShards = decideAssignmentsForUnbalancedShards;
|
9
|
-
|
10
|
-
var Chunk = _interopRequireWildcard(require("effect/Chunk"));
|
9
|
+
var Arr = _interopRequireWildcard(require("effect/Array"));
|
11
10
|
var Clock = _interopRequireWildcard(require("effect/Clock"));
|
12
|
-
var _Context = require("effect/Context");
|
13
11
|
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
14
|
-
var _Equal = require("effect/Equal");
|
15
12
|
var _Function = require("effect/Function");
|
16
|
-
var
|
17
|
-
var
|
18
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
19
|
-
var List = _interopRequireWildcard(require("effect/List"));
|
13
|
+
var MutableHashMap = _interopRequireWildcard(require("effect/MutableHashMap"));
|
14
|
+
var MutableHashSet = _interopRequireWildcard(require("effect/MutableHashSet"));
|
20
15
|
var Option = _interopRequireWildcard(require("effect/Option"));
|
21
|
-
var
|
22
|
-
var
|
23
|
-
var
|
24
|
-
var
|
25
|
-
var ManagerConfig = _interopRequireWildcard(require("../ManagerConfig.js"));
|
26
|
-
var Pods = _interopRequireWildcard(require("../Pods.js"));
|
27
|
-
var PodsHealth = _interopRequireWildcard(require("../PodsHealth.js"));
|
28
|
-
var ShardId = _interopRequireWildcard(require("../ShardId.js"));
|
29
|
-
var ShardingEvent = _interopRequireWildcard(require("../ShardingEvent.js"));
|
30
|
-
var ShardingException = _interopRequireWildcard(require("../ShardingException.js"));
|
31
|
-
var Storage = _interopRequireWildcard(require("../Storage.js"));
|
32
|
-
var PodWithMetadata = _interopRequireWildcard(require("./podWithMetadata.js"));
|
33
|
-
var ShardManagerState = _interopRequireWildcard(require("./shardManagerState.js"));
|
34
|
-
var _utils = require("./utils.js");
|
16
|
+
var Order = _interopRequireWildcard(require("effect/Order"));
|
17
|
+
var _RunnerHealth = require("../RunnerHealth.js");
|
18
|
+
var _ShardId = require("../ShardId.js");
|
19
|
+
var _ShardStorage = require("../ShardStorage.js");
|
35
20
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
36
21
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
37
|
-
/**
|
38
|
-
* @since 1.0.0
|
39
|
-
*/
|
40
|
-
|
41
|
-
/** @internal */
|
42
|
-
const ShardManagerSymbolKey = "@effect/cluster/ShardManager";
|
43
|
-
/** @internal */
|
44
|
-
const ShardManagerTypeId = exports.ShardManagerTypeId = /*#__PURE__*/Symbol.for(ShardManagerSymbolKey);
|
45
22
|
/** @internal */
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
23
|
+
class State {
|
24
|
+
runners;
|
25
|
+
shards;
|
26
|
+
static fromStorage = /*#__PURE__*/Effect.fnUntraced(function* (numberOfShards) {
|
27
|
+
const storage = yield* _ShardStorage.ShardStorage;
|
28
|
+
const runnerHealth = yield* _RunnerHealth.RunnerHealth;
|
29
|
+
// Fetch registered runners and shard assignments from cluster storage
|
30
|
+
const storedRunners = yield* storage.getRunners;
|
31
|
+
const storedAssignments = yield* storage.getAssignments;
|
32
|
+
// Determine which runners are still alive
|
33
|
+
const deadRunners = Arr.empty();
|
34
|
+
const aliveRunners = MutableHashMap.empty();
|
35
|
+
yield* Effect.forEach(storedRunners, ([address, runner]) => Effect.map(runnerHealth.isAlive(address), isAlive => {
|
36
|
+
if (isAlive) {
|
37
|
+
MutableHashMap.set(aliveRunners, address, runner);
|
38
|
+
} else {
|
39
|
+
deadRunners.push(runner);
|
40
|
+
}
|
41
|
+
}), {
|
42
|
+
concurrency: "unbounded",
|
43
|
+
discard: true
|
44
|
+
});
|
45
|
+
if (deadRunners.length > 0) {
|
46
|
+
yield* Effect.logWarning("Ignoring runners that are no longer considered alive:", deadRunners);
|
47
|
+
}
|
48
|
+
// Determine which shards remain unassigned to a runner
|
49
|
+
const assignedShards = new Map();
|
50
|
+
const invalidAssignments = Arr.empty();
|
51
|
+
for (const [shard, address] of storedAssignments) {
|
52
|
+
if (Option.isSome(address) && MutableHashMap.has(aliveRunners, address.value)) {
|
53
|
+
assignedShards.set(shard, address.value);
|
54
|
+
} else if (Option.isSome(address)) {
|
55
|
+
invalidAssignments.push([shard, address.value]);
|
56
|
+
}
|
57
|
+
}
|
58
|
+
if (invalidAssignments.length > 0) {
|
59
|
+
yield* Effect.logWarning("Ignoring shard assignments for runners that are no longer considered alive: ", invalidAssignments);
|
60
|
+
}
|
61
|
+
// Construct the initial state
|
62
|
+
const now = yield* Clock.currentTimeMillis;
|
63
|
+
const runnerState = MutableHashMap.empty();
|
64
|
+
for (const [address, runner] of aliveRunners) {
|
65
|
+
MutableHashMap.set(runnerState, address, RunnerWithMetadata({
|
66
|
+
runner,
|
67
|
+
registeredAt: now
|
68
|
+
}));
|
69
|
+
}
|
70
|
+
const shardState = new Map();
|
71
|
+
for (let n = 1; n <= numberOfShards; n++) {
|
72
|
+
const shardId = _ShardId.ShardId.make(n);
|
73
|
+
shardState.set(shardId, Option.fromNullable(assignedShards.get(shardId)));
|
74
|
+
}
|
75
|
+
return new State(runnerState, shardState);
|
76
|
+
});
|
77
|
+
constructor(runners, shards) {
|
78
|
+
this.runners = runners;
|
79
|
+
this.shards = shards;
|
53
80
|
}
|
54
|
-
|
55
|
-
|
81
|
+
get maxVersion() {
|
82
|
+
if (MutableHashMap.size(this.runners) === 0) return Option.none();
|
83
|
+
let version = undefined;
|
84
|
+
for (const [, meta] of this.runners) {
|
85
|
+
if (version === undefined || meta.runner.version > version) {
|
86
|
+
version = meta.runner.version;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
return Option.some(version);
|
56
90
|
}
|
57
|
-
|
58
|
-
return
|
91
|
+
allRunnersHaveVersion(version) {
|
92
|
+
return version.pipe(Option.map(max => Arr.every(this.runnerVersions, version => version === max)), Option.getOrElse(_Function.constFalse));
|
59
93
|
}
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
94
|
+
get shardsPerRunner() {
|
95
|
+
const shards = MutableHashMap.empty();
|
96
|
+
if (MutableHashMap.isEmpty(this.runners)) return shards;
|
97
|
+
MutableHashMap.forEach(this.runners, (_, address) => {
|
98
|
+
MutableHashMap.set(shards, address, new Set());
|
99
|
+
});
|
100
|
+
for (const [shard, address] of this.shards) {
|
101
|
+
if (Option.isNone(address)) continue;
|
102
|
+
const shardIds = Option.getOrUndefined(MutableHashMap.get(shards, address.value));
|
103
|
+
shardIds.add(shard);
|
104
|
+
}
|
105
|
+
return shards;
|
71
106
|
}
|
72
|
-
|
73
|
-
|
107
|
+
get averageShardsPerRunner() {
|
108
|
+
const runnerCount = MutableHashMap.size(this.runners);
|
109
|
+
return runnerCount > 0 ? this.shards.size / runnerCount : 0;
|
74
110
|
}
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
return Effect.fail(new ShardingException.PodNoLongerRegisteredException({
|
81
|
-
podAddress: pod.value
|
82
|
-
}));
|
111
|
+
get unassignedShards() {
|
112
|
+
const shardIds = [];
|
113
|
+
for (const [shard, address] of this.shards) {
|
114
|
+
if (Option.isNone(address)) {
|
115
|
+
shardIds.push(shard);
|
83
116
|
}
|
84
|
-
|
85
|
-
|
86
|
-
shards: (0, _Function.pipe)(state.shards, HashMap.map((assignment, shard) => HashSet.has(shards, shard) ? pod : assignment))
|
87
|
-
});
|
88
|
-
});
|
117
|
+
}
|
118
|
+
return shardIds;
|
89
119
|
}
|
90
|
-
|
91
|
-
const
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
yield* Effect.logDebug("Rebalance (rebalanceImmidiately=" + JSON.stringify(rebalanceImmediately) + ")");
|
97
|
-
}
|
98
|
-
const failedPingedPods = yield* (0, _Function.pipe)(HashSet.union(HashMap.keySet(assignments), HashMap.keySet(unassignments)), Effect.forEach(pod => (0, _Function.pipe)(podApi.ping(pod), Effect.timeout(config.pingTimeout), Effect.match({
|
99
|
-
onFailure: () => Chunk.fromIterable([pod]),
|
100
|
-
onSuccess: () => Chunk.empty()
|
101
|
-
})), {
|
102
|
-
concurrency: "inherit"
|
103
|
-
}), Effect.map(Chunk.fromIterable), Effect.map(_ => Chunk.flatten(_)), Effect.map(HashSet.fromIterable));
|
104
|
-
const shardsToRemove = (0, _Function.pipe)(List.fromIterable(assignments), List.appendAll(List.fromIterable(unassignments)), List.filter(([pod, __]) => HashSet.has(failedPingedPods, pod)), List.map(([_, shards]) => List.fromIterable(shards)), List.flatMap(_ => _),
|
105
|
-
// TODO: List is missing flatMap
|
106
|
-
HashSet.fromIterable);
|
107
|
-
const readyAssignments = (0, _Function.pipe)(assignments, HashMap.map(HashSet.difference(shardsToRemove)), HashMap.filter(__ => HashSet.size(__) > 0));
|
108
|
-
const readyUnassignments = (0, _Function.pipe)(unassignments, HashMap.map(HashSet.difference(shardsToRemove)), HashMap.filter(__ => HashSet.size(__) > 0));
|
109
|
-
const [failedUnassignedPods, failedUnassignedShards] = yield* (0, _Function.pipe)(Effect.forEach(readyUnassignments, ([pod, shards]) => (0, _Function.pipe)(podApi.unassignShards(pod, shards), Effect.zipRight(updateShardsState(shards, Option.none())), Effect.matchEffect({
|
110
|
-
onFailure: () => Effect.succeed([HashSet.fromIterable([pod]), shards]),
|
111
|
-
onSuccess: () => (0, _Function.pipe)(PubSub.publish(eventsHub, ShardingEvent.ShardsUnassigned(pod, shards)), Effect.as([HashSet.empty(), HashSet.empty()]))
|
112
|
-
})), {
|
113
|
-
concurrency: "inherit"
|
114
|
-
}), Effect.map(Chunk.fromIterable), Effect.map(_ => Chunk.unzip(_)), Effect.map(([pods, shards]) => [Chunk.map(pods, Chunk.fromIterable), Chunk.map(shards, Chunk.fromIterable)]), Effect.map(([pods, shards]) => [HashSet.fromIterable(Chunk.flatten(pods)), HashSet.fromIterable(Chunk.flatten(shards))]));
|
115
|
-
// remove assignments of shards that couldn't be unassigned, as well as faulty pods.
|
116
|
-
const filteredAssignments = (0, _Function.pipe)(HashMap.removeMany(readyAssignments, failedUnassignedPods), HashMap.map((shards, __) => HashSet.difference(shards, failedUnassignedShards)));
|
117
|
-
// then do the assignments
|
118
|
-
const failedAssignedPods = yield* (0, _Function.pipe)(Effect.forEach(filteredAssignments, ([pod, shards]) => (0, _Function.pipe)(podApi.assignShards(pod, shards), Effect.zipRight(updateShardsState(shards, Option.some(pod))), Effect.matchEffect({
|
119
|
-
onFailure: () => Effect.succeed(Chunk.fromIterable([pod])),
|
120
|
-
onSuccess: () => (0, _Function.pipe)(PubSub.publish(eventsHub, ShardingEvent.ShardsAssigned(pod, shards)), Effect.as(Chunk.empty()))
|
121
|
-
})), {
|
122
|
-
concurrency: "inherit"
|
123
|
-
}), Effect.map(Chunk.fromIterable), Effect.map(_ => Chunk.flatten(_)), Effect.map(HashSet.fromIterable));
|
124
|
-
const failedPods = HashSet.union(HashSet.union(failedPingedPods, failedUnassignedPods), failedAssignedPods);
|
125
|
-
// check if failing pods are still up
|
126
|
-
yield* Effect.forkIn(layerScope)(Effect.forEach(failedPods, _ => notifyUnhealthyPod(_), {
|
127
|
-
discard: true
|
128
|
-
}));
|
129
|
-
if (HashSet.size(failedPods) > 0) {
|
130
|
-
yield* Effect.logDebug("Failed to rebalance pods: " + failedPods + " failed pinged: " + failedPingedPods + " failed assigned: " + failedAssignedPods + " failed unassigned: " + failedUnassignedPods);
|
131
|
-
}
|
132
|
-
// retry rebalancing later if there was any failure
|
133
|
-
if (HashSet.size(failedPods) > 0 && rebalanceImmediately) {
|
134
|
-
yield* (0, _Function.pipe)(Effect.sleep(config.rebalanceRetryInterval), Effect.zipRight(rebalance(rebalanceImmediately)), Effect.forkIn(layerScope));
|
135
|
-
}
|
136
|
-
// persist state changes to Redis
|
137
|
-
if (areChanges) {
|
138
|
-
yield* Effect.forkIn(layerScope)(persistAssignments);
|
139
|
-
}
|
140
|
-
});
|
141
|
-
return rebalanceSemaphore.withPermits(1)(algo);
|
120
|
+
get runnerVersions() {
|
121
|
+
const runnerVersions = [];
|
122
|
+
for (const [, meta] of this.runners) {
|
123
|
+
runnerVersions.push(meta.runner.version);
|
124
|
+
}
|
125
|
+
return runnerVersions;
|
142
126
|
}
|
143
|
-
return {
|
144
|
-
getAssignments,
|
145
|
-
getShardingEvents,
|
146
|
-
register,
|
147
|
-
unregister,
|
148
|
-
persistPods,
|
149
|
-
rebalance,
|
150
|
-
notifyUnhealthyPod,
|
151
|
-
checkAllPodsHealth
|
152
|
-
};
|
153
127
|
}
|
154
128
|
/** @internal */
|
129
|
+
exports.State = State;
|
130
|
+
const RunnerWithMetadata = runner => runner;
|
131
|
+
/** @internal */
|
132
|
+
exports.RunnerWithMetadata = RunnerWithMetadata;
|
155
133
|
function decideAssignmentsForUnassignedShards(state) {
|
156
|
-
return
|
134
|
+
return pickNewRunners(state.unassignedShards, state, true, 1);
|
157
135
|
}
|
136
|
+
const allocationOrder = /*#__PURE__*/Order.combine( /*#__PURE__*/Order.mapInput(Order.number, ([, shards]) => shards), /*#__PURE__*/Order.mapInput(Order.number, ([,, registeredAt]) => registeredAt));
|
158
137
|
/** @internal */
|
159
|
-
function decideAssignmentsForUnbalancedShards(state,
|
160
|
-
|
161
|
-
const
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
138
|
+
function decideAssignmentsForUnbalancedShards(state, rate) {
|
139
|
+
const shardsPerRunner = state.shardsPerRunner;
|
140
|
+
const maxVersion = state.maxVersion;
|
141
|
+
const extraShardsToAllocate = Arr.empty();
|
142
|
+
if (state.allRunnersHaveVersion(maxVersion)) {
|
143
|
+
const averageShardsPerRunner = state.averageShardsPerRunner;
|
144
|
+
MutableHashMap.forEach(shardsPerRunner, shards => {
|
145
|
+
// Count how many extra shards there are compared to the average
|
146
|
+
const extraShards = Math.max(0, shards.size - averageShardsPerRunner);
|
147
|
+
for (const shard of takeRandom(shards, extraShards)) {
|
148
|
+
const maybeAddress = state.shards.get(shard) ?? Option.none();
|
149
|
+
if (Option.isNone(maybeAddress)) {
|
150
|
+
extraShardsToAllocate.push([shard, Number.MIN_SAFE_INTEGER, Number.MIN_SAFE_INTEGER]);
|
151
|
+
continue;
|
152
|
+
}
|
153
|
+
const address = maybeAddress.value;
|
154
|
+
extraShardsToAllocate.push([shard, Option.match(MutableHashMap.get(shardsPerRunner, address), {
|
155
|
+
onNone: () => Number.MIN_SAFE_INTEGER,
|
156
|
+
onSome: shards => -shards.size
|
157
|
+
}), Option.match(MutableHashMap.get(state.runners, address), {
|
158
|
+
onNone: () => Number.MIN_SAFE_INTEGER,
|
159
|
+
onSome: meta => meta.registeredAt
|
160
|
+
})]);
|
175
161
|
}
|
176
|
-
}
|
177
|
-
|
178
|
-
const sortedShardsToRebalance =
|
179
|
-
return
|
162
|
+
});
|
163
|
+
}
|
164
|
+
const sortedShardsToRebalance = extraShardsToAllocate.sort(allocationOrder).map(([shard]) => shard);
|
165
|
+
return pickNewRunners(sortedShardsToRebalance, state, false, rate, shardsPerRunner, maxVersion);
|
180
166
|
}
|
181
|
-
function
|
182
|
-
const
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
167
|
+
function pickNewRunners(shardsToRebalance, state, immediate, rate, shardsPerRunner = state.shardsPerRunner, maybeMaxVersion = state.maxVersion) {
|
168
|
+
const addressAssignments = MutableHashMap.empty();
|
169
|
+
const unassignments = MutableHashMap.empty();
|
170
|
+
const changes = MutableHashSet.empty();
|
171
|
+
if (Option.isNone(maybeMaxVersion)) {
|
172
|
+
return [addressAssignments, unassignments, changes];
|
173
|
+
}
|
174
|
+
const maxVersion = maybeMaxVersion.value;
|
175
|
+
for (const shardId of shardsToRebalance) {
|
176
|
+
// Find the runner with the fewest assigned shards
|
177
|
+
let candidate;
|
178
|
+
let candidateShards;
|
179
|
+
for (const [address, shards] of shardsPerRunner) {
|
180
|
+
// Keep only runners with the maximum version
|
181
|
+
const maybeRunnerMeta = MutableHashMap.get(state.runners, address);
|
182
|
+
if (Option.isNone(maybeRunnerMeta)) continue;
|
183
|
+
const runnerMeta = maybeRunnerMeta.value;
|
184
|
+
if (runnerMeta.runner.version !== maxVersion) continue;
|
185
|
+
// Do not assign to a runner that has unassignments in the same rebalance
|
186
|
+
if (MutableHashMap.has(unassignments, address)) continue;
|
187
|
+
// Do not assign too many shards to each runner unless rebalancing must
|
188
|
+
// occur immediately
|
189
|
+
if (!immediate) {
|
190
|
+
const assignmentCount = Option.getOrUndefined(MutableHashMap.get(addressAssignments, address))?.size ?? 0;
|
191
|
+
if (assignmentCount >= state.shards.size * rate) continue;
|
192
|
+
}
|
193
|
+
if (candidate === undefined || shards.size < candidateShards.size) {
|
194
|
+
candidate = address;
|
195
|
+
candidateShards = shards;
|
196
|
+
}
|
197
|
+
}
|
198
|
+
if (!candidate || !candidateShards) break;
|
199
|
+
// If the old runner is the same as the new runner, do nothing
|
200
|
+
const oldRunner = Option.getOrUndefined(state.shards.get(shardId) ?? Option.none());
|
201
|
+
if (oldRunner && oldRunner.toString() === candidate.toString()) {
|
202
|
+
continue;
|
203
|
+
}
|
204
|
+
const oldShards = oldRunner && Option.getOrUndefined(MutableHashMap.get(shardsPerRunner, oldRunner));
|
205
|
+
// If the new runner has one less, as many, or more shards than the
|
206
|
+
// old runner, do not change anything
|
207
|
+
if (oldShards && candidateShards.size + 1 >= oldShards.size) continue;
|
208
|
+
// Otherwise create a new assignment
|
209
|
+
MutableHashMap.modifyAt(addressAssignments, candidate, Option.match({
|
210
|
+
onNone: () => Option.some(new Set([shardId])),
|
211
|
+
onSome: shards => {
|
212
|
+
shards.add(shardId);
|
213
|
+
return Option.some(shards);
|
225
214
|
}
|
226
215
|
}));
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
216
|
+
if (oldRunner) {
|
217
|
+
MutableHashMap.modifyAt(unassignments, oldRunner, Option.match({
|
218
|
+
onNone: () => Option.some(new Set([shardId])),
|
219
|
+
onSome: shards => {
|
220
|
+
shards.add(shardId);
|
221
|
+
return Option.some(shards);
|
222
|
+
}
|
223
|
+
}));
|
224
|
+
}
|
225
|
+
// Move the shard to the new runner
|
226
|
+
candidateShards.add(shardId);
|
227
|
+
if (oldShards) {
|
228
|
+
oldShards.delete(shardId);
|
229
|
+
}
|
230
|
+
// Track changes
|
231
|
+
MutableHashSet.add(changes, candidate);
|
232
|
+
if (oldRunner) MutableHashSet.add(changes, oldRunner);
|
233
|
+
}
|
234
|
+
return [addressAssignments, unassignments, changes];
|
235
|
+
}
|
236
|
+
function takeRandom(self, n) {
|
237
|
+
const array = Array.from(self);
|
238
|
+
let currentIndex = array.length;
|
239
|
+
while (currentIndex != 0) {
|
240
|
+
const randomIndex = Math.floor(Math.random() * currentIndex);
|
241
|
+
currentIndex = currentIndex - 1;
|
242
|
+
swap(array, currentIndex, randomIndex);
|
243
|
+
}
|
244
|
+
return n < array.length ? array.slice(0, n) : array;
|
245
|
+
}
|
246
|
+
function swap(array, i, j) {
|
247
|
+
const tmp = array[i];
|
248
|
+
array[i] = array[j];
|
249
|
+
array[j] = tmp;
|
250
|
+
return array;
|
235
251
|
}
|
236
|
-
/**
|
237
|
-
* @since 1.0.0
|
238
|
-
* @category layers
|
239
|
-
*/
|
240
|
-
const live = exports.live = /*#__PURE__*/Effect.gen(function* () {
|
241
|
-
const config = yield* ManagerConfig.ManagerConfig;
|
242
|
-
const stateRepository = yield* Storage.Storage;
|
243
|
-
const healthApi = yield* PodsHealth.PodsHealth;
|
244
|
-
const podsApi = yield* Pods.Pods;
|
245
|
-
const layerScope = yield* Effect.scope;
|
246
|
-
const pods = yield* stateRepository.getPods;
|
247
|
-
const assignments = yield* stateRepository.getAssignments;
|
248
|
-
const filteredPods = yield* (0, _Function.pipe)(Effect.filter(pods, ([podAddress]) => healthApi.isAlive(podAddress), {
|
249
|
-
concurrency: "inherit"
|
250
|
-
}), Effect.map(HashMap.fromIterable));
|
251
|
-
const filteredAssignments = HashMap.filter(assignments, pod => Option.isSome(pod) && HashMap.has(filteredPods, pod.value));
|
252
|
-
const cdt = yield* Clock.currentTimeMillis;
|
253
|
-
const initialState = ShardManagerState.make(HashMap.map(filteredPods, pod => PodWithMetadata.make(pod, cdt)), HashMap.union(filteredAssignments, (0, _Function.pipe)(Chunk.range(1, config.numberOfShards), Chunk.map(n => [ShardId.make(n), Option.none()]), HashMap.fromIterable)));
|
254
|
-
const state = yield* RefSynchronized.make(initialState);
|
255
|
-
const rebalanceSemaphore = yield* Effect.makeSemaphore(1);
|
256
|
-
const eventsHub = yield* PubSub.unbounded();
|
257
|
-
const shardManager = make(layerScope, state, rebalanceSemaphore, eventsHub, healthApi, podsApi, stateRepository, config);
|
258
|
-
yield* Effect.forkIn(layerScope)(shardManager.persistPods);
|
259
|
-
// rebalance immediately if there are unassigned shards
|
260
|
-
yield* shardManager.rebalance(HashSet.size(initialState.unassignedShards) > 0);
|
261
|
-
// start a regular rebalance at the given interval
|
262
|
-
yield* (0, _Function.pipe)(shardManager.rebalance(false), Effect.repeat(Schedule.spaced(config.rebalanceInterval)), Effect.forkIn(layerScope));
|
263
|
-
// log info events
|
264
|
-
yield* (0, _Function.pipe)(shardManager.getShardingEvents, Stream.mapEffect(_ => Effect.logDebug(JSON.stringify(_))), Stream.runDrain, Effect.forkIn(layerScope));
|
265
|
-
yield* Effect.logDebug("Shard Manager loaded");
|
266
|
-
return shardManager;
|
267
|
-
}).pipe( /*#__PURE__*/Layer.scoped(shardManagerTag));
|
268
252
|
//# sourceMappingURL=shardManager.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shardManager.js","names":["Chunk","_interopRequireWildcard","require","Clock","_Context","Effect","_Equal","_Function","HashMap","HashSet","Layer","List","Option","PubSub","Schedule","Stream","RefSynchronized","ManagerConfig","Pods","PodsHealth","ShardId","ShardingEvent","ShardingException","Storage","PodWithMetadata","ShardManagerState","_utils","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","ShardManagerSymbolKey","ShardManagerTypeId","exports","Symbol","for","shardManagerTag","GenericTag","make","layerScope","stateRef","rebalanceSemaphore","eventsHub","healthApi","podApi","stateRepository","config","getAssignments","pipe","map","_","shards","getShardingEvents","fromPubSub","register","pod","logDebug","address","version","zipRight","updateAndGetEffect","state","flatMap","clock","currentTimeMillis","cdt","pods","zipLeft","publish","PodRegistered","when","rebalance","size","unassignedShards","forkIn","persistPods","asVoid","stateHasPod","podAddress","notifyUnhealthyPod","whenEffect","PodHealthChecked","unlessEffect","logWarning","unregister","isAlive","checkAllPodsHealth","keySet","forEach","concurrency","discard","eff","Do","bind","modify","filter","equals","some","remove","none","tap","PodUnregistered","ShardsUnassigned","unassignments","withRetry","zio","retry","spaced","persistRetryInterval","andThen","recurs","persistRetryCount","ignore","persistAssignments","saveAssignments","savePods","v","updateShardsState","updateEffect","isSome","value","fail","PodNoLongerRegisteredException","succeed","assignment","shard","rebalanceImmediately","algo","gen","assignments","decideAssignmentsForUnassignedShards","decideAssignmentsForUnbalancedShards","rebalanceRate","areChanges","JSON","stringify","failedPingedPods","union","ping","timeout","pingTimeout","match","onFailure","fromIterable","onSuccess","empty","flatten","shardsToRemove","appendAll","__","readyAssignments","difference","readyUnassignments","failedUnassignedPods","failedUnassignedShards","unassignShards","matchEffect","as","unzip","filteredAssignments","removeMany","failedAssignedPods","assignShards","ShardsAssigned","failedPods","sleep","rebalanceRetryInterval","withPermits","pickNewPods","extraShardsToAllocate","allPodsHaveMaxVersion","shardsPerPod","extraShards","Math","max","averageShardsPerPod","take","sortedShardsToRebalance","shardsToRebalance","reduce","unassignedPods","toArray","maxVersion","isNone","extractVersion","compareVersion","getOrElse","p","findFirst","minByOption","onNone","onSome","oldPod","Number","MAX_SAFE_INTEGER","unassigned","add","prepend","of","assignmentsPerPod","groupBy","shardId","unassignmentsPerPod","live","podsApi","scope","getPods","filteredPods","initialState","range","numberOfShards","makeSemaphore","unbounded","shardManager","repeat","rebalanceInterval","mapEffect","runDrain","scoped"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,KAAA,GAAAF,uBAAA,CAAAC,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,uBAAA,CAAAC,OAAA;AACA,IAAAI,MAAA,GAAAJ,OAAA;AACA,IAAAK,SAAA,GAAAL,OAAA;AACA,IAAAM,OAAA,GAAAP,uBAAA,CAAAC,OAAA;AACA,IAAAO,OAAA,GAAAR,uBAAA,CAAAC,OAAA;AACA,IAAAQ,KAAA,GAAAT,uBAAA,CAAAC,OAAA;AACA,IAAAS,IAAA,GAAAV,uBAAA,CAAAC,OAAA;AACA,IAAAU,MAAA,GAAAX,uBAAA,CAAAC,OAAA;AACA,IAAAW,MAAA,GAAAZ,uBAAA,CAAAC,OAAA;AACA,IAAAY,QAAA,GAAAb,uBAAA,CAAAC,OAAA;AAEA,IAAAa,MAAA,GAAAd,uBAAA,CAAAC,OAAA;AACA,IAAAc,eAAA,GAAAf,uBAAA,CAAAC,OAAA;AACA,IAAAe,aAAA,GAAAhB,uBAAA,CAAAC,OAAA;AAGA,IAAAgB,IAAA,GAAAjB,uBAAA,CAAAC,OAAA;AACA,IAAAiB,UAAA,GAAAlB,uBAAA,CAAAC,OAAA;AACA,IAAAkB,OAAA,GAAAnB,uBAAA,CAAAC,OAAA;AACA,IAAAmB,aAAA,GAAApB,uBAAA,CAAAC,OAAA;AACA,IAAAoB,iBAAA,GAAArB,uBAAA,CAAAC,OAAA;AAEA,IAAAqB,OAAA,GAAAtB,uBAAA,CAAAC,OAAA;AACA,IAAAsB,eAAA,GAAAvB,uBAAA,CAAAC,OAAA;AACA,IAAAuB,iBAAA,GAAAxB,uBAAA,CAAAC,OAAA;AACA,IAAAwB,MAAA,GAAAxB,OAAA;AAAiD,SAAAyB,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAA3B,wBAAA2B,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AA/BjD;;;;AAiCA;AACA,MAAMW,qBAAqB,GAAG,8BAA8B;AAE5D;AACO,MAAMC,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,gBAAoCE,MAAM,CAACC,GAAG,CAC3EJ,qBAAqB,CACa;AAEpC;AACO,MAAMK,eAAe,GAAAH,OAAA,CAAAG,eAAA,gBAAG,IAAAC,mBAAU,EAA4BN,qBAAqB,CAAC;AAE3F;AACA,SAASO,IAAIA,CACXC,UAAuB,EACvBC,QAA8E,EAC9EC,kBAAoC,EACpCC,SAAqD,EACrDC,SAAgC,EAChCC,MAAiB,EACjBC,eAAgC,EAChCC,MAAmC;EAEnC,MAAMC,cAAc,GAA0F,IAAAC,cAAI,EAChHhD,eAAe,CAACmB,GAAG,CAACqB,QAAQ,CAAC,EAC7BnD,MAAM,CAAC4D,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAACC,MAAM,CAAC,CAC5B;EAED,MAAMC,iBAAiB,GAAGrD,MAAM,CAACsD,UAAU,CAACX,SAAS,CAAC;EAEtD,SAASY,QAAQA,CAACC,GAAY;IAC5B,OAAO,IAAAP,cAAI,EACT3D,MAAM,CAACmE,QAAQ,CAAC,cAAc,GAAID,GAAG,CAACE,OAAQ,GAAG,GAAG,GAAGF,GAAG,CAACG,OAAO,CAAC,EACnErE,MAAM,CAACsE,QAAQ,CACb3D,eAAe,CAAC4D,kBAAkB,CAACpB,QAAQ,EAAGqB,KAAK,IACjD,IAAAb,cAAI,EACF3D,MAAM,CAACyE,OAAO,CAACzE,MAAM,CAAC0E,KAAK,EAAGb,CAAC,IAAKA,CAAC,CAACc,iBAAiB,CAAC,EACxD3E,MAAM,CAAC4D,GAAG,CAAEgB,GAAG,IACbxD,iBAAiB,CAAC6B,IAAI,CACpB9C,OAAO,CAACsC,GAAG,CAAC+B,KAAK,CAACK,IAAI,EAAEX,GAAG,CAACE,OAAO,EAAEjD,eAAe,CAAC8B,IAAI,CAACiB,GAAG,EAAEU,GAAG,CAAC,CAAC,EACpEJ,KAAK,CAACV,MAAM,CACb,CACF,CACF,CAAC,CACL,EACD9D,MAAM,CAAC8E,OAAO,CAACtE,MAAM,CAACuE,OAAO,CAAC1B,SAAS,EAAErC,aAAa,CAACgE,aAAa,CAACd,GAAG,CAACE,OAAO,CAAC,CAAC,CAAC,EACnFpE,MAAM,CAACyE,OAAO,CAAED,KAAK,IAAKxE,MAAM,CAACiF,IAAI,CAACC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM9E,OAAO,CAAC+E,IAAI,CAACX,KAAK,CAACY,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EACxGpF,MAAM,CAACsE,QAAQ,CAACtE,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAACoC,WAAW,CAAC,CAAC,EACvDtF,MAAM,CAACuF,MAAM,CACd;EACH;EAEA,SAASC,WAAWA,CAACC,UAAiC;IACpD,OAAO,IAAA9B,cAAI,EACThD,eAAe,CAACmB,GAAG,CAACqB,QAAQ,CAAC,EAC7BnD,MAAM,CAAC4D,GAAG,CAAEC,CAAC,IAAK1D,OAAO,CAAC0B,GAAG,CAACgC,CAAC,CAACgB,IAAI,EAAEY,UAAU,CAAC,CAAC,CACnD;EACH;EAEA,SAASC,kBAAkBA,CAACD,UAAiC;IAC3D,OAAO,IAAA9B,cAAI,EACT3D,MAAM,CAAC2F,UAAU,CACf,IAAAhC,cAAI,EACFnD,MAAM,CAACuE,OAAO,CAAC1B,SAAS,EAAErC,aAAa,CAAC4E,gBAAgB,CAACH,UAAU,CAAC,CAAC,EACrEzF,MAAM,CAACsE,QAAQ,CACbtE,MAAM,CAAC6F,YAAY,CACjB7F,MAAM,CAACsE,QAAQ,CACbtE,MAAM,CAAC8F,UAAU,CAAC,GAAGL,UAAU,8BAA8B,CAAC,EAC9DM,UAAU,CAACN,UAAU,CAAC,CACvB,EACDnC,SAAS,CAAC0C,OAAO,CAACP,UAAU,CAAC,CAC9B,CACF,CACF,EACDD,WAAW,CAACC,UAAU,CAAC,CACxB,EACDzF,MAAM,CAACuF,MAAM,CACd;EACH;EAEA,MAAMU,kBAAkB,GAAG,IAAAtC,cAAI,EAC7BhD,eAAe,CAACmB,GAAG,CAACqB,QAAQ,CAAC,EAC7BnD,MAAM,CAAC4D,GAAG,CAAEC,CAAC,IAAK1D,OAAO,CAAC+F,MAAM,CAACrC,CAAC,CAACgB,IAAI,CAAC,CAAC,EACzC7E,MAAM,CAACyE,OAAO,CAAEZ,CAAC,IAAM7D,MAAM,CAACmG,OAAO,CAACtC,CAAC,EAAE6B,kBAAkB,EAAE;IAAEU,WAAW,EAAE,CAAC;IAAEC,OAAO,EAAE;EAAI,CAAE,CAAE,CAAC,CAClG;EAED,SAASN,UAAUA,CAACN,UAAiC;IACnD,MAAMa,GAAG,GAAG,IAAA3C,cAAI,EACd3D,MAAM,CAACuG,EAAE,EACTvG,MAAM,CAAC8E,OAAO,CAAC9E,MAAM,CAACmE,QAAQ,CAAC,iBAAiBsB,UAAU,EAAE,CAAC,CAAC,EAC9DzF,MAAM,CAACwG,IAAI,CAAC,eAAe,EAAG3C,CAAC,IAC7B,IAAAF,cAAI,EACFR,QAAQ,EACRxC,eAAe,CAAC8F,MAAM,CAAEjC,KAAK,IAAK,CAChC,IAAAb,cAAI,EACFa,KAAK,CAACV,MAAM,EACZ3D,OAAO,CAACuG,MAAM,CAAExC,GAAG,IAAK,IAAAyC,aAAM,EAACzC,GAAG,CAAC,CAAC3D,MAAM,CAACqG,IAAI,CAACnB,UAAU,CAAC,CAAC,CAAC,EAC7DtF,OAAO,CAAC+F,MAAM,CACf,EACD;MACE,GAAG1B,KAAK;MACRK,IAAI,EAAE1E,OAAO,CAAC0G,MAAM,CAACrC,KAAK,CAACK,IAAI,EAAEY,UAAU,CAAC;MAC5C3B,MAAM,EAAE3D,OAAO,CAACyD,GAAG,CAACY,KAAK,CAACV,MAAM,EAAGD,CAAC,IAAK,IAAA8C,aAAM,EAAC9C,CAAC,CAAC,CAACtD,MAAM,CAACqG,IAAI,CAACnB,UAAU,CAAC,CAAC,GAAGlF,MAAM,CAACuG,IAAI,EAAE,GAAGjD,CAAC;KAChG,CACF,CAAC,CACH,CAAC,EACJ7D,MAAM,CAAC+G,GAAG,CAAElD,CAAC,IAAKrD,MAAM,CAACuE,OAAO,CAAC1B,SAAS,EAAErC,aAAa,CAACgG,eAAe,CAACvB,UAAU,CAAC,CAAC,CAAC,EACvFzF,MAAM,CAAC+G,GAAG,CAAElD,CAAC,IACX7D,MAAM,CAACiF,IAAI,CACTzE,MAAM,CAACuE,OAAO,CAAC1B,SAAS,EAAErC,aAAa,CAACiG,gBAAgB,CAACxB,UAAU,EAAE5B,CAAC,CAACqD,aAAa,CAAC,CAAC,EACtF,MAAM9G,OAAO,CAAC+E,IAAI,CAACtB,CAAC,CAACqD,aAAa,CAAC,GAAG,CAAC,CACxC,CACF,EACDlH,MAAM,CAAC8E,OAAO,CAAC9E,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAACoC,WAAW,CAAC,CAAC,EACtDtF,MAAM,CAAC8E,OAAO,CAAC9E,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAACgC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3D;IACD,OAAOlF,MAAM,CAACuF,MAAM,CAACvF,MAAM,CAAC2F,UAAU,CAACW,GAAG,EAAEd,WAAW,CAACC,UAAU,CAAC,CAAC,CAAC;EACvE;EAEA,SAAS0B,SAASA,CAAOC,GAAwB;IAC/C,OAAO,IAAAzD,cAAI,EACTyD,GAAG,EACHpH,MAAM,CAACqH,KAAK,CACV,IAAA1D,cAAI,EACFlD,QAAQ,CAAC6G,MAAM,CAAC7D,MAAM,CAAC8D,oBAAoB,CAAC,EAC5C9G,QAAQ,CAAC+G,OAAO,CAAC/G,QAAQ,CAACgH,MAAM,CAAChE,MAAM,CAACiE,iBAAiB,CAAC,CAAC,CAC5D,CACF,EACD1H,MAAM,CAAC2H,MAAM,CACd;EACH;EAEA,MAAMC,kBAAkB,GAAGT,SAAS,CAClC,IAAAxD,cAAI,EACFhD,eAAe,CAACmB,GAAG,CAACqB,QAAQ,CAAC,EAC7BnD,MAAM,CAACyE,OAAO,CAAED,KAAK,IAAKhB,eAAe,CAACqE,eAAe,CAACrD,KAAK,CAACV,MAAM,CAAC,CAAC,CACzE,CACF;EAED,MAAMwB,WAAW,GAAG6B,SAAS,CAC3B,IAAAxD,cAAI,EACFhD,eAAe,CAACmB,GAAG,CAACqB,QAAQ,CAAC,EAC7BnD,MAAM,CAACyE,OAAO,CAAED,KAAK,IAAKhB,eAAe,CAACsE,QAAQ,CAAC3H,OAAO,CAACyD,GAAG,CAACY,KAAK,CAACK,IAAI,EAAGkD,CAAC,IAAKA,CAAC,CAAC7D,GAAG,CAAC,CAAC,CAAC,CAC3F,CACF;EAED,SAAS8D,iBAAiBA,CACxBlE,MAAwC,EACxCI,GAAyC;IAEzC,OAAOvD,eAAe,CAACsH,YAAY,CAAC9E,QAAQ,EAAGqB,KAAK,IAAI;MACtD,IAAIjE,MAAM,CAAC2H,MAAM,CAAChE,GAAG,CAAC,IAAI,CAAC/D,OAAO,CAAC0B,GAAG,CAAC2C,KAAK,CAACK,IAAI,EAAEX,GAAG,CAACiE,KAAK,CAAC,EAAE;QAC7D,OAAOnI,MAAM,CAACoI,IAAI,CAAC,IAAInH,iBAAiB,CAACoH,8BAA8B,CAAC;UAAE5C,UAAU,EAAEvB,GAAG,CAACiE;QAAK,CAAE,CAAC,CAAC;MACrG;MACA,OAAOnI,MAAM,CAACsI,OAAO,CAAC;QACpB,GAAG9D,KAAK;QACRV,MAAM,EAAE,IAAAH,cAAI,EACVa,KAAK,CAACV,MAAM,EACZ3D,OAAO,CAACyD,GAAG,CAAC,CAAC2E,UAAU,EAAEC,KAAK,KAAKpI,OAAO,CAACyB,GAAG,CAACiC,MAAM,EAAE0E,KAAK,CAAC,GAAGtE,GAAG,GAAGqE,UAAU,CAAC;OAEpF,CAAC;IACJ,CAAC,CAAC;EACJ;EAEA,SAASrD,SAASA,CAACuD,oBAA6B;IAC9C,MAAMC,IAAI,GAAG1I,MAAM,CAAC2I,GAAG,CAAC,aAAS;MAC/B,MAAMnE,KAAK,GAAG,OAAO7D,eAAe,CAACmB,GAAG,CAACqB,QAAQ,CAAC;MAElD,MAAM,CAACyF,WAAW,EAAE1B,aAAa,CAAC,GAAGuB,oBAAoB,IAAIrI,OAAO,CAAC+E,IAAI,CAACX,KAAK,CAACY,gBAAgB,CAAC,GAAG,CAAC,GACjGyD,oCAAoC,CAACrE,KAAK,CAAC,GAC3CsE,oCAAoC,CAACtE,KAAK,EAAEf,MAAM,CAACsF,aAAa,CAAC;MAErE,MAAMC,UAAU,GAAG7I,OAAO,CAACgF,IAAI,CAACyD,WAAW,CAAC,GAAG,CAAC,IAAIzI,OAAO,CAACgF,IAAI,CAAC+B,aAAa,CAAC,GAAG,CAAC;MAEnF,IAAI8B,UAAU,EAAE;QACd,OAAOhJ,MAAM,CAACmE,QAAQ,CACpB,kCAAkC,GAAG8E,IAAI,CAACC,SAAS,CAACT,oBAAoB,CAAC,GAAG,GAAG,CAChF;MACH;MAEA,MAAMU,gBAAgB,GAAG,OAAO,IAAAxF,cAAI,EAClCvD,OAAO,CAACgJ,KAAK,CAACjJ,OAAO,CAAC+F,MAAM,CAAC0C,WAAW,CAAC,EAAEzI,OAAO,CAAC+F,MAAM,CAACgB,aAAa,CAAC,CAAC,EACzElH,MAAM,CAACmG,OAAO,CACXjC,GAAG,IACF,IAAAP,cAAI,EACFJ,MAAM,CAAC8F,IAAI,CAACnF,GAAG,CAAC,EAChBlE,MAAM,CAACsJ,OAAO,CAAC7F,MAAM,CAAC8F,WAAW,CAAC,EAClCvJ,MAAM,CAACwJ,KAAK,CAAC;QACXC,SAAS,EAAEA,CAAA,KAAM9J,KAAK,CAAC+J,YAAY,CAAC,CAACxF,GAAG,CAAC,CAAC;QAC1CyF,SAAS,EAAEA,CAAA,KAAMhK,KAAK,CAACiK,KAAK;OAC7B,CAAC,CACH,EACH;QAAExD,WAAW,EAAE;MAAS,CAAE,CAC3B,EACDpG,MAAM,CAAC4D,GAAG,CAACjE,KAAK,CAAC+J,YAAY,CAAC,EAC9B1J,MAAM,CAAC4D,GAAG,CAAEC,CAAC,IAAKlE,KAAK,CAACkK,OAAO,CAAChG,CAAC,CAAC,CAAC,EACnC7D,MAAM,CAAC4D,GAAG,CAACxD,OAAO,CAACsJ,YAAY,CAAC,CACjC;MAED,MAAMI,cAAc,GAAG,IAAAnG,cAAI,EACzBrD,IAAI,CAACoJ,YAAY,CAACd,WAAW,CAAC,EAC9BtI,IAAI,CAACyJ,SAAS,CAACzJ,IAAI,CAACoJ,YAAY,CAACxC,aAAa,CAAC,CAAC,EAChD5G,IAAI,CAACoG,MAAM,CAAC,CAAC,CAACxC,GAAG,EAAE8F,EAAE,CAAC,KAAK5J,OAAO,CAACyB,GAAG,CAACsH,gBAAgB,EAAEjF,GAAG,CAAC,CAAC,EAC9D5D,IAAI,CAACsD,GAAG,CAAC,CAAC,CAACC,CAAC,EAAEC,MAAM,CAAC,KAAKxD,IAAI,CAACoJ,YAAY,CAAC5F,MAAM,CAAC,CAAC,EACpDxD,IAAI,CAACmE,OAAO,CAAEZ,CAAC,IAAKA,CAAC,CAAC;MAAE;MACxBzD,OAAO,CAACsJ,YAAY,CACrB;MAED,MAAMO,gBAAgB,GAAG,IAAAtG,cAAI,EAC3BiF,WAAW,EACXzI,OAAO,CAACyD,GAAG,CAACxD,OAAO,CAAC8J,UAAU,CAACJ,cAAc,CAAC,CAAC,EAC/C3J,OAAO,CAACuG,MAAM,CAAEsD,EAAE,IAAK5J,OAAO,CAAC+E,IAAI,CAAC6E,EAAE,CAAC,GAAG,CAAC,CAAC,CAC7C;MAED,MAAMG,kBAAkB,GAAG,IAAAxG,cAAI,EAC7BuD,aAAa,EACb/G,OAAO,CAACyD,GAAG,CAACxD,OAAO,CAAC8J,UAAU,CAACJ,cAAc,CAAC,CAAC,EAC/C3J,OAAO,CAACuG,MAAM,CAAEsD,EAAE,IAAK5J,OAAO,CAAC+E,IAAI,CAAC6E,EAAE,CAAC,GAAG,CAAC,CAAC,CAC7C;MAED,MAAM,CAACI,oBAAoB,EAAEC,sBAAsB,CAAC,GAAG,OAAO,IAAA1G,cAAI,EAChE3D,MAAM,CAACmG,OAAO,CAACgE,kBAAkB,EAAE,CAAC,CAACjG,GAAG,EAAEJ,MAAM,CAAC,KAC/C,IAAAH,cAAI,EACFJ,MAAM,CAAC+G,cAAc,CAACpG,GAAG,EAAEJ,MAAM,CAAC,EAClC9D,MAAM,CAACsE,QAAQ,CAAC0D,iBAAiB,CAAClE,MAAM,EAAEvD,MAAM,CAACuG,IAAI,EAAE,CAAC,CAAC,EACzD9G,MAAM,CAACuK,WAAW,CAAC;QACjBd,SAAS,EAAEA,CAAA,KAAMzJ,MAAM,CAACsI,OAAO,CAAC,CAAClI,OAAO,CAACsJ,YAAY,CAAC,CAACxF,GAAG,CAAC,CAAC,EAAEJ,MAAM,CAAU,CAAC;QAC/E6F,SAAS,EAAEA,CAAA,KACT,IAAAhG,cAAI,EACFnD,MAAM,CAACuE,OAAO,CAAC1B,SAAS,EAAErC,aAAa,CAACiG,gBAAgB,CAAC/C,GAAG,EAAEJ,MAAM,CAAC,CAAC,EACtE9D,MAAM,CAACwK,EAAE,CACP,CACEpK,OAAO,CAACwJ,KAAK,EAAyB,EACtCxJ,OAAO,CAACwJ,KAAK,EAAmB,CACxB,CACX;OAEN,CAAC,CACH,EAAE;QAAExD,WAAW,EAAE;MAAS,CAAE,CAAC,EAChCpG,MAAM,CAAC4D,GAAG,CAACjE,KAAK,CAAC+J,YAAY,CAAC,EAC9B1J,MAAM,CAAC4D,GAAG,CAAEC,CAAC,IAAKlE,KAAK,CAAC8K,KAAK,CAAC5G,CAAC,CAAC,CAAC,EACjC7D,MAAM,CAAC4D,GAAG,CACR,CAAC,CAACiB,IAAI,EAAEf,MAAM,CAAC,KAAK,CAACnE,KAAK,CAACiE,GAAG,CAACiB,IAAI,EAAElF,KAAK,CAAC+J,YAAY,CAAC,EAAE/J,KAAK,CAACiE,GAAG,CAACE,MAAM,EAAEnE,KAAK,CAAC+J,YAAY,CAAC,CAAU,CAC1G,EACD1J,MAAM,CAAC4D,GAAG,CACR,CAAC,CAACiB,IAAI,EAAEf,MAAM,CAAC,KACb,CACE1D,OAAO,CAACsJ,YAAY,CAAC/J,KAAK,CAACkK,OAAO,CAAChF,IAAI,CAAC,CAAC,EACzCzE,OAAO,CAACsJ,YAAY,CAAC/J,KAAK,CAACkK,OAAO,CAAC/F,MAAM,CAAC,CAAC,CACnC,CACb,CACF;MAED;MACA,MAAM4G,mBAAmB,GAAG,IAAA/G,cAAI,EAC9BxD,OAAO,CAACwK,UAAU,CAACV,gBAAgB,EAAEG,oBAAoB,CAAC,EAC1DjK,OAAO,CAACyD,GAAG,CAAC,CAACE,MAAM,EAAEkG,EAAE,KAAK5J,OAAO,CAAC8J,UAAU,CAACpG,MAAM,EAAEuG,sBAAsB,CAAC,CAAC,CAChF;MAED;MACA,MAAMO,kBAAkB,GAAG,OAAO,IAAAjH,cAAI,EACpC3D,MAAM,CAACmG,OAAO,CAACuE,mBAAmB,EAAE,CAAC,CAACxG,GAAG,EAAEJ,MAAM,CAAC,KAChD,IAAAH,cAAI,EACFJ,MAAM,CAACsH,YAAY,CAAC3G,GAAG,EAAEJ,MAAM,CAAC,EAChC9D,MAAM,CAACsE,QAAQ,CAAC0D,iBAAiB,CAAClE,MAAM,EAAEvD,MAAM,CAACqG,IAAI,CAAC1C,GAAG,CAAC,CAAC,CAAC,EAC5DlE,MAAM,CAACuK,WAAW,CAAC;QACjBd,SAAS,EAAEA,CAAA,KAAMzJ,MAAM,CAACsI,OAAO,CAAC3I,KAAK,CAAC+J,YAAY,CAAC,CAACxF,GAAG,CAAC,CAAC,CAAC;QAC1DyF,SAAS,EAAEA,CAAA,KACT,IAAAhG,cAAI,EACFnD,MAAM,CAACuE,OAAO,CAAC1B,SAAS,EAAErC,aAAa,CAAC8J,cAAc,CAAC5G,GAAG,EAAEJ,MAAM,CAAC,CAAC,EACpE9D,MAAM,CAACwK,EAAE,CAAC7K,KAAK,CAACiK,KAAK,EAAE,CAAC;OAE7B,CAAC,CACH,EAAE;QAAExD,WAAW,EAAE;MAAS,CAAE,CAAC,EAChCpG,MAAM,CAAC4D,GAAG,CAACjE,KAAK,CAAC+J,YAAY,CAAC,EAC9B1J,MAAM,CAAC4D,GAAG,CAAEC,CAAC,IAAKlE,KAAK,CAACkK,OAAO,CAAChG,CAAC,CAAC,CAAC,EACnC7D,MAAM,CAAC4D,GAAG,CAACxD,OAAO,CAACsJ,YAAY,CAAC,CACjC;MAED,MAAMqB,UAAU,GAAG3K,OAAO,CAACgJ,KAAK,CAC9BhJ,OAAO,CAACgJ,KAAK,CAACD,gBAAgB,EAAEiB,oBAAoB,CAAC,EACrDQ,kBAAkB,CACnB;MAED;MACA,OAAO5K,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAAClD,MAAM,CAACmG,OAAO,CAAC4E,UAAU,EAAGlH,CAAC,IAAK6B,kBAAkB,CAAC7B,CAAC,CAAC,EAAE;QAAEwC,OAAO,EAAE;MAAI,CAAE,CAAC,CAAC;MAE7G,IAAIjG,OAAO,CAAC+E,IAAI,CAAC4F,UAAU,CAAC,GAAG,CAAC,EAAE;QAChC,OAAO/K,MAAM,CAACmE,QAAQ,CACpB,4BAA4B,GAC1B4G,UAAU,GACV,kBAAkB,GAAG5B,gBAAgB,GACrC,oBAAoB,GAAGyB,kBAAkB,GACzC,sBAAsB,GAAGR,oBAAoB,CAChD;MACH;MAEA;MACA,IAAIhK,OAAO,CAAC+E,IAAI,CAAC4F,UAAU,CAAC,GAAG,CAAC,IAAItC,oBAAoB,EAAE;QACxD,OAAO,IAAA9E,cAAI,EACT3D,MAAM,CAACgL,KAAK,CAACvH,MAAM,CAACwH,sBAAsB,CAAC,EAC3CjL,MAAM,CAACsE,QAAQ,CAACY,SAAS,CAACuD,oBAAoB,CAAC,CAAC,EAChDzI,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAC1B;MACH;MAEA;MACA,IAAI8F,UAAU,EAAE;QACd,OAAOhJ,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAAC0E,kBAAkB,CAAC;MACtD;IACF,CAAC,CAAC;IAEF,OAAOxE,kBAAkB,CAAC8H,WAAW,CAAC,CAAC,CAAC,CAACxC,IAAI,CAAC;EAChD;EAEA,OAAO;IACLhF,cAAc;IACdK,iBAAiB;IACjBE,QAAQ;IACR8B,UAAU;IACVT,WAAW;IACXJ,SAAS;IACTQ,kBAAkB;IAClBO;GACD;AACH;AAEA;AACM,SAAU4C,oCAAoCA,CAACrE,KAA0C;EAC7F,OAAO2G,WAAW,CAAC7K,IAAI,CAACoJ,YAAY,CAAClF,KAAK,CAACY,gBAAgB,CAAC,EAAEZ,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC/E;AAEA;AACM,SAAUsE,oCAAoCA,CAClDtE,KAA0C,EAC1CuE,aAAqB;EAErB;EACA,MAAMqC,qBAAqB,GAAG5G,KAAK,CAAC6G,qBAAqB,GACrD,IAAA1H,cAAI,EACJa,KAAK,CAAC8G,YAAY,EAClBnL,OAAO,CAACsE,OAAO,CAAC,CAACX,MAAM,EAAED,CAAC,KAAI;IAC5B;IACA,MAAM0H,WAAW,GAAGC,IAAI,CAACC,GAAG,CAACrL,OAAO,CAAC+E,IAAI,CAACrB,MAAM,CAAC,GAAGU,KAAK,CAACkH,mBAAmB,CAACvD,KAAK,EAAE,CAAC,CAAC;IACvF,OAAO,IAAAxE,cAAI,EACTxD,OAAO,CAACyJ,KAAK,EAAE,EACfzJ,OAAO,CAACsC,GAAG,CAACoB,CAAC,EAAEzD,OAAO,CAACsJ,YAAY,CAACpJ,IAAI,CAACqL,IAAI,CAACrL,IAAI,CAACoJ,YAAY,CAAC5F,MAAM,CAAC,EAAEyH,WAAW,CAAC,CAAC,CAAC,CACxF;EACH,CAAC,CAAC,EACFnL,OAAO,CAACsJ,YAAY,EACpBtJ,OAAO,CAACwD,GAAG,CAAEC,CAAC,IAAKA,CAAC,CAAC,CAAC,CAAC,CAAC,EACxBzD,OAAO,CAACqE,OAAO,CAAEZ,CAAC,IAAKA,CAAC,CAAC,CAC1B,GACCzD,OAAO,CAACwJ,KAAK,EAAE;EAEnB;;;;;;;;;;;;EAaA,MAAMgC,uBAAuB,GAAGtL,IAAI,CAACoJ,YAAY,CAAC0B,qBAAqB,CAAC;EACxE,OAAOD,WAAW,CAACS,uBAAuB,EAAEpH,KAAK,EAAE,KAAK,EAAEuE,aAAa,CAAC;AAC1E;AAEA,SAASoC,WAAWA,CAClBU,iBAA6C,EAC7CrH,KAA0C,EAC1CiE,oBAA6B,EAC7BM,aAAqB;EAKrB,MAAM,CAAClF,CAAC,EAAE+E,WAAW,CAAC,GAAG,IAAAjF,cAAI,EAC3BrD,IAAI,CAACwL,MAAM,CACTD,iBAAiB,EACjB,CACErH,KAAK,CAAC8G,YAAY,EAClBhL,IAAI,CAACsJ,KAAK,EAAqD,CACvD,EACV,CAAC,CAAC0B,YAAY,EAAE1C,WAAW,CAAC,EAAEJ,KAAK,KAAI;IACrC,MAAMuD,cAAc,GAAG,IAAApI,cAAI,EACzBiF,WAAW,EACXtI,IAAI,CAACmE,OAAO,CAAC,CAAC,CAAC+D,KAAK,EAAE3E,CAAC,CAAC,KACtB,IAAAF,cAAI,EACFxD,OAAO,CAAC2B,GAAG,CAAC0C,KAAK,CAACV,MAAM,EAAE0E,KAAK,CAAC,EAChCjI,MAAM,CAACsJ,OAAO,EACdtJ,MAAM,CAACyL,OAAO,EACd1L,IAAI,CAACoJ,YAAY,CAClB,CACF,CACF;IAED;IACA,OAAO,IAAA/F,cAAI;IACT;IACAxD,OAAO,CAACuG,MAAM,CAAC4E,YAAY,EAAE,CAACzH,CAAC,EAAEK,GAAG,KAAI;MACtC,MAAM+H,UAAU,GAAGzH,KAAK,CAACyH,UAAU;MACnC,IAAI1L,MAAM,CAAC2L,MAAM,CAACD,UAAU,CAAC,EAAE,OAAO,IAAI;MAC1C,OAAO,IAAAtI,cAAI,EACTxD,OAAO,CAAC2B,GAAG,CAAC0C,KAAK,CAACK,IAAI,EAAEX,GAAG,CAAC,EAC5B3D,MAAM,CAACqD,GAAG,CAACzC,eAAe,CAACgL,cAAc,CAAC,EAC1C5L,MAAM,CAACqD,GAAG,CAAEC,CAAC,IAAK1C,eAAe,CAACiL,cAAc,CAACvI,CAAC,EAAEoI,UAAU,CAAC9D,KAAK,CAAC,KAAK,CAAC,CAAC,EAC5E5H,MAAM,CAAC8L,SAAS,CAAC,MAAM,KAAK,CAAC,CAC9B;IACH,CAAC,CAAC;IACF;IACAlM,OAAO,CAACuG,MAAM,CAAC,CAAC7C,CAAC,EAAEK,GAAG,KAAI;MACxB,IAAIuE,oBAAoB,EAAE,OAAO,IAAI;MACrC,OACE,IAAA9E,cAAI,EACFiF,WAAW,EACXtI,IAAI,CAACoG,MAAM,CAAC,CAAC,CAAC7C,CAAC,EAAEyI,CAAC,CAAC,KAAK,IAAA3F,aAAM,EAAC2F,CAAC,CAAC,CAACpI,GAAG,CAAC,CAAC,EACvC5D,IAAI,CAAC6E,IAAI,CACV,GACChF,OAAO,CAACgF,IAAI,CAACX,KAAK,CAACV,MAAM,CAAC,GAAGiF,aAAa;IAEhD,CAAC,CAAC;IACF;IACA5I,OAAO,CAACuG,MAAM,CACZ,CAAC7C,CAAC,EAAEK,GAAG,KAAK,CAAC3D,MAAM,CAAC2H,MAAM,CAAC5H,IAAI,CAACiM,SAAS,CAACR,cAAc,EAAE,IAAApF,aAAM,EAACzC,GAAG,CAAC,CAAC,CAAC,CACxE,EACD,IAAAsI,kBAAW,EAAC,CAAC,CAAC3I,CAAC,EAAEgB,IAAI,CAAC,KAAKzE,OAAO,CAAC+E,IAAI,CAACN,IAAI,CAAC,CAAC,EAC9CtE,MAAM,CAACiJ,KAAK,CAAC;MACXiD,MAAM,EAAEA,CAAA,KAAM,CAACnB,YAAY,EAAE1C,WAAW,CAAU;MAClD8D,MAAM,EAAEA,CAAC,CAACxI,GAAG,EAAEJ,MAAM,CAAC,KAAI;QACxB,MAAM6I,MAAM,GAAGpM,MAAM,CAACsJ,OAAO,CAAC1J,OAAO,CAAC2B,GAAG,CAAC0C,KAAK,CAACV,MAAM,EAAE0E,KAAK,CAAC,CAAC;QAC/D;QACA,IAAI,IAAA7B,aAAM,EAACgG,MAAM,CAAC,CAACzI,GAAG,CAAC,EAAE;UACvB,OAAO,CAACoH,YAAY,EAAE1C,WAAW,CAAU;UAC3C;QACF,CAAC,MAAM,IACLrI,MAAM,CAACiJ,KAAK,CAACrJ,OAAO,CAAC2B,GAAG,CAACwJ,YAAY,EAAEpH,GAAG,CAAC,EAAE;UAAEuI,MAAM,EAAEA,CAAA,KAAM,CAAC;UAAEC,MAAM,EAAEtM,OAAO,CAAC+E;QAAI,CAAE,CAAC,GAAG,CAAC,IACzF5E,MAAM,CAACiJ,KAAK,CACVmD,MAAM,EACN;UACEF,MAAM,EAAEA,CAAA,KAAMG,MAAM,CAACC,gBAAgB;UACrCH,MAAM,EAAG7I,CAAC,IACRtD,MAAM,CAACiJ,KAAK,CAACrJ,OAAO,CAAC2B,GAAG,CAACwJ,YAAY,EAAEzH,CAAC,CAAC,EAAE;YAAE4I,MAAM,EAAEA,CAAA,KAAM,CAAC;YAAEC,MAAM,EAAEtM,OAAO,CAAC+E;UAAI,CAAE;SACvF,CACF,EACH;UACA,OAAO,CAACmG,YAAY,EAAE1C,WAAW,CAAU;UAE3C;QACF,CAAC,MAAM;UACL,MAAMkE,UAAU,GAAGvM,MAAM,CAACiJ,KAAK,CAC7BmD,MAAM,EACN;YACEF,MAAM,EAAEA,CAAA,KAAMnB,YAAY;YAC1BoB,MAAM,EAAGC,MAAM,IAAKxM,OAAO,CAACsG,MAAM,CAAC6E,YAAY,EAAEqB,MAAM,EAAEvM,OAAO,CAACyG,MAAM,CAAC2B,KAAK,CAAC;WAC/E,CACF;UACD,OAAO,CACLrI,OAAO,CAACsG,MAAM,CAACqG,UAAU,EAAE5I,GAAG,EAAGL,CAAC,IAAKzD,OAAO,CAAC2M,GAAG,CAACjJ,MAAM,EAAE0E,KAAK,CAAC,CAAC,EAClElI,IAAI,CAAC0M,OAAO,CAACpE,WAAW,EAAE,CAACJ,KAAK,EAAEtE,GAAG,CAAU,CAAC,CACxC;QACZ;MACF;KACD,CAAC,CACH;EACH,CAAC,CACF,CACF;EAED,MAAMgD,aAAa,GAAG5G,IAAI,CAACmE,OAAO,CAACmE,WAAW,EAAE,CAAC,CAACJ,KAAK,EAAE3E,CAAC,CAAC,KACzD,IAAAF,cAAI,EACFpD,MAAM,CAACsJ,OAAO,CAAC1J,OAAO,CAAC2B,GAAG,CAAC0C,KAAK,CAACV,MAAM,EAAE0E,KAAK,CAAC,CAAC,EAChDjI,MAAM,CAACqD,GAAG,CAAEC,CAAC,IAAK,CAAC2E,KAAK,EAAE3E,CAAC,CAAU,CAAC,EACtCtD,MAAM,CAACiJ,KAAK,CAAC;IAAEiD,MAAM,EAAEnM,IAAI,CAACsJ,KAAK;IAAE8C,MAAM,EAAEpM,IAAI,CAAC2M;EAAE,CAAE,CAAC,CACtD,CAAC;EAEJ,MAAMC,iBAAiB,GAAG,IAAAvJ,cAAI,EAC5BiF,WAAW,EACX,IAAAuE,cAAO,EAAC,CAAC,CAACtJ,CAAC,EAAEK,GAAG,CAAC,KAAKA,GAAG,CAAC,EAC1B/D,OAAO,CAACyD,GAAG,CAACxD,OAAO,CAACwD,GAAG,CAAC,CAAC,CAACwJ,OAAO,EAAEvJ,CAAC,CAAC,KAAKuJ,OAAO,CAAC,CAAC,CACpD;EACD,MAAMC,mBAAmB,GAAG,IAAA1J,cAAI,EAC9BuD,aAAa,EACb,IAAAiG,cAAO,EAAC,CAAC,CAACtJ,CAAC,EAAEK,GAAG,CAAC,KAAKA,GAAG,CAAC,EAC1B/D,OAAO,CAACyD,GAAG,CAACxD,OAAO,CAACwD,GAAG,CAAC,CAAC,CAACwJ,OAAO,EAAEvJ,CAAC,CAAC,KAAKuJ,OAAO,CAAC,CAAC,CACpD;EACD,OAAO,CAACF,iBAAiB,EAAEG,mBAAmB,CAAU;AAC1D;AAEA;;;;AAIO,MAAMC,IAAI,GAAA1K,OAAA,CAAA0K,IAAA,gBAAGtN,MAAM,CAAC2I,GAAG,CAAC,aAAS;EACtC,MAAMlF,MAAM,GAAG,OAAO7C,aAAa,CAACA,aAAa;EACjD,MAAM4C,eAAe,GAAG,OAAOtC,OAAO,CAACA,OAAO;EAC9C,MAAMoC,SAAS,GAAG,OAAOxC,UAAU,CAACA,UAAU;EAC9C,MAAMyM,OAAO,GAAG,OAAO1M,IAAI,CAACA,IAAI;EAChC,MAAMqC,UAAU,GAAG,OAAOlD,MAAM,CAACwN,KAAK;EAEtC,MAAM3I,IAAI,GAAG,OAAOrB,eAAe,CAACiK,OAAO;EAC3C,MAAM7E,WAAW,GAAG,OAAOpF,eAAe,CAACE,cAAc;EAEzD,MAAMgK,YAAY,GAAG,OAAO,IAAA/J,cAAI,EAC9B3D,MAAM,CAAC0G,MAAM,CAAC7B,IAAI,EAAE,CAAC,CAACY,UAAU,CAAC,KAAKnC,SAAS,CAAC0C,OAAO,CAACP,UAAU,CAAC,EAAE;IAAEW,WAAW,EAAE;EAAS,CAAE,CAAC,EAChGpG,MAAM,CAAC4D,GAAG,CAACzD,OAAO,CAACuJ,YAAY,CAAC,CACjC;EACD,MAAMgB,mBAAmB,GAAGvK,OAAO,CAACuG,MAAM,CACxCkC,WAAW,EACV1E,GAAG,IAAK3D,MAAM,CAAC2H,MAAM,CAAChE,GAAG,CAAC,IAAI/D,OAAO,CAAC0B,GAAG,CAAC6L,YAAY,EAAExJ,GAAG,CAACiE,KAAK,CAAC,CACpE;EACD,MAAMvD,GAAG,GAAG,OAAO9E,KAAK,CAAC6E,iBAAiB;EAC1C,MAAMgJ,YAAY,GAAGvM,iBAAiB,CAAC6B,IAAI,CACzC9C,OAAO,CAACyD,GAAG,CAAC8J,YAAY,EAAGxJ,GAAG,IAAK/C,eAAe,CAAC8B,IAAI,CAACiB,GAAG,EAAEU,GAAG,CAAC,CAAC,EAClEzE,OAAO,CAACiJ,KAAK,CACXsB,mBAAmB,EACnB,IAAA/G,cAAI,EACFhE,KAAK,CAACiO,KAAK,CAAC,CAAC,EAAEnK,MAAM,CAACoK,cAAc,CAAC,EACrClO,KAAK,CAACiE,GAAG,CAAE7B,CAAC,IAAK,CAAChB,OAAO,CAACkC,IAAI,CAAClB,CAAC,CAAC,EAAExB,MAAM,CAACuG,IAAI,EAAE,CAAU,CAAC,EAC3D3G,OAAO,CAACuJ,YAAY,CACrB,CACF,CACF;EACD,MAAMlF,KAAK,GAAG,OAAO7D,eAAe,CAACsC,IAAI,CAAC0K,YAAY,CAAC;EACvD,MAAMvK,kBAAkB,GAAG,OAAOpD,MAAM,CAAC8N,aAAa,CAAC,CAAC,CAAC;EACzD,MAAMzK,SAAS,GAAG,OAAO7C,MAAM,CAACuN,SAAS,EAA+B;EACxE,MAAMC,YAAY,GAAG/K,IAAI,CACvBC,UAAU,EACVsB,KAAK,EACLpB,kBAAkB,EAClBC,SAAS,EACTC,SAAS,EACTiK,OAAO,EACP/J,eAAe,EACfC,MAAM,CACP;EACD,OAAOzD,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAAC8K,YAAY,CAAC1I,WAAW,CAAC;EAC1D;EACA,OAAO0I,YAAY,CAAC9I,SAAS,CAAC9E,OAAO,CAAC+E,IAAI,CAACwI,YAAY,CAACvI,gBAAgB,CAAC,GAAG,CAAC,CAAC;EAC9E;EACA,OAAO,IAAAzB,cAAI,EACTqK,YAAY,CAAC9I,SAAS,CAAC,KAAK,CAAC,EAC7BlF,MAAM,CAACiO,MAAM,CAACxN,QAAQ,CAAC6G,MAAM,CAAC7D,MAAM,CAACyK,iBAAiB,CAAC,CAAC,EACxDlO,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAC1B;EACD;EACA,OAAO,IAAAS,cAAI,EACTqK,YAAY,CAACjK,iBAAiB,EAC9BrD,MAAM,CAACyN,SAAS,CAAEtK,CAAC,IAAK7D,MAAM,CAACmE,QAAQ,CAAC8E,IAAI,CAACC,SAAS,CAACrF,CAAC,CAAC,CAAC,CAAC,EAC3DnD,MAAM,CAAC0N,QAAQ,EACfpO,MAAM,CAACqF,MAAM,CAACnC,UAAU,CAAC,CAC1B;EACD,OAAOlD,MAAM,CAACmE,QAAQ,CAAC,sBAAsB,CAAC;EAC9C,OAAO6J,YAAY;AACrB,CAAC,CAAC,CAACrK,IAAI,eAACtD,KAAK,CAACgO,MAAM,CAACtL,eAAe,CAAC,CAAC","ignoreList":[]}
|
1
|
+
{"version":3,"file":"shardManager.js","names":["Arr","_interopRequireWildcard","require","Clock","Effect","_Function","MutableHashMap","MutableHashSet","Option","Order","_RunnerHealth","_ShardId","_ShardStorage","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","State","runners","shards","fromStorage","fnUntraced","numberOfShards","storage","ShardStorage","runnerHealth","RunnerHealth","storedRunners","getRunners","storedAssignments","getAssignments","deadRunners","empty","aliveRunners","forEach","address","runner","map","isAlive","push","concurrency","discard","length","logWarning","assignedShards","Map","invalidAssignments","shard","isSome","value","now","currentTimeMillis","runnerState","RunnerWithMetadata","registeredAt","shardState","shardId","ShardId","make","fromNullable","constructor","maxVersion","size","none","version","undefined","meta","some","allRunnersHaveVersion","pipe","max","every","runnerVersions","getOrElse","constFalse","shardsPerRunner","isEmpty","_","Set","isNone","shardIds","getOrUndefined","add","averageShardsPerRunner","runnerCount","unassignedShards","exports","decideAssignmentsForUnassignedShards","state","pickNewRunners","allocationOrder","combine","mapInput","number","decideAssignmentsForUnbalancedShards","rate","extraShardsToAllocate","extraShards","Math","takeRandom","maybeAddress","Number","MIN_SAFE_INTEGER","match","onNone","onSome","sortedShardsToRebalance","sort","shardsToRebalance","immediate","maybeMaxVersion","addressAssignments","unassignments","changes","candidate","candidateShards","maybeRunnerMeta","runnerMeta","assignmentCount","oldRunner","toString","oldShards","modifyAt","delete","self","array","Array","from","currentIndex","randomIndex","floor","random","swap","slice","j","tmp"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|