@fluidframework/container-runtime 2.0.0-rc.2.0.1 → 2.0.0-rc.3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +23 -0
- package/api-report/container-runtime.api.md +471 -52
- package/dist/batchTracker.d.ts +1 -1
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +4 -4
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +33 -30
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +82 -107
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +27 -22
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +189 -165
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +3 -3
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +17 -17
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js +2 -2
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +42 -39
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +425 -292
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +1 -1
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +8 -8
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +58 -19
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +171 -114
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +1 -0
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +12 -11
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +5 -1
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js +4 -4
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/dist/deltaManagerSummarizerProxy.js.map +1 -1
- package/dist/deltaScheduler.d.ts +1 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +6 -6
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +4 -4
- package/dist/error.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +3 -2
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +23 -23
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +2 -2
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +4 -5
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +4 -5
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +5 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +21 -12
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +2 -2
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +11 -11
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +2 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +11 -9
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +6 -6
- 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 +2 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +91 -0
- package/dist/messageTypes.d.ts +11 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js +4 -0
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +2 -20
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +3 -3
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +3 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +5 -6
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +15 -4
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +62 -63
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +2 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +14 -16
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +12 -4
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +63 -53
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +2 -1
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +30 -29
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +8 -0
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +36 -32
- 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 +1 -1
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +18 -18
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/public.d.ts +12 -0
- package/dist/scheduleManager.d.ts +1 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +28 -24
- package/dist/scheduleManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.d.ts +2 -2
- package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -1
- package/dist/storageServiceWithAttachBlobs.js +2 -2
- package/dist/storageServiceWithAttachBlobs.js.map +1 -1
- package/dist/summary/documentSchema.d.ts +209 -0
- package/dist/summary/documentSchema.d.ts.map +1 -0
- package/dist/summary/documentSchema.js +390 -0
- package/dist/summary/documentSchema.js.map +1 -0
- package/dist/summary/index.d.ts +2 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +4 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +2 -2
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +12 -7
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +3 -3
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +3 -3
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +16 -16
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +3 -2
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +13 -13
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +2 -2
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +1 -1
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +2 -2
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +3 -2
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +28 -28
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -3
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +14 -14
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +5 -3
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +2 -2
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +7 -7
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +6 -17
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +8 -8
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +4 -3
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +17 -17
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +1 -1
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +15 -14
- package/dist/summary/summaryManager.js.map +1 -1
- package/internal.d.ts +11 -0
- package/legacy.d.ts +11 -0
- package/lib/batchTracker.d.ts +1 -1
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +33 -30
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +48 -73
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +27 -22
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +132 -108
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +3 -3
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +3 -3
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +42 -39
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +276 -141
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +1 -1
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +3 -3
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +58 -19
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +110 -53
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +1 -0
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +3 -2
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.d.ts +5 -1
- package/lib/dataStoreRegistry.d.ts.map +1 -1
- package/lib/dataStoreRegistry.js +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/lib/deltaManagerSummarizerProxy.js.map +1 -1
- package/lib/deltaScheduler.d.ts +1 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +1 -1
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/error.d.ts +1 -1
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +2 -2
- package/lib/error.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +3 -2
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +8 -8
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +2 -2
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +4 -5
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +4 -5
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +5 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +10 -2
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +2 -2
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +2 -2
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +2 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +4 -2
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +2 -2
- 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/index.d.ts +5 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +5 -2
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +91 -0
- package/lib/messageTypes.d.ts +11 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js +4 -0
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +2 -20
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +3 -3
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +2 -2
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +2 -3
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +15 -4
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +61 -62
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +2 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +9 -12
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +12 -4
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +47 -38
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +2 -1
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +19 -18
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +8 -0
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +36 -32
- 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 +1 -1
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +2 -2
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/public.d.ts +12 -0
- package/lib/scheduleManager.d.ts +1 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +7 -3
- package/lib/scheduleManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.d.ts +2 -2
- package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -1
- package/lib/storageServiceWithAttachBlobs.js +1 -1
- package/lib/storageServiceWithAttachBlobs.js.map +1 -1
- package/lib/summary/documentSchema.d.ts +209 -0
- package/lib/summary/documentSchema.d.ts.map +1 -0
- package/lib/summary/documentSchema.js +386 -0
- package/lib/summary/documentSchema.js.map +1 -0
- package/lib/summary/index.d.ts +2 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -0
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +2 -2
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +7 -2
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +3 -3
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +3 -3
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +3 -2
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +3 -3
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +2 -2
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +1 -1
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +3 -2
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +5 -5
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +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 +5 -3
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +2 -2
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +1 -1
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +6 -17
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +3 -3
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +4 -3
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +4 -4
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +1 -1
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +9 -8
- package/lib/summary/summaryManager.js.map +1 -1
- package/package.json +57 -65
- package/src/batchTracker.ts +4 -3
- package/src/blobManager.ts +100 -77
- package/src/channelCollection.ts +223 -167
- package/src/connectionTelemetry.ts +12 -12
- package/src/containerHandleContext.ts +3 -2
- package/src/containerRuntime.ts +481 -277
- package/src/dataStore.ts +9 -4
- package/src/dataStoreContext.ts +201 -97
- package/src/dataStoreContexts.ts +5 -2
- package/src/dataStoreRegistry.ts +3 -2
- package/src/deltaManagerSummarizerProxy.ts +1 -1
- package/src/deltaScheduler.ts +2 -1
- package/src/error.ts +2 -2
- package/src/gc/garbageCollection.ts +21 -20
- package/src/gc/gcConfigs.ts +15 -18
- package/src/gc/gcDefinitions.ts +6 -8
- package/src/gc/gcHelpers.ts +22 -5
- package/src/gc/gcSummaryStateTracker.ts +7 -5
- package/src/gc/gcTelemetry.ts +13 -7
- package/src/gc/gcUnreferencedStateTracker.ts +3 -2
- package/src/gc/index.ts +1 -0
- package/src/index.ts +22 -1
- package/src/messageTypes.ts +20 -6
- package/src/opLifecycle/README.md +89 -0
- package/src/opLifecycle/batchManager.ts +1 -0
- package/src/opLifecycle/definitions.ts +3 -21
- package/src/opLifecycle/index.ts +3 -9
- package/src/opLifecycle/opCompressor.ts +6 -5
- package/src/opLifecycle/opDecompressor.ts +90 -100
- package/src/opLifecycle/opGroupingManager.ts +12 -14
- package/src/opLifecycle/opSplitter.ts +76 -48
- package/src/opLifecycle/outbox.ts +30 -38
- package/src/opLifecycle/remoteMessageProcessor.ts +43 -55
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +6 -6
- package/src/scheduleManager.ts +10 -8
- package/src/storageServiceWithAttachBlobs.ts +2 -2
- package/src/summary/documentSchema.ts +631 -0
- package/src/summary/index.ts +10 -1
- package/src/summary/orderedClientElection.ts +7 -7
- package/src/summary/runWhileConnectedCoordinator.ts +3 -2
- package/src/summary/runningSummarizer.ts +22 -20
- package/src/summary/summarizer.ts +17 -15
- package/src/summary/summarizerClientElection.ts +3 -2
- package/src/summary/summarizerHeuristics.ts +4 -2
- package/src/summary/summarizerNode/summarizerNode.ts +20 -18
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +16 -8
- package/src/summary/summarizerTypes.ts +7 -3
- package/src/summary/summaryCollection.ts +3 -3
- package/src/summary/summaryFormat.ts +14 -26
- package/src/summary/summaryGenerator.ts +12 -15
- package/src/summary/summaryManager.ts +16 -13
- package/api-extractor-cjs.json +0 -8
- package/dist/container-runtime-alpha.d.ts +0 -1753
- package/dist/container-runtime-beta.d.ts +0 -268
- package/dist/container-runtime-public.d.ts +0 -268
- package/dist/container-runtime-untrimmed.d.ts +0 -1893
- package/lib/container-runtime-alpha.d.ts +0 -1753
- package/lib/container-runtime-beta.d.ts +0 -268
- package/lib/container-runtime-public.d.ts +0 -268
- package/lib/container-runtime-untrimmed.d.ts +0 -1893
- package/lib/test/batchTracker.spec.js +0 -88
- package/lib/test/batchTracker.spec.js.map +0 -1
- package/lib/test/blobManager.spec.js +0 -835
- package/lib/test/blobManager.spec.js.map +0 -1
- package/lib/test/channelCollection.spec.js +0 -141
- package/lib/test/channelCollection.spec.js.map +0 -1
- package/lib/test/containerRuntime.spec.js +0 -1748
- package/lib/test/containerRuntime.spec.js.map +0 -1
- package/lib/test/dataStoreContext.spec.js +0 -801
- package/lib/test/dataStoreContext.spec.js.map +0 -1
- package/lib/test/dataStoreCreation.spec.js +0 -312
- package/lib/test/dataStoreCreation.spec.js.map +0 -1
- package/lib/test/dataStoreRegistry.spec.js +0 -26
- package/lib/test/dataStoreRegistry.spec.js.map +0 -1
- package/lib/test/fuzz/fuzzUtils.js +0 -66
- package/lib/test/fuzz/fuzzUtils.js.map +0 -1
- package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -31
- package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzMocks.js +0 -162
- package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzSuite.js +0 -106
- package/lib/test/fuzz/summarizerFuzzSuite.js.map +0 -1
- package/lib/test/gc/garbageCollection.spec.js +0 -1465
- package/lib/test/gc/garbageCollection.spec.js.map +0 -1
- package/lib/test/gc/gcConfigs.spec.js +0 -690
- package/lib/test/gc/gcConfigs.spec.js.map +0 -1
- package/lib/test/gc/gcHelpers.spec.js +0 -110
- package/lib/test/gc/gcHelpers.spec.js.map +0 -1
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +0 -68
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +0 -1
- package/lib/test/gc/gcStats.spec.js +0 -391
- package/lib/test/gc/gcStats.spec.js.map +0 -1
- package/lib/test/gc/gcSummaryStateTracker.spec.js +0 -228
- package/lib/test/gc/gcSummaryStateTracker.spec.js.map +0 -1
- package/lib/test/gc/gcTelemetry.spec.js +0 -530
- package/lib/test/gc/gcTelemetry.spec.js.map +0 -1
- package/lib/test/gc/gcUnitTestHelpers.js +0 -29
- package/lib/test/gc/gcUnitTestHelpers.js.map +0 -1
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js +0 -192
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +0 -1
- package/lib/test/getPendingBlobs.spec.js +0 -193
- package/lib/test/getPendingBlobs.spec.js.map +0 -1
- package/lib/test/hardwareStats.spec.js +0 -93
- package/lib/test/hardwareStats.spec.js.map +0 -1
- package/lib/test/index.js +0 -6
- package/lib/test/index.js.map +0 -1
- package/lib/test/opLifecycle/OpGroupingManager.spec.js +0 -225
- package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +0 -1
- package/lib/test/opLifecycle/batchManager.spec.js +0 -189
- package/lib/test/opLifecycle/batchManager.spec.js.map +0 -1
- package/lib/test/opLifecycle/opCompressor.spec.js +0 -74
- package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opDecompressor.spec.js +0 -218
- package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opSplitter.spec.js +0 -272
- package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
- package/lib/test/opLifecycle/outbox.spec.js +0 -675
- package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -196
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +0 -1
- package/lib/test/pendingStateManager.spec.js +0 -329
- package/lib/test/pendingStateManager.spec.js.map +0 -1
- package/lib/test/scheduleManager.spec.js +0 -270
- package/lib/test/scheduleManager.spec.js.map +0 -1
- package/lib/test/summarizerNode.spec.js +0 -326
- package/lib/test/summarizerNode.spec.js.map +0 -1
- package/lib/test/summarizerNodeWithGc.spec.js +0 -318
- package/lib/test/summarizerNodeWithGc.spec.js.map +0 -1
- package/lib/test/summary/orderedClientElection.spec.js +0 -535
- package/lib/test/summary/orderedClientElection.spec.js.map +0 -1
- package/lib/test/summary/runningSummarizer.spec.js +0 -1349
- package/lib/test/summary/runningSummarizer.spec.js.map +0 -1
- package/lib/test/summary/summarizer.spec.js +0 -29
- package/lib/test/summary/summarizer.spec.js.map +0 -1
- package/lib/test/summary/summarizerClientElection.spec.js +0 -436
- package/lib/test/summary/summarizerClientElection.spec.js.map +0 -1
- package/lib/test/summary/summarizerHeuristics.spec.js +0 -289
- package/lib/test/summary/summarizerHeuristics.spec.js.map +0 -1
- package/lib/test/summary/summaryCollection.spec.js +0 -200
- package/lib/test/summary/summaryCollection.spec.js.map +0 -1
- package/lib/test/summary/summaryManager.spec.js +0 -430
- package/lib/test/summary/summaryManager.spec.js.map +0 -1
- package/lib/test/summary/testQuorumClients.js +0 -34
- package/lib/test/summary/testQuorumClients.js.map +0 -1
- package/lib/test/throttler.spec.js +0 -175
- package/lib/test/throttler.spec.js.map +0 -1
- package/lib/test/types/validateContainerRuntimePrevious.generated.js +0 -180
- package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
- /package/{dist → lib}/tsdoc-metadata.json +0 -0
package/src/dataStore.ts
CHANGED
|
@@ -3,15 +3,17 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryLoggerExt, TelemetryDataTag, UsageError } from "@fluidframework/telemetry-utils";
|
|
7
|
-
import { assert, unreachableCase } from "@fluidframework/core-utils";
|
|
8
6
|
import { AttachState } from "@fluidframework/container-definitions";
|
|
9
7
|
import { FluidObject, IFluidHandle } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
10
9
|
import {
|
|
11
10
|
AliasResult,
|
|
12
11
|
IDataStore,
|
|
13
12
|
IFluidDataStoreChannel,
|
|
14
|
-
} from "@fluidframework/runtime-definitions";
|
|
13
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
14
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
15
|
+
import { TelemetryDataTag, UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
16
|
+
|
|
15
17
|
import { ChannelCollection } from "./channelCollection.js";
|
|
16
18
|
import { ContainerMessageType } from "./messageTypes.js";
|
|
17
19
|
|
|
@@ -115,7 +117,10 @@ class DataStore implements IDataStore {
|
|
|
115
117
|
this.fluidDataStoreChannel.makeVisibleAndAttachGraph();
|
|
116
118
|
|
|
117
119
|
if (this.parentContext.attachState === AttachState.Detached) {
|
|
118
|
-
const localResult = this.channelCollection.processAliasMessageCore(
|
|
120
|
+
const localResult = this.channelCollection.processAliasMessageCore(
|
|
121
|
+
this.internalId,
|
|
122
|
+
alias,
|
|
123
|
+
);
|
|
119
124
|
// Explicitly lock-out future attempts of aliasing,
|
|
120
125
|
// regardless of result
|
|
121
126
|
this.aliasState = AliasState.Aliased;
|
package/src/dataStoreContext.ts
CHANGED
|
@@ -3,19 +3,20 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
|
+
import { AttachState, IAudience, IDeltaManager } from "@fluidframework/container-definitions";
|
|
6
8
|
import {
|
|
7
|
-
IDisposable,
|
|
8
9
|
FluidObject,
|
|
10
|
+
IDisposable,
|
|
11
|
+
IEvent,
|
|
12
|
+
IFluidHandle,
|
|
9
13
|
IRequest,
|
|
10
14
|
IResponse,
|
|
11
|
-
IFluidHandle,
|
|
12
15
|
ITelemetryBaseProperties,
|
|
13
16
|
} from "@fluidframework/core-interfaces";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
18
|
-
import { BlobTreeEntry, readAndParse } from "@fluidframework/driver-utils";
|
|
17
|
+
import { assert, LazyPromise, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
18
|
+
import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
|
|
19
|
+
import { BlobTreeEntry, readAndParse } from "@fluidframework/driver-utils/internal";
|
|
19
20
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
20
21
|
import {
|
|
21
22
|
IClientDetails,
|
|
@@ -26,53 +27,55 @@ import {
|
|
|
26
27
|
ITreeEntry,
|
|
27
28
|
} from "@fluidframework/protocol-definitions";
|
|
28
29
|
import {
|
|
29
|
-
|
|
30
|
+
IGarbageCollectionData,
|
|
31
|
+
IInboundSignalMessage,
|
|
32
|
+
ISummaryTreeWithStats,
|
|
33
|
+
ITelemetryContext,
|
|
34
|
+
} from "@fluidframework/runtime-definitions";
|
|
35
|
+
import {
|
|
30
36
|
CreateChildSummarizerNodeFn,
|
|
31
37
|
CreateChildSummarizerNodeParam,
|
|
32
38
|
FluidDataStoreRegistryEntry,
|
|
39
|
+
IContainerRuntimeBase,
|
|
40
|
+
IDataStore,
|
|
33
41
|
IFluidDataStoreChannel,
|
|
34
42
|
IFluidDataStoreContext,
|
|
35
|
-
IFluidParentContext,
|
|
36
|
-
IContainerRuntimeBase,
|
|
37
43
|
IFluidDataStoreContextDetached,
|
|
38
|
-
IFluidDataStoreContextEvents,
|
|
39
44
|
IFluidDataStoreRegistry,
|
|
40
|
-
|
|
45
|
+
IFluidParentContext,
|
|
41
46
|
IGarbageCollectionDetailsBase,
|
|
42
|
-
IInboundSignalMessage,
|
|
43
47
|
IProvideFluidDataStoreFactory,
|
|
44
48
|
ISummarizeInternalResult,
|
|
45
49
|
ISummarizeResult,
|
|
46
50
|
ISummarizerNodeWithGC,
|
|
47
51
|
SummarizeInternalFn,
|
|
48
|
-
|
|
49
|
-
ISummaryTreeWithStats,
|
|
50
|
-
IDataStore,
|
|
52
|
+
channelsTreeName,
|
|
51
53
|
gcDataBlobKey,
|
|
52
|
-
} from "@fluidframework/runtime-definitions";
|
|
53
|
-
import { addBlobToSummary } from "@fluidframework/runtime-utils";
|
|
54
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
55
|
+
import { addBlobToSummary } from "@fluidframework/runtime-utils/internal";
|
|
54
56
|
import {
|
|
55
|
-
createChildMonitoringContext,
|
|
56
57
|
DataCorruptionError,
|
|
57
58
|
DataProcessingError,
|
|
58
|
-
extractSafePropertiesFromMessage,
|
|
59
|
-
generateStack,
|
|
60
59
|
LoggingError,
|
|
61
60
|
MonitoringContext,
|
|
62
|
-
tagCodeArtifacts,
|
|
63
61
|
ThresholdCounter,
|
|
64
|
-
|
|
62
|
+
createChildMonitoringContext,
|
|
63
|
+
extractSafePropertiesFromMessage,
|
|
64
|
+
generateStack,
|
|
65
|
+
tagCodeArtifacts,
|
|
66
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
67
|
+
|
|
68
|
+
import { detectOutboundRoutesViaDDSKey, sendGCUnexpectedUsageEvent } from "./gc/index.js";
|
|
65
69
|
import {
|
|
66
|
-
dataStoreAttributesBlobName,
|
|
67
|
-
hasIsolatedChannels,
|
|
68
|
-
wrapSummaryInChannelsTree,
|
|
69
70
|
ReadFluidDataStoreAttributes,
|
|
70
71
|
WriteFluidDataStoreAttributes,
|
|
72
|
+
dataStoreAttributesBlobName,
|
|
71
73
|
getAttributesFormatVersion,
|
|
72
74
|
getFluidDataStoreAttributes,
|
|
75
|
+
hasIsolatedChannels,
|
|
73
76
|
summarizerClientType,
|
|
77
|
+
wrapSummaryInChannelsTree,
|
|
74
78
|
} from "./summary/index.js";
|
|
75
|
-
import { detectOutboundRoutesViaDDSKey, sendGCUnexpectedUsageEvent } from "./gc/index.js";
|
|
76
79
|
|
|
77
80
|
function createAttributes(
|
|
78
81
|
pkg: readonly string[],
|
|
@@ -90,14 +93,40 @@ export function createAttributesBlob(pkg: readonly string[], isRootDataStore: bo
|
|
|
90
93
|
return new BlobTreeEntry(dataStoreAttributesBlobName, JSON.stringify(attributes));
|
|
91
94
|
}
|
|
92
95
|
|
|
93
|
-
|
|
96
|
+
/** @internal */
|
|
97
|
+
export interface ISnapshotDetails {
|
|
94
98
|
pkg: readonly string[];
|
|
95
99
|
isRootDataStore: boolean;
|
|
96
100
|
snapshot?: ISnapshotTree;
|
|
97
101
|
sequenceNumber?: number;
|
|
98
102
|
}
|
|
99
103
|
|
|
100
|
-
/**
|
|
104
|
+
/**
|
|
105
|
+
* This is interface that every context should implement.
|
|
106
|
+
* This interface is used for context's parent - ChannelCollection.
|
|
107
|
+
* It should not be exposed to any other users of context.
|
|
108
|
+
* @internal
|
|
109
|
+
*/
|
|
110
|
+
export interface IFluidDataStoreContextInternal extends IFluidDataStoreContext {
|
|
111
|
+
getAttachData(
|
|
112
|
+
includeGCData: boolean,
|
|
113
|
+
telemetryContext?: ITelemetryContext,
|
|
114
|
+
): {
|
|
115
|
+
attachSummary: ISummaryTreeWithStats;
|
|
116
|
+
type: string;
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
getInitialSnapshotDetails(): Promise<ISnapshotDetails>;
|
|
120
|
+
|
|
121
|
+
realize(): Promise<IFluidDataStoreChannel>;
|
|
122
|
+
|
|
123
|
+
isRoot(): Promise<boolean>;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Properties necessary for creating a FluidDataStoreContext
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
101
130
|
export interface IFluidDataStoreContextProps {
|
|
102
131
|
readonly id: string;
|
|
103
132
|
readonly parentContext: IFluidParentContext;
|
|
@@ -108,11 +137,13 @@ export interface IFluidDataStoreContextProps {
|
|
|
108
137
|
readonly loadingGroupId?: string;
|
|
109
138
|
}
|
|
110
139
|
|
|
111
|
-
/**
|
|
140
|
+
/**
|
|
141
|
+
* Properties necessary for creating a local FluidDataStoreContext
|
|
142
|
+
* @internal
|
|
143
|
+
*/
|
|
112
144
|
export interface ILocalFluidDataStoreContextProps extends IFluidDataStoreContextProps {
|
|
113
145
|
readonly pkg: Readonly<string[]> | undefined;
|
|
114
146
|
readonly snapshotTree: ISnapshotTree | undefined;
|
|
115
|
-
readonly isRootDataStore: boolean | undefined;
|
|
116
147
|
readonly makeLocallyVisibleFn: () => void;
|
|
117
148
|
/**
|
|
118
149
|
* @deprecated 0.16 Issue #1635, #3631
|
|
@@ -120,22 +151,36 @@ export interface ILocalFluidDataStoreContextProps extends IFluidDataStoreContext
|
|
|
120
151
|
readonly createProps?: any;
|
|
121
152
|
}
|
|
122
153
|
|
|
123
|
-
/**
|
|
154
|
+
/**
|
|
155
|
+
* Properties necessary for creating a local FluidDataStoreContext
|
|
156
|
+
* @internal
|
|
157
|
+
*/
|
|
124
158
|
export interface ILocalDetachedFluidDataStoreContextProps extends ILocalFluidDataStoreContextProps {
|
|
125
159
|
readonly channelToDataStoreFn: (channel: IFluidDataStoreChannel) => IDataStore;
|
|
126
160
|
}
|
|
127
161
|
|
|
128
|
-
/**
|
|
162
|
+
/**
|
|
163
|
+
* Properties necessary for creating a remote FluidDataStoreContext
|
|
164
|
+
* @internal
|
|
165
|
+
*/
|
|
129
166
|
export interface IRemoteFluidDataStoreContextProps extends IFluidDataStoreContextProps {
|
|
130
167
|
readonly snapshotTree: ISnapshotTree | undefined;
|
|
131
168
|
}
|
|
132
169
|
|
|
170
|
+
// back-compat: To be removed in the future.
|
|
171
|
+
// Added in "2.0.0-rc.2.0.0" timeframe (to support older builds).
|
|
172
|
+
/** @internal */
|
|
173
|
+
export interface IFluidDataStoreContextEvents extends IEvent {
|
|
174
|
+
(event: "attaching" | "attached", listener: () => void);
|
|
175
|
+
}
|
|
176
|
+
|
|
133
177
|
/**
|
|
134
178
|
* Represents the context for the store. This context is passed to the store runtime.
|
|
179
|
+
* @internal
|
|
135
180
|
*/
|
|
136
181
|
export abstract class FluidDataStoreContext
|
|
137
182
|
extends TypedEventEmitter<IFluidDataStoreContextEvents>
|
|
138
|
-
implements
|
|
183
|
+
implements IFluidDataStoreContextInternal, IFluidParentContext, IDisposable
|
|
139
184
|
{
|
|
140
185
|
public get packagePath(): readonly string[] {
|
|
141
186
|
assert(this.pkg !== undefined, 0x139 /* "Undefined package path" */);
|
|
@@ -208,17 +253,13 @@ export abstract class FluidDataStoreContext
|
|
|
208
253
|
public readonly gcTombstoneEnforcementAllowed: boolean;
|
|
209
254
|
|
|
210
255
|
/** If true, this means that this data store context and its children have been removed from the runtime */
|
|
211
|
-
|
|
256
|
+
protected deleted: boolean = false;
|
|
212
257
|
|
|
213
258
|
public get attachState(): AttachState {
|
|
214
259
|
return this._attachState;
|
|
215
260
|
}
|
|
216
261
|
|
|
217
262
|
public get IFluidDataStoreRegistry(): IFluidDataStoreRegistry | undefined {
|
|
218
|
-
assert(
|
|
219
|
-
this.channel !== undefined,
|
|
220
|
-
0x8f3 /* This should be called after the channel is created, when the registry is populated */,
|
|
221
|
-
);
|
|
222
263
|
return this.registry;
|
|
223
264
|
}
|
|
224
265
|
|
|
@@ -230,8 +271,20 @@ export abstract class FluidDataStoreContext
|
|
|
230
271
|
* 2. is root as part of the base snapshot that the datastore loaded from
|
|
231
272
|
* @returns whether a datastore is root
|
|
232
273
|
*/
|
|
233
|
-
public async isRoot(): Promise<boolean> {
|
|
234
|
-
|
|
274
|
+
public async isRoot(aliasedDataStores?: Set<string>): Promise<boolean> {
|
|
275
|
+
if (this.isInMemoryRoot()) {
|
|
276
|
+
return true;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
// This if is a performance optimization.
|
|
280
|
+
// We know that if the base snapshot is omitted, then the isRootDataStore flag is not set.
|
|
281
|
+
// That means we can skip the expensive call to getInitialSnapshotDetails for virtualized datastores,
|
|
282
|
+
// and get the information from the alias map directly.
|
|
283
|
+
if (aliasedDataStores !== undefined && this.baseSnapshot?.omitted === true) {
|
|
284
|
+
return aliasedDataStores.has(this.id);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
return (await this.getInitialSnapshotDetails()).isRootDataStore;
|
|
235
288
|
}
|
|
236
289
|
|
|
237
290
|
/**
|
|
@@ -375,6 +428,8 @@ export abstract class FluidDataStoreContext
|
|
|
375
428
|
this._tombstoned = tombstone;
|
|
376
429
|
}
|
|
377
430
|
|
|
431
|
+
public abstract setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;
|
|
432
|
+
|
|
378
433
|
private rejectDeferredRealize(
|
|
379
434
|
reason: string,
|
|
380
435
|
failedPkgPath?: string,
|
|
@@ -759,10 +814,10 @@ export abstract class FluidDataStoreContext
|
|
|
759
814
|
/**
|
|
760
815
|
* Submits the signal to be sent to other clients.
|
|
761
816
|
* @param type - Type of the signal.
|
|
762
|
-
* @param content - Content of the signal.
|
|
817
|
+
* @param content - Content of the signal. Should be a JSON serializable object or primitive.
|
|
763
818
|
* @param targetClientId - When specified, the signal is only sent to the provided client id.
|
|
764
819
|
*/
|
|
765
|
-
public submitSignal(type: string, content:
|
|
820
|
+
public submitSignal(type: string, content: unknown, targetClientId?: string) {
|
|
766
821
|
this.verifyNotClosed("submitSignal");
|
|
767
822
|
|
|
768
823
|
assert(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
|
|
@@ -778,6 +833,48 @@ export abstract class FluidDataStoreContext
|
|
|
778
833
|
this.makeLocallyVisibleFn();
|
|
779
834
|
}
|
|
780
835
|
|
|
836
|
+
protected processPendingOps(channel: IFluidDataStoreChannel) {
|
|
837
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
838
|
+
const pending = this.pending!;
|
|
839
|
+
|
|
840
|
+
// Apply all pending ops
|
|
841
|
+
for (const op of pending) {
|
|
842
|
+
// Only process ops whose seq number is greater than snapshot sequence number from which it loaded.
|
|
843
|
+
const seqNumber = this.baseSnapshotSequenceNumber ?? -1;
|
|
844
|
+
if (op.sequenceNumber > seqNumber) {
|
|
845
|
+
channel.process(op, false, undefined /* localOpMetadata */);
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
this.pending = undefined;
|
|
849
|
+
|
|
850
|
+
this.thresholdOpsCounter.send("ProcessPendingOps", pending.length);
|
|
851
|
+
}
|
|
852
|
+
|
|
853
|
+
protected completeBindingRuntime(channel: IFluidDataStoreChannel) {
|
|
854
|
+
// And now mark the runtime active
|
|
855
|
+
this.loaded = true;
|
|
856
|
+
this.channel = channel;
|
|
857
|
+
|
|
858
|
+
// Channel does not know when it's "live" (as in - starts to receive events in the system)
|
|
859
|
+
// It may read current state of the system when channel was created, but it was not getting any updates
|
|
860
|
+
// through creation process and could have missed events. So update it on current state.
|
|
861
|
+
// Once this.loaded is set (above), it will stat receiving events.
|
|
862
|
+
channel.setConnectionState(this.connected, this.clientId);
|
|
863
|
+
|
|
864
|
+
// Freeze the package path to ensure that someone doesn't modify it when it is
|
|
865
|
+
// returned in packagePath().
|
|
866
|
+
Object.freeze(this.pkg);
|
|
867
|
+
|
|
868
|
+
/**
|
|
869
|
+
* Update the used routes of the channel. If GC has run before this data store was realized, we will have
|
|
870
|
+
* the used routes saved. So, this will ensure that all the child contexts have up-to-date used routes as
|
|
871
|
+
* per the last time GC was run.
|
|
872
|
+
* Also, this data store may have been realized during summarize. In that case, the child contexts need to
|
|
873
|
+
* have their used routes updated to determine if its needs to summarize again and to add it to the summary.
|
|
874
|
+
*/
|
|
875
|
+
this.updateChannelUsedRoutes();
|
|
876
|
+
}
|
|
877
|
+
|
|
781
878
|
protected async bindRuntime(channel: IFluidDataStoreChannel, existing: boolean) {
|
|
782
879
|
if (this.channel) {
|
|
783
880
|
throw new Error("Runtime already bound");
|
|
@@ -789,23 +886,7 @@ export abstract class FluidDataStoreContext
|
|
|
789
886
|
);
|
|
790
887
|
assert(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
|
|
791
888
|
|
|
792
|
-
if (existing) {
|
|
793
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
794
|
-
const pending = this.pending!;
|
|
795
|
-
|
|
796
|
-
// Apply all pending ops
|
|
797
|
-
for (const op of pending) {
|
|
798
|
-
// Only process ops whose seq number is greater than snapshot sequence number from which it loaded.
|
|
799
|
-
const seqNumber = this.baseSnapshotSequenceNumber ?? -1;
|
|
800
|
-
if (op.sequenceNumber > seqNumber) {
|
|
801
|
-
channel.process(op, false, undefined /* localOpMetadata */);
|
|
802
|
-
}
|
|
803
|
-
}
|
|
804
|
-
|
|
805
|
-
this.thresholdOpsCounter.send("ProcessPendingOps", pending.length);
|
|
806
|
-
} else {
|
|
807
|
-
assert(this.pending?.length === 0, 0x8f4 /* no pending ops */);
|
|
808
|
-
|
|
889
|
+
if (!existing) {
|
|
809
890
|
// Execute data store's entry point to make sure that for a local (aka detached from container) data store, the
|
|
810
891
|
// entryPoint initialization function is called before the data store gets attached and potentially connected to
|
|
811
892
|
// the delta stream, so it gets a chance to do things while the data store is still "purely local".
|
|
@@ -815,24 +896,9 @@ export abstract class FluidDataStoreContext
|
|
|
815
896
|
// before the data store is attached.
|
|
816
897
|
await channel.entryPoint.get();
|
|
817
898
|
}
|
|
818
|
-
this.pending = undefined;
|
|
819
899
|
|
|
820
|
-
|
|
821
|
-
this.
|
|
822
|
-
this.channel = channel;
|
|
823
|
-
|
|
824
|
-
// Freeze the package path to ensure that someone doesn't modify it when it is
|
|
825
|
-
// returned in packagePath().
|
|
826
|
-
Object.freeze(this.pkg);
|
|
827
|
-
|
|
828
|
-
/**
|
|
829
|
-
* Update the used routes of the channel. If GC has run before this data store was realized, we will have
|
|
830
|
-
* the used routes saved. So, this will ensure that all the child contexts have up-to-date used routes as
|
|
831
|
-
* per the last time GC was run.
|
|
832
|
-
* Also, this data store may have been realized during summarize. In that case, the child contexts need to
|
|
833
|
-
* have their used routes updated to determine if its needs to summarize again and to add it to the summary.
|
|
834
|
-
*/
|
|
835
|
-
this.updateChannelUsedRoutes();
|
|
900
|
+
this.processPendingOps(channel);
|
|
901
|
+
this.completeBindingRuntime(channel);
|
|
836
902
|
}
|
|
837
903
|
|
|
838
904
|
public async getAbsoluteUrl(relativeUrl: string): Promise<string | undefined> {
|
|
@@ -992,6 +1058,7 @@ export abstract class FluidDataStoreContext
|
|
|
992
1058
|
}
|
|
993
1059
|
}
|
|
994
1060
|
|
|
1061
|
+
/** @internal */
|
|
995
1062
|
export class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
996
1063
|
// Tells whether we need to fetch the snapshot before use. This is to support Data Virtualization.
|
|
997
1064
|
private snapshotFetchRequired: boolean;
|
|
@@ -1010,6 +1077,18 @@ export class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
1010
1077
|
}
|
|
1011
1078
|
}
|
|
1012
1079
|
|
|
1080
|
+
/*
|
|
1081
|
+
This API should not be called for RemoteFluidDataStoreContext. But here is one scenario where it's not the case:
|
|
1082
|
+
The scenario (hit by stashedOps.spec.ts, "resends attach op" UT is the following (as far as I understand):
|
|
1083
|
+
1. data store is being attached in attached container
|
|
1084
|
+
2. container state is serialized (stashed ops feature)
|
|
1085
|
+
3. new container instance is rehydrated (from stashed ops)
|
|
1086
|
+
- As result, we create RemoteFluidDataStoreContext for this data store that is actually in "attaching" state (as of # 2).
|
|
1087
|
+
But its state is set to attached when loading container from stashed ops
|
|
1088
|
+
4. attach op for this data store is processed - setAttachState() is called.
|
|
1089
|
+
*/
|
|
1090
|
+
public setAttachState(attachState: AttachState.Attaching | AttachState.Attached) {}
|
|
1091
|
+
|
|
1013
1092
|
private readonly initialSnapshotDetailsP = new LazyPromise<ISnapshotDetails>(async () => {
|
|
1014
1093
|
// Sequence number of the snapshot.
|
|
1015
1094
|
let sequenceNumber: number | undefined;
|
|
@@ -1092,6 +1171,7 @@ export class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
1092
1171
|
|
|
1093
1172
|
/**
|
|
1094
1173
|
* Base class for detached & attached context classes
|
|
1174
|
+
* @internal
|
|
1095
1175
|
*/
|
|
1096
1176
|
export class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
1097
1177
|
private readonly snapshotTree: ISnapshotTree | undefined;
|
|
@@ -1103,7 +1183,7 @@ export class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
1103
1183
|
constructor(props: ILocalFluidDataStoreContextProps) {
|
|
1104
1184
|
super(
|
|
1105
1185
|
props,
|
|
1106
|
-
props.snapshotTree !== undefined
|
|
1186
|
+
props.snapshotTree !== undefined /* existing */,
|
|
1107
1187
|
true /* isLocalDataStore */,
|
|
1108
1188
|
props.makeLocallyVisibleFn,
|
|
1109
1189
|
);
|
|
@@ -1112,28 +1192,51 @@ export class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
1112
1192
|
this.identifyLocalChangeInSummarizer("DataStoreCreatedInSummarizer");
|
|
1113
1193
|
|
|
1114
1194
|
this.snapshotTree = props.snapshotTree;
|
|
1115
|
-
if (props.isRootDataStore === true) {
|
|
1116
|
-
this.setInMemoryRoot();
|
|
1117
|
-
}
|
|
1118
1195
|
this.createProps = props.createProps;
|
|
1119
|
-
this.attachListeners();
|
|
1120
1196
|
}
|
|
1121
1197
|
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
this.
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
|
|
1136
|
-
|
|
1198
|
+
public setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void {
|
|
1199
|
+
switch (attachState) {
|
|
1200
|
+
case AttachState.Attaching:
|
|
1201
|
+
assert(
|
|
1202
|
+
this.attachState === AttachState.Detached,
|
|
1203
|
+
0x14d /* "Should move from detached to attaching" */,
|
|
1204
|
+
);
|
|
1205
|
+
this._attachState = AttachState.Attaching;
|
|
1206
|
+
if (this.channel?.setAttachState) {
|
|
1207
|
+
this.channel.setAttachState(attachState);
|
|
1208
|
+
} else if (this.channel) {
|
|
1209
|
+
// back-compat! To be removed in the future
|
|
1210
|
+
// Added in "2.0.0-rc.2.0.0" timeframe.
|
|
1211
|
+
this.emit("attaching");
|
|
1212
|
+
}
|
|
1213
|
+
break;
|
|
1214
|
+
case AttachState.Attached:
|
|
1215
|
+
// We can get called into here twice, as result of both container and data store being attached, if
|
|
1216
|
+
// those processes overlapped, for example, in a flow like that one:
|
|
1217
|
+
// 1. Container attach started
|
|
1218
|
+
// 2. data store attachment started
|
|
1219
|
+
// 3. container attached
|
|
1220
|
+
// 4. data store attached.
|
|
1221
|
+
if (this.attachState !== AttachState.Attached) {
|
|
1222
|
+
assert(
|
|
1223
|
+
this.attachState === AttachState.Attaching,
|
|
1224
|
+
0x14e /* "Should move from attaching to attached" */,
|
|
1225
|
+
);
|
|
1226
|
+
this._attachState = AttachState.Attached;
|
|
1227
|
+
this.channel?.setAttachState?.(attachState);
|
|
1228
|
+
if (this.channel?.setAttachState) {
|
|
1229
|
+
this.channel.setAttachState(attachState);
|
|
1230
|
+
} else if (this.channel) {
|
|
1231
|
+
// back-compat! To be removed in the future
|
|
1232
|
+
// Added in "2.0.0-rc.2.0.0" timeframe.
|
|
1233
|
+
this.emit("attached");
|
|
1234
|
+
}
|
|
1235
|
+
}
|
|
1236
|
+
break;
|
|
1237
|
+
default:
|
|
1238
|
+
unreachableCase(attachState, "unreached");
|
|
1239
|
+
}
|
|
1137
1240
|
}
|
|
1138
1241
|
|
|
1139
1242
|
/**
|
|
@@ -1248,6 +1351,7 @@ export class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
1248
1351
|
* Various workflows (snapshot creation, requests) result in .realize() being called
|
|
1249
1352
|
* on context, resulting in instantiation and attachment of runtime.
|
|
1250
1353
|
* Runtime is created using data store factory that is associated with this context.
|
|
1354
|
+
* @internal
|
|
1251
1355
|
*/
|
|
1252
1356
|
export class LocalFluidDataStoreContext extends LocalFluidDataStoreContextBase {
|
|
1253
1357
|
constructor(props: ILocalFluidDataStoreContextProps) {
|
package/src/dataStoreContexts.ts
CHANGED
|
@@ -3,11 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, Deferred, Lazy } from "@fluidframework/core-utils";
|
|
7
6
|
import { IDisposable, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
-
import {
|
|
7
|
+
import { assert, Deferred, Lazy } from "@fluidframework/core-utils/internal";
|
|
8
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
9
|
+
import { createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
10
|
+
|
|
9
11
|
import { FluidDataStoreContext, LocalFluidDataStoreContext } from "./dataStoreContext.js";
|
|
10
12
|
|
|
13
|
+
/** @internal */
|
|
11
14
|
export class DataStoreContexts implements Iterable<[string, FluidDataStoreContext]>, IDisposable {
|
|
12
15
|
private readonly notBoundContexts = new Set<string>();
|
|
13
16
|
|
package/src/dataStoreRegistry.ts
CHANGED
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
|
|
6
6
|
import {
|
|
7
7
|
FluidDataStoreRegistryEntry,
|
|
8
8
|
IFluidDataStoreRegistry,
|
|
9
9
|
NamedFluidDataStoreRegistryEntries,
|
|
10
|
-
} from "@fluidframework/runtime-definitions";
|
|
10
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
11
|
+
import { UsageError } from "@fluidframework/telemetry-utils/internal";
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* @internal
|
|
@@ -139,7 +139,7 @@ export class DeltaManagerSummarizerProxy
|
|
|
139
139
|
this.deltaManager.off("readonly", this.onReadonly);
|
|
140
140
|
}
|
|
141
141
|
|
|
142
|
-
public submitSignal(content:
|
|
142
|
+
public submitSignal(content: string, targetClientId?: string): void {
|
|
143
143
|
return this.deltaManager.submitSignal(content, targetClientId);
|
|
144
144
|
}
|
|
145
145
|
|
package/src/deltaScheduler.ts
CHANGED
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryLoggerExt, formatTick } from "@fluidframework/telemetry-utils";
|
|
7
6
|
import { performance } from "@fluid-internal/client-utils";
|
|
8
7
|
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
9
8
|
import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
9
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
10
|
+
import { formatTick } from "@fluidframework/telemetry-utils/internal";
|
|
10
11
|
|
|
11
12
|
/**
|
|
12
13
|
* DeltaScheduler is responsible for the scheduling of inbound delta queue in cases where there
|
package/src/error.ts
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ContainerErrorTypes } from "@fluidframework/container-definitions";
|
|
7
|
-
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils";
|
|
6
|
+
import { ContainerErrorTypes } from "@fluidframework/container-definitions/internal";
|
|
7
|
+
import { IFluidErrorBase, LoggingError } from "@fluidframework/telemetry-utils/internal";
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Error indicating that a client's session has reached its time limit and is closed.
|
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, LazyPromise, Timer } from "@fluidframework/core-utils";
|
|
7
6
|
import { IRequest } from "@fluidframework/core-interfaces";
|
|
7
|
+
import { assert, LazyPromise, Timer } from "@fluidframework/core-utils/internal";
|
|
8
|
+
import { IGarbageCollectionData, ITelemetryContext } from "@fluidframework/runtime-definitions";
|
|
8
9
|
import {
|
|
9
|
-
gcTreeKey,
|
|
10
|
-
IGarbageCollectionData,
|
|
11
10
|
IGarbageCollectionDetailsBase,
|
|
12
11
|
ISummarizeResult,
|
|
13
|
-
|
|
14
|
-
} from "@fluidframework/runtime-definitions";
|
|
15
|
-
import { createResponseError, responseToException } from "@fluidframework/runtime-utils";
|
|
12
|
+
gcTreeKey,
|
|
13
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
14
|
+
import { createResponseError, responseToException } from "@fluidframework/runtime-utils/internal";
|
|
15
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
16
16
|
import {
|
|
17
|
-
createChildLogger,
|
|
18
|
-
createChildMonitoringContext,
|
|
19
17
|
DataProcessingError,
|
|
20
|
-
ITelemetryLoggerExt,
|
|
21
18
|
MonitoringContext,
|
|
22
19
|
PerformanceEvent,
|
|
20
|
+
createChildLogger,
|
|
21
|
+
createChildMonitoringContext,
|
|
23
22
|
tagCodeArtifacts,
|
|
24
|
-
} from "@fluidframework/telemetry-utils";
|
|
23
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
24
|
+
|
|
25
25
|
import { BlobManager } from "../blobManager.js";
|
|
26
26
|
import {
|
|
27
27
|
InactiveResponseHeaderKey,
|
|
@@ -31,21 +31,22 @@ import {
|
|
|
31
31
|
import { ClientSessionExpiredError } from "../error.js";
|
|
32
32
|
import { ContainerMessageType, ContainerRuntimeGCMessage } from "../messageTypes.js";
|
|
33
33
|
import { IRefreshSummaryResult } from "../summary/index.js";
|
|
34
|
+
|
|
34
35
|
import { generateGCConfigs } from "./gcConfigs.js";
|
|
35
36
|
import {
|
|
36
37
|
GCNodeType,
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
GarbageCollectionMessage,
|
|
39
|
+
GarbageCollectionMessageType,
|
|
40
|
+
IGCMetadata,
|
|
40
41
|
IGCResult,
|
|
41
42
|
IGCStats,
|
|
42
|
-
|
|
43
|
-
|
|
43
|
+
IGarbageCollectionRuntime,
|
|
44
|
+
IGarbageCollector,
|
|
44
45
|
IGarbageCollectorConfigs,
|
|
46
|
+
IGarbageCollectorCreateParams,
|
|
45
47
|
IMarkPhaseStats,
|
|
46
48
|
ISweepPhaseStats,
|
|
47
|
-
|
|
48
|
-
GarbageCollectionMessageType,
|
|
49
|
+
UnreferencedState,
|
|
49
50
|
disableAutoRecoveryKey,
|
|
50
51
|
} from "./gcDefinitions.js";
|
|
51
52
|
import {
|
|
@@ -57,11 +58,11 @@ import {
|
|
|
57
58
|
import { runGarbageCollection } from "./gcReferenceGraphAlgorithm.js";
|
|
58
59
|
import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";
|
|
59
60
|
import { GCSummaryStateTracker } from "./gcSummaryStateTracker.js";
|
|
61
|
+
import { GCTelemetryTracker } from "./gcTelemetry.js";
|
|
60
62
|
import {
|
|
61
63
|
UnreferencedStateTracker,
|
|
62
64
|
UnreferencedStateTrackerMap,
|
|
63
65
|
} from "./gcUnreferencedStateTracker.js";
|
|
64
|
-
import { GCTelemetryTracker } from "./gcTelemetry.js";
|
|
65
66
|
|
|
66
67
|
/**
|
|
67
68
|
* The garbage collector for the container runtime. It consolidates the garbage collection functionality and maintains
|
|
@@ -684,8 +685,8 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
684
685
|
*/
|
|
685
686
|
|
|
686
687
|
if (this.configs.testMode) {
|
|
687
|
-
// If we are running in GC test mode, unreferenced nodes (gcResult.deletedNodeIds) are deleted.
|
|
688
|
-
this.runtime.
|
|
688
|
+
// If we are running in GC test mode, unreferenced nodes (gcResult.deletedNodeIds) are deleted immediately.
|
|
689
|
+
this.runtime.deleteSweepReadyNodes(gcResult.deletedNodeIds);
|
|
689
690
|
return;
|
|
690
691
|
}
|
|
691
692
|
|