@fluidframework/container-runtime 2.13.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 +71 -5
- package/CHANGELOG.md +84 -0
- package/api-report/container-runtime.legacy.alpha.api.md +38 -232
- 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 +5 -1
- package/dist/blobManager/blobManager.d.ts.map +1 -1
- package/dist/blobManager/blobManager.js +30 -13
- 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 +23 -12
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +85 -53
- 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 +10 -6
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.d.ts +1 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +87 -94
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +312 -226
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +7 -3
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +8 -4
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +41 -25
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +47 -29
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +6 -2
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +7 -2
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +1 -1
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerProxies.d.ts +1 -17
- package/dist/deltaManagerProxies.d.ts.map +1 -1
- package/dist/deltaManagerProxies.js.map +1 -1
- package/dist/deltaScheduler.d.ts +9 -6
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +95 -89
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +21 -7
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +48 -19
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +11 -0
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +5 -2
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +218 -70
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +40 -13
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +6 -2
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +14 -7
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts +18 -6
- package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/dist/gc/gcSummaryDefinitions.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 +33 -11
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +35 -17
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts +42 -13
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +27 -9
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -0
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +3 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/inboundBatchAggregator.d.ts +34 -0
- package/dist/inboundBatchAggregator.d.ts.map +1 -0
- package/dist/inboundBatchAggregator.js +185 -0
- package/dist/inboundBatchAggregator.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.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/legacy.d.ts +0 -4
- package/dist/messageTypes.d.ts +14 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/metadata.d.ts +12 -4
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +6 -2
- package/dist/metadata.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts +9 -3
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +3 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.d.ts +9 -3
- package/dist/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
- package/dist/opLifecycle/duplicateBatchDetector.js +11 -5
- 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 +6 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +16 -8
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -2
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +9 -6
- 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 +16 -11
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +4 -4
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +17 -16
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +9 -3
- 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/package.json +2 -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 +22 -11
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +24 -15
- 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 +8 -4
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/index.d.ts +1 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +94 -31
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +28 -16
- 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 +17 -6
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +48 -19
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +10 -5
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +26 -11
- 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.d.ts +6 -2
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +13 -5
- 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 +24 -8
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +45 -36
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +253 -135
- 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 +10 -8
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +28 -9
- 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 +9 -3
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +22 -9
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +8 -4
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +20 -9
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/throttler.d.ts +26 -10
- package/dist/throttler.d.ts.map +1 -1
- package/dist/throttler.js +12 -4
- package/dist/throttler.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 +5 -1
- package/lib/blobManager/blobManager.d.ts.map +1 -1
- package/lib/blobManager/blobManager.js +30 -13
- 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 +23 -12
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +88 -54
- 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 +11 -7
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.d.ts +1 -1
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +87 -94
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +319 -228
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +7 -3
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +8 -4
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +41 -25
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +47 -29
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +6 -2
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +7 -2
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.d.ts +1 -1
- package/lib/dataStoreRegistry.d.ts.map +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerProxies.d.ts +1 -17
- package/lib/deltaManagerProxies.d.ts.map +1 -1
- package/lib/deltaManagerProxies.js.map +1 -1
- package/lib/deltaScheduler.d.ts +9 -6
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +96 -90
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +21 -7
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +51 -20
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +11 -0
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +4 -2
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +218 -70
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +40 -13
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +6 -2
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +14 -7
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts +18 -6
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/lib/gc/gcSummaryDefinitions.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 +33 -11
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +38 -18
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts +42 -13
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +27 -9
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -0
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -0
- package/lib/gc/index.js.map +1 -1
- package/lib/inboundBatchAggregator.d.ts +34 -0
- package/lib/inboundBatchAggregator.d.ts.map +1 -0
- package/lib/inboundBatchAggregator.js +181 -0
- package/lib/inboundBatchAggregator.js.map +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.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/legacy.d.ts +0 -4
- package/lib/messageTypes.d.ts +14 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/metadata.d.ts +12 -4
- package/lib/metadata.d.ts.map +1 -1
- package/lib/metadata.js +6 -2
- package/lib/metadata.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts +9 -3
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +3 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.d.ts +9 -3
- package/lib/opLifecycle/duplicateBatchDetector.d.ts.map +1 -1
- package/lib/opLifecycle/duplicateBatchDetector.js +11 -5
- 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 +14 -20
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +6 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +17 -9
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +1 -2
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +10 -7
- 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 +16 -11
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +4 -4
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +17 -16
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +9 -3
- 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 +22 -11
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +25 -16
- 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 +8 -4
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/index.d.ts +1 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +94 -31
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +28 -16
- 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 +17 -6
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +48 -19
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +10 -5
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +26 -11
- 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.d.ts +6 -2
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +13 -5
- 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 +24 -8
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +45 -36
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +48 -16
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +3 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +13 -5
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +15 -7
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +253 -135
- 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 +10 -8
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +28 -9
- 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 +9 -3
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +22 -9
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +8 -4
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +20 -9
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/throttler.d.ts +26 -10
- package/lib/throttler.d.ts.map +1 -1
- package/lib/throttler.js +12 -4
- package/lib/throttler.js.map +1 -1
- package/package.json +22 -31
- package/src/batchTracker.ts +34 -36
- package/src/blobManager/blobManager.ts +54 -33
- package/src/blobManager/blobManagerSnapSum.ts +10 -10
- package/src/channelCollection.ts +108 -82
- package/src/connectionTelemetry.ts +43 -19
- package/src/containerHandleContext.ts +2 -2
- package/src/containerRuntime.ts +492 -364
- package/src/dataStore.ts +17 -9
- package/src/dataStoreContext.ts +94 -73
- package/src/dataStoreContexts.ts +17 -12
- package/src/dataStoreRegistry.ts +1 -1
- package/src/deltaManagerProxies.ts +5 -5
- package/src/deltaScheduler.ts +24 -18
- package/src/gc/garbageCollection.ts +89 -40
- package/src/gc/gcConfigs.ts +13 -5
- package/src/gc/gcDefinitions.ts +224 -70
- package/src/gc/gcHelpers.ts +22 -11
- package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
- package/src/gc/gcSummaryDefinitions.ts +18 -6
- package/src/gc/gcSummaryStateTracker.ts +7 -3
- package/src/gc/gcTelemetry.ts +73 -30
- package/src/gc/gcUnreferencedStateTracker.ts +40 -16
- package/src/gc/index.ts +1 -0
- package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +55 -122
- package/src/index.ts +0 -3
- package/src/layerCompatState.ts +75 -0
- package/src/messageTypes.ts +16 -5
- package/src/metadata.ts +12 -4
- package/src/opLifecycle/README.md +43 -34
- package/src/opLifecycle/batchManager.ts +12 -6
- package/src/opLifecycle/duplicateBatchDetector.ts +12 -6
- package/src/opLifecycle/opCompressor.ts +22 -25
- package/src/opLifecycle/opDecompressor.ts +23 -11
- package/src/opLifecycle/opGroupingManager.ts +16 -11
- package/src/opLifecycle/opSplitter.ts +24 -18
- package/src/opLifecycle/outbox.ts +35 -33
- package/src/opLifecycle/remoteMessageProcessor.ts +13 -5
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +49 -26
- package/src/summary/documentSchema.ts +41 -22
- package/src/summary/index.ts +0 -3
- package/src/summary/orderedClientElection.ts +114 -49
- package/src/summary/runWhileConnectedCoordinator.ts +12 -3
- package/src/summary/runningSummarizer.ts +79 -36
- package/src/summary/summarizer.ts +51 -25
- package/src/summary/summarizerClientElection.ts +4 -2
- package/src/summary/summarizerHeuristics.ts +23 -12
- package/src/summary/summarizerNode/index.ts +1 -0
- package/src/summary/summarizerNode/summarizerNode.ts +54 -43
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +25 -15
- package/src/summary/summarizerTypes.ts +253 -139
- package/src/summary/summaryCollection.ts +41 -31
- package/src/summary/summaryFormat.ts +34 -13
- package/src/summary/summaryGenerator.ts +39 -18
- package/src/summary/summaryManager.ts +36 -24
- package/src/throttler.ts +23 -11
- package/container-runtime.test-files.tar +0 -0
- package/dist/scheduleManager.d.ts +0 -28
- package/dist/scheduleManager.d.ts.map +0 -1
- package/dist/scheduleManager.js +0 -233
- package/dist/scheduleManager.js.map +0 -1
- package/lib/scheduleManager.d.ts +0 -28
- package/lib/scheduleManager.d.ts.map +0 -1
- package/lib/scheduleManager.js +0 -229
- package/lib/scheduleManager.js.map +0 -1
|
@@ -49,7 +49,9 @@ class GarbageCollector {
|
|
|
49
49
|
get shouldRunGC() {
|
|
50
50
|
return this.configs.gcAllowed;
|
|
51
51
|
}
|
|
52
|
-
/**
|
|
52
|
+
/**
|
|
53
|
+
* Returns the count of data stores whose GC state updated since the last summary.
|
|
54
|
+
*/
|
|
53
55
|
get updatedDSCountSinceLastSummary() {
|
|
54
56
|
return this.summaryStateTracker.updatedDSCountSinceLastSummary;
|
|
55
57
|
}
|
|
@@ -69,9 +71,13 @@ class GarbageCollector {
|
|
|
69
71
|
this.unreferencedNodesState = new gcUnreferencedStateTracker_js_1.UnreferencedStateTrackerMap();
|
|
70
72
|
// The number of times GC has successfully completed on this instance of GarbageCollector.
|
|
71
73
|
this.completedRuns = 0;
|
|
72
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* API for ensuring the correct auto-recovery mitigations
|
|
76
|
+
*/
|
|
77
|
+
// TODO: consider hoisting this to an outer scope as an optimization
|
|
78
|
+
// eslint-disable-next-line unicorn/consistent-function-scoping
|
|
73
79
|
this.autoRecovery = (() => {
|
|
74
|
-
// This uses a hidden state machine for forcing fullGC as part of
|
|
80
|
+
// This uses a hidden state machine for forcing fullGC as part of auto-recovery,
|
|
75
81
|
// to regenerate the GC data for each node.
|
|
76
82
|
//
|
|
77
83
|
// Once fullGC has been requested, we need to wait until GC has run and the summary has been acked before clearing the state.
|
|
@@ -206,7 +212,7 @@ class GarbageCollector {
|
|
|
206
212
|
if (nodeData.unreferencedTimestampMs !== undefined) {
|
|
207
213
|
this.unreferencedNodesState.set(nodeId, new gcUnreferencedStateTracker_js_1.UnreferencedStateTracker(nodeData.unreferencedTimestampMs, this.configs.inactiveTimeoutMs, currentReferenceTimestampMs, this.configs.tombstoneTimeoutMs, this.configs.sweepGracePeriodMs));
|
|
208
214
|
}
|
|
209
|
-
gcNodes[nodeId] =
|
|
215
|
+
gcNodes[nodeId] = [...nodeData.outboundRoutes];
|
|
210
216
|
}
|
|
211
217
|
this.gcDataFromLastRun = { gcNodes };
|
|
212
218
|
});
|
|
@@ -222,7 +228,7 @@ class GarbageCollector {
|
|
|
222
228
|
// state will re-summarize to reset any GC specific state in their summaries (like unreferenced flag).
|
|
223
229
|
const gcNodes = {};
|
|
224
230
|
for (const [nodeId, nodeData] of Object.entries(baseSnapshotData.gcState.gcNodes)) {
|
|
225
|
-
gcNodes[nodeId] =
|
|
231
|
+
gcNodes[nodeId] = [...nodeData.outboundRoutes];
|
|
226
232
|
}
|
|
227
233
|
// Run GC on the nodes in the base summary to get the routes used in each node in the container.
|
|
228
234
|
// This is an optimization for space (vs performance) wherein we don't need to store the used routes of
|
|
@@ -264,7 +270,7 @@ class GarbageCollector {
|
|
|
264
270
|
// Initialize the tombstone state from the snapshot. Also, notify the runtime of tombstone routes.
|
|
265
271
|
if (baseSnapshotData.tombstones !== undefined) {
|
|
266
272
|
// Create a copy since we are writing from a source we don't control
|
|
267
|
-
this.tombstones =
|
|
273
|
+
this.tombstones = [...baseSnapshotData.tombstones];
|
|
268
274
|
this.runtime.updateTombstonedRoutes(this.tombstones);
|
|
269
275
|
}
|
|
270
276
|
await this.initializeOrUpdateGCState();
|
|
@@ -283,16 +289,16 @@ class GarbageCollector {
|
|
|
283
289
|
eventName: "InitializeOrUpdateGCState",
|
|
284
290
|
}, async (event) => {
|
|
285
291
|
// If the GC state hasn't been initialized yet, initialize it and return.
|
|
286
|
-
if (
|
|
287
|
-
await this.initializeGCStateFromBaseSnapshotP;
|
|
288
|
-
}
|
|
289
|
-
else {
|
|
292
|
+
if (initialized) {
|
|
290
293
|
// If the GC state has been initialized, update the tracking of unreferenced nodes as per the current
|
|
291
294
|
// reference timestamp.
|
|
292
295
|
for (const [, nodeStateTracker] of this.unreferencedNodesState) {
|
|
293
296
|
nodeStateTracker.updateTracking(currentReferenceTimestampMs);
|
|
294
297
|
}
|
|
295
298
|
}
|
|
299
|
+
else {
|
|
300
|
+
await this.initializeGCStateFromBaseSnapshotP;
|
|
301
|
+
}
|
|
296
302
|
event.end({
|
|
297
303
|
details: { initialized, unrefNodeCount: this.unreferencedNodesState.size },
|
|
298
304
|
});
|
|
@@ -366,10 +372,11 @@ class GarbageCollector {
|
|
|
366
372
|
return undefined;
|
|
367
373
|
}
|
|
368
374
|
return internal_4.PerformanceEvent.timedExecAsync(logger, { eventName: "GarbageCollection" }, async (event) => {
|
|
369
|
-
|
|
375
|
+
// #region Pre-GC steps
|
|
370
376
|
// Ensure that state has been initialized from the base snapshot data.
|
|
371
377
|
await this.initializeGCStateFromBaseSnapshotP;
|
|
372
|
-
|
|
378
|
+
// #endregion
|
|
379
|
+
// #region GC step
|
|
373
380
|
const gcStats = await this.runGC(fullGC, currentReferenceTimestampMs, logger);
|
|
374
381
|
event.end({
|
|
375
382
|
...gcStats,
|
|
@@ -379,7 +386,8 @@ class GarbageCollector {
|
|
|
379
386
|
tombstone: this.configs.throwOnTombstoneLoad,
|
|
380
387
|
},
|
|
381
388
|
});
|
|
382
|
-
|
|
389
|
+
// #endregion
|
|
390
|
+
// #region Post-GC steps
|
|
383
391
|
// Log pending unreferenced events such as a node being used after inactive. This is done after GC runs and
|
|
384
392
|
// updates its state so that we don't send false positives based on intermediate state. For example, we may get
|
|
385
393
|
// reference to an unreferenced node from another unreferenced node which means the node wasn't revived.
|
|
@@ -389,6 +397,7 @@ class GarbageCollector {
|
|
|
389
397
|
this.autoRecovery.onCompletedGCRun();
|
|
390
398
|
this.newReferencesSinceLastRun.clear();
|
|
391
399
|
this.completedRuns++;
|
|
400
|
+
// #endregion
|
|
392
401
|
return gcStats;
|
|
393
402
|
}, { end: true, cancel: "error" });
|
|
394
403
|
}
|
|
@@ -519,6 +528,7 @@ class GarbageCollector {
|
|
|
519
528
|
// local state when processing the op.
|
|
520
529
|
const sweepReadyDSAndBlobs = nodesToDelete.filter((nodeId) => {
|
|
521
530
|
const nodeType = this.runtime.getNodeType(nodeId);
|
|
531
|
+
// eslint-disable-next-line import/no-deprecated
|
|
522
532
|
return nodeType === gcDefinitions_js_1.GCNodeType.DataStore || nodeType === gcDefinitions_js_1.GCNodeType.Blob;
|
|
523
533
|
});
|
|
524
534
|
const contents = {
|
|
@@ -582,7 +592,7 @@ class GarbageCollector {
|
|
|
582
592
|
*/
|
|
583
593
|
const gcDataSuperSet = (0, gcHelpers_js_1.concatGarbageCollectionData)(previousGCData, currentGCData);
|
|
584
594
|
const newOutboundRoutesSinceLastRun = [];
|
|
585
|
-
this.newReferencesSinceLastRun
|
|
595
|
+
for (const [sourceNodeId, outboundRoutes] of this.newReferencesSinceLastRun) {
|
|
586
596
|
if (gcDataSuperSet.gcNodes[sourceNodeId] === undefined) {
|
|
587
597
|
gcDataSuperSet.gcNodes[sourceNodeId] = outboundRoutes;
|
|
588
598
|
}
|
|
@@ -590,7 +600,7 @@ class GarbageCollector {
|
|
|
590
600
|
gcDataSuperSet.gcNodes[sourceNodeId].push(...outboundRoutes);
|
|
591
601
|
}
|
|
592
602
|
newOutboundRoutesSinceLastRun.push(...outboundRoutes);
|
|
593
|
-
}
|
|
603
|
+
}
|
|
594
604
|
/**
|
|
595
605
|
* Run GC on the above reference graph starting with root and all new outbound routes. This will generate a
|
|
596
606
|
* list of all nodes that could have been referenced since the last run. If any of these nodes are unreferenced,
|
|
@@ -622,6 +632,7 @@ class GarbageCollector {
|
|
|
622
632
|
}
|
|
623
633
|
return this.summaryStateTracker.summarize(trackState && !fullTree, gcState, this.deletedNodes, this.tombstones);
|
|
624
634
|
}
|
|
635
|
+
// eslint-disable-next-line import/no-deprecated
|
|
625
636
|
getMetadata() {
|
|
626
637
|
return {
|
|
627
638
|
/**
|
|
@@ -666,8 +677,9 @@ class GarbageCollector {
|
|
|
666
677
|
this.autoRecovery.requestFullGCOnNextRun();
|
|
667
678
|
break;
|
|
668
679
|
}
|
|
669
|
-
default:
|
|
680
|
+
default: {
|
|
670
681
|
throw internal_4.DataProcessingError.create(`Garbage collection message of unknown type ${gcMessageType}`, "processMessage");
|
|
682
|
+
}
|
|
671
683
|
}
|
|
672
684
|
}
|
|
673
685
|
}
|
|
@@ -686,7 +698,7 @@ class GarbageCollector {
|
|
|
686
698
|
// The ids in the sweep-ready nodes do not contain DDS node ids. This is an optimization to reduce the size
|
|
687
699
|
// of the GC op. Since GC applies to data store only, all its DDSes are deleted along with it. So, get the
|
|
688
700
|
// DDS nodes ID from the unreferenced nodes state.
|
|
689
|
-
const allSweepReadyNodeIds =
|
|
701
|
+
const allSweepReadyNodeIds = [...sweepReadyNodeIds];
|
|
690
702
|
for (const [id] of this.unreferencedNodesState) {
|
|
691
703
|
// Ignore data store nodes since they would already be in the list.
|
|
692
704
|
const pathParts = id.split("/");
|
|
@@ -723,7 +735,7 @@ class GarbageCollector {
|
|
|
723
735
|
// trackedId will be either DataStore or Blob ID (not sub-DataStore ID, since some of those are unrecognized by GC)
|
|
724
736
|
const trackedId = node.path;
|
|
725
737
|
const isTombstoned = this.tombstones.includes(trackedId);
|
|
726
|
-
const fullPath = request
|
|
738
|
+
const fullPath = request === undefined ? trackedId : (0, gcHelpers_js_1.urlToGCNodePath)(request.url);
|
|
727
739
|
// This will log if appropriate
|
|
728
740
|
this.telemetryTracker.nodeUsed(trackedId, {
|
|
729
741
|
id: fullPath,
|
|
@@ -749,6 +761,7 @@ class GarbageCollector {
|
|
|
749
761
|
const nodeType = this.runtime.getNodeType(fullPath);
|
|
750
762
|
// Unless this is a Loaded event for a Blob or DataStore, we're done after telemetry tracking
|
|
751
763
|
const loadedBlobOrDataStore = reason === "Loaded" &&
|
|
764
|
+
// eslint-disable-next-line import/no-deprecated
|
|
752
765
|
(nodeType === gcDefinitions_js_1.GCNodeType.Blob || nodeType === gcDefinitions_js_1.GCNodeType.DataStore);
|
|
753
766
|
if (!loadedBlobOrDataStore) {
|
|
754
767
|
return;
|
|
@@ -853,7 +866,9 @@ class GarbageCollector {
|
|
|
853
866
|
* @param gcResult - The result of the current GC run.
|
|
854
867
|
* @returns the stats of the mark phase run.
|
|
855
868
|
*/
|
|
869
|
+
// eslint-disable-next-line import/no-deprecated
|
|
856
870
|
getMarkPhaseStats(gcResult) {
|
|
871
|
+
// eslint-disable-next-line import/no-deprecated
|
|
857
872
|
const markPhaseStats = {
|
|
858
873
|
nodeCount: 0,
|
|
859
874
|
dataStoreCount: 0,
|
|
@@ -877,6 +892,7 @@ class GarbageCollector {
|
|
|
877
892
|
if (!isReferenced) {
|
|
878
893
|
markPhaseStats.unrefNodeCount++;
|
|
879
894
|
}
|
|
895
|
+
// eslint-disable-next-line import/no-deprecated
|
|
880
896
|
if (this.runtime.getNodeType(nodeId) === gcDefinitions_js_1.GCNodeType.DataStore) {
|
|
881
897
|
markPhaseStats.dataStoreCount++;
|
|
882
898
|
if (stateUpdated) {
|
|
@@ -886,6 +902,7 @@ class GarbageCollector {
|
|
|
886
902
|
markPhaseStats.unrefDataStoreCount++;
|
|
887
903
|
}
|
|
888
904
|
}
|
|
905
|
+
// eslint-disable-next-line import/no-deprecated
|
|
889
906
|
if (this.runtime.getNodeType(nodeId) === gcDefinitions_js_1.GCNodeType.Blob) {
|
|
890
907
|
markPhaseStats.attachmentBlobCount++;
|
|
891
908
|
if (stateUpdated) {
|
|
@@ -912,9 +929,12 @@ class GarbageCollector {
|
|
|
912
929
|
* @param markPhaseStats - The stats of the mark phase run.
|
|
913
930
|
* @returns the stats of the sweep phase run.
|
|
914
931
|
*/
|
|
915
|
-
getSweepPhaseStats(deletedNodes, sweepReadyNodes,
|
|
932
|
+
getSweepPhaseStats(deletedNodes, sweepReadyNodes,
|
|
933
|
+
// eslint-disable-next-line import/no-deprecated
|
|
934
|
+
markPhaseStats) {
|
|
916
935
|
// Initialize the life time node counts to the mark phase node counts. If sweep is not enabled,
|
|
917
936
|
// these will be the life time node count for this container.
|
|
937
|
+
// eslint-disable-next-line import/no-deprecated
|
|
918
938
|
const sweepPhaseStats = {
|
|
919
939
|
lifetimeNodeCount: markPhaseStats.nodeCount,
|
|
920
940
|
lifetimeDataStoreCount: markPhaseStats.dataStoreCount,
|
|
@@ -925,24 +945,31 @@ class GarbageCollector {
|
|
|
925
945
|
};
|
|
926
946
|
// The runtime can't reliably identify the type of deleted nodes. So, get the type here. This should
|
|
927
947
|
// be good enough because the only types that participate in GC today are data stores, DDSes and blobs.
|
|
948
|
+
// eslint-disable-next-line import/no-deprecated, unicorn/consistent-function-scoping
|
|
928
949
|
const getDeletedNodeType = (nodeId) => {
|
|
929
950
|
const pathParts = nodeId.split("/");
|
|
930
951
|
if (pathParts[1] === index_js_1.blobManagerBasePath) {
|
|
952
|
+
// eslint-disable-next-line import/no-deprecated
|
|
931
953
|
return gcDefinitions_js_1.GCNodeType.Blob;
|
|
932
954
|
}
|
|
933
955
|
if (pathParts.length === 2) {
|
|
956
|
+
// eslint-disable-next-line import/no-deprecated
|
|
934
957
|
return gcDefinitions_js_1.GCNodeType.DataStore;
|
|
935
958
|
}
|
|
936
959
|
if (pathParts.length === 3) {
|
|
960
|
+
// eslint-disable-next-line import/no-deprecated
|
|
937
961
|
return gcDefinitions_js_1.GCNodeType.SubDataStore;
|
|
938
962
|
}
|
|
963
|
+
// eslint-disable-next-line import/no-deprecated
|
|
939
964
|
return gcDefinitions_js_1.GCNodeType.Other;
|
|
940
965
|
};
|
|
941
966
|
for (const nodeId of deletedNodes) {
|
|
942
967
|
sweepPhaseStats.deletedNodeCount++;
|
|
943
968
|
const nodeType = getDeletedNodeType(nodeId);
|
|
969
|
+
// eslint-disable-next-line import/no-deprecated
|
|
944
970
|
if (nodeType === gcDefinitions_js_1.GCNodeType.DataStore) {
|
|
945
971
|
sweepPhaseStats.deletedDataStoreCount++;
|
|
972
|
+
// eslint-disable-next-line import/no-deprecated
|
|
946
973
|
}
|
|
947
974
|
else if (nodeType === gcDefinitions_js_1.GCNodeType.Blob) {
|
|
948
975
|
sweepPhaseStats.deletedAttachmentBlobCount++;
|
|
@@ -962,8 +989,10 @@ class GarbageCollector {
|
|
|
962
989
|
for (const nodeId of sweepReadyNodes) {
|
|
963
990
|
sweepPhaseStats.deletedNodeCount++;
|
|
964
991
|
const nodeType = this.runtime.getNodeType(nodeId);
|
|
992
|
+
// eslint-disable-next-line import/no-deprecated
|
|
965
993
|
if (nodeType === gcDefinitions_js_1.GCNodeType.DataStore) {
|
|
966
994
|
sweepPhaseStats.deletedDataStoreCount++;
|
|
995
|
+
// eslint-disable-next-line import/no-deprecated
|
|
967
996
|
}
|
|
968
997
|
else if (nodeType === gcDefinitions_js_1.GCNodeType.Blob) {
|
|
969
998
|
sweepPhaseStats.deletedAttachmentBlobCount++;
|