@serfab/quereus-plugin-sereus 1.13.0 → 1.15.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/README.md +4 -0
- package/dist/compose-strand.js +43 -26
- package/dist/compose-strand.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/plugin-browser.js +28 -28
- package/dist/plugin-browser.js.map +4 -4
- package/dist/types.d.ts +15 -0
- package/package.json +7 -7
- package/src/compose-strand.ts +484 -458
- package/src/index.ts +1 -0
- package/src/types.ts +15 -0
package/README.md
CHANGED
|
@@ -270,6 +270,10 @@ const strand = await connectToStrand(db, {
|
|
|
270
270
|
The plugin uses the injected node instead of creating one, and will not stop it
|
|
271
271
|
on shutdown.
|
|
272
272
|
|
|
273
|
+
### A commit's durability
|
|
274
|
+
|
|
275
|
+
The result's `onCommitDurability(listener)` is called after every commit that wrote something, before the commit returns, with who holds what it wrote; `onCommitFullyHeld(listener)` is called once when a commit reported `followed` below full replication becomes held by its whole cohort. Both pass through from `@optimystic/quereus-plugin-optimystic`, whose README explains the report ([A commit's durability](https://github.com/gotchoices/optimystic/blob/main/packages/quereus-plugin-optimystic/README.md#a-commits-durability--pluginoncommitdurabilitylistener)); the `SqlCommitDurability` and `CommitFullyHeld` types are re-exported here. A cadre app reads the same reports through `@serfab/cadre-core` ([strands.md → A commit's durability](../../docs/strands.md#a-commits-durability)).
|
|
276
|
+
|
|
273
277
|
---
|
|
274
278
|
|
|
275
279
|
## Configuration
|
package/dist/compose-strand.js
CHANGED
|
@@ -5,6 +5,33 @@ import { resolveStrandClusterSize, STRAND_CLUSTER_POLICY } from './cluster-size.
|
|
|
5
5
|
import { wrapStorageWithCache, disposeStorageCache } from './cached-storage.js';
|
|
6
6
|
const log = debug('sereus:plugin:strand');
|
|
7
7
|
const timing = debug('sereus:plugin:strand:timing');
|
|
8
|
+
/**
|
|
9
|
+
* Release a composition's hold on the optimystic plugin. The transaction bridge goes first: its
|
|
10
|
+
* durability follower subscribes to the node's `StorageRepo`, and cadre-core keeps a strand's node
|
|
11
|
+
* across a database rebuild, so a bridge never disposed stays subscribed once per rebuild. Then the
|
|
12
|
+
* collection factory: a node the composition created is stopped with it; an injected node is left
|
|
13
|
+
* running, because it belongs to the caller — cadre-core keeps a strand's node up across a failed
|
|
14
|
+
* database build and retries the build on it.
|
|
15
|
+
*
|
|
16
|
+
* Disposes the bridge itself rather than calling the plugin's `dispose()`, which would release the
|
|
17
|
+
* factory a second time on the created-node path (`shutdown()` ends with the same `dispose()`).
|
|
18
|
+
*/
|
|
19
|
+
async function releaseOptimysticPlugin(plugin, createdNode) {
|
|
20
|
+
// NOTE: the bridge's follower re-subscribes at the start of any transaction, so a write begun on
|
|
21
|
+
// this `Database` after release (before its owner closes it) subscribes again and nothing
|
|
22
|
+
// releases it. cadre-core stops its own writers before releasing; if an app write in flight at
|
|
23
|
+
// close ever shows up as a leaked subscription, close the `Database` before releasing.
|
|
24
|
+
plugin.txnBridge.dispose();
|
|
25
|
+
const { collectionFactory } = plugin;
|
|
26
|
+
if (!createdNode) {
|
|
27
|
+
await collectionFactory.dispose();
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
await collectionFactory.shutdown();
|
|
31
|
+
// Stopped again for a node created but not yet registered (a missing `coordinatedRepo`);
|
|
32
|
+
// a second stop of a registered one is a no-op.
|
|
33
|
+
await createdNode.stop();
|
|
34
|
+
}
|
|
8
35
|
/**
|
|
9
36
|
* Inline equivalent of `@quereus/quereus`'s `registerPlugin` for plugins that
|
|
10
37
|
* only return functions/vtables/collations. Used directly for the optimystic
|
|
@@ -165,11 +192,11 @@ export async function composeStrand(db, options, platform) {
|
|
|
165
192
|
// Manager/Member, invite/peer flows) is owned by the lifecycle ticket
|
|
166
193
|
// `strand-membership-lifecycle-population`.
|
|
167
194
|
log('Applying Strand membership schema for strand %s', strandId);
|
|
168
|
-
await db.exec(`
|
|
169
|
-
declare schema Strand {
|
|
170
|
-
${STRAND_SCHEMA}
|
|
171
|
-
}
|
|
172
|
-
apply schema Strand;
|
|
195
|
+
await db.exec(`
|
|
196
|
+
declare schema Strand {
|
|
197
|
+
${STRAND_SCHEMA}
|
|
198
|
+
}
|
|
199
|
+
apply schema Strand;
|
|
173
200
|
`);
|
|
174
201
|
log('Strand membership schema applied');
|
|
175
202
|
// 7. Apply the sApp schema, if provided.
|
|
@@ -178,7 +205,7 @@ export async function composeStrand(db, options, platform) {
|
|
|
178
205
|
// where strand-level declarative DDL is applied. Keep new schema wiring
|
|
179
206
|
// here so it stays a one-location edit across Node, browser, and cadre-core.
|
|
180
207
|
//
|
|
181
|
-
// NOTE: neither apply is retried — a failure
|
|
208
|
+
// NOTE: neither apply is retried here — a failure releases this composition and throws,
|
|
182
209
|
// and a later connect builds a fresh `Database` and re-hydrates from storage. A
|
|
183
210
|
// failed apply is normally taken back whole (Quereus unwinds its migration steps
|
|
184
211
|
// and verifies the catalog against a pre-apply fingerprint), so the next connect
|
|
@@ -196,33 +223,23 @@ export async function composeStrand(db, options, platform) {
|
|
|
196
223
|
}
|
|
197
224
|
catch (err) {
|
|
198
225
|
// Clean up resources if setup fails after partial initialization.
|
|
199
|
-
await
|
|
200
|
-
if (createdNode) {
|
|
201
|
-
await createdNode.stop();
|
|
202
|
-
}
|
|
226
|
+
await releaseOptimysticPlugin(pluginResult, createdNode);
|
|
203
227
|
await releaseStorageCache();
|
|
204
228
|
throw err;
|
|
205
229
|
}
|
|
206
|
-
// 8. Return result with hydrate counts + shutdown handler.
|
|
207
|
-
//
|
|
208
|
-
// node registered with it — including an injected one (registered via
|
|
209
|
-
// `registerLibp2pNode`). So an injected node IS stopped on `shutdown`; the
|
|
210
|
-
// `createdNode` guard below only avoids a redundant second `stop()` on a node
|
|
211
|
-
// we created ourselves, it is not what spares an injected node. A caller that
|
|
212
|
-
// needs an injected node to outlive `shutdown` must re-create it (cadre-core's
|
|
213
|
-
// `StrandInstanceManager` instead re-stops it, which is idempotent).
|
|
230
|
+
// 8. Return result with hydrate counts, the commit-durability listeners + shutdown handler.
|
|
231
|
+
// `shutdown` releases the plugin and stops the node only if this composition created it.
|
|
214
232
|
return {
|
|
215
233
|
vtables: [],
|
|
216
234
|
functions: [],
|
|
217
235
|
collations: [],
|
|
218
236
|
hydrated,
|
|
219
237
|
transactor: resolvedTransactor,
|
|
238
|
+
onCommitDurability: listener => pluginResult.onCommitDurability(listener),
|
|
239
|
+
onCommitFullyHeld: listener => pluginResult.onCommitFullyHeld(listener),
|
|
220
240
|
async shutdown() {
|
|
221
241
|
log('Shutting down strand connection %s', strandId);
|
|
222
|
-
await
|
|
223
|
-
if (createdNode) {
|
|
224
|
-
await createdNode.stop();
|
|
225
|
-
}
|
|
242
|
+
await releaseOptimysticPlugin(pluginResult, createdNode);
|
|
226
243
|
await releaseStorageCache();
|
|
227
244
|
log('Strand connection %s shut down', strandId);
|
|
228
245
|
},
|
|
@@ -245,10 +262,10 @@ export async function composeStrand(db, options, platform) {
|
|
|
245
262
|
* the same key at once would collide. Rows an app needs at birth are the founding app's to write.
|
|
246
263
|
*/
|
|
247
264
|
export async function applyAppSchema(db, schema) {
|
|
248
|
-
await db.exec(`
|
|
249
|
-
declare schema App {
|
|
250
|
-
${schema}
|
|
251
|
-
}
|
|
265
|
+
await db.exec(`
|
|
266
|
+
declare schema App {
|
|
267
|
+
${schema}
|
|
268
|
+
}
|
|
252
269
|
`);
|
|
253
270
|
assertNoIgnoredItems(db);
|
|
254
271
|
assertNoSeedItems(db);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose-strand.js","sourceRoot":"","sources":["../src/compose-strand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAAgB,MAAM,8CAA8C,CAAC;
|
|
1
|
+
{"version":3,"file":"compose-strand.js","sourceRoot":"","sources":["../src/compose-strand.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -3,3 +3,4 @@ export { applyAppSchema } from './compose-strand.js';
|
|
|
3
3
|
export { MIN_CLUSTER_SIZE, COHORT_READ_DEADLINE_MS, CONTROL_REPLICATION_BREADTH, CONTROL_CLUSTER_POLICY, DEFAULT_STRAND_CLUSTER_SIZE, STRAND_CLUSTER_POLICY, resolveStrandClusterSize, resolveRepairYardstick, controlClusterPolicy, strandClusterPolicy } from './cluster-size.js';
|
|
4
4
|
export { wrapStorageWithCache, disposeStorageCache } from './cached-storage.js';
|
|
5
5
|
export type { StrandConnectionOptions, SereusPluginResult, StrandTransactor } from './types.js';
|
|
6
|
+
export type { SqlCommitDurability, CommitFullyHeld } from '@optimystic/quereus-plugin-optimystic/plugin';
|