@fluidframework/container-runtime 2.20.0 → 2.21.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/.eslintrc.cjs +36 -6
- package/CHANGELOG.md +38 -0
- package/api-report/container-runtime.legacy.alpha.api.md +31 -31
- package/dist/batchTracker.d.ts +1 -2
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +1 -1
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager/blobManager.d.ts.map +1 -1
- package/dist/blobManager/blobManager.js +14 -11
- package/dist/blobManager/blobManager.js.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.d.ts +1 -0
- package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.js +7 -5
- package/dist/blobManager/blobManagerSnapSum.js.map +1 -1
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +63 -41
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +2 -2
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +4 -4
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerRuntime.d.ts +14 -30
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +264 -194
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.js +6 -3
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +16 -11
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +1 -0
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +5 -5
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +36 -14
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +2 -0
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +8 -0
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +1 -0
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +8 -5
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +2 -1
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +29 -15
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/inboundBatchAggregator.js +3 -3
- package/dist/inboundBatchAggregator.js.map +1 -1
- package/dist/layerCompatState.d.ts +19 -0
- package/dist/layerCompatState.d.ts.map +1 -0
- package/dist/layerCompatState.js +64 -0
- package/dist/layerCompatState.js.map +1 -0
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.js +2 -2
- package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +3 -2
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +13 -19
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +3 -0
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +4 -1
- 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 +5 -3
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +13 -10
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +14 -11
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +3 -3
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +11 -15
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +3 -1
- package/dist/opLifecycle/remoteMessageProcessor.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 +3 -4
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +11 -10
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/summary/documentSchema.d.ts +7 -0
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +6 -4
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +1 -0
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +13 -11
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -0
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +7 -2
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +2 -2
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +38 -17
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +1 -0
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +18 -9
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +1 -0
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.js +1 -1
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/index.d.ts.map +1 -1
- package/dist/summary/summarizerNode/index.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +30 -31
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +7 -0
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +3 -4
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +9 -6
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +4 -1
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +3 -2
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +19 -8
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +12 -9
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/batchTracker.d.ts +1 -2
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager/blobManager.d.ts.map +1 -1
- package/lib/blobManager/blobManager.js +14 -11
- package/lib/blobManager/blobManager.js.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.d.ts +1 -0
- package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.js +7 -5
- package/lib/blobManager/blobManagerSnapSum.js.map +1 -1
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +66 -42
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +2 -2
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +5 -5
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerRuntime.d.ts +14 -30
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +271 -196
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.js +6 -3
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +16 -11
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +1 -0
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +6 -6
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +39 -15
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +2 -0
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +8 -0
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +1 -0
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +8 -5
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +2 -1
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +32 -16
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/inboundBatchAggregator.js +4 -4
- package/lib/inboundBatchAggregator.js.map +1 -1
- package/lib/layerCompatState.d.ts +19 -0
- package/lib/layerCompatState.d.ts.map +1 -0
- package/lib/layerCompatState.js +60 -0
- package/lib/layerCompatState.js.map +1 -0
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.js +2 -2
- package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +3 -2
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +13 -19
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +3 -0
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +4 -1
- 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 +5 -3
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +13 -10
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +14 -11
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +3 -3
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +11 -15
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +3 -1
- package/lib/opLifecycle/remoteMessageProcessor.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 +3 -4
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +12 -11
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/summary/documentSchema.d.ts +7 -0
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +6 -4
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +1 -0
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +13 -11
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -0
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +7 -2
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +2 -2
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +38 -17
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +1 -0
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +18 -9
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +1 -0
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.js +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/index.d.ts.map +1 -1
- package/lib/summary/summarizerNode/index.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +30 -31
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +7 -0
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +3 -4
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +9 -6
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +4 -1
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +2 -2
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +19 -8
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +12 -9
- package/lib/summary/summaryManager.js.map +1 -1
- package/package.json +21 -43
- package/src/batchTracker.ts +3 -3
- package/src/blobManager/blobManager.ts +16 -14
- package/src/blobManager/blobManagerSnapSum.ts +8 -8
- package/src/channelCollection.ts +63 -44
- package/src/connectionTelemetry.ts +12 -6
- package/src/containerRuntime.ts +306 -235
- package/src/dataStore.ts +6 -3
- package/src/dataStoreContext.ts +16 -16
- package/src/dataStoreContexts.ts +1 -0
- package/src/deltaScheduler.ts +6 -6
- package/src/gc/garbageCollection.ts +47 -20
- package/src/gc/gcConfigs.ts +9 -1
- package/src/gc/gcDefinitions.ts +12 -0
- package/src/gc/gcHelpers.ts +9 -4
- package/src/gc/gcSummaryStateTracker.ts +3 -1
- package/src/gc/gcTelemetry.ts +26 -11
- package/src/inboundBatchAggregator.ts +4 -4
- package/src/layerCompatState.ts +75 -0
- package/src/messageTypes.ts +2 -0
- package/src/opLifecycle/README.md +43 -34
- package/src/opLifecycle/duplicateBatchDetector.ts +2 -2
- package/src/opLifecycle/opCompressor.ts +16 -23
- package/src/opLifecycle/opDecompressor.ts +4 -1
- package/src/opLifecycle/opGroupingManager.ts +5 -4
- package/src/opLifecycle/opSplitter.ts +14 -11
- package/src/opLifecycle/outbox.ts +13 -20
- package/src/opLifecycle/remoteMessageProcessor.ts +3 -1
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +15 -10
- package/src/summary/documentSchema.ts +11 -4
- package/src/summary/orderedClientElection.ts +14 -11
- package/src/summary/runWhileConnectedCoordinator.ts +6 -0
- package/src/summary/runningSummarizer.ts +43 -19
- package/src/summary/summarizer.ts +24 -11
- package/src/summary/summarizerClientElection.ts +2 -0
- package/src/summary/summarizerHeuristics.ts +1 -1
- package/src/summary/summarizerNode/index.ts +1 -0
- package/src/summary/summarizerNode/summarizerNode.ts +32 -31
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +4 -4
- package/src/summary/summarizerTypes.ts +7 -0
- package/src/summary/summaryCollection.ts +19 -8
- package/src/summary/summaryFormat.ts +10 -5
- package/src/summary/summaryGenerator.ts +25 -10
- package/src/summary/summaryManager.ts +14 -12
- package/container-runtime.test-files.tar +0 -0
|
@@ -18,6 +18,7 @@ const dataStore_js_1 = require("./dataStore.js");
|
|
|
18
18
|
const dataStoreContext_js_1 = require("./dataStoreContext.js");
|
|
19
19
|
const dataStoreContexts_js_1 = require("./dataStoreContexts.js");
|
|
20
20
|
const dataStoreRegistry_js_1 = require("./dataStoreRegistry.js");
|
|
21
|
+
// eslint-disable-next-line import/no-deprecated
|
|
21
22
|
const index_js_1 = require("./gc/index.js");
|
|
22
23
|
const messageTypes_js_1 = require("./messageTypes.js");
|
|
23
24
|
const storageServiceWithAttachBlobs_js_1 = require("./storageServiceWithAttachBlobs.js");
|
|
@@ -165,6 +166,7 @@ class ChannelCollection {
|
|
|
165
166
|
this.pendingAttach = new Map();
|
|
166
167
|
// 0.24 back-compat attachingBeforeSummary
|
|
167
168
|
this.attachOpFiredForDataStore = new Set();
|
|
169
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping -- Property is defined once; no need to extract inner lambda
|
|
168
170
|
this.disposeOnce = new internal_1.Lazy(() => this.contexts.dispose());
|
|
169
171
|
this.pendingAliasMap = new Map();
|
|
170
172
|
/**
|
|
@@ -193,42 +195,42 @@ class ChannelCollection {
|
|
|
193
195
|
unreferencedDataStoreCount++;
|
|
194
196
|
}
|
|
195
197
|
// If we have a detached container, then create local data store contexts.
|
|
196
|
-
if (this.parentContext.attachState
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
snapshotForRemoteFluidDatastoreContext = {
|
|
200
|
-
...baseSnapshot,
|
|
201
|
-
snapshotTree: value,
|
|
202
|
-
};
|
|
198
|
+
if (this.parentContext.attachState === container_definitions_1.AttachState.Detached) {
|
|
199
|
+
if (typeof value !== "object") {
|
|
200
|
+
throw new internal_6.LoggingError("Snapshot should be there to load from!!");
|
|
203
201
|
}
|
|
204
|
-
|
|
202
|
+
const snapshotTree = value;
|
|
203
|
+
dataStoreContext = new dataStoreContext_js_1.LocalFluidDataStoreContext({
|
|
205
204
|
id: key,
|
|
206
|
-
|
|
205
|
+
pkg: undefined,
|
|
207
206
|
parentContext: this.wrapContextForInnerChannel(key),
|
|
208
207
|
storage: this.parentContext.storage,
|
|
209
208
|
scope: this.parentContext.scope,
|
|
210
209
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
|
|
211
210
|
type: internal_4.CreateSummarizerNodeSource.FromSummary,
|
|
212
211
|
}),
|
|
213
|
-
|
|
212
|
+
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(key),
|
|
213
|
+
snapshotTree,
|
|
214
214
|
});
|
|
215
215
|
}
|
|
216
216
|
else {
|
|
217
|
-
|
|
218
|
-
|
|
217
|
+
let snapshotForRemoteFluidDatastoreContext = value;
|
|
218
|
+
if ((0, internal_3.isInstanceOfISnapshot)(baseSnapshot)) {
|
|
219
|
+
snapshotForRemoteFluidDatastoreContext = {
|
|
220
|
+
...baseSnapshot,
|
|
221
|
+
snapshotTree: value,
|
|
222
|
+
};
|
|
219
223
|
}
|
|
220
|
-
|
|
221
|
-
dataStoreContext = new dataStoreContext_js_1.LocalFluidDataStoreContext({
|
|
224
|
+
dataStoreContext = new dataStoreContext_js_1.RemoteFluidDataStoreContext({
|
|
222
225
|
id: key,
|
|
223
|
-
|
|
226
|
+
snapshot: snapshotForRemoteFluidDatastoreContext,
|
|
224
227
|
parentContext: this.wrapContextForInnerChannel(key),
|
|
225
228
|
storage: this.parentContext.storage,
|
|
226
229
|
scope: this.parentContext.scope,
|
|
227
230
|
createSummarizerNodeFn: this.parentContext.getCreateChildSummarizerNodeFn(key, {
|
|
228
231
|
type: internal_4.CreateSummarizerNodeSource.FromSummary,
|
|
229
232
|
}),
|
|
230
|
-
|
|
231
|
-
snapshotTree,
|
|
233
|
+
loadingGroupId: value.groupId,
|
|
232
234
|
});
|
|
233
235
|
}
|
|
234
236
|
this.contexts.addBoundOrRemoted(dataStoreContext);
|
|
@@ -491,13 +493,16 @@ class ChannelCollection {
|
|
|
491
493
|
reSubmit(type, content, localOpMetadata) {
|
|
492
494
|
switch (type) {
|
|
493
495
|
case messageTypes_js_1.ContainerMessageType.Attach:
|
|
494
|
-
case messageTypes_js_1.ContainerMessageType.Alias:
|
|
496
|
+
case messageTypes_js_1.ContainerMessageType.Alias: {
|
|
495
497
|
this.parentContext.submitMessage(type, content, localOpMetadata);
|
|
496
498
|
return;
|
|
497
|
-
|
|
499
|
+
}
|
|
500
|
+
case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp: {
|
|
498
501
|
return this.reSubmitChannelOp(type, content, localOpMetadata);
|
|
499
|
-
|
|
502
|
+
}
|
|
503
|
+
default: {
|
|
500
504
|
(0, internal_1.assert)(false, 0x907 /* unknown op type */);
|
|
505
|
+
}
|
|
501
506
|
}
|
|
502
507
|
}
|
|
503
508
|
reSubmitChannelOp(type, content, localOpMetadata) {
|
|
@@ -534,14 +539,18 @@ class ChannelCollection {
|
|
|
534
539
|
async applyStashedOp(content) {
|
|
535
540
|
const opContents = content;
|
|
536
541
|
switch (opContents.type) {
|
|
537
|
-
case messageTypes_js_1.ContainerMessageType.Attach:
|
|
542
|
+
case messageTypes_js_1.ContainerMessageType.Attach: {
|
|
538
543
|
return this.applyStashedAttachOp(opContents.contents);
|
|
539
|
-
|
|
544
|
+
}
|
|
545
|
+
case messageTypes_js_1.ContainerMessageType.Alias: {
|
|
540
546
|
return;
|
|
541
|
-
|
|
547
|
+
}
|
|
548
|
+
case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp: {
|
|
542
549
|
return this.applyStashedChannelChannelOp(opContents.contents);
|
|
543
|
-
|
|
550
|
+
}
|
|
551
|
+
default: {
|
|
544
552
|
(0, internal_1.assert)(false, 0x908 /* unknon type of op */);
|
|
553
|
+
}
|
|
545
554
|
}
|
|
546
555
|
}
|
|
547
556
|
async applyStashedChannelChannelOp(envelope) {
|
|
@@ -589,7 +598,7 @@ class ChannelCollection {
|
|
|
589
598
|
// if the client is not detached put in the pending attach list
|
|
590
599
|
// so that on ack of the stashed op, the context is found.
|
|
591
600
|
// detached client don't send ops, so should not expect and ack.
|
|
592
|
-
this.pendingAttach.set(
|
|
601
|
+
this.pendingAttach.set(id, message);
|
|
593
602
|
}
|
|
594
603
|
}
|
|
595
604
|
/**
|
|
@@ -598,17 +607,21 @@ class ChannelCollection {
|
|
|
598
607
|
*/
|
|
599
608
|
processMessages(messageCollection) {
|
|
600
609
|
switch (messageCollection.envelope.type) {
|
|
601
|
-
case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp:
|
|
610
|
+
case messageTypes_js_1.ContainerMessageType.FluidDataStoreOp: {
|
|
602
611
|
this.processChannelMessages(messageCollection);
|
|
603
612
|
break;
|
|
604
|
-
|
|
613
|
+
}
|
|
614
|
+
case messageTypes_js_1.ContainerMessageType.Attach: {
|
|
605
615
|
this.processAttachMessages(messageCollection);
|
|
606
616
|
break;
|
|
607
|
-
|
|
617
|
+
}
|
|
618
|
+
case messageTypes_js_1.ContainerMessageType.Alias: {
|
|
608
619
|
this.processAliasMessages(messageCollection);
|
|
609
620
|
break;
|
|
610
|
-
|
|
621
|
+
}
|
|
622
|
+
default: {
|
|
611
623
|
(0, internal_1.assert)(false, 0x8e9 /* unreached */);
|
|
624
|
+
}
|
|
612
625
|
}
|
|
613
626
|
}
|
|
614
627
|
/**
|
|
@@ -635,7 +648,7 @@ class ChannelCollection {
|
|
|
635
648
|
* @param messageCollection - The collection of messages to process.
|
|
636
649
|
*/
|
|
637
650
|
processChannelMessages(messageCollection) {
|
|
638
|
-
const { messagesContent, local } = messageCollection;
|
|
651
|
+
const { envelope, messagesContent, local } = messageCollection;
|
|
639
652
|
let currentMessageState;
|
|
640
653
|
let currentMessagesContent = [];
|
|
641
654
|
// Helper that sends the current bunch of messages to the data store. It validates that the data stores exists.
|
|
@@ -647,7 +660,7 @@ class ChannelCollection {
|
|
|
647
660
|
const currentContext = this.contexts.get(currentMessageState.address);
|
|
648
661
|
(0, internal_1.assert)(!!currentContext, 0xa66 /* Context not found */);
|
|
649
662
|
currentContext.processMessages({
|
|
650
|
-
envelope: { ...
|
|
663
|
+
envelope: { ...envelope, type: currentMessageState.type },
|
|
651
664
|
messagesContent: currentMessagesContent,
|
|
652
665
|
local,
|
|
653
666
|
});
|
|
@@ -669,10 +682,10 @@ class ChannelCollection {
|
|
|
669
682
|
}
|
|
670
683
|
if (context === undefined) {
|
|
671
684
|
// Former assert 0x162
|
|
672
|
-
throw internal_6.DataProcessingError.create("No context for op", "processFluidDataStoreOp",
|
|
685
|
+
throw internal_6.DataProcessingError.create("No context for op", "processFluidDataStoreOp", envelope, {
|
|
673
686
|
local,
|
|
674
687
|
messageDetails: JSON.stringify({
|
|
675
|
-
type:
|
|
688
|
+
type: envelope.type,
|
|
676
689
|
contentType: typeof contents,
|
|
677
690
|
}),
|
|
678
691
|
...(0, internal_6.tagCodeArtifacts)({ address }),
|
|
@@ -694,10 +707,10 @@ class ChannelCollection {
|
|
|
694
707
|
this.gcNodeUpdated({
|
|
695
708
|
node: { type: "DataStore", path: `/${address}` },
|
|
696
709
|
reason: "Changed",
|
|
697
|
-
timestampMs:
|
|
710
|
+
timestampMs: envelope.timestamp,
|
|
698
711
|
packagePath: context.isLoaded ? context.packagePath : undefined,
|
|
699
712
|
});
|
|
700
|
-
detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath,
|
|
713
|
+
detectOutboundReferences(address, contextContents, (fromPath, toPath) => this.parentContext.addedGCOutboundRoute(fromPath, toPath, envelope.timestamp));
|
|
701
714
|
}
|
|
702
715
|
// Process the last bunch of messages, if any. Note that there may not be any messages in case all of them are
|
|
703
716
|
// ignored because the data store is deleted.
|
|
@@ -708,6 +721,7 @@ class ChannelCollection {
|
|
|
708
721
|
if (this.checkAndLogIfDeleted(id, this.contexts.get(id), "Requested", "getDataStore", requestHeaderData, originalRequest)) {
|
|
709
722
|
// The requested data store has been deleted by gc. Create a 404 response exception.
|
|
710
723
|
throw (0, internal_5.responseToException)((0, internal_5.createResponseError)(404, "DataStore was deleted", originalRequest, {
|
|
724
|
+
// eslint-disable-next-line import/no-deprecated
|
|
711
725
|
[containerRuntime_js_1.DeletedResponseHeaderKey]: true,
|
|
712
726
|
}), originalRequest);
|
|
713
727
|
}
|
|
@@ -749,7 +763,7 @@ class ChannelCollection {
|
|
|
749
763
|
if (!this.isDataStoreDeleted(dataStoreNodePath)) {
|
|
750
764
|
return false;
|
|
751
765
|
}
|
|
752
|
-
const idToLog = originalRequest
|
|
766
|
+
const idToLog = originalRequest === undefined ? dataStoreNodePath : (0, index_js_1.urlToGCNodePath)(originalRequest.url);
|
|
753
767
|
// Log the package details asynchronously since getInitialSnapshotDetails is async
|
|
754
768
|
const recentlyDeletedContext = this.contexts.getRecentlyDeletedContext(id);
|
|
755
769
|
if (recentlyDeletedContext !== undefined) {
|
|
@@ -872,7 +886,7 @@ class ChannelCollection {
|
|
|
872
886
|
builder.prefixAndAddNodes(contextId, contextGCData.gcNodes);
|
|
873
887
|
});
|
|
874
888
|
// Get the outbound routes (aliased data stores) and add a GC node for this channel.
|
|
875
|
-
builder.addNode("/",
|
|
889
|
+
builder.addNode("/", [...this.aliasedDataStores]);
|
|
876
890
|
return builder.getGCData();
|
|
877
891
|
}
|
|
878
892
|
/**
|
|
@@ -1037,7 +1051,7 @@ class ChannelCollection {
|
|
|
1037
1051
|
}
|
|
1038
1052
|
this.deleteChild(dataStoreId);
|
|
1039
1053
|
}
|
|
1040
|
-
return
|
|
1054
|
+
return [...sweepReadyDataStoreRoutes];
|
|
1041
1055
|
}
|
|
1042
1056
|
/**
|
|
1043
1057
|
* This is called to update objects whose routes are tombstones.
|
|
@@ -1086,12 +1100,14 @@ class ChannelCollection {
|
|
|
1086
1100
|
// If the node belongs to a data store, return its package path. For DDSes, we return the package path of the
|
|
1087
1101
|
// data store that contains it.
|
|
1088
1102
|
const context = this.contexts.get(nodePath.split("/")[1]);
|
|
1089
|
-
|
|
1103
|
+
const initialSnapshotDetails = await context?.getInitialSnapshotDetails();
|
|
1104
|
+
return initialSnapshotDetails?.pkg;
|
|
1090
1105
|
}
|
|
1091
1106
|
/**
|
|
1092
1107
|
* Called by GC to determine if a node is for a data store or for an object within a data store (for e.g. DDS).
|
|
1093
1108
|
* @returns the GC node type if the node belongs to a data store or object within data store, undefined otherwise.
|
|
1094
1109
|
*/
|
|
1110
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1095
1111
|
getGCNodeType(nodePath) {
|
|
1096
1112
|
const pathParts = nodePath.split("/");
|
|
1097
1113
|
if (!this.contexts.has(pathParts[1])) {
|
|
@@ -1100,8 +1116,10 @@ class ChannelCollection {
|
|
|
1100
1116
|
// Data stores paths are of the format "/dataStoreId".
|
|
1101
1117
|
// Sub data store paths are of the format "/dataStoreId/subPath/...".
|
|
1102
1118
|
if (pathParts.length === 2) {
|
|
1119
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1103
1120
|
return index_js_1.GCNodeType.DataStore;
|
|
1104
1121
|
}
|
|
1122
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1105
1123
|
return index_js_1.GCNodeType.SubDataStore;
|
|
1106
1124
|
}
|
|
1107
1125
|
internalId(maybeAlias) {
|
|
@@ -1150,7 +1168,9 @@ class ChannelCollection {
|
|
|
1150
1168
|
}
|
|
1151
1169
|
}
|
|
1152
1170
|
exports.ChannelCollection = ChannelCollection;
|
|
1153
|
-
function getSummaryForDatastores(snapshot,
|
|
1171
|
+
function getSummaryForDatastores(snapshot,
|
|
1172
|
+
// eslint-disable-next-line import/no-deprecated
|
|
1173
|
+
metadata) {
|
|
1154
1174
|
if (!snapshot) {
|
|
1155
1175
|
return undefined;
|
|
1156
1176
|
}
|
|
@@ -1204,7 +1224,9 @@ function detectOutboundReferences(address, contents, addedOutboundReference) {
|
|
|
1204
1224
|
// GC node paths are all absolute paths, hence the "" prefix.
|
|
1205
1225
|
// e.g. this will yield "/dataStoreId/ddsId"
|
|
1206
1226
|
const fromPath = ["", address, ddsAddress].join("/");
|
|
1207
|
-
|
|
1227
|
+
for (const toPath of outboundPaths) {
|
|
1228
|
+
addedOutboundReference(fromPath, toPath);
|
|
1229
|
+
}
|
|
1208
1230
|
}
|
|
1209
1231
|
exports.detectOutboundReferences = detectOutboundReferences;
|
|
1210
1232
|
/**
|