@effect/cluster 0.50.6 → 0.52.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/RunnerStorage/package.json +6 -0
- package/SqlRunnerStorage/package.json +6 -0
- package/dist/cjs/ClusterError.js +2 -24
- package/dist/cjs/ClusterError.js.map +1 -1
- package/dist/cjs/ClusterMetrics.js +13 -15
- package/dist/cjs/ClusterMetrics.js.map +1 -1
- package/dist/cjs/ClusterSchema.js +17 -2
- package/dist/cjs/ClusterSchema.js.map +1 -1
- package/dist/cjs/ClusterWorkflowEngine.js +50 -83
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/Entity.js +1 -13
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/EntityAddress.js +9 -1
- package/dist/cjs/EntityAddress.js.map +1 -1
- package/dist/cjs/EntityId.js +7 -1
- package/dist/cjs/EntityId.js.map +1 -1
- package/dist/cjs/EntityProxy.js +1 -1
- package/dist/cjs/EntityProxy.js.map +1 -1
- package/dist/cjs/HttpRunner.js +69 -43
- package/dist/cjs/HttpRunner.js.map +1 -1
- package/dist/cjs/MessageStorage.js +64 -16
- package/dist/cjs/MessageStorage.js.map +1 -1
- package/dist/cjs/Runner.js +3 -3
- package/dist/cjs/Runner.js.map +1 -1
- package/dist/cjs/RunnerAddress.js +7 -0
- package/dist/cjs/RunnerAddress.js.map +1 -1
- package/dist/cjs/RunnerHealth.js +91 -32
- package/dist/cjs/RunnerHealth.js.map +1 -1
- package/dist/cjs/RunnerServer.js +38 -24
- package/dist/cjs/RunnerServer.js.map +1 -1
- package/dist/cjs/RunnerStorage.js +100 -0
- package/dist/cjs/RunnerStorage.js.map +1 -0
- package/dist/cjs/Runners.js +18 -22
- package/dist/cjs/Runners.js.map +1 -1
- package/dist/cjs/ShardId.js +17 -7
- package/dist/cjs/ShardId.js.map +1 -1
- package/dist/cjs/Sharding.js +444 -320
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +10 -14
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/Snowflake.js +1 -1
- package/dist/cjs/SocketRunner.js +1 -1
- package/dist/cjs/SocketRunner.js.map +1 -1
- package/dist/cjs/SqlMessageStorage.js +22 -28
- package/dist/cjs/SqlMessageStorage.js.map +1 -1
- package/dist/cjs/SqlRunnerStorage.js +375 -0
- package/dist/cjs/SqlRunnerStorage.js.map +1 -0
- package/dist/cjs/index.js +5 -15
- package/dist/cjs/internal/entityManager.js +42 -23
- package/dist/cjs/internal/entityManager.js.map +1 -1
- package/dist/dts/ClusterError.d.ts +0 -22
- package/dist/dts/ClusterError.d.ts.map +1 -1
- package/dist/dts/ClusterMetrics.d.ts +4 -14
- package/dist/dts/ClusterMetrics.d.ts.map +1 -1
- package/dist/dts/ClusterSchema.d.ts +9 -1
- package/dist/dts/ClusterSchema.d.ts.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/Entity.d.ts +3 -14
- package/dist/dts/Entity.d.ts.map +1 -1
- package/dist/dts/EntityAddress.d.ts +11 -0
- package/dist/dts/EntityAddress.d.ts.map +1 -1
- package/dist/dts/EntityId.d.ts +5 -0
- package/dist/dts/EntityId.d.ts.map +1 -1
- package/dist/dts/EntityProxy.d.ts +5 -6
- package/dist/dts/EntityProxy.d.ts.map +1 -1
- package/dist/dts/HttpRunner.d.ts +48 -25
- package/dist/dts/HttpRunner.d.ts.map +1 -1
- package/dist/dts/MessageStorage.d.ts +13 -5
- package/dist/dts/MessageStorage.d.ts.map +1 -1
- package/dist/dts/Runner.d.ts +4 -4
- 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/RunnerHealth.d.ts +24 -16
- package/dist/dts/RunnerHealth.d.ts.map +1 -1
- package/dist/dts/RunnerServer.d.ts +5 -4
- package/dist/dts/RunnerServer.d.ts.map +1 -1
- package/dist/dts/{ShardStorage.d.ts → RunnerStorage.d.ts} +41 -54
- package/dist/dts/RunnerStorage.d.ts.map +1 -0
- package/dist/dts/Runners.d.ts +15 -11
- package/dist/dts/Runners.d.ts.map +1 -1
- package/dist/dts/ShardId.d.ts +1 -1
- package/dist/dts/ShardId.d.ts.map +1 -1
- package/dist/dts/Sharding.d.ts +20 -10
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +40 -14
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/dts/SocketRunner.d.ts +4 -3
- package/dist/dts/SocketRunner.d.ts.map +1 -1
- package/dist/dts/SqlMessageStorage.d.ts +2 -3
- package/dist/dts/SqlMessageStorage.d.ts.map +1 -1
- package/dist/dts/SqlRunnerStorage.d.ts +40 -0
- package/dist/dts/SqlRunnerStorage.d.ts.map +1 -0
- package/dist/dts/index.d.ts +4 -24
- package/dist/dts/index.d.ts.map +1 -1
- package/dist/esm/ClusterError.js +0 -21
- package/dist/esm/ClusterError.js.map +1 -1
- package/dist/esm/ClusterMetrics.js +12 -14
- package/dist/esm/ClusterMetrics.js.map +1 -1
- package/dist/esm/ClusterSchema.js +17 -2
- package/dist/esm/ClusterSchema.js.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +50 -83
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/Entity.js +0 -12
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/EntityAddress.js +7 -0
- package/dist/esm/EntityAddress.js.map +1 -1
- package/dist/esm/EntityId.js +5 -0
- package/dist/esm/EntityId.js.map +1 -1
- package/dist/esm/EntityProxy.js +2 -2
- package/dist/esm/EntityProxy.js.map +1 -1
- package/dist/esm/HttpRunner.js +62 -39
- package/dist/esm/HttpRunner.js.map +1 -1
- package/dist/esm/MessageStorage.js +65 -17
- package/dist/esm/MessageStorage.js.map +1 -1
- package/dist/esm/Runner.js +3 -3
- package/dist/esm/Runner.js.map +1 -1
- package/dist/esm/RunnerAddress.js +7 -0
- package/dist/esm/RunnerAddress.js.map +1 -1
- package/dist/esm/RunnerHealth.js +88 -30
- package/dist/esm/RunnerHealth.js.map +1 -1
- package/dist/esm/RunnerServer.js +38 -24
- package/dist/esm/RunnerServer.js.map +1 -1
- package/dist/esm/RunnerStorage.js +90 -0
- package/dist/esm/RunnerStorage.js.map +1 -0
- package/dist/esm/Runners.js +19 -23
- package/dist/esm/Runners.js.map +1 -1
- package/dist/esm/ShardId.js +16 -6
- package/dist/esm/ShardId.js.map +1 -1
- package/dist/esm/Sharding.js +447 -323
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +10 -14
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/Snowflake.js +1 -1
- package/dist/esm/SocketRunner.js +1 -1
- package/dist/esm/SocketRunner.js.map +1 -1
- package/dist/esm/SqlMessageStorage.js +22 -28
- package/dist/esm/SqlMessageStorage.js.map +1 -1
- package/dist/esm/SqlRunnerStorage.js +366 -0
- package/dist/esm/SqlRunnerStorage.js.map +1 -0
- package/dist/esm/index.js +4 -24
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/entityManager.js +41 -22
- package/dist/esm/internal/entityManager.js.map +1 -1
- package/package.json +20 -60
- package/src/ClusterError.ts +0 -24
- package/src/ClusterMetrics.ts +12 -16
- package/src/ClusterSchema.ts +17 -2
- package/src/ClusterWorkflowEngine.ts +48 -80
- package/src/Entity.ts +3 -21
- package/src/EntityAddress.ts +10 -0
- package/src/EntityId.ts +6 -0
- package/src/EntityProxy.ts +10 -10
- package/src/HttpRunner.ts +132 -67
- package/src/MessageStorage.ts +89 -24
- package/src/Runner.ts +4 -4
- package/src/RunnerAddress.ts +8 -0
- package/src/RunnerHealth.ts +119 -56
- package/src/RunnerServer.ts +64 -47
- package/src/RunnerStorage.ts +218 -0
- package/src/Runners.ts +32 -45
- package/src/ShardId.ts +14 -3
- package/src/Sharding.ts +561 -417
- package/src/ShardingConfig.ts +39 -31
- package/src/Snowflake.ts +1 -1
- package/src/SocketRunner.ts +6 -4
- package/src/SqlMessageStorage.ts +28 -30
- package/src/SqlRunnerStorage.ts +537 -0
- package/src/index.ts +4 -29
- package/src/internal/entityManager.ts +45 -29
- package/HttpCommon/package.json +0 -6
- package/HttpShardManager/package.json +0 -6
- package/ShardManager/package.json +0 -6
- package/ShardStorage/package.json +0 -6
- package/SocketShardManager/package.json +0 -6
- package/SqlShardStorage/package.json +0 -6
- package/SynchronizedClock/package.json +0 -6
- package/dist/cjs/HttpCommon.js +0 -48
- package/dist/cjs/HttpCommon.js.map +0 -1
- package/dist/cjs/HttpShardManager.js +0 -139
- package/dist/cjs/HttpShardManager.js.map +0 -1
- package/dist/cjs/ShardManager.js +0 -549
- package/dist/cjs/ShardManager.js.map +0 -1
- package/dist/cjs/ShardStorage.js +0 -151
- package/dist/cjs/ShardStorage.js.map +0 -1
- package/dist/cjs/SocketShardManager.js +0 -32
- package/dist/cjs/SocketShardManager.js.map +0 -1
- package/dist/cjs/SqlShardStorage.js +0 -253
- package/dist/cjs/SqlShardStorage.js.map +0 -1
- package/dist/cjs/SynchronizedClock.js +0 -65
- package/dist/cjs/SynchronizedClock.js.map +0 -1
- package/dist/cjs/internal/shardManager.js +0 -353
- package/dist/cjs/internal/shardManager.js.map +0 -1
- package/dist/dts/HttpCommon.d.ts +0 -25
- package/dist/dts/HttpCommon.d.ts.map +0 -1
- package/dist/dts/HttpShardManager.d.ts +0 -119
- package/dist/dts/HttpShardManager.d.ts.map +0 -1
- package/dist/dts/ShardManager.d.ts +0 -459
- package/dist/dts/ShardManager.d.ts.map +0 -1
- package/dist/dts/ShardStorage.d.ts.map +0 -1
- package/dist/dts/SocketShardManager.d.ts +0 -17
- package/dist/dts/SocketShardManager.d.ts.map +0 -1
- package/dist/dts/SqlShardStorage.d.ts +0 -38
- package/dist/dts/SqlShardStorage.d.ts.map +0 -1
- package/dist/dts/SynchronizedClock.d.ts +0 -19
- package/dist/dts/SynchronizedClock.d.ts.map +0 -1
- package/dist/dts/internal/shardManager.d.ts +0 -2
- package/dist/dts/internal/shardManager.d.ts.map +0 -1
- package/dist/esm/HttpCommon.js +0 -38
- package/dist/esm/HttpCommon.js.map +0 -1
- package/dist/esm/HttpShardManager.js +0 -128
- package/dist/esm/HttpShardManager.js.map +0 -1
- package/dist/esm/ShardManager.js +0 -535
- package/dist/esm/ShardManager.js.map +0 -1
- package/dist/esm/ShardStorage.js +0 -141
- package/dist/esm/ShardStorage.js.map +0 -1
- package/dist/esm/SocketShardManager.js +0 -24
- package/dist/esm/SocketShardManager.js.map +0 -1
- package/dist/esm/SqlShardStorage.js +0 -244
- package/dist/esm/SqlShardStorage.js.map +0 -1
- package/dist/esm/SynchronizedClock.js +0 -57
- package/dist/esm/SynchronizedClock.js.map +0 -1
- package/dist/esm/internal/shardManager.js +0 -342
- package/dist/esm/internal/shardManager.js.map +0 -1
- package/src/HttpCommon.ts +0 -73
- package/src/HttpShardManager.ts +0 -273
- package/src/ShardManager.ts +0 -823
- package/src/ShardStorage.ts +0 -297
- package/src/SocketShardManager.ts +0 -48
- package/src/SqlShardStorage.ts +0 -329
- package/src/SynchronizedClock.ts +0 -82
- package/src/internal/shardManager.ts +0 -412
package/dist/cjs/ShardStorage.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.makeMemory = exports.makeEncoded = exports.layerNoop = exports.layerMemory = exports.ShardStorage = void 0;
|
|
7
|
-
var Arr = _interopRequireWildcard(require("effect/Array"));
|
|
8
|
-
var Context = _interopRequireWildcard(require("effect/Context"));
|
|
9
|
-
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
11
|
-
var MutableHashMap = _interopRequireWildcard(require("effect/MutableHashMap"));
|
|
12
|
-
var Option = _interopRequireWildcard(require("effect/Option"));
|
|
13
|
-
var _Runner = require("./Runner.js");
|
|
14
|
-
var _RunnerAddress = require("./RunnerAddress.js");
|
|
15
|
-
var _ShardId = require("./ShardId.js");
|
|
16
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
17
|
-
/**
|
|
18
|
-
* @since 1.0.0
|
|
19
|
-
*/
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Represents a generic interface to the persistent storage required by the
|
|
23
|
-
* cluster.
|
|
24
|
-
*
|
|
25
|
-
* @since 1.0.0
|
|
26
|
-
* @category models
|
|
27
|
-
*/
|
|
28
|
-
class ShardStorage extends /*#__PURE__*/Context.Tag("@effect/cluster/ShardStorage")() {}
|
|
29
|
-
/**
|
|
30
|
-
* @since 1.0.0
|
|
31
|
-
* @category layers
|
|
32
|
-
*/
|
|
33
|
-
exports.ShardStorage = ShardStorage;
|
|
34
|
-
const makeEncoded = encoded => ShardStorage.of({
|
|
35
|
-
getAssignments: Effect.map(encoded.getAssignments, assignments => {
|
|
36
|
-
const arr = Arr.empty();
|
|
37
|
-
for (const [shardId, runnerAddress] of assignments) {
|
|
38
|
-
arr.push([_ShardId.ShardId.fromString(shardId), runnerAddress === null ? Option.none() : Option.some(decodeRunnerAddress(runnerAddress))]);
|
|
39
|
-
}
|
|
40
|
-
return arr;
|
|
41
|
-
}),
|
|
42
|
-
saveAssignments: assignments => {
|
|
43
|
-
const arr = Arr.empty();
|
|
44
|
-
for (const [shardId, runnerAddress] of assignments) {
|
|
45
|
-
arr.push([shardId.toString(), Option.isNone(runnerAddress) ? null : encodeRunnerAddress(runnerAddress.value)]);
|
|
46
|
-
}
|
|
47
|
-
return encoded.saveAssignments(arr);
|
|
48
|
-
},
|
|
49
|
-
getRunners: Effect.gen(function* () {
|
|
50
|
-
const runners = yield* encoded.getRunners;
|
|
51
|
-
const results = [];
|
|
52
|
-
for (let i = 0; i < runners.length; i++) {
|
|
53
|
-
const [address, runner] = runners[i];
|
|
54
|
-
try {
|
|
55
|
-
results.push([decodeRunnerAddress(address), _Runner.Runner.decodeSync(runner)]);
|
|
56
|
-
} catch {
|
|
57
|
-
//
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
return results;
|
|
61
|
-
}),
|
|
62
|
-
saveRunners: runners => Effect.suspend(() => encoded.saveRunners(Array.from(runners, ([address, runner]) => [encodeRunnerAddress(address), _Runner.Runner.encodeSync(runner)]))),
|
|
63
|
-
acquire: (address, shardIds) => {
|
|
64
|
-
const arr = Array.from(shardIds, id => id.toString());
|
|
65
|
-
return encoded.acquire(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
|
|
66
|
-
},
|
|
67
|
-
refresh: (address, shardIds) => {
|
|
68
|
-
const arr = Array.from(shardIds, id => id.toString());
|
|
69
|
-
return encoded.refresh(encodeRunnerAddress(address), arr).pipe(Effect.map(shards => shards.map(_ShardId.ShardId.fromString)));
|
|
70
|
-
},
|
|
71
|
-
release(address, shardId) {
|
|
72
|
-
return encoded.release(encodeRunnerAddress(address), shardId.toString());
|
|
73
|
-
},
|
|
74
|
-
releaseAll(address) {
|
|
75
|
-
return encoded.releaseAll(encodeRunnerAddress(address));
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
/**
|
|
79
|
-
* @since 1.0.0
|
|
80
|
-
* @category layers
|
|
81
|
-
*/
|
|
82
|
-
exports.makeEncoded = makeEncoded;
|
|
83
|
-
const layerNoop = exports.layerNoop = /*#__PURE__*/Layer.sync(ShardStorage, () => {
|
|
84
|
-
let acquired = [];
|
|
85
|
-
return ShardStorage.of({
|
|
86
|
-
getAssignments: Effect.sync(() => []),
|
|
87
|
-
saveAssignments: () => Effect.void,
|
|
88
|
-
getRunners: Effect.sync(() => []),
|
|
89
|
-
saveRunners: () => Effect.void,
|
|
90
|
-
acquire: (_address, shards) => {
|
|
91
|
-
acquired = Array.from(shards);
|
|
92
|
-
return Effect.succeed(Array.from(shards));
|
|
93
|
-
},
|
|
94
|
-
refresh: () => Effect.sync(() => acquired),
|
|
95
|
-
release: () => Effect.void,
|
|
96
|
-
releaseAll: () => Effect.void
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
/**
|
|
100
|
-
* @since 1.0.0
|
|
101
|
-
* @category constructors
|
|
102
|
-
*/
|
|
103
|
-
const makeMemory = exports.makeMemory = /*#__PURE__*/Effect.gen(function* () {
|
|
104
|
-
const assignments = MutableHashMap.empty();
|
|
105
|
-
const runners = MutableHashMap.empty();
|
|
106
|
-
function saveAssignments(value) {
|
|
107
|
-
return Effect.sync(() => {
|
|
108
|
-
for (const [shardId, runnerAddress] of value) {
|
|
109
|
-
MutableHashMap.set(assignments, shardId, runnerAddress);
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
function saveRunners(value) {
|
|
114
|
-
return Effect.sync(() => {
|
|
115
|
-
for (const [address, runner] of value) {
|
|
116
|
-
MutableHashMap.set(runners, address, runner);
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
let acquired = [];
|
|
121
|
-
return ShardStorage.of({
|
|
122
|
-
getAssignments: Effect.sync(() => Array.from(assignments)),
|
|
123
|
-
saveAssignments,
|
|
124
|
-
getRunners: Effect.sync(() => Array.from(runners)),
|
|
125
|
-
saveRunners,
|
|
126
|
-
acquire: (_address, shardIds) => {
|
|
127
|
-
acquired = Array.from(shardIds);
|
|
128
|
-
return Effect.succeed(Array.from(shardIds));
|
|
129
|
-
},
|
|
130
|
-
refresh: () => Effect.sync(() => acquired),
|
|
131
|
-
release: () => Effect.void,
|
|
132
|
-
releaseAll: () => Effect.void
|
|
133
|
-
});
|
|
134
|
-
});
|
|
135
|
-
/**
|
|
136
|
-
* @since 1.0.0
|
|
137
|
-
* @category layers
|
|
138
|
-
*/
|
|
139
|
-
const layerMemory = exports.layerMemory = /*#__PURE__*/Layer.effect(ShardStorage, makeMemory);
|
|
140
|
-
// -------------------------------------------------------------------------------------
|
|
141
|
-
// internal
|
|
142
|
-
// -------------------------------------------------------------------------------------
|
|
143
|
-
const encodeRunnerAddress = runnerAddress => `${runnerAddress.host}:${runnerAddress.port}`;
|
|
144
|
-
const decodeRunnerAddress = runnerAddress => {
|
|
145
|
-
const [host, port] = runnerAddress.split(":");
|
|
146
|
-
return new _RunnerAddress.RunnerAddress({
|
|
147
|
-
host,
|
|
148
|
-
port: Number(port)
|
|
149
|
-
});
|
|
150
|
-
};
|
|
151
|
-
//# sourceMappingURL=ShardStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ShardStorage.js","names":["Arr","_interopRequireWildcard","require","Context","Effect","Layer","MutableHashMap","Option","_Runner","_RunnerAddress","_ShardId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ShardStorage","Tag","exports","makeEncoded","encoded","of","getAssignments","map","assignments","arr","empty","shardId","runnerAddress","push","ShardId","fromString","none","some","decodeRunnerAddress","saveAssignments","toString","isNone","encodeRunnerAddress","value","getRunners","gen","runners","results","length","address","runner","Runner","decodeSync","saveRunners","suspend","Array","from","encodeSync","acquire","shardIds","id","pipe","shards","refresh","release","releaseAll","layerNoop","sync","acquired","void","_address","succeed","makeMemory","layerMemory","effect","host","port","split","RunnerAddress","Number"],"sources":["../../src/ShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.layer = void 0;
|
|
7
|
-
var _SocketServer = require("@effect/platform/SocketServer");
|
|
8
|
-
var RpcServer = _interopRequireWildcard(require("@effect/rpc/RpcServer"));
|
|
9
|
-
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
11
|
-
var MessageStorage = _interopRequireWildcard(require("./MessageStorage.js"));
|
|
12
|
-
var Runners = _interopRequireWildcard(require("./Runners.js"));
|
|
13
|
-
var ShardManager = _interopRequireWildcard(require("./ShardManager.js"));
|
|
14
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
|
-
/**
|
|
16
|
-
* @since 1.0.0
|
|
17
|
-
*/
|
|
18
|
-
|
|
19
|
-
const withLogAddress = layer => Layer.effectDiscard(Effect.gen(function* () {
|
|
20
|
-
const server = yield* _SocketServer.SocketServer;
|
|
21
|
-
const address = server.address._tag === "UnixAddress" ? server.address.path : `${server.address.hostname}:${server.address.port}`;
|
|
22
|
-
yield* Effect.annotateLogs(Effect.logInfo(`Listening on: ${address}`), {
|
|
23
|
-
package: "@effect/cluster",
|
|
24
|
-
service: "ShardManager"
|
|
25
|
-
});
|
|
26
|
-
})).pipe(Layer.provideMerge(layer));
|
|
27
|
-
/**
|
|
28
|
-
* @since 1.0.0
|
|
29
|
-
* @category Layers
|
|
30
|
-
*/
|
|
31
|
-
const layer = exports.layer = /*#__PURE__*/ShardManager.layerServer.pipe(withLogAddress, /*#__PURE__*/Layer.provide(/*#__PURE__*/Layer.fresh(RpcServer.layerProtocolSocketServer)), /*#__PURE__*/Layer.provideMerge(ShardManager.layer), /*#__PURE__*/Layer.provide(Runners.layerRpc), /*#__PURE__*/Layer.provide(MessageStorage.layerNoop));
|
|
32
|
-
//# sourceMappingURL=SocketShardManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SocketShardManager.js","names":["_SocketServer","require","RpcServer","_interopRequireWildcard","Effect","Layer","MessageStorage","Runners","ShardManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withLogAddress","layer","effectDiscard","gen","server","SocketServer","address","_tag","path","hostname","port","annotateLogs","logInfo","package","service","pipe","provideMerge","exports","layerServer","provide","fresh","layerProtocolSocketServer","layerRpc","layerNoop"],"sources":["../../src/SocketShardManager.ts"],"sourcesContent":[null],"mappings":";;;;;;AAGA,IAAAA,aAAA,GAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,MAAA,GAAAD,uBAAA,CAAAF,OAAA;AACA,IAAAI,KAAA,GAAAF,uBAAA,CAAAF,OAAA;AACA,IAAAK,cAAA,GAAAH,uBAAA,CAAAF,OAAA;AAEA,IAAAM,OAAA,GAAAJ,uBAAA,CAAAF,OAAA;AAEA,IAAAO,YAAA,GAAAL,uBAAA,CAAAF,OAAA;AAAiD,SAAAE,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAZjD;;;;AAeA,MAAMkB,cAAc,GAAaC,KAA2B,IAC1DxB,KAAK,CAACyB,aAAa,CAAC1B,MAAM,CAAC2B,GAAG,CAAC,aAAS;EACtC,MAAMC,MAAM,GAAG,OAAOC,0BAAY;EAClC,MAAMC,OAAO,GAAGF,MAAM,CAACE,OAAO,CAACC,IAAI,KAAK,aAAa,GACjDH,MAAM,CAACE,OAAO,CAACE,IAAI,GACnB,GAAGJ,MAAM,CAACE,OAAO,CAACG,QAAQ,IAAIL,MAAM,CAACE,OAAO,CAACI,IAAI,EAAE;EACvD,OAAOlC,MAAM,CAACmC,YAAY,CAACnC,MAAM,CAACoC,OAAO,CAAC,iBAAiBN,OAAO,EAAE,CAAC,EAAE;IACrEO,OAAO,EAAE,iBAAiB;IAC1BC,OAAO,EAAE;GACV,CAAC;AACJ,CAAC,CAAC,CAAC,CAACC,IAAI,CAACtC,KAAK,CAACuC,YAAY,CAACf,KAAK,CAAC,CAAC;AAErC;;;;AAIO,MAAMA,KAAK,GAAAgB,OAAA,CAAAhB,KAAA,gBAUdrB,YAAY,CAACsC,WAAW,CAACH,IAAI,CAC/Bf,cAAc,eACdvB,KAAK,CAAC0C,OAAO,cAAC1C,KAAK,CAAC2C,KAAK,CAAC9C,SAAS,CAAC+C,yBAAyB,CAAC,CAAC,eAC/D5C,KAAK,CAACuC,YAAY,CAACpC,YAAY,CAACqB,KAAK,CAAC,eACtCxB,KAAK,CAAC0C,OAAO,CAACxC,OAAO,CAAC2C,QAAQ,CAAC,eAC/B7C,KAAK,CAAC0C,OAAO,CAACzC,cAAc,CAAC6C,SAAS,CAAC,CACxC","ignoreList":[]}
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.make = exports.layerWith = exports.layer = void 0;
|
|
7
|
-
var SqlClient = _interopRequireWildcard(require("@effect/sql/SqlClient"));
|
|
8
|
-
var Arr = _interopRequireWildcard(require("effect/Array"));
|
|
9
|
-
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
11
|
-
var _ClusterError = require("./ClusterError.js");
|
|
12
|
-
var ShardStorage = _interopRequireWildcard(require("./ShardStorage.js"));
|
|
13
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
-
/**
|
|
15
|
-
* @since 1.0.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
const withTracerDisabled = /*#__PURE__*/Effect.withTracerEnabled(false);
|
|
19
|
-
/**
|
|
20
|
-
* @since 1.0.0
|
|
21
|
-
* @category Constructors
|
|
22
|
-
*/
|
|
23
|
-
const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (options) {
|
|
24
|
-
const sql = (yield* SqlClient.SqlClient).withoutTransforms();
|
|
25
|
-
const prefix = options?.prefix ?? "cluster";
|
|
26
|
-
const table = name => `${prefix}_${name}`;
|
|
27
|
-
const runnersTable = table("runners");
|
|
28
|
-
const runnersTableSql = sql(runnersTable);
|
|
29
|
-
yield* sql.onDialectOrElse({
|
|
30
|
-
mssql: () => sql`
|
|
31
|
-
IF OBJECT_ID(N'${runnersTableSql}', N'U') IS NULL
|
|
32
|
-
CREATE TABLE ${runnersTableSql} (
|
|
33
|
-
address VARCHAR(255) PRIMARY KEY,
|
|
34
|
-
runner TEXT NOT NULL
|
|
35
|
-
)
|
|
36
|
-
`,
|
|
37
|
-
mysql: () => sql`
|
|
38
|
-
CREATE TABLE IF NOT EXISTS ${runnersTableSql} (
|
|
39
|
-
address VARCHAR(255) PRIMARY KEY,
|
|
40
|
-
runner TEXT NOT NULL
|
|
41
|
-
)
|
|
42
|
-
`,
|
|
43
|
-
pg: () => sql`
|
|
44
|
-
CREATE TABLE IF NOT EXISTS ${runnersTableSql} (
|
|
45
|
-
address VARCHAR(255) PRIMARY KEY,
|
|
46
|
-
runner TEXT NOT NULL
|
|
47
|
-
)
|
|
48
|
-
`,
|
|
49
|
-
orElse: () =>
|
|
50
|
-
// sqlite
|
|
51
|
-
sql`
|
|
52
|
-
CREATE TABLE IF NOT EXISTS ${runnersTableSql} (
|
|
53
|
-
address TEXT PRIMARY KEY,
|
|
54
|
-
runner TEXT NOT NULL
|
|
55
|
-
)
|
|
56
|
-
`
|
|
57
|
-
});
|
|
58
|
-
const shardsTable = table("shards");
|
|
59
|
-
const shardsTableSql = sql(shardsTable);
|
|
60
|
-
yield* sql.onDialectOrElse({
|
|
61
|
-
mssql: () => sql`
|
|
62
|
-
IF OBJECT_ID(N'${shardsTableSql}', N'U') IS NULL
|
|
63
|
-
CREATE TABLE ${shardsTableSql} (
|
|
64
|
-
shard_id VARCHAR(50) PRIMARY KEY,
|
|
65
|
-
address VARCHAR(255)
|
|
66
|
-
)
|
|
67
|
-
`,
|
|
68
|
-
mysql: () => sql`
|
|
69
|
-
CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
|
|
70
|
-
shard_id VARCHAR(50) PRIMARY KEY,
|
|
71
|
-
address VARCHAR(255)
|
|
72
|
-
)
|
|
73
|
-
`,
|
|
74
|
-
pg: () => sql`
|
|
75
|
-
CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
|
|
76
|
-
shard_id VARCHAR(50) PRIMARY KEY,
|
|
77
|
-
address VARCHAR(255)
|
|
78
|
-
)
|
|
79
|
-
`,
|
|
80
|
-
orElse: () =>
|
|
81
|
-
// sqlite
|
|
82
|
-
sql`
|
|
83
|
-
CREATE TABLE IF NOT EXISTS ${shardsTableSql} (
|
|
84
|
-
shard_id TEXT PRIMARY KEY,
|
|
85
|
-
address TEXT
|
|
86
|
-
)
|
|
87
|
-
`
|
|
88
|
-
});
|
|
89
|
-
const locksTable = table("locks");
|
|
90
|
-
const locksTableSql = sql(locksTable);
|
|
91
|
-
yield* sql.onDialectOrElse({
|
|
92
|
-
mssql: () => sql`
|
|
93
|
-
IF OBJECT_ID(N'${locksTableSql}', N'U') IS NULL
|
|
94
|
-
CREATE TABLE ${locksTableSql} (
|
|
95
|
-
shard_id VARCHAR(50) PRIMARY KEY,
|
|
96
|
-
address VARCHAR(255) NOT NULL,
|
|
97
|
-
acquired_at DATETIME NOT NULL
|
|
98
|
-
)
|
|
99
|
-
`,
|
|
100
|
-
mysql: () => sql`
|
|
101
|
-
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
102
|
-
shard_id VARCHAR(50) PRIMARY KEY,
|
|
103
|
-
address VARCHAR(255) NOT NULL,
|
|
104
|
-
acquired_at DATETIME NOT NULL
|
|
105
|
-
)
|
|
106
|
-
`,
|
|
107
|
-
pg: () => sql`
|
|
108
|
-
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
109
|
-
shard_id VARCHAR(50) PRIMARY KEY,
|
|
110
|
-
address VARCHAR(255) NOT NULL,
|
|
111
|
-
acquired_at TIMESTAMP NOT NULL
|
|
112
|
-
)
|
|
113
|
-
`,
|
|
114
|
-
orElse: () =>
|
|
115
|
-
// sqlite
|
|
116
|
-
sql`
|
|
117
|
-
CREATE TABLE IF NOT EXISTS ${locksTableSql} (
|
|
118
|
-
shard_id TEXT PRIMARY KEY,
|
|
119
|
-
address TEXT NOT NULL,
|
|
120
|
-
acquired_at DATETIME NOT NULL
|
|
121
|
-
)
|
|
122
|
-
`
|
|
123
|
-
});
|
|
124
|
-
const sqlNowString = sql.onDialectOrElse({
|
|
125
|
-
pg: () => "NOW()",
|
|
126
|
-
mysql: () => "NOW()",
|
|
127
|
-
mssql: () => "GETDATE()",
|
|
128
|
-
orElse: () => "CURRENT_TIMESTAMP"
|
|
129
|
-
});
|
|
130
|
-
const sqlNow = sql.literal(sqlNowString);
|
|
131
|
-
const lockExpiresAt = sql.onDialectOrElse({
|
|
132
|
-
pg: () => sql`${sqlNow} - INTERVAL '5 seconds'`,
|
|
133
|
-
mysql: () => sql`DATE_SUB(${sqlNow}, INTERVAL 5 SECOND)`,
|
|
134
|
-
mssql: () => sql`DATEADD(SECOND, -5, ${sqlNow})`,
|
|
135
|
-
orElse: () => sql`datetime(${sqlNow}, '-5 seconds')`
|
|
136
|
-
});
|
|
137
|
-
const acquireLock = sql.onDialectOrElse({
|
|
138
|
-
pg: () => (address, values) => sql`
|
|
139
|
-
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
140
|
-
ON CONFLICT (shard_id) DO UPDATE
|
|
141
|
-
SET address = ${address}, acquired_at = ${sqlNow}
|
|
142
|
-
WHERE ${locksTableSql}.address = ${address}
|
|
143
|
-
OR ${locksTableSql}.acquired_at < ${lockExpiresAt}
|
|
144
|
-
`,
|
|
145
|
-
mysql: () => (_address, values) => sql`
|
|
146
|
-
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at) VALUES ${sql.csv(values)}
|
|
147
|
-
ON DUPLICATE KEY UPDATE
|
|
148
|
-
address = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(address), address),
|
|
149
|
-
acquired_at = IF(address = VALUES(address) OR acquired_at < ${lockExpiresAt}, VALUES(acquired_at), acquired_at)
|
|
150
|
-
`.unprepared,
|
|
151
|
-
mssql: () => (_address, values) => sql`
|
|
152
|
-
MERGE ${locksTableSql} WITH (HOLDLOCK) AS target
|
|
153
|
-
USING (SELECT * FROM (VALUES ${sql.csv(values)})) AS source (shard_id, address, acquired_at)
|
|
154
|
-
ON target.shard_id = source.shard_id
|
|
155
|
-
WHEN MATCHED AND (target.address = source.address OR DATEDIFF(SECOND, target.acquired_at, ${sqlNow}) > 5) THEN
|
|
156
|
-
UPDATE SET address = source.address, acquired_at = source.acquired_at
|
|
157
|
-
WHEN NOT MATCHED THEN
|
|
158
|
-
INSERT (shard_id, address, acquired_at)
|
|
159
|
-
VALUES (source.shard_id, source.address, source.acquired_at);
|
|
160
|
-
`,
|
|
161
|
-
orElse: () => (address, values) =>
|
|
162
|
-
// sqlite
|
|
163
|
-
sql`
|
|
164
|
-
WITH source(shard_id, address, acquired_at) AS (VALUES ${sql.csv(values)})
|
|
165
|
-
INSERT INTO ${locksTableSql} (shard_id, address, acquired_at)
|
|
166
|
-
SELECT source.shard_id, source.address, source.acquired_at
|
|
167
|
-
FROM source
|
|
168
|
-
WHERE NOT EXISTS (
|
|
169
|
-
SELECT 1 FROM ${locksTableSql}
|
|
170
|
-
WHERE shard_id = source.shard_id
|
|
171
|
-
AND address != ${address}
|
|
172
|
-
AND (strftime('%s', ${sqlNow}) - strftime('%s', acquired_at)) <= 5
|
|
173
|
-
)
|
|
174
|
-
ON CONFLICT(shard_id) DO UPDATE
|
|
175
|
-
SET address = ${address}, acquired_at = ${sqlNow}
|
|
176
|
-
`
|
|
177
|
-
});
|
|
178
|
-
const wrapString = sql.onDialectOrElse({
|
|
179
|
-
mssql: () => s => `N'${s}'`,
|
|
180
|
-
orElse: () => s => `'${s}'`
|
|
181
|
-
});
|
|
182
|
-
const wrapStringArr = arr => sql.literal(arr.map(wrapString).join(", "));
|
|
183
|
-
const refreshShards = sql.onDialectOrElse({
|
|
184
|
-
mysql: () => (address, shardIds) => {
|
|
185
|
-
const shardIdsStr = wrapStringArr(shardIds);
|
|
186
|
-
return sql`
|
|
187
|
-
UPDATE ${locksTableSql}
|
|
188
|
-
SET acquired_at = ${sqlNow}
|
|
189
|
-
WHERE address = ${address} AND shard_id IN (${shardIdsStr});
|
|
190
|
-
SELECT shard_id FROM ${locksTableSql} WHERE address = ${address} AND shard_id IN (${shardIdsStr})
|
|
191
|
-
`.unprepared.pipe(Effect.map(rows => rows[1].map(row => [row.shard_id])));
|
|
192
|
-
},
|
|
193
|
-
mssql: () => (address, shardIds) => sql`
|
|
194
|
-
UPDATE ${locksTableSql}
|
|
195
|
-
SET acquired_at = ${sqlNow}
|
|
196
|
-
OUTPUT inserted.shard_id
|
|
197
|
-
WHERE address = ${address} AND shard_id IN (${wrapStringArr(shardIds)})
|
|
198
|
-
`.values,
|
|
199
|
-
orElse: () => (address, shardIds) => sql`
|
|
200
|
-
UPDATE ${locksTableSql}
|
|
201
|
-
SET acquired_at = ${sqlNow}
|
|
202
|
-
WHERE address = ${address} AND shard_id IN (${wrapStringArr(shardIds)})
|
|
203
|
-
RETURNING shard_id
|
|
204
|
-
`.values
|
|
205
|
-
});
|
|
206
|
-
return ShardStorage.makeEncoded({
|
|
207
|
-
getAssignments: sql`SELECT shard_id, address FROM ${shardsTableSql} ORDER BY shard_id`.values.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled),
|
|
208
|
-
saveAssignments: assignments => {
|
|
209
|
-
const remove = sql`DELETE FROM ${shardsTableSql}`;
|
|
210
|
-
if (assignments.length === 0) {
|
|
211
|
-
return _ClusterError.PersistenceError.refail(remove);
|
|
212
|
-
}
|
|
213
|
-
const values = assignments.map(([shardId, address]) => sql`(${shardId}, ${address})`);
|
|
214
|
-
return remove.pipe(Effect.andThen(sql`INSERT INTO ${shardsTableSql} (shard_id, address) VALUES ${sql.csv(values)}`.unprepared), sql.withTransaction, _ClusterError.PersistenceError.refail, withTracerDisabled);
|
|
215
|
-
},
|
|
216
|
-
getRunners: sql`SELECT address, runner FROM ${runnersTableSql}`.values.pipe(_ClusterError.PersistenceError.refail, Effect.map(Arr.map(([address, runner]) => [String(address), String(runner)])), withTracerDisabled),
|
|
217
|
-
saveRunners: runners => {
|
|
218
|
-
const remove = sql`DELETE FROM ${runnersTableSql}`;
|
|
219
|
-
if (runners.length === 0) {
|
|
220
|
-
return _ClusterError.PersistenceError.refail(remove);
|
|
221
|
-
}
|
|
222
|
-
const values = runners.map(([address, runner]) => sql`(${address}, ${runner})`);
|
|
223
|
-
const insert = sql`INSERT INTO ${runnersTableSql} (address, runner) VALUES ${sql.csv(values)}`.unprepared;
|
|
224
|
-
return remove.pipe(Effect.andThen(insert), sql.withTransaction, _ClusterError.PersistenceError.refail, withTracerDisabled);
|
|
225
|
-
},
|
|
226
|
-
acquire: Effect.fnUntraced(function* (address, shardIds) {
|
|
227
|
-
if (shardIds.length > 0) {
|
|
228
|
-
const values = shardIds.map(shardId => sql`(${shardId}, ${address}, ${sqlNow})`);
|
|
229
|
-
yield* acquireLock(address, values);
|
|
230
|
-
}
|
|
231
|
-
const currentLocks = yield* sql`
|
|
232
|
-
SELECT shard_id FROM ${sql(locksTable)}
|
|
233
|
-
WHERE address = ${address} AND acquired_at >= ${lockExpiresAt}
|
|
234
|
-
`.values;
|
|
235
|
-
return currentLocks.map(row => row[0]);
|
|
236
|
-
}, sql.withTransaction, _ClusterError.PersistenceError.refail, withTracerDisabled),
|
|
237
|
-
refresh: (address, shardIds) => shardIds.length === 0 ? Effect.succeed([]) : refreshShards(address, shardIds).pipe(Effect.map(rows => rows.map(row => row[0])), _ClusterError.PersistenceError.refail, withTracerDisabled),
|
|
238
|
-
release: (address, shardId) => sql`DELETE FROM ${locksTableSql} WHERE address = ${address} AND shard_id = ${shardId}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled),
|
|
239
|
-
releaseAll: address => sql`DELETE FROM ${locksTableSql} WHERE address = ${address}`.pipe(_ClusterError.PersistenceError.refail, withTracerDisabled)
|
|
240
|
-
});
|
|
241
|
-
}, withTracerDisabled);
|
|
242
|
-
/**
|
|
243
|
-
* @since 1.0.0
|
|
244
|
-
* @category Layers
|
|
245
|
-
*/
|
|
246
|
-
const layer = exports.layer = /*#__PURE__*/Layer.effect(ShardStorage.ShardStorage, /*#__PURE__*/make());
|
|
247
|
-
/**
|
|
248
|
-
* @since 1.0.0
|
|
249
|
-
* @category Layers
|
|
250
|
-
*/
|
|
251
|
-
const layerWith = options => Layer.scoped(ShardStorage.ShardStorage, make(options));
|
|
252
|
-
exports.layerWith = layerWith;
|
|
253
|
-
//# sourceMappingURL=SqlShardStorage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SqlShardStorage.js","names":["SqlClient","_interopRequireWildcard","require","Arr","Effect","Layer","_ClusterError","ShardStorage","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","withTracerDisabled","withTracerEnabled","make","exports","fnUntraced","options","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","wrapString","s","wrapStringArr","arr","map","join","refreshShards","shardIds","shardIdsStr","pipe","rows","row","shard_id","makeEncoded","getAssignments","PersistenceError","refail","saveAssignments","assignments","remove","length","shardId","andThen","withTransaction","getRunners","runner","String","saveRunners","runners","insert","acquire","currentLocks","refresh","succeed","release","releaseAll","layer","effect","layerWith","scoped"],"sources":["../../src/SqlShardStorage.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.make = exports.layer = void 0;
|
|
7
|
-
var Clock = _interopRequireWildcard(require("effect/Clock"));
|
|
8
|
-
var Duration = _interopRequireWildcard(require("effect/Duration"));
|
|
9
|
-
var Effect = _interopRequireWildcard(require("effect/Effect"));
|
|
10
|
-
var Layer = _interopRequireWildcard(require("effect/Layer"));
|
|
11
|
-
var Schedule = _interopRequireWildcard(require("effect/Schedule"));
|
|
12
|
-
var _ShardManager = require("./ShardManager.js");
|
|
13
|
-
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
14
|
-
/**
|
|
15
|
-
* @since 1.0.0
|
|
16
|
-
*/
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* @since 1.0.0
|
|
20
|
-
* @category Constructors
|
|
21
|
-
*/
|
|
22
|
-
const make = exports.make = /*#__PURE__*/Effect.fnUntraced(function* (getRemoteTime) {
|
|
23
|
-
const clock = yield* Effect.clock;
|
|
24
|
-
let driftMillis = 0;
|
|
25
|
-
let driftNanos = BigInt(0);
|
|
26
|
-
yield* getRemoteTime.pipe(Effect.timed, Effect.map(([duration, shardManagerTime]) => {
|
|
27
|
-
const halfTrip = Duration.unsafeDivide(duration, 2);
|
|
28
|
-
shardManagerTime = shardManagerTime + Duration.toMillis(halfTrip) + 1;
|
|
29
|
-
const selfTime = clock.unsafeCurrentTimeMillis();
|
|
30
|
-
return shardManagerTime - selfTime;
|
|
31
|
-
}), Effect.replicateEffect(5), Effect.flatMap(drifts => {
|
|
32
|
-
drifts.sort();
|
|
33
|
-
const drift = (driftMillis + drifts[2]) / 2;
|
|
34
|
-
driftMillis = Math.round(drift);
|
|
35
|
-
driftNanos = BigInt(Math.round(drift * 1_000_000));
|
|
36
|
-
return Effect.logDebug("Current drift", driftMillis);
|
|
37
|
-
}), Effect.andThen(Effect.sleep(Duration.minutes(5))), Effect.forever, Effect.sandbox, Effect.retry(Schedule.spaced(Duration.minutes(1))), Effect.annotateLogs({
|
|
38
|
-
package: "@effect/cluster",
|
|
39
|
-
service: "SynchronizedClock"
|
|
40
|
-
}), Effect.forkScoped);
|
|
41
|
-
function unsafeCurrentTimeMillis() {
|
|
42
|
-
return clock.unsafeCurrentTimeMillis() + driftMillis;
|
|
43
|
-
}
|
|
44
|
-
function unsafeCurrentTimeNanos() {
|
|
45
|
-
return clock.unsafeCurrentTimeNanos() + driftNanos;
|
|
46
|
-
}
|
|
47
|
-
return Clock.Clock.of({
|
|
48
|
-
[Clock.ClockTypeId]: Clock.ClockTypeId,
|
|
49
|
-
sleep: clock.sleep,
|
|
50
|
-
unsafeCurrentTimeMillis,
|
|
51
|
-
unsafeCurrentTimeNanos,
|
|
52
|
-
currentTimeMillis: Effect.sync(unsafeCurrentTimeMillis),
|
|
53
|
-
currentTimeNanos: Effect.sync(unsafeCurrentTimeNanos)
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
/**
|
|
57
|
-
* @since 1.0.0
|
|
58
|
-
* @category Layers
|
|
59
|
-
*/
|
|
60
|
-
const layer = exports.layer = /*#__PURE__*/Layer.unwrapScoped(/*#__PURE__*/Effect.gen(function* () {
|
|
61
|
-
const shardManager = yield* _ShardManager.ShardManagerClient;
|
|
62
|
-
const clock = yield* make(shardManager.getTime);
|
|
63
|
-
return Layer.setClock(clock);
|
|
64
|
-
}));
|
|
65
|
-
//# sourceMappingURL=SynchronizedClock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SynchronizedClock.js","names":["Clock","_interopRequireWildcard","require","Duration","Effect","Layer","Schedule","_ShardManager","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","make","exports","fnUntraced","getRemoteTime","clock","driftMillis","driftNanos","BigInt","pipe","timed","map","duration","shardManagerTime","halfTrip","unsafeDivide","toMillis","selfTime","unsafeCurrentTimeMillis","replicateEffect","flatMap","drifts","sort","drift","Math","round","logDebug","andThen","sleep","minutes","forever","sandbox","retry","spaced","annotateLogs","package","service","forkScoped","unsafeCurrentTimeNanos","of","ClockTypeId","currentTimeMillis","sync","currentTimeNanos","layer","unwrapScoped","gen","shardManager","ShardManagerClient","getTime","setClock"],"sources":["../../src/SynchronizedClock.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|