@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"under-replication-drain.js","sourceRoot":"","sources":["../../../src/repo/under-replication-drain.ts"],"names":[],"mappings":"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"}
|
package/dist/src/rn.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export * from './protocol-client.js';
|
|
|
14
14
|
export * from './repo/client.js';
|
|
15
15
|
export * from './repo/cluster-coordinator.js';
|
|
16
16
|
export * from './repo/coordinator-repo.js';
|
|
17
|
+
export * from './repo/i-under-replication-ledger.js';
|
|
18
|
+
export * from './repo/kv-under-replication-ledger.js';
|
|
19
|
+
export * from './repo/under-replication-drain.js';
|
|
20
|
+
export * from './repo/responsibility.js';
|
|
17
21
|
export * from './repo/served-repo-proxy.js';
|
|
18
22
|
export * from './repo/service.js';
|
|
19
23
|
export * from './storage/block-storage.js';
|
|
@@ -30,6 +34,7 @@ export * from './storage/memory-storage.js';
|
|
|
30
34
|
export * from './storage/i-block-storage.js';
|
|
31
35
|
export * from './storage/i-raw-storage.js';
|
|
32
36
|
export * from './storage/struct.js';
|
|
37
|
+
export * from './storage/pending-claim.js';
|
|
33
38
|
export * from './storage/block-archive.js';
|
|
34
39
|
export * from './storage/storage-repo.js';
|
|
35
40
|
export * from './storage/restoration-coordinator.js';
|
package/dist/src/rn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rn.d.ts","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAUA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"rn.d.ts","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAUA,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
package/dist/src/rn.js
CHANGED
|
@@ -23,6 +23,10 @@ export * from './protocol-client.js';
|
|
|
23
23
|
export * from './repo/client.js';
|
|
24
24
|
export * from './repo/cluster-coordinator.js';
|
|
25
25
|
export * from './repo/coordinator-repo.js';
|
|
26
|
+
export * from './repo/i-under-replication-ledger.js';
|
|
27
|
+
export * from './repo/kv-under-replication-ledger.js';
|
|
28
|
+
export * from './repo/under-replication-drain.js';
|
|
29
|
+
export * from './repo/responsibility.js';
|
|
26
30
|
export * from './repo/served-repo-proxy.js';
|
|
27
31
|
export * from './repo/service.js';
|
|
28
32
|
export * from './storage/block-storage.js';
|
|
@@ -39,6 +43,7 @@ export * from './storage/memory-storage.js';
|
|
|
39
43
|
export * from './storage/i-block-storage.js';
|
|
40
44
|
export * from './storage/i-raw-storage.js';
|
|
41
45
|
export * from './storage/struct.js';
|
|
46
|
+
export * from './storage/pending-claim.js';
|
|
42
47
|
export * from './storage/block-archive.js';
|
|
43
48
|
export * from './storage/storage-repo.js';
|
|
44
49
|
export * from './storage/restoration-coordinator.js';
|
package/dist/src/rn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rn.js","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,iGAAiG;AACjG,0FAA0F;AAC1F,+FAA+F;AAC/F,iGAAiG;AACjG,oFAAoF;AAEpF,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"rn.js","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,0CAA0C;AAC1C,EAAE;AACF,gFAAgF;AAChF,iGAAiG;AACjG,0FAA0F;AAC1F,+FAA+F;AAC/F,iGAAiG;AACjG,oFAAoF;AAEpF,cAAc,qBAAqB,CAAC;AACpC,cAAc,wCAAwC,CAAC;AACvD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qCAAqC,CAAC;AACpD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sCAAsC,CAAC;AACrD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,sCAAsC,CAAC;AACrD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wCAAwC,CAAC;AACvD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,iDAAiD,CAAC;AAChE,cAAc,yBAAyB,CAAC;AACxC,cAAc,8BAA8B,CAAC"}
|
|
@@ -28,8 +28,9 @@ export declare const blockWriteLatchKey: (blockId: BlockId) => string;
|
|
|
28
28
|
/**
|
|
29
29
|
* Opaque proof that the bearer is executing inside {@link blockWriteLatchKey}`(blockId)`. Only
|
|
30
30
|
* {@link acquireBlockWriteLatch} (and {@link withBlockWriteLatch} through it) can construct one:
|
|
31
|
-
* the constructor is private and the module-scoped minter is assigned from a static
|
|
32
|
-
* the private constructor is callable — no cast, nothing outside this module can
|
|
31
|
+
* the constructor is private and the module-scoped minter is assigned from a static field
|
|
32
|
+
* initializer, where the private constructor is callable — no cast, nothing outside this module can
|
|
33
|
+
* build a token.
|
|
33
34
|
*
|
|
34
35
|
* A token is only valid while the latch it proves is actually held: releasing expires it, so a
|
|
35
36
|
* callback that stashes its token and writes after its scope closed is rejected instead of silently
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-latch.d.ts","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,MAAkC,CAAC;AAKzF
|
|
1
|
+
{"version":3,"file":"block-latch.d.ts","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS,OAAO,KAAG,MAAkC,CAAC;AAKzF;;;;;;;;;;;;;GAaG;AACH,qBAAa,eAAe;;IAGP,QAAQ,CAAC,OAAO,EAAE,OAAO;IAA7C,OAAO;IAEP,gEAAgE;IAChE,IAAI,IAAI,IAAI,OAAO,CAElB;CAQD;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC,CAUvH;AAED,qGAAqG;AACrG,MAAM,MAAM,iBAAiB,GAAG;IAC/B,+FAA+F;IAC/F,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACxD,6FAA6F;IAC7F,QAAQ,CAAC,OAAO,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,wBAAwB,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAqBtG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAOrH"}
|
|
@@ -30,8 +30,9 @@ let expire;
|
|
|
30
30
|
/**
|
|
31
31
|
* Opaque proof that the bearer is executing inside {@link blockWriteLatchKey}`(blockId)`. Only
|
|
32
32
|
* {@link acquireBlockWriteLatch} (and {@link withBlockWriteLatch} through it) can construct one:
|
|
33
|
-
* the constructor is private and the module-scoped minter is assigned from a static
|
|
34
|
-
* the private constructor is callable — no cast, nothing outside this module can
|
|
33
|
+
* the constructor is private and the module-scoped minter is assigned from a static field
|
|
34
|
+
* initializer, where the private constructor is callable — no cast, nothing outside this module can
|
|
35
|
+
* build a token.
|
|
35
36
|
*
|
|
36
37
|
* A token is only valid while the latch it proves is actually held: releasing expires it, so a
|
|
37
38
|
* callback that stashes its token and writes after its scope closed is rejected instead of silently
|
|
@@ -50,10 +51,12 @@ export class BlockWriteLatch {
|
|
|
50
51
|
get live() {
|
|
51
52
|
return this.#live;
|
|
52
53
|
}
|
|
53
|
-
static {
|
|
54
|
+
// A static field initializer, not a `static { }` block: React Native's Metro/Babel bundling cannot
|
|
55
|
+
// transform static blocks, and this module ships in the RN bundle (lint enforces it).
|
|
56
|
+
static #wired = (() => {
|
|
54
57
|
mint = (blockId) => new BlockWriteLatch(blockId);
|
|
55
58
|
expire = (latch) => { latch.#live = false; };
|
|
56
|
-
}
|
|
59
|
+
})();
|
|
57
60
|
}
|
|
58
61
|
/**
|
|
59
62
|
* Acquire the write latch for `blockId`. The non-scoped single-block form is the building block for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-latch.js","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,OAAgB,EAAU,EAAE,CAAC,eAAe,OAAO,EAAE,CAAC;AAEzF,IAAI,IAA4C,CAAC;AACjD,IAAI,MAAyC,CAAC;AAE9C
|
|
1
|
+
{"version":3,"file":"block-latch.js","sourceRoot":"","sources":["../../../src/storage/block-latch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import type { BlockId, IBlock, Transform, ActionId, ActionRev } from "@optimystic/db-core";
|
|
1
|
+
import type { BlockId, IBlock, Transform, ActionId, ActionRev, BlockLineage } from "@optimystic/db-core";
|
|
2
2
|
import type { BlockCommitProof } from "../cluster/commit-proof.js";
|
|
3
3
|
import type { RestoreCallback } from "./struct.js";
|
|
4
4
|
import type { IRawStorage } from "./i-raw-storage.js";
|
|
5
5
|
import { type IBlockStorage } from "./i-block-storage.js";
|
|
6
6
|
import type { BlockWriteLatch } from "./block-latch.js";
|
|
7
|
+
import type { PendingClaim } from "./pending-claim.js";
|
|
7
8
|
export declare class BlockStorage implements IBlockStorage {
|
|
8
9
|
private readonly blockId;
|
|
9
10
|
private readonly storage;
|
|
@@ -45,14 +46,46 @@ export declare class BlockStorage implements IBlockStorage {
|
|
|
45
46
|
saveBlockProof(rev: number, proof: BlockCommitProof, latch: BlockWriteLatch): Promise<void>;
|
|
46
47
|
getPendingTransaction(actionId: ActionId): Promise<Transform | undefined>;
|
|
47
48
|
listPendingTransactions(): AsyncIterable<ActionId>;
|
|
48
|
-
|
|
49
|
+
listPendingClaims(): Promise<PendingClaim[]>;
|
|
50
|
+
pendingClaimOf(actionId: ActionId): Promise<PendingClaim | undefined>;
|
|
51
|
+
/** The claim `meta` describes for `actionId`'s (existing) record: its slot and its base, each
|
|
52
|
+
* present only when on file. */
|
|
53
|
+
private static claimOf;
|
|
54
|
+
savePendingTransaction(actionId: ActionId, transform: Transform, rev: number | undefined, baseRev: number | undefined, latch: BlockWriteLatch): Promise<void>;
|
|
49
55
|
deletePendingTransaction(actionId: ActionId, latch: BlockWriteLatch): Promise<void>;
|
|
56
|
+
/**
|
|
57
|
+
* Set (`claim` given) or clear (`undefined`) what `meta` says about `actionId`'s pending record —
|
|
58
|
+
* the slot it claims and the base it was computed against — keeping each map absent while it is
|
|
59
|
+
* empty. The two are always written together, so no path can drop a record's slot and leave its
|
|
60
|
+
* base behind, or the reverse: clearing is what every drop site calls — a delete, a promotion
|
|
61
|
+
* (`setLatest`), a same-action forward write (`saveForwardRevision`) and the dead-claim sweep.
|
|
62
|
+
*/
|
|
63
|
+
private static recordClaim;
|
|
64
|
+
/** `meta[map][actionId] = value`, or removes the entry when `value` is undefined; the map itself
|
|
65
|
+
* is dropped from `meta` once empty, so an idle block's metadata carries neither key. */
|
|
66
|
+
private static setEntry;
|
|
67
|
+
/**
|
|
68
|
+
* Every pending record claiming a revision at or below `latestRev` can never be promoted here:
|
|
69
|
+
* promotion needs `latest.rev < rev`, and `latest` only advances. Such a record is DEAD — a rival
|
|
70
|
+
* that lost the slot, or a torn write's leftover on a block a later commit has since moved past —
|
|
71
|
+
* and left in place it is reported as a live conflicting action to every reader of the block.
|
|
72
|
+
* Delete those records and drop their claims from `meta`, which the caller then saves; a record
|
|
73
|
+
* with no claim on file is left alone (its slot is unknown, so its death is unprovable here).
|
|
74
|
+
*
|
|
75
|
+
* Runs under the block's write latch on every path that advances `latest`, which is the one moment
|
|
76
|
+
* a record's death becomes provable. This is the locally decidable half of what backlog
|
|
77
|
+
* `debt-unpromotable-pending-records-need-a-sweep` asks for; the other half — a record whose slot
|
|
78
|
+
* the block has NOT reached, whose writer simply never came back — is not decidable from local
|
|
79
|
+
* state and is not touched here.
|
|
80
|
+
*/
|
|
81
|
+
private sweepDeadClaims;
|
|
50
82
|
listRevisions(startRev: number, endRev: number): AsyncIterable<ActionRev>;
|
|
51
83
|
saveMaterializedBlock(actionId: ActionId, block: IBlock | undefined, latch: BlockWriteLatch): Promise<void>;
|
|
52
84
|
pruneSupersededMaterialization(prior: ActionRev, latch: BlockWriteLatch): Promise<void>;
|
|
53
85
|
saveRevision(rev: number, actionId: ActionId, latch: BlockWriteLatch): Promise<void>;
|
|
54
86
|
promotePendingTransaction(actionId: ActionId, latch: BlockWriteLatch): Promise<void>;
|
|
55
|
-
|
|
87
|
+
lineageOf({ actionId, rev }: ActionRev): Promise<BlockLineage>;
|
|
88
|
+
setLatest(latest: ActionRev, builtOnPrior: boolean, latch: BlockWriteLatch): Promise<void>;
|
|
56
89
|
recover(latch: BlockWriteLatch): Promise<{
|
|
57
90
|
reconciled: boolean;
|
|
58
91
|
latest?: ActionRev;
|
|
@@ -213,6 +246,15 @@ export declare class BlockStorage implements IBlockStorage {
|
|
|
213
246
|
* before reaching here.
|
|
214
247
|
*/
|
|
215
248
|
private saveRestored;
|
|
249
|
+
/**
|
|
250
|
+
* The lineage floor after a COMMIT lands `rev` on top of `prevRev` (see
|
|
251
|
+
* {@link BlockMetadata.lineageFloor}). A revision built on the prior content extends the known
|
|
252
|
+
* lineage downwards as far as it already reached — or, for metadata that predates the field,
|
|
253
|
+
* to the revision it was just built on, which is all this commit can vouch for. A revision that
|
|
254
|
+
* stands on its own (an insert replaces the block wholesale), and a block's first revision,
|
|
255
|
+
* start the lineage at themselves.
|
|
256
|
+
*/
|
|
257
|
+
private static nextLineageFloor;
|
|
216
258
|
private inRanges;
|
|
217
259
|
/**
|
|
218
260
|
* Checkpoint retention predicate. A materialization at `rev` must be kept iff it is the tip
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAmB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"block-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -130,9 +130,36 @@ export class BlockStorage {
|
|
|
130
130
|
async *listPendingTransactions() {
|
|
131
131
|
yield* this.storage.listPendingTransactions(this.blockId);
|
|
132
132
|
}
|
|
133
|
-
async
|
|
133
|
+
async listPendingClaims() {
|
|
134
|
+
const meta = await this.storage.getMetadata(this.blockId);
|
|
135
|
+
const claims = [];
|
|
136
|
+
for await (const actionId of this.storage.listPendingTransactions(this.blockId)) {
|
|
137
|
+
claims.push(BlockStorage.claimOf(meta, actionId));
|
|
138
|
+
}
|
|
139
|
+
return claims;
|
|
140
|
+
}
|
|
141
|
+
async pendingClaimOf(actionId) {
|
|
142
|
+
// Joined against the record, exactly as the listing is: a metadata entry whose record is gone
|
|
143
|
+
// is inert (see BlockMetadata.pendingRevs) and must not read as a live claim.
|
|
144
|
+
if (await this.storage.getPendingTransaction(this.blockId, actionId) === undefined) {
|
|
145
|
+
return undefined;
|
|
146
|
+
}
|
|
147
|
+
return BlockStorage.claimOf(await this.storage.getMetadata(this.blockId), actionId);
|
|
148
|
+
}
|
|
149
|
+
/** The claim `meta` describes for `actionId`'s (existing) record: its slot and its base, each
|
|
150
|
+
* present only when on file. */
|
|
151
|
+
static claimOf(meta, actionId) {
|
|
152
|
+
const rev = meta?.pendingRevs?.[actionId];
|
|
153
|
+
const baseRev = meta?.pendingBases?.[actionId];
|
|
154
|
+
return {
|
|
155
|
+
actionId,
|
|
156
|
+
...(rev === undefined ? {} : { rev }),
|
|
157
|
+
...(baseRev === undefined ? {} : { baseRev })
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
async savePendingTransaction(actionId, transform, rev, baseRev, latch) {
|
|
134
161
|
this.assertLatch(latch);
|
|
135
|
-
log('pend blockId=%s actionId=%s rev=%s', this.blockId, actionId, rev);
|
|
162
|
+
log('pend blockId=%s actionId=%s rev=%s baseRev=%s', this.blockId, actionId, rev, baseRev);
|
|
136
163
|
let meta = await this.storage.getMetadata(this.blockId);
|
|
137
164
|
// Refuse a record that could never be promoted (see IBlockStorage.savePendingTransaction).
|
|
138
165
|
// The metadata read above is unconditional anyway, so this costs one comparison and no I/O.
|
|
@@ -152,14 +179,75 @@ export class BlockStorage {
|
|
|
152
179
|
// This read-then-seed is exactly the window a concurrent replica used to land in (the
|
|
153
180
|
// seed then erased its `latest`); the latch the caller holds is what closes it.
|
|
154
181
|
meta = { latest: undefined, ranges: [] };
|
|
155
|
-
await this.storage.saveMetadata(this.blockId, meta);
|
|
156
182
|
}
|
|
183
|
+
// Record the slot the record claims (see BlockMetadata.pendingRevs) and the base it was computed
|
|
184
|
+
// against (`pendingBases`) in the same metadata write that seeds a fresh block, BEFORE the record
|
|
185
|
+
// itself: a crash between the two leaves an inert entry with no record, whereas the other order
|
|
186
|
+
// would leave a record with no claim — which every reader treats as the strongest kind and would
|
|
187
|
+
// refuse rivals on more than it should — and with no base, which the read-driven promotion
|
|
188
|
+
// would then decline to apply. A redelivered pend for the same action overwrites all three.
|
|
189
|
+
BlockStorage.recordClaim(meta, actionId, { rev, baseRev });
|
|
190
|
+
await this.storage.saveMetadata(this.blockId, meta);
|
|
157
191
|
await this.storage.savePendingTransaction(this.blockId, actionId, transform);
|
|
158
192
|
}
|
|
159
193
|
async deletePendingTransaction(actionId, latch) {
|
|
160
194
|
this.assertLatch(latch);
|
|
161
195
|
log('cancel blockId=%s actionId=%s', this.blockId, actionId);
|
|
162
196
|
await this.storage.deletePendingTransaction(this.blockId, actionId);
|
|
197
|
+
// Metadata is written only when the record had a claim to drop: a cancel of an absent or
|
|
198
|
+
// claim-less record (the common torn-cancel retry) stays a pure no-op on the metadata blob.
|
|
199
|
+
const meta = await this.storage.getMetadata(this.blockId);
|
|
200
|
+
if (meta && (meta.pendingRevs?.[actionId] !== undefined || meta.pendingBases?.[actionId] !== undefined)) {
|
|
201
|
+
BlockStorage.recordClaim(meta, actionId, undefined);
|
|
202
|
+
await this.storage.saveMetadata(this.blockId, meta);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Set (`claim` given) or clear (`undefined`) what `meta` says about `actionId`'s pending record —
|
|
207
|
+
* the slot it claims and the base it was computed against — keeping each map absent while it is
|
|
208
|
+
* empty. The two are always written together, so no path can drop a record's slot and leave its
|
|
209
|
+
* base behind, or the reverse: clearing is what every drop site calls — a delete, a promotion
|
|
210
|
+
* (`setLatest`), a same-action forward write (`saveForwardRevision`) and the dead-claim sweep.
|
|
211
|
+
*/
|
|
212
|
+
static recordClaim(meta, actionId, claim) {
|
|
213
|
+
BlockStorage.setEntry(meta, 'pendingRevs', actionId, claim?.rev);
|
|
214
|
+
BlockStorage.setEntry(meta, 'pendingBases', actionId, claim?.baseRev);
|
|
215
|
+
}
|
|
216
|
+
/** `meta[map][actionId] = value`, or removes the entry when `value` is undefined; the map itself
|
|
217
|
+
* is dropped from `meta` once empty, so an idle block's metadata carries neither key. */
|
|
218
|
+
static setEntry(meta, map, actionId, value) {
|
|
219
|
+
const entries = { ...meta[map] };
|
|
220
|
+
if (value === undefined)
|
|
221
|
+
delete entries[actionId];
|
|
222
|
+
else
|
|
223
|
+
entries[actionId] = value;
|
|
224
|
+
if (Object.keys(entries).length === 0)
|
|
225
|
+
delete meta[map];
|
|
226
|
+
else
|
|
227
|
+
meta[map] = entries;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Every pending record claiming a revision at or below `latestRev` can never be promoted here:
|
|
231
|
+
* promotion needs `latest.rev < rev`, and `latest` only advances. Such a record is DEAD — a rival
|
|
232
|
+
* that lost the slot, or a torn write's leftover on a block a later commit has since moved past —
|
|
233
|
+
* and left in place it is reported as a live conflicting action to every reader of the block.
|
|
234
|
+
* Delete those records and drop their claims from `meta`, which the caller then saves; a record
|
|
235
|
+
* with no claim on file is left alone (its slot is unknown, so its death is unprovable here).
|
|
236
|
+
*
|
|
237
|
+
* Runs under the block's write latch on every path that advances `latest`, which is the one moment
|
|
238
|
+
* a record's death becomes provable. This is the locally decidable half of what backlog
|
|
239
|
+
* `debt-unpromotable-pending-records-need-a-sweep` asks for; the other half — a record whose slot
|
|
240
|
+
* the block has NOT reached, whose writer simply never came back — is not decidable from local
|
|
241
|
+
* state and is not touched here.
|
|
242
|
+
*/
|
|
243
|
+
async sweepDeadClaims(meta, latestRev) {
|
|
244
|
+
for (const [actionId, rev] of Object.entries(meta.pendingRevs ?? {})) {
|
|
245
|
+
if (rev > latestRev)
|
|
246
|
+
continue;
|
|
247
|
+
await this.storage.deletePendingTransaction(this.blockId, actionId);
|
|
248
|
+
BlockStorage.recordClaim(meta, actionId, undefined);
|
|
249
|
+
log('sweep-dead-claim blockId=%s actionId=%s claimedRev=%d latestRev=%d', this.blockId, actionId, rev, latestRev);
|
|
250
|
+
}
|
|
163
251
|
}
|
|
164
252
|
async *listRevisions(startRev, endRev) {
|
|
165
253
|
yield* this.storage.listRevisions(this.blockId, startRev, endRev);
|
|
@@ -196,7 +284,30 @@ export class BlockStorage {
|
|
|
196
284
|
log('commit blockId=%s actionId=%s', this.blockId, actionId);
|
|
197
285
|
await this.storage.promotePendingTransaction(this.blockId, actionId);
|
|
198
286
|
}
|
|
199
|
-
async
|
|
287
|
+
async lineageOf({ actionId, rev }) {
|
|
288
|
+
const meta = await this.storage.getMetadata(this.blockId);
|
|
289
|
+
const latest = meta?.latest;
|
|
290
|
+
if (!latest || latest.rev < rev) {
|
|
291
|
+
return 'behind';
|
|
292
|
+
}
|
|
293
|
+
if (latest.rev === rev) {
|
|
294
|
+
return latest.actionId === actionId ? 'contains' : 'excludes';
|
|
295
|
+
}
|
|
296
|
+
const heldBy = await this.storage.getRevision(this.blockId, rev);
|
|
297
|
+
if (heldBy !== undefined && heldBy !== actionId) {
|
|
298
|
+
return 'excludes';
|
|
299
|
+
}
|
|
300
|
+
// Past the revision. The index alone cannot answer from here: holding the action at `rev`
|
|
301
|
+
// does not prove `latest` was built from it (a replica taken since may descend from a base
|
|
302
|
+
// below `rev`), and holding nothing at `rev` does not prove it was not (a replica taken since
|
|
303
|
+
// may descend from it). Only a history derived HERE across `rev` settles it either way.
|
|
304
|
+
const floor = meta.lineageFloor;
|
|
305
|
+
if (floor === undefined || floor > rev) {
|
|
306
|
+
return 'unknown';
|
|
307
|
+
}
|
|
308
|
+
return heldBy === actionId ? 'contains' : 'excludes';
|
|
309
|
+
}
|
|
310
|
+
async setLatest(latest, builtOnPrior, latch) {
|
|
200
311
|
this.assertLatch(latch);
|
|
201
312
|
const meta = await this.storage.getMetadata(this.blockId);
|
|
202
313
|
if (!meta) {
|
|
@@ -205,6 +316,7 @@ export class BlockStorage {
|
|
|
205
316
|
// Capture the prior latest rev BEFORE overwriting: coverage anchors to the earliest held rev.
|
|
206
317
|
const prevRev = meta.latest?.rev;
|
|
207
318
|
meta.latest = latest;
|
|
319
|
+
meta.lineageFloor = BlockStorage.nextLineageFloor(meta.lineageFloor, prevRev, latest.rev, builtOnPrior);
|
|
208
320
|
// NOTE: re-sorts (mergeRanges) the whole ranges array on every commit; if a block ever
|
|
209
321
|
// accumulates many disjoint ranges and commits show as slow, keep a running merged structure.
|
|
210
322
|
// `getBlock(r)` is served by materializeBlock's DESCENDING walk (highest committed rev <= r).
|
|
@@ -220,6 +332,11 @@ export class BlockStorage {
|
|
|
220
332
|
// before this call advances neither.
|
|
221
333
|
meta.ranges.unshift([prevRev ?? latest.rev]);
|
|
222
334
|
meta.ranges = mergeRanges(meta.ranges);
|
|
335
|
+
// The committing action's own record was just MOVED by `promotePendingTransaction`: drop its
|
|
336
|
+
// claim without a delete, so the sweep does not pay a raw-storage op on a record that is already
|
|
337
|
+
// gone. Any other record claiming a slot at or below the new latest is dead and swept.
|
|
338
|
+
BlockStorage.recordClaim(meta, latest.actionId, undefined);
|
|
339
|
+
await this.sweepDeadClaims(meta, latest.rev);
|
|
223
340
|
await this.storage.saveMetadata(this.blockId, meta);
|
|
224
341
|
}
|
|
225
342
|
async recover(latch) {
|
|
@@ -231,6 +348,7 @@ export class BlockStorage {
|
|
|
231
348
|
const currentRev = meta.latest?.rev ?? 0;
|
|
232
349
|
let maxRev = currentRev;
|
|
233
350
|
let maxActionId = meta.latest?.actionId;
|
|
351
|
+
let lineageFloor = meta.lineageFloor;
|
|
234
352
|
// Probe forward until we hit a gap or a revision whose action is not yet
|
|
235
353
|
// in the committed log (Crash-D2 state — retry-commit owns that advance).
|
|
236
354
|
for (let next = currentRev + 1;; next++) {
|
|
@@ -240,12 +358,16 @@ export class BlockStorage {
|
|
|
240
358
|
const promoted = await this.storage.getTransaction(this.blockId, actionId);
|
|
241
359
|
if (promoted === undefined)
|
|
242
360
|
break;
|
|
361
|
+
// Each recovered revision is a commit whose `setLatest` was lost, so it owes the floor
|
|
362
|
+
// exactly what that `setLatest` would have recorded.
|
|
363
|
+
lineageFloor = BlockStorage.nextLineageFloor(lineageFloor, maxRev === 0 ? undefined : maxRev, next, promoted.insert === undefined);
|
|
243
364
|
maxRev = next;
|
|
244
365
|
maxActionId = actionId;
|
|
245
366
|
}
|
|
246
367
|
if (maxRev > currentRev && maxActionId !== undefined) {
|
|
247
368
|
const advanced = { rev: maxRev, actionId: maxActionId };
|
|
248
369
|
meta.latest = advanced;
|
|
370
|
+
meta.lineageFloor = lineageFloor;
|
|
249
371
|
// The lost setLatest would have merged each recovered revision's range; redo that
|
|
250
372
|
// here. Open-ended from currentRev+1 (see setLatest): every rev in (currentRev, maxRev]
|
|
251
373
|
// was verified present in the committed log above, and any rev > maxRev resolves via the
|
|
@@ -253,6 +375,13 @@ export class BlockStorage {
|
|
|
253
375
|
// the prior [E, currentRev+1) (from the earlier setLatest) into one open-ended [E, +inf).
|
|
254
376
|
meta.ranges.unshift([currentRev + 1]);
|
|
255
377
|
meta.ranges = mergeRanges(meta.ranges);
|
|
378
|
+
// Each recovered revision's lost `setLatest` also owed this sweep. Unlike `setLatest`, it
|
|
379
|
+
// DELETES each recovered action's record rather than just dropping its claim: a pend checks
|
|
380
|
+
// only `latest`, so a same-action retry re-pended while the `setLatest` was owed leaves a
|
|
381
|
+
// pending record beside the committed one (reachable through `StorageRepo.recoverBlock`).
|
|
382
|
+
// Dropping only its claim would leave a claim-less record, the strongest kind of reservation,
|
|
383
|
+
// that nothing ever removes. Recover runs only after a crash, so the extra op costs nothing.
|
|
384
|
+
await this.sweepDeadClaims(meta, maxRev);
|
|
256
385
|
await this.storage.saveMetadata(this.blockId, meta);
|
|
257
386
|
log('recover blockId=%s advanced latest from rev=%d to rev=%d', this.blockId, currentRev, maxRev);
|
|
258
387
|
return { reconciled: true, latest: advanced };
|
|
@@ -344,18 +473,25 @@ export class BlockStorage {
|
|
|
344
473
|
// record is not this writer's to delete. Both paths run under the block's write latch, so
|
|
345
474
|
// this deletion is already mutually exclusive with a live commit.
|
|
346
475
|
//
|
|
347
|
-
//
|
|
348
|
-
//
|
|
349
|
-
//
|
|
350
|
-
// committing action id differs, widen to a sweep over listPendingTransactions filtered by
|
|
351
|
-
// getTransaction.
|
|
476
|
+
// This same-action delete stays explicit even though the sweep below would usually cover it:
|
|
477
|
+
// Invariant P must hold for a record that has no claim on file (pended before claims were
|
|
478
|
+
// recorded), which the sweep — which reasons from claims — cannot see.
|
|
352
479
|
await this.storage.deletePendingTransaction(this.blockId, actionId);
|
|
353
480
|
// Seed metadata when absent, advance latest, and merge the covered range.
|
|
354
481
|
const prevRev = meta?.latest?.rev;
|
|
355
482
|
if (!meta) {
|
|
356
483
|
meta = { latest: undefined, ranges: [] };
|
|
357
484
|
}
|
|
485
|
+
// Every OTHER record claiming a slot at or below the landing revision is dead too: the
|
|
486
|
+
// orphaned records a route that does not carry the committing action id used to leave behind
|
|
487
|
+
// (the cohort reconcile of a block a member fell behind on lands a later revision under a
|
|
488
|
+
// later action, and the missed action's record would otherwise stand forever).
|
|
489
|
+
BlockStorage.recordClaim(meta, actionId, undefined);
|
|
490
|
+
await this.sweepDeadClaims(meta, rev);
|
|
358
491
|
meta.latest = { rev, actionId };
|
|
492
|
+
// Content this node did not derive: nothing here says what it was built from, so the known
|
|
493
|
+
// lineage starts over at this revision (see BlockMetadata.lineageFloor).
|
|
494
|
+
meta.lineageFloor = rev;
|
|
359
495
|
// Open-ended coverage from the earliest held rev (see setLatest): the descending walk serves
|
|
360
496
|
// any rev >= the anchor. A prior latest at prevRev (< rev per the monotonic guard) is a
|
|
361
497
|
// materialized point, so anchor at prevRev; the first write (prevRev undefined) anchors at
|
|
@@ -677,6 +813,17 @@ export class BlockStorage {
|
|
|
677
813
|
]);
|
|
678
814
|
}
|
|
679
815
|
}
|
|
816
|
+
/**
|
|
817
|
+
* The lineage floor after a COMMIT lands `rev` on top of `prevRev` (see
|
|
818
|
+
* {@link BlockMetadata.lineageFloor}). A revision built on the prior content extends the known
|
|
819
|
+
* lineage downwards as far as it already reached — or, for metadata that predates the field,
|
|
820
|
+
* to the revision it was just built on, which is all this commit can vouch for. A revision that
|
|
821
|
+
* stands on its own (an insert replaces the block wholesale), and a block's first revision,
|
|
822
|
+
* start the lineage at themselves.
|
|
823
|
+
*/
|
|
824
|
+
static nextLineageFloor(floor, prevRev, rev, builtOnPrior) {
|
|
825
|
+
return builtOnPrior && prevRev !== undefined ? (floor ?? prevRev) : rev;
|
|
826
|
+
}
|
|
680
827
|
inRanges(rev, ranges) {
|
|
681
828
|
return ranges.some(range => rev >= range[0] && (range[1] === undefined || rev < range[1]));
|
|
682
829
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-storage.js","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"block-storage.js","sourceRoot":"","sources":["../../../src/storage/block-storage.ts"],"names":[],"mappings":"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"}
|