@fluidframework/container-runtime 2.12.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 +50 -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 +2 -1
- 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/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 -8
- 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 -1
- 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 +22 -6
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +43 -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 -4
- 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 +1 -1
- 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/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 -9
- 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 -1
- 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 +22 -6
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +41 -4
- 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 -4
- 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 +44 -31
- package/src/batchTracker.ts +31 -33
- package/src/blobManager/blobManager.ts +38 -19
- package/src/blobManager/blobManagerSnapSum.ts +1 -1
- package/src/channelCollection.ts +44 -37
- package/src/connectionTelemetry.ts +31 -13
- package/src/containerHandleContext.ts +2 -2
- package/src/containerRuntime.ts +198 -140
- 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 +41 -18
- package/src/gc/gcConfigs.ts +4 -4
- package/src/gc/gcDefinitions.ts +212 -70
- package/src/gc/gcHelpers.ts +11 -5
- 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} +54 -121
- 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 +20 -11
- package/src/opLifecycle/opGroupingManager.ts +12 -8
- package/src/opLifecycle/opSplitter.ts +11 -8
- package/src/opLifecycle/outbox.ts +22 -13
- package/src/opLifecycle/remoteMessageProcessor.ts +10 -4
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +71 -15
- 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 +24 -25
- 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 -235
- 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 -231
- package/lib/scheduleManager.js.map +0 -1
package/src/channelCollection.ts
CHANGED
|
@@ -110,13 +110,18 @@ import {
|
|
|
110
110
|
* @internal
|
|
111
111
|
*/
|
|
112
112
|
export enum RuntimeHeaders {
|
|
113
|
-
/**
|
|
113
|
+
/**
|
|
114
|
+
* True to wait for a data store to be created and loaded before returning it.
|
|
115
|
+
*/
|
|
114
116
|
wait = "wait",
|
|
115
|
-
/**
|
|
117
|
+
/**
|
|
118
|
+
* True if the request is coming from an IFluidHandle.
|
|
119
|
+
*/
|
|
116
120
|
viaHandle = "viaHandle",
|
|
117
121
|
}
|
|
118
122
|
|
|
119
|
-
/**
|
|
123
|
+
/**
|
|
124
|
+
* True if a tombstoned object should be returned without erroring
|
|
120
125
|
* @legacy
|
|
121
126
|
* @alpha
|
|
122
127
|
*/
|
|
@@ -125,7 +130,7 @@ export const AllowTombstoneRequestHeaderKey = "allowTombstone"; // Belongs in th
|
|
|
125
130
|
type PendingAliasResolve = (success: boolean) => void;
|
|
126
131
|
|
|
127
132
|
interface FluidDataStoreMessage {
|
|
128
|
-
content:
|
|
133
|
+
content: unknown;
|
|
129
134
|
type: string;
|
|
130
135
|
}
|
|
131
136
|
|
|
@@ -212,7 +217,7 @@ function wrapContextForInnerChannel(
|
|
|
212
217
|
): IFluidParentContext {
|
|
213
218
|
const context = wrapContext(parentContext);
|
|
214
219
|
|
|
215
|
-
context.submitMessage = (type: string, content:
|
|
220
|
+
context.submitMessage = (type: string, content: unknown, localOpMetadata: unknown) => {
|
|
216
221
|
const fluidDataStoreContent: FluidDataStoreMessage = {
|
|
217
222
|
content,
|
|
218
223
|
type,
|
|
@@ -242,7 +247,7 @@ function wrapContextForInnerChannel(
|
|
|
242
247
|
/**
|
|
243
248
|
* Returns the type of the given local data store from its package path.
|
|
244
249
|
*/
|
|
245
|
-
export function getLocalDataStoreType(localDataStore: LocalFluidDataStoreContext) {
|
|
250
|
+
export function getLocalDataStoreType(localDataStore: LocalFluidDataStoreContext): string {
|
|
246
251
|
return localDataStore.packagePath[localDataStore.packagePath.length - 1];
|
|
247
252
|
}
|
|
248
253
|
|
|
@@ -373,7 +378,9 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
373
378
|
return pendingAliasPromise ?? "Success";
|
|
374
379
|
}
|
|
375
380
|
|
|
376
|
-
/**
|
|
381
|
+
/**
|
|
382
|
+
* For sampling. Only log once per container
|
|
383
|
+
*/
|
|
377
384
|
private shouldSendAttachLog = true;
|
|
378
385
|
|
|
379
386
|
protected wrapContextForInnerChannel(id: string): IFluidParentContext {
|
|
@@ -385,11 +392,11 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
385
392
|
* Not clear when it would be called and what it should do.
|
|
386
393
|
* Currently this API is called by context only for root data stores.
|
|
387
394
|
*/
|
|
388
|
-
public makeVisibleAndAttachGraph() {
|
|
395
|
+
public makeVisibleAndAttachGraph(): void {
|
|
389
396
|
this.parentContext.makeLocallyVisible();
|
|
390
397
|
}
|
|
391
398
|
|
|
392
|
-
private processAttachMessages(messageCollection: IRuntimeMessageCollection) {
|
|
399
|
+
private processAttachMessages(messageCollection: IRuntimeMessageCollection): void {
|
|
393
400
|
const { envelope, messagesContent, local } = messageCollection;
|
|
394
401
|
for (const { contents } of messagesContent) {
|
|
395
402
|
const attachMessage = contents as InboundAttachMessage;
|
|
@@ -545,7 +552,9 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
545
552
|
return this.aliasMap.get(id) !== undefined || this.contexts.get(id) !== undefined;
|
|
546
553
|
}
|
|
547
554
|
|
|
548
|
-
/**
|
|
555
|
+
/**
|
|
556
|
+
* Package up the context's attach summary etc into an IAttachMessage
|
|
557
|
+
*/
|
|
549
558
|
private generateAttachMessage(localContext: LocalFluidDataStoreContext): IAttachMessage {
|
|
550
559
|
// Get the attach summary.
|
|
551
560
|
const attachSummary = localContext.getAttachSummary();
|
|
@@ -586,7 +595,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
586
595
|
this.contexts.bind(id);
|
|
587
596
|
}
|
|
588
597
|
|
|
589
|
-
protected submitAttachChannelOp(localContext: LocalFluidDataStoreContext) {
|
|
598
|
+
protected submitAttachChannelOp(localContext: LocalFluidDataStoreContext): void {
|
|
590
599
|
const message = this.generateAttachMessage(localContext);
|
|
591
600
|
this.pendingAttach.set(localContext.id, message);
|
|
592
601
|
this.parentContext.submitMessage(ContainerMessageType.Attach, message, undefined);
|
|
@@ -642,21 +651,18 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
642
651
|
this.createDataStoreId(),
|
|
643
652
|
pkg,
|
|
644
653
|
LocalDetachedFluidDataStoreContext,
|
|
645
|
-
undefined, // props
|
|
646
654
|
loadingGroupId,
|
|
647
655
|
);
|
|
648
656
|
}
|
|
649
657
|
|
|
650
658
|
public createDataStoreContext(
|
|
651
659
|
pkg: Readonly<string[]>,
|
|
652
|
-
props?: any,
|
|
653
660
|
loadingGroupId?: string,
|
|
654
661
|
): IFluidDataStoreContextInternal {
|
|
655
662
|
return this.createContext(
|
|
656
663
|
this.createDataStoreId(),
|
|
657
664
|
pkg,
|
|
658
665
|
LocalFluidDataStoreContext,
|
|
659
|
-
props,
|
|
660
666
|
loadingGroupId,
|
|
661
667
|
);
|
|
662
668
|
}
|
|
@@ -665,9 +671,8 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
665
671
|
id: string,
|
|
666
672
|
pkg: Readonly<string[]>,
|
|
667
673
|
contextCtor: new (props: ILocalDetachedFluidDataStoreContextProps) => T,
|
|
668
|
-
createProps?: any,
|
|
669
674
|
loadingGroupId?: string,
|
|
670
|
-
) {
|
|
675
|
+
): T {
|
|
671
676
|
assert(loadingGroupId !== "", 0x974 /* loadingGroupId should not be the empty string */);
|
|
672
677
|
const context = new contextCtor({
|
|
673
678
|
id,
|
|
@@ -680,7 +685,6 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
680
685
|
}),
|
|
681
686
|
makeLocallyVisibleFn: () => this.makeDataStoreLocallyVisible(id),
|
|
682
687
|
snapshotTree: undefined,
|
|
683
|
-
createProps,
|
|
684
688
|
loadingGroupId,
|
|
685
689
|
channelToDataStoreFn: (channel: IFluidDataStoreChannel) =>
|
|
686
690
|
channelToDataStore(
|
|
@@ -695,12 +699,12 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
695
699
|
return context;
|
|
696
700
|
}
|
|
697
701
|
|
|
698
|
-
public get disposed() {
|
|
702
|
+
public get disposed(): boolean {
|
|
699
703
|
return this.disposeOnce.evaluated;
|
|
700
704
|
}
|
|
701
|
-
public readonly dispose = () => this.disposeOnce.value;
|
|
705
|
+
public readonly dispose = (): void => this.disposeOnce.value;
|
|
702
706
|
|
|
703
|
-
public reSubmit(type: string, content:
|
|
707
|
+
public reSubmit(type: string, content: unknown, localOpMetadata: unknown): void {
|
|
704
708
|
switch (type) {
|
|
705
709
|
case ContainerMessageType.Attach:
|
|
706
710
|
case ContainerMessageType.Alias:
|
|
@@ -713,7 +717,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
713
717
|
}
|
|
714
718
|
}
|
|
715
719
|
|
|
716
|
-
protected reSubmitChannelOp(type: string, content:
|
|
720
|
+
protected reSubmitChannelOp(type: string, content: unknown, localOpMetadata: unknown): void {
|
|
717
721
|
const envelope = content as IEnvelope;
|
|
718
722
|
const context = this.contexts.get(envelope.address);
|
|
719
723
|
// If the data store has been deleted, log an error and throw an error. If there are local changes for a
|
|
@@ -731,7 +735,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
731
735
|
context.reSubmit(innerContents.type, innerContents.content, localOpMetadata);
|
|
732
736
|
}
|
|
733
737
|
|
|
734
|
-
public rollback(type: string, content:
|
|
738
|
+
public rollback(type: string, content: unknown, localOpMetadata: unknown): void {
|
|
735
739
|
assert(type === ContainerMessageType.FluidDataStoreOp, 0x8e8 /* type */);
|
|
736
740
|
const envelope = content as IEnvelope;
|
|
737
741
|
const context = this.contexts.get(envelope.address);
|
|
@@ -764,7 +768,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
764
768
|
}
|
|
765
769
|
}
|
|
766
770
|
|
|
767
|
-
protected async applyStashedChannelChannelOp(envelope: IEnvelope) {
|
|
771
|
+
protected async applyStashedChannelChannelOp(envelope: IEnvelope): Promise<unknown> {
|
|
768
772
|
const context = this.contexts.get(envelope.address);
|
|
769
773
|
// If the data store has been deleted, log an error and ignore this message. This helps prevent document
|
|
770
774
|
// corruption in case the data store that stashed the op is deleted.
|
|
@@ -775,7 +779,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
775
779
|
return context.applyStashedOp(envelope.contents);
|
|
776
780
|
}
|
|
777
781
|
|
|
778
|
-
private async applyStashedAttachOp(message: IAttachMessage) {
|
|
782
|
+
private async applyStashedAttachOp(message: IAttachMessage): Promise<void> {
|
|
779
783
|
const { id, snapshot } = message;
|
|
780
784
|
|
|
781
785
|
// build the snapshot from the summary in the attach message
|
|
@@ -850,7 +854,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
850
854
|
message: ISequencedDocumentMessage,
|
|
851
855
|
local: boolean,
|
|
852
856
|
localOpMetadata: unknown,
|
|
853
|
-
) {
|
|
857
|
+
): void {
|
|
854
858
|
this.processMessages({
|
|
855
859
|
envelope: message,
|
|
856
860
|
messagesContent: [
|
|
@@ -875,7 +879,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
875
879
|
let currentMessagesContent: IRuntimeMessagesContent[] = [];
|
|
876
880
|
|
|
877
881
|
// Helper that sends the current bunch of messages to the data store. It validates that the data stores exists.
|
|
878
|
-
const sendBunchedMessages = () => {
|
|
882
|
+
const sendBunchedMessages = (): void => {
|
|
879
883
|
// Current message state will be undefined for the first message in the list.
|
|
880
884
|
if (currentMessageState === undefined) {
|
|
881
885
|
return;
|
|
@@ -1040,7 +1044,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1040
1044
|
callSite: string,
|
|
1041
1045
|
requestHeaderData?: RuntimeHeaderData,
|
|
1042
1046
|
originalRequest?: IRequest,
|
|
1043
|
-
) {
|
|
1047
|
+
): boolean {
|
|
1044
1048
|
const dataStoreNodePath = `/${id}`;
|
|
1045
1049
|
if (!this.isDataStoreDeleted(dataStoreNodePath)) {
|
|
1046
1050
|
return false;
|
|
@@ -1059,7 +1063,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1059
1063
|
})
|
|
1060
1064
|
.then(
|
|
1061
1065
|
(pkg) => ({ pkg, error: undefined }),
|
|
1062
|
-
(error) => ({ pkg: undefined, error }),
|
|
1066
|
+
(error: Error) => ({ pkg: undefined, error }),
|
|
1063
1067
|
)
|
|
1064
1068
|
.then(({ pkg, error }) => {
|
|
1065
1069
|
this.mc.logger.sendTelemetryEvent(
|
|
@@ -1092,9 +1096,10 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1092
1096
|
return true;
|
|
1093
1097
|
}
|
|
1094
1098
|
|
|
1095
|
-
public processSignal(messageArg: IInboundSignalMessage, local: boolean) {
|
|
1099
|
+
public processSignal(messageArg: IInboundSignalMessage, local: boolean): void {
|
|
1096
1100
|
const envelope = messageArg.content as IEnvelope;
|
|
1097
1101
|
const fluidDataStoreId = envelope.address;
|
|
1102
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
1098
1103
|
const message = { ...messageArg, content: envelope.contents };
|
|
1099
1104
|
const context = this.contexts.get(fluidDataStoreId);
|
|
1100
1105
|
// If the data store has been deleted, log an error and ignore this message. This helps prevent document
|
|
@@ -1118,7 +1123,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1118
1123
|
context.processSignal(message, local);
|
|
1119
1124
|
}
|
|
1120
1125
|
|
|
1121
|
-
public setConnectionState(connected: boolean, clientId?: string) {
|
|
1126
|
+
public setConnectionState(connected: boolean, clientId?: string): void {
|
|
1122
1127
|
for (const [fluidDataStoreId, context] of this.contexts) {
|
|
1123
1128
|
try {
|
|
1124
1129
|
context.setConnectionState(connected, clientId);
|
|
@@ -1328,7 +1333,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1328
1333
|
* After GC has run, called to notify this Container's data stores of routes that are used in it.
|
|
1329
1334
|
* @param usedRoutes - The routes that are used in all data stores in this Container.
|
|
1330
1335
|
*/
|
|
1331
|
-
public updateUsedRoutes(usedRoutes: readonly string[]) {
|
|
1336
|
+
public updateUsedRoutes(usedRoutes: readonly string[]): void {
|
|
1332
1337
|
// Get a map of data store ids to routes used in it.
|
|
1333
1338
|
const usedDataStoreRoutes = unpackChildNodesUsedRoutes(usedRoutes);
|
|
1334
1339
|
|
|
@@ -1346,7 +1351,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1346
1351
|
}
|
|
1347
1352
|
}
|
|
1348
1353
|
|
|
1349
|
-
public deleteChild(dataStoreId: string) {
|
|
1354
|
+
public deleteChild(dataStoreId: string): void {
|
|
1350
1355
|
const dataStoreContext = this.contexts.get(dataStoreId);
|
|
1351
1356
|
assert(dataStoreContext !== undefined, 0x2d7 /* No data store with specified id */);
|
|
1352
1357
|
|
|
@@ -1418,7 +1423,7 @@ export class ChannelCollection implements IFluidDataStoreChannel, IDisposable {
|
|
|
1418
1423
|
*
|
|
1419
1424
|
* @param tombstonedRoutes - The routes that are tombstones in all data stores in this Container.
|
|
1420
1425
|
*/
|
|
1421
|
-
public updateTombstonedRoutes(tombstonedRoutes: readonly string[]) {
|
|
1426
|
+
public updateTombstonedRoutes(tombstonedRoutes: readonly string[]): void {
|
|
1422
1427
|
const tombstonedDataStoresSet: Set<string> = new Set();
|
|
1423
1428
|
for (const route of tombstonedRoutes) {
|
|
1424
1429
|
const pathParts = route.split("/");
|
|
@@ -1583,7 +1588,7 @@ export function detectOutboundReferences(
|
|
|
1583
1588
|
const outboundPaths: string[] = [];
|
|
1584
1589
|
let ddsAddress: string | undefined;
|
|
1585
1590
|
|
|
1586
|
-
function recursivelyFindHandles(obj: unknown) {
|
|
1591
|
+
function recursivelyFindHandles(obj: unknown): void {
|
|
1587
1592
|
if (typeof obj === "object" && obj !== null) {
|
|
1588
1593
|
for (const [key, value] of Object.entries(obj)) {
|
|
1589
1594
|
// If 'value' is a serialized IFluidHandle, it represents a new outbound route.
|
|
@@ -1595,7 +1600,7 @@ export function detectOutboundReferences(
|
|
|
1595
1600
|
// the address of the DDS is stored in a property called "address". This is not ideal.
|
|
1596
1601
|
// An alternative would be for the op envelope to include the absolute path (built up as it is submitted)
|
|
1597
1602
|
if (key === "address" && ddsAddress === undefined) {
|
|
1598
|
-
ddsAddress = value;
|
|
1603
|
+
ddsAddress = value as string | undefined;
|
|
1599
1604
|
}
|
|
1600
1605
|
|
|
1601
1606
|
recursivelyFindHandles(value);
|
|
@@ -1611,7 +1616,9 @@ export function detectOutboundReferences(
|
|
|
1611
1616
|
outboundPaths.forEach((toPath) => addedOutboundReference(fromPath, toPath));
|
|
1612
1617
|
}
|
|
1613
1618
|
|
|
1614
|
-
/**
|
|
1619
|
+
/**
|
|
1620
|
+
* @internal
|
|
1621
|
+
*/
|
|
1615
1622
|
export class ChannelCollectionFactory<T extends ChannelCollection = ChannelCollection>
|
|
1616
1623
|
implements IFluidDataStoreFactory
|
|
1617
1624
|
{
|
|
@@ -1630,7 +1637,7 @@ export class ChannelCollectionFactory<T extends ChannelCollection = ChannelColle
|
|
|
1630
1637
|
this.IFluidDataStoreRegistry = new FluidDataStoreRegistry(registryEntries);
|
|
1631
1638
|
}
|
|
1632
1639
|
|
|
1633
|
-
public get IFluidDataStoreFactory() {
|
|
1640
|
+
public get IFluidDataStoreFactory(): ChannelCollectionFactory<T> {
|
|
1634
1641
|
return this;
|
|
1635
1642
|
}
|
|
1636
1643
|
|
|
@@ -36,13 +36,21 @@ export const latencyThreshold = 5000;
|
|
|
36
36
|
// 3. Op received from service back (pushed to inbound queue).
|
|
37
37
|
// 4. Op is processed.
|
|
38
38
|
interface IOpPerfTelemetryProperties {
|
|
39
|
-
/**
|
|
39
|
+
/**
|
|
40
|
+
* Measure time between (1) and (2) - Measure time outbound op is sitting in queue due to active batch
|
|
41
|
+
*/
|
|
40
42
|
durationOutboundBatching: number; // was durationOutboundQueue in previous versions
|
|
41
|
-
/**
|
|
43
|
+
/**
|
|
44
|
+
* Measure time between (2) and (3) - Track how long it took for op to be acked by service
|
|
45
|
+
*/
|
|
42
46
|
durationNetwork: number; // was durationInboundQueue
|
|
43
|
-
/**
|
|
47
|
+
/**
|
|
48
|
+
* Measure time between (3) and (4) - Time between DM's inbound "push" event until DM's "op" event
|
|
49
|
+
*/
|
|
44
50
|
durationInboundToProcessing: number;
|
|
45
|
-
/**
|
|
51
|
+
/**
|
|
52
|
+
* Length of the DeltaManager's inbound queue at the time of the DM's inbound "push" event (3)
|
|
53
|
+
*/
|
|
46
54
|
lengthInboundQueue: number;
|
|
47
55
|
}
|
|
48
56
|
|
|
@@ -50,11 +58,17 @@ interface IOpPerfTelemetryProperties {
|
|
|
50
58
|
* Timings collected at various moments during the op processing.
|
|
51
59
|
*/
|
|
52
60
|
interface IOpPerfTimings {
|
|
53
|
-
/**
|
|
61
|
+
/**
|
|
62
|
+
* Starting time for (1)
|
|
63
|
+
*/
|
|
54
64
|
submitOpEventTime: number;
|
|
55
|
-
/**
|
|
65
|
+
/**
|
|
66
|
+
* Starting time for (2)
|
|
67
|
+
*/
|
|
56
68
|
outboundPushEventTime: number;
|
|
57
|
-
/**
|
|
69
|
+
/**
|
|
70
|
+
* Starting time for (3)
|
|
71
|
+
*/
|
|
58
72
|
inboundPushEventTime: number;
|
|
59
73
|
}
|
|
60
74
|
|
|
@@ -81,9 +95,13 @@ class OpPerfTelemetry {
|
|
|
81
95
|
private connectionStartTime = 0;
|
|
82
96
|
private gap = 0;
|
|
83
97
|
|
|
84
|
-
/**
|
|
98
|
+
/**
|
|
99
|
+
* Count of no-ops sent by this client. This variable is reset everytime the OpStats sampled event is logged
|
|
100
|
+
*/
|
|
85
101
|
private noOpCountForTelemetry = 0;
|
|
86
|
-
/**
|
|
102
|
+
/**
|
|
103
|
+
* Cumulative size of the ops processed by this client. This variable is reset everytime the OpStats sampled event is logged
|
|
104
|
+
*/
|
|
87
105
|
private processedOpSizeForTelemetry = 0;
|
|
88
106
|
|
|
89
107
|
private readonly logger: ITelemetryLoggerExt;
|
|
@@ -283,7 +301,7 @@ class OpPerfTelemetry {
|
|
|
283
301
|
});
|
|
284
302
|
}
|
|
285
303
|
|
|
286
|
-
private reportGettingUpToDate() {
|
|
304
|
+
private reportGettingUpToDate(): void {
|
|
287
305
|
this.connectionOpSeqNumber = undefined;
|
|
288
306
|
this.logger.sendPerformanceEvent({
|
|
289
307
|
eventName: "ConnectionSpeed",
|
|
@@ -297,7 +315,7 @@ class OpPerfTelemetry {
|
|
|
297
315
|
});
|
|
298
316
|
}
|
|
299
317
|
|
|
300
|
-
private recordPingTime(latency: number) {
|
|
318
|
+
private recordPingTime(latency: number): void {
|
|
301
319
|
this.pingLatency = latency;
|
|
302
320
|
|
|
303
321
|
// Log if latency is longer than 1 min
|
|
@@ -317,7 +335,7 @@ class OpPerfTelemetry {
|
|
|
317
335
|
}
|
|
318
336
|
}
|
|
319
337
|
|
|
320
|
-
private beforeOpSubmit(message: IDocumentMessage) {
|
|
338
|
+
private beforeOpSubmit(message: IDocumentMessage): void {
|
|
321
339
|
// start with first client op and measure latency every 500 client ops
|
|
322
340
|
if (
|
|
323
341
|
this.opLatencyLogger.isSamplingDisabled ||
|
|
@@ -344,7 +362,7 @@ class OpPerfTelemetry {
|
|
|
344
362
|
}
|
|
345
363
|
}
|
|
346
364
|
|
|
347
|
-
private afterProcessingOp(message: ISequencedDocumentMessage) {
|
|
365
|
+
private afterProcessingOp(message: ISequencedDocumentMessage): void {
|
|
348
366
|
const sequenceNumber = message.sequenceNumber;
|
|
349
367
|
|
|
350
368
|
if (sequenceNumber === this.connectionOpSeqNumber) {
|
|
@@ -14,7 +14,7 @@ export interface IContainerHandleContextRuntime {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export class ContainerFluidHandleContext implements IFluidHandleContext {
|
|
17
|
-
public get IFluidHandleContext() {
|
|
17
|
+
public get IFluidHandleContext(): IFluidHandleContext {
|
|
18
18
|
return this;
|
|
19
19
|
}
|
|
20
20
|
public readonly absolutePath: string;
|
|
@@ -37,7 +37,7 @@ export class ContainerFluidHandleContext implements IFluidHandleContext {
|
|
|
37
37
|
throw new Error("can't attach container runtime form within container!");
|
|
38
38
|
}
|
|
39
39
|
|
|
40
|
-
public get isAttached() {
|
|
40
|
+
public get isAttached(): boolean {
|
|
41
41
|
return this.runtime.attachState !== AttachState.Detached;
|
|
42
42
|
}
|
|
43
43
|
|