@optimystic/db-p2p 0.22.0 → 0.24.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/cluster/client.d.ts +10 -0
- package/dist/src/cluster/client.d.ts.map +1 -1
- package/dist/src/cluster/client.js +30 -1
- package/dist/src/cluster/client.js.map +1 -1
- package/dist/src/cluster/cluster-repo.d.ts +39 -14
- package/dist/src/cluster/cluster-repo.d.ts.map +1 -1
- package/dist/src/cluster/cluster-repo.js +226 -119
- package/dist/src/cluster/cluster-repo.js.map +1 -1
- package/dist/src/cluster/service.d.ts +32 -1
- package/dist/src/cluster/service.d.ts.map +1 -1
- package/dist/src/cluster/service.js +43 -2
- package/dist/src/cluster/service.js.map +1 -1
- package/dist/src/cohort-topic/host.js +34 -11
- package/dist/src/cohort-topic/host.js.map +1 -1
- package/dist/src/cohort-topic/stream-util.d.ts +37 -7
- package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
- package/dist/src/cohort-topic/stream-util.js +77 -19
- package/dist/src/cohort-topic/stream-util.js.map +1 -1
- package/dist/src/dispute/dispute-service.d.ts.map +1 -1
- package/dist/src/dispute/dispute-service.js +9 -3
- package/dist/src/dispute/dispute-service.js.map +1 -1
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/libp2p-key-network.d.ts +88 -2
- package/dist/src/libp2p-key-network.d.ts.map +1 -1
- package/dist/src/libp2p-key-network.js +134 -28
- package/dist/src/libp2p-key-network.js.map +1 -1
- package/dist/src/libp2p-node-base.d.ts.map +1 -1
- package/dist/src/libp2p-node-base.js +25 -1
- package/dist/src/libp2p-node-base.js.map +1 -1
- package/dist/src/logger.d.ts +17 -1
- package/dist/src/logger.d.ts.map +1 -1
- package/dist/src/logger.js +19 -2
- package/dist/src/logger.js.map +1 -1
- package/dist/src/matchmaking/query-transport.js +3 -3
- package/dist/src/matchmaking/query-transport.js.map +1 -1
- package/dist/src/owned-block-seed.d.ts +6 -3
- package/dist/src/owned-block-seed.d.ts.map +1 -1
- package/dist/src/owned-block-seed.js +16 -3
- package/dist/src/owned-block-seed.js.map +1 -1
- package/dist/src/peer-address-book.d.ts +72 -0
- package/dist/src/peer-address-book.d.ts.map +1 -0
- package/dist/src/peer-address-book.js +123 -0
- package/dist/src/peer-address-book.js.map +1 -0
- package/dist/src/reactivity/notify-transport.d.ts +4 -4
- package/dist/src/reactivity/notify-transport.js +6 -6
- package/dist/src/reactivity/notify-transport.js.map +1 -1
- package/dist/src/reactivity/push-state-gossip.js +2 -2
- package/dist/src/reactivity/push-state-gossip.js.map +1 -1
- package/dist/src/reactivity/recover-transport.d.ts +6 -2
- package/dist/src/reactivity/recover-transport.d.ts.map +1 -1
- package/dist/src/reactivity/recover-transport.js +7 -3
- package/dist/src/reactivity/recover-transport.js.map +1 -1
- package/dist/src/repo/client.d.ts.map +1 -1
- package/dist/src/repo/client.js +11 -2
- package/dist/src/repo/client.js.map +1 -1
- package/dist/src/repo/cluster-coordinator.d.ts +30 -0
- package/dist/src/repo/cluster-coordinator.d.ts.map +1 -1
- package/dist/src/repo/cluster-coordinator.js +95 -3
- package/dist/src/repo/cluster-coordinator.js.map +1 -1
- package/dist/src/repo/coordinator-repo.d.ts +62 -9
- package/dist/src/repo/coordinator-repo.d.ts.map +1 -1
- package/dist/src/repo/coordinator-repo.js +242 -73
- package/dist/src/repo/coordinator-repo.js.map +1 -1
- package/dist/src/rn.d.ts +3 -0
- package/dist/src/rn.d.ts.map +1 -1
- package/dist/src/rn.js +3 -0
- package/dist/src/rn.js.map +1 -1
- package/dist/src/storage/cached-raw-storage.d.ts +83 -0
- package/dist/src/storage/cached-raw-storage.d.ts.map +1 -0
- package/dist/src/storage/cached-raw-storage.js +152 -0
- package/dist/src/storage/cached-raw-storage.js.map +1 -0
- package/dist/src/storage/cached-store-driver.d.ts +186 -0
- package/dist/src/storage/cached-store-driver.d.ts.map +1 -0
- package/dist/src/storage/cached-store-driver.js +775 -0
- package/dist/src/storage/cached-store-driver.js.map +1 -0
- package/dist/src/storage/i-raw-storage.d.ts +12 -5
- package/dist/src/storage/i-raw-storage.d.ts.map +1 -1
- package/dist/src/storage/shared-cache-pool.d.ts +234 -0
- package/dist/src/storage/shared-cache-pool.d.ts.map +1 -0
- package/dist/src/storage/shared-cache-pool.js +354 -0
- package/dist/src/storage/shared-cache-pool.js.map +1 -0
- package/dist/src/testing/cohort-topic-mesh-harness.d.ts +13 -6
- package/dist/src/testing/cohort-topic-mesh-harness.d.ts.map +1 -1
- package/dist/src/testing/cohort-topic-mesh-harness.js +15 -6
- package/dist/src/testing/cohort-topic-mesh-harness.js.map +1 -1
- package/dist/src/testing/raw-storage-conformance.d.ts +2 -1
- package/dist/src/testing/raw-storage-conformance.d.ts.map +1 -1
- package/dist/src/testing/raw-storage-conformance.js +35 -2
- package/dist/src/testing/raw-storage-conformance.js.map +1 -1
- package/package.json +3 -3
- package/readme.md +668 -668
- package/src/cluster/block-transfer.ts +424 -424
- package/src/cluster/client.ts +119 -88
- package/src/cluster/cluster-error.ts +64 -64
- package/src/cluster/cluster-policy.ts +203 -203
- package/src/cluster/cluster-repo.ts +242 -122
- package/src/cluster/cluster-size-coupling.ts +45 -45
- package/src/cluster/commit-cert.ts +139 -139
- package/src/cluster/i-transaction-state-store.ts +43 -43
- package/src/cluster/memory-transaction-state-store.ts +56 -56
- package/src/cluster/peer-key-binding.ts +37 -37
- package/src/cluster/persistent-transaction-state-store.ts +92 -92
- package/src/cluster/quorum-restore.ts +223 -223
- package/src/cluster/reconcile-block.ts +203 -203
- package/src/cluster/service.ts +293 -241
- package/src/cluster/supermajority-coupling.ts +37 -37
- package/src/cohort-topic/bootstrap-evidence-builder.ts +122 -122
- package/src/cohort-topic/bootstrap-evidence-verifiers.ts +132 -132
- package/src/cohort-topic/bootstrap-parent-reference.ts +159 -159
- package/src/cohort-topic/change-bridge.ts +109 -109
- package/src/cohort-topic/cohort-gossip-driver.ts +231 -231
- package/src/cohort-topic/cohort-gossip-transport.ts +84 -84
- package/src/cohort-topic/fret-trust-anchor.ts +153 -153
- package/src/cohort-topic/host.ts +42 -11
- package/src/cohort-topic/index.ts +13 -13
- package/src/cohort-topic/membership-publish-sink.ts +20 -20
- package/src/cohort-topic/membership-source.ts +68 -68
- package/src/cohort-topic/peer-codec.ts +31 -31
- package/src/cohort-topic/peer-sig.ts +86 -86
- package/src/cohort-topic/protocols.ts +71 -71
- package/src/cohort-topic/reactivity-membership-gate.ts +77 -77
- package/src/cohort-topic/size-estimator.ts +16 -16
- package/src/cohort-topic/stream-util.ts +79 -19
- package/src/cohort-topic/threshold-crypto.ts +239 -239
- package/src/cohort-topic/topic-router.ts +77 -77
- package/src/dispute/arbitrator-selection.ts +138 -138
- package/src/dispute/cascade.ts +524 -524
- package/src/dispute/dispute-service.ts +11 -5
- package/src/dispute/invalidation.ts +625 -625
- package/src/inbound-authorization.ts +190 -190
- package/src/index.ts +52 -49
- package/src/libp2p-key-network.ts +1120 -990
- package/src/libp2p-node-base.ts +1675 -1651
- package/src/libp2p-node-rn.ts +30 -30
- package/src/libp2p-node.ts +36 -36
- package/src/logger.ts +19 -2
- package/src/matchmaking/aggregate-counts.ts +104 -104
- package/src/matchmaking/index.ts +20 -20
- package/src/matchmaking/module.ts +363 -363
- package/src/matchmaking/protocols.ts +51 -51
- package/src/matchmaking/provider-manager.ts +95 -95
- package/src/matchmaking/query-handler.ts +88 -88
- package/src/matchmaking/query-transport.ts +3 -3
- package/src/matchmaking/seeker-manager.ts +64 -64
- package/src/matchmaking/seeker-walk-client.ts +293 -293
- package/src/matchmaking/traffic-validation.ts +195 -195
- package/src/optimystic-node.ts +36 -36
- package/src/owned-block-seed.ts +53 -40
- package/src/peer-address-book.ts +149 -0
- package/src/protocol-limits.ts +33 -33
- package/src/reactivity/forwarder-host.ts +438 -438
- package/src/reactivity/index.ts +19 -19
- package/src/reactivity/notify-transport.ts +144 -144
- package/src/reactivity/origination-manager.ts +192 -192
- package/src/reactivity/protocols.ts +61 -61
- package/src/reactivity/push-state-gossip.ts +291 -291
- package/src/reactivity/recover-transport.ts +7 -3
- package/src/reactivity/rotation-rereg-scheduler.ts +256 -256
- package/src/reactivity/subscriber-registry.ts +96 -96
- package/src/reactivity/subscription-manager.ts +450 -450
- package/src/reactivity/topic-bytes.ts +37 -37
- package/src/repo/client.ts +12 -2
- package/src/repo/cluster-coordinator.ts +99 -3
- package/src/repo/coordinator-repo.ts +281 -74
- package/src/repo/types.ts +7 -7
- package/src/rn.ts +39 -36
- package/src/rpc-deadline.ts +45 -45
- package/src/storage/arachnode-partition.ts +74 -74
- package/src/storage/cached-raw-storage.ts +180 -0
- package/src/storage/cached-store-driver.ts +859 -0
- package/src/storage/i-kv-store.ts +8 -8
- package/src/storage/i-raw-storage.ts +12 -5
- package/src/storage/kv-raw-storage.ts +135 -135
- package/src/storage/memory-kv-store.ts +28 -28
- package/src/storage/memory-storage.ts +25 -25
- package/src/storage/memory-store-driver.ts +157 -157
- package/src/storage/raw-store-codec.ts +42 -42
- package/src/storage/raw-store-driver.ts +80 -80
- package/src/storage/ring-selector.ts +317 -317
- package/src/storage/ring-shift-coordinator.ts +271 -271
- package/src/storage/shared-cache-pool.ts +452 -0
- package/src/storage/storage-repo.ts +1014 -1014
- package/src/testing/cohort-topic-mesh-harness.ts +673 -663
- package/src/testing/index.ts +8 -8
- package/src/testing/matchmaking-mesh-harness.ts +475 -475
- package/src/testing/raw-storage-conformance.ts +453 -417
- package/src/testing/reactivity-mesh-harness.ts +922 -922
- package/dist/src/storage/restoration-coordinator-v2.d.ts +0 -67
- package/dist/src/storage/restoration-coordinator-v2.d.ts.map +0 -1
- package/dist/src/storage/restoration-coordinator-v2.js +0 -172
- package/dist/src/storage/restoration-coordinator-v2.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coordinator-repo.js","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"coordinator-repo.js","sourceRoot":"","sources":["../../../src/repo/coordinator-repo.ts"],"names":[],"mappings":"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"}
|
package/dist/src/rn.d.ts
CHANGED
|
@@ -10,6 +10,9 @@ export * from './repo/service.js';
|
|
|
10
10
|
export * from './storage/block-storage.js';
|
|
11
11
|
export * from './storage/raw-store-driver.js';
|
|
12
12
|
export * from './storage/kv-raw-storage.js';
|
|
13
|
+
export * from './storage/shared-cache-pool.js';
|
|
14
|
+
export * from './storage/cached-store-driver.js';
|
|
15
|
+
export * from './storage/cached-raw-storage.js';
|
|
13
16
|
export * from './storage/memory-store-driver.js';
|
|
14
17
|
export * from './storage/memory-storage.js';
|
|
15
18
|
export * from './storage/i-block-storage.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":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,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;AAGjD,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"rn.d.ts","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,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;AAGjD,cAAc,4BAA4B,CAAC"}
|
package/dist/src/rn.js
CHANGED
|
@@ -10,6 +10,9 @@ export * from './repo/service.js';
|
|
|
10
10
|
export * from './storage/block-storage.js';
|
|
11
11
|
export * from './storage/raw-store-driver.js';
|
|
12
12
|
export * from './storage/kv-raw-storage.js';
|
|
13
|
+
export * from './storage/shared-cache-pool.js';
|
|
14
|
+
export * from './storage/cached-store-driver.js';
|
|
15
|
+
export * from './storage/cached-raw-storage.js';
|
|
13
16
|
export * from './storage/memory-store-driver.js';
|
|
14
17
|
export * from './storage/memory-storage.js';
|
|
15
18
|
export * from './storage/i-block-storage.js';
|
package/dist/src/rn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rn.js","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,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,uFAAuF;AACvF,uFAAuF;AACvF,cAAc,4BAA4B,CAAC"}
|
|
1
|
+
{"version":3,"file":"rn.js","sourceRoot":"","sources":["../../src/rn.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC;AACjC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,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,uFAAuF;AACvF,uFAAuF;AACvF,cAAc,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import type { BlockId, ActionId } from "@optimystic/db-core";
|
|
2
|
+
import type { IRawStorage } from "./i-raw-storage.js";
|
|
3
|
+
import type { RawStoreDriver } from "./raw-store-driver.js";
|
|
4
|
+
import { KvRawStorage } from "./kv-raw-storage.js";
|
|
5
|
+
import type { SharedCachePool } from "./shared-cache-pool.js";
|
|
6
|
+
/**
|
|
7
|
+
* Presents a plain {@link IRawStorage} as a {@link RawStoreDriver}, so the
|
|
8
|
+
* {@link CachedStoreDriver} (and the `KvRawStorage` kernel above it) can wrap a backend
|
|
9
|
+
* that does NOT expose its driver — the composition {@link CachedRawStorage} uses.
|
|
10
|
+
*
|
|
11
|
+
* Every value crossing this adapter is re-encoded to bytes on read and re-decoded on
|
|
12
|
+
* write, on top of whatever (de)serialization the inner storage does itself. For a
|
|
13
|
+
* kernel-backed inner storage that is a double codec pass per COLD miss — cache hits
|
|
14
|
+
* never reach this adapter. Wrapping the backend's `RawStoreDriver` directly with
|
|
15
|
+
* `CachedStoreDriver` avoids the double pass entirely; prefer that when the driver is
|
|
16
|
+
* reachable, and this adapter when only the `IRawStorage` surface is.
|
|
17
|
+
*/
|
|
18
|
+
export declare class RawStorageDriverAdapter implements RawStoreDriver {
|
|
19
|
+
private readonly inner;
|
|
20
|
+
/**
|
|
21
|
+
* Optional passthroughs wired only when the inner storage provides them, mirroring
|
|
22
|
+
* `KvRawStorage`'s constructor: feature-detection above must observe the inner
|
|
23
|
+
* storage's true capability. `IRawStorage` has no `close`/`approximateBytesUsed`
|
|
24
|
+
* driver names — they map from `listBlockIds`/`getApproximateBytesUsed`.
|
|
25
|
+
*/
|
|
26
|
+
listBlockIds?: () => AsyncIterable<BlockId>;
|
|
27
|
+
approximateBytesUsed?: () => Promise<number>;
|
|
28
|
+
constructor(inner: IRawStorage);
|
|
29
|
+
getMetadata(blockId: BlockId): Promise<Uint8Array | undefined>;
|
|
30
|
+
putMetadata(blockId: BlockId, value: Uint8Array): Promise<void>;
|
|
31
|
+
getRevision(blockId: BlockId, rev: number): Promise<Uint8Array | undefined>;
|
|
32
|
+
putRevision(blockId: BlockId, rev: number, value: Uint8Array): Promise<void>;
|
|
33
|
+
rangeRevisions(blockId: BlockId, lo: number, hi: number, reverse: boolean): AsyncIterable<[number, Uint8Array]>;
|
|
34
|
+
getPending(blockId: BlockId, actionId: ActionId): Promise<Uint8Array | undefined>;
|
|
35
|
+
putPending(blockId: BlockId, actionId: ActionId, value: Uint8Array): Promise<void>;
|
|
36
|
+
deletePending(blockId: BlockId, actionId: ActionId): Promise<void>;
|
|
37
|
+
listPendingActionIds(blockId: BlockId): AsyncIterable<ActionId>;
|
|
38
|
+
getTransaction(blockId: BlockId, actionId: ActionId): Promise<Uint8Array | undefined>;
|
|
39
|
+
putTransaction(blockId: BlockId, actionId: ActionId, value: Uint8Array): Promise<void>;
|
|
40
|
+
getMaterialized(blockId: BlockId, actionId: ActionId): Promise<Uint8Array | undefined>;
|
|
41
|
+
putMaterialized(blockId: BlockId, actionId: ActionId, value: Uint8Array): Promise<void>;
|
|
42
|
+
deleteMaterialized(blockId: BlockId, actionId: ActionId): Promise<void>;
|
|
43
|
+
promote(blockId: BlockId, actionId: ActionId): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Write-through cached view over a plain {@link IRawStorage} — the wrapper form for a
|
|
47
|
+
* backend whose {@link RawStoreDriver} is not reachable. Composition:
|
|
48
|
+
*
|
|
49
|
+
* ```
|
|
50
|
+
* KvRawStorage kernel → CachedStoreDriver → RawStorageDriverAdapter → inner IRawStorage
|
|
51
|
+
* ```
|
|
52
|
+
*
|
|
53
|
+
* All caching semantics (write-through coherence, proven-absence negatives, list
|
|
54
|
+
* completeness, promote mirroring) live in {@link CachedStoreDriver}; see its class doc
|
|
55
|
+
* and docs/storage.md "Write-through raw-storage cache" for the invariants this relies
|
|
56
|
+
* on — including the single-process-owner precondition.
|
|
57
|
+
*
|
|
58
|
+
* Prefer wrapping the backend's driver directly — `new KvRawStorage(new
|
|
59
|
+
* CachedStoreDriver(driver))` — when the driver is available: it skips this adapter's
|
|
60
|
+
* extra codec pass on cold misses. Do not wrap `MemoryRawStorage` in production wiring
|
|
61
|
+
* (already in-memory; the cache adds bookkeeping with nothing to save) — tests do, to
|
|
62
|
+
* prove semantics are identical through the full composition.
|
|
63
|
+
*
|
|
64
|
+
* By default the cache joins the process-wide shared pool (`defaultCachePool()`), so
|
|
65
|
+
* every workspace's cache competes inside ONE memory budget; pass a specific
|
|
66
|
+
* {@link SharedCachePool} only for isolation (tests) or host-specific sizing, and a
|
|
67
|
+
* `label` to make this store recognizable in the pool's `stats()`.
|
|
68
|
+
*/
|
|
69
|
+
export declare class CachedRawStorage extends KvRawStorage {
|
|
70
|
+
private readonly cacheDriver;
|
|
71
|
+
constructor(inner: IRawStorage, pool?: SharedCachePool, label?: string);
|
|
72
|
+
/** Drop every cached entry. Always safe — the cache is clean (write-through, never write-behind). */
|
|
73
|
+
clearCache(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Release this storage's cache registration with the shared pool (drops all entries,
|
|
76
|
+
* retires the store id). Call when the workspace departs; a skipped dispose leaks only
|
|
77
|
+
* cold entries the pool will evict under pressure, but the polite release keeps a
|
|
78
|
+
* long-lived process's occupancy honest. `IRawStorage` itself has no close, so this is
|
|
79
|
+
* the wrapper's own lifecycle method.
|
|
80
|
+
*/
|
|
81
|
+
dispose(): Promise<void>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=cached-raw-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-raw-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/cached-raw-storage.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { KvRawStorage } from "./kv-raw-storage.js";
|
|
2
|
+
import { CachedStoreDriver } from "./cached-store-driver.js";
|
|
3
|
+
import { encodeJson, decodeJson, encodeActionId, decodeActionId } from "./raw-store-codec.js";
|
|
4
|
+
/**
|
|
5
|
+
* Presents a plain {@link IRawStorage} as a {@link RawStoreDriver}, so the
|
|
6
|
+
* {@link CachedStoreDriver} (and the `KvRawStorage` kernel above it) can wrap a backend
|
|
7
|
+
* that does NOT expose its driver — the composition {@link CachedRawStorage} uses.
|
|
8
|
+
*
|
|
9
|
+
* Every value crossing this adapter is re-encoded to bytes on read and re-decoded on
|
|
10
|
+
* write, on top of whatever (de)serialization the inner storage does itself. For a
|
|
11
|
+
* kernel-backed inner storage that is a double codec pass per COLD miss — cache hits
|
|
12
|
+
* never reach this adapter. Wrapping the backend's `RawStoreDriver` directly with
|
|
13
|
+
* `CachedStoreDriver` avoids the double pass entirely; prefer that when the driver is
|
|
14
|
+
* reachable, and this adapter when only the `IRawStorage` surface is.
|
|
15
|
+
*/
|
|
16
|
+
export class RawStorageDriverAdapter {
|
|
17
|
+
inner;
|
|
18
|
+
/**
|
|
19
|
+
* Optional passthroughs wired only when the inner storage provides them, mirroring
|
|
20
|
+
* `KvRawStorage`'s constructor: feature-detection above must observe the inner
|
|
21
|
+
* storage's true capability. `IRawStorage` has no `close`/`approximateBytesUsed`
|
|
22
|
+
* driver names — they map from `listBlockIds`/`getApproximateBytesUsed`.
|
|
23
|
+
*/
|
|
24
|
+
listBlockIds;
|
|
25
|
+
approximateBytesUsed;
|
|
26
|
+
constructor(inner) {
|
|
27
|
+
this.inner = inner;
|
|
28
|
+
if (inner.listBlockIds) {
|
|
29
|
+
this.listBlockIds = () => inner.listBlockIds();
|
|
30
|
+
}
|
|
31
|
+
if (inner.getApproximateBytesUsed) {
|
|
32
|
+
this.approximateBytesUsed = () => inner.getApproximateBytesUsed();
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
// --- metadata ---
|
|
36
|
+
async getMetadata(blockId) {
|
|
37
|
+
const meta = await this.inner.getMetadata(blockId);
|
|
38
|
+
return meta === undefined ? undefined : encodeJson(meta);
|
|
39
|
+
}
|
|
40
|
+
async putMetadata(blockId, value) {
|
|
41
|
+
await this.inner.saveMetadata(blockId, decodeJson(value));
|
|
42
|
+
}
|
|
43
|
+
// --- revisions ---
|
|
44
|
+
async getRevision(blockId, rev) {
|
|
45
|
+
const actionId = await this.inner.getRevision(blockId, rev);
|
|
46
|
+
return actionId === undefined ? undefined : encodeActionId(actionId);
|
|
47
|
+
}
|
|
48
|
+
async putRevision(blockId, rev, value) {
|
|
49
|
+
await this.inner.saveRevision(blockId, rev, decodeActionId(value));
|
|
50
|
+
}
|
|
51
|
+
async *rangeRevisions(blockId, lo, hi, reverse) {
|
|
52
|
+
// `listRevisions` derives direction from bound order (start > end ⇒ descending);
|
|
53
|
+
// map (lo, hi, reverse) back onto that. Drain before yielding — the inner
|
|
54
|
+
// iterable already drained per its own contract, but the consumer's awaits must
|
|
55
|
+
// not straddle OUR loop over it either.
|
|
56
|
+
const startRev = reverse ? hi : lo;
|
|
57
|
+
const endRev = reverse ? lo : hi;
|
|
58
|
+
const drained = [];
|
|
59
|
+
for await (const { rev, actionId } of this.inner.listRevisions(blockId, startRev, endRev)) {
|
|
60
|
+
drained.push([rev, encodeActionId(actionId)]);
|
|
61
|
+
}
|
|
62
|
+
yield* drained;
|
|
63
|
+
}
|
|
64
|
+
// --- pending ---
|
|
65
|
+
async getPending(blockId, actionId) {
|
|
66
|
+
const transform = await this.inner.getPendingTransaction(blockId, actionId);
|
|
67
|
+
return transform === undefined ? undefined : encodeJson(transform);
|
|
68
|
+
}
|
|
69
|
+
async putPending(blockId, actionId, value) {
|
|
70
|
+
await this.inner.savePendingTransaction(blockId, actionId, decodeJson(value));
|
|
71
|
+
}
|
|
72
|
+
async deletePending(blockId, actionId) {
|
|
73
|
+
await this.inner.deletePendingTransaction(blockId, actionId);
|
|
74
|
+
}
|
|
75
|
+
async *listPendingActionIds(blockId) {
|
|
76
|
+
const drained = [];
|
|
77
|
+
for await (const id of this.inner.listPendingTransactions(blockId)) {
|
|
78
|
+
drained.push(id);
|
|
79
|
+
}
|
|
80
|
+
yield* drained;
|
|
81
|
+
}
|
|
82
|
+
// --- transactions ---
|
|
83
|
+
async getTransaction(blockId, actionId) {
|
|
84
|
+
const transform = await this.inner.getTransaction(blockId, actionId);
|
|
85
|
+
return transform === undefined ? undefined : encodeJson(transform);
|
|
86
|
+
}
|
|
87
|
+
async putTransaction(blockId, actionId, value) {
|
|
88
|
+
await this.inner.saveTransaction(blockId, actionId, decodeJson(value));
|
|
89
|
+
}
|
|
90
|
+
// --- materialized ---
|
|
91
|
+
async getMaterialized(blockId, actionId) {
|
|
92
|
+
const block = await this.inner.getMaterializedBlock(blockId, actionId);
|
|
93
|
+
return block === undefined ? undefined : encodeJson(block);
|
|
94
|
+
}
|
|
95
|
+
async putMaterialized(blockId, actionId, value) {
|
|
96
|
+
await this.inner.saveMaterializedBlock(blockId, actionId, decodeJson(value));
|
|
97
|
+
}
|
|
98
|
+
async deleteMaterialized(blockId, actionId) {
|
|
99
|
+
await this.inner.saveMaterializedBlock(blockId, actionId, undefined);
|
|
100
|
+
}
|
|
101
|
+
// --- promote ---
|
|
102
|
+
async promote(blockId, actionId) {
|
|
103
|
+
await this.inner.promotePendingTransaction(blockId, actionId);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Write-through cached view over a plain {@link IRawStorage} — the wrapper form for a
|
|
108
|
+
* backend whose {@link RawStoreDriver} is not reachable. Composition:
|
|
109
|
+
*
|
|
110
|
+
* ```
|
|
111
|
+
* KvRawStorage kernel → CachedStoreDriver → RawStorageDriverAdapter → inner IRawStorage
|
|
112
|
+
* ```
|
|
113
|
+
*
|
|
114
|
+
* All caching semantics (write-through coherence, proven-absence negatives, list
|
|
115
|
+
* completeness, promote mirroring) live in {@link CachedStoreDriver}; see its class doc
|
|
116
|
+
* and docs/storage.md "Write-through raw-storage cache" for the invariants this relies
|
|
117
|
+
* on — including the single-process-owner precondition.
|
|
118
|
+
*
|
|
119
|
+
* Prefer wrapping the backend's driver directly — `new KvRawStorage(new
|
|
120
|
+
* CachedStoreDriver(driver))` — when the driver is available: it skips this adapter's
|
|
121
|
+
* extra codec pass on cold misses. Do not wrap `MemoryRawStorage` in production wiring
|
|
122
|
+
* (already in-memory; the cache adds bookkeeping with nothing to save) — tests do, to
|
|
123
|
+
* prove semantics are identical through the full composition.
|
|
124
|
+
*
|
|
125
|
+
* By default the cache joins the process-wide shared pool (`defaultCachePool()`), so
|
|
126
|
+
* every workspace's cache competes inside ONE memory budget; pass a specific
|
|
127
|
+
* {@link SharedCachePool} only for isolation (tests) or host-specific sizing, and a
|
|
128
|
+
* `label` to make this store recognizable in the pool's `stats()`.
|
|
129
|
+
*/
|
|
130
|
+
export class CachedRawStorage extends KvRawStorage {
|
|
131
|
+
cacheDriver;
|
|
132
|
+
constructor(inner, pool, label) {
|
|
133
|
+
const cacheDriver = new CachedStoreDriver(new RawStorageDriverAdapter(inner), pool, label);
|
|
134
|
+
super(cacheDriver);
|
|
135
|
+
this.cacheDriver = cacheDriver;
|
|
136
|
+
}
|
|
137
|
+
/** Drop every cached entry. Always safe — the cache is clean (write-through, never write-behind). */
|
|
138
|
+
clearCache() {
|
|
139
|
+
this.cacheDriver.clear();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Release this storage's cache registration with the shared pool (drops all entries,
|
|
143
|
+
* retires the store id). Call when the workspace departs; a skipped dispose leaks only
|
|
144
|
+
* cold entries the pool will evict under pressure, but the polite release keeps a
|
|
145
|
+
* long-lived process's occupancy honest. `IRawStorage` itself has no close, so this is
|
|
146
|
+
* the wrapper's own lifecycle method.
|
|
147
|
+
*/
|
|
148
|
+
async dispose() {
|
|
149
|
+
await this.cacheDriver.close();
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=cached-raw-storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-raw-storage.js","sourceRoot":"","sources":["../../../src/storage/cached-raw-storage.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAE9F;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,uBAAuB;IAUN;IAT7B;;;;;OAKG;IACH,YAAY,CAAgC;IAC5C,oBAAoB,CAAyB;IAE7C,YAA6B,KAAkB;QAAlB,UAAK,GAAL,KAAK,CAAa;QAC9C,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,YAAa,EAAE,CAAC;QACjD,CAAC;QACD,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC;YACnC,IAAI,CAAC,oBAAoB,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC,uBAAwB,EAAE,CAAC;QACpE,CAAC;IACF,CAAC;IAED,mBAAmB;IAEnB,KAAK,CAAC,WAAW,CAAC,OAAgB;QACjC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,KAAiB;QACpD,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IAED,oBAAoB;IAEpB,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,GAAW;QAC9C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAC5D,OAAO,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACtE,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,OAAgB,EAAE,GAAW,EAAE,KAAiB;QACjE,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,GAAG,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CAAC,OAAgB,EAAE,EAAU,EAAE,EAAU,EAAE,OAAgB;QAC/E,iFAAiF;QACjF,0EAA0E;QAC1E,gFAAgF;QAChF,wCAAwC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC;YAC3F,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;QACD,KAAK,CAAC,CAAC,OAAO,CAAC;IAChB,CAAC;IAED,kBAAkB;IAElB,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,QAAkB;QACpD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC5E,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,OAAgB,EAAE,QAAkB,EAAE,KAAiB;QACvE,MAAM,IAAI,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAgB,EAAE,QAAkB;QACvD,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,CAAC,oBAAoB,CAAC,OAAgB;QAC3C,MAAM,OAAO,GAAe,EAAE,CAAC;QAC/B,IAAI,KAAK,EAAE,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClB,CAAC;QACD,KAAK,CAAC,CAAC,OAAO,CAAC;IAChB,CAAC;IAED,uBAAuB;IAEvB,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,QAAkB;QACxD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrE,OAAO,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAgB,EAAE,QAAkB,EAAE,KAAiB;QAC3E,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IACxE,CAAC;IAED,uBAAuB;IAEvB,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE,QAAkB;QACzD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QACvE,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAgB,EAAE,QAAkB,EAAE,KAAiB;QAC5E,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,OAAgB,EAAE,QAAkB;QAC5D,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtE,CAAC;IAED,kBAAkB;IAElB,KAAK,CAAC,OAAO,CAAC,OAAgB,EAAE,QAAkB;QACjD,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACD;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChC,WAAW,CAAoB;IAEhD,YAAY,KAAkB,EAAE,IAAsB,EAAE,KAAc;QACrE,MAAM,WAAW,GAAG,IAAI,iBAAiB,CAAC,IAAI,uBAAuB,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3F,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,qGAAqG;IACrG,UAAU;QACT,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,OAAO;QACZ,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;CACD"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import type { BlockId, ActionId } from "@optimystic/db-core";
|
|
2
|
+
import type { RawStoreDriver } from "./raw-store-driver.js";
|
|
3
|
+
import { SharedCachePool, type PoolEntry, type PoolEntryOwner } from "./shared-cache-pool.js";
|
|
4
|
+
/**
|
|
5
|
+
* Write-through coherent cache over any {@link RawStoreDriver}, bounded by a shared
|
|
6
|
+
* {@link SharedCachePool}. Wrap a backend's driver with this before handing it to
|
|
7
|
+
* `KvRawStorage` and every read the kernel issues is served from memory while the entry
|
|
8
|
+
* stays resident in the pool — the pool's 2Q admission keeps hot per-store entries
|
|
9
|
+
* protected while one-off bulk scans die in probation (see the pool's class doc).
|
|
10
|
+
*
|
|
11
|
+
* **Coherence, not eviction policy.** Every save stores its value INTO the cache as it writes
|
|
12
|
+
* the inner driver, rather than invalidating. The cache therefore always holds the last
|
|
13
|
+
* durable value for resident entries and never needs to re-read a key it has seen while that
|
|
14
|
+
* entry survives. This is what a plain invalidate-on-write memo cannot achieve at this seam:
|
|
15
|
+
* the hot reads exist to observe the writes, so invalidation lands between nearly every read
|
|
16
|
+
* pair (measured: only a 23% cut).
|
|
17
|
+
*
|
|
18
|
+
* **Why this is sound** — the invariants in `docs/storage.md` ("Invariants", 1–5):
|
|
19
|
+
* 1. every backend write funnels through `IRawStorage` (and thus this driver) in-process, so
|
|
20
|
+
* the cache sees every mutation;
|
|
21
|
+
* 2. every writer of `meta.latest` holds the per-block commit latch, and each cache update is
|
|
22
|
+
* synchronous with its inner write (no `await` between the inner call resolving and the
|
|
23
|
+
* cache mutation), so latch-protected read-after-write sees the new value exactly as a
|
|
24
|
+
* driver read would;
|
|
25
|
+
* 3. committed revisions and materializations are append-only.
|
|
26
|
+
*
|
|
27
|
+
* **Precondition: one process owns the store** (Invariant 5). A second process writing the
|
|
28
|
+
* same backend bypasses this wrapper and makes cached values stale in ways that feed
|
|
29
|
+
* consensus decisions. Not enforced in code — see docs/storage.md.
|
|
30
|
+
*
|
|
31
|
+
* **The cache is always clean, never dirty.** No write is deferred, reordered, or coalesced;
|
|
32
|
+
* the inner driver's durable state never depends on cache contents. Eviction of ANY entry at
|
|
33
|
+
* ANY instant is therefore correct — the next read falls through — which is precisely what
|
|
34
|
+
* lets the shared pool evict freely, without pins, dirty tracking, or an exhaustion error.
|
|
35
|
+
* Keep it that way: if a change here ever needs a dirty or pinned entry, the design has gone
|
|
36
|
+
* wrong — stop and reconsider.
|
|
37
|
+
*
|
|
38
|
+
* **Pool discipline** (the one rule new code here must follow): mutate this wrapper's own
|
|
39
|
+
* state FIRST, then make the pool call (`admit`/`updated`/`touch`/`drop`) LAST, and never
|
|
40
|
+
* touch cache state after the pool call — pool mutations can synchronously evict any entry,
|
|
41
|
+
* including the one just written. The eviction callback ({@link onPoolEvict}) removes only
|
|
42
|
+
* the wrapper's reference and never calls back into the pool.
|
|
43
|
+
*
|
|
44
|
+
* **Values are cached as bytes**, exactly the encoded value the kernel wrote or the driver
|
|
45
|
+
* returned. The kernel decodes fresh objects from those bytes on every read, so the
|
|
46
|
+
* clone-on-read/clone-on-write discipline stays structural (same argument as the codec
|
|
47
|
+
* boundary itself), and an entry's byte size feeds the pool's budget directly.
|
|
48
|
+
* NOTE: every cache hit still pays one JSON.parse in the kernel; if decode ever shows up hot
|
|
49
|
+
* on large materialized blocks, cache decoded objects plus an explicit clone instead.
|
|
50
|
+
*
|
|
51
|
+
* **Do not wrap `MemoryStoreDriver`.** The memory driver already holds the same byte
|
|
52
|
+
* references in maps; wrapping it duplicates every map entry (the bytes themselves are
|
|
53
|
+
* shared, so no byte copy — but the bookkeeping is pure overhead with nothing to save).
|
|
54
|
+
*/
|
|
55
|
+
export declare class CachedStoreDriver implements RawStoreDriver, PoolEntryOwner {
|
|
56
|
+
private readonly inner;
|
|
57
|
+
private readonly pool;
|
|
58
|
+
private readonly blocks;
|
|
59
|
+
private readonly store;
|
|
60
|
+
/**
|
|
61
|
+
* Optional passthroughs are wired only when the inner driver provides them, mirroring
|
|
62
|
+
* `KvRawStorage`'s constructor: feature-detection above this wrapper must observe the
|
|
63
|
+
* inner driver's true capability. `listBlockIds` deliberately bypasses the cache — it
|
|
64
|
+
* enumerates the inner metadata keyspace, which funnelled writes keep authoritative.
|
|
65
|
+
* `close` is the deliberate exception (a real method below): releasing the store's pool
|
|
66
|
+
* registration is THIS wrapper's own capability, needed whether or not the inner driver
|
|
67
|
+
* has anything to close.
|
|
68
|
+
*/
|
|
69
|
+
listBlockIds?: () => AsyncIterable<BlockId>;
|
|
70
|
+
approximateBytesUsed?: () => Promise<number>;
|
|
71
|
+
constructor(inner: RawStoreDriver, pool?: SharedCachePool, label?: string);
|
|
72
|
+
/**
|
|
73
|
+
* Drop every cached entry (releasing their pool residency) and this store's ghost keys —
|
|
74
|
+
* pre-clear recency must not fast-track post-clear refills into the protected queue.
|
|
75
|
+
* Always safe (the cache is clean — see class doc); the next read of each key re-consults
|
|
76
|
+
* the inner driver. In-flight enumerations notice the identity change of their entry
|
|
77
|
+
* objects and decline to claim completeness.
|
|
78
|
+
*/
|
|
79
|
+
clear(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Release this store entirely: drop all entries, unregister from the pool (the store id
|
|
82
|
+
* is never reused), and close the inner driver if it can be closed. A departed workspace
|
|
83
|
+
* that skips this leaks only cold entries the pool will evict under pressure — but call
|
|
84
|
+
* it; on a long-lived provider node the polite release is what keeps occupancy honest.
|
|
85
|
+
*/
|
|
86
|
+
close(): Promise<void>;
|
|
87
|
+
/** This store's live pool occupancy; pool-wide numbers come from `SharedCachePool.stats()`. */
|
|
88
|
+
storeStats(): {
|
|
89
|
+
id: string;
|
|
90
|
+
label: string | undefined;
|
|
91
|
+
bytes: number;
|
|
92
|
+
entries: number;
|
|
93
|
+
};
|
|
94
|
+
/**
|
|
95
|
+
* Pool eviction callback: remove OUR reference to the entry (identity-checked, so a stale
|
|
96
|
+
* callback can never delete a successor) and reap the block state if that emptied it.
|
|
97
|
+
* Runs synchronously inside a pool mutation — must not call back into the pool.
|
|
98
|
+
*/
|
|
99
|
+
onPoolEvict(entry: PoolEntry): void;
|
|
100
|
+
/**
|
|
101
|
+
* NOTE: this allocates an entry for EVERY block id touched, including ids that turn out
|
|
102
|
+
* not to exist (the proven-absent negative is the point). The shared pool charges those
|
|
103
|
+
* negatives — and the bare bookkeeping of empty container entries — against its budget
|
|
104
|
+
* (`ENTRY_BASE` + key), and {@link dropIfEmpty} reaps block states whose last entry is
|
|
105
|
+
* gone, so a remote peer streaming probes for nonexistent blocks (`StorageRepo.get` is
|
|
106
|
+
* reachable with an arbitrary block-id list) churns the probation queue instead of
|
|
107
|
+
* growing this map without bound.
|
|
108
|
+
*/
|
|
109
|
+
private state;
|
|
110
|
+
/** Reap a block state holding no entries, so evictions and declined fills leave nothing behind. */
|
|
111
|
+
private dropIfEmpty;
|
|
112
|
+
/**
|
|
113
|
+
* An inner read threw after {@link state} allocated: reap the (uncharged) empty state so
|
|
114
|
+
* a stream of probes against a throwing backend cannot grow `blocks` for free.
|
|
115
|
+
*/
|
|
116
|
+
private reapOnThrow;
|
|
117
|
+
/**
|
|
118
|
+
* Install or update a point entry (meta / pending / tx / mat) as the LAST step of a write
|
|
119
|
+
* or read-miss fill. Handles the pool's large-value bypass: an over-limit value is not
|
|
120
|
+
* cached, and an existing entry growing over the limit is dropped to unknown (holding the
|
|
121
|
+
* stale prior value would be wrong; holding the oversized one would defeat the bypass).
|
|
122
|
+
*/
|
|
123
|
+
private cachePoint;
|
|
124
|
+
/**
|
|
125
|
+
* Cache a read-miss result into one of the map-backed entry classes, under BOTH fill
|
|
126
|
+
* guards. `started` is the state object the read began on:
|
|
127
|
+
*
|
|
128
|
+
* - **value guard** — fill only while the entry is still unknown, so a newer funnelled
|
|
129
|
+
* write that landed during the inner read is not clobbered by this older value;
|
|
130
|
+
* - **identity guard** — decline entirely if `clear()` (or the empty-state reaper)
|
|
131
|
+
* swapped the state object during the inner read. Without it a resumed read reinstalls
|
|
132
|
+
* its pre-clear value into the fresh state, and the newer write that superseded it went
|
|
133
|
+
* out with the old state — so the stale value would then be served forever. The
|
|
134
|
+
* revision and pending-list paths make the same identity check against their own pool
|
|
135
|
+
* entries.
|
|
136
|
+
*/
|
|
137
|
+
private fillMiss;
|
|
138
|
+
getMetadata(blockId: BlockId): Promise<Uint8Array | undefined>;
|
|
139
|
+
putMetadata(blockId: BlockId, value: Uint8Array): Promise<void>;
|
|
140
|
+
/**
|
|
141
|
+
* Get or eagerly admit the block's revision-map entry. Eager (before any inner await) so
|
|
142
|
+
* the fill guards have a stable identity to check across the await; the empty container
|
|
143
|
+
* is charged its base cost, so probe streams pay for their bookkeeping. Returns
|
|
144
|
+
* `undefined` when the pool bypasses even the base charge (absurdly small budget) — the
|
|
145
|
+
* callers then pass straight through to the inner driver, uncached.
|
|
146
|
+
*/
|
|
147
|
+
private ensureRevs;
|
|
148
|
+
getRevision(blockId: BlockId, rev: number): Promise<Uint8Array | undefined>;
|
|
149
|
+
putRevision(blockId: BlockId, rev: number, value: Uint8Array): Promise<void>;
|
|
150
|
+
rangeRevisions(blockId: BlockId, lo: number, hi: number, reverse: boolean): AsyncIterable<[number, Uint8Array]>;
|
|
151
|
+
/** Same eager-admission shape (and bypass fallback) as {@link ensureRevs}, for the pending-id set. */
|
|
152
|
+
private ensurePendList;
|
|
153
|
+
/** Mirror a funnelled pend into the id set, if one is resident. Re-reads the entry — the write that preceded this call may have evicted it. */
|
|
154
|
+
private notePendListAdd;
|
|
155
|
+
private notePendListRemove;
|
|
156
|
+
/** Failed pending write: the affected value entry AND the id set drop to unknown. */
|
|
157
|
+
private dropPendingState;
|
|
158
|
+
getPending(blockId: BlockId, actionId: ActionId): Promise<Uint8Array | undefined>;
|
|
159
|
+
putPending(blockId: BlockId, actionId: ActionId, value: Uint8Array): Promise<void>;
|
|
160
|
+
deletePending(blockId: BlockId, actionId: ActionId): Promise<void>;
|
|
161
|
+
listPendingActionIds(blockId: BlockId): AsyncIterable<ActionId>;
|
|
162
|
+
getTransaction(blockId: BlockId, actionId: ActionId): Promise<Uint8Array | undefined>;
|
|
163
|
+
putTransaction(blockId: BlockId, actionId: ActionId, value: Uint8Array): Promise<void>;
|
|
164
|
+
getMaterialized(blockId: BlockId, actionId: ActionId): Promise<Uint8Array | undefined>;
|
|
165
|
+
putMaterialized(blockId: BlockId, actionId: ActionId, value: Uint8Array): Promise<void>;
|
|
166
|
+
deleteMaterialized(blockId: BlockId, actionId: ActionId): Promise<void>;
|
|
167
|
+
/** Error-path invalidation of one map-backed entry (write failed → unknown). */
|
|
168
|
+
private dropMapEntry;
|
|
169
|
+
/**
|
|
170
|
+
* The inner driver performs the atomic pending → committed move; this wrapper then mirrors
|
|
171
|
+
* it as one synchronous cache mutation sequence. When the pending transform was never
|
|
172
|
+
* cached — pended before this wrapper attached, or its entry EVICTED by the pool — the
|
|
173
|
+
* committed entry is INVALIDATED rather than synthesized: fabricating it would recreate
|
|
174
|
+
* exactly the phantom-record class Invariant P exists to prevent. Invalidation also
|
|
175
|
+
* removes any cached negative for the committed entry, which the promote has just made
|
|
176
|
+
* stale.
|
|
177
|
+
*
|
|
178
|
+
* Eviction landing between the three coupled mutations is safe by construction: the inner
|
|
179
|
+
* atomic move has already resolved before the first cache mutation, so each of the three
|
|
180
|
+
* entries (pending value, pending-id set, committed value) steps from one individually
|
|
181
|
+
* coherent state to another — an eviction merely turns one of those steps into "unknown,
|
|
182
|
+
* fall through", never into a fabricated value.
|
|
183
|
+
*/
|
|
184
|
+
promote(blockId: BlockId, actionId: ActionId): Promise<void>;
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=cached-store-driver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-store-driver.d.ts","sourceRoot":"","sources":["../../../src/storage/cached-store-driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAEN,eAAe,EAGf,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,MAAM,wBAAwB,CAAC;AAsHhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,qBAAa,iBAAkB,YAAW,cAAc,EAAE,cAAc;IAiBtE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAjBtB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IAEzC;;;;;;;;OAQG;IACH,YAAY,CAAC,EAAE,MAAM,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,oBAAoB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;gBAG3B,KAAK,EAAE,cAAc,EACrB,IAAI,GAAE,eAAoC,EAC3D,KAAK,CAAC,EAAE,MAAM;IAWf;;;;;;OAMG;IACH,KAAK,IAAI,IAAI;IAab;;;;;OAKG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAM5B,+FAA+F;IAC/F,UAAU,IAAI;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE;IAIvF;;;;OAIG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAcnC;;;;;;;;OAQG;IACH,OAAO,CAAC,KAAK;IASb,mGAAmG;IACnG,OAAO,CAAC,WAAW;IAQnB;;;OAGG;IACH,OAAO,CAAC,WAAW;IAInB;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAqClB;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,QAAQ;IAiBV,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IA0B9D,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBrE;;;;;;OAMG;IACH,OAAO,CAAC,UAAU;IAkBZ,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAwB3E,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B3E,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IA6DtH,sGAAsG;IACtG,OAAO,CAAC,cAAc;IAkBtB,+IAA+I;IAC/I,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,kBAAkB;IAY1B,qFAAqF;IACrF,OAAO,CAAC,gBAAgB;IAgBlB,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAkBjF,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAalF,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAajE,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC;IAsChE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAkBrF,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IActF,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAkBtF,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAYvF,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAa7E,gFAAgF;IAChF,OAAO,CAAC,YAAY;IAepB;;;;;;;;;;;;;;OAcG;IACG,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;CA8ClE"}
|