@optimystic/db-p2p 1.0.0-beta.3 → 1.0.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/dist/src/cluster/block-transfer-service.d.ts +73 -1
- package/dist/src/cluster/block-transfer-service.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer-service.js +70 -3
- package/dist/src/cluster/block-transfer-service.js.map +1 -1
- package/dist/src/cluster/block-transfer.d.ts +16 -1
- package/dist/src/cluster/block-transfer.d.ts.map +1 -1
- package/dist/src/cluster/block-transfer.js +73 -72
- package/dist/src/cluster/block-transfer.js.map +1 -1
- package/dist/src/cluster/client.d.ts +4 -6
- package/dist/src/cluster/client.d.ts.map +1 -1
- package/dist/src/cluster/client.js +8 -13
- package/dist/src/cluster/client.js.map +1 -1
- package/dist/src/cluster/cluster-policy.d.ts +2 -1
- package/dist/src/cluster/cluster-policy.d.ts.map +1 -1
- package/dist/src/cluster/cluster-policy.js.map +1 -1
- package/dist/src/cluster/cluster-repo.d.ts +126 -6
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +378 -50
- package/dist/src/cluster/cluster-repo.js.map +1 -1
- package/dist/src/cluster/commit-proof.js +2 -2
- package/dist/src/cluster/race-resolution.d.ts +51 -7
- package/dist/src/cluster/race-resolution.d.ts.map +1 -1
- package/dist/src/cluster/race-resolution.js +71 -7
- package/dist/src/cluster/race-resolution.js.map +1 -1
- package/dist/src/cluster/rebalance-monitor.d.ts +67 -5
- package/dist/src/cluster/rebalance-monitor.d.ts.map +1 -1
- package/dist/src/cluster/rebalance-monitor.js +120 -26
- package/dist/src/cluster/rebalance-monitor.js.map +1 -1
- package/dist/src/cluster/spread-on-churn.d.ts.map +1 -1
- package/dist/src/cluster/spread-on-churn.js +34 -47
- package/dist/src/cluster/spread-on-churn.js.map +1 -1
- package/dist/src/cohort-topic/host.d.ts.map +1 -1
- package/dist/src/cohort-topic/host.js +8 -6
- package/dist/src/cohort-topic/host.js.map +1 -1
- package/dist/src/cohort-topic/membership-source.js +1 -1
- package/dist/src/cohort-topic/membership-source.js.map +1 -1
- package/dist/src/cohort-topic/peer-codec.d.ts.map +1 -1
- package/dist/src/cohort-topic/peer-codec.js +5 -2
- package/dist/src/cohort-topic/peer-codec.js.map +1 -1
- package/dist/src/cohort-topic/stream-util.d.ts +24 -3
- package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
- package/dist/src/cohort-topic/stream-util.js +36 -3
- package/dist/src/cohort-topic/stream-util.js.map +1 -1
- package/dist/src/cohort-topic/topic-router.d.ts +9 -0
- package/dist/src/cohort-topic/topic-router.d.ts.map +1 -1
- package/dist/src/cohort-topic/topic-router.js +12 -2
- package/dist/src/cohort-topic/topic-router.js.map +1 -1
- package/dist/src/dispute/client.d.ts.map +1 -1
- package/dist/src/dispute/client.js +15 -3
- package/dist/src/dispute/client.js.map +1 -1
- package/dist/src/index.d.ts +5 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p-key-network.d.ts +78 -17
- package/dist/src/libp2p-key-network.d.ts.map +1 -1
- package/dist/src/libp2p-key-network.js +234 -147
- package/dist/src/libp2p-key-network.js.map +1 -1
- package/dist/src/libp2p-node-base.d.ts +35 -1
- package/dist/src/libp2p-node-base.d.ts.map +1 -1
- package/dist/src/libp2p-node-base.js +151 -26
- package/dist/src/libp2p-node-base.js.map +1 -1
- package/dist/src/libp2p-node-rn.d.ts +2 -2
- package/dist/src/libp2p-node-rn.d.ts.map +1 -1
- package/dist/src/libp2p-node-rn.js.map +1 -1
- package/dist/src/libp2p-node.d.ts +2 -2
- package/dist/src/libp2p-node.d.ts.map +1 -1
- package/dist/src/libp2p-node.js.map +1 -1
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +6 -1
- package/dist/src/logger.js.map +1 -1
- package/dist/src/matchmaking/query-transport.d.ts +3 -4
- package/dist/src/matchmaking/query-transport.d.ts.map +1 -1
- package/dist/src/matchmaking/query-transport.js +9 -9
- package/dist/src/matchmaking/query-transport.js.map +1 -1
- package/dist/src/network/network-manager-service.d.ts +10 -5
- package/dist/src/network/network-manager-service.d.ts.map +1 -1
- package/dist/src/network/network-manager-service.js +11 -2
- package/dist/src/network/network-manager-service.js.map +1 -1
- package/dist/src/network/relay-reservation.d.ts +170 -0
- package/dist/src/network/relay-reservation.d.ts.map +1 -0
- package/dist/src/network/relay-reservation.js +527 -0
- package/dist/src/network/relay-reservation.js.map +1 -0
- package/dist/src/pend-validation.d.ts +3 -2
- package/dist/src/pend-validation.d.ts.map +1 -1
- package/dist/src/pend-validation.js +3 -2
- package/dist/src/pend-validation.js.map +1 -1
- package/dist/src/protocol-client.d.ts +8 -1
- package/dist/src/protocol-client.d.ts.map +1 -1
- package/dist/src/protocol-client.js +11 -0
- package/dist/src/protocol-client.js.map +1 -1
- package/dist/src/reactivity/forwarder-host.d.ts +2 -1
- package/dist/src/reactivity/forwarder-host.d.ts.map +1 -1
- package/dist/src/reactivity/forwarder-host.js +2 -1
- package/dist/src/reactivity/forwarder-host.js.map +1 -1
- package/dist/src/reactivity/origination-manager.d.ts +3 -3
- package/dist/src/reactivity/origination-manager.js +3 -3
- package/dist/src/reactivity/recover-transport.d.ts +22 -14
- package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
- package/dist/src/reactivity/recover-transport.js +32 -19
- package/dist/src/reactivity/recover-transport.js.map +1 -1
- package/dist/src/reactivity/subscription-manager.d.ts +2 -2
- package/dist/src/reactivity/topic-bytes.d.ts +6 -7
- package/dist/src/reactivity/topic-bytes.d.ts.map +1 -1
- package/dist/src/reactivity/topic-bytes.js +8 -9
- package/dist/src/reactivity/topic-bytes.js.map +1 -1
- package/dist/src/repo/client.d.ts +5 -2
- package/dist/src/repo/client.d.ts.map +1 -1
- package/dist/src/repo/client.js +49 -40
- package/dist/src/repo/client.js.map +1 -1
- package/dist/src/repo/cluster-coordinator.d.ts +77 -5
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +131 -20
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +238 -122
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +625 -472
- package/dist/src/repo/coordinator-repo.js.map +1 -1
- package/dist/src/repo/i-under-replication-ledger.d.ts +87 -0
- package/dist/src/repo/i-under-replication-ledger.d.ts.map +1 -0
- package/dist/src/repo/i-under-replication-ledger.js +2 -0
- package/dist/src/repo/i-under-replication-ledger.js.map +1 -0
- package/dist/src/repo/kv-under-replication-ledger.d.ts +91 -0
- package/dist/src/repo/kv-under-replication-ledger.d.ts.map +1 -0
- package/dist/src/repo/kv-under-replication-ledger.js +287 -0
- package/dist/src/repo/kv-under-replication-ledger.js.map +1 -0
- package/dist/src/repo/responsibility.d.ts +37 -0
- package/dist/src/repo/responsibility.d.ts.map +1 -0
- package/dist/src/repo/responsibility.js +37 -0
- package/dist/src/repo/responsibility.js.map +1 -0
- package/dist/src/repo/service.d.ts +44 -15
- package/dist/src/repo/service.d.ts.map +1 -1
- package/dist/src/repo/service.js +64 -27
- package/dist/src/repo/service.js.map +1 -1
- package/dist/src/repo/stuck-reservation.d.ts +127 -0
- package/dist/src/repo/stuck-reservation.d.ts.map +1 -0
- package/dist/src/repo/stuck-reservation.js +179 -0
- package/dist/src/repo/stuck-reservation.js.map +1 -0
- package/dist/src/repo/under-replication-drain.d.ts +208 -0
- package/dist/src/repo/under-replication-drain.d.ts.map +1 -0
- package/dist/src/repo/under-replication-drain.js +461 -0
- package/dist/src/repo/under-replication-drain.js.map +1 -0
- package/dist/src/rn.d.ts +5 -0
- package/dist/src/rn.d.ts.map +1 -1
- package/dist/src/rn.js +5 -0
- package/dist/src/rn.js.map +1 -1
- package/dist/src/storage/block-latch.d.ts +3 -2
- package/dist/src/storage/block-latch.d.ts.map +1 -1
- package/dist/src/storage/block-latch.js +7 -4
- package/dist/src/storage/block-latch.js.map +1 -1
- package/dist/src/storage/block-storage.d.ts +45 -3
- package/dist/src/storage/block-storage.d.ts.map +1 -1
- package/dist/src/storage/block-storage.js +156 -9
- package/dist/src/storage/block-storage.js.map +1 -1
- package/dist/src/storage/i-block-storage.d.ts +57 -5
- package/dist/src/storage/i-block-storage.d.ts.map +1 -1
- package/dist/src/storage/i-block-storage.js.map +1 -1
- package/dist/src/storage/pending-claim.d.ts +167 -0
- package/dist/src/storage/pending-claim.d.ts.map +1 -0
- package/dist/src/storage/pending-claim.js +156 -0
- package/dist/src/storage/pending-claim.js.map +1 -0
- package/dist/src/storage/raw-store-codec.d.ts +13 -0
- package/dist/src/storage/raw-store-codec.d.ts.map +1 -1
- package/dist/src/storage/raw-store-codec.js +24 -3
- package/dist/src/storage/raw-store-codec.js.map +1 -1
- package/dist/src/storage/restoration-coordinator.d.ts.map +1 -1
- package/dist/src/storage/restoration-coordinator.js +2 -1
- package/dist/src/storage/restoration-coordinator.js.map +1 -1
- package/dist/src/storage/ring-shift-coordinator.d.ts.map +1 -1
- package/dist/src/storage/ring-shift-coordinator.js +3 -3
- package/dist/src/storage/ring-shift-coordinator.js.map +1 -1
- package/dist/src/storage/storage-repo.d.ts +122 -5
- package/dist/src/storage/storage-repo.d.ts.map +1 -1
- package/dist/src/storage/storage-repo.js +245 -68
- package/dist/src/storage/storage-repo.js.map +1 -1
- package/dist/src/storage/struct.d.ts +58 -0
- package/dist/src/storage/struct.d.ts.map +1 -1
- package/dist/src/testing/mesh-harness.d.ts +77 -11
- package/dist/src/testing/mesh-harness.d.ts.map +1 -1
- package/dist/src/testing/mesh-harness.js +226 -100
- package/dist/src/testing/mesh-harness.js.map +1 -1
- package/package.json +2 -2
- package/readme.md +27 -3
- package/src/cluster/block-transfer-service.ts +132 -4
- package/src/cluster/block-transfer.ts +79 -84
- package/src/cluster/client.ts +115 -119
- package/src/cluster/cluster-policy.ts +2 -1
- package/src/cluster/cluster-repo.ts +422 -56
- package/src/cluster/commit-proof.ts +2 -2
- package/src/cluster/race-resolution.ts +76 -7
- package/src/cluster/rebalance-monitor.ts +677 -539
- package/src/cluster/spread-on-churn.ts +34 -54
- package/src/cohort-topic/host.ts +8 -6
- package/src/cohort-topic/membership-source.ts +1 -1
- package/src/cohort-topic/peer-codec.ts +34 -31
- package/src/cohort-topic/stream-util.ts +39 -4
- package/src/cohort-topic/topic-router.ts +12 -2
- package/src/dispute/client.ts +17 -7
- package/src/index.ts +64 -59
- package/src/libp2p-key-network.ts +1377 -1260
- package/src/libp2p-node-base.ts +186 -27
- package/src/libp2p-node-rn.ts +31 -30
- package/src/libp2p-node.ts +37 -36
- package/src/logger.ts +6 -1
- package/src/matchmaking/query-transport.ts +9 -9
- package/src/network/network-manager-service.ts +16 -5
- package/src/network/relay-reservation.ts +636 -0
- package/src/pend-validation.ts +3 -2
- package/src/protocol-client.ts +13 -1
- package/src/reactivity/forwarder-host.ts +2 -1
- package/src/reactivity/origination-manager.ts +3 -3
- package/src/reactivity/recover-transport.ts +39 -22
- package/src/reactivity/subscription-manager.ts +2 -2
- package/src/reactivity/topic-bytes.ts +35 -37
- package/src/repo/client.ts +172 -173
- package/src/repo/cluster-coordinator.ts +145 -19
- package/src/repo/coordinator-repo.ts +652 -505
- package/src/repo/i-under-replication-ledger.ts +89 -0
- package/src/repo/kv-under-replication-ledger.ts +302 -0
- package/src/repo/responsibility.ts +48 -0
- package/src/repo/service.ts +76 -39
- package/src/repo/stuck-reservation.ts +224 -0
- package/src/repo/under-replication-drain.ts +582 -0
- package/src/rn.ts +74 -69
- package/src/storage/block-latch.ts +7 -4
- package/src/storage/block-storage.ts +161 -10
- package/src/storage/i-block-storage.ts +60 -5
- package/src/storage/pending-claim.ts +200 -0
- package/src/storage/raw-store-codec.ts +26 -3
- package/src/storage/restoration-coordinator.ts +212 -211
- package/src/storage/ring-shift-coordinator.ts +271 -271
- package/src/storage/storage-repo.ts +280 -72
- package/src/storage/struct.ts +58 -0
- package/src/testing/mesh-harness.ts +293 -112
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
import { transformForBlockId, applyTransform, groupBy, concatTransform, emptyTransforms, blockIdsForTransforms, transformsFromTransform, highestStaleAt, isOwnRevision, canonicalBlockHash } from "@optimystic/db-core";
|
|
1
|
+
import { transformForBlockId, applyTransform, groupBy, concatTransform, emptyTransforms, blockIdsForTransforms, transformsFromTransform, highestStaleAt, isOwnRevision, canonicalBlockHash, localDurability } from "@optimystic/db-core";
|
|
2
2
|
import { asyncIteratorToArray } from "../it-utility.js";
|
|
3
|
+
import { isReservationAgainst, isBaseIndependent, declaredBaseFor } from "./pending-claim.js";
|
|
3
4
|
import { proofDeclaredDigest } from "../cluster/commit-proof.js";
|
|
4
5
|
import { RevisionNotCoveredError } from "./i-block-storage.js";
|
|
5
6
|
import { acquireBlockWriteLatches, withBlockWriteLatch } from "./block-latch.js";
|
|
6
7
|
import { createLogger } from "../logger.js";
|
|
8
|
+
import { cloneDecoded } from "./raw-store-codec.js";
|
|
7
9
|
import { checkPendValidation } from "../pend-validation.js";
|
|
8
10
|
const log = createLogger('storage-repo');
|
|
9
11
|
/**
|
|
@@ -70,6 +72,9 @@ export class StorageRepo {
|
|
|
70
72
|
changeListeners = new Map();
|
|
71
73
|
/** Catch-all change listeners — fire for EVERY collection's commit on this node. */
|
|
72
74
|
anyChangeListeners = new Set();
|
|
75
|
+
/** Full-replication listeners — fire when a block this node acknowledged below `full` has
|
|
76
|
+
* reached every cohort member. See {@link IBlockDurabilityNotifier}. */
|
|
77
|
+
durabilityListeners = new Set();
|
|
73
78
|
constructor(createBlockStorage, options) {
|
|
74
79
|
this.createBlockStorage = createBlockStorage;
|
|
75
80
|
this.validatePend = options?.validatePend;
|
|
@@ -155,7 +160,34 @@ export class StorageRepo {
|
|
|
155
160
|
}
|
|
156
161
|
}
|
|
157
162
|
}
|
|
158
|
-
|
|
163
|
+
/** Subscribe to full-replication events. See {@link IBlockDurabilityNotifier}. */
|
|
164
|
+
onBlockDurabilityReached(listener) {
|
|
165
|
+
this.durabilityListeners.add(listener);
|
|
166
|
+
let unsubscribed = false;
|
|
167
|
+
return () => {
|
|
168
|
+
if (unsubscribed)
|
|
169
|
+
return;
|
|
170
|
+
unsubscribed = true;
|
|
171
|
+
this.durabilityListeners.delete(listener);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Fire one {@link BlockDurabilityReachedEvent} to every subscriber. The producer is the
|
|
176
|
+
* under-replication drain, which reaches this through a one-method sink the node hands it and
|
|
177
|
+
* calls it only AFTER the block's ledger entry is gone. Same listener isolation as
|
|
178
|
+
* {@link fireChangeListeners}: a throwing listener is logged and the rest still run.
|
|
179
|
+
*/
|
|
180
|
+
emitBlockDurabilityReached(event) {
|
|
181
|
+
for (const listener of Array.from(this.durabilityListeners)) {
|
|
182
|
+
try {
|
|
183
|
+
listener(event);
|
|
184
|
+
}
|
|
185
|
+
catch (err) {
|
|
186
|
+
log('onBlockDurabilityReached listener threw for blocks=%o: %o', event.blockIds, err);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
async get({ blockIds, context, lineageOf }, _options) {
|
|
159
191
|
const distinctBlockIds = Array.from(new Set(blockIds));
|
|
160
192
|
log('get blockIds=%d', distinctBlockIds.length);
|
|
161
193
|
// Read-driven promotions that land durably here, captured so we can emit a
|
|
@@ -201,22 +233,38 @@ export class StorageRepo {
|
|
|
201
233
|
// `context.committed` array, and an in-place `.sort()` would reorder the shared
|
|
202
234
|
// request context under the caller's feet.
|
|
203
235
|
//
|
|
204
|
-
//
|
|
205
|
-
//
|
|
206
|
-
//
|
|
207
|
-
// base
|
|
208
|
-
//
|
|
209
|
-
//
|
|
210
|
-
// the
|
|
211
|
-
//
|
|
236
|
+
// The loop skips an entry whose pending record it does not hold — the normal case
|
|
237
|
+
// for the many actions that never touched this block — so on its own it would
|
|
238
|
+
// promote the record after a missed change straight over the stale copy. What
|
|
239
|
+
// stops that is the base each record's pend carried (`PendingClaim.baseRev`):
|
|
240
|
+
// `mayPromoteOnRead` applies a record only to the exact revision its operations
|
|
241
|
+
// were computed against and DECLINES otherwise, leaving the record and `latest`
|
|
242
|
+
// untouched and ending the walk for this block (each later entry builds on this
|
|
243
|
+
// one). No commit declaration is needed, which is the point: there is no commit
|
|
244
|
+
// request on this path.
|
|
212
245
|
try {
|
|
213
246
|
for (const { actionId, rev } of [...missing].sort((a, b) => a.rev - b.rev)) {
|
|
214
247
|
const pending = await blockStorage.getPendingTransaction(actionId);
|
|
215
|
-
if (pending) {
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
248
|
+
if (!pending) {
|
|
249
|
+
continue;
|
|
250
|
+
}
|
|
251
|
+
// Re-read per entry: the previous iteration may have just promoted the base this one needs.
|
|
252
|
+
const held = await blockStorage.getLatest();
|
|
253
|
+
if (!(await this.mayPromoteOnRead(blockId, blockStorage, actionId, pending, held))) {
|
|
254
|
+
// A decline is not a refusal: the record stays, and the committed content
|
|
255
|
+
// served below is real, merely behind — the reader's floors and the
|
|
256
|
+
// coordinator's read-repair own "behind", so no flag. The one exception is
|
|
257
|
+
// a block this node holds NO committed revision of: the answer below would
|
|
258
|
+
// be an absent that this node's own record contradicts, so it is flagged as
|
|
259
|
+
// a guess rather than posing as "never existed".
|
|
260
|
+
if (held === undefined) {
|
|
261
|
+
unavailable = 'unmaterializable';
|
|
219
262
|
}
|
|
263
|
+
break;
|
|
264
|
+
}
|
|
265
|
+
const collectionId = await this.internalCommit(blockId, actionId, rev, blockStorage, latch);
|
|
266
|
+
if (collectionId !== undefined) {
|
|
267
|
+
promotions.push({ collectionId, blockId, actionId, rev });
|
|
220
268
|
}
|
|
221
269
|
}
|
|
222
270
|
}
|
|
@@ -225,7 +273,9 @@ export class StorageRepo {
|
|
|
225
273
|
// can be promoted here (each builds on the one before). Leave `latest` where it
|
|
226
274
|
// is — the invariant internalCommit just enforced — and let the commit-path
|
|
227
275
|
// healing supply the content; a read must not fail for it. Every other fault
|
|
228
|
-
// still propagates.
|
|
276
|
+
// still propagates. Reached only by a base-independent record now (an update-only
|
|
277
|
+
// one is declined above, never refused here): a delete over no committed
|
|
278
|
+
// revision, or an insert whose held `latest` is unmaterializable.
|
|
229
279
|
if (!(err instanceof MissingBaseRevisionError)) {
|
|
230
280
|
throw err;
|
|
231
281
|
}
|
|
@@ -292,6 +342,11 @@ export class StorageRepo {
|
|
|
292
342
|
// tickets/blocked/repo-pending-overlay-has-no-producer.
|
|
293
343
|
throw new Error(`Pending action ${context.actionId} not found`);
|
|
294
344
|
}
|
|
345
|
+
// A record the promotion above DECLINED (its base not reached here) is still present, so
|
|
346
|
+
// it is overlaid on whatever committed content this node holds — content older than the
|
|
347
|
+
// base its operations were computed against. Tolerated on this branch alone: the caller
|
|
348
|
+
// asserted its own pending, no production code sets `actionId` (the blocked ticket
|
|
349
|
+
// above), and the no-base case is still flagged by the clauses below.
|
|
295
350
|
const block = applyTransform(blockRev?.block, pendingTransform);
|
|
296
351
|
return [blockId, {
|
|
297
352
|
block,
|
|
@@ -345,8 +400,31 @@ export class StorageRepo {
|
|
|
345
400
|
// parallel reads complete so emission stays outside the per-block work, matching
|
|
346
401
|
// commit's ordering. No-op when nothing was promoted.
|
|
347
402
|
this.emitPromotions(promotions);
|
|
403
|
+
if (lineageOf !== undefined) {
|
|
404
|
+
await this.answerLineage(results, lineageOf);
|
|
405
|
+
}
|
|
348
406
|
return Object.fromEntries(results);
|
|
349
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* Answers {@link BlockGets.lineageOf} on every entry, from this node's own records (see
|
|
410
|
+
* {@link IBlockStorage.lineageOf}). Runs after the block reads, so it describes storage at least
|
|
411
|
+
* as new as the content served beside it; every fact it reads only ever moves forward, so a
|
|
412
|
+
* commit landing in between cannot make the answer wrong, only early.
|
|
413
|
+
*
|
|
414
|
+
* A read fault answers `unknown` rather than failing the batch: the asker reads that as "this
|
|
415
|
+
* node could not say", which is exactly what happened.
|
|
416
|
+
*/
|
|
417
|
+
async answerLineage(results, target) {
|
|
418
|
+
await Promise.all(results.map(async ([blockId, entry]) => {
|
|
419
|
+
try {
|
|
420
|
+
entry.lineage = await this.createBlockStorage(blockId).lineageOf(target);
|
|
421
|
+
}
|
|
422
|
+
catch (err) {
|
|
423
|
+
log('get:lineage-unreadable blockId=%s rev=%d error=%s', blockId, target.rev, err instanceof Error ? err.message : String(err));
|
|
424
|
+
entry.lineage = 'unknown';
|
|
425
|
+
}
|
|
426
|
+
}));
|
|
427
|
+
}
|
|
350
428
|
/**
|
|
351
429
|
* The one place a local coverage gap is healed from a peer. `getBlock` is local-only; when it
|
|
352
430
|
* reports the target revision as not covered ({@link RevisionNotCoveredError}) this fetches it
|
|
@@ -541,9 +619,22 @@ export class StorageRepo {
|
|
|
541
619
|
// reconciles from. If pend-time refusals ever become worth their cost (one wasted
|
|
542
620
|
// consensus round per such write), refuse at `ClusterMember.validatePendOperations`
|
|
543
621
|
// instead of here.
|
|
544
|
-
// Then
|
|
545
|
-
|
|
546
|
-
|
|
622
|
+
// Then the pending records that RESERVE the block against this request. A record claiming a
|
|
623
|
+
// slot the collection has already moved past is not one of them (the revision rule of
|
|
624
|
+
// `isReservationAgainst`): counting it refused every later writer on the strength of a
|
|
625
|
+
// commit this node merely missed. Deliberately NOT fed the pend's declared base: the base
|
|
626
|
+
// arm is the promise vote's alone, and only in a cohort that can leave a member out
|
|
627
|
+
// (`ClusterMember.reservingRivals`), so this scan is never stricter than the vote — a pend
|
|
628
|
+
// the cohort approved is not then refused here at apply, and a member that voted `held` on
|
|
629
|
+
// a stray record but was outvoted still stores the pend, whose commit then sweeps the record.
|
|
630
|
+
for (const claim of await blockStorage.listPendingClaims()) {
|
|
631
|
+
if (isReservationAgainst(claim, { rev: request.rev })) {
|
|
632
|
+
pendings.push({ blockId, actionId: claim.actionId });
|
|
633
|
+
}
|
|
634
|
+
else {
|
|
635
|
+
log('pend:superseded-claim actionId=%s blockId=%s rival=%s claimedRev=%d requestedRev=%d', request.actionId, blockId, claim.actionId, claim.rev, request.rev);
|
|
636
|
+
}
|
|
637
|
+
}
|
|
547
638
|
}
|
|
548
639
|
// Every refusal below returns having written ZERO pending records — that is what pass 1
|
|
549
640
|
// finishing before pass 2 begins buys.
|
|
@@ -593,12 +684,15 @@ export class StorageRepo {
|
|
|
593
684
|
}
|
|
594
685
|
const blockStorage = this.createBlockStorage(blockId);
|
|
595
686
|
const blockTransform = transformForBlockId(request.transforms, blockId);
|
|
596
|
-
await blockStorage.savePendingTransaction(request.actionId, blockTransform, request.rev, latches.get(blockId));
|
|
687
|
+
await blockStorage.savePendingTransaction(request.actionId, blockTransform, request.rev, declaredBaseFor(request.baseRevs, blockId, blockTransform), latches.get(blockId));
|
|
597
688
|
}
|
|
689
|
+
// This layer answers for one machine's storage and nothing else: `local`, with no cohort
|
|
690
|
+
// view. The coordinator above it replaces this with the cohort's answer on every cluster path.
|
|
598
691
|
return {
|
|
599
692
|
success: true,
|
|
600
693
|
pending: pendings,
|
|
601
|
-
blockIds
|
|
694
|
+
blockIds,
|
|
695
|
+
durability: localDurability()
|
|
602
696
|
};
|
|
603
697
|
}
|
|
604
698
|
finally {
|
|
@@ -851,7 +945,8 @@ export class StorageRepo {
|
|
|
851
945
|
// including those that landed before a mid-loop failure (alreadyDone / stale
|
|
852
946
|
// partitions never reach `collectionBlocks`).
|
|
853
947
|
this.emitCollectionChanges(collectionBlocks, request.actionId, request.rev, request.tailId);
|
|
854
|
-
|
|
948
|
+
// `local`, as in `pend`: a single machine's verdict about its own storage.
|
|
949
|
+
return failure ? { success: false, reason: failure.reason } : { success: true, durability: localDurability() };
|
|
855
950
|
}
|
|
856
951
|
/**
|
|
857
952
|
* Delete `actionId`'s pending record from every given block, tolerating absence.
|
|
@@ -1033,8 +1128,13 @@ export class StorageRepo {
|
|
|
1033
1128
|
}
|
|
1034
1129
|
// Clone both: applyTransform assigns `transform.insert` into the result by reference and
|
|
1035
1130
|
// applyOperations mutates the block in place, so materializing on live storage/pending objects
|
|
1036
|
-
// would corrupt them for the real commit that follows.
|
|
1037
|
-
|
|
1131
|
+
// would corrupt them for the real commit that follows. `cloneDecoded` (a JSON round-trip) rather
|
|
1132
|
+
// than `structuredClone`, which Hermes lacks; lossless here because both values were just decoded
|
|
1133
|
+
// from JSON by the store (every `IRawStorage` in this repo is the JSON-coded `KvRawStorage`).
|
|
1134
|
+
// NOTE: if an `IRawStorage` that hands out live, never-serialized objects is ever wired in, this
|
|
1135
|
+
// preview can drift from internalCommit (which applies to the uncloned values): an update op
|
|
1136
|
+
// setting a field to `undefined` clones to `null`, which canonical JSON hashes differently.
|
|
1137
|
+
const newBlock = applyTransform(cloneDecoded(base), cloneDecoded(transform));
|
|
1038
1138
|
// `undefined` covers the tombstone (delete transform) and updates-with-no-base (applyTransform
|
|
1039
1139
|
// drops updates when there is no block to apply them to) — both materialize nothing.
|
|
1040
1140
|
const digest = newBlock ? await canonicalBlockHash(newBlock) : undefined;
|
|
@@ -1052,6 +1152,14 @@ export class StorageRepo {
|
|
|
1052
1152
|
}
|
|
1053
1153
|
return undefined;
|
|
1054
1154
|
}
|
|
1155
|
+
/** See {@link IPendingClaimReader}. */
|
|
1156
|
+
async listPendingClaims(blockId) {
|
|
1157
|
+
return await this.createBlockStorage(blockId).listPendingClaims();
|
|
1158
|
+
}
|
|
1159
|
+
/** See {@link IPendingClaimReader}. */
|
|
1160
|
+
async pendingClaimOf(blockId, actionId) {
|
|
1161
|
+
return await this.createBlockStorage(blockId).pendingClaimOf(actionId);
|
|
1162
|
+
}
|
|
1055
1163
|
/**
|
|
1056
1164
|
* The {@link BlockCommitProof} this node retained for `blockId` at `rev`, or `undefined` when it
|
|
1057
1165
|
* kept none — a revision committed before proofs were persisted, a member whose materialization
|
|
@@ -1070,8 +1178,10 @@ export class StorageRepo {
|
|
|
1070
1178
|
/**
|
|
1071
1179
|
* @param declaredBaseRev The committed revision of the base the WRITER applied this block's
|
|
1072
1180
|
* transform to, as declared in the commit op's `blockDigests[blockId].baseRev`. Untrusted wire
|
|
1073
|
-
* data, so it is typed `unknown` and validated
|
|
1074
|
-
*
|
|
1181
|
+
* data, so it is typed `unknown` and validated in {@link guardCommitBase} — where it is the
|
|
1182
|
+
* FALLBACK, not the primary check: the base the record's own pend carried (`PendingClaim.baseRev`)
|
|
1183
|
+
* is read first. Absent from the read-driven promotion in {@link get}, which has no commit request
|
|
1184
|
+
* and has already judged the stored base (`mayPromoteOnRead`).
|
|
1075
1185
|
*/
|
|
1076
1186
|
async internalCommit(blockId, actionId, rev, storage, latch, proof, declaredBaseRev) {
|
|
1077
1187
|
// Note: This method is called under the block write latch — by commit() (within its locked
|
|
@@ -1091,47 +1201,8 @@ export class StorageRepo {
|
|
|
1091
1201
|
}
|
|
1092
1202
|
// Get prior materialized block if it exists
|
|
1093
1203
|
const latest = await storage.getLatest();
|
|
1094
|
-
// FORK GUARD: apply an update-only transform ONLY to the base
|
|
1095
|
-
|
|
1096
|
-
// member legitimately holds block X at rev 1 and receives a commit of X at rev 7 when revs 2-6
|
|
1097
|
-
// touched other blocks. The only sound discriminator is the writer's own per-block declaration:
|
|
1098
|
-
// it read the block at `declaredBaseRev`, so a member holding anything else would be applying
|
|
1099
|
-
// the transform to different bytes and silently forking the block's content at this revision.
|
|
1100
|
-
//
|
|
1101
|
-
// Each clause is deliberate:
|
|
1102
|
-
// - `typeof declaredBaseRev === 'number'` — `blockDigests` is untrusted wire data with no
|
|
1103
|
-
// ingress schema (same rule as ClusterMember.validateCommitOperations). Missing, malformed,
|
|
1104
|
-
// or absent-by-design declarations ABSTAIN, preserving today's behavior for pre-upgrade
|
|
1105
|
-
// writers, undeclarable blocks, and the read-driven promotion in get().
|
|
1106
|
-
// - `!transform.insert` — an insert-carrying transform is base-independent, so there is nothing
|
|
1107
|
-
// to fork. Keyed on the member's OWN pended transform (as previewCommitDigest does), never on
|
|
1108
|
-
// the declaration, so a hostile writer cannot flip the arm by attaching a bogus baseRev.
|
|
1109
|
-
// - `latest?.rev !== declaredBaseRev` covers all three unsafe states: BEHIND the declared base
|
|
1110
|
-
// (missed updates — the fork case), AHEAD of it (this member holds a revision the writer
|
|
1111
|
-
// never saw — divergent history), and no local revision at all against a numeric declaration.
|
|
1112
|
-
//
|
|
1113
|
-
// Refusing is cheap and self-healing: refuseMissingBase throws MissingBaseRevisionError, which
|
|
1114
|
-
// commit() classifies as divergence and ClusterMember.applyConsensusOperation maps to "behind",
|
|
1115
|
-
// running reconcileDivergentCommit to pull the committed revision from a cohort peer. The
|
|
1116
|
-
// writer's retry then lands on a healed base. A hostile writer declaring a junk numeric baseRev
|
|
1117
|
-
// can force refusals and reconcile churn, but never a fork.
|
|
1118
|
-
//
|
|
1119
|
-
// NOTE: the AHEAD case is reported as "behind" divergence like every other missing-base
|
|
1120
|
-
// refusal, so a cohort where nobody holds `rev` reconciles, fails `no-rev-quorum`, and logs
|
|
1121
|
-
// that rather than a clean stale failure. Correct outcome — the writer read a base the cohort
|
|
1122
|
-
// has moved past, and its retry re-reads — but the log reads as lag when it is the opposite.
|
|
1123
|
-
// If those lines ever have to be triaged in volume, give the ahead arm its own reason string.
|
|
1124
|
-
//
|
|
1125
|
-
// NOTE: this guard only reaches what the writer declared, so two arms of the same fork still
|
|
1126
|
-
// stand — both tracked by `backlog/bug-a-pended-transform-does-not-carry-its-base`:
|
|
1127
|
-
// (1) a commit whose block declares NO digest — pre-upgrade writer, undeclarable block
|
|
1128
|
-
// (read-far-then-update eviction, see db-core transform/digest.ts), or a delete-only transform —
|
|
1129
|
-
// gap-applies exactly as before; (2) the read-driven promotion in `get`, which reaches this
|
|
1130
|
-
// method with no commit request at all (`declaredBaseRev` undefined) and so cannot check. If
|
|
1131
|
-
// forked-content reports persist, those are the residuals to look at.
|
|
1132
|
-
if (typeof declaredBaseRev === 'number' && !transform.insert && latest?.rev !== declaredBaseRev) {
|
|
1133
|
-
return await this.refuseMissingBase(blockId, actionId, rev, storage, latch, `local latest ${latest?.rev ?? 'none'} is not the declared base ${declaredBaseRev} of rev ${rev}`);
|
|
1134
|
-
}
|
|
1204
|
+
// FORK GUARD: apply an update-only transform ONLY to the base its author computed it against.
|
|
1205
|
+
await this.guardCommitBase(blockId, actionId, rev, storage, latch, transform, latest, declaredBaseRev);
|
|
1135
1206
|
const priorBlock = await this.readCommitBase(blockId, actionId, rev, storage, latest, latch);
|
|
1136
1207
|
// Apply transform and save materialized block
|
|
1137
1208
|
// applyTransform handles undefined priorBlock correctly for inserts
|
|
@@ -1154,8 +1225,9 @@ export class StorageRepo {
|
|
|
1154
1225
|
// the 'latest' pointer doesn't point to a revision that hasn't been fully recorded.
|
|
1155
1226
|
await storage.saveRevision(rev, actionId, latch);
|
|
1156
1227
|
await storage.promotePendingTransaction(actionId, latch);
|
|
1157
|
-
// Update latest revision *last
|
|
1158
|
-
|
|
1228
|
+
// Update latest revision *last*. An insert replaced the block wholesale, so its content was
|
|
1229
|
+
// not built on what this node held before (see BlockMetadata.lineageFloor).
|
|
1230
|
+
await storage.setLatest({ actionId, rev }, transform.insert === undefined, latch);
|
|
1159
1231
|
// Persist the cohort's commit proof AFTER the commit is durably latest — the proof is
|
|
1160
1232
|
// evidence about a landed revision, never a precondition of landing it. The retention rule
|
|
1161
1233
|
// (persist only when the LOCAL materialization matches the digest the commit op declared)
|
|
@@ -1185,6 +1257,111 @@ export class StorageRepo {
|
|
|
1185
1257
|
// undefined so the caller skips it rather than emitting a bogus event.
|
|
1186
1258
|
return newBlock?.header.collectionId ?? priorBlock?.header.collectionId;
|
|
1187
1259
|
}
|
|
1260
|
+
/**
|
|
1261
|
+
* The fork guard: an update-only transform is applied ONLY to the base its author computed it
|
|
1262
|
+
* against. Revisions are allocated per COLLECTION, not per block, so `rev - 1` is meaningless here —
|
|
1263
|
+
* a member legitimately holds block X at rev 1 and receives a commit of X at rev 7 when revs 2-6
|
|
1264
|
+
* touched other blocks (the retired decision `st-commit-contiguity-guard-premise`). The only sound
|
|
1265
|
+
* discriminator is what the author said the base was, and the author says it twice:
|
|
1266
|
+
*
|
|
1267
|
+
* - `stored` — the base the record's own PEND carried for this block (`PendRequest.baseRevs`, kept
|
|
1268
|
+
* as `PendingClaim.baseRev`). PRIMARY, because it was recorded with the very operations it
|
|
1269
|
+
* describes and is present on every path that applies the record, commit message or not.
|
|
1270
|
+
* - `declared` — `blockDigests[blockId].baseRev` on the commit. The FALLBACK, for a record whose
|
|
1271
|
+
* pend named no base: a sender running older code, or a drift-blind source (test doubles).
|
|
1272
|
+
* Untrusted wire data with no ingress schema (same rule as ClusterMember.validateCommitOperations):
|
|
1273
|
+
* anything but a number abstains rather than being coerced into a comparison.
|
|
1274
|
+
*
|
|
1275
|
+
* Three steps, in order:
|
|
1276
|
+
*
|
|
1277
|
+
* 1. Both present and unequal → refuse, with its own detail and log line. An honest writer never
|
|
1278
|
+
* does this (the base pinned at staging is the one pended and the one declared — `Tracker`), so
|
|
1279
|
+
* the shape it closes is a member holding a STALE pending record from an earlier attempt of a
|
|
1280
|
+
* retried action — the retry's pend never reached this member — that receives the retry's
|
|
1281
|
+
* commit: the old record's operations were computed against a different base, and a guard that
|
|
1282
|
+
* read only the declaration would apply them wherever this member's latest happened to equal
|
|
1283
|
+
* the new declaration.
|
|
1284
|
+
* 2. `effective = stored ?? declared`; a number, and `latest?.rev !== effective` → refuse. Covers
|
|
1285
|
+
* all three unsafe states: BEHIND the base (missed updates — the fork case), AHEAD of it (this
|
|
1286
|
+
* member holds a revision the writer never saw — divergent history), and no local revision at
|
|
1287
|
+
* all against a numeric base.
|
|
1288
|
+
* 3. Neither present → apply as before the guard existed, logged as `commit:base-undeclared` so the
|
|
1289
|
+
* residual is countable. This is the one arm left open, BY CHOICE, for senders that name no
|
|
1290
|
+
* base anywhere: refusing a base-less pend outright would turn every such writer's write into a
|
|
1291
|
+
* hard failure on a release that may run mixed versions for a while.
|
|
1292
|
+
*
|
|
1293
|
+
* Base-independent transforms — an insert (replaces the block wholesale) or a delete (materializes
|
|
1294
|
+
* to nothing) — are never guarded, keyed on the member's OWN pended transform and never on a
|
|
1295
|
+
* declaration, so a hostile writer cannot flip the arm by attaching a bogus base.
|
|
1296
|
+
*
|
|
1297
|
+
* Refusing is cheap and self-healing: refuseMissingBase throws MissingBaseRevisionError, which
|
|
1298
|
+
* commit() classifies as divergence and ClusterMember.applyConsensusOperation maps to "behind",
|
|
1299
|
+
* running reconcileDivergentCommit to pull the committed revision from a cohort peer. The writer's
|
|
1300
|
+
* retry then lands on a healed base. A hostile writer naming a junk numeric base — on the pend or
|
|
1301
|
+
* on the commit — can force refusals and reconcile churn, but never a fork.
|
|
1302
|
+
*
|
|
1303
|
+
* NOTE: the AHEAD case is reported as "behind" divergence like every other missing-base refusal, so
|
|
1304
|
+
* a cohort where nobody holds `rev` reconciles, fails `no-rev-quorum`, and logs that rather than a
|
|
1305
|
+
* clean stale failure. Correct outcome — the writer read a base the cohort has moved past, and its
|
|
1306
|
+
* retry re-reads — but the log reads as lag when it is the opposite. If those lines ever have to be
|
|
1307
|
+
* triaged in volume, give the ahead arm its own reason string.
|
|
1308
|
+
*/
|
|
1309
|
+
async guardCommitBase(blockId, actionId, rev, storage, latch, transform, latest, declaredBaseRev) {
|
|
1310
|
+
if (isBaseIndependent(transform)) {
|
|
1311
|
+
return;
|
|
1312
|
+
}
|
|
1313
|
+
// NOTE: `pendingClaimOf` re-reads the record `internalCommit` already holds (to prove the claim
|
|
1314
|
+
// is live) plus the metadata — two local KV gets per update-only commit, unmeasured. If the
|
|
1315
|
+
// commit path ever shows them in a profile, read the metadata alone here: the caller's record
|
|
1316
|
+
// read is the liveness proof.
|
|
1317
|
+
const stored = (await storage.pendingClaimOf(actionId))?.baseRev;
|
|
1318
|
+
const declared = typeof declaredBaseRev === 'number' ? declaredBaseRev : undefined;
|
|
1319
|
+
if (stored !== undefined && declared !== undefined && stored !== declared) {
|
|
1320
|
+
log('commit:base-disagreement blockId=%s rev=%d actionId=%s stored=%d declared=%d', blockId, rev, actionId, stored, declared);
|
|
1321
|
+
return await this.refuseMissingBase(blockId, actionId, rev, storage, latch, `stored base ${stored} disagrees with declared base ${declared} of rev ${rev}`);
|
|
1322
|
+
}
|
|
1323
|
+
const effective = stored ?? declared;
|
|
1324
|
+
if (effective === undefined) {
|
|
1325
|
+
// NOTE: debug level only, so the base-less residual is countable but not visible in production
|
|
1326
|
+
// logs; every bare test-double pend lands here, so a visible level would drown the suites. If
|
|
1327
|
+
// a mixed-version fleet ever needs the count, give this one line its own logger.
|
|
1328
|
+
log('commit:base-undeclared blockId=%s rev=%d actionId=%s latest=%s', blockId, rev, actionId, latest?.rev ?? 'none');
|
|
1329
|
+
return;
|
|
1330
|
+
}
|
|
1331
|
+
if (latest?.rev !== effective) {
|
|
1332
|
+
return await this.refuseMissingBase(blockId, actionId, rev, storage, latch, `local latest ${latest?.rev ?? 'none'} is not the ${stored !== undefined ? 'stored' : 'declared'} base ${effective} of rev ${rev}`);
|
|
1333
|
+
}
|
|
1334
|
+
}
|
|
1335
|
+
/**
|
|
1336
|
+
* Whether the read-driven promotion in {@link get} may apply `actionId`'s pending record here: a
|
|
1337
|
+
* base-independent record (an insert or a delete) always; an update-only one only when the base
|
|
1338
|
+
* its pend carried (`PendingClaim.baseRev`) is a number equal to this node's `latest`. Anything
|
|
1339
|
+
* else — a base this node has not reached, one it is past, or none stored at all — DECLINES, and
|
|
1340
|
+
* the caller leaves the record and `latest` untouched.
|
|
1341
|
+
*
|
|
1342
|
+
* Declining is deliberately distinct from {@link refuseMissingBase}, which deletes the record
|
|
1343
|
+
* because it can never be promoted here. A declined record is not dead: this node's latest reaches
|
|
1344
|
+
* the stored base only through a replica or reconcile, and when that lands `sweepDeadClaims`
|
|
1345
|
+
* removes the record if its slot is passed, or a later context read promotes it if not. A record
|
|
1346
|
+
* whose pend named no base is declined too — the promotion must not apply a change whose base it
|
|
1347
|
+
* cannot establish, and block repair supplies the version instead. The cost falls on base-less
|
|
1348
|
+
* senders alone: their held-but-missed records no longer come current on a read, only through the
|
|
1349
|
+
* next commit's reconcile or the coordinator's read-repair.
|
|
1350
|
+
*
|
|
1351
|
+
* {@link guardCommitBase} still runs inside `internalCommit` afterwards; under the latch the
|
|
1352
|
+
* caller holds, this check is exactly what makes it pass.
|
|
1353
|
+
*/
|
|
1354
|
+
async mayPromoteOnRead(blockId, storage, actionId, pending, latest) {
|
|
1355
|
+
if (isBaseIndependent(pending)) {
|
|
1356
|
+
return true;
|
|
1357
|
+
}
|
|
1358
|
+
const stored = (await storage.pendingClaimOf(actionId))?.baseRev;
|
|
1359
|
+
if (stored !== undefined && latest?.rev === stored) {
|
|
1360
|
+
return true;
|
|
1361
|
+
}
|
|
1362
|
+
log('get:promote-declined blockId=%s actionId=%s storedBase=%s latest=%s', blockId, actionId, stored ?? 'none', latest?.rev ?? 'none');
|
|
1363
|
+
return false;
|
|
1364
|
+
}
|
|
1188
1365
|
/**
|
|
1189
1366
|
* Retain `proof` for a block this call found ALREADY committed at `(rev, actionId)` — the paths
|
|
1190
1367
|
* that land (or find already landed) a revision without running {@link internalCommit}, and would
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-repo.js","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage-repo.js","sourceRoot":"","sources":["../../../src/storage/storage-repo.ts"],"names":[],"mappings":"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"}
|