@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
|
@@ -8,11 +8,10 @@ import {
|
|
|
8
8
|
ContainerWarning,
|
|
9
9
|
} from "@fluidframework/container-definitions/internal";
|
|
10
10
|
import type {
|
|
11
|
-
ISummarizerEvents
|
|
12
|
-
SummarizerStopReason
|
|
11
|
+
ISummarizerEvents,
|
|
12
|
+
SummarizerStopReason,
|
|
13
13
|
} from "@fluidframework/container-runtime-definitions/internal";
|
|
14
14
|
import {
|
|
15
|
-
IEvent,
|
|
16
15
|
IEventProvider,
|
|
17
16
|
ITelemetryBaseProperties,
|
|
18
17
|
ITelemetryBaseLogger,
|
|
@@ -44,7 +43,9 @@ import { SummarizeReason } from "./summaryGenerator.js";
|
|
|
44
43
|
* @alpha
|
|
45
44
|
*/
|
|
46
45
|
export interface ICancellationToken<T> {
|
|
47
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Tells if this cancellable token is cancelled
|
|
48
|
+
*/
|
|
48
49
|
readonly cancelled: boolean;
|
|
49
50
|
/**
|
|
50
51
|
* Promise that gets fulfilled when this cancellable token is cancelled
|
|
@@ -58,7 +59,7 @@ export interface ICancellationToken<T> {
|
|
|
58
59
|
* @legacy
|
|
59
60
|
* @alpha
|
|
60
61
|
*/
|
|
61
|
-
export type ISummaryCancellationToken = ICancellationToken<
|
|
62
|
+
export type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;
|
|
62
63
|
|
|
63
64
|
/**
|
|
64
65
|
* Data required to update internal tracking state after receiving a Summary Ack.
|
|
@@ -66,13 +67,21 @@ export type ISummaryCancellationToken = ICancellationToken<NewSummarizerStopReas
|
|
|
66
67
|
* @alpha
|
|
67
68
|
*/
|
|
68
69
|
export interface IRefreshSummaryAckOptions {
|
|
69
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Handle from the ack's summary op.
|
|
72
|
+
*/
|
|
70
73
|
readonly proposalHandle: string | undefined;
|
|
71
|
-
/**
|
|
74
|
+
/**
|
|
75
|
+
* Handle from the summary ack just received
|
|
76
|
+
*/
|
|
72
77
|
readonly ackHandle: string;
|
|
73
|
-
/**
|
|
78
|
+
/**
|
|
79
|
+
* Reference sequence number from the ack's summary op
|
|
80
|
+
*/
|
|
74
81
|
readonly summaryRefSeq: number;
|
|
75
|
-
/**
|
|
82
|
+
/**
|
|
83
|
+
* Telemetry logger to which telemetry events will be forwarded.
|
|
84
|
+
*/
|
|
76
85
|
readonly summaryLogger: ITelemetryLoggerExt;
|
|
77
86
|
}
|
|
78
87
|
|
|
@@ -81,10 +90,14 @@ export interface IRefreshSummaryAckOptions {
|
|
|
81
90
|
* @alpha
|
|
82
91
|
*/
|
|
83
92
|
export interface ISummarizerInternalsProvider {
|
|
84
|
-
/**
|
|
93
|
+
/**
|
|
94
|
+
* Encapsulates the work to walk the internals of the running container to generate a summary
|
|
95
|
+
*/
|
|
85
96
|
submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;
|
|
86
97
|
|
|
87
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Callback whenever a new SummaryAck is received, to update internal tracking state
|
|
100
|
+
*/
|
|
88
101
|
refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
|
|
89
102
|
}
|
|
90
103
|
|
|
@@ -113,7 +126,9 @@ export interface IConnectableRuntime {
|
|
|
113
126
|
*/
|
|
114
127
|
export interface ISummarizerRuntime extends IConnectableRuntime {
|
|
115
128
|
readonly baseLogger: ITelemetryBaseLogger;
|
|
116
|
-
/**
|
|
129
|
+
/**
|
|
130
|
+
* clientId of parent (non-summarizing) container that owns summarizer container
|
|
131
|
+
*/
|
|
117
132
|
readonly summarizerClientId: string | undefined;
|
|
118
133
|
readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
119
134
|
disposeFn(): void;
|
|
@@ -134,7 +149,9 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
|
|
|
134
149
|
* @alpha
|
|
135
150
|
*/
|
|
136
151
|
export interface ISummarizeOptions {
|
|
137
|
-
/**
|
|
152
|
+
/**
|
|
153
|
+
* True to generate the full tree with no handle reuse optimizations; defaults to false
|
|
154
|
+
*/
|
|
138
155
|
readonly fullTree?: boolean;
|
|
139
156
|
}
|
|
140
157
|
|
|
@@ -143,13 +160,21 @@ export interface ISummarizeOptions {
|
|
|
143
160
|
* @alpha
|
|
144
161
|
*/
|
|
145
162
|
export interface ISubmitSummaryOptions extends ISummarizeOptions {
|
|
146
|
-
/**
|
|
163
|
+
/**
|
|
164
|
+
* Logger to use for correlated summary events
|
|
165
|
+
*/
|
|
147
166
|
readonly summaryLogger: ITelemetryLoggerExt;
|
|
148
|
-
/**
|
|
167
|
+
/**
|
|
168
|
+
* Tells when summary process should be cancelled
|
|
169
|
+
*/
|
|
149
170
|
readonly cancellationToken: ISummaryCancellationToken;
|
|
150
|
-
/**
|
|
171
|
+
/**
|
|
172
|
+
* Summarization may be attempted multiple times. This tells whether this is the final summarization attempt.
|
|
173
|
+
*/
|
|
151
174
|
readonly finalAttempt?: boolean;
|
|
152
|
-
/**
|
|
175
|
+
/**
|
|
176
|
+
* The sequence number of the latest summary used to validate if summary state is correct before summarizing
|
|
177
|
+
*/
|
|
153
178
|
readonly latestSummaryRefSeqNum: number;
|
|
154
179
|
}
|
|
155
180
|
|
|
@@ -158,9 +183,13 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
|
|
|
158
183
|
* @alpha
|
|
159
184
|
*/
|
|
160
185
|
export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
|
|
161
|
-
/**
|
|
186
|
+
/**
|
|
187
|
+
* Reason for generating summary.
|
|
188
|
+
*/
|
|
162
189
|
readonly reason: string;
|
|
163
|
-
/**
|
|
190
|
+
/**
|
|
191
|
+
* In case of a failure, will attempt to retry based on if the failure is retriable.
|
|
192
|
+
*/
|
|
164
193
|
readonly retryOnFailure?: boolean;
|
|
165
194
|
}
|
|
166
195
|
|
|
@@ -170,7 +199,9 @@ export interface IOnDemandSummarizeOptions extends ISummarizeOptions {
|
|
|
170
199
|
* @alpha
|
|
171
200
|
*/
|
|
172
201
|
export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
|
|
173
|
-
/**
|
|
202
|
+
/**
|
|
203
|
+
* If specified, The summarize attempt will not occur until after this sequence number.
|
|
204
|
+
*/
|
|
174
205
|
readonly afterSequenceNumber?: number;
|
|
175
206
|
|
|
176
207
|
/**
|
|
@@ -189,17 +220,29 @@ export interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {
|
|
|
189
220
|
* @alpha
|
|
190
221
|
*/
|
|
191
222
|
export interface IGeneratedSummaryStats extends ISummaryStats {
|
|
192
|
-
/**
|
|
223
|
+
/**
|
|
224
|
+
* The total number of data stores in the container.
|
|
225
|
+
*/
|
|
193
226
|
readonly dataStoreCount: number;
|
|
194
|
-
/**
|
|
227
|
+
/**
|
|
228
|
+
* The number of data stores that were summarized in this summary.
|
|
229
|
+
*/
|
|
195
230
|
readonly summarizedDataStoreCount: number;
|
|
196
|
-
/**
|
|
231
|
+
/**
|
|
232
|
+
* The number of data stores whose GC reference state was updated in this summary.
|
|
233
|
+
*/
|
|
197
234
|
readonly gcStateUpdatedDataStoreCount?: number;
|
|
198
|
-
/**
|
|
235
|
+
/**
|
|
236
|
+
* The size of the gc blobs in this summary.
|
|
237
|
+
*/
|
|
199
238
|
readonly gcTotalBlobsSize?: number;
|
|
200
|
-
/**
|
|
239
|
+
/**
|
|
240
|
+
* The number of gc blobs in this summary.
|
|
241
|
+
*/
|
|
201
242
|
readonly gcBlobNodeCount?: number;
|
|
202
|
-
/**
|
|
243
|
+
/**
|
|
244
|
+
* The summary number for a container's summary. Incremented on summaries throughout its lifetime.
|
|
245
|
+
*/
|
|
203
246
|
readonly summaryNumber: number;
|
|
204
247
|
}
|
|
205
248
|
|
|
@@ -219,9 +262,13 @@ export interface IRetriableFailureError extends Error {
|
|
|
219
262
|
*/
|
|
220
263
|
export interface IBaseSummarizeResult {
|
|
221
264
|
readonly stage: "base";
|
|
222
|
-
/**
|
|
265
|
+
/**
|
|
266
|
+
* Retriable error object related to failed summarize attempt.
|
|
267
|
+
*/
|
|
223
268
|
readonly error: IRetriableFailureError | undefined;
|
|
224
|
-
/**
|
|
269
|
+
/**
|
|
270
|
+
* Reference sequence number as of the generate summary attempt.
|
|
271
|
+
*/
|
|
225
272
|
readonly referenceSequenceNumber: number;
|
|
226
273
|
readonly minimumSequenceNumber: number;
|
|
227
274
|
}
|
|
@@ -233,11 +280,17 @@ export interface IBaseSummarizeResult {
|
|
|
233
280
|
*/
|
|
234
281
|
export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "stage"> {
|
|
235
282
|
readonly stage: "generate";
|
|
236
|
-
/**
|
|
283
|
+
/**
|
|
284
|
+
* Generated summary tree.
|
|
285
|
+
*/
|
|
237
286
|
readonly summaryTree: ISummaryTree;
|
|
238
|
-
/**
|
|
287
|
+
/**
|
|
288
|
+
* Stats for generated summary tree.
|
|
289
|
+
*/
|
|
239
290
|
readonly summaryStats: IGeneratedSummaryStats;
|
|
240
|
-
/**
|
|
291
|
+
/**
|
|
292
|
+
* Time it took to generate the summary tree and stats.
|
|
293
|
+
*/
|
|
241
294
|
readonly generateDuration: number;
|
|
242
295
|
}
|
|
243
296
|
|
|
@@ -248,9 +301,13 @@ export interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, "
|
|
|
248
301
|
*/
|
|
249
302
|
export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "stage"> {
|
|
250
303
|
readonly stage: "upload";
|
|
251
|
-
/**
|
|
304
|
+
/**
|
|
305
|
+
* The handle returned by storage pointing to the uploaded summary tree.
|
|
306
|
+
*/
|
|
252
307
|
readonly handle: string;
|
|
253
|
-
/**
|
|
308
|
+
/**
|
|
309
|
+
* Time it took to upload the summary tree to storage.
|
|
310
|
+
*/
|
|
254
311
|
readonly uploadDuration: number;
|
|
255
312
|
}
|
|
256
313
|
|
|
@@ -261,9 +318,13 @@ export interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, "
|
|
|
261
318
|
*/
|
|
262
319
|
export interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, "stage" | "error"> {
|
|
263
320
|
readonly stage: "submit";
|
|
264
|
-
/**
|
|
321
|
+
/**
|
|
322
|
+
* The client sequence number of the summarize op submitted for the summary.
|
|
323
|
+
*/
|
|
265
324
|
readonly clientSequenceNumber: number;
|
|
266
|
-
/**
|
|
325
|
+
/**
|
|
326
|
+
* Time it took to submit the summarize op to the broadcasting service.
|
|
327
|
+
*/
|
|
267
328
|
readonly submitOpDuration: number;
|
|
268
329
|
}
|
|
269
330
|
|
|
@@ -355,13 +416,19 @@ export type SummarizeResultPart<TSuccess, TFailure = undefined> =
|
|
|
355
416
|
* @alpha
|
|
356
417
|
*/
|
|
357
418
|
export interface ISummarizeResults {
|
|
358
|
-
/**
|
|
419
|
+
/**
|
|
420
|
+
* Resolves when we generate, upload, and submit the summary.
|
|
421
|
+
*/
|
|
359
422
|
readonly summarySubmitted: Promise<
|
|
360
423
|
SummarizeResultPart<SubmitSummaryResult, SubmitSummaryFailureData>
|
|
361
424
|
>;
|
|
362
|
-
/**
|
|
425
|
+
/**
|
|
426
|
+
* Resolves when we observe our summarize op broadcast.
|
|
427
|
+
*/
|
|
363
428
|
readonly summaryOpBroadcasted: Promise<SummarizeResultPart<IBroadcastSummaryResult>>;
|
|
364
|
-
/**
|
|
429
|
+
/**
|
|
430
|
+
* Resolves when we receive a summaryAck or summaryNack.
|
|
431
|
+
*/
|
|
365
432
|
readonly receivedSummaryAckOrNack: Promise<
|
|
366
433
|
SummarizeResultPart<IAckSummaryResult, INackSummaryResult>
|
|
367
434
|
>;
|
|
@@ -380,7 +447,9 @@ export type EnqueueSummarizeResult =
|
|
|
380
447
|
readonly alreadyEnqueued?: undefined;
|
|
381
448
|
})
|
|
382
449
|
| (ISummarizeResults & {
|
|
383
|
-
/**
|
|
450
|
+
/**
|
|
451
|
+
* Indicates that another summarize attempt was already enqueued.
|
|
452
|
+
*/
|
|
384
453
|
readonly alreadyEnqueued: true;
|
|
385
454
|
/**
|
|
386
455
|
* Indicates that the other enqueued summarize attempt was abandoned,
|
|
@@ -389,7 +458,9 @@ export type EnqueueSummarizeResult =
|
|
|
389
458
|
readonly overridden: true;
|
|
390
459
|
})
|
|
391
460
|
| {
|
|
392
|
-
/**
|
|
461
|
+
/**
|
|
462
|
+
* Indicates that another summarize attempt was already enqueued.
|
|
463
|
+
*/
|
|
393
464
|
readonly alreadyEnqueued: true;
|
|
394
465
|
/**
|
|
395
466
|
* Indicates that the other enqueued summarize attempt remains enqueued,
|
|
@@ -401,60 +472,8 @@ export type EnqueueSummarizeResult =
|
|
|
401
472
|
/**
|
|
402
473
|
* @legacy
|
|
403
474
|
* @alpha
|
|
404
|
-
* @deprecated Use SummarizerStopReason from the "\@fluidframework/container-runtime-definitions" package
|
|
405
475
|
*/
|
|
406
|
-
export
|
|
407
|
-
/** Summarizer client failed to summarize in all attempts. */
|
|
408
|
-
| "failToSummarize"
|
|
409
|
-
/** Parent client reported that it is no longer connected. */
|
|
410
|
-
| "parentNotConnected"
|
|
411
|
-
/**
|
|
412
|
-
* Parent client reported that it is no longer elected the summarizer.
|
|
413
|
-
* This is the normal flow; a disconnect will always trigger the parent
|
|
414
|
-
* client to no longer be elected as responsible for summaries. Then it
|
|
415
|
-
* tries to stop its spawned summarizer client.
|
|
416
|
-
*/
|
|
417
|
-
| "notElectedParent"
|
|
418
|
-
/**
|
|
419
|
-
* We are not already running the summarizer and we are not the current elected client id.
|
|
420
|
-
*/
|
|
421
|
-
| "notElectedClient"
|
|
422
|
-
/** Summarizer client was disconnected */
|
|
423
|
-
| "summarizerClientDisconnected"
|
|
424
|
-
/** running summarizer threw an exception */
|
|
425
|
-
| "summarizerException"
|
|
426
|
-
/**
|
|
427
|
-
* The previous summary state on the summarizer is not the most recently acked summary. this also happens when the
|
|
428
|
-
* first submitSummary attempt fails for any reason and there's a 2nd summary attempt without an ack
|
|
429
|
-
*/
|
|
430
|
-
| "latestSummaryStateStale";
|
|
431
|
-
|
|
432
|
-
/**
|
|
433
|
-
* @legacy
|
|
434
|
-
* @alpha
|
|
435
|
-
* @deprecated Use ISummarizeEventProps from the "\@fluidframework/container-runtime-definitions" package
|
|
436
|
-
*/
|
|
437
|
-
export interface ISummarizeEventProps {
|
|
438
|
-
result: "success" | "failure" | "canceled";
|
|
439
|
-
currentAttempt: number;
|
|
440
|
-
maxAttempts: number;
|
|
441
|
-
error?: any;
|
|
442
|
-
}
|
|
443
|
-
|
|
444
|
-
/**
|
|
445
|
-
* @legacy
|
|
446
|
-
* @alpha
|
|
447
|
-
* @deprecated Use ISummarizerEvents from the "\@fluidframework/container-runtime-definitions" package
|
|
448
|
-
*/
|
|
449
|
-
export interface ISummarizerEvents extends IEvent {
|
|
450
|
-
(event: "summarize", listener: (props: ISummarizeEventProps) => void);
|
|
451
|
-
}
|
|
452
|
-
|
|
453
|
-
/**
|
|
454
|
-
* @legacy
|
|
455
|
-
* @alpha
|
|
456
|
-
*/
|
|
457
|
-
export interface ISummarizer extends IEventProvider<NewISummarizerEvents> {
|
|
476
|
+
export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
|
|
458
477
|
/**
|
|
459
478
|
* Allows {@link ISummarizer} to be used with our {@link @fluidframework/core-interfaces#FluidObject} pattern.
|
|
460
479
|
*/
|
|
@@ -465,12 +484,12 @@ export interface ISummarizer extends IEventProvider<NewISummarizerEvents> {
|
|
|
465
484
|
* Summarizer will finish current processes, which may take a while.
|
|
466
485
|
* For example, summarizer may complete last summary before exiting.
|
|
467
486
|
*/
|
|
468
|
-
stop(reason:
|
|
487
|
+
stop(reason: SummarizerStopReason): void;
|
|
469
488
|
|
|
470
489
|
/* Closes summarizer. Any pending processes (summary in flight) are abandoned. */
|
|
471
490
|
close(): void;
|
|
472
491
|
|
|
473
|
-
run(onBehalfOf: string): Promise<
|
|
492
|
+
run(onBehalfOf: string): Promise<SummarizerStopReason>;
|
|
474
493
|
|
|
475
494
|
/**
|
|
476
495
|
* Attempts to generate a summary on demand. If already running, takes no action.
|
|
@@ -497,39 +516,63 @@ export interface ISummarizer extends IEventProvider<NewISummarizerEvents> {
|
|
|
497
516
|
enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;
|
|
498
517
|
}
|
|
499
518
|
|
|
500
|
-
/**
|
|
519
|
+
/**
|
|
520
|
+
* Data about an attempt to summarize used for heuristics.
|
|
521
|
+
*/
|
|
501
522
|
export interface ISummarizeAttempt {
|
|
502
|
-
/**
|
|
523
|
+
/**
|
|
524
|
+
* Reference sequence number when summary was generated or attempted
|
|
525
|
+
*/
|
|
503
526
|
readonly refSequenceNumber: number;
|
|
504
527
|
|
|
505
|
-
/**
|
|
528
|
+
/**
|
|
529
|
+
* Time of summary attempt after it was sent or attempted
|
|
530
|
+
*/
|
|
506
531
|
readonly summaryTime: number;
|
|
507
532
|
|
|
508
|
-
/**
|
|
533
|
+
/**
|
|
534
|
+
* Sequence number of summary op
|
|
535
|
+
*/
|
|
509
536
|
summarySequenceNumber?: number;
|
|
510
537
|
}
|
|
511
538
|
|
|
512
|
-
/**
|
|
539
|
+
/**
|
|
540
|
+
* Data relevant for summary heuristics.
|
|
541
|
+
*/
|
|
513
542
|
export interface ISummarizeHeuristicData {
|
|
514
|
-
/**
|
|
543
|
+
/**
|
|
544
|
+
* Latest received op sequence number
|
|
545
|
+
*/
|
|
515
546
|
lastOpSequenceNumber: number;
|
|
516
547
|
|
|
517
|
-
/**
|
|
548
|
+
/**
|
|
549
|
+
* Most recent summary attempt from this client
|
|
550
|
+
*/
|
|
518
551
|
readonly lastAttempt: ISummarizeAttempt;
|
|
519
552
|
|
|
520
|
-
/**
|
|
553
|
+
/**
|
|
554
|
+
* Most recent summary that received an ack
|
|
555
|
+
*/
|
|
521
556
|
readonly lastSuccessfulSummary: Readonly<ISummarizeAttempt>;
|
|
522
557
|
|
|
523
|
-
/**
|
|
558
|
+
/**
|
|
559
|
+
* Number of runtime ops since last summary
|
|
560
|
+
*/
|
|
524
561
|
numRuntimeOps: number;
|
|
525
562
|
|
|
526
|
-
/**
|
|
563
|
+
/**
|
|
564
|
+
* Number of non-runtime ops since last summary
|
|
565
|
+
*/
|
|
527
566
|
numNonRuntimeOps: number;
|
|
528
567
|
|
|
529
|
-
/**
|
|
568
|
+
/**
|
|
569
|
+
* Cumulative size in bytes of all the ops since the last summary
|
|
570
|
+
*/
|
|
530
571
|
totalOpsSize: number;
|
|
531
572
|
|
|
532
|
-
/**
|
|
573
|
+
/**
|
|
574
|
+
* Wether or not this instance contains adjusted metrics due to missing op data
|
|
575
|
+
*/
|
|
533
576
|
hasMissingOpData: boolean;
|
|
534
577
|
|
|
535
578
|
/**
|
|
@@ -546,35 +589,53 @@ export interface ISummarizeHeuristicData {
|
|
|
546
589
|
*/
|
|
547
590
|
recordAttempt(referenceSequenceNumber?: number): void;
|
|
548
591
|
|
|
549
|
-
/**
|
|
592
|
+
/**
|
|
593
|
+
* Mark that the last sent summary attempt has received an ack
|
|
594
|
+
*/
|
|
550
595
|
markLastAttemptAsSuccessful(): void;
|
|
551
596
|
|
|
552
597
|
opsSinceLastSummary: number;
|
|
553
598
|
}
|
|
554
599
|
|
|
555
|
-
/**
|
|
600
|
+
/**
|
|
601
|
+
* Responsible for running heuristics determining when to summarize.
|
|
602
|
+
*/
|
|
556
603
|
export interface ISummarizeHeuristicRunner {
|
|
557
|
-
/**
|
|
604
|
+
/**
|
|
605
|
+
* Start specific heuristic trackers (ex: idle timer)
|
|
606
|
+
*/
|
|
558
607
|
start(): void;
|
|
559
608
|
|
|
560
|
-
/**
|
|
609
|
+
/**
|
|
610
|
+
* Runs the heuristics to determine if it should try to summarize
|
|
611
|
+
*/
|
|
561
612
|
run(): void;
|
|
562
613
|
|
|
563
|
-
/**
|
|
614
|
+
/**
|
|
615
|
+
* Runs a different heuristic to check if it should summarize before closing
|
|
616
|
+
*/
|
|
564
617
|
shouldRunLastSummary(): boolean;
|
|
565
618
|
|
|
566
|
-
/**
|
|
619
|
+
/**
|
|
620
|
+
* Disposes of resources
|
|
621
|
+
*/
|
|
567
622
|
dispose(): void;
|
|
568
623
|
}
|
|
569
624
|
|
|
570
625
|
type ISummarizeTelemetryRequiredProperties =
|
|
571
|
-
/**
|
|
626
|
+
/**
|
|
627
|
+
* Reason code for attempting to summarize
|
|
628
|
+
*/
|
|
572
629
|
"summarizeReason";
|
|
573
630
|
|
|
574
631
|
type ISummarizeTelemetryOptionalProperties =
|
|
575
|
-
/**
|
|
632
|
+
/**
|
|
633
|
+
* Number of attempts within the last time window, used for calculating the throttle delay.
|
|
634
|
+
*/
|
|
576
635
|
| "summaryAttempts"
|
|
577
|
-
/**
|
|
636
|
+
/**
|
|
637
|
+
* Summarization may be attempted multiple times. This tells whether this is the final summarization attempt
|
|
638
|
+
*/
|
|
578
639
|
| "finalAttempt"
|
|
579
640
|
| keyof ISummarizeOptions;
|
|
580
641
|
|
|
@@ -584,9 +645,13 @@ export type ISummarizeTelemetryProperties = Pick<
|
|
|
584
645
|
> &
|
|
585
646
|
Partial<Pick<ITelemetryBaseProperties, ISummarizeTelemetryOptionalProperties>>;
|
|
586
647
|
|
|
587
|
-
/**
|
|
648
|
+
/**
|
|
649
|
+
* Strategy used to heuristically determine when we should run a summary
|
|
650
|
+
*/
|
|
588
651
|
export interface ISummaryHeuristicStrategy {
|
|
589
|
-
/**
|
|
652
|
+
/**
|
|
653
|
+
* Summarize reason for this summarize heuristic strategy (ex: "maxTime")
|
|
654
|
+
*/
|
|
590
655
|
summarizeReason: Readonly<SummarizeReason>;
|
|
591
656
|
|
|
592
657
|
/**
|
|
@@ -601,50 +666,88 @@ export interface ISummaryHeuristicStrategy {
|
|
|
601
666
|
}
|
|
602
667
|
|
|
603
668
|
type SummaryGeneratorRequiredTelemetryProperties =
|
|
604
|
-
/**
|
|
669
|
+
/**
|
|
670
|
+
* True to generate the full tree with no handle reuse optimizations
|
|
671
|
+
*/
|
|
605
672
|
| "fullTree"
|
|
606
|
-
/**
|
|
673
|
+
/**
|
|
674
|
+
* Time since we last attempted to generate a summary
|
|
675
|
+
*/
|
|
607
676
|
| "timeSinceLastAttempt"
|
|
608
|
-
/**
|
|
677
|
+
/**
|
|
678
|
+
* Time since we last successfully generated a summary
|
|
679
|
+
*/
|
|
609
680
|
| "timeSinceLastSummary";
|
|
610
681
|
|
|
611
682
|
type SummaryGeneratorOptionalTelemetryProperties =
|
|
612
|
-
/**
|
|
683
|
+
/**
|
|
684
|
+
* Reference sequence number as of the generate summary attempt.
|
|
685
|
+
*/
|
|
613
686
|
| "referenceSequenceNumber"
|
|
614
|
-
/**
|
|
687
|
+
/**
|
|
688
|
+
* minimum sequence number (at the reference sequence number)
|
|
689
|
+
*/
|
|
615
690
|
| "minimumSequenceNumber"
|
|
616
|
-
/**
|
|
691
|
+
/**
|
|
692
|
+
* Delta between the current reference sequence number and the reference sequence number of the last attempt
|
|
693
|
+
*/
|
|
617
694
|
| "opsSinceLastAttempt"
|
|
618
|
-
/**
|
|
695
|
+
/**
|
|
696
|
+
* Delta between the current reference sequence number and the reference sequence number of the last summary
|
|
697
|
+
*/
|
|
619
698
|
| "opsSinceLastSummary"
|
|
620
699
|
/**
|
|
621
700
|
* Delta in sum of op sizes between the current reference sequence number and the reference
|
|
622
701
|
* sequence number of the last summary
|
|
623
702
|
*/
|
|
624
703
|
| "opsSizesSinceLastSummary"
|
|
625
|
-
/**
|
|
704
|
+
/**
|
|
705
|
+
* Delta between the number of non-runtime ops since the last summary
|
|
706
|
+
*/
|
|
626
707
|
| "nonRuntimeOpsSinceLastSummary"
|
|
627
|
-
/**
|
|
708
|
+
/**
|
|
709
|
+
* Delta between the number of runtime ops since the last summary
|
|
710
|
+
*/
|
|
628
711
|
| "runtimeOpsSinceLastSummary"
|
|
629
|
-
/**
|
|
712
|
+
/**
|
|
713
|
+
* Wether or not this instance contains adjusted metrics due to missing op data
|
|
714
|
+
*/
|
|
630
715
|
| "hasMissingOpData"
|
|
631
|
-
/**
|
|
716
|
+
/**
|
|
717
|
+
* Time it took to generate the summary tree and stats.
|
|
718
|
+
*/
|
|
632
719
|
| "generateDuration"
|
|
633
|
-
/**
|
|
720
|
+
/**
|
|
721
|
+
* The handle returned by storage pointing to the uploaded summary tree.
|
|
722
|
+
*/
|
|
634
723
|
| "handle"
|
|
635
|
-
/**
|
|
724
|
+
/**
|
|
725
|
+
* Time it took to upload the summary tree to storage.
|
|
726
|
+
*/
|
|
636
727
|
| "uploadDuration"
|
|
637
|
-
/**
|
|
728
|
+
/**
|
|
729
|
+
* The client sequence number of the summarize op submitted for the summary.
|
|
730
|
+
*/
|
|
638
731
|
| "clientSequenceNumber"
|
|
639
|
-
/**
|
|
732
|
+
/**
|
|
733
|
+
* Time it took for this summary to be acked after it was generated
|
|
734
|
+
*/
|
|
640
735
|
| "ackWaitDuration"
|
|
641
|
-
/**
|
|
736
|
+
/**
|
|
737
|
+
* Reference sequence number of the ack/nack message
|
|
738
|
+
*/
|
|
642
739
|
| "ackNackSequenceNumber"
|
|
643
|
-
/**
|
|
740
|
+
/**
|
|
741
|
+
* Actual sequence number of the summary op proposal.
|
|
742
|
+
*/
|
|
644
743
|
| "summarySequenceNumber"
|
|
645
|
-
/**
|
|
744
|
+
/**
|
|
745
|
+
* Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying.
|
|
746
|
+
*/
|
|
646
747
|
| "nackRetryAfter"
|
|
647
|
-
/**
|
|
748
|
+
/**
|
|
749
|
+
* The stage at which the submit summary method failed at. This can help determine what type of failure we have
|
|
750
|
+
*/
|
|
648
751
|
| "stage";
|
|
649
752
|
|
|
650
753
|
export type SummaryGeneratorTelemetry = Pick<
|
|
@@ -654,8 +757,12 @@ export type SummaryGeneratorTelemetry = Pick<
|
|
|
654
757
|
Partial<Pick<ITelemetryBaseProperties, SummaryGeneratorOptionalTelemetryProperties>>;
|
|
655
758
|
|
|
656
759
|
export interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {
|
|
657
|
-
/**
|
|
760
|
+
/**
|
|
761
|
+
* Number of times the summarizer run.
|
|
762
|
+
*/
|
|
658
763
|
summarizeCount: () => number;
|
|
659
|
-
/**
|
|
764
|
+
/**
|
|
765
|
+
* Number of successful attempts to summarize.
|
|
766
|
+
*/
|
|
660
767
|
summarizerSuccessfulAttempts: () => number;
|
|
661
768
|
}
|