@effect/cluster 0.37.2 → 0.38.1
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/ClusterCron/package.json +6 -0
- package/dist/cjs/ClusterCron.js +86 -0
- package/dist/cjs/ClusterCron.js.map +1 -0
- package/dist/cjs/ClusterSchema.js +9 -1
- package/dist/cjs/ClusterSchema.js.map +1 -1
- package/dist/cjs/ClusterWorkflowEngine.js +21 -6
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/Entity.js +6 -1
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/EntityAddress.js +8 -1
- package/dist/cjs/EntityAddress.js.map +1 -1
- package/dist/cjs/MessageStorage.js +6 -4
- package/dist/cjs/MessageStorage.js.map +1 -1
- package/dist/cjs/Runner.js +15 -0
- package/dist/cjs/Runner.js.map +1 -1
- package/dist/cjs/RunnerAddress.js +8 -1
- package/dist/cjs/RunnerAddress.js.map +1 -1
- package/dist/cjs/Runners.js +5 -0
- package/dist/cjs/Runners.js.map +1 -1
- package/dist/cjs/ShardId.js +75 -7
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/ShardManager.js +63 -43
- package/dist/cjs/ShardManager.js.map +1 -1
- package/dist/cjs/ShardStorage.js +48 -35
- package/dist/cjs/ShardStorage.js.map +1 -1
- package/dist/cjs/Sharding.js +45 -37
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +9 -2
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/Singleton.js +2 -2
- package/dist/cjs/Singleton.js.map +1 -1
- package/dist/cjs/SingletonAddress.js +2 -2
- package/dist/cjs/SingletonAddress.js.map +1 -1
- package/dist/cjs/SqlMessageStorage.js +32 -27
- package/dist/cjs/SqlMessageStorage.js.map +1 -1
- package/dist/cjs/SqlShardStorage.js +14 -14
- package/dist/cjs/SqlShardStorage.js.map +1 -1
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/internal/entityManager.js +2 -1
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/cjs/internal/shardManager.js +138 -37
- package/dist/cjs/internal/shardManager.js.map +1 -1
- package/dist/dts/ClusterCron.d.ts +37 -0
- package/dist/dts/ClusterCron.d.ts.map +1 -0
- package/dist/dts/ClusterSchema.d.ts +8 -0
- package/dist/dts/ClusterSchema.d.ts.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/Entity.d.ts +10 -0
- package/dist/dts/Entity.d.ts.map +1 -1
- package/dist/dts/EntityAddress.d.ts +9 -3
- package/dist/dts/EntityAddress.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts +3 -3
- package/dist/dts/MessageStorage.d.ts.map +1 -1
- package/dist/dts/Runner.d.ts +15 -0
- package/dist/dts/Runner.d.ts.map +1 -1
- package/dist/dts/RunnerAddress.d.ts +5 -0
- package/dist/dts/RunnerAddress.d.ts.map +1 -1
- package/dist/dts/Runners.d.ts.map +1 -1
- package/dist/dts/ShardId.d.ts +60 -6
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/ShardManager.d.ts +13 -13
- package/dist/dts/ShardManager.d.ts.map +1 -1
- package/dist/dts/ShardStorage.d.ts +11 -14
- package/dist/dts/ShardStorage.d.ts.map +1 -1
- package/dist/dts/Sharding.d.ts +4 -2
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +32 -6
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/Singleton.d.ts +3 -1
- package/dist/dts/Singleton.d.ts.map +1 -1
- package/dist/dts/SingletonAddress.d.ts +4 -3
- package/dist/dts/SingletonAddress.d.ts.map +1 -1
- package/dist/dts/SqlMessageStorage.d.ts +3 -2
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
- package/dist/dts/SqlShardStorage.d.ts +1 -1
- package/dist/dts/index.d.ts +4 -0
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/ClusterCron.js +77 -0
- package/dist/esm/ClusterCron.js.map +1 -0
- package/dist/esm/ClusterSchema.js +7 -0
- package/dist/esm/ClusterSchema.js.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +21 -6
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/Entity.js +6 -1
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/EntityAddress.js +8 -1
- package/dist/esm/EntityAddress.js.map +1 -1
- package/dist/esm/MessageStorage.js +6 -4
- package/dist/esm/MessageStorage.js.map +1 -1
- package/dist/esm/Runner.js +15 -0
- package/dist/esm/Runner.js.map +1 -1
- package/dist/esm/RunnerAddress.js +8 -1
- package/dist/esm/RunnerAddress.js.map +1 -1
- package/dist/esm/Runners.js +5 -0
- package/dist/esm/Runners.js.map +1 -1
- package/dist/esm/ShardId.js +73 -6
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/ShardManager.js +64 -45
- package/dist/esm/ShardManager.js.map +1 -1
- package/dist/esm/ShardStorage.js +47 -35
- package/dist/esm/ShardStorage.js.map +1 -1
- package/dist/esm/Sharding.js +45 -37
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +9 -2
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/Singleton.js +2 -2
- package/dist/esm/Singleton.js.map +1 -1
- package/dist/esm/SingletonAddress.js +2 -2
- package/dist/esm/SingletonAddress.js.map +1 -1
- package/dist/esm/SqlMessageStorage.js +32 -27
- package/dist/esm/SqlMessageStorage.js.map +1 -1
- package/dist/esm/SqlShardStorage.js +14 -14
- package/dist/esm/SqlShardStorage.js.map +1 -1
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/entityManager.js +2 -1
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/dist/esm/internal/shardManager.js +136 -36
- package/dist/esm/internal/shardManager.js.map +1 -1
- package/package.json +12 -4
- package/src/ClusterCron.ts +129 -0
- package/src/ClusterSchema.ts +9 -0
- package/src/ClusterWorkflowEngine.ts +37 -6
- package/src/Entity.ts +20 -1
- package/src/EntityAddress.ts +11 -1
- package/src/MessageStorage.ts +12 -7
- package/src/Runner.ts +18 -0
- package/src/RunnerAddress.ts +9 -1
- package/src/Runners.ts +5 -0
- package/src/ShardId.ts +81 -11
- package/src/ShardManager.ts +74 -45
- package/src/ShardStorage.ts +57 -49
- package/src/Sharding.ts +45 -39
- package/src/ShardingConfig.ts +36 -7
- package/src/Singleton.ts +5 -2
- package/src/SingletonAddress.ts +2 -2
- package/src/SqlMessageStorage.ts +36 -30
- package/src/SqlShardStorage.ts +15 -15
- package/src/index.ts +5 -0
- package/src/internal/entityManager.ts +2 -1
- package/src/internal/shardManager.ts +158 -52
@@ -53,19 +53,19 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
53
53
|
mssql: () => sql`
|
54
54
|
IF OBJECT_ID(N'${shardsTableSql}', N'U') IS NULL
|
55
55
|
CREATE TABLE ${shardsTableSql} (
|
56
|
-
shard_id
|
56
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
57
57
|
address VARCHAR(255)
|
58
58
|
)
|
59
59
|
`,
|
60
60
|
mysql: () => sql`
|
61
61
|
CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
|
62
|
-
shard_id
|
62
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
63
63
|
address VARCHAR(255)
|
64
64
|
)
|
65
65
|
`,
|
66
66
|
pg: () => sql`
|
67
67
|
CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
|
68
|
-
shard_id
|
68
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
69
69
|
address VARCHAR(255)
|
70
70
|
)
|
71
71
|
`,
|
@@ -73,7 +73,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
73
73
|
// sqlite
|
74
74
|
sql`
|
75
75
|
CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
|
76
|
-
shard_id
|
76
|
+
shard_id TEXT PRIMARY KEY,
|
77
77
|
address TEXT
|
78
78
|
)
|
79
79
|
`
|
@@ -84,21 +84,21 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
84
84
|
mssql: () => sql`
|
85
85
|
IF OBJECT_ID(N'${locksTableSql}', N'U') IS NULL
|
86
86
|
CREATE TABLE ${locksTableSql} (
|
87
|
-
shard_id
|
87
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
88
88
|
address VARCHAR(255) NOT NULL,
|
89
89
|
acquired_at DATETIME NOT NULL
|
90
90
|
)
|
91
91
|
`,
|
92
92
|
mysql: () => sql`
|
93
93
|
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
94
|
-
shard_id
|
94
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
95
95
|
address VARCHAR(255) NOT NULL,
|
96
96
|
acquired_at DATETIME NOT NULL
|
97
97
|
)
|
98
98
|
`,
|
99
99
|
pg: () => sql`
|
100
100
|
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
101
|
-
shard_id
|
101
|
+
shard_id VARCHAR(50) PRIMARY KEY,
|
102
102
|
address VARCHAR(255) NOT NULL,
|
103
103
|
acquired_at TIMESTAMP NOT NULL
|
104
104
|
)
|
@@ -107,7 +107,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
107
107
|
// sqlite
|
108
108
|
sql`
|
109
109
|
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
110
|
-
shard_id
|
110
|
+
shard_id TEXT PRIMARY KEY,
|
111
111
|
address TEXT NOT NULL,
|
112
112
|
acquired_at DATETIME NOT NULL
|
113
113
|
)
|
@@ -121,7 +121,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
121
121
|
});
|
122
122
|
const sqlNow = sql.literal(sqlNowString);
|
123
123
|
const lockExpiresAt = sql.onDialectOrElse({
|
124
|
-
pg: () => sql`${sqlNow} - INTERVAL '
|
124
|
+
pg: () => sql`${sqlNow} - INTERVAL '10 seconds'`,
|
125
125
|
mysql: () => sql`DATE_SUB(${sqlNow}, INTERVAL 5 SECOND)`,
|
126
126
|
mssql: () => sql`DATEADD(SECOND, -5, ${sqlNow})`,
|
127
127
|
orElse: () => sql`datetime(${sqlNow}, '-5 seconds')`
|
@@ -171,7 +171,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
171
171
|
sqlite: () => sql.literal(""),
|
172
172
|
orElse: () => sql.literal("FOR UPDATE")
|
173
173
|
});
|
174
|
-
return
|
174
|
+
return ShardStorage.makeEncoded({
|
175
175
|
getAssignments: sql`SELECT shard_id, address FROM ${shardsTableSql} ORDER BY shard_id`.values.pipe(PersistenceError.refail, withTracerDisabled),
|
176
176
|
saveAssignments: assignments => {
|
177
177
|
const remove = sql`DELETE FROM ${shardsTableSql}`;
|
@@ -196,12 +196,12 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
196
196
|
yield* acquireLock(address, values);
|
197
197
|
const currentLocks = yield* sql`
|
198
198
|
SELECT shard_id FROM ${sql(locksTable)}
|
199
|
-
WHERE address = ${address} AND ${
|
199
|
+
WHERE address = ${address} AND acquired_at >= ${lockExpiresAt}
|
200
200
|
${forUpdate}
|
201
|
-
|
202
|
-
return currentLocks.map(row => row
|
201
|
+
`.values;
|
202
|
+
return currentLocks.map(row => row[0]);
|
203
203
|
}, sql.withTransaction, PersistenceError.refail, withTracerDisabled),
|
204
|
-
refresh: (address, shardIds) => sql`UPDATE ${locksTableSql} SET acquired_at = ${sqlNow} WHERE address = ${address} AND ${sql.in("shard_id", shardIds)}`.pipe(Effect.andThen(sql`SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND acquired_at >= ${lockExpiresAt} ${forUpdate}`.values), Effect.map(rows => rows.map(row =>
|
204
|
+
refresh: (address, shardIds) => sql`UPDATE ${locksTableSql} SET acquired_at = ${sqlNow} WHERE address = ${address} AND ${sql.in("shard_id", shardIds)}`.pipe(Effect.andThen(sql`SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND acquired_at >= ${lockExpiresAt} ${forUpdate}`.values), Effect.map(rows => rows.map(row => row[0])), PersistenceError.refail, withTracerDisabled),
|
205
205
|
release: (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(PersistenceError.refail, withTracerDisabled),
|
206
206
|
releaseAll: address => sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(PersistenceError.refail, withTracerDisabled)
|
207
207
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"SqlShardStorage.js","names":["SqlClient","Arr","Effect","Layer","PersistenceError","ShardStorage","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","sql","withoutTransforms","prefix","table","name","runnersTable","runnersTableSql","onDialectOrElse","mssql","mysql","pg","orElse","shardsTable","shardsTableSql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","lockExpiresAt","acquireLock","address","values","csv","_address","unprepared","forUpdate","sqlite","makeEncoded","getAssignments","pipe","refail","saveAssignments","assignments","remove","length","map","shardId","andThen","withTransaction","getRunners","runner","String","saveRunners","runners","insert","acquire","shardIds","currentLocks","
|
1
|
+
{"version":3,"file":"SqlShardStorage.js","names":["SqlClient","Arr","Effect","Layer","PersistenceError","ShardStorage","withTracerDisabled","withTracerEnabled","make","fnUntraced","options","sql","withoutTransforms","prefix","table","name","runnersTable","runnersTableSql","onDialectOrElse","mssql","mysql","pg","orElse","shardsTable","shardsTableSql","locksTable","locksTableSql","sqlNowString","sqlNow","literal","lockExpiresAt","acquireLock","address","values","csv","_address","unprepared","forUpdate","sqlite","makeEncoded","getAssignments","pipe","refail","saveAssignments","assignments","remove","length","map","shardId","andThen","withTransaction","getRunners","runner","String","saveRunners","runners","insert","acquire","shardIds","currentLocks","row","refresh","in","rows","release","releaseAll","layer","effect","layerWith","scoped"],"sources":["../../src/SqlShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","names":["ClusterError","ClusterMetrics","ClusterSchema","ClusterWorkflowEngine","DeliverAt","Entity","EntityAddress","EntityId","EntityType","Envelope","HttpCommon","HttpRunner","HttpShardManager","MachineId","Message","MessageStorage","Reply","Runner","RunnerAddress","RunnerHealth","RunnerServer","Runners","ShardId","ShardManager","ShardStorage","Sharding","ShardingConfig","ShardingRegistrationEvent","Singleton","SingletonAddress","Snowflake","SocketRunner","SocketShardManager","SqlMessageStorage","SqlShardStorage","SynchronizedClock"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,qBAAqB,MAAM,4BAA4B;AAEnE;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,yBAAyB,MAAM,gCAAgC;AAE3E;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
|
1
|
+
{"version":3,"file":"index.js","names":["ClusterCron","ClusterError","ClusterMetrics","ClusterSchema","ClusterWorkflowEngine","DeliverAt","Entity","EntityAddress","EntityId","EntityType","Envelope","HttpCommon","HttpRunner","HttpShardManager","MachineId","Message","MessageStorage","Reply","Runner","RunnerAddress","RunnerHealth","RunnerServer","Runners","ShardId","ShardManager","ShardStorage","Sharding","ShardingConfig","ShardingRegistrationEvent","Singleton","SingletonAddress","Snowflake","SocketRunner","SocketShardManager","SqlMessageStorage","SqlShardStorage","SynchronizedClock"],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAGA,OAAO,KAAKA,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,qBAAqB,MAAM,4BAA4B;AAEnE;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,KAAK,MAAM,YAAY;AAEnC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,aAAa,MAAM,oBAAoB;AAEnD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,cAAc,MAAM,qBAAqB;AAErD;;;AAGA,OAAO,KAAKC,yBAAyB,MAAM,gCAAgC;AAE3E;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,gBAAgB,MAAM,uBAAuB;AAEzD;;;AAGA,OAAO,KAAKC,SAAS,MAAM,gBAAgB;AAE3C;;;AAGA,OAAO,KAAKC,YAAY,MAAM,mBAAmB;AAEjD;;;AAGA,OAAO,KAAKC,kBAAkB,MAAM,yBAAyB;AAE7D;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB;AAE3D;;;AAGA,OAAO,KAAKC,eAAe,MAAM,sBAAsB;AAEvD;;;AAGA,OAAO,KAAKC,iBAAiB,MAAM,wBAAwB","ignoreList":[]}
|
@@ -5,6 +5,7 @@ import * as Cause from "effect/Cause";
|
|
5
5
|
import * as Context from "effect/Context";
|
6
6
|
import * as Duration from "effect/Duration";
|
7
7
|
import * as Effect from "effect/Effect";
|
8
|
+
import * as Equal from "effect/Equal";
|
8
9
|
import * as Exit from "effect/Exit";
|
9
10
|
import * as FiberRef from "effect/FiberRef";
|
10
11
|
import { identity } from "effect/Function";
|
@@ -255,7 +256,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (entity, buildHandl
|
|
255
256
|
const interruptShard = shardId => Effect.suspend(function loop() {
|
256
257
|
const toInterrupt = new Set();
|
257
258
|
for (const state of activeServers.values()) {
|
258
|
-
if (shardId
|
259
|
+
if (shardId[Equal.symbol](state.address.shardId)) {
|
259
260
|
toInterrupt.add(state);
|
260
261
|
}
|
261
262
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","Uninterruptible","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","activeServers","Map","entities","address","sharding","isShutdown","endLatch","makeLatch","addFinalizer","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","concurrency","onFromServer","response","_tag","request","get","requestId","void","sentReply","rpc","annotations","isInterrupted","exit","retryRespond","suspend","message","respond","WithExit","id","unsafeNext","flatMap","delete","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","lastSentChunk","some","effect","unsafeRebuild","Array","keys","logError","die","defect","andThen","tapErrorCause","retry","spaced","annotateLogs","module","runner","open","extend","sync","write","envelope","tag","payload","mailboxGauge","mailboxSize","tagged","clientId","current","await","value","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","set","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","unsafeUpdate","BigInt","sleep","forever","forkIn","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","shardId","loop","toInterrupt","Set","forEach","removeIgnore","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","undefined","excludeReplies","send","matchEffect","onFailure","cause","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","push","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"entityManager.js","names":["RequestId","RpcServer","Arr","Cause","Context","Duration","Effect","Equal","Exit","FiberRef","identity","HashMap","Metric","Option","Schedule","Schema","Scope","AlreadyProcessingMessage","EntityNotAssignedToRunner","MailboxFull","MalformedMessage","ClusterMetrics","Persisted","Uninterruptible","CurrentAddress","CurrentRunnerAddress","Request","Envelope","Message","MessageStorage","Reply","ShardingConfig","Snowflake","EntityReaper","internalInterruptors","ResourceMap","ResourceRef","make","fnUntraced","entity","buildHandlers","options","config","snowflakeGen","Generator","managerScope","scope","storageEnabled","storage","noop","mailboxCapacity","entityMailboxCapacity","clock","context","activeServers","Map","entities","address","sharding","isShutdown","endLatch","makeLatch","addFinalizer","ignore","resetAddress","activeRequests","defectRequestIds","writeRef","from","isShuttingDown","handlers","protocol","toHandlersContext","pipe","provide","add","runnerAddress","locally","currentLogAnnotations","empty","server","makeNoSerialization","spanPrefix","type","entityId","concurrency","onFromServer","response","_tag","request","get","requestId","void","sentReply","rpc","annotations","isInterrupted","exit","retryRespond","suspend","message","respond","WithExit","id","unsafeNext","flatMap","delete","size","state","lastActiveCheck","unsafeCurrentTimeMillis","orDie","sequence","reply","Chunk","values","lastSentChunk","some","effect","unsafeRebuild","Array","keys","logError","die","defect","andThen","tapErrorCause","retry","spaced","annotateLogs","module","runner","open","extend","sync","write","envelope","tag","payload","mailboxGauge","mailboxSize","tagged","clientId","current","await","value","withFiberRuntime","fiber","interruptible","timeoutOption","entityTerminationTimeout","set","reaper","maxIdleTime","toMillis","entityMaxIdleTime","Number","isFinite","register","servers","gauge","unsafeUpdate","BigInt","sleep","forever","forkIn","sendLocal","entry","fail","envelopeId","requests","dieMessage","lastSentReply","match","onNone","onSome","isSome","replyId","interruptors","interruptShard","shardId","loop","toInterrupt","Set","symbol","forEach","removeIgnore","discard","decodeMessage","decode","makeMessageSchema","isProcessingFor","undefined","excludeReplies","send","matchEffect","onFailure","cause","ReplyWithContext","onSuccess","decoded","IncomingEnvelope","IncomingRequestLocal","activeEntityCount","push","TaggedStruct","transform","Struct","PartialEncodedRequestFromSelf","fields","Literal","payloadSchema","RequestFromSelf","encoded","makeRequest","encode","OptionFromSelf","Union","typeSchema","AckChunk","Interrupt","times","catchAll","delay"],"sources":["../../../src/internal/entityManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
@@ -11,9 +11,11 @@ import { ShardId } from "../ShardId.js";
|
|
11
11
|
import { ShardStorage } from "../ShardStorage.js";
|
12
12
|
/** @internal */
|
13
13
|
export class State {
|
14
|
+
allRunners;
|
14
15
|
runners;
|
15
16
|
shards;
|
16
|
-
|
17
|
+
shardsPerGroup;
|
18
|
+
static fromStorage = /*#__PURE__*/Effect.fnUntraced(function* (shardsPerGroup) {
|
17
19
|
const storage = yield* ShardStorage;
|
18
20
|
const runnerHealth = yield* RunnerHealth;
|
19
21
|
// Fetch registered runners and shard assignments from cluster storage
|
@@ -36,11 +38,11 @@ export class State {
|
|
36
38
|
yield* Effect.logWarning("Ignoring runners that are no longer considered alive:", deadRunners);
|
37
39
|
}
|
38
40
|
// Determine which shards remain unassigned to a runner
|
39
|
-
const assignedShards =
|
41
|
+
const assignedShards = MutableHashMap.empty();
|
40
42
|
const invalidAssignments = Arr.empty();
|
41
43
|
for (const [shard, address] of storedAssignments) {
|
42
44
|
if (Option.isSome(address) && MutableHashMap.has(aliveRunners, address.value)) {
|
43
|
-
|
45
|
+
MutableHashMap.set(assignedShards, shard, address.value);
|
44
46
|
} else if (Option.isSome(address)) {
|
45
47
|
invalidAssignments.push([shard, address.value]);
|
46
48
|
}
|
@@ -50,28 +52,98 @@ export class State {
|
|
50
52
|
}
|
51
53
|
// Construct the initial state
|
52
54
|
const now = yield* Clock.currentTimeMillis;
|
53
|
-
const
|
55
|
+
const allRunners = MutableHashMap.empty();
|
56
|
+
const runnerState = new Map();
|
57
|
+
// for (const group of groups) {
|
58
|
+
// runnerState.set(group, MutableHashMap.empty<RunnerAddress, RunnerWithMetadata>())
|
59
|
+
// }
|
54
60
|
for (const [address, runner] of aliveRunners) {
|
55
|
-
|
61
|
+
const withMetadata = RunnerWithMetadata({
|
56
62
|
runner,
|
57
63
|
registeredAt: now
|
58
|
-
})
|
64
|
+
});
|
65
|
+
MutableHashMap.set(allRunners, address, withMetadata);
|
66
|
+
for (const group of runner.groups) {
|
67
|
+
let groupMap = runnerState.get(group);
|
68
|
+
if (!groupMap) {
|
69
|
+
groupMap = MutableHashMap.empty();
|
70
|
+
runnerState.set(group, groupMap);
|
71
|
+
}
|
72
|
+
MutableHashMap.set(groupMap, address, withMetadata);
|
73
|
+
}
|
59
74
|
}
|
60
75
|
const shardState = new Map();
|
61
|
-
for (
|
62
|
-
const
|
63
|
-
shardState.set(
|
76
|
+
for (const group of runnerState.keys()) {
|
77
|
+
const groupMap = new Map();
|
78
|
+
shardState.set(group, groupMap);
|
79
|
+
for (let n = 1; n <= shardsPerGroup; n++) {
|
80
|
+
const shardId = new ShardId({
|
81
|
+
group,
|
82
|
+
id: n
|
83
|
+
});
|
84
|
+
groupMap.set(n, MutableHashMap.get(assignedShards, shardId));
|
85
|
+
}
|
64
86
|
}
|
65
|
-
return new State(runnerState, shardState);
|
87
|
+
return new State(allRunners, runnerState, shardState, shardsPerGroup);
|
66
88
|
});
|
67
|
-
constructor(runners, shards) {
|
89
|
+
constructor(allRunners, runners, shards, shardsPerGroup) {
|
90
|
+
this.allRunners = allRunners;
|
68
91
|
this.runners = runners;
|
69
92
|
this.shards = shards;
|
93
|
+
this.shardsPerGroup = shardsPerGroup;
|
94
|
+
this.assignments = MutableHashMap.empty();
|
95
|
+
for (const [group, groupMap] of this.shards) {
|
96
|
+
for (const [id, address] of groupMap) {
|
97
|
+
MutableHashMap.set(this.assignments, new ShardId({
|
98
|
+
group,
|
99
|
+
id
|
100
|
+
}), address);
|
101
|
+
}
|
102
|
+
}
|
103
|
+
}
|
104
|
+
assignments;
|
105
|
+
addGroup(group) {
|
106
|
+
this.runners.set(group, MutableHashMap.empty());
|
107
|
+
const shardMap = new Map();
|
108
|
+
for (let n = 1; n <= this.shardsPerGroup; n++) {
|
109
|
+
shardMap.set(n, Option.none());
|
110
|
+
MutableHashMap.set(this.assignments, new ShardId({
|
111
|
+
group,
|
112
|
+
id: n
|
113
|
+
}), Option.none());
|
114
|
+
}
|
115
|
+
this.shards.set(group, shardMap);
|
116
|
+
}
|
117
|
+
addAssignments(shards, address) {
|
118
|
+
for (const shardId of shards) {
|
119
|
+
MutableHashMap.set(this.assignments, shardId, address);
|
120
|
+
this.shards.get(shardId.group)?.set(shardId.id, address);
|
121
|
+
}
|
122
|
+
}
|
123
|
+
addRunner(runner, registeredAt) {
|
124
|
+
const withMetadata = RunnerWithMetadata({
|
125
|
+
runner,
|
126
|
+
registeredAt
|
127
|
+
});
|
128
|
+
MutableHashMap.set(this.allRunners, runner.address, withMetadata);
|
129
|
+
for (const group of runner.groups) {
|
130
|
+
if (!this.runners.has(group)) {
|
131
|
+
this.addGroup(group);
|
132
|
+
}
|
133
|
+
const groupMap = this.runners.get(group);
|
134
|
+
MutableHashMap.set(groupMap, runner.address, withMetadata);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
removeRunner(address) {
|
138
|
+
MutableHashMap.remove(this.allRunners, address);
|
139
|
+
for (const groupMap of this.runners.values()) {
|
140
|
+
MutableHashMap.remove(groupMap, address);
|
141
|
+
}
|
70
142
|
}
|
71
143
|
get maxVersion() {
|
72
|
-
if (MutableHashMap.size(this.
|
144
|
+
if (MutableHashMap.size(this.allRunners) === 0) return Option.none();
|
73
145
|
let version = undefined;
|
74
|
-
for (const [, meta] of this.
|
146
|
+
for (const [, meta] of this.allRunners) {
|
75
147
|
if (version === undefined || meta.runner.version > version) {
|
76
148
|
version = meta.runner.version;
|
77
149
|
}
|
@@ -81,26 +153,39 @@ export class State {
|
|
81
153
|
allRunnersHaveVersion(version) {
|
82
154
|
return version.pipe(Option.map(max => Arr.every(this.runnerVersions, version => version === max)), Option.getOrElse(constFalse));
|
83
155
|
}
|
84
|
-
|
156
|
+
shardsPerRunner(group) {
|
157
|
+
const groupRunners = this.runners.get(group);
|
85
158
|
const shards = MutableHashMap.empty();
|
86
|
-
if (MutableHashMap.isEmpty(
|
87
|
-
MutableHashMap.forEach(
|
159
|
+
if (!groupRunners || MutableHashMap.isEmpty(groupRunners)) return shards;
|
160
|
+
MutableHashMap.forEach(groupRunners, (_, address) => {
|
88
161
|
MutableHashMap.set(shards, address, new Set());
|
89
162
|
});
|
90
|
-
|
163
|
+
const assignments = this.shards.get(group);
|
164
|
+
for (const [id, address] of assignments) {
|
91
165
|
if (Option.isNone(address)) continue;
|
92
166
|
const shardIds = Option.getOrUndefined(MutableHashMap.get(shards, address.value));
|
93
|
-
shardIds.add(
|
167
|
+
shardIds.add(id);
|
94
168
|
}
|
95
169
|
return shards;
|
96
170
|
}
|
97
|
-
|
98
|
-
const runnerCount = MutableHashMap.size(this.runners);
|
99
|
-
|
171
|
+
averageShardsPerRunner(group) {
|
172
|
+
const runnerCount = MutableHashMap.size(this.runners.get(group) ?? MutableHashMap.empty());
|
173
|
+
const shardGroup = this.shards.get(group) ?? new Map();
|
174
|
+
return runnerCount > 0 ? shardGroup.size / runnerCount : 0;
|
100
175
|
}
|
101
|
-
get
|
176
|
+
get allUnassignedShards() {
|
177
|
+
const unassigned = [];
|
178
|
+
for (const [shardId, address] of this.assignments) {
|
179
|
+
if (Option.isNone(address)) {
|
180
|
+
unassigned.push(shardId);
|
181
|
+
}
|
182
|
+
}
|
183
|
+
return unassigned;
|
184
|
+
}
|
185
|
+
unassignedShards(group) {
|
102
186
|
const shardIds = [];
|
103
|
-
|
187
|
+
const assignments = this.shards.get(group);
|
188
|
+
for (const [shard, address] of assignments) {
|
104
189
|
if (Option.isNone(address)) {
|
105
190
|
shardIds.push(shard);
|
106
191
|
}
|
@@ -109,7 +194,7 @@ export class State {
|
|
109
194
|
}
|
110
195
|
get runnerVersions() {
|
111
196
|
const runnerVersions = [];
|
112
|
-
for (const [, meta] of this.
|
197
|
+
for (const [, meta] of this.allRunners) {
|
113
198
|
runnerVersions.push(meta.runner.version);
|
114
199
|
}
|
115
200
|
return runnerVersions;
|
@@ -118,22 +203,24 @@ export class State {
|
|
118
203
|
/** @internal */
|
119
204
|
export const RunnerWithMetadata = runner => runner;
|
120
205
|
/** @internal */
|
121
|
-
export function decideAssignmentsForUnassignedShards(state) {
|
122
|
-
return pickNewRunners(state.unassignedShards, state, true, 1);
|
206
|
+
export function decideAssignmentsForUnassignedShards(state, group) {
|
207
|
+
return pickNewRunners(state.unassignedShards(group), state, group, true, 1);
|
123
208
|
}
|
124
209
|
const allocationOrder = /*#__PURE__*/Order.combine(/*#__PURE__*/Order.mapInput(Order.number, ([, shards]) => shards), /*#__PURE__*/Order.mapInput(Order.number, ([,, registeredAt]) => registeredAt));
|
125
210
|
/** @internal */
|
126
|
-
export function decideAssignmentsForUnbalancedShards(state, rate) {
|
127
|
-
const shardsPerRunner = state.shardsPerRunner;
|
211
|
+
export function decideAssignmentsForUnbalancedShards(state, group, rate) {
|
212
|
+
const shardsPerRunner = state.shardsPerRunner(group);
|
128
213
|
const maxVersion = state.maxVersion;
|
129
214
|
const extraShardsToAllocate = Arr.empty();
|
215
|
+
const runnerGroup = state.runners.get(group);
|
216
|
+
const shardsGroup = state.shards.get(group);
|
130
217
|
if (state.allRunnersHaveVersion(maxVersion)) {
|
131
|
-
const averageShardsPerRunner = state.averageShardsPerRunner;
|
218
|
+
const averageShardsPerRunner = state.averageShardsPerRunner(group);
|
132
219
|
MutableHashMap.forEach(shardsPerRunner, shards => {
|
133
220
|
// Count how many extra shards there are compared to the average
|
134
221
|
const extraShards = Math.max(0, shards.size - averageShardsPerRunner);
|
135
222
|
for (const shard of takeRandom(shards, extraShards)) {
|
136
|
-
const maybeAddress =
|
223
|
+
const maybeAddress = shardsGroup.get(shard) ?? Option.none();
|
137
224
|
if (Option.isNone(maybeAddress)) {
|
138
225
|
extraShardsToAllocate.push([shard, Number.MIN_SAFE_INTEGER, Number.MIN_SAFE_INTEGER]);
|
139
226
|
continue;
|
@@ -142,7 +229,7 @@ export function decideAssignmentsForUnbalancedShards(state, rate) {
|
|
142
229
|
extraShardsToAllocate.push([shard, Option.match(MutableHashMap.get(shardsPerRunner, address), {
|
143
230
|
onNone: () => Number.MIN_SAFE_INTEGER,
|
144
231
|
onSome: shards => -shards.size
|
145
|
-
}), Option.match(MutableHashMap.get(
|
232
|
+
}), Option.match(MutableHashMap.get(runnerGroup, address), {
|
146
233
|
onNone: () => Number.MIN_SAFE_INTEGER,
|
147
234
|
onSome: meta => meta.registeredAt
|
148
235
|
})]);
|
@@ -150,9 +237,9 @@ export function decideAssignmentsForUnbalancedShards(state, rate) {
|
|
150
237
|
});
|
151
238
|
}
|
152
239
|
const sortedShardsToRebalance = extraShardsToAllocate.sort(allocationOrder).map(([shard]) => shard);
|
153
|
-
return pickNewRunners(sortedShardsToRebalance, state, false, rate, shardsPerRunner, maxVersion);
|
240
|
+
return pickNewRunners(sortedShardsToRebalance, state, group, false, rate, shardsPerRunner, maxVersion);
|
154
241
|
}
|
155
|
-
function pickNewRunners(shardsToRebalance, state, immediate, rate, shardsPerRunner = state.shardsPerRunner, maybeMaxVersion = state.maxVersion) {
|
242
|
+
function pickNewRunners(shardsToRebalance, state, group, immediate, rate, shardsPerRunner = state.shardsPerRunner(group), maybeMaxVersion = state.maxVersion) {
|
156
243
|
const addressAssignments = MutableHashMap.empty();
|
157
244
|
const unassignments = MutableHashMap.empty();
|
158
245
|
const changes = MutableHashSet.empty();
|
@@ -160,13 +247,15 @@ function pickNewRunners(shardsToRebalance, state, immediate, rate, shardsPerRunn
|
|
160
247
|
return [addressAssignments, unassignments, changes];
|
161
248
|
}
|
162
249
|
const maxVersion = maybeMaxVersion.value;
|
250
|
+
const runnerGroup = state.runners.get(group);
|
251
|
+
const shardsGroup = state.shards.get(group);
|
163
252
|
for (const shardId of shardsToRebalance) {
|
164
253
|
// Find the runner with the fewest assigned shards
|
165
254
|
let candidate;
|
166
255
|
let candidateShards;
|
167
256
|
for (const [address, shards] of shardsPerRunner) {
|
168
257
|
// Keep only runners with the maximum version
|
169
|
-
const maybeRunnerMeta = MutableHashMap.get(
|
258
|
+
const maybeRunnerMeta = MutableHashMap.get(runnerGroup, address);
|
170
259
|
if (Option.isNone(maybeRunnerMeta)) continue;
|
171
260
|
const runnerMeta = maybeRunnerMeta.value;
|
172
261
|
if (runnerMeta.runner.version !== maxVersion) continue;
|
@@ -176,7 +265,7 @@ function pickNewRunners(shardsToRebalance, state, immediate, rate, shardsPerRunn
|
|
176
265
|
// occur immediately
|
177
266
|
if (!immediate) {
|
178
267
|
const assignmentCount = Option.getOrUndefined(MutableHashMap.get(addressAssignments, address))?.size ?? 0;
|
179
|
-
if (assignmentCount >=
|
268
|
+
if (assignmentCount >= shardsGroup.size * rate) continue;
|
180
269
|
}
|
181
270
|
if (candidate === undefined || shards.size < candidateShards.size) {
|
182
271
|
candidate = address;
|
@@ -185,7 +274,7 @@ function pickNewRunners(shardsToRebalance, state, immediate, rate, shardsPerRunn
|
|
185
274
|
}
|
186
275
|
if (!candidate || !candidateShards) break;
|
187
276
|
// If the old runner is the same as the new runner, do nothing
|
188
|
-
const oldRunner = Option.getOrUndefined(
|
277
|
+
const oldRunner = Option.getOrUndefined(shardsGroup.get(shardId) ?? Option.none());
|
189
278
|
if (oldRunner && oldRunner.toString() === candidate.toString()) {
|
190
279
|
continue;
|
191
280
|
}
|
@@ -237,4 +326,15 @@ function swap(array, i, j) {
|
|
237
326
|
array[j] = tmp;
|
238
327
|
return array;
|
239
328
|
}
|
329
|
+
/** @internal */
|
330
|
+
export const addAllNested = (self, key, values) => {
|
331
|
+
const oset = MutableHashMap.get(self, key);
|
332
|
+
if (Option.isSome(oset)) {
|
333
|
+
for (const value of values) {
|
334
|
+
MutableHashSet.add(oset.value, value);
|
335
|
+
}
|
336
|
+
} else {
|
337
|
+
MutableHashMap.set(self, key, MutableHashSet.fromIterable(values));
|
338
|
+
}
|
339
|
+
};
|
240
340
|
//# sourceMappingURL=shardManager.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"shardManager.js","names":["Arr","Clock","Effect","constFalse","MutableHashMap","MutableHashSet","Option","Order","RunnerHealth","ShardId","ShardStorage","State","runners","shards","fromStorage","fnUntraced","numberOfShards","storage","runnerHealth","storedRunners","getRunners","storedAssignments","getAssignments","deadRunners","empty","aliveRunners","forEach","address","runner","map","isAlive","set","push","concurrency","discard","length","logWarning","assignedShards","Map","invalidAssignments","shard","isSome","has","value","now","currentTimeMillis","runnerState","RunnerWithMetadata","registeredAt","shardState","n","shardId","make","fromNullable","get","constructor","maxVersion","size","none","version","undefined","meta","some","allRunnersHaveVersion","pipe","max","every","runnerVersions","getOrElse","shardsPerRunner","isEmpty","_","Set","isNone","shardIds","getOrUndefined","add","averageShardsPerRunner","runnerCount","unassignedShards","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","i","j","tmp"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"shardManager.js","names":["Arr","Clock","Effect","constFalse","MutableHashMap","MutableHashSet","Option","Order","RunnerHealth","ShardId","ShardStorage","State","allRunners","runners","shards","shardsPerGroup","fromStorage","fnUntraced","storage","runnerHealth","storedRunners","getRunners","storedAssignments","getAssignments","deadRunners","empty","aliveRunners","forEach","address","runner","map","isAlive","set","push","concurrency","discard","length","logWarning","assignedShards","invalidAssignments","shard","isSome","has","value","now","currentTimeMillis","runnerState","Map","withMetadata","RunnerWithMetadata","registeredAt","group","groups","groupMap","get","shardState","keys","n","shardId","id","constructor","assignments","addGroup","shardMap","none","addAssignments","addRunner","removeRunner","remove","values","maxVersion","size","version","undefined","meta","some","allRunnersHaveVersion","pipe","max","every","runnerVersions","getOrElse","shardsPerRunner","groupRunners","isEmpty","_","Set","isNone","shardIds","getOrUndefined","add","averageShardsPerRunner","runnerCount","shardGroup","allUnassignedShards","unassigned","unassignedShards","decideAssignmentsForUnassignedShards","state","pickNewRunners","allocationOrder","combine","mapInput","number","decideAssignmentsForUnbalancedShards","rate","extraShardsToAllocate","runnerGroup","shardsGroup","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","i","j","tmp","addAllNested","key","oset","fromIterable"],"sources":["../../../src/internal/shardManager.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,GAAG,MAAM,cAAc;AACnC,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,cAAc,MAAM,uBAAuB;AACvD,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAGrC,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,YAAY,QAAQ,oBAAoB;AAEjD;AACA,OAAM,MAAOC,KAAK;EA6ELC,UAAA;EACAC,OAAA;EACAC,MAAA;EACAC,cAAA;EA/EX,OAAOC,WAAW,gBAAGd,MAAM,CAACe,UAAU,CAAC,WACrCF,cAAsB;IAEtB,MAAMG,OAAO,GAAG,OAAOR,YAAY;IACnC,MAAMS,YAAY,GAAG,OAAOX,YAAY;IAExC;IACA,MAAMY,aAAa,GAAG,OAAOF,OAAO,CAACG,UAAU;IAC/C,MAAMC,iBAAiB,GAAG,OAAOJ,OAAO,CAACK,cAAc;IAEvD;IACA,MAAMC,WAAW,GAAGxB,GAAG,CAACyB,KAAK,EAAU;IACvC,MAAMC,YAAY,GAAGtB,cAAc,CAACqB,KAAK,EAAyB;IAClE,OAAOvB,MAAM,CAACyB,OAAO,CAACP,aAAa,EAAE,CAAC,CAACQ,OAAO,EAAEC,MAAM,CAAC,KACrD3B,MAAM,CAAC4B,GAAG,CAACX,YAAY,CAACY,OAAO,CAACH,OAAO,CAAC,EAAGG,OAAO,IAAI;MACpD,IAAIA,OAAO,EAAE;QACX3B,cAAc,CAAC4B,GAAG,CAACN,YAAY,EAAEE,OAAO,EAAEC,MAAM,CAAC;MACnD,CAAC,MAAM;QACLL,WAAW,CAACS,IAAI,CAACJ,MAAM,CAAC;MAC1B;IACF,CAAC,CAAC,EAAE;MAAEK,WAAW,EAAE,WAAW;MAAEC,OAAO,EAAE;IAAI,CAAE,CAAC;IAClD,IAAIX,WAAW,CAACY,MAAM,GAAG,CAAC,EAAE;MAC1B,OAAOlC,MAAM,CAACmC,UAAU,CAAC,uDAAuD,EAAEb,WAAW,CAAC;IAChG;IAEA;IACA,MAAMc,cAAc,GAAGlC,cAAc,CAACqB,KAAK,EAA0B;IACrE,MAAMc,kBAAkB,GAAGvC,GAAG,CAACyB,KAAK,EAA4B;IAChE,KAAK,MAAM,CAACe,KAAK,EAAEZ,OAAO,CAAC,IAAIN,iBAAiB,EAAE;MAChD,IAAIhB,MAAM,CAACmC,MAAM,CAACb,OAAO,CAAC,IAAIxB,cAAc,CAACsC,GAAG,CAAChB,YAAY,EAAEE,OAAO,CAACe,KAAK,CAAC,EAAE;QAC7EvC,cAAc,CAAC4B,GAAG,CAACM,cAAc,EAAEE,KAAK,EAAEZ,OAAO,CAACe,KAAK,CAAC;MAC1D,CAAC,MAAM,IAAIrC,MAAM,CAACmC,MAAM,CAACb,OAAO,CAAC,EAAE;QACjCW,kBAAkB,CAACN,IAAI,CAAC,CAACO,KAAK,EAAEZ,OAAO,CAACe,KAAK,CAAC,CAAC;MACjD;IACF;IACA,IAAIJ,kBAAkB,CAACH,MAAM,GAAG,CAAC,EAAE;MACjC,OAAOlC,MAAM,CAACmC,UAAU,CACtB,8EAA8E,EAC9EE,kBAAkB,CACnB;IACH;IAEA;IACA,MAAMK,GAAG,GAAG,OAAO3C,KAAK,CAAC4C,iBAAiB;IAC1C,MAAMjC,UAAU,GAAGR,cAAc,CAACqB,KAAK,EAAqC;IAC5E,MAAMqB,WAAW,GAAG,IAAIC,GAAG,EAA4E;IACvG;IACA;IACA;IACA,KAAK,MAAM,CAACnB,OAAO,EAAEC,MAAM,CAAC,IAAIH,YAAY,EAAE;MAC5C,MAAMsB,YAAY,GAAGC,kBAAkB,CAAC;QAAEpB,MAAM;QAAEqB,YAAY,EAAEN;MAAG,CAAE,CAAC;MACtExC,cAAc,CAAC4B,GAAG,CAACpB,UAAU,EAAEgB,OAAO,EAAEoB,YAAY,CAAC;MACrD,KAAK,MAAMG,KAAK,IAAItB,MAAM,CAACuB,MAAM,EAAE;QACjC,IAAIC,QAAQ,GAAGP,WAAW,CAACQ,GAAG,CAACH,KAAK,CAAC;QACrC,IAAI,CAACE,QAAQ,EAAE;UACbA,QAAQ,GAAGjD,cAAc,CAACqB,KAAK,EAAqC;UACpEqB,WAAW,CAACd,GAAG,CAACmB,KAAK,EAAEE,QAAQ,CAAC;QAClC;QACAjD,cAAc,CAAC4B,GAAG,CAACqB,QAAQ,EAAEzB,OAAO,EAAEoB,YAAY,CAAC;MACrD;IACF;IAEA,MAAMO,UAAU,GAAG,IAAIR,GAAG,EAAqD;IAC/E,KAAK,MAAMI,KAAK,IAAIL,WAAW,CAACU,IAAI,EAAE,EAAE;MACtC,MAAMH,QAAQ,GAAG,IAAIN,GAAG,EAAwC;MAChEQ,UAAU,CAACvB,GAAG,CAACmB,KAAK,EAAEE,QAAQ,CAAC;MAC/B,KAAK,IAAII,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI1C,cAAc,EAAE0C,CAAC,EAAE,EAAE;QACxC,MAAMC,OAAO,GAAG,IAAIjD,OAAO,CAAC;UAAE0C,KAAK;UAAEQ,EAAE,EAAEF;QAAC,CAAE,CAAC;QAC7CJ,QAAQ,CAACrB,GAAG,CAACyB,CAAC,EAAErD,cAAc,CAACkD,GAAG,CAAChB,cAAc,EAAEoB,OAAO,CAAC,CAAC;MAC9D;IACF;IAEA,OAAO,IAAI/C,KAAK,CAACC,UAAU,EAAEkC,WAAW,EAAES,UAAU,EAAExC,cAAc,CAAC;EACvE,CAAC,CAAC;EAEF6C,YACWhD,UAA4E,EAC5EC,OAAsF,EACtFC,MAA8D,EAC9DC,cAAsB;IAHtB,KAAAH,UAAU,GAAVA,UAAU;IACV,KAAAC,OAAO,GAAPA,OAAO;IACP,KAAAC,MAAM,GAANA,MAAM;IACN,KAAAC,cAAc,GAAdA,cAAc;IAEvB,IAAI,CAAC8C,WAAW,GAAGzD,cAAc,CAACqB,KAAK,EAAyC;IAChF,KAAK,MAAM,CAAC0B,KAAK,EAAEE,QAAQ,CAAC,IAAI,IAAI,CAACvC,MAAM,EAAE;MAC3C,KAAK,MAAM,CAAC6C,EAAE,EAAE/B,OAAO,CAAC,IAAIyB,QAAQ,EAAE;QACpCjD,cAAc,CAAC4B,GAAG,CAAC,IAAI,CAAC6B,WAAW,EAAE,IAAIpD,OAAO,CAAC;UAAE0C,KAAK;UAAEQ;QAAE,CAAE,CAAC,EAAE/B,OAAO,CAAC;MAC3E;IACF;EACF;EAESiC,WAAW;EAEpBC,QAAQA,CAACX,KAAa;IACpB,IAAI,CAACtC,OAAO,CAACmB,GAAG,CAACmB,KAAK,EAAE/C,cAAc,CAACqB,KAAK,EAAqC,CAAC;IAClF,MAAMsC,QAAQ,GAAG,IAAIhB,GAAG,EAAwC;IAChE,KAAK,IAAIU,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,IAAI,CAAC1C,cAAc,EAAE0C,CAAC,EAAE,EAAE;MAC7CM,QAAQ,CAAC/B,GAAG,CAACyB,CAAC,EAAEnD,MAAM,CAAC0D,IAAI,EAAE,CAAC;MAC9B5D,cAAc,CAAC4B,GAAG,CAAC,IAAI,CAAC6B,WAAW,EAAE,IAAIpD,OAAO,CAAC;QAAE0C,KAAK;QAAEQ,EAAE,EAAEF;MAAC,CAAE,CAAC,EAAEnD,MAAM,CAAC0D,IAAI,EAAE,CAAC;IACpF;IACA,IAAI,CAAClD,MAAM,CAACkB,GAAG,CAACmB,KAAK,EAAEY,QAAQ,CAAC;EAClC;EAEAE,cAAcA,CACZnD,MAAyB,EACzBc,OAAqC;IAErC,KAAK,MAAM8B,OAAO,IAAI5C,MAAM,EAAE;MAC5BV,cAAc,CAAC4B,GAAG,CAAC,IAAI,CAAC6B,WAAW,EAAEH,OAAO,EAAE9B,OAAO,CAAC;MACtD,IAAI,CAACd,MAAM,CAACwC,GAAG,CAACI,OAAO,CAACP,KAAK,CAAC,EAAEnB,GAAG,CAAC0B,OAAO,CAACC,EAAE,EAAE/B,OAAO,CAAC;IAC1D;EACF;EAEAsC,SAASA,CAACrC,MAAc,EAAEqB,YAAoB;IAC5C,MAAMF,YAAY,GAAGC,kBAAkB,CAAC;MAAEpB,MAAM;MAAEqB;IAAY,CAAE,CAAC;IACjE9C,cAAc,CAAC4B,GAAG,CAAC,IAAI,CAACpB,UAAU,EAAEiB,MAAM,CAACD,OAAO,EAAEoB,YAAY,CAAC;IACjE,KAAK,MAAMG,KAAK,IAAItB,MAAM,CAACuB,MAAM,EAAE;MACjC,IAAI,CAAC,IAAI,CAACvC,OAAO,CAAC6B,GAAG,CAACS,KAAK,CAAC,EAAE;QAC5B,IAAI,CAACW,QAAQ,CAACX,KAAK,CAAC;MACtB;MACA,MAAME,QAAQ,GAAG,IAAI,CAACxC,OAAO,CAACyC,GAAG,CAACH,KAAK,CAAE;MACzC/C,cAAc,CAAC4B,GAAG,CAACqB,QAAQ,EAAExB,MAAM,CAACD,OAAO,EAAEoB,YAAY,CAAC;IAC5D;EACF;EAEAmB,YAAYA,CAACvC,OAAsB;IACjCxB,cAAc,CAACgE,MAAM,CAAC,IAAI,CAACxD,UAAU,EAAEgB,OAAO,CAAC;IAC/C,KAAK,MAAMyB,QAAQ,IAAI,IAAI,CAACxC,OAAO,CAACwD,MAAM,EAAE,EAAE;MAC5CjE,cAAc,CAACgE,MAAM,CAACf,QAAQ,EAAEzB,OAAO,CAAC;IAC1C;EACF;EAEA,IAAI0C,UAAUA,CAAA;IACZ,IAAIlE,cAAc,CAACmE,IAAI,CAAC,IAAI,CAAC3D,UAAU,CAAC,KAAK,CAAC,EAAE,OAAON,MAAM,CAAC0D,IAAI,EAAE;IACpE,IAAIQ,OAAO,GAAuBC,SAAS;IAC3C,KAAK,MAAM,GAAGC,IAAI,CAAC,IAAI,IAAI,CAAC9D,UAAU,EAAE;MACtC,IAAI4D,OAAO,KAAKC,SAAS,IAAIC,IAAI,CAAC7C,MAAM,CAAC2C,OAAO,GAAGA,OAAO,EAAE;QAC1DA,OAAO,GAAGE,IAAI,CAAC7C,MAAM,CAAC2C,OAAO;MAC/B;IACF;IACA,OAAOlE,MAAM,CAACqE,IAAI,CAACH,OAAQ,CAAC;EAC9B;EAEAI,qBAAqBA,CAACJ,OAA8B;IAClD,OAAOA,OAAO,CAACK,IAAI,CACjBvE,MAAM,CAACwB,GAAG,CAAEgD,GAAG,IAAK9E,GAAG,CAAC+E,KAAK,CAAC,IAAI,CAACC,cAAc,EAAGR,OAAO,IAAKA,OAAO,KAAKM,GAAG,CAAC,CAAC,EACjFxE,MAAM,CAAC2E,SAAS,CAAC9E,UAAU,CAAC,CAC7B;EACH;EAEA+E,eAAeA,CAAC/B,KAAa;IAC3B,MAAMgC,YAAY,GAAG,IAAI,CAACtE,OAAO,CAACyC,GAAG,CAACH,KAAK,CAAC;IAC5C,MAAMrC,MAAM,GAAGV,cAAc,CAACqB,KAAK,EAA8B;IAEjE,IAAI,CAAC0D,YAAY,IAAI/E,cAAc,CAACgF,OAAO,CAACD,YAAY,CAAC,EAAE,OAAOrE,MAAM;IACxEV,cAAc,CAACuB,OAAO,CAACwD,YAAY,EAAE,CAACE,CAAC,EAAEzD,OAAO,KAAI;MAClDxB,cAAc,CAAC4B,GAAG,CAAClB,MAAM,EAAEc,OAAO,EAAE,IAAI0D,GAAG,EAAE,CAAC;IAChD,CAAC,CAAC;IAEF,MAAMzB,WAAW,GAAG,IAAI,CAAC/C,MAAM,CAACwC,GAAG,CAACH,KAAK,CAAE;IAC3C,KAAK,MAAM,CAACQ,EAAE,EAAE/B,OAAO,CAAC,IAAIiC,WAAW,EAAE;MACvC,IAAIvD,MAAM,CAACiF,MAAM,CAAC3D,OAAO,CAAC,EAAE;MAC5B,MAAM4D,QAAQ,GAAGlF,MAAM,CAACmF,cAAc,CAACrF,cAAc,CAACkD,GAAG,CAACxC,MAAM,EAAEc,OAAO,CAACe,KAAK,CAAC,CAAE;MAClF6C,QAAQ,CAACE,GAAG,CAAC/B,EAAE,CAAC;IAClB;IAEA,OAAO7C,MAAM;EACf;EAEA6E,sBAAsBA,CAACxC,KAAa;IAClC,MAAMyC,WAAW,GAAGxF,cAAc,CAACmE,IAAI,CAAC,IAAI,CAAC1D,OAAO,CAACyC,GAAG,CAACH,KAAK,CAAC,IAAI/C,cAAc,CAACqB,KAAK,EAAE,CAAC;IAC1F,MAAMoE,UAAU,GAAG,IAAI,CAAC/E,MAAM,CAACwC,GAAG,CAACH,KAAK,CAAC,IAAI,IAAIJ,GAAG,EAAE;IACtD,OAAO6C,WAAW,GAAG,CAAC,GAAGC,UAAU,CAACtB,IAAI,GAAGqB,WAAW,GAAG,CAAC;EAC5D;EAEA,IAAIE,mBAAmBA,CAAA;IACrB,MAAMC,UAAU,GAAmB,EAAE;IACrC,KAAK,MAAM,CAACrC,OAAO,EAAE9B,OAAO,CAAC,IAAI,IAAI,CAACiC,WAAW,EAAE;MACjD,IAAIvD,MAAM,CAACiF,MAAM,CAAC3D,OAAO,CAAC,EAAE;QAC1BmE,UAAU,CAAC9D,IAAI,CAACyB,OAAO,CAAC;MAC1B;IACF;IACA,OAAOqC,UAAU;EACnB;EAEAC,gBAAgBA,CAAC7C,KAAa;IAC5B,MAAMqC,QAAQ,GAAkB,EAAE;IAClC,MAAM3B,WAAW,GAAG,IAAI,CAAC/C,MAAM,CAACwC,GAAG,CAACH,KAAK,CAAE;IAC3C,KAAK,MAAM,CAACX,KAAK,EAAEZ,OAAO,CAAC,IAAIiC,WAAW,EAAE;MAC1C,IAAIvD,MAAM,CAACiF,MAAM,CAAC3D,OAAO,CAAC,EAAE;QAC1B4D,QAAQ,CAACvD,IAAI,CAACO,KAAK,CAAC;MACtB;IACF;IACA,OAAOgD,QAAQ;EACjB;EAEA,IAAYR,cAAcA,CAAA;IACxB,MAAMA,cAAc,GAAkB,EAAE;IACxC,KAAK,MAAM,GAAGN,IAAI,CAAC,IAAI,IAAI,CAAC9D,UAAU,EAAE;MACtCoE,cAAc,CAAC/C,IAAI,CAACyC,IAAI,CAAC7C,MAAM,CAAC2C,OAAO,CAAC;IAC1C;IACA,OAAOQ,cAAc;EACvB;;AAQF;AACA,OAAO,MAAM/B,kBAAkB,GAAIpB,MAA0B,IAAyBA,MAAM;AAE5F;AACA,OAAM,SAAUoE,oCAAoCA,CAACC,KAAY,EAAE/C,KAAa;EAK9E,OAAOgD,cAAc,CAACD,KAAK,CAACF,gBAAgB,CAAC7C,KAAK,CAAC,EAAE+C,KAAK,EAAE/C,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7E;AAEA,MAAMiD,eAAe,gBAA0C7F,KAAK,CAAC8F,OAAO,cAC1E9F,KAAK,CAAC+F,QAAQ,CAAC/F,KAAK,CAACgG,MAAM,EAAE,CAAC,GAAGzF,MAAM,CAAC,KAAKA,MAAM,CAAC,eACpDP,KAAK,CAAC+F,QAAQ,CAAC/F,KAAK,CAACgG,MAAM,EAAE,CAAC,IAAKrD,YAAY,CAAC,KAAKA,YAAY,CAAC,CACnE;AAED;AACA,OAAM,SAAUsD,oCAAoCA,CAACN,KAAY,EAAE/C,KAAa,EAAEsD,IAAY;EAK5F,MAAMvB,eAAe,GAAGgB,KAAK,CAAChB,eAAe,CAAC/B,KAAK,CAAC;EACpD,MAAMmB,UAAU,GAAG4B,KAAK,CAAC5B,UAAU;EACnC,MAAMoC,qBAAqB,GAAG1G,GAAG,CAACyB,KAAK,EAAyD;EAEhG,MAAMkF,WAAW,GAAGT,KAAK,CAACrF,OAAO,CAACyC,GAAG,CAACH,KAAK,CAAE;EAC7C,MAAMyD,WAAW,GAAGV,KAAK,CAACpF,MAAM,CAACwC,GAAG,CAACH,KAAK,CAAE;EAE5C,IAAI+C,KAAK,CAACtB,qBAAqB,CAACN,UAAU,CAAC,EAAE;IAC3C,MAAMqB,sBAAsB,GAAGO,KAAK,CAACP,sBAAsB,CAACxC,KAAK,CAAC;IAClE/C,cAAc,CAACuB,OAAO,CAACuD,eAAe,EAAGpE,MAAM,IAAI;MACjD;MACA,MAAM+F,WAAW,GAAGC,IAAI,CAAChC,GAAG,CAAC,CAAC,EAAEhE,MAAM,CAACyD,IAAI,GAAGoB,sBAAsB,CAAC;MACrE,KAAK,MAAMnD,KAAK,IAAIuE,UAAU,CAACjG,MAAM,EAAE+F,WAAW,CAAC,EAAE;QACnD,MAAMG,YAAY,GAAGJ,WAAW,CAACtD,GAAG,CAACd,KAAK,CAAC,IAAIlC,MAAM,CAAC0D,IAAI,EAAE;QAC5D,IAAI1D,MAAM,CAACiF,MAAM,CAACyB,YAAY,CAAC,EAAE;UAC/BN,qBAAqB,CAACzE,IAAI,CAAC,CAACO,KAAK,EAAEyE,MAAM,CAACC,gBAAgB,EAAED,MAAM,CAACC,gBAAgB,CAAC,CAAC;UACrF;QACF;QACA,MAAMtF,OAAO,GAAGoF,YAAY,CAACrE,KAAK;QAClC+D,qBAAqB,CAACzE,IAAI,CAAC,CACzBO,KAAK,EACLlC,MAAM,CAAC6G,KAAK,CAAC/G,cAAc,CAACkD,GAAG,CAAC4B,eAAe,EAAEtD,OAAO,CAAC,EAAE;UACzDwF,MAAM,EAAEA,CAAA,KAAMH,MAAM,CAACC,gBAAgB;UACrCG,MAAM,EAAGvG,MAAM,IAAK,CAACA,MAAM,CAACyD;SAC7B,CAAC,EACFjE,MAAM,CAAC6G,KAAK,CAAC/G,cAAc,CAACkD,GAAG,CAACqD,WAAW,EAAE/E,OAAO,CAAC,EAAE;UACrDwF,MAAM,EAAEA,CAAA,KAAMH,MAAM,CAACC,gBAAgB;UACrCG,MAAM,EAAG3C,IAAI,IAAKA,IAAI,CAACxB;SACxB,CAAC,CACH,CAAC;MACJ;IACF,CAAC,CAAC;EACJ;EAEA,MAAMoE,uBAAuB,GAAGZ,qBAAqB,CAACa,IAAI,CAACnB,eAAe,CAAC,CAACtE,GAAG,CAAC,CAAC,CAACU,KAAK,CAAC,KAAKA,KAAK,CAAC;EAEnG,OAAO2D,cAAc,CAACmB,uBAAuB,EAAEpB,KAAK,EAAE/C,KAAK,EAAE,KAAK,EAAEsD,IAAI,EAAEvB,eAAe,EAAEZ,UAAU,CAAC;AACxG;AAEA,SAAS6B,cAAcA,CACrBqB,iBAAwC,EACxCtB,KAAY,EACZ/C,KAAa,EACbsE,SAAkB,EAClBhB,IAAY,EACZvB,eAAe,GAAGgB,KAAK,CAAChB,eAAe,CAAC/B,KAAK,CAAC,EAC9CuE,eAAe,GAAGxB,KAAK,CAAC5B,UAAU;EAMlC,MAAMqD,kBAAkB,GAAGvH,cAAc,CAACqB,KAAK,EAA8B;EAC7E,MAAMmG,aAAa,GAAGxH,cAAc,CAACqB,KAAK,EAA8B;EACxE,MAAMoG,OAAO,GAAGxH,cAAc,CAACoB,KAAK,EAAiB;EAErD,IAAInB,MAAM,CAACiF,MAAM,CAACmC,eAAe,CAAC,EAAE;IAClC,OAAO,CAACC,kBAAkB,EAAEC,aAAa,EAAEC,OAAO,CAAC;EACrD;EACA,MAAMvD,UAAU,GAAGoD,eAAe,CAAC/E,KAAK;EAExC,MAAMgE,WAAW,GAAGT,KAAK,CAACrF,OAAO,CAACyC,GAAG,CAACH,KAAK,CAAE;EAC7C,MAAMyD,WAAW,GAAGV,KAAK,CAACpF,MAAM,CAACwC,GAAG,CAACH,KAAK,CAAE;EAE5C,KAAK,MAAMO,OAAO,IAAI8D,iBAAiB,EAAE;IACvC;IACA,IAAIM,SAAoC;IACxC,IAAIC,eAAwC;IAE5C,KAAK,MAAM,CAACnG,OAAO,EAAEd,MAAM,CAAC,IAAIoE,eAAe,EAAE;MAC/C;MACA,MAAM8C,eAAe,GAAG5H,cAAc,CAACkD,GAAG,CAACqD,WAAW,EAAE/E,OAAO,CAAC;MAChE,IAAItB,MAAM,CAACiF,MAAM,CAACyC,eAAe,CAAC,EAAE;MACpC,MAAMC,UAAU,GAAGD,eAAe,CAACrF,KAAK;MACxC,IAAIsF,UAAU,CAACpG,MAAM,CAAC2C,OAAO,KAAKF,UAAU,EAAE;MAE9C;MACA,IAAIlE,cAAc,CAACsC,GAAG,CAACkF,aAAa,EAAEhG,OAAO,CAAC,EAAE;MAEhD;MACA;MACA,IAAI,CAAC6F,SAAS,EAAE;QACd,MAAMS,eAAe,GAAG5H,MAAM,CAACmF,cAAc,CAACrF,cAAc,CAACkD,GAAG,CAACqE,kBAAkB,EAAE/F,OAAO,CAAC,CAAC,EAAE2C,IAAI,IAAI,CAAC;QACzG,IAAI2D,eAAe,IAAItB,WAAW,CAACrC,IAAI,GAAGkC,IAAI,EAAE;MAClD;MAEA,IAAIqB,SAAS,KAAKrD,SAAS,IAAI3D,MAAM,CAACyD,IAAI,GAAGwD,eAAgB,CAACxD,IAAI,EAAE;QAClEuD,SAAS,GAAGlG,OAAO;QACnBmG,eAAe,GAAGjH,MAAM;MAC1B;IACF;IACA,IAAI,CAACgH,SAAS,IAAI,CAACC,eAAe,EAAE;IAEpC;IACA,MAAMI,SAAS,GAAG7H,MAAM,CAACmF,cAAc,CAACmB,WAAW,CAACtD,GAAG,CAACI,OAAO,CAAC,IAAIpD,MAAM,CAAC0D,IAAI,EAAE,CAAC;IAClF,IAAImE,SAAS,IAAIA,SAAS,CAACC,QAAQ,EAAE,KAAKN,SAAS,CAACM,QAAQ,EAAE,EAAE;MAC9D;IACF;IACA,MAAMC,SAAS,GAAGF,SAAS,IAAI7H,MAAM,CAACmF,cAAc,CAACrF,cAAc,CAACkD,GAAG,CAAC4B,eAAe,EAAEiD,SAAS,CAAC,CAAC;IAEpG;IACA;IACA,IAAIE,SAAS,IAAIN,eAAe,CAACxD,IAAI,GAAG,CAAC,IAAI8D,SAAS,CAAC9D,IAAI,EAAE;IAE7D;IACAnE,cAAc,CAACkI,QAAQ,CACrBX,kBAAkB,EAClBG,SAAS,EACTxH,MAAM,CAAC6G,KAAK,CAAC;MACXC,MAAM,EAAEA,CAAA,KAAM9G,MAAM,CAACqE,IAAI,CAAC,IAAIW,GAAG,CAAC,CAAC5B,OAAO,CAAC,CAAC,CAAC;MAC7C2D,MAAM,EAAGvG,MAAM,IAAI;QACjBA,MAAM,CAAC4E,GAAG,CAAChC,OAAO,CAAC;QACnB,OAAOpD,MAAM,CAACqE,IAAI,CAAC7D,MAAM,CAAC;MAC5B;KACD,CAAC,CACH;IACD,IAAIqH,SAAS,EAAE;MACb/H,cAAc,CAACkI,QAAQ,CACrBV,aAAa,EACbO,SAAS,EACT7H,MAAM,CAAC6G,KAAK,CAAC;QACXC,MAAM,EAAEA,CAAA,KAAM9G,MAAM,CAACqE,IAAI,CAAC,IAAIW,GAAG,CAAC,CAAC5B,OAAO,CAAC,CAAC,CAAC;QAC7C2D,MAAM,EAAGvG,MAAM,IAAI;UACjBA,MAAM,CAAC4E,GAAG,CAAChC,OAAO,CAAC;UACnB,OAAOpD,MAAM,CAACqE,IAAI,CAAC7D,MAAM,CAAC;QAC5B;OACD,CAAC,CACH;IACH;IAEA;IACAiH,eAAe,CAACrC,GAAG,CAAChC,OAAO,CAAC;IAC5B,IAAI2E,SAAS,EAAE;MACbA,SAAS,CAACE,MAAM,CAAC7E,OAAO,CAAC;IAC3B;IAEA;IACArD,cAAc,CAACqF,GAAG,CAACmC,OAAO,EAAEC,SAAS,CAAC;IACtC,IAAIK,SAAS,EAAE9H,cAAc,CAACqF,GAAG,CAACmC,OAAO,EAAEM,SAAS,CAAC;EACvD;EAEA,OAAO,CAACR,kBAAkB,EAAEC,aAAa,EAAEC,OAAO,CAAC;AACrD;AAEA,SAASd,UAAUA,CAAIyB,IAAiB,EAAE/E,CAAS;EACjD,MAAMgF,KAAK,GAAGC,KAAK,CAACC,IAAI,CAACH,IAAI,CAAC;EAC9B,IAAII,YAAY,GAAGH,KAAK,CAACrG,MAAM;EAC/B,OAAOwG,YAAY,IAAI,CAAC,EAAE;IACxB,MAAMC,WAAW,GAAG/B,IAAI,CAACgC,KAAK,CAAChC,IAAI,CAACiC,MAAM,EAAE,GAAGH,YAAY,CAAC;IAC5DA,YAAY,GAAGA,YAAY,GAAG,CAAC;IAC/BI,IAAI,CAACP,KAAK,EAAEG,YAAY,EAAEC,WAAW,CAAC;EACxC;EACA,OAAOpF,CAAC,GAAGgF,KAAK,CAACrG,MAAM,GAAGqG,KAAK,CAACQ,KAAK,CAAC,CAAC,EAAExF,CAAC,CAAC,GAAGgF,KAAK;AACrD;AAEA,SAASO,IAAIA,CAAIP,KAAe,EAAES,CAAS,EAAEC,CAAS;EACpD,MAAMC,GAAG,GAAGX,KAAK,CAACS,CAAC,CAAC;EACpBT,KAAK,CAACS,CAAC,CAAC,GAAGT,KAAK,CAACU,CAAC,CAAC;EACnBV,KAAK,CAACU,CAAC,CAAC,GAAGC,GAAG;EACd,OAAOX,KAAK;AACd;AAEA;AACA,OAAO,MAAMY,YAAY,GAAGA,CAC1Bb,IAAwE,EACxEc,GAAM,EACNjF,MAAmB,KACjB;EACF,MAAMkF,IAAI,GAAGnJ,cAAc,CAACkD,GAAG,CAACkF,IAAI,EAAEc,GAAG,CAAC;EAC1C,IAAIhJ,MAAM,CAACmC,MAAM,CAAC8G,IAAI,CAAC,EAAE;IACvB,KAAK,MAAM5G,KAAK,IAAI0B,MAAM,EAAE;MAC1BhE,cAAc,CAACqF,GAAG,CAAC6D,IAAI,CAAC5G,KAAK,EAAEA,KAAK,CAAC;IACvC;EACF,CAAC,MAAM;IACLvC,cAAc,CAAC4B,GAAG,CAACwG,IAAI,EAAEc,GAAG,EAAEjJ,cAAc,CAACmJ,YAAY,CAACnF,MAAM,CAAC,CAAC;EACpE;AACF,CAAC","ignoreList":[]}
|