@fluidframework/container-runtime 2.0.0-dev-rc.5.0.0.267932 → 2.0.0-dev-rc.5.0.0.270401
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/api-report/{container-runtime.api.md → container-runtime.alpha.api.md} +4 -477
- package/api-report/container-runtime.beta.api.md +73 -0
- package/api-report/container-runtime.public.api.md +73 -0
- package/container-runtime.test-files.tar +0 -0
- package/dist/batchTracker.js +5 -1
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +1 -18
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +39 -48
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +2 -11
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +33 -48
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +1 -2
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +32 -14
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.js +4 -0
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +7 -18
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +145 -43
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.js +9 -1
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +2 -16
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +142 -120
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.js +29 -28
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.js +1 -0
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerProxies.d.ts +4 -4
- package/dist/deltaManagerProxies.d.ts.map +1 -1
- package/dist/deltaManagerProxies.js +33 -28
- package/dist/deltaManagerProxies.js.map +1 -1
- package/dist/deltaScheduler.d.ts +1 -2
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +13 -9
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/error.js +2 -1
- package/dist/error.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +37 -17
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +0 -4
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +1 -3
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +19 -14
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.js +12 -5
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +12 -1
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -1
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +1 -2
- package/dist/gc/index.js.map +1 -1
- package/dist/messageTypes.d.ts +1 -1
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.js +5 -3
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/opCompressor.js +1 -0
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +6 -4
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +3 -1
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +1 -1
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +6 -0
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.js +15 -10
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +3 -0
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/opProperties.d.ts +1 -1
- package/dist/opProperties.d.ts.map +1 -1
- package/dist/opProperties.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +34 -18
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.d.ts +1 -2
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +15 -4
- package/dist/scheduleManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.js +1 -0
- package/dist/storageServiceWithAttachBlobs.js.map +1 -1
- package/dist/summary/documentSchema.js +17 -1
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/orderedClientElection.js +19 -11
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +4 -2
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +1 -1
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +56 -38
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.js +17 -8
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.js +18 -7
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.js +30 -25
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +1 -2
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +12 -3
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +2 -0
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +20 -6
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +2 -2
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +1 -2
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +23 -11
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +1 -2
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.js +12 -5
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.js +58 -48
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/throttler.js +4 -1
- package/dist/throttler.js.map +1 -1
- package/lib/batchTracker.js +5 -1
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +1 -18
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +39 -48
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +2 -11
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +34 -49
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +1 -2
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +33 -15
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.js +4 -0
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +7 -18
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +145 -43
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.js +9 -1
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +2 -16
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +144 -122
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.js +29 -28
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.js +1 -0
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerProxies.d.ts +4 -4
- package/lib/deltaManagerProxies.d.ts.map +1 -1
- package/lib/deltaManagerProxies.js +33 -28
- package/lib/deltaManagerProxies.js.map +1 -1
- package/lib/deltaScheduler.d.ts +1 -2
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +13 -9
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/error.js +2 -1
- package/lib/error.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +37 -17
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +0 -4
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +0 -2
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +19 -14
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.js +12 -5
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +12 -1
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -1
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -1
- package/lib/gc/index.js.map +1 -1
- package/lib/messageTypes.d.ts +1 -1
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.js +5 -3
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/opCompressor.js +1 -0
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +6 -4
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +3 -1
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +1 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +6 -0
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.js +15 -10
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +4 -1
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/opProperties.d.ts +1 -1
- package/lib/opProperties.d.ts.map +1 -1
- package/lib/opProperties.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +34 -18
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/scheduleManager.d.ts +1 -2
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +15 -4
- package/lib/scheduleManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.js +1 -0
- package/lib/storageServiceWithAttachBlobs.js.map +1 -1
- package/lib/summary/documentSchema.js +17 -1
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/orderedClientElection.js +19 -11
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +4 -2
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +1 -1
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +57 -39
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.js +17 -8
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.js +18 -7
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.js +30 -25
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +1 -2
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +12 -3
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +2 -0
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +20 -6
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +2 -2
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +1 -2
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +23 -11
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +1 -2
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.js +12 -5
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.js +58 -48
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/throttler.js +4 -1
- package/lib/throttler.js.map +1 -1
- package/package.json +19 -19
- package/src/batchTracker.ts +1 -1
- package/src/blobManager.ts +1 -39
- package/src/channelCollection.ts +19 -72
- package/src/connectionTelemetry.ts +5 -2
- package/src/containerRuntime.ts +9 -32
- package/src/dataStoreContext.ts +4 -38
- package/src/deltaManagerProxies.ts +3 -5
- package/src/deltaScheduler.ts +4 -2
- package/src/gc/garbageCollection.ts +0 -2
- package/src/gc/gcDefinitions.ts +0 -4
- package/src/gc/index.ts +0 -1
- package/src/messageTypes.ts +1 -1
- package/src/opLifecycle/opDecompressor.ts +1 -1
- package/src/opLifecycle/opGroupingManager.ts +1 -1
- package/src/opLifecycle/opSplitter.ts +1 -1
- package/src/opLifecycle/remoteMessageProcessor.ts +4 -2
- package/src/opProperties.ts +4 -2
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +16 -5
- package/src/scheduleManager.ts +4 -2
- package/src/summary/images/appTree.png +0 -0
- package/src/summary/images/protocolAndAppTree.png +0 -0
- package/src/summary/images/summaryTree.png +0 -0
- package/src/summary/runningSummarizer.ts +5 -2
- package/src/summary/summarizerNode/summarizerNode.ts +5 -2
- package/src/summary/summarizerTypes.ts +5 -2
- package/src/summary/summaryCollection.ts +1 -1
- package/src/summary/summaryFormat.ts +2 -1
- package/src/summary/summaryFormats.md +160 -0
- package/tsconfig.json +2 -0
|
@@ -5,9 +5,8 @@
|
|
|
5
5
|
import { AttachState } from "@fluidframework/container-definitions";
|
|
6
6
|
import { FluidObject, IDisposable, IRequest, IResponse, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
7
|
import type { IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
|
|
8
|
-
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
|
|
9
8
|
import type { ISnapshot } from "@fluidframework/driver-definitions/internal";
|
|
10
|
-
import { ISnapshotTree } from "@fluidframework/driver-definitions/internal";
|
|
9
|
+
import { ISnapshotTree, ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
11
10
|
import { ISummaryTreeWithStats, ITelemetryContext, IGarbageCollectionData, AliasResult, IEnvelope, IFluidDataStoreChannel, IFluidDataStoreContext, IFluidDataStoreContextDetached, IFluidDataStoreFactory, IFluidDataStoreRegistry, IFluidParentContext, NamedFluidDataStoreRegistryEntries, IInboundSignalMessage } from "@fluidframework/runtime-definitions/internal";
|
|
12
11
|
import { MonitoringContext } from "@fluidframework/telemetry-utils/internal";
|
|
13
12
|
import { RuntimeHeaderData } from "./containerRuntime.js";
|
|
@@ -67,8 +66,6 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
|
|
|
67
66
|
readonly containerLoadDataStoreCount: number;
|
|
68
67
|
readonly referencedDataStoreCount: number;
|
|
69
68
|
};
|
|
70
|
-
private dataStoresSinceLastGC;
|
|
71
|
-
private readonly containerRuntimeHandle;
|
|
72
69
|
private readonly pendingAliasMap;
|
|
73
70
|
protected readonly contexts: DataStoreContexts;
|
|
74
71
|
private readonly aliasedDataStores;
|
|
@@ -126,7 +123,7 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
|
|
|
126
123
|
applyStashedOp(content: unknown): Promise<unknown>;
|
|
127
124
|
protected applyStashedChannelChannelOp(envelope: IEnvelope): Promise<unknown>;
|
|
128
125
|
private applyStashedAttachOp;
|
|
129
|
-
process(message: ISequencedDocumentMessage, local: boolean, localMessageMetadata: unknown
|
|
126
|
+
process(message: ISequencedDocumentMessage, local: boolean, localMessageMetadata: unknown): void;
|
|
130
127
|
protected processChannelOp(address: string, message: ISequencedDocumentMessage, local: boolean, localMessageMetadata: unknown): void;
|
|
131
128
|
private getDataStore;
|
|
132
129
|
/**
|
|
@@ -153,12 +150,6 @@ export declare class ChannelCollection implements IFluidDataStoreChannel, IDispo
|
|
|
153
150
|
* Create a summary. Used when attaching or serializing a detached container.
|
|
154
151
|
*/
|
|
155
152
|
getAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
|
|
156
|
-
/**
|
|
157
|
-
* Before GC runs, called by the garbage collector to update any pending GC state.
|
|
158
|
-
* The garbage collector needs to know all outbound references that are added. Since root data stores are not
|
|
159
|
-
* explicitly marked as referenced, notify GC of new root data stores that were added since the last GC run.
|
|
160
|
-
*/
|
|
161
|
-
updateStateBeforeGC(): Promise<void>;
|
|
162
153
|
/**
|
|
163
154
|
* Generates data used for garbage collection. It does the following:
|
|
164
155
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelCollection.d.ts","sourceRoot":"","sources":["../src/channelCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EACN,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGrF,OAAO,
|
|
1
|
+
{"version":3,"file":"channelCollection.d.ts","sourceRoot":"","sources":["../src/channelCollection.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACpE,OAAO,EACN,WAAW,EACX,WAAW,EACX,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,MAAM,iCAAiC,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EACN,aAAa,EACb,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAMrD,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EACtB,WAAW,EAGX,SAAS,EACT,sBAAsB,EACtB,sBAAsB,EACtB,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EAGnB,kCAAkC,EAElC,qBAAqB,EACrB,MAAM,8CAA8C,CAAC;AAetD,OAAO,EAIN,iBAAiB,EAKjB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EAEN,iBAAiB,EAEjB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,EAEN,8BAA8B,EAC9B,wCAAwC,EAExC,0BAA0B,EAG1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAmB,MAAM,eAAe,CAAC;AAGjF,OAAO,EACN,yBAAyB,EAGzB,MAAM,oBAAoB,CAAC;AAE5B;;;GAGG;AACH,oBAAY,cAAc;IACzB,kFAAkF;IAClF,IAAI,SAAS;IACb,0DAA0D;IAC1D,SAAS,cAAc;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,8BAA8B,mBAAmB,CAAC;AAC/D;;;GAGG;AACH,eAAO,MAAM,6BAA6B,kBAAkB,CAAC;AAS7D;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,mBAAmB,GAAG,mBAAmB,CAoE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACzC,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,mBAAmB,GAChC,mBAAmB,CA4BrB;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,YAAW,sBAAsB,EAAE,WAAW;IA4B3E,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS;aACtD,aAAa,EAAE,mBAAmB;IAElD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IA/B1B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqC;IAEnE,SAAgB,yBAAyB,cAAqB;IAE9D,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,iBAAiB,CAAC;IAEzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiD;IAE7E,SAAgB,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAE9D,SAAgB,kBAAkB,EAAE;QAEnC,QAAQ,CAAC,2BAA2B,EAAE,MAAM,CAAC;QAE7C,QAAQ,CAAC,wBAAwB,EAAE,MAAM,CAAC;KAC1C,CAAC;IAEF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAc;gBAG5B,YAAY,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,EACtD,aAAa,EAAE,mBAAmB,EAClD,UAAU,EAAE,oBAAoB,EACf,aAAa,EAAE,CAAC,KAAK,EAAE,mBAAmB,KAAK,IAAI,EACnD,kBAAkB,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,EACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9C,iBAAiB,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,WAAW,CAAC;IA2ExE,IAAW,OAAO,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAEhD;IAED,IAAW,cAAc,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAE7D;IAEY,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAKzE,gDAAgD;IAChD,OAAO,CAAC,mBAAmB,CAAQ;IAEnC,SAAS,CAAC,0BAA0B,CAAC,EAAE,EAAE,MAAM,GAAG,mBAAmB;IAIrE;;;;OAIG;IACI,yBAAyB;IAIhC,OAAO,CAAC,oBAAoB;IAsF5B,OAAO,CAAC,mBAAmB;IAsBpB,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IA4B1E,OAAO,CAAC,gBAAgB;IAIxB,yEAAyE;IACzE,OAAO,CAAC,qBAAqB;IAc7B;;;;OAIG;IACH,OAAO,CAAC,2BAA2B;IAiBnC,SAAS,CAAC,qBAAqB,CAAC,YAAY,EAAE,0BAA0B;IAOxE;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,iBAAiB,IAAI,MAAM;IAiB9B,uBAAuB,CAC7B,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EACvB,cAAc,CAAC,EAAE,MAAM,GACrB,8BAA8B;IAU1B,sBAAsB,CAC5B,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EACvB,KAAK,CAAC,EAAE,GAAG,EACX,cAAc,CAAC,EAAE,MAAM,GACrB,8BAA8B;IAUjC,SAAS,CAAC,aAAa,CAAC,CAAC,SAAS,0BAA0B,EAC3D,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,EACvB,WAAW,EAAE,KAAK,KAAK,EAAE,wCAAwC,KAAK,CAAC,EACvE,WAAW,CAAC,EAAE,GAAG,EACjB,cAAc,CAAC,EAAE,MAAM;IA6BxB,IAAW,QAAQ,YAElB;IACD,SAAgB,OAAO,aAAgC;IAEhD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO;IAapE,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO;IAkBzE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,EAAE,OAAO;IAmBvD,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;cAc/C,4BAA4B,CAAC,QAAQ,EAAE,SAAS;YAWlD,oBAAoB;IA8C3B,OAAO,CACb,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,OAAO,EACd,oBAAoB,EAAE,OAAO;IAkC9B,SAAS,CAAC,gBAAgB,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,OAAO,EACd,oBAAoB,EAAE,OAAO;YAuChB,YAAY;IAkC1B;;OAEG;IACU,uBAAuB,CACnC,EAAE,EAAE,MAAM,EACV,iBAAiB,EAAE,iBAAiB,GAClC,OAAO,CAAC,8BAA8B,GAAG,SAAS,CAAC;IAqBtD;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IA6DrB,aAAa,CAAC,UAAU,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO;IA0B/D,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM;IAuBxD,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,GAAG,IAAI;IAStF,IAAW,IAAI,IAAI,MAAM,CAExB;IAEY,SAAS,CACrB,QAAQ,EAAE,OAAO,EACjB,UAAU,EAAE,OAAO,EACnB,gBAAgB,CAAC,EAAE,iBAAiB,GAClC,OAAO,CAAC,qBAAqB,CAAC;IAiCjC;;OAEG;IACI,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,qBAAqB;IA8CpF;;;;;;;;;;;;OAYG;IACU,SAAS,CAAC,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiChF;;;OAGG;IACI,gBAAgB,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE;IAkB9C,WAAW,CAAC,WAAW,EAAE,MAAM;IAqBtC;;;;;OAKG;IACI,qBAAqB,CAAC,yBAAyB,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE;IAgC7F;;;;;;;OAOG;IACI,sBAAsB,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE;IAmBjE;;;OAGG;YACW,iBAAiB;IAY/B;;OAEG;IACU,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAO9F;;;OAGG;IACI,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAcvD,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAIhC,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;CAwD3D;AAED,wBAAgB,uBAAuB,CACtC,QAAQ,EAAE,aAAa,GAAG,SAAS,EACnC,QAAQ,CAAC,EAAE,yBAAyB,GAClC,aAAa,GAAG,SAAS,CAsB3B;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACvC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,GACxE,IAAI,CA+BN;AAED,gBAAgB;AAChB,qBAAa,wBAAwB,CAAC,CAAC,SAAS,iBAAiB,GAAG,iBAAiB,CACpF,YAAW,sBAAsB;IAShC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAGlC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVtB,SAAgB,IAAI,8BAA8B;IAE3C,uBAAuB,EAAE,uBAAuB,CAAC;gBAGvD,eAAe,EAAE,kCAAkC,EAElC,iBAAiB,EAAE,CACnC,OAAO,EAAE,sBAAsB,KAC3B,OAAO,CAAC,WAAW,CAAC,EACR,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC,OAAO,iBAAiB,CAAC,KAAK,CAAC;IAKvF,IAAW,sBAAsB,SAEhC;IAEY,oBAAoB,CAChC,OAAO,EAAE,sBAAsB,EAC/B,SAAS,EAAE,OAAO,GAChB,OAAO,CAAC,sBAAsB,CAAC;CAalC"}
|
|
@@ -99,8 +99,8 @@ function wrapContext(context) {
|
|
|
99
99
|
uploadBlob: async (...args) => {
|
|
100
100
|
return context.uploadBlob(...args);
|
|
101
101
|
},
|
|
102
|
-
|
|
103
|
-
return context.
|
|
102
|
+
addedGCOutboundRoute: (...args) => {
|
|
103
|
+
return context.addedGCOutboundRoute(...args);
|
|
104
104
|
},
|
|
105
105
|
getCreateChildSummarizerNodeFn: (...args) => {
|
|
106
106
|
return context.getCreateChildSummarizerNodeFn?.(...args);
|
|
@@ -151,27 +151,30 @@ exports.wrapContextForInnerChannel = wrapContextForInnerChannel;
|
|
|
151
151
|
* @internal
|
|
152
152
|
*/
|
|
153
153
|
class ChannelCollection {
|
|
154
|
+
baseSnapshot;
|
|
155
|
+
parentContext;
|
|
156
|
+
gcNodeUpdated;
|
|
157
|
+
isDataStoreDeleted;
|
|
158
|
+
aliasMap;
|
|
159
|
+
// Stores tracked by the Domain
|
|
160
|
+
pendingAttach = new Map();
|
|
161
|
+
// 0.24 back-compat attachingBeforeSummary
|
|
162
|
+
attachOpFiredForDataStore = new Set();
|
|
163
|
+
mc;
|
|
164
|
+
disposeOnce = new internal_1.Lazy(() => this.contexts.dispose());
|
|
165
|
+
entryPoint;
|
|
166
|
+
containerLoadStats;
|
|
167
|
+
pendingAliasMap = new Map();
|
|
168
|
+
contexts;
|
|
169
|
+
aliasedDataStores;
|
|
154
170
|
constructor(baseSnapshot, parentContext, baseLogger, gcNodeUpdated, isDataStoreDeleted, aliasMap, provideEntryPoint) {
|
|
155
171
|
this.baseSnapshot = baseSnapshot;
|
|
156
172
|
this.parentContext = parentContext;
|
|
157
173
|
this.gcNodeUpdated = gcNodeUpdated;
|
|
158
174
|
this.isDataStoreDeleted = isDataStoreDeleted;
|
|
159
175
|
this.aliasMap = aliasMap;
|
|
160
|
-
// Stores tracked by the Domain
|
|
161
|
-
this.pendingAttach = new Map();
|
|
162
|
-
// 0.24 back-compat attachingBeforeSummary
|
|
163
|
-
this.attachOpFiredForDataStore = new Set();
|
|
164
|
-
this.disposeOnce = new internal_1.Lazy(() => this.contexts.dispose());
|
|
165
|
-
// Stores the ids of new data stores between two GC runs. This is used to notify the garbage collector of new
|
|
166
|
-
// root data stores that are added.
|
|
167
|
-
this.dataStoresSinceLastGC = [];
|
|
168
|
-
this.pendingAliasMap = new Map();
|
|
169
|
-
/** For sampling. Only log once per container */
|
|
170
|
-
this.shouldSendAttachLog = true;
|
|
171
|
-
this.dispose = () => this.disposeOnce.value;
|
|
172
176
|
this.mc = (0, internal_6.createChildMonitoringContext)({ logger: baseLogger });
|
|
173
177
|
this.contexts = new dataStoreContexts_js_1.DataStoreContexts(baseLogger);
|
|
174
|
-
this.containerRuntimeHandle = new internal_2.FluidObjectHandle(this.parentContext, "/", this.parentContext.IFluidHandleContext);
|
|
175
178
|
this.entryPoint = new internal_2.FluidObjectHandle(new internal_1.LazyPromise(async () => provideEntryPoint(this)), "", this.parentContext.IFluidHandleContext);
|
|
176
179
|
this.aliasedDataStores = new Set(aliasMap.values());
|
|
177
180
|
// Extract stores stored inside the snapshot
|
|
@@ -246,6 +249,8 @@ class ChannelCollection {
|
|
|
246
249
|
const pendingAliasPromise = this.pendingAliases.get(maybeAlias);
|
|
247
250
|
return pendingAliasPromise ?? "Success";
|
|
248
251
|
}
|
|
252
|
+
/** For sampling. Only log once per container */
|
|
253
|
+
shouldSendAttachLog = true;
|
|
249
254
|
wrapContextForInnerChannel(id) {
|
|
250
255
|
return wrapContextForInnerChannel(id, this.parentContext);
|
|
251
256
|
}
|
|
@@ -259,12 +264,11 @@ class ChannelCollection {
|
|
|
259
264
|
}
|
|
260
265
|
processAttachMessage(message, local) {
|
|
261
266
|
const attachMessage = message.contents;
|
|
262
|
-
this.dataStoresSinceLastGC.push(attachMessage.id);
|
|
263
267
|
// We need to process the GC Data for both local and remote attach messages
|
|
264
268
|
const foundGCData = (0, internal_5.processAttachMessageGCData)(attachMessage.snapshot, (nodeId, toPath) => {
|
|
265
269
|
// nodeId is the relative path under the node being attached. Always starts with "/", but no trailing "/" after an id
|
|
266
270
|
const fromPath = `/${attachMessage.id}${nodeId === "/" ? "" : nodeId}`;
|
|
267
|
-
this.parentContext.
|
|
271
|
+
this.parentContext.addedGCOutboundRoute(fromPath, toPath);
|
|
268
272
|
});
|
|
269
273
|
// Only log once per container to avoid noise/cost.
|
|
270
274
|
// Allows longitudinal tracking of various state (e.g. foundGCData), and some sampled details
|
|
@@ -358,8 +362,7 @@ class ChannelCollection {
|
|
|
358
362
|
});
|
|
359
363
|
return false;
|
|
360
364
|
}
|
|
361
|
-
|
|
362
|
-
this.parentContext.addedGCOutboundReference?.(this.containerRuntimeHandle, handle);
|
|
365
|
+
this.parentContext.addedGCOutboundRoute("/", `/${internalId}`);
|
|
363
366
|
this.aliasMap.set(alias, context.id);
|
|
364
367
|
this.aliasedDataStores.add(context.id);
|
|
365
368
|
context.setInMemoryRoot();
|
|
@@ -467,6 +470,7 @@ class ChannelCollection {
|
|
|
467
470
|
get disposed() {
|
|
468
471
|
return this.disposeOnce.evaluated;
|
|
469
472
|
}
|
|
473
|
+
dispose = () => this.disposeOnce.value;
|
|
470
474
|
reSubmit(type, content, localOpMetadata) {
|
|
471
475
|
switch (type) {
|
|
472
476
|
case messageTypes_js_1.ContainerMessageType.Attach:
|
|
@@ -571,7 +575,7 @@ class ChannelCollection {
|
|
|
571
575
|
this.pendingAttach.set(message.id, message);
|
|
572
576
|
}
|
|
573
577
|
}
|
|
574
|
-
process(message, local, localMessageMetadata
|
|
578
|
+
process(message, local, localMessageMetadata) {
|
|
575
579
|
switch (message.type) {
|
|
576
580
|
case messageTypes_js_1.ContainerMessageType.Attach:
|
|
577
581
|
this.processAttachMessage(message, local);
|
|
@@ -588,13 +592,8 @@ class ChannelCollection {
|
|
|
588
592
|
contents: innerContents.content,
|
|
589
593
|
};
|
|
590
594
|
this.processChannelOp(envelope.address, transformed, local, localMessageMetadata);
|
|
591
|
-
//
|
|
592
|
-
|
|
593
|
-
if (this.mc.config.getBoolean(index_js_1.detectOutboundRoutesViaDDSKey) !== true &&
|
|
594
|
-
addedOutboundReference !== undefined) {
|
|
595
|
-
// Notify GC of any outbound references that were added by this op.
|
|
596
|
-
detectOutboundReferences(envelope.address, transformed.contents, addedOutboundReference);
|
|
597
|
-
}
|
|
595
|
+
// Notify GC of any outbound references that were added by this op.
|
|
596
|
+
detectOutboundReferences(envelope.address, transformed.contents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath));
|
|
598
597
|
break;
|
|
599
598
|
}
|
|
600
599
|
default:
|
|
@@ -679,9 +678,9 @@ class ChannelCollection {
|
|
|
679
678
|
? (0, index_js_1.urlToGCNodePath)(originalRequest.url)
|
|
680
679
|
: dataStoreNodePath;
|
|
681
680
|
// Log the package details asynchronously since getInitialSnapshotDetails is async
|
|
682
|
-
const
|
|
683
|
-
if (
|
|
684
|
-
|
|
681
|
+
const recentlyDeletedContext = this.contexts.getRecentlyDeletedContext(id);
|
|
682
|
+
if (recentlyDeletedContext !== undefined) {
|
|
683
|
+
recentlyDeletedContext
|
|
685
684
|
.getInitialSnapshotDetails()
|
|
686
685
|
.then((details) => {
|
|
687
686
|
return details.pkg.join("/");
|
|
@@ -825,23 +824,6 @@ class ChannelCollection {
|
|
|
825
824
|
} while (notBoundContextsLength !== this.contexts.notBoundLength());
|
|
826
825
|
return builder.getSummaryTree();
|
|
827
826
|
}
|
|
828
|
-
/**
|
|
829
|
-
* Before GC runs, called by the garbage collector to update any pending GC state.
|
|
830
|
-
* The garbage collector needs to know all outbound references that are added. Since root data stores are not
|
|
831
|
-
* explicitly marked as referenced, notify GC of new root data stores that were added since the last GC run.
|
|
832
|
-
*/
|
|
833
|
-
async updateStateBeforeGC() {
|
|
834
|
-
for (const id of this.dataStoresSinceLastGC) {
|
|
835
|
-
const context = this.contexts.get(id);
|
|
836
|
-
(0, internal_1.assert)(context !== undefined, 0x2b6 /* Missing data store context */);
|
|
837
|
-
if (await context.isRoot()) {
|
|
838
|
-
// A root data store is basically a reference from the container runtime to the data store.
|
|
839
|
-
const handle = new internal_2.FluidObjectHandle(context, id, this.parentContext.IFluidHandleContext);
|
|
840
|
-
this.parentContext.addedGCOutboundReference?.(this.containerRuntimeHandle, handle);
|
|
841
|
-
}
|
|
842
|
-
}
|
|
843
|
-
this.dataStoresSinceLastGC = [];
|
|
844
|
-
}
|
|
845
827
|
/**
|
|
846
828
|
* Generates data used for garbage collection. It does the following:
|
|
847
829
|
*
|
|
@@ -1121,12 +1103,15 @@ function detectOutboundReferences(address, contents, addedOutboundReference) {
|
|
|
1121
1103
|
exports.detectOutboundReferences = detectOutboundReferences;
|
|
1122
1104
|
/** @internal */
|
|
1123
1105
|
class ChannelCollectionFactory {
|
|
1106
|
+
provideEntryPoint;
|
|
1107
|
+
ctor;
|
|
1108
|
+
type = "ChannelCollectionChannel";
|
|
1109
|
+
IFluidDataStoreRegistry;
|
|
1124
1110
|
constructor(registryEntries,
|
|
1125
1111
|
// ADO:7302 We need a better type here
|
|
1126
1112
|
provideEntryPoint, ctor) {
|
|
1127
1113
|
this.provideEntryPoint = provideEntryPoint;
|
|
1128
1114
|
this.ctor = ctor;
|
|
1129
|
-
this.type = "ChannelCollectionChannel";
|
|
1130
1115
|
this.IFluidDataStoreRegistry = new dataStoreRegistry_js_1.FluidDataStoreRegistry(registryEntries);
|
|
1131
1116
|
}
|
|
1132
1117
|
get IFluidDataStoreFactory() {
|