@optimystic/db-p2p 0.22.0 → 0.24.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/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/stream-util.d.ts +22 -6
- package/dist/src/cohort-topic/stream-util.d.ts.map +1 -1
- package/dist/src/cohort-topic/stream-util.js +56 -10
- 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/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/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/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 +2901 -2901
- 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 +135 -87
- 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 +492 -492
- 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 +408 -408
- 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 +663 -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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cached-store-driver.js","sourceRoot":"","sources":["../../../src/storage/cached-store-driver.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,11 +26,18 @@ export interface IRawStorage {
|
|
|
26
26
|
*/
|
|
27
27
|
getApproximateBytesUsed?(): Promise<number>;
|
|
28
28
|
/**
|
|
29
|
-
* Enumerate the block ids that currently have durable state in this backend
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
29
|
+
* Enumerate the block ids that currently have durable state in this backend —
|
|
30
|
+
* one id per block with ANY durable metadata. That includes a block whose only
|
|
31
|
+
* durable state is an uncommitted pending transform, since
|
|
32
|
+
* `BlockStorage.savePendingTransaction` writes metadata for a block that has none
|
|
33
|
+
* before storing the transform. Implementations enumerate metadata keys only; they
|
|
34
|
+
* must NOT read or decode each block's metadata to filter by committed revision
|
|
35
|
+
* (that would turn a cheap key scan into a per-block read).
|
|
36
|
+
*
|
|
37
|
+
* Used at node startup to seed the resilience monitors' owned-block tracked set
|
|
38
|
+
* from blocks already on disk from a previous run, so churn-spread / rebalance
|
|
39
|
+
* protection covers them without waiting for each to be touched again. See the
|
|
40
|
+
* NOTE in `seedOwnedBlocksFromStorage` for why the over-inclusion is accepted.
|
|
34
41
|
*
|
|
35
42
|
* Streamed (AsyncIterable) so a large store does not force the whole id list
|
|
36
43
|
* into memory at once. Order is unspecified. Optional: a backend that omits it
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i-raw-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/i-raw-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,WAAW;IAE3B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC1E,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,4HAA4H;IAC5H,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAG5F,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC5F,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEnE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACrF,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3F,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3F,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;;;OAOG;IACH,uBAAuB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C
|
|
1
|
+
{"version":3,"file":"i-raw-storage.d.ts","sourceRoot":"","sources":["../../../src/storage/i-raw-storage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,WAAW,WAAW;IAE3B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAClE,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAGvE,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;IAC1E,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,4HAA4H;IAC5H,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAG5F,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IAC5F,sBAAsB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IAEnE,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC,CAAC;IACrF,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3F,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACxF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAG3F,yBAAyB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE/E;;;;;;;OAOG;IACH,uBAAuB,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;CACxC"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
import type { BlockId, ActionId } from "@optimystic/db-core";
|
|
2
|
+
/**
|
|
3
|
+
* Which of the cache's entry classes a pool entry belongs to. Mirrors the sub-states of
|
|
4
|
+
* `CachedStoreDriver`'s per-block cache state; the pool itself never branches on the class —
|
|
5
|
+
* it exists so the owning store can locate the entry's home when the pool evicts it.
|
|
6
|
+
*/
|
|
7
|
+
export type CacheEntryClass = 'meta' | 'revs' | 'pendList' | 'pending' | 'tx' | 'mat';
|
|
8
|
+
/**
|
|
9
|
+
* The owner side of the eviction contract. When the pool evicts an entry it calls
|
|
10
|
+
* `onPoolEvict` exactly once; the owner must remove its own reference to the entry (and only
|
|
11
|
+
* that) so the evicted value becomes unreachable. The callback runs synchronously inside a
|
|
12
|
+
* pool mutation and MUST NOT call back into any pool method — the pool's accounting is
|
|
13
|
+
* mid-update when it fires.
|
|
14
|
+
*/
|
|
15
|
+
export interface PoolEntryOwner {
|
|
16
|
+
onPoolEvict(entry: PoolEntry): void;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* One cached value's residency record: simultaneously the value holder the owning store's
|
|
20
|
+
* maps point at, and the node the pool's queues link. Owners create these as plain object
|
|
21
|
+
* literals (`where: 'none'`), install the reference in their own state FIRST, and then call
|
|
22
|
+
* {@link SharedCachePool.admit} — that order guarantees evictions triggered by the admission
|
|
23
|
+
* can never observe the owner's block state as empty while the new entry is in flight.
|
|
24
|
+
*
|
|
25
|
+
* `charge` is the entry's whole budget cost: `base` (fixed bookkeeping — entry object, owner
|
|
26
|
+
* map slot, queue slot, key string) plus the owner-computed content bytes. Negatives and
|
|
27
|
+
* empty container states therefore still cost `base`, which is what keeps a remote probe
|
|
28
|
+
* stream of nonexistent keys inside the budget instead of growing bookkeeping for free.
|
|
29
|
+
*/
|
|
30
|
+
export interface PoolEntry<V = unknown> {
|
|
31
|
+
readonly key: string;
|
|
32
|
+
readonly store: CacheStoreHandle;
|
|
33
|
+
readonly owner: PoolEntryOwner;
|
|
34
|
+
readonly cls: CacheEntryClass;
|
|
35
|
+
readonly blockId: BlockId;
|
|
36
|
+
readonly actionId: ActionId | undefined;
|
|
37
|
+
value: V;
|
|
38
|
+
/** Fixed bookkeeping charge (entry + map slots + key string); never changes. */
|
|
39
|
+
readonly base: number;
|
|
40
|
+
/** Total budgeted bytes: `base` + content. Managed via {@link SharedCachePool.updated}. */
|
|
41
|
+
charge: number;
|
|
42
|
+
/** Which queue currently holds the entry; `'none'` = not resident. Pool-managed. */
|
|
43
|
+
where: 'a1in' | 'am' | 'none';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* A store's registration with the pool. `id` is process-unique and never reused (monotonic
|
|
47
|
+
* counter), so entries and ghost keys of a departed store can never alias a later one.
|
|
48
|
+
* `bytes`/`entries` are live occupancy, maintained by the pool — read-only for callers.
|
|
49
|
+
*/
|
|
50
|
+
export declare class CacheStoreHandle {
|
|
51
|
+
readonly id: string;
|
|
52
|
+
readonly label: string | undefined;
|
|
53
|
+
bytes: number;
|
|
54
|
+
entries: number;
|
|
55
|
+
constructor(id: string, label: string | undefined);
|
|
56
|
+
}
|
|
57
|
+
export interface CachePoolStats {
|
|
58
|
+
maxBytes: number;
|
|
59
|
+
maxEntries: number;
|
|
60
|
+
bytes: number;
|
|
61
|
+
entries: number;
|
|
62
|
+
a1in: {
|
|
63
|
+
bytes: number;
|
|
64
|
+
entries: number;
|
|
65
|
+
};
|
|
66
|
+
am: {
|
|
67
|
+
bytes: number;
|
|
68
|
+
entries: number;
|
|
69
|
+
};
|
|
70
|
+
/** Ghost (A1out) key count. Ghost keys are bookkeeping outside the byte budget, bounded by their own cap. */
|
|
71
|
+
ghostKeys: number;
|
|
72
|
+
hits: number;
|
|
73
|
+
admissions: number;
|
|
74
|
+
/** Admissions that went straight to Am because the key was in the ghost set (the 2Q reuse signal). */
|
|
75
|
+
ghostHits: number;
|
|
76
|
+
evictions: number;
|
|
77
|
+
bypasses: number;
|
|
78
|
+
stores: {
|
|
79
|
+
id: string;
|
|
80
|
+
label: string | undefined;
|
|
81
|
+
bytes: number;
|
|
82
|
+
entries: number;
|
|
83
|
+
}[];
|
|
84
|
+
}
|
|
85
|
+
export interface SharedCachePoolOptions {
|
|
86
|
+
/** Byte budget for all resident entries across all registered stores. Default is per-platform (see {@link defaultCachePool}). */
|
|
87
|
+
maxBytes?: number;
|
|
88
|
+
/** Entry-count secondary rail (guards the many-tiny-entries case). Default `max(16, maxBytes / 512)`. */
|
|
89
|
+
maxEntries?: number;
|
|
90
|
+
/**
|
|
91
|
+
* `'2q'` (default): Johnson & Shasha 2Q — A1in probation FIFO at ~25% of EACH budget rail
|
|
92
|
+
* (bytes and entries), A1out ghost keys at ~50% of the entry cap, Am protected LRU.
|
|
93
|
+
* `'lru'`: a plain shared LRU
|
|
94
|
+
* with no admission control — kept ONLY as the comparison baseline for measuring whether
|
|
95
|
+
* 2Q's pollution resistance earns its complexity (see the pool spec's measurement test).
|
|
96
|
+
*/
|
|
97
|
+
admission?: '2q' | 'lru';
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* A shared, bounded, clean-value cache pool: one per process (see {@link defaultCachePool}),
|
|
101
|
+
* shared by every `CachedStoreDriver` so that N stores compete inside ONE memory budget
|
|
102
|
+
* instead of keeping N unbounded caches. The pool owns residency and eviction only; all
|
|
103
|
+
* cache *semantics* (coherence, negatives, completeness) stay in the owning store.
|
|
104
|
+
*
|
|
105
|
+
* **Always evict, never refuse, never grow unbounded.** Entries are never pinned and never
|
|
106
|
+
* dirty (the cache is write-through; see `CachedStoreDriver`), so eviction is always safe
|
|
107
|
+
* and there is no exhaustion condition to raise. At the bound the pool evicts; the one entry
|
|
108
|
+
* class that can grow while resident (a store's revision map) is simply evicted like any
|
|
109
|
+
* other when its growth pushes the pool over budget.
|
|
110
|
+
*
|
|
111
|
+
* **2Q admission** (default): a first-touch entry enters the A1in probation FIFO; re-hits
|
|
112
|
+
* inside A1in do NOT promote (FIFO order stands, which is also what absorbs the several
|
|
113
|
+
* correlated touches one logical operation makes); eviction from A1in demotes the key to
|
|
114
|
+
* the A1out ghost set; a later admission of a ghosted key — reuse across operations — goes
|
|
115
|
+
* straight to the protected Am LRU. Am evictions do NOT ghost. One-pass bulk scans
|
|
116
|
+
* therefore live and die inside A1in without displacing any store's hot Am set.
|
|
117
|
+
*
|
|
118
|
+
* **Large values bypass**: an entry whose charge exceeds 1/16 of the byte budget is not
|
|
119
|
+
* admitted at all (the owner reads/writes through), so one oversized value cannot flush
|
|
120
|
+
* the pool.
|
|
121
|
+
*
|
|
122
|
+
* **Budget sanity**: `maxBytes`/`maxEntries` must be positive finite numbers — anything else
|
|
123
|
+
* throws. Absurdly small values are accepted as-is: they cannot break coherence (the owning
|
|
124
|
+
* cache is correct at any residency, including zero), they just degrade toward read-through.
|
|
125
|
+
*
|
|
126
|
+
* Not safe for use from multiple threads; like the caches it serves, it relies on JS
|
|
127
|
+
* single-threaded execution — every mutation completes synchronously.
|
|
128
|
+
*/
|
|
129
|
+
export declare class SharedCachePool {
|
|
130
|
+
private maxBytesValue;
|
|
131
|
+
private maxEntriesValue;
|
|
132
|
+
private readonly admission;
|
|
133
|
+
private bypassLimit;
|
|
134
|
+
private a1inTargetBytes;
|
|
135
|
+
private a1inTargetEntries;
|
|
136
|
+
private ghostCap;
|
|
137
|
+
private readonly a1in;
|
|
138
|
+
private readonly am;
|
|
139
|
+
private readonly ghost;
|
|
140
|
+
private a1inBytes;
|
|
141
|
+
private bytesTotal;
|
|
142
|
+
private entriesTotal;
|
|
143
|
+
private storeCounter;
|
|
144
|
+
private readonly stores;
|
|
145
|
+
private hits;
|
|
146
|
+
private admissions;
|
|
147
|
+
private ghostHits;
|
|
148
|
+
private evictions;
|
|
149
|
+
private bypasses;
|
|
150
|
+
constructor(options?: SharedCachePoolOptions);
|
|
151
|
+
get maxBytes(): number;
|
|
152
|
+
get maxEntries(): number;
|
|
153
|
+
get bytes(): number;
|
|
154
|
+
get entries(): number;
|
|
155
|
+
/**
|
|
156
|
+
* Re-budget a live pool (e.g. host config change, or a host correcting the platform
|
|
157
|
+
* default). Shrinking evicts immediately down to the new bound.
|
|
158
|
+
*/
|
|
159
|
+
setBudget(budget: {
|
|
160
|
+
maxBytes?: number;
|
|
161
|
+
maxEntries?: number;
|
|
162
|
+
}): void;
|
|
163
|
+
/** Register a store. The returned handle's `id` is unique for the pool's lifetime — never reused. */
|
|
164
|
+
registerStore(label?: string): CacheStoreHandle;
|
|
165
|
+
/**
|
|
166
|
+
* Release a departing store: evict any of its entries still resident (defensively — the
|
|
167
|
+
* owner normally clears first), purge its ghost keys, and remove it from the registry.
|
|
168
|
+
* Idempotent. This forced removal notifies the owner like any other eviction — `drop` here
|
|
169
|
+
* would de-account entries the owner still references, leaving it serving values the pool
|
|
170
|
+
* no longer counts. It does NOT ghost (the ghosts are being purged anyway) and does NOT
|
|
171
|
+
* count as a budget eviction: it is a lifecycle release, not memory pressure.
|
|
172
|
+
*/
|
|
173
|
+
unregisterStore(handle: CacheStoreHandle): void;
|
|
174
|
+
/** Drop every ghost key belonging to `handle` (used by store clear/close — pre-clear recency must not survive the clear). */
|
|
175
|
+
purgeGhosts(handle: CacheStoreHandle): void;
|
|
176
|
+
/** Build the pool key for an entry. Store-id first: keying by block id alone would alias name-derived header block ids across stores. */
|
|
177
|
+
keyFor(store: CacheStoreHandle, cls: CacheEntryClass, blockId: BlockId, actionId?: ActionId): string;
|
|
178
|
+
/**
|
|
179
|
+
* Would an entry of this total charge be admitted? `false` = large-value bypass (counted);
|
|
180
|
+
* the owner must then read/write through without caching. Also the gate for value
|
|
181
|
+
* *updates*: an update growing past the limit should drop the entry instead.
|
|
182
|
+
*/
|
|
183
|
+
admits(charge: number): boolean;
|
|
184
|
+
/**
|
|
185
|
+
* Admit a non-resident entry the owner has ALREADY installed in its own state. Evicts
|
|
186
|
+
* first (so the incoming entry can never be its own victim), then links: to Am when the
|
|
187
|
+
* key is in the ghost set (2Q reuse signal), to A1in probation otherwise.
|
|
188
|
+
*/
|
|
189
|
+
admit(entry: PoolEntry): void;
|
|
190
|
+
/** Record a read hit: Am refreshes to MRU; A1in stays put (FIFO — no intra-probation promotion). */
|
|
191
|
+
touch(entry: PoolEntry): void;
|
|
192
|
+
/**
|
|
193
|
+
* Re-account a resident entry after the owner mutated its value (write hit, or container
|
|
194
|
+
* growth like a revision-map fill). Queue position refreshes like a touch (without
|
|
195
|
+
* counting a hit); growth over budget evicts — possibly the updated entry itself, which
|
|
196
|
+
* is why owners call this LAST and never touch their cache state after.
|
|
197
|
+
*
|
|
198
|
+
* NOTE: growth here is NOT re-checked against {@link admits}' large-value bypass, so a
|
|
199
|
+
* container entry (a block's revision map or pending-id set) can grow past 1/16 of the
|
|
200
|
+
* budget and squat where a single oversized value would have been refused. Bounded and
|
|
201
|
+
* self-correcting today: an over-share entry keeps `a1inBytes` above its target, so
|
|
202
|
+
* probation evicts it preferentially, and anything past `maxBytes` is evicted outright.
|
|
203
|
+
* If a block ever accumulates enough revisions for one map to hold a real fraction of the
|
|
204
|
+
* budget (order 20k revs at the 32 MB Node default), gate growth on `admits(charge)` in
|
|
205
|
+
* the owner's revision/pending-list paths and drop the entry when it fails, exactly as
|
|
206
|
+
* `CachedStoreDriver.cachePoint` already does for point values.
|
|
207
|
+
*/
|
|
208
|
+
updated(entry: PoolEntry, newCharge: number): void;
|
|
209
|
+
/**
|
|
210
|
+
* Remove an entry WITHOUT the eviction callback — for owners invalidating or clearing
|
|
211
|
+
* their own entries (the owner is already removing its reference). Never ghosts: an
|
|
212
|
+
* invalidation says nothing about reuse. No-op if not resident.
|
|
213
|
+
*/
|
|
214
|
+
drop(entry: PoolEntry): void;
|
|
215
|
+
stats(): CachePoolStats;
|
|
216
|
+
private recomputeDerived;
|
|
217
|
+
private link;
|
|
218
|
+
private unlink;
|
|
219
|
+
/** Map insertion order gives A1in its FIFO and Am its LRU: refresh = delete + re-insert. */
|
|
220
|
+
private refresh;
|
|
221
|
+
private evictToFit;
|
|
222
|
+
private pickVictim;
|
|
223
|
+
private evict;
|
|
224
|
+
private pushGhost;
|
|
225
|
+
private trimGhost;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* The process-wide shared pool every `CachedStoreDriver` joins unless handed a specific one.
|
|
229
|
+
* Lazily created on first use with the platform-default budget; re-budget it live via
|
|
230
|
+
* `setBudget`. One pool per process is the point: twenty workspaces' caches compete inside
|
|
231
|
+
* one budget instead of each sizing itself as if it were alone.
|
|
232
|
+
*/
|
|
233
|
+
export declare function defaultCachePool(): SharedCachePool;
|
|
234
|
+
//# sourceMappingURL=shared-cache-pool.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared-cache-pool.d.ts","sourceRoot":"","sources":["../../../src/storage/shared-cache-pool.ts"],"names":[],"mappings":"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"}
|