@fluidframework/container-runtime 2.0.0-dev-rc.2.0.0.246488 → 2.0.0-dev-rc.3.0.0.253463
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/api-report/container-runtime.api.md +109 -55
- package/dist/batchTracker.d.ts +1 -1
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +4 -4
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +33 -25
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +82 -100
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +7 -6
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +110 -77
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +3 -3
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +17 -17
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +263 -41
- package/dist/container-runtime-beta.d.ts +44 -30
- package/dist/container-runtime-public.d.ts +44 -30
- package/dist/container-runtime-untrimmed.d.ts +265 -56
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js +2 -2
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +40 -30
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +376 -255
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +1 -1
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +7 -7
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +9 -9
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +74 -74
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +11 -11
- 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 +2 -2
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/dist/deltaManagerSummarizerProxy.js.map +1 -1
- package/dist/deltaScheduler.d.ts +1 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +6 -6
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/error.d.ts +1 -1
- package/dist/error.d.ts.map +1 -1
- package/dist/error.js +4 -4
- package/dist/error.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +3 -2
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +21 -21
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +2 -2
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +4 -5
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +4 -3
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +5 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +21 -12
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +2 -2
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +11 -11
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +2 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +11 -9
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +6 -6
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +1 -1
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +2 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/messageTypes.d.ts +11 -5
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js +4 -0
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +2 -20
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +3 -3
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +3 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +5 -6
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +15 -4
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +62 -63
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +2 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +14 -16
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +12 -4
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +63 -53
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +2 -1
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +19 -24
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +8 -0
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +36 -35
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts +1 -1
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +18 -18
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.d.ts +1 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +24 -24
- package/dist/scheduleManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.d.ts +2 -2
- package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -1
- package/dist/storageServiceWithAttachBlobs.js +2 -2
- package/dist/storageServiceWithAttachBlobs.js.map +1 -1
- package/dist/summary/documentSchema.d.ts +209 -0
- package/dist/summary/documentSchema.d.ts.map +1 -0
- package/dist/summary/documentSchema.js +382 -0
- package/dist/summary/documentSchema.js.map +1 -0
- package/dist/summary/index.d.ts +2 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +4 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +2 -2
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +8 -7
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +3 -3
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +3 -3
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +16 -16
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +3 -2
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +13 -13
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +2 -2
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +1 -1
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +2 -2
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +3 -2
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +28 -28
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +3 -3
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +14 -14
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +5 -3
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +2 -2
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +7 -7
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +6 -17
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +8 -8
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +4 -3
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +17 -17
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +1 -1
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +15 -14
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/batchTracker.d.ts +1 -1
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +33 -25
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +48 -66
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +7 -6
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +47 -14
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +3 -3
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +3 -3
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/container-runtime-alpha.d.ts +263 -41
- package/lib/container-runtime-beta.d.ts +44 -30
- package/lib/container-runtime-public.d.ts +44 -30
- package/lib/container-runtime-untrimmed.d.ts +265 -56
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +40 -30
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +224 -101
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts +1 -1
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +2 -2
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +9 -9
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +8 -8
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +2 -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 +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/lib/deltaManagerSummarizerProxy.js.map +1 -1
- package/lib/deltaScheduler.d.ts +1 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +1 -1
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/error.d.ts +1 -1
- package/lib/error.d.ts.map +1 -1
- package/lib/error.js +2 -2
- package/lib/error.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +3 -2
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +6 -6
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +2 -2
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +4 -5
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +4 -3
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +5 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +10 -2
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +2 -2
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +2 -2
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +2 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +4 -2
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +2 -2
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -1
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -1
- package/lib/gc/index.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/messageTypes.d.ts +11 -5
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js +4 -0
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +2 -20
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +3 -3
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +2 -2
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +2 -3
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +15 -4
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +61 -62
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +2 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +9 -12
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +12 -4
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +47 -38
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +2 -1
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +8 -13
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +8 -0
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +36 -35
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts +1 -1
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +2 -2
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/scheduleManager.d.ts +1 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +3 -3
- package/lib/scheduleManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.d.ts +2 -2
- package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -1
- package/lib/storageServiceWithAttachBlobs.js +1 -1
- package/lib/storageServiceWithAttachBlobs.js.map +1 -1
- package/lib/summary/documentSchema.d.ts +209 -0
- package/lib/summary/documentSchema.d.ts.map +1 -0
- package/lib/summary/documentSchema.js +378 -0
- package/lib/summary/documentSchema.js.map +1 -0
- package/lib/summary/index.d.ts +2 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -0
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +2 -2
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +3 -2
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts +1 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +3 -3
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +3 -3
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +3 -2
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +3 -3
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +2 -2
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +1 -1
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +3 -2
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +5 -5
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +5 -3
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +2 -2
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +1 -1
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +6 -17
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +3 -3
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +4 -3
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +4 -4
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +1 -1
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +9 -8
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/tsdoc-metadata.json +11 -0
- package/package.json +34 -32
- package/src/batchTracker.ts +4 -3
- package/src/blobManager.ts +100 -69
- package/src/channelCollection.ts +86 -43
- package/src/connectionTelemetry.ts +12 -12
- package/src/containerHandleContext.ts +3 -2
- package/src/containerRuntime.ts +419 -232
- package/src/dataStore.ts +5 -3
- package/src/dataStoreContext.ts +32 -29
- package/src/dataStoreContexts.ts +4 -2
- package/src/dataStoreRegistry.ts +2 -2
- package/src/deltaManagerSummarizerProxy.ts +1 -1
- package/src/deltaScheduler.ts +2 -1
- package/src/error.ts +2 -2
- package/src/gc/garbageCollection.ts +19 -18
- package/src/gc/gcConfigs.ts +15 -18
- package/src/gc/gcDefinitions.ts +6 -6
- package/src/gc/gcHelpers.ts +22 -5
- package/src/gc/gcSummaryStateTracker.ts +7 -5
- package/src/gc/gcTelemetry.ts +13 -7
- package/src/gc/gcUnreferencedStateTracker.ts +3 -2
- package/src/gc/index.ts +1 -0
- package/src/index.ts +8 -1
- package/src/messageTypes.ts +20 -6
- package/src/opLifecycle/README.md +89 -0
- package/src/opLifecycle/batchManager.ts +1 -0
- package/src/opLifecycle/definitions.ts +3 -21
- package/src/opLifecycle/index.ts +3 -9
- package/src/opLifecycle/opCompressor.ts +6 -5
- package/src/opLifecycle/opDecompressor.ts +84 -100
- package/src/opLifecycle/opGroupingManager.ts +12 -14
- package/src/opLifecycle/opSplitter.ts +76 -48
- package/src/opLifecycle/outbox.ts +17 -32
- package/src/opLifecycle/remoteMessageProcessor.ts +43 -59
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +6 -6
- package/src/scheduleManager.ts +9 -8
- package/src/storageServiceWithAttachBlobs.ts +2 -2
- package/src/summary/documentSchema.ts +612 -0
- package/src/summary/index.ts +10 -1
- package/src/summary/orderedClientElection.ts +6 -7
- package/src/summary/runWhileConnectedCoordinator.ts +3 -2
- package/src/summary/runningSummarizer.ts +22 -20
- package/src/summary/summarizer.ts +17 -15
- package/src/summary/summarizerClientElection.ts +3 -2
- package/src/summary/summarizerHeuristics.ts +4 -2
- package/src/summary/summarizerNode/summarizerNode.ts +20 -18
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +16 -8
- package/src/summary/summarizerTypes.ts +7 -3
- package/src/summary/summaryCollection.ts +3 -3
- package/src/summary/summaryFormat.ts +14 -26
- package/src/summary/summaryGenerator.ts +12 -15
- package/src/summary/summaryManager.ts +16 -13
- package/lib/test/batchTracker.spec.js +0 -88
- package/lib/test/batchTracker.spec.js.map +0 -1
- package/lib/test/blobManager.spec.js +0 -835
- package/lib/test/blobManager.spec.js.map +0 -1
- package/lib/test/channelCollection.spec.js +0 -138
- package/lib/test/channelCollection.spec.js.map +0 -1
- package/lib/test/containerRuntime.spec.js +0 -1748
- package/lib/test/containerRuntime.spec.js.map +0 -1
- package/lib/test/dataStoreContext.spec.js +0 -771
- package/lib/test/dataStoreContext.spec.js.map +0 -1
- package/lib/test/dataStoreCreation.spec.js +0 -303
- package/lib/test/dataStoreCreation.spec.js.map +0 -1
- package/lib/test/dataStoreRegistry.spec.js +0 -26
- package/lib/test/dataStoreRegistry.spec.js.map +0 -1
- package/lib/test/fuzz/fuzzUtils.js +0 -66
- package/lib/test/fuzz/fuzzUtils.js.map +0 -1
- package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -31
- package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzMocks.js +0 -162
- package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzSuite.js +0 -106
- package/lib/test/fuzz/summarizerFuzzSuite.js.map +0 -1
- package/lib/test/gc/garbageCollection.spec.js +0 -1464
- package/lib/test/gc/garbageCollection.spec.js.map +0 -1
- package/lib/test/gc/gcConfigs.spec.js +0 -689
- package/lib/test/gc/gcConfigs.spec.js.map +0 -1
- package/lib/test/gc/gcHelpers.spec.js +0 -110
- package/lib/test/gc/gcHelpers.spec.js.map +0 -1
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +0 -68
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +0 -1
- package/lib/test/gc/gcStats.spec.js +0 -390
- package/lib/test/gc/gcStats.spec.js.map +0 -1
- package/lib/test/gc/gcSummaryStateTracker.spec.js +0 -228
- package/lib/test/gc/gcSummaryStateTracker.spec.js.map +0 -1
- package/lib/test/gc/gcTelemetry.spec.js +0 -530
- package/lib/test/gc/gcTelemetry.spec.js.map +0 -1
- package/lib/test/gc/gcUnitTestHelpers.js +0 -29
- package/lib/test/gc/gcUnitTestHelpers.js.map +0 -1
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js +0 -192
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +0 -1
- package/lib/test/getPendingBlobs.spec.js +0 -193
- package/lib/test/getPendingBlobs.spec.js.map +0 -1
- package/lib/test/hardwareStats.spec.js +0 -93
- package/lib/test/hardwareStats.spec.js.map +0 -1
- package/lib/test/index.js +0 -6
- package/lib/test/index.js.map +0 -1
- package/lib/test/opLifecycle/OpGroupingManager.spec.js +0 -225
- package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +0 -1
- package/lib/test/opLifecycle/batchManager.spec.js +0 -189
- package/lib/test/opLifecycle/batchManager.spec.js.map +0 -1
- package/lib/test/opLifecycle/opCompressor.spec.js +0 -74
- package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opDecompressor.spec.js +0 -218
- package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opSplitter.spec.js +0 -272
- package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
- package/lib/test/opLifecycle/outbox.spec.js +0 -675
- package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -196
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +0 -1
- package/lib/test/pendingStateManager.spec.js +0 -329
- package/lib/test/pendingStateManager.spec.js.map +0 -1
- package/lib/test/scheduleManager.spec.js +0 -270
- package/lib/test/scheduleManager.spec.js.map +0 -1
- package/lib/test/summarizerNode.spec.js +0 -326
- package/lib/test/summarizerNode.spec.js.map +0 -1
- package/lib/test/summarizerNodeWithGc.spec.js +0 -318
- package/lib/test/summarizerNodeWithGc.spec.js.map +0 -1
- package/lib/test/summary/orderedClientElection.spec.js +0 -535
- package/lib/test/summary/orderedClientElection.spec.js.map +0 -1
- package/lib/test/summary/runningSummarizer.spec.js +0 -1349
- package/lib/test/summary/runningSummarizer.spec.js.map +0 -1
- package/lib/test/summary/summarizer.spec.js +0 -29
- package/lib/test/summary/summarizer.spec.js.map +0 -1
- package/lib/test/summary/summarizerClientElection.spec.js +0 -436
- package/lib/test/summary/summarizerClientElection.spec.js.map +0 -1
- package/lib/test/summary/summarizerHeuristics.spec.js +0 -289
- package/lib/test/summary/summarizerHeuristics.spec.js.map +0 -1
- package/lib/test/summary/summaryCollection.spec.js +0 -200
- package/lib/test/summary/summaryCollection.spec.js.map +0 -1
- package/lib/test/summary/summaryManager.spec.js +0 -430
- package/lib/test/summary/summaryManager.spec.js.map +0 -1
- package/lib/test/summary/testQuorumClients.js +0 -34
- package/lib/test/summary/testQuorumClients.js.map +0 -1
- package/lib/test/throttler.spec.js +0 -175
- package/lib/test/throttler.spec.js.map +0 -1
- package/lib/test/types/validateContainerRuntimePrevious.generated.js +0 -180
- package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
|
@@ -3,46 +3,48 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
6
7
|
import { IDisposable, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { assert, Deferred, PromiseTimer, delay } from "@fluidframework/core-utils/internal";
|
|
9
|
+
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
10
|
+
import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
|
|
7
11
|
import {
|
|
8
|
-
isFluidError,
|
|
9
12
|
MonitoringContext,
|
|
10
|
-
createChildMonitoringContext,
|
|
11
|
-
createChildLogger,
|
|
12
13
|
UsageError,
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
14
|
+
createChildLogger,
|
|
15
|
+
createChildMonitoringContext,
|
|
16
|
+
isFluidError,
|
|
17
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
18
|
+
|
|
18
19
|
import { ISummaryConfiguration } from "../containerRuntime.js";
|
|
19
20
|
import { opSize } from "../opProperties.js";
|
|
21
|
+
|
|
20
22
|
import { SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
|
|
21
23
|
import {
|
|
24
|
+
EnqueueSummarizeResult,
|
|
22
25
|
IEnqueueSummarizeOptions,
|
|
23
|
-
ISummarizeOptions,
|
|
24
|
-
ISummarizeHeuristicData,
|
|
25
|
-
ISummarizeHeuristicRunner,
|
|
26
26
|
IOnDemandSummarizeOptions,
|
|
27
|
-
|
|
28
|
-
SummarizerStopReason,
|
|
27
|
+
IRefreshSummaryAckOptions,
|
|
29
28
|
ISubmitSummaryOptions,
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
ISummarizeEventProps,
|
|
30
|
+
ISummarizeHeuristicData,
|
|
31
|
+
ISummarizeHeuristicRunner,
|
|
32
|
+
ISummarizeOptions,
|
|
32
33
|
ISummarizeResults,
|
|
33
|
-
ISummarizeTelemetryProperties,
|
|
34
|
-
ISummarizerRuntime,
|
|
35
34
|
ISummarizeRunnerTelemetry,
|
|
36
|
-
|
|
35
|
+
ISummarizeTelemetryProperties,
|
|
37
36
|
ISummarizerEvents,
|
|
38
|
-
|
|
37
|
+
ISummarizerRuntime,
|
|
38
|
+
ISummaryCancellationToken,
|
|
39
|
+
SubmitSummaryResult,
|
|
40
|
+
SummarizerStopReason,
|
|
39
41
|
} from "./summarizerTypes.js";
|
|
40
42
|
import { IAckedSummary, IClientSummaryWatcher, SummaryCollection } from "./summaryCollection.js";
|
|
41
43
|
import {
|
|
42
|
-
raceTimer,
|
|
43
44
|
SummarizeReason,
|
|
44
45
|
SummarizeResultBuilder,
|
|
45
46
|
SummaryGenerator,
|
|
47
|
+
raceTimer,
|
|
46
48
|
} from "./summaryGenerator.js";
|
|
47
49
|
|
|
48
50
|
const maxSummarizeAckWaitTime = 10 * 60 * 1000; // 10 minutes
|
|
@@ -3,37 +3,39 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { Deferred } from "@fluidframework/core-utils";
|
|
7
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
|
+
import { IFluidHandleContext } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { Deferred } from "@fluidframework/core-utils/internal";
|
|
9
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
8
10
|
import {
|
|
9
|
-
ITelemetryLoggerExt,
|
|
10
|
-
createChildLogger,
|
|
11
11
|
IFluidErrorBase,
|
|
12
12
|
LoggingError,
|
|
13
13
|
UsageError,
|
|
14
|
+
createChildLogger,
|
|
14
15
|
wrapErrorAndLog,
|
|
15
|
-
} from "@fluidframework/telemetry-utils";
|
|
16
|
-
|
|
16
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
17
|
+
|
|
17
18
|
import { ISummaryConfiguration } from "../containerRuntime.js";
|
|
19
|
+
|
|
18
20
|
import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator.js";
|
|
19
|
-
import { SummaryCollection } from "./summaryCollection.js";
|
|
20
21
|
import { RunningSummarizer } from "./runningSummarizer.js";
|
|
22
|
+
import { SummarizeHeuristicData } from "./summarizerHeuristics.js";
|
|
21
23
|
import {
|
|
24
|
+
EnqueueSummarizeResult,
|
|
22
25
|
IConnectableRuntime,
|
|
23
|
-
|
|
26
|
+
IEnqueueSummarizeOptions,
|
|
27
|
+
IOnDemandSummarizeOptions,
|
|
28
|
+
ISummarizeEventProps,
|
|
24
29
|
ISummarizeHeuristicData,
|
|
30
|
+
ISummarizeResults,
|
|
31
|
+
ISummarizer,
|
|
32
|
+
ISummarizerEvents,
|
|
25
33
|
ISummarizerInternalsProvider,
|
|
26
34
|
ISummarizerRuntime,
|
|
27
35
|
ISummarizingWarning,
|
|
28
36
|
SummarizerStopReason,
|
|
29
|
-
IOnDemandSummarizeOptions,
|
|
30
|
-
ISummarizeResults,
|
|
31
|
-
IEnqueueSummarizeOptions,
|
|
32
|
-
EnqueueSummarizeResult,
|
|
33
|
-
ISummarizerEvents,
|
|
34
|
-
ISummarizeEventProps,
|
|
35
37
|
} from "./summarizerTypes.js";
|
|
36
|
-
import {
|
|
38
|
+
import { SummaryCollection } from "./summaryCollection.js";
|
|
37
39
|
import { SummarizeResultBuilder } from "./summaryGenerator.js";
|
|
38
40
|
|
|
39
41
|
const summarizingError = "summarizingError";
|
|
@@ -240,7 +242,7 @@ export class Summarizer extends TypedEventEmitter<ISummarizerEvents> implements
|
|
|
240
242
|
this.summaryCollection.createWatcher(clientId),
|
|
241
243
|
this.configurationGetter(),
|
|
242
244
|
async (...args) => this.internalsProvider.submitSummary(...args), // submitSummaryCallback
|
|
243
|
-
async (...args) => this.internalsProvider.refreshLatestSummaryAck(...args), //
|
|
245
|
+
async (...args) => this.internalsProvider.refreshLatestSummaryAck(...args), // refreshLatestSummaryAckCallback
|
|
244
246
|
this._heuristicData,
|
|
245
247
|
this.summaryCollection,
|
|
246
248
|
runCoordinator /* cancellationToken */,
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IEvent, IEventProvider } from "@fluidframework/core-interfaces";
|
|
7
|
-
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
8
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
|
+
import { IEvent, IEventProvider } from "@fluidframework/core-interfaces";
|
|
9
8
|
import { IClientDetails, MessageType } from "@fluidframework/protocol-definitions";
|
|
9
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
10
|
+
|
|
10
11
|
import {
|
|
11
12
|
IOrderedClientElection,
|
|
12
13
|
ISerializedElection,
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { Timer } from "@fluidframework/core-utils/internal";
|
|
6
7
|
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
7
|
-
|
|
8
|
+
|
|
8
9
|
import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
|
|
10
|
+
|
|
9
11
|
import {
|
|
12
|
+
ISummarizeAttempt,
|
|
10
13
|
ISummarizeHeuristicData,
|
|
11
14
|
ISummarizeHeuristicRunner,
|
|
12
|
-
ISummarizeAttempt,
|
|
13
15
|
ISummaryHeuristicStrategy,
|
|
14
16
|
} from "./summarizerTypes.js";
|
|
15
17
|
import { SummarizeReason } from "./summaryGenerator.js";
|
|
@@ -4,41 +4,43 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
|
-
import {
|
|
8
|
-
ISummarizerNode,
|
|
9
|
-
ISummarizerNodeConfig,
|
|
10
|
-
ISummarizeResult,
|
|
11
|
-
CreateChildSummarizerNodeParam,
|
|
12
|
-
CreateSummarizerNodeSource,
|
|
13
|
-
SummarizeInternalFn,
|
|
14
|
-
ITelemetryContext,
|
|
15
|
-
IExperimentalIncrementalSummaryContext,
|
|
16
|
-
} from "@fluidframework/runtime-definitions";
|
|
7
|
+
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
17
8
|
import {
|
|
18
9
|
ISequencedDocumentMessage,
|
|
19
|
-
SummaryType,
|
|
20
10
|
ISnapshotTree,
|
|
11
|
+
SummaryType,
|
|
21
12
|
} from "@fluidframework/protocol-definitions";
|
|
22
13
|
import {
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
IExperimentalIncrementalSummaryContext,
|
|
15
|
+
ITelemetryContext,
|
|
16
|
+
} from "@fluidframework/runtime-definitions";
|
|
17
|
+
import {
|
|
18
|
+
CreateChildSummarizerNodeParam,
|
|
19
|
+
CreateSummarizerNodeSource,
|
|
20
|
+
ISummarizeResult,
|
|
21
|
+
ISummarizerNode,
|
|
22
|
+
ISummarizerNodeConfig,
|
|
23
|
+
SummarizeInternalFn,
|
|
24
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
25
|
+
import { mergeStats } from "@fluidframework/runtime-utils/internal";
|
|
26
|
+
import { type ITelemetryErrorEventExt, ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
27
|
+
import {
|
|
25
28
|
LoggingError,
|
|
26
29
|
PerformanceEvent,
|
|
27
30
|
TelemetryDataTag,
|
|
31
|
+
createChildLogger,
|
|
28
32
|
tagCodeArtifacts,
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
import { assert, unreachableCase } from "@fluidframework/core-utils";
|
|
32
|
-
import { mergeStats } from "@fluidframework/runtime-utils";
|
|
33
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
34
|
+
|
|
33
35
|
import {
|
|
34
36
|
EscapedPath,
|
|
35
37
|
ICreateChildDetails,
|
|
36
38
|
IRefreshSummaryResult,
|
|
37
39
|
IStartSummaryResult,
|
|
38
40
|
ISummarizerNodeRootContract,
|
|
39
|
-
parseSummaryForSubtrees,
|
|
40
41
|
SummaryNode,
|
|
41
42
|
ValidateSummaryResult,
|
|
43
|
+
parseSummaryForSubtrees,
|
|
42
44
|
} from "./summarizerNodeUtils.js";
|
|
43
45
|
|
|
44
46
|
export interface IRootSummarizerNode extends ISummarizerNode, ISummarizerNodeRootContract {}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryLoggerExt, TelemetryDataTag } from "@fluidframework/telemetry-utils";
|
|
7
6
|
import { ISnapshotTree, SummaryObject } from "@fluidframework/protocol-definitions";
|
|
8
|
-
import { channelsTreeName } from "@fluidframework/runtime-definitions";
|
|
7
|
+
import { channelsTreeName } from "@fluidframework/runtime-definitions/internal";
|
|
8
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
9
|
+
import { TelemetryDataTag } from "@fluidframework/telemetry-utils/internal";
|
|
9
10
|
|
|
10
11
|
export interface IRefreshSummaryResult {
|
|
11
12
|
/** Tells whether this summary is tracked by this client. */
|
|
@@ -3,23 +3,31 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { assert, LazyPromise } from "@fluidframework/core-utils";
|
|
6
|
+
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
|
+
import { assert, LazyPromise } from "@fluidframework/core-utils/internal";
|
|
8
8
|
import {
|
|
9
|
-
|
|
9
|
+
IExperimentalIncrementalSummaryContext,
|
|
10
10
|
IGarbageCollectionData,
|
|
11
|
+
ITelemetryContext,
|
|
12
|
+
} from "@fluidframework/runtime-definitions";
|
|
13
|
+
import {
|
|
14
|
+
CreateChildSummarizerNodeParam,
|
|
11
15
|
IGarbageCollectionDetailsBase,
|
|
12
16
|
ISummarizeInternalResult,
|
|
13
17
|
ISummarizeResult,
|
|
14
18
|
ISummarizerNodeConfigWithGC,
|
|
15
19
|
ISummarizerNodeWithGC,
|
|
16
20
|
SummarizeInternalFn,
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
21
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
22
|
+
import { unpackChildNodesUsedRoutes } from "@fluidframework/runtime-utils/internal";
|
|
23
|
+
import {
|
|
24
|
+
LoggingError,
|
|
25
|
+
TelemetryDataTag,
|
|
26
|
+
tagCodeArtifacts,
|
|
27
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
28
|
+
|
|
22
29
|
import { cloneGCData, unpackChildNodesGCDetails } from "../../gc/index.js";
|
|
30
|
+
|
|
23
31
|
import { SummarizerNode } from "./summarizerNode.js";
|
|
24
32
|
import {
|
|
25
33
|
EscapedPath,
|
|
@@ -3,16 +3,20 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
7
|
+
import { ContainerWarning } from "@fluidframework/container-definitions/internal";
|
|
6
8
|
import { IEvent, IEventProvider, ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
7
|
-
import { ITelemetryLoggerExt, ITelemetryLoggerPropertyBag } from "@fluidframework/telemetry-utils";
|
|
8
|
-
import { ContainerWarning, IDeltaManager } from "@fluidframework/container-definitions";
|
|
9
9
|
import {
|
|
10
|
+
IDocumentMessage,
|
|
10
11
|
ISequencedDocumentMessage,
|
|
11
12
|
ISummaryTree,
|
|
12
|
-
IDocumentMessage,
|
|
13
13
|
} from "@fluidframework/protocol-definitions";
|
|
14
14
|
import { ISummaryStats } from "@fluidframework/runtime-definitions";
|
|
15
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
16
|
+
import { ITelemetryLoggerPropertyBag } from "@fluidframework/telemetry-utils/internal";
|
|
17
|
+
|
|
15
18
|
import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
|
|
19
|
+
|
|
16
20
|
import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection.js";
|
|
17
21
|
import { SummarizeReason } from "./summaryGenerator.js";
|
|
18
22
|
|
|
@@ -3,11 +3,10 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IDisposable, IEvent } from "@fluidframework/core-interfaces";
|
|
7
|
-
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
8
|
-
import { Deferred, assert } from "@fluidframework/core-utils";
|
|
9
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
10
7
|
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
8
|
+
import { IDisposable, IEvent } from "@fluidframework/core-interfaces";
|
|
9
|
+
import { assert, Deferred } from "@fluidframework/core-utils/internal";
|
|
11
10
|
import {
|
|
12
11
|
IDocumentMessage,
|
|
13
12
|
ISequencedDocumentMessage,
|
|
@@ -16,6 +15,7 @@ import {
|
|
|
16
15
|
ISummaryNack,
|
|
17
16
|
MessageType,
|
|
18
17
|
} from "@fluidframework/protocol-definitions";
|
|
18
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Interface for summary op messages with typed contents.
|
|
@@ -3,24 +3,24 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/core-utils";
|
|
7
|
-
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
6
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { IDocumentStorageService } from "@fluidframework/driver-definitions/internal";
|
|
8
8
|
import {
|
|
9
|
-
readAndParse,
|
|
10
9
|
blobHeadersBlobName as blobNameForBlobHeaders,
|
|
11
|
-
|
|
10
|
+
readAndParse,
|
|
11
|
+
} from "@fluidframework/driver-utils/internal";
|
|
12
12
|
import {
|
|
13
13
|
ISequencedDocumentMessage,
|
|
14
14
|
ISnapshotTree,
|
|
15
15
|
SummaryType,
|
|
16
16
|
} from "@fluidframework/protocol-definitions";
|
|
17
|
-
import {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
ISummaryTreeWithStats,
|
|
21
|
-
} from "@fluidframework/runtime-definitions";
|
|
17
|
+
import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
|
|
18
|
+
import { channelsTreeName, gcTreeKey } from "@fluidframework/runtime-definitions/internal";
|
|
19
|
+
|
|
22
20
|
import { IGCMetadata } from "../gc/index.js";
|
|
23
21
|
|
|
22
|
+
import { IDocumentSchema } from "./documentSchema.js";
|
|
23
|
+
|
|
24
24
|
type OmitAttributesVersions<T> = Omit<T, "snapshotFormatVersion" | "summaryFormatVersion">;
|
|
25
25
|
interface IFluidDataStoreAttributes0 {
|
|
26
26
|
readonly snapshotFormatVersion?: undefined;
|
|
@@ -85,35 +85,23 @@ export function hasIsolatedChannels(attributes: ReadFluidDataStoreAttributes): b
|
|
|
85
85
|
return !!attributes.summaryFormatVersion && !attributes.disableIsolatedChannels;
|
|
86
86
|
}
|
|
87
87
|
|
|
88
|
-
/**
|
|
89
|
-
* ID Compressor mode.
|
|
90
|
-
* "on" - compressor is On. It's loaded as part of container load. This mode is sticky - once on, compressor is On for all
|
|
91
|
-
* sessions for a given document. This results in IContainerRuntime.idCompressor to be always available.
|
|
92
|
-
* "delayed" - ID compressor bundle is loaded only on establishing of first delta connection, i.e. it does not impact boot of cotnainer.
|
|
93
|
-
* In such mode IContainerRuntime.idCompressor is not made available (unless previous sessions of same document had it "On").
|
|
94
|
-
* The only thing that is available is IContainerRuntime.generateDocumentUniqueId() that provides opportunistically short IDs.
|
|
95
|
-
* "off" - ID compressor is not laoded (unless it is "on" due to previous session for same document having it "on").
|
|
96
|
-
* While IContainerRuntime.generateDocumentUniqueId() is available, it will produce long IDs that are do not compress well.
|
|
97
|
-
*
|
|
98
|
-
* @alpha
|
|
99
|
-
*/
|
|
100
|
-
export type IdCompressorMode = "on" | "delayed" | "off";
|
|
101
|
-
|
|
102
88
|
/**
|
|
103
89
|
* @alpha
|
|
104
90
|
*/
|
|
105
91
|
export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGCMetadata {
|
|
106
92
|
readonly summaryFormatVersion: 1;
|
|
93
|
+
/** @deprecated - used by old (prior to 2.0 RC3) runtimes */
|
|
94
|
+
readonly message?: ISummaryMetadataMessage;
|
|
107
95
|
/** The last message processed at the time of summary. Only primitive property types are added to the summary. */
|
|
108
|
-
readonly
|
|
96
|
+
readonly lastMessage?: ISummaryMetadataMessage;
|
|
109
97
|
/** True if channels are not isolated in .channels subtrees, otherwise isolated. */
|
|
110
98
|
readonly disableIsolatedChannels?: true;
|
|
111
99
|
/** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
|
|
112
100
|
readonly summaryNumber?: number;
|
|
113
101
|
/** GUID to identify a document in telemetry */
|
|
114
102
|
readonly telemetryDocumentId?: string;
|
|
115
|
-
|
|
116
|
-
readonly
|
|
103
|
+
|
|
104
|
+
readonly documentSchema?: IDocumentSchema;
|
|
117
105
|
}
|
|
118
106
|
|
|
119
107
|
/**
|
|
@@ -3,36 +3,33 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
ITelemetryLoggerExt,
|
|
8
|
-
PerformanceEvent,
|
|
9
|
-
LoggingError,
|
|
10
|
-
} from "@fluidframework/telemetry-utils";
|
|
11
6
|
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
12
|
-
|
|
13
7
|
import {
|
|
14
8
|
assert,
|
|
15
9
|
Deferred,
|
|
16
10
|
IPromiseTimer,
|
|
17
11
|
IPromiseTimerResult,
|
|
18
12
|
Timer,
|
|
19
|
-
} from "@fluidframework/core-utils";
|
|
20
|
-
import { MessageType } from "@fluidframework/protocol-definitions";
|
|
21
|
-
import { getRetryDelaySecondsFromError } from "@fluidframework/driver-utils";
|
|
13
|
+
} from "@fluidframework/core-utils/internal";
|
|
22
14
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
15
|
+
import { getRetryDelaySecondsFromError } from "@fluidframework/driver-utils/internal";
|
|
16
|
+
import { MessageType } from "@fluidframework/protocol-definitions";
|
|
17
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
18
|
+
import { LoggingError, PerformanceEvent } from "@fluidframework/telemetry-utils/internal";
|
|
19
|
+
|
|
23
20
|
import {
|
|
24
21
|
IAckSummaryResult,
|
|
25
|
-
INackSummaryResult,
|
|
26
22
|
IBroadcastSummaryResult,
|
|
27
|
-
|
|
28
|
-
|
|
23
|
+
INackSummaryResult,
|
|
24
|
+
IRefreshSummaryAckOptions,
|
|
29
25
|
ISubmitSummaryOptions,
|
|
26
|
+
ISummarizeHeuristicData,
|
|
27
|
+
ISummarizeResults,
|
|
28
|
+
ISummaryCancellationToken,
|
|
29
|
+
SubmitSummaryFailureData,
|
|
30
30
|
SubmitSummaryResult,
|
|
31
31
|
SummarizeResultPart,
|
|
32
|
-
ISummaryCancellationToken,
|
|
33
32
|
SummaryGeneratorTelemetry,
|
|
34
|
-
SubmitSummaryFailureData,
|
|
35
|
-
IRefreshSummaryAckOptions,
|
|
36
33
|
} from "./summarizerTypes.js";
|
|
37
34
|
import { IClientSummaryWatcher } from "./summaryCollection.js";
|
|
38
35
|
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
+
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
6
7
|
import {
|
|
7
8
|
IDisposable,
|
|
8
9
|
IEvent,
|
|
9
10
|
IEventProvider,
|
|
10
11
|
ITelemetryBaseLogger,
|
|
11
12
|
} from "@fluidframework/core-interfaces";
|
|
12
|
-
import { assert } from "@fluidframework/core-utils";
|
|
13
|
-
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
14
|
-
import {
|
|
15
|
-
createChildLogger,
|
|
16
|
-
ITelemetryLoggerExt,
|
|
17
|
-
PerformanceEvent,
|
|
18
|
-
} from "@fluidframework/telemetry-utils";
|
|
13
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
19
14
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
15
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
16
|
+
import { PerformanceEvent, createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
17
|
+
|
|
20
18
|
import { IThrottler } from "../throttler.js";
|
|
19
|
+
|
|
20
|
+
import { Summarizer } from "./summarizer.js";
|
|
21
21
|
import { ISummarizerClientElection } from "./summarizerClientElection.js";
|
|
22
22
|
import {
|
|
23
23
|
EnqueueSummarizeResult,
|
|
@@ -30,7 +30,6 @@ import {
|
|
|
30
30
|
SummarizerStopReason,
|
|
31
31
|
} from "./summarizerTypes.js";
|
|
32
32
|
import { SummaryCollection } from "./summaryCollection.js";
|
|
33
|
-
import { Summarizer } from "./summarizer.js";
|
|
34
33
|
|
|
35
34
|
const defaultInitialDelayMs = 5000;
|
|
36
35
|
const defaultOpsToBypassInitialDelay = 4000;
|
|
@@ -168,6 +167,10 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
|
|
|
168
167
|
state === SummaryManagerState.Starting || state === SummaryManagerState.Running;
|
|
169
168
|
|
|
170
169
|
private getShouldSummarizeState(): ShouldSummarizeState {
|
|
170
|
+
if (this.disposed) {
|
|
171
|
+
return { shouldSummarize: false, stopReason: "parentNotConnected" };
|
|
172
|
+
}
|
|
173
|
+
|
|
171
174
|
// Note that if we're in the Running state, the electedClient may be a summarizer client, so we can't
|
|
172
175
|
// enforce connectedState.clientId === clientElection.electedClientId. But once we're Running, we should
|
|
173
176
|
// only transition to Stopping when the electedParentId changes. Stopping the summarizer without
|
|
@@ -190,11 +193,7 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
|
|
|
190
193
|
return { shouldSummarize: false, stopReason: "parentNotConnected" };
|
|
191
194
|
}
|
|
192
195
|
|
|
193
|
-
|
|
194
|
-
assert(false, 0x260 /* "Disposed should mean disconnected!" */);
|
|
195
|
-
} else {
|
|
196
|
-
return { shouldSummarize: true };
|
|
197
|
-
}
|
|
196
|
+
return { shouldSummarize: true };
|
|
198
197
|
}
|
|
199
198
|
|
|
200
199
|
private readonly refreshSummarizer = () => {
|
|
@@ -238,6 +237,10 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
|
|
|
238
237
|
|
|
239
238
|
this.delayBeforeCreatingSummarizer()
|
|
240
239
|
.then(async (startWithInitialDelay: boolean) => {
|
|
240
|
+
if (this.disposed) {
|
|
241
|
+
return "early exit (disposed)";
|
|
242
|
+
}
|
|
243
|
+
|
|
241
244
|
// Re-validate that it need to be running. Due to asynchrony, it may be not the case anymore
|
|
242
245
|
// but only if creation was delayed. If it was not, then we want to ensure we always create
|
|
243
246
|
// a summarizer to kick off lastSummary. Without that, we would not be able to summarize and get
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { EventEmitter } from "@fluid-internal/client-utils";
|
|
6
|
-
import { MockLogger } from "@fluidframework/telemetry-utils";
|
|
7
|
-
import { BatchTracker } from "../batchTracker.js";
|
|
8
|
-
describe("Runtime", () => {
|
|
9
|
-
const emitter = new EventEmitter();
|
|
10
|
-
let mockLogger;
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
mockLogger = new MockLogger();
|
|
13
|
-
});
|
|
14
|
-
it("Track only batches with op count over a threshold", () => {
|
|
15
|
-
let ticks = 0;
|
|
16
|
-
new BatchTracker(emitter, mockLogger, 5, 100, () => ticks);
|
|
17
|
-
emitter.emit("batchBegin", batchMessage(2));
|
|
18
|
-
emitter.emit("batchEnd", /* error */ undefined, batchMessage(5));
|
|
19
|
-
emitter.emit("batchBegin", batchMessage(1));
|
|
20
|
-
ticks += 10;
|
|
21
|
-
emitter.emit("batchEnd", /* error */ undefined, batchMessage(5));
|
|
22
|
-
emitter.emit("batchBegin", batchMessage(1));
|
|
23
|
-
ticks += 20;
|
|
24
|
-
emitter.emit("batchEnd", new Error(), batchMessage(8));
|
|
25
|
-
mockLogger.assertMatch([
|
|
26
|
-
{
|
|
27
|
-
eventName: "Batching:LengthTooBig",
|
|
28
|
-
length: 5,
|
|
29
|
-
threshold: 5,
|
|
30
|
-
batchEndSequenceNumber: 5,
|
|
31
|
-
duration: 10,
|
|
32
|
-
batchError: false,
|
|
33
|
-
category: "performance",
|
|
34
|
-
},
|
|
35
|
-
{
|
|
36
|
-
eventName: "Batching:LengthTooBig",
|
|
37
|
-
length: 8,
|
|
38
|
-
threshold: 5,
|
|
39
|
-
batchEndSequenceNumber: 8,
|
|
40
|
-
duration: 20,
|
|
41
|
-
batchError: true,
|
|
42
|
-
category: "performance",
|
|
43
|
-
},
|
|
44
|
-
]);
|
|
45
|
-
});
|
|
46
|
-
it("Track batch sizes based on rate", async () => {
|
|
47
|
-
let ticks = 0;
|
|
48
|
-
new BatchTracker(emitter, mockLogger, 100, 3, () => ticks);
|
|
49
|
-
for (let i = 1; i <= 10; i++) {
|
|
50
|
-
emitter.emit("batchBegin", batchMessage(1));
|
|
51
|
-
ticks += i;
|
|
52
|
-
emitter.emit("batchEnd", /* error */ undefined, batchMessage(i));
|
|
53
|
-
}
|
|
54
|
-
mockLogger.assertMatch([
|
|
55
|
-
{
|
|
56
|
-
eventName: "Batching:Length",
|
|
57
|
-
length: 3,
|
|
58
|
-
samplingRate: 3,
|
|
59
|
-
batchEndSequenceNumber: 3,
|
|
60
|
-
duration: 3,
|
|
61
|
-
category: "performance",
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
eventName: "Batching:Length",
|
|
65
|
-
length: 6,
|
|
66
|
-
samplingRate: 3,
|
|
67
|
-
batchEndSequenceNumber: 6,
|
|
68
|
-
duration: 6,
|
|
69
|
-
category: "performance",
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
eventName: "Batching:Length",
|
|
73
|
-
length: 9,
|
|
74
|
-
samplingRate: 3,
|
|
75
|
-
batchEndSequenceNumber: 9,
|
|
76
|
-
duration: 9,
|
|
77
|
-
category: "performance",
|
|
78
|
-
},
|
|
79
|
-
]);
|
|
80
|
-
});
|
|
81
|
-
const batchMessage = (sequenceNumber) =>
|
|
82
|
-
// eslint-disable-next-line @typescript-eslint/consistent-type-assertions
|
|
83
|
-
({
|
|
84
|
-
sequenceNumber,
|
|
85
|
-
referenceSequenceNumber: sequenceNumber,
|
|
86
|
-
});
|
|
87
|
-
});
|
|
88
|
-
//# sourceMappingURL=batchTracker.spec.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"batchTracker.spec.js","sourceRoot":"","sources":["../../src/test/batchTracker.spec.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { EventEmitter } from \"@fluid-internal/client-utils\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { MockLogger } from \"@fluidframework/telemetry-utils\";\nimport { BatchTracker } from \"../batchTracker.js\";\n\ndescribe(\"Runtime\", () => {\n\tconst emitter = new EventEmitter();\n\tlet mockLogger: MockLogger;\n\n\tbeforeEach(() => {\n\t\tmockLogger = new MockLogger();\n\t});\n\n\tit(\"Track only batches with op count over a threshold\", () => {\n\t\tlet ticks = 0;\n\t\tnew BatchTracker(emitter, mockLogger, 5, 100, () => ticks);\n\n\t\temitter.emit(\"batchBegin\", batchMessage(2));\n\t\temitter.emit(\"batchEnd\", /* error */ undefined, batchMessage(5));\n\n\t\temitter.emit(\"batchBegin\", batchMessage(1));\n\t\tticks += 10;\n\t\temitter.emit(\"batchEnd\", /* error */ undefined, batchMessage(5));\n\n\t\temitter.emit(\"batchBegin\", batchMessage(1));\n\t\tticks += 20;\n\t\temitter.emit(\"batchEnd\", new Error(), batchMessage(8));\n\n\t\tmockLogger.assertMatch([\n\t\t\t{\n\t\t\t\teventName: \"Batching:LengthTooBig\",\n\t\t\t\tlength: 5,\n\t\t\t\tthreshold: 5,\n\t\t\t\tbatchEndSequenceNumber: 5,\n\t\t\t\tduration: 10,\n\t\t\t\tbatchError: false,\n\t\t\t\tcategory: \"performance\",\n\t\t\t},\n\t\t\t{\n\t\t\t\teventName: \"Batching:LengthTooBig\",\n\t\t\t\tlength: 8,\n\t\t\t\tthreshold: 5,\n\t\t\t\tbatchEndSequenceNumber: 8,\n\t\t\t\tduration: 20,\n\t\t\t\tbatchError: true,\n\t\t\t\tcategory: \"performance\",\n\t\t\t},\n\t\t]);\n\t});\n\n\tit(\"Track batch sizes based on rate\", async () => {\n\t\tlet ticks = 0;\n\t\tnew BatchTracker(emitter, mockLogger, 100, 3, () => ticks);\n\n\t\tfor (let i = 1; i <= 10; i++) {\n\t\t\temitter.emit(\"batchBegin\", batchMessage(1));\n\t\t\tticks += i;\n\t\t\temitter.emit(\"batchEnd\", /* error */ undefined, batchMessage(i));\n\t\t}\n\n\t\tmockLogger.assertMatch([\n\t\t\t{\n\t\t\t\teventName: \"Batching:Length\",\n\t\t\t\tlength: 3,\n\t\t\t\tsamplingRate: 3,\n\t\t\t\tbatchEndSequenceNumber: 3,\n\t\t\t\tduration: 3,\n\t\t\t\tcategory: \"performance\",\n\t\t\t},\n\t\t\t{\n\t\t\t\teventName: \"Batching:Length\",\n\t\t\t\tlength: 6,\n\t\t\t\tsamplingRate: 3,\n\t\t\t\tbatchEndSequenceNumber: 6,\n\t\t\t\tduration: 6,\n\t\t\t\tcategory: \"performance\",\n\t\t\t},\n\t\t\t{\n\t\t\t\teventName: \"Batching:Length\",\n\t\t\t\tlength: 9,\n\t\t\t\tsamplingRate: 3,\n\t\t\t\tbatchEndSequenceNumber: 9,\n\t\t\t\tduration: 9,\n\t\t\t\tcategory: \"performance\",\n\t\t\t},\n\t\t]);\n\t});\n\n\tconst batchMessage = (sequenceNumber: number): ISequencedDocumentMessage =>\n\t\t// eslint-disable-next-line @typescript-eslint/consistent-type-assertions\n\t\t({\n\t\t\tsequenceNumber,\n\t\t\treferenceSequenceNumber: sequenceNumber,\n\t\t}) as ISequencedDocumentMessage;\n});\n"]}
|