@fluidframework/container-runtime 2.13.0 → 2.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +36 -0
- package/CHANGELOG.md +46 -0
- package/api-report/container-runtime.legacy.alpha.api.md +9 -203
- package/container-runtime.test-files.tar +0 -0
- package/dist/batchTracker.d.ts.map +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 +16 -2
- package/dist/blobManager/blobManager.js.map +1 -1
- package/dist/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- 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 +22 -12
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +6 -2
- 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 +74 -65
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +53 -37
- 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 +2 -1
- 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 +31 -18
- 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 +6 -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 +12 -5
- 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 +3 -2
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +210 -70
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +39 -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 +6 -2
- 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.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 +6 -2
- 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/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 +9 -3
- package/dist/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +3 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +12 -7
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +0 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +5 -4
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +2 -0
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +1 -1
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +6 -1
- 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.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 +19 -7
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +13 -5
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +2 -0
- 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 +93 -31
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +15 -5
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- 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 +12 -4
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +9 -5
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +9 -3
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- 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 +12 -4
- package/dist/summary/summarizerHeuristics.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 +15 -5
- 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 +12 -4
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -4
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +246 -135
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +1 -2
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +24 -8
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- 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 +3 -1
- 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 +12 -4
- 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.map +1 -1
- 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 +16 -2
- package/lib/blobManager/blobManager.js.map +1 -1
- package/lib/blobManager/blobManagerSnapSum.d.ts.map +1 -1
- 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 +22 -12
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +6 -2
- 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 +74 -65
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +53 -37
- 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 +2 -1
- 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 +31 -18
- 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 +6 -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 +95 -89
- 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 +12 -5
- 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 +2 -2
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +210 -70
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +39 -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 +6 -2
- 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.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 +6 -2
- 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/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 +9 -3
- package/lib/opLifecycle/duplicateBatchDetector.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +1 -1
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +3 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +13 -8
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +0 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +6 -5
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +2 -0
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +1 -1
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +6 -1
- 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.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 +19 -7
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +13 -5
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +2 -0
- 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 +93 -31
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +15 -5
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- 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 +12 -4
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +9 -5
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +9 -3
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- 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 +12 -4
- package/lib/summary/summarizerHeuristics.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 +15 -5
- 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 +12 -4
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +12 -4
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +246 -135
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +1 -2
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +24 -8
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- 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 +3 -1
- 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 +12 -4
- 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 +43 -30
- package/src/batchTracker.ts +31 -33
- package/src/blobManager/blobManager.ts +38 -19
- package/src/blobManager/blobManagerSnapSum.ts +2 -2
- package/src/channelCollection.ts +45 -38
- package/src/connectionTelemetry.ts +31 -13
- package/src/containerHandleContext.ts +2 -2
- package/src/containerRuntime.ts +199 -142
- package/src/dataStore.ts +11 -6
- package/src/dataStoreContext.ts +80 -59
- package/src/dataStoreContexts.ts +16 -12
- package/src/dataStoreRegistry.ts +1 -1
- package/src/deltaManagerProxies.ts +5 -5
- package/src/deltaScheduler.ts +19 -13
- package/src/gc/garbageCollection.ts +42 -20
- package/src/gc/gcConfigs.ts +4 -4
- package/src/gc/gcDefinitions.ts +212 -70
- package/src/gc/gcHelpers.ts +13 -7
- package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
- package/src/gc/gcSummaryDefinitions.ts +18 -6
- package/src/gc/gcSummaryStateTracker.ts +4 -2
- package/src/gc/gcTelemetry.ts +47 -19
- package/src/gc/gcUnreferencedStateTracker.ts +40 -16
- package/src/gc/index.ts +1 -0
- package/src/{scheduleManager.ts → inboundBatchAggregator.ts} +53 -120
- package/src/index.ts +0 -3
- package/src/messageTypes.ts +14 -5
- package/src/metadata.ts +12 -4
- package/src/opLifecycle/batchManager.ts +12 -6
- package/src/opLifecycle/duplicateBatchDetector.ts +10 -4
- package/src/opLifecycle/opCompressor.ts +8 -4
- package/src/opLifecycle/opDecompressor.ts +19 -10
- package/src/opLifecycle/opGroupingManager.ts +12 -8
- package/src/opLifecycle/opSplitter.ts +10 -7
- package/src/opLifecycle/outbox.ts +22 -13
- package/src/opLifecycle/remoteMessageProcessor.ts +10 -4
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +34 -16
- package/src/summary/documentSchema.ts +30 -18
- package/src/summary/index.ts +0 -3
- package/src/summary/orderedClientElection.ts +100 -38
- package/src/summary/runWhileConnectedCoordinator.ts +6 -3
- package/src/summary/runningSummarizer.ts +38 -19
- package/src/summary/summarizer.ts +29 -16
- package/src/summary/summarizerClientElection.ts +2 -2
- package/src/summary/summarizerHeuristics.ts +22 -11
- package/src/summary/summarizerNode/summarizerNode.ts +22 -12
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +48 -16
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +21 -11
- package/src/summary/summarizerTypes.ts +246 -139
- package/src/summary/summaryCollection.ts +22 -23
- package/src/summary/summaryFormat.ts +24 -8
- package/src/summary/summaryGenerator.ts +14 -8
- package/src/summary/summaryManager.ts +28 -18
- package/src/throttler.ts +23 -11
- 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
package/.eslintrc.cjs
CHANGED
|
@@ -14,12 +14,48 @@ module.exports = {
|
|
|
14
14
|
rules: {
|
|
15
15
|
"@typescript-eslint/strict-boolean-expressions": "off",
|
|
16
16
|
"@fluid-internal/fluid/no-unchecked-record-access": "warn",
|
|
17
|
+
|
|
18
|
+
// #region TODO:AB#3027: remove overrides and upgrade config to `recommended`
|
|
19
|
+
|
|
20
|
+
"@typescript-eslint/explicit-function-return-type": [
|
|
21
|
+
"error",
|
|
22
|
+
{
|
|
23
|
+
allowExpressions: true,
|
|
24
|
+
allowTypedFunctionExpressions: true,
|
|
25
|
+
allowHigherOrderFunctions: true,
|
|
26
|
+
allowDirectConstAssertionInArrowFunctions: true,
|
|
27
|
+
allowConciseArrowFunctionExpressionsStartingWithVoid: false,
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
"@typescript-eslint/explicit-module-boundary-types": "error",
|
|
31
|
+
"@typescript-eslint/no-explicit-any": [
|
|
32
|
+
"error",
|
|
33
|
+
{
|
|
34
|
+
/**
|
|
35
|
+
* For certain cases, like rest parameters, any is required to allow arbitrary argument types.
|
|
36
|
+
* @see https://typescript-eslint.io/rules/no-explicit-any/#ignorerestargs
|
|
37
|
+
*/
|
|
38
|
+
ignoreRestArgs: true,
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
"@typescript-eslint/no-unsafe-assignment": "error",
|
|
42
|
+
"@typescript-eslint/no-unsafe-call": "error",
|
|
43
|
+
"@typescript-eslint/no-unsafe-member-access": "error",
|
|
44
|
+
"@typescript-eslint/no-unsafe-return": "error",
|
|
45
|
+
|
|
46
|
+
"jsdoc/multiline-blocks": ["error", { noSingleLineBlocks: true }],
|
|
47
|
+
"jsdoc/require-description": ["error", { checkConstructors: false }],
|
|
48
|
+
|
|
49
|
+
// #endregion
|
|
17
50
|
},
|
|
18
51
|
overrides: [
|
|
19
52
|
{
|
|
20
53
|
// Rules only for test files
|
|
21
54
|
files: ["*.spec.ts", "src/test/**"],
|
|
22
55
|
rules: {
|
|
56
|
+
// TODO: remove these overrides and fix violations
|
|
57
|
+
"@typescript-eslint/explicit-function-return-type": "off",
|
|
58
|
+
|
|
23
59
|
// Test files are run in node only so additional node libraries can be used.
|
|
24
60
|
"import/no-nodejs-modules": ["error", { allow: ["assert", "crypto"] }],
|
|
25
61
|
},
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,51 @@
|
|
|
1
1
|
# @fluidframework/container-runtime
|
|
2
2
|
|
|
3
|
+
## 2.20.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- The ContainerRuntime class has been removed ([#23341](https://github.com/microsoft/FluidFramework/pull/23341)) [61ba06aa98](https://github.com/microsoft/FluidFramework/commit/61ba06aa9881c30ffeeedcaaede9c5a1a0c81abd)
|
|
8
|
+
|
|
9
|
+
The `ContainerRuntime` class was [deprecated in version 2.12.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-the-containerruntime-class-is-now-deprecated-23331) and has been removed.
|
|
10
|
+
Use `IContainerRuntime` to replace type usages and use the free function `loadContainerRuntime` to replace usages of the static method `ContainerRuntime.loadRuntime`.
|
|
11
|
+
|
|
12
|
+
See the [deprecation
|
|
13
|
+
announcement](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-the-containerruntime-class-is-now-deprecated-23331)
|
|
14
|
+
for more details about how to update existing code.
|
|
15
|
+
|
|
16
|
+
- The IContainerRuntimeOptions.flushMode property has been removed ([#23337](https://github.com/microsoft/FluidFramework/pull/23337)) [fe8279c774](https://github.com/microsoft/FluidFramework/commit/fe8279c774fcc3c4805b49ce4f64d0e03a64c39b)
|
|
17
|
+
|
|
18
|
+
The `IContainerRuntimeOptions.flushMode` property was [deprecated in version 2.12.0](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-icontainerruntimeoptionsflushmode-is-now-deprecated-23288) and has been removed.
|
|
19
|
+
|
|
20
|
+
Only the default value, `FlushMode.TurnBased`, is supported when calling `ContainerRuntime.loadRuntime` directly,
|
|
21
|
+
so there's no need for consumers to pass this option in.
|
|
22
|
+
|
|
23
|
+
- The createDataStoreWithProps APIs on ContainerRuntime and IContainerRuntimeBase have been removed ([#22996](https://github.com/microsoft/FluidFramework/pull/22996)) [bd243fb292](https://github.com/microsoft/FluidFramework/commit/bd243fb2927915d87c42486e21ee0c990962a9a7)
|
|
24
|
+
|
|
25
|
+
`ContainerRuntime.createDataStoreWithProps` and `IContainerRuntimeBase.createDataStoreWithProps`
|
|
26
|
+
were [deprecated in version 0.25.0](https://github.com/microsoft/FluidFramework/blob/main/BREAKING.md#icontainerruntimebase_createdatastorewithprops-is-removed) and have been removed.
|
|
27
|
+
|
|
28
|
+
Replace uses of these APIs with `PureDataObjectFactory.createInstanceWithDataStore` and pass in props via the `initialState`
|
|
29
|
+
parameter.
|
|
30
|
+
|
|
31
|
+
These changes were originally announced in version 0.25.0. See the following issues for more details:
|
|
32
|
+
|
|
33
|
+
- [#1537](https://github.com/microsoft/FluidFramework/issues/1537)
|
|
34
|
+
- [#2931](https://github.com/microsoft/FluidFramework/pull/2931)
|
|
35
|
+
|
|
36
|
+
- Enabling Op Compression without Op Grouping is no longer supported ([#23608](https://github.com/microsoft/FluidFramework/pull/23608)) [92b695aa4b](https://github.com/microsoft/FluidFramework/commit/92b695aa4b36eee41a4d235a71c6408d2c70b54b)
|
|
37
|
+
|
|
38
|
+
`IContainerRuntimeOptions.enableGroupedBatching` was deprecated in 2.12 (see [release notes](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.12.0#user-content-icontainerruntimeoptionsenablegroupedbatching-is-now-deprecated-23260)).
|
|
39
|
+
While this option is not yet removed (and still defaults to `true`), disabling it (by setting to `false`) is not supported
|
|
40
|
+
if compression is enabled (by passing a finite value for `IContainerRuntimeOptions.compressionOptions.minimumBatchSizeInBytes`).
|
|
41
|
+
|
|
42
|
+
- Summarizer-related types have been moved to container-runtime-definitions ([#23483](https://github.com/microsoft/FluidFramework/pull/23483)) [6666d496e6](https://github.com/microsoft/FluidFramework/commit/6666d496e63031026cdedee98c24bb59fa79edcf)
|
|
43
|
+
|
|
44
|
+
`SummarizerStopReason`, `ISummarizeEventProps`, and `ISummarizerEvents` have all been moved from the
|
|
45
|
+
`"@fluidframework/container-runtime"` package to `@fluidframework/container-runtime-definitions`.
|
|
46
|
+
|
|
47
|
+
Users should now import them from `@fluidframework/container-runtime-definitions`.
|
|
48
|
+
|
|
3
49
|
## 2.13.0
|
|
4
50
|
|
|
5
51
|
Dependency updates only.
|
|
@@ -32,153 +32,6 @@ export enum ContainerMessageType {
|
|
|
32
32
|
Rejoin = "rejoin"
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
// @alpha @deprecated
|
|
36
|
-
export class ContainerRuntime extends TypedEventEmitter<IContainerRuntimeEvents> implements IContainerRuntime, IRuntime, ISummarizerRuntime, ISummarizerInternalsProvider, IProvideFluidHandleContext {
|
|
37
|
-
protected constructor(context: IContainerContext, registry: IFluidDataStoreRegistry, metadata: IContainerRuntimeMetadata | undefined, electedSummarizerData: ISerializedElection | undefined, chunks: [string, string[]][], dataStoreAliasMap: [string, string][], runtimeOptions: Readonly<Required<Omit<IContainerRuntimeOptions, "flushMode" | "enableGroupedBatching">> & IContainerRuntimeOptions>, containerScope: FluidObject, baseLogger: ITelemetryBaseLogger, existing: boolean, blobManagerSnapshot: IBlobManagerLoadInfo, _storage: IDocumentStorageService, createIdCompressor: () => Promise<IIdCompressor & IIdCompressorCore>, documentsSchemaController: DocumentsSchemaController, featureGatesForTelemetry: Record<string, boolean | number | undefined>, provideEntryPoint: (containerRuntime: IContainerRuntime) => Promise<FluidObject>, requestHandler?: ((request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>) | undefined, summaryConfiguration?: ISummaryConfiguration, recentBatchInfo?: [number, string][]);
|
|
38
|
-
// (undocumented)
|
|
39
|
-
protected addContainerStateToSummary(summaryTree: ISummaryTreeWithStats, fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext): void;
|
|
40
|
-
addedGCOutboundRoute(fromPath: string, toPath: string, messageTimestampMs?: number): void;
|
|
41
|
-
// (undocumented)
|
|
42
|
-
get attachState(): AttachState;
|
|
43
|
-
// (undocumented)
|
|
44
|
-
readonly baseLogger: ITelemetryBaseLogger;
|
|
45
|
-
// (undocumented)
|
|
46
|
-
readonly clientDetails: IClientDetails;
|
|
47
|
-
// (undocumented)
|
|
48
|
-
get clientId(): string | undefined;
|
|
49
|
-
// (undocumented)
|
|
50
|
-
readonly closeFn: (error?: ICriticalContainerError) => void;
|
|
51
|
-
collectGarbage(options: {
|
|
52
|
-
logger?: ITelemetryLoggerExt;
|
|
53
|
-
runSweep?: boolean;
|
|
54
|
-
fullGC?: boolean;
|
|
55
|
-
}, telemetryContext?: ITelemetryContext): Promise<IGCStats | undefined>;
|
|
56
|
-
// (undocumented)
|
|
57
|
-
get connected(): boolean;
|
|
58
|
-
// (undocumented)
|
|
59
|
-
get containerRuntime(): this;
|
|
60
|
-
// (undocumented)
|
|
61
|
-
createDataStore(pkg: Readonly<string | string[]>, loadingGroupId?: string): Promise<IDataStore>;
|
|
62
|
-
// @deprecated (undocumented)
|
|
63
|
-
_createDataStoreWithProps(pkg: Readonly<string | string[]>, props?: any): Promise<IDataStore>;
|
|
64
|
-
// (undocumented)
|
|
65
|
-
createDetachedDataStore(pkg: Readonly<string[]>, loadingGroupId?: string): IFluidDataStoreContextDetached;
|
|
66
|
-
createSummary(blobRedirectTable?: Map<string, string>, telemetryContext?: ITelemetryContext): ISummaryTree;
|
|
67
|
-
// (undocumented)
|
|
68
|
-
deleteChildSummarizerNode(id: string): void;
|
|
69
|
-
deleteSweepReadyNodes(sweepReadyRoutes: readonly string[]): readonly string[];
|
|
70
|
-
get deltaManager(): IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
71
|
-
// (undocumented)
|
|
72
|
-
dispose(error?: Error): void;
|
|
73
|
-
// (undocumented)
|
|
74
|
-
get disposed(): boolean;
|
|
75
|
-
// (undocumented)
|
|
76
|
-
readonly disposeFn: (error?: ICriticalContainerError) => void;
|
|
77
|
-
// (undocumented)
|
|
78
|
-
enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;
|
|
79
|
-
ensureNoDataModelChanges<T>(callback: () => T): T;
|
|
80
|
-
// (undocumented)
|
|
81
|
-
get flushMode(): FlushMode;
|
|
82
|
-
// @deprecated
|
|
83
|
-
get gcThrowOnTombstoneUsage(): boolean;
|
|
84
|
-
// @deprecated
|
|
85
|
-
get gcTombstoneEnforcementAllowed(): boolean;
|
|
86
|
-
generateDocumentUniqueId(): string | (number & {
|
|
87
|
-
readonly SessionUnique: "cea55054-6b82-4cbf-ad19-1fa645ea3b3e";
|
|
88
|
-
} & {
|
|
89
|
-
readonly OpNormalized: "9209432d-a959-4df7-b2ad-767ead4dbcae";
|
|
90
|
-
});
|
|
91
|
-
// (undocumented)
|
|
92
|
-
readonly getAbsoluteUrl: (relativeUrl: string) => Promise<string | undefined>;
|
|
93
|
-
getAliasedDataStoreEntryPoint(alias: string): Promise<IFluidHandle<FluidObject> | undefined>;
|
|
94
|
-
// (undocumented)
|
|
95
|
-
getAudience(): IAudience;
|
|
96
|
-
// (undocumented)
|
|
97
|
-
getCreateChildSummarizerNodeFn(id: string, createParam: CreateChildSummarizerNodeParam): (summarizeInternal: SummarizeInternalFn, getGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>) => ISummarizerNodeWithGC;
|
|
98
|
-
getCurrentReferenceTimestampMs(): number | undefined;
|
|
99
|
-
getEntryPoint(): Promise<FluidObject>;
|
|
100
|
-
getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;
|
|
101
|
-
getGCNodePackagePath(nodePath: string): Promise<readonly string[] | undefined>;
|
|
102
|
-
getNodeType(nodePath: string): GCNodeType;
|
|
103
|
-
// (undocumented)
|
|
104
|
-
getPendingLocalState(props?: IGetPendingLocalStateProps): unknown;
|
|
105
|
-
// (undocumented)
|
|
106
|
-
getQuorum(): IQuorumClients;
|
|
107
|
-
getSnapshotForLoadingGroupId(loadingGroupIds: string[], pathParts: string[]): Promise<{
|
|
108
|
-
snapshotTree: ISnapshotTree;
|
|
109
|
-
sequenceNumber: number;
|
|
110
|
-
}>;
|
|
111
|
-
get idCompressor(): (IIdCompressor & IIdCompressorCore) | undefined;
|
|
112
|
-
// (undocumented)
|
|
113
|
-
get idCompressorMode(): IdCompressorMode;
|
|
114
|
-
// (undocumented)
|
|
115
|
-
get IFluidDataStoreRegistry(): IFluidDataStoreRegistry;
|
|
116
|
-
// (undocumented)
|
|
117
|
-
get IFluidHandleContext(): IFluidHandleContext;
|
|
118
|
-
get isDirty(): boolean;
|
|
119
|
-
protected _loadIdCompressor: Promise<void> | undefined;
|
|
120
|
-
static loadRuntime(params: {
|
|
121
|
-
context: IContainerContext;
|
|
122
|
-
registryEntries: NamedFluidDataStoreRegistryEntries;
|
|
123
|
-
existing: boolean;
|
|
124
|
-
runtimeOptions?: IContainerRuntimeOptions;
|
|
125
|
-
containerScope?: FluidObject;
|
|
126
|
-
containerRuntimeCtor?: typeof ContainerRuntime;
|
|
127
|
-
requestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>;
|
|
128
|
-
provideEntryPoint: (containerRuntime: IContainerRuntime) => Promise<FluidObject>;
|
|
129
|
-
}): Promise<ContainerRuntime>;
|
|
130
|
-
// (undocumented)
|
|
131
|
-
makeLocallyVisible(): void;
|
|
132
|
-
// (undocumented)
|
|
133
|
-
notifyOpReplay(message: ISequencedDocumentMessage): Promise<void>;
|
|
134
|
-
// (undocumented)
|
|
135
|
-
onSchemaChange(schema: IDocumentSchemaCurrent): void;
|
|
136
|
-
// (undocumented)
|
|
137
|
-
readonly options: Record<string | number, any>;
|
|
138
|
-
orderSequentially<T>(callback: () => T): T;
|
|
139
|
-
process({ ...messageCopy }: ISequencedDocumentMessage, local: boolean): void;
|
|
140
|
-
// (undocumented)
|
|
141
|
-
processSignal(message: ISignalMessage, local: boolean): void;
|
|
142
|
-
refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
|
|
143
|
-
resolveHandle(request: IRequest): Promise<IResponse>;
|
|
144
|
-
// (undocumented)
|
|
145
|
-
get scope(): FluidObject;
|
|
146
|
-
get sessionSchema(): {
|
|
147
|
-
explicitSchemaControl?: true | undefined;
|
|
148
|
-
compressionLz4?: true | undefined;
|
|
149
|
-
idCompressorMode?: IdCompressorMode;
|
|
150
|
-
opGroupingEnabled?: true | undefined;
|
|
151
|
-
disallowedVersions?: string[] | undefined;
|
|
152
|
-
};
|
|
153
|
-
// (undocumented)
|
|
154
|
-
setAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;
|
|
155
|
-
// (undocumented)
|
|
156
|
-
setChannelDirty(address: string): void;
|
|
157
|
-
// (undocumented)
|
|
158
|
-
setConnectionState(connected: boolean, clientId?: string): void;
|
|
159
|
-
// (undocumented)
|
|
160
|
-
get storage(): IDocumentStorageService;
|
|
161
|
-
// (undocumented)
|
|
162
|
-
submitMessage(type: ContainerMessageType.FluidDataStoreOp | ContainerMessageType.Alias | ContainerMessageType.Attach, contents: any, localOpMetadata?: unknown): void;
|
|
163
|
-
submitSignal(type: string, content: unknown, targetClientId?: string): void;
|
|
164
|
-
submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
|
|
165
|
-
summarize(options: {
|
|
166
|
-
fullTree?: boolean;
|
|
167
|
-
trackState?: boolean;
|
|
168
|
-
summaryLogger?: ITelemetryLoggerExt;
|
|
169
|
-
runGC?: boolean;
|
|
170
|
-
fullGC?: boolean;
|
|
171
|
-
runSweep?: boolean;
|
|
172
|
-
}): Promise<ISummaryTreeWithStats>;
|
|
173
|
-
// (undocumented)
|
|
174
|
-
summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;
|
|
175
|
-
get summarizerClientId(): string | undefined;
|
|
176
|
-
updateTombstonedRoutes(tombstonedRoutes: readonly string[]): void;
|
|
177
|
-
updateUsedRoutes(usedRoutes: readonly string[]): void;
|
|
178
|
-
// (undocumented)
|
|
179
|
-
uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandleInternal<ArrayBufferLike>>;
|
|
180
|
-
}
|
|
181
|
-
|
|
182
35
|
// @alpha
|
|
183
36
|
export const currentDocumentVersionSchema = 1;
|
|
184
37
|
|
|
@@ -287,7 +140,7 @@ export interface IBroadcastSummaryResult {
|
|
|
287
140
|
// @alpha
|
|
288
141
|
export interface ICancellableSummarizerController extends ISummaryCancellationToken {
|
|
289
142
|
// (undocumented)
|
|
290
|
-
stop(reason:
|
|
143
|
+
stop(reason: SummarizerStopReason): void;
|
|
291
144
|
}
|
|
292
145
|
|
|
293
146
|
// @alpha
|
|
@@ -344,8 +197,6 @@ export interface IContainerRuntimeOptions {
|
|
|
344
197
|
readonly enableGroupedBatching?: boolean;
|
|
345
198
|
readonly enableRuntimeIdCompressor?: IdCompressorMode;
|
|
346
199
|
readonly explicitSchemaControl?: boolean;
|
|
347
|
-
// @deprecated
|
|
348
|
-
readonly flushMode?: FlushMode;
|
|
349
200
|
// (undocumented)
|
|
350
201
|
readonly gcOptions?: IGCRuntimeOptions;
|
|
351
202
|
readonly loadSequenceNumberVerification?: "close" | "log" | "bypass";
|
|
@@ -540,33 +391,21 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
|
|
|
540
391
|
readonly summaryLogger: ITelemetryLoggerExt;
|
|
541
392
|
}
|
|
542
393
|
|
|
543
|
-
// @alpha @deprecated (undocumented)
|
|
544
|
-
export interface ISummarizeEventProps {
|
|
545
|
-
// (undocumented)
|
|
546
|
-
currentAttempt: number;
|
|
547
|
-
// (undocumented)
|
|
548
|
-
error?: any;
|
|
549
|
-
// (undocumented)
|
|
550
|
-
maxAttempts: number;
|
|
551
|
-
// (undocumented)
|
|
552
|
-
result: "success" | "failure" | "canceled";
|
|
553
|
-
}
|
|
554
|
-
|
|
555
394
|
// @alpha
|
|
556
395
|
export interface ISummarizeOptions {
|
|
557
396
|
readonly fullTree?: boolean;
|
|
558
397
|
}
|
|
559
398
|
|
|
560
399
|
// @alpha (undocumented)
|
|
561
|
-
export interface ISummarizer extends IEventProvider<
|
|
400
|
+
export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
|
|
562
401
|
// (undocumented)
|
|
563
402
|
close(): void;
|
|
564
403
|
enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;
|
|
565
404
|
readonly ISummarizer?: ISummarizer;
|
|
566
405
|
// (undocumented)
|
|
567
|
-
run(onBehalfOf: string): Promise<
|
|
406
|
+
run(onBehalfOf: string): Promise<SummarizerStopReason>;
|
|
568
407
|
// (undocumented)
|
|
569
|
-
stop(reason:
|
|
408
|
+
stop(reason: SummarizerStopReason): void;
|
|
570
409
|
summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;
|
|
571
410
|
}
|
|
572
411
|
|
|
@@ -577,12 +416,6 @@ export interface ISummarizeResults {
|
|
|
577
416
|
readonly summarySubmitted: Promise<SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>>;
|
|
578
417
|
}
|
|
579
418
|
|
|
580
|
-
// @alpha @deprecated (undocumented)
|
|
581
|
-
export interface ISummarizerEvents extends IEvent {
|
|
582
|
-
// (undocumented)
|
|
583
|
-
(event: "summarize", listener: (props: ISummarizeEventProps) => void): any;
|
|
584
|
-
}
|
|
585
|
-
|
|
586
419
|
// @alpha (undocumented)
|
|
587
420
|
export interface ISummarizerInternalsProvider {
|
|
588
421
|
refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
|
|
@@ -634,7 +467,7 @@ export interface ISummaryBaseConfiguration {
|
|
|
634
467
|
}
|
|
635
468
|
|
|
636
469
|
// @alpha
|
|
637
|
-
export type ISummaryCancellationToken = ICancellationToken<
|
|
470
|
+
export type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
|
|
638
471
|
|
|
639
472
|
// @alpha (undocumented)
|
|
640
473
|
export interface ISummaryCollectionOpEvents extends IEvent {
|
|
@@ -752,7 +585,7 @@ export interface SubmitSummaryFailureData {
|
|
|
752
585
|
export type SubmitSummaryResult = IBaseSummarizeResult | IGenerateSummaryTreeResult | IUploadSummaryResult | ISubmitSummaryOpResult;
|
|
753
586
|
|
|
754
587
|
// @alpha
|
|
755
|
-
export class Summarizer extends TypedEventEmitter<
|
|
588
|
+
export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements ISummarizer {
|
|
756
589
|
constructor(
|
|
757
590
|
runtime: ISummarizerRuntime, configurationGetter: () => ISummaryConfiguration,
|
|
758
591
|
internalsProvider: ISummarizerInternalsProvider, handleContext: IFluidHandleContext, summaryCollection: SummaryCollection, runCoordinatorCreateFn: (runtime: IConnectableRuntime) => Promise<ICancellableSummarizerController>);
|
|
@@ -766,9 +599,9 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents_2> implement
|
|
|
766
599
|
// (undocumented)
|
|
767
600
|
recordSummaryAttempt?(summaryRefSeqNum?: number): void;
|
|
768
601
|
// (undocumented)
|
|
769
|
-
run(onBehalfOf: string): Promise<
|
|
770
|
-
stop(reason:
|
|
771
|
-
static stopReasonCanRunLastSummary(stopReason:
|
|
602
|
+
run(onBehalfOf: string): Promise<SummarizerStopReason>;
|
|
603
|
+
stop(reason: SummarizerStopReason): void;
|
|
604
|
+
static stopReasonCanRunLastSummary(stopReason: SummarizerStopReason): boolean;
|
|
772
605
|
// (undocumented)
|
|
773
606
|
summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;
|
|
774
607
|
// (undocumented)
|
|
@@ -786,33 +619,6 @@ export type SummarizeResultPart<TSuccess, TFailure = undefined> = {
|
|
|
786
619
|
error: IRetriableFailureError;
|
|
787
620
|
};
|
|
788
621
|
|
|
789
|
-
// @alpha @deprecated (undocumented)
|
|
790
|
-
export type SummarizerStopReason =
|
|
791
|
-
/** Summarizer client failed to summarize in all attempts. */
|
|
792
|
-
"failToSummarize"
|
|
793
|
-
/** Parent client reported that it is no longer connected. */
|
|
794
|
-
| "parentNotConnected"
|
|
795
|
-
/**
|
|
796
|
-
* Parent client reported that it is no longer elected the summarizer.
|
|
797
|
-
* This is the normal flow; a disconnect will always trigger the parent
|
|
798
|
-
* client to no longer be elected as responsible for summaries. Then it
|
|
799
|
-
* tries to stop its spawned summarizer client.
|
|
800
|
-
*/
|
|
801
|
-
| "notElectedParent"
|
|
802
|
-
/**
|
|
803
|
-
* We are not already running the summarizer and we are not the current elected client id.
|
|
804
|
-
*/
|
|
805
|
-
| "notElectedClient"
|
|
806
|
-
/** Summarizer client was disconnected */
|
|
807
|
-
| "summarizerClientDisconnected"
|
|
808
|
-
/** running summarizer threw an exception */
|
|
809
|
-
| "summarizerException"
|
|
810
|
-
/**
|
|
811
|
-
* The previous summary state on the summarizer is not the most recently acked summary. this also happens when the
|
|
812
|
-
* first submitSummary attempt fails for any reason and there's a 2nd summary attempt without an ack
|
|
813
|
-
*/
|
|
814
|
-
| "latestSummaryStateStale";
|
|
815
|
-
|
|
816
622
|
// @alpha
|
|
817
623
|
export class SummaryCollection extends TypedEventEmitter<ISummaryCollectionOpEvents> {
|
|
818
624
|
constructor(deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>, logger: ITelemetryLoggerExt);
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batchTracker.d.ts","sourceRoot":"","sources":["../src/batchTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EACN,mBAAmB,EAEnB,MAAM,0CAA0C,CAAC;AAIlD,qBAAa,YAAY;IAOvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IANnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,6BAA6B,CAAqB;gBAGxC,iBAAiB,EAAE,YAAY,EAChD,MAAM,EAAE,oBAAoB,EAC5B,oBAAoB,EAAE,MAAM,EAC5B,sBAAsB,EAAE,MAAM,EAC9B,gBAAgB,GAAE,MAAM,MAAgC;
|
|
1
|
+
{"version":3,"file":"batchTracker.d.ts","sourceRoot":"","sources":["../src/batchTracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAGvE,OAAO,EACN,mBAAmB,EAEnB,MAAM,0CAA0C,CAAC;AAIlD,qBAAa,YAAY;IAOvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IANnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,OAAO,CAAC,wBAAwB,CAAqB;IACrD,OAAO,CAAC,iBAAiB,CAAa;IACtC,OAAO,CAAC,6BAA6B,CAAqB;gBAGxC,iBAAiB,EAAE,YAAY,EAChD,MAAM,EAAE,oBAAoB,EAC5B,oBAAoB,EAAE,MAAM,EAC5B,sBAAsB,EAAE,MAAM,EAC9B,gBAAgB,GAAE,MAAM,MAAgC;CA2CzD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,gBAAgB,sBACT,YAAY,UACvB,mBAAmB,yBACL,MAAM,2BACJ,MAAM,KAC5B,YACuF,CAAC"}
|
package/dist/batchTracker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batchTracker.js","sourceRoot":"","sources":["../src/batchTracker.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+DAA2D;AAE3D,kEAA6D;AAE7D,uEAGkD;AAIlD,MAAa,YAAY;IAMxB,YACkB,iBAA+B,EAChD,MAA4B,EAC5B,oBAA4B,EAC5B,sBAA8B,EAC9B,mBAAiC,GAAG,EAAE,CAAC,0BAAW,CAAC,GAAG,EAAE;QAJvC,sBAAiB,GAAjB,iBAAiB,CAAc;QAJzC,sBAAiB,GAAW,CAAC,CAAC;QAUrC,IAAI,CAAC,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAA4B,EAAE,EAAE;YACxE,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;YACvD,IAAI,CAAC,6BAA6B,GAAG,gBAAgB,EAAE,CAAC;YACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,EAAE,
|
|
1
|
+
{"version":3,"file":"batchTracker.js","sourceRoot":"","sources":["../src/batchTracker.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+DAA2D;AAE3D,kEAA6D;AAE7D,uEAGkD;AAIlD,MAAa,YAAY;IAMxB,YACkB,iBAA+B,EAChD,MAA4B,EAC5B,oBAA4B,EAC5B,sBAA8B,EAC9B,mBAAiC,GAAG,EAAE,CAAC,0BAAW,CAAC,GAAG,EAAE;QAJvC,sBAAiB,GAAjB,iBAAiB,CAAc;QAJzC,sBAAiB,GAAW,CAAC,CAAC;QAUrC,IAAI,CAAC,MAAM,GAAG,IAAA,4BAAiB,EAAC,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,OAA4B,EAAE,EAAE;YACxE,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,cAAc,CAAC;YACvD,IAAI,CAAC,6BAA6B,GAAG,gBAAgB,EAAE,CAAC;YACxD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,KAAc,EAAE,OAA4B,EAAE,EAAE;YACtF,IAAA,iBAAM,EACL,IAAI,CAAC,wBAAwB,KAAK,SAAS;gBAC1C,IAAI,CAAC,6BAA6B,KAAK,SAAS,EACjD,KAAK,CAAC,4CAA4C,CAClD,CAAC;YAEF,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;YAC1E,IAAI,MAAM,IAAI,oBAAoB,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBAChC,SAAS,EAAE,cAAc;oBACzB,MAAM;oBACN,SAAS,EAAE,oBAAoB;oBAC/B,sBAAsB,EAAE,OAAO,CAAC,cAAc;oBAC9C,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,6BAA6B;oBACjE,UAAU,EAAE,KAAK,KAAK,SAAS;iBAC/B,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,IAAI,CAAC,iBAAiB,GAAG,sBAAsB,KAAK,CAAC,EAAE,CAAC;gBAC3D,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC;oBAChC,SAAS,EAAE,QAAQ;oBACnB,MAAM;oBACN,YAAY,EAAE,sBAAsB;oBACpC,sBAAsB,EAAE,OAAO,CAAC,cAAc;oBAC9C,QAAQ,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,6BAA6B;iBACjE,CAAC,CAAC;YACJ,CAAC;YAED,IAAI,CAAC,wBAAwB,GAAG,SAAS,CAAC;YAC1C,IAAI,CAAC,6BAA6B,GAAG,SAAS,CAAC;QAChD,CAAC,CAAC,CAAC;IACJ,CAAC;CACD;AAtDD,oCAsDC;AAED;;;;;;;GAOG;AACI,MAAM,gBAAgB,GAAG,CAC/B,iBAA+B,EAC/B,MAA2B,EAC3B,uBAA+B,IAAI,EACnC,yBAAiC,IAAI,EACtB,EAAE,CACjB,IAAI,YAAY,CAAC,iBAAiB,EAAE,MAAM,EAAE,oBAAoB,EAAE,sBAAsB,CAAC,CAAC;AAN9E,QAAA,gBAAgB,oBAM8D","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { EventEmitter } from \"@fluid-internal/client-utils\";\nimport { performance } from \"@fluid-internal/client-utils\";\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tITelemetryLoggerExt,\n\tcreateChildLogger,\n} from \"@fluidframework/telemetry-utils/internal\";\n\ntype BatchTrackerMessage = Pick<ISequencedDocumentMessage, \"sequenceNumber\">;\n\nexport class BatchTracker {\n\tprivate readonly logger: ITelemetryLoggerExt;\n\tprivate startBatchSequenceNumber: number | undefined;\n\tprivate trackedBatchCount: number = 0;\n\tprivate batchProcessingStartTimeStamp: number | undefined;\n\n\tconstructor(\n\t\tprivate readonly batchEventEmitter: EventEmitter,\n\t\tlogger: ITelemetryBaseLogger,\n\t\tbatchLengthThreshold: number,\n\t\tbatchCountSamplingRate: number,\n\t\tdateTimeProvider: () => number = () => performance.now(),\n\t) {\n\t\tthis.logger = createChildLogger({ logger, namespace: \"Batching\" });\n\n\t\tthis.batchEventEmitter.on(\"batchBegin\", (message: BatchTrackerMessage) => {\n\t\t\tthis.startBatchSequenceNumber = message.sequenceNumber;\n\t\t\tthis.batchProcessingStartTimeStamp = dateTimeProvider();\n\t\t\tthis.trackedBatchCount++;\n\t\t});\n\n\t\tthis.batchEventEmitter.on(\"batchEnd\", (error: unknown, message: BatchTrackerMessage) => {\n\t\t\tassert(\n\t\t\t\tthis.startBatchSequenceNumber !== undefined &&\n\t\t\t\t\tthis.batchProcessingStartTimeStamp !== undefined,\n\t\t\t\t0x2ba /* \"batchBegin must fire before batchEnd\" */,\n\t\t\t);\n\n\t\t\tconst length = message.sequenceNumber - this.startBatchSequenceNumber + 1;\n\t\t\tif (length >= batchLengthThreshold) {\n\t\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\t\teventName: \"LengthTooBig\",\n\t\t\t\t\tlength,\n\t\t\t\t\tthreshold: batchLengthThreshold,\n\t\t\t\t\tbatchEndSequenceNumber: message.sequenceNumber,\n\t\t\t\t\tduration: dateTimeProvider() - this.batchProcessingStartTimeStamp,\n\t\t\t\t\tbatchError: error !== undefined,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (this.trackedBatchCount % batchCountSamplingRate === 0) {\n\t\t\t\tthis.logger.sendPerformanceEvent({\n\t\t\t\t\teventName: \"Length\",\n\t\t\t\t\tlength,\n\t\t\t\t\tsamplingRate: batchCountSamplingRate,\n\t\t\t\t\tbatchEndSequenceNumber: message.sequenceNumber,\n\t\t\t\t\tduration: dateTimeProvider() - this.batchProcessingStartTimeStamp,\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.startBatchSequenceNumber = undefined;\n\t\t\tthis.batchProcessingStartTimeStamp = undefined;\n\t\t});\n\t}\n}\n\n/**\n * Track batch sizes in terms of op counts and processing times\n *\n * @param batchEventEmitter - event emitter which tracks the lifecycle of batch operations\n * @param logger - See {@link @fluidframework/core-interfaces#ITelemetryLoggerExt}\n * @param batchLengthThreshold - threshold for the length of a batch when to send an error event\n * @param batchCountSamplingRate - rate for batches for which to send an event with its characteristics\n */\nexport const BindBatchTracker = (\n\tbatchEventEmitter: EventEmitter,\n\tlogger: ITelemetryLoggerExt,\n\tbatchLengthThreshold: number = 1000,\n\tbatchCountSamplingRate: number = 1000,\n): BatchTracker =>\n\tnew BatchTracker(batchEventEmitter, logger, batchLengthThreshold, batchCountSamplingRate);\n"]}
|
|
@@ -29,7 +29,7 @@ export declare class BlobHandle extends FluidHandleBase<ArrayBufferLike> {
|
|
|
29
29
|
attachGraph(): void;
|
|
30
30
|
bind(handle: IFluidHandleInternal): void;
|
|
31
31
|
}
|
|
32
|
-
export type IBlobManagerRuntime = Pick<IContainerRuntime, "attachState" | "connected" | "baseLogger" | "clientDetails"> & TypedEventEmitter<IContainerRuntimeEvents>;
|
|
32
|
+
export type IBlobManagerRuntime = Pick<IContainerRuntime, "attachState" | "connected" | "baseLogger" | "clientDetails" | "disposed"> & TypedEventEmitter<IContainerRuntimeEvents>;
|
|
33
33
|
export interface IPendingBlobs {
|
|
34
34
|
[id: string]: {
|
|
35
35
|
blob: string;
|
|
@@ -137,9 +137,13 @@ export declare class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
137
137
|
deleteSweepReadyNodes(sweepReadyBlobRoutes: readonly string[]): readonly string[];
|
|
138
138
|
/**
|
|
139
139
|
* Delete blobs with the given routes from the redirect table.
|
|
140
|
+
*
|
|
141
|
+
* @remarks
|
|
140
142
|
* The routes are GC nodes paths of format -`/<blobManagerBasePath>/<blobId>`. The blob ids are all local ids.
|
|
141
143
|
* Deleting the blobs involves 2 steps:
|
|
144
|
+
*
|
|
142
145
|
* 1. The redirect table entry for the local ids are deleted.
|
|
146
|
+
*
|
|
143
147
|
* 2. If the storage ids corresponding to the deleted local ids are not in-use anymore, the redirect table entries
|
|
144
148
|
* for the storage ids are deleted as well.
|
|
145
149
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../../src/blobManager/blobManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,iBAAiB,EAGjB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAe,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AAC7F,OAAO,EACN,iBAAiB,EACjB,uBAAuB,EACvB,MAAM,wDAAwD,CAAC;AAChE,OAAO,EACN,mBAAmB,EACnB,KAAK,oBAAoB,EACzB,MAAM,0CAA0C,CAAC;AAElD,OAAO,EACN,uBAAuB,EACvB,mBAAmB,EACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACN,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACjB,KAAK,yBAAyB,EAC9B,MAAM,8CAA8C,CAAC;AACtD,OAAO,EACN,eAAe,EAIf,MAAM,wCAAwC,CAAC;AAahD,OAAO,EAIN,KAAK,oBAAoB,EACzB,MAAM,yBAAyB,CAAC;AAEjC;;;;;;GAMG;AACH,qBAAa,UAAW,SAAQ,eAAe,CAAC,eAAe,CAAC;aAU9C,IAAI,EAAE,MAAM;aACZ,YAAY,EAAE,mBAAmB;IAC1C,GAAG,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAZhC,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,SAAgB,YAAY,EAAE,MAAM,CAAC;gBAGpB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,mBAAmB,EAC1C,GAAG,EAAE,MAAM,OAAO,CAAC,eAAe,CAAC,EACzB,aAAa,CAAC,SAAQ,IAAI,aAAA;IAMrC,WAAW;
|
|
1
|
+
{"version":3,"file":"blobManager.d.ts","sourceRoot":"","sources":["../../src/blobManager/blobManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -182,8 +182,16 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
|
|
|
182
182
|
(0, internal_1.assert)(!!attachedStorageId, 0x11f /* "requesting unknown blobs" */);
|
|
183
183
|
storageId = attachedStorageId;
|
|
184
184
|
}
|
|
185
|
-
return internal_4.PerformanceEvent.timedExecAsync(this.mc.logger, { eventName: "AttachmentReadBlob", id: storageId }, async () => {
|
|
186
|
-
return this.getStorage()
|
|
185
|
+
return internal_4.PerformanceEvent.timedExecAsync(this.mc.logger, { eventName: "AttachmentReadBlob", id: storageId }, async (event) => {
|
|
186
|
+
return this.getStorage()
|
|
187
|
+
.readBlob(storageId)
|
|
188
|
+
.catch((error) => {
|
|
189
|
+
if (this.runtime.disposed) {
|
|
190
|
+
// If the runtime is disposed, this is not an error we care to track, it's expected behavior.
|
|
191
|
+
event.cancel({ category: "generic" });
|
|
192
|
+
}
|
|
193
|
+
throw error;
|
|
194
|
+
});
|
|
187
195
|
}, { end: true, cancel: "error" });
|
|
188
196
|
}
|
|
189
197
|
getBlobHandle(id) {
|
|
@@ -261,6 +269,8 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
|
|
|
261
269
|
}).then((response) => this.onUploadResolve(localId, response), (error) => {
|
|
262
270
|
this.mc.logger.sendTelemetryEvent({
|
|
263
271
|
eventName: "UploadBlobReject",
|
|
272
|
+
// TODO: better typing
|
|
273
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
264
274
|
error,
|
|
265
275
|
localId,
|
|
266
276
|
});
|
|
@@ -438,9 +448,13 @@ class BlobManager extends client_utils_1.TypedEventEmitter {
|
|
|
438
448
|
}
|
|
439
449
|
/**
|
|
440
450
|
* Delete blobs with the given routes from the redirect table.
|
|
451
|
+
*
|
|
452
|
+
* @remarks
|
|
441
453
|
* The routes are GC nodes paths of format -`/<blobManagerBasePath>/<blobId>`. The blob ids are all local ids.
|
|
442
454
|
* Deleting the blobs involves 2 steps:
|
|
455
|
+
*
|
|
443
456
|
* 1. The redirect table entry for the local ids are deleted.
|
|
457
|
+
*
|
|
444
458
|
* 2. If the storage ids corresponding to the deleted local ids are not in-use anymore, the redirect table entries
|
|
445
459
|
* for the storage ids are deleted as well.
|
|
446
460
|
*
|