@fluidframework/container-runtime 2.0.0-dev-rc.3.0.0.250606 → 2.0.0-dev-rc.3.0.0.254274
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 +35 -34
- 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 +31 -23
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +81 -99
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +4 -2
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +75 -72
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +1 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +16 -16
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +64 -36
- package/dist/container-runtime-beta.d.ts +28 -28
- package/dist/container-runtime-public.d.ts +28 -28
- package/dist/container-runtime-untrimmed.d.ts +68 -39
- 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 +12 -8
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +197 -162
- 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 +72 -62
- 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.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 +2 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +20 -20
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts +1 -1
- 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 +3 -2
- 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 +1 -1
- 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/messageTypes.d.ts +2 -2
- package/dist/messageTypes.d.ts.map +1 -1
- 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 +1 -1
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +5 -5
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +12 -12
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +7 -7
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +1 -1
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +17 -17
- 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 +13 -13
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/pendingStateManager.js +18 -18
- package/dist/pendingStateManager.js.map +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 +37 -6
- package/dist/summary/documentSchema.d.ts.map +1 -1
- package/dist/summary/documentSchema.js +58 -21
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +7 -7
- package/dist/summary/orderedClientElection.js.map +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 +1 -1
- 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 +2 -1
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +12 -12
- 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.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 +2 -1
- 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 +4 -2
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.js +7 -7
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +1 -1
- 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 +3 -2
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +16 -16
- package/dist/summary/summaryGenerator.js.map +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.map +1 -1
- package/lib/batchTracker.js +2 -2
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +31 -23
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +46 -64
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +4 -2
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +10 -7
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +1 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +2 -2
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/container-runtime-alpha.d.ts +64 -36
- package/lib/container-runtime-beta.d.ts +28 -28
- package/lib/container-runtime-public.d.ts +28 -28
- package/lib/container-runtime-untrimmed.d.ts +68 -39
- 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 +12 -8
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +76 -39
- 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 +18 -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.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 +2 -1
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +4 -4
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts +1 -1
- 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 +3 -2
- 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 +1 -1
- 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 +3 -1
- 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/messageTypes.d.ts +2 -2
- package/lib/messageTypes.d.ts.map +1 -1
- 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 +1 -1
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +2 -2
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +2 -2
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +2 -2
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +1 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +2 -2
- 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 +2 -2
- package/lib/opLifecycle/outbox.js.map +1 -1
- 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.map +1 -1
- package/lib/pendingStateManager.js +2 -2
- package/lib/pendingStateManager.js.map +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 +37 -6
- package/lib/summary/documentSchema.d.ts.map +1 -1
- package/lib/summary/documentSchema.js +48 -11
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +2 -2
- package/lib/summary/orderedClientElection.js.map +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 +1 -1
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +2 -2
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +2 -1
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +2 -2
- 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.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 +2 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +4 -4
- 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 +4 -2
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.js +1 -1
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +1 -1
- 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 +3 -2
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +3 -3
- package/lib/summary/summaryGenerator.js.map +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 +25 -37
- package/src/batchTracker.ts +3 -2
- package/src/blobManager.ts +87 -56
- package/src/channelCollection.ts +19 -12
- package/src/connectionTelemetry.ts +4 -4
- package/src/containerHandleContext.ts +2 -1
- package/src/containerRuntime.ts +115 -70
- package/src/dataStore.ts +5 -3
- package/src/dataStoreContext.ts +30 -15
- 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 +8 -7
- package/src/gc/gcConfigs.ts +5 -8
- package/src/gc/gcDefinitions.ts +4 -4
- package/src/gc/gcHelpers.ts +21 -4
- package/src/gc/gcSummaryStateTracker.ts +5 -3
- package/src/gc/gcTelemetry.ts +7 -1
- package/src/gc/gcUnreferencedStateTracker.ts +3 -2
- package/src/gc/index.ts +1 -0
- package/src/messageTypes.ts +3 -2
- package/src/opLifecycle/batchManager.ts +1 -0
- package/src/opLifecycle/definitions.ts +2 -1
- package/src/opLifecycle/opCompressor.ts +4 -2
- package/src/opLifecycle/opDecompressor.ts +3 -2
- package/src/opLifecycle/opGroupingManager.ts +3 -2
- package/src/opLifecycle/opSplitter.ts +5 -3
- package/src/opLifecycle/outbox.ts +6 -3
- package/src/opLifecycle/remoteMessageProcessor.ts +2 -0
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +4 -4
- package/src/scheduleManager.ts +5 -4
- package/src/storageServiceWithAttachBlobs.ts +2 -2
- package/src/summary/documentSchema.ts +71 -12
- package/src/summary/orderedClientElection.ts +4 -6
- package/src/summary/runWhileConnectedCoordinator.ts +2 -1
- package/src/summary/runningSummarizer.ts +4 -2
- package/src/summary/summarizer.ts +5 -3
- package/src/summary/summarizerClientElection.ts +1 -0
- package/src/summary/summarizerHeuristics.ts +3 -1
- package/src/summary/summarizerNode/summarizerNode.ts +10 -8
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +3 -2
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +14 -6
- package/src/summary/summarizerTypes.ts +6 -2
- package/src/summary/summaryCollection.ts +1 -1
- package/src/summary/summaryFormat.ts +7 -8
- package/src/summary/summaryGenerator.ts +5 -8
- package/src/summary/summaryManager.ts +14 -11
- 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 -1750
- 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/documentSchema.spec.js +0 -282
- package/lib/test/documentSchema.spec.js.map +0 -1
- package/lib/test/fuzz/fuzzUtils.js +0 -70
- package/lib/test/fuzz/fuzzUtils.js.map +0 -1
- package/lib/test/fuzz/summarizer.fuzz.spec.js +0 -33
- package/lib/test/fuzz/summarizer.fuzz.spec.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzMocks.js +0 -180
- package/lib/test/fuzz/summarizerFuzzMocks.js.map +0 -1
- package/lib/test/fuzz/summarizerFuzzSuite.js +0 -109
- 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 -202
- 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 -73
- package/lib/test/opLifecycle/opCompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opDecompressor.spec.js +0 -223
- package/lib/test/opLifecycle/opDecompressor.spec.js.map +0 -1
- package/lib/test/opLifecycle/opSplitter.spec.js +0 -287
- package/lib/test/opLifecycle/opSplitter.spec.js.map +0 -1
- package/lib/test/opLifecycle/outbox.spec.js +0 -783
- package/lib/test/opLifecycle/outbox.spec.js.map +0 -1
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +0 -220
- 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 -182
- package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +0 -1
package/src/gc/gcHelpers.ts
CHANGED
|
@@ -3,16 +3,25 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert } from "@fluidframework/core-utils";
|
|
6
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import { ISnapshotTree } from "@fluidframework/protocol-definitions";
|
|
8
|
+
import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
|
|
8
9
|
import {
|
|
9
|
-
IGarbageCollectionData,
|
|
10
10
|
IGarbageCollectionDetailsBase,
|
|
11
11
|
gcBlobPrefix,
|
|
12
12
|
gcDeletedBlobKey,
|
|
13
13
|
gcTombstoneBlobKey,
|
|
14
|
-
} from "@fluidframework/runtime-definitions";
|
|
15
|
-
import {
|
|
14
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
15
|
+
import type { IConfigProvider } from "@fluidframework/telemetry-utils/internal";
|
|
16
|
+
|
|
17
|
+
import {
|
|
18
|
+
GCFeatureMatrix,
|
|
19
|
+
GCVersion,
|
|
20
|
+
IGCMetadata,
|
|
21
|
+
gcVersionUpgradeToV4Key,
|
|
22
|
+
nextGCVersion,
|
|
23
|
+
stableGCVersion,
|
|
24
|
+
} from "./gcDefinitions.js";
|
|
16
25
|
import {
|
|
17
26
|
IGarbageCollectionNodeData,
|
|
18
27
|
IGarbageCollectionSnapshotData,
|
|
@@ -27,6 +36,14 @@ export function getGCVersion(metadata?: IGCMetadata): GCVersion {
|
|
|
27
36
|
return metadata.gcFeature ?? 0;
|
|
28
37
|
}
|
|
29
38
|
|
|
39
|
+
/** Indicates what GC version is in effect for new GC data being written in this session */
|
|
40
|
+
export function getGCVersionInEffect(configProvider: IConfigProvider): number {
|
|
41
|
+
// If version upgrade is not enabled, fall back to the stable GC version.
|
|
42
|
+
return configProvider.getBoolean(gcVersionUpgradeToV4Key) === true
|
|
43
|
+
? nextGCVersion
|
|
44
|
+
: stableGCVersion;
|
|
45
|
+
}
|
|
46
|
+
|
|
30
47
|
/**
|
|
31
48
|
* Indicates whether Sweep is allowed for this document based on the persisted GC Feature Matrix and current gcGeneration.
|
|
32
49
|
* This applies to the entire Sweep Phase the same - both Tombstone Enforcement (i.e. should loading a Tombstone fail?) and Deletion.
|
|
@@ -4,16 +4,18 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { SummaryType } from "@fluidframework/protocol-definitions";
|
|
7
|
+
import { ISummaryTreeWithStats } from "@fluidframework/runtime-definitions";
|
|
7
8
|
import {
|
|
8
9
|
ISummarizeResult,
|
|
9
|
-
ISummaryTreeWithStats,
|
|
10
10
|
gcBlobPrefix,
|
|
11
11
|
gcDeletedBlobKey,
|
|
12
12
|
gcTombstoneBlobKey,
|
|
13
13
|
gcTreeKey,
|
|
14
|
-
} from "@fluidframework/runtime-definitions";
|
|
15
|
-
import { SummaryTreeBuilder, mergeStats } from "@fluidframework/runtime-utils";
|
|
14
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
15
|
+
import { SummaryTreeBuilder, mergeStats } from "@fluidframework/runtime-utils/internal";
|
|
16
|
+
|
|
16
17
|
import { IRefreshSummaryResult } from "../summary/index.js";
|
|
18
|
+
|
|
17
19
|
import { GCVersion, IGCStats, IGarbageCollectorConfigs } from "./gcDefinitions.js";
|
|
18
20
|
import { generateSortedGCState } from "./gcHelpers.js";
|
|
19
21
|
import { IGarbageCollectionSnapshotData, IGarbageCollectionState } from "./gcSummaryDefinitions.js";
|
package/src/gc/gcTelemetry.ts
CHANGED
|
@@ -7,12 +7,16 @@ import { IGarbageCollectionData } from "@fluidframework/runtime-definitions";
|
|
|
7
7
|
import {
|
|
8
8
|
type ITelemetryGenericEventExt,
|
|
9
9
|
ITelemetryLoggerExt,
|
|
10
|
+
} from "@fluidframework/telemetry-utils";
|
|
11
|
+
import {
|
|
10
12
|
MonitoringContext,
|
|
11
13
|
generateStack,
|
|
12
14
|
tagCodeArtifacts,
|
|
13
|
-
} from "@fluidframework/telemetry-utils";
|
|
15
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
16
|
+
|
|
14
17
|
import { RuntimeHeaderData } from "../containerRuntime.js";
|
|
15
18
|
import { ICreateContainerMetadata } from "../summary/index.js";
|
|
19
|
+
|
|
16
20
|
import {
|
|
17
21
|
GCFeatureMatrix,
|
|
18
22
|
GCNodeType,
|
|
@@ -23,6 +27,7 @@ import {
|
|
|
23
27
|
throwOnTombstoneLoadOverrideKey,
|
|
24
28
|
throwOnTombstoneUsageKey,
|
|
25
29
|
} from "./gcDefinitions.js";
|
|
30
|
+
import { getGCVersionInEffect } from "./gcHelpers.js";
|
|
26
31
|
import { UnreferencedStateTracker } from "./gcUnreferencedStateTracker.js";
|
|
27
32
|
|
|
28
33
|
type NodeUsageType = "Changed" | "Loaded" | "Revived";
|
|
@@ -429,6 +434,7 @@ export function sendGCUnexpectedUsageEvent(
|
|
|
429
434
|
event.sweepFlags = JSON.stringify({
|
|
430
435
|
EnableSweepFlag: mc.config.getBoolean(runSweepKey),
|
|
431
436
|
});
|
|
437
|
+
event.gcVersion = getGCVersionInEffect(mc.config);
|
|
432
438
|
|
|
433
439
|
mc.logger.sendTelemetryEvent(event, error);
|
|
434
440
|
}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { assert, Timer } from "@fluidframework/core-utils";
|
|
7
|
-
import { validatePrecondition } from "@fluidframework/telemetry-utils";
|
|
6
|
+
import { assert, Timer } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { validatePrecondition } from "@fluidframework/telemetry-utils/internal";
|
|
8
|
+
|
|
8
9
|
import { UnreferencedState } from "./gcDefinitions.js";
|
|
9
10
|
|
|
10
11
|
/** A wrapper around common-utils Timer that requires the timeout when calling start/restart */
|
package/src/gc/index.ts
CHANGED
package/src/messageTypes.ts
CHANGED
|
@@ -3,13 +3,14 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import type { IdCreationRange } from "@fluidframework/id-compressor";
|
|
6
|
+
import type { IdCreationRange } from "@fluidframework/id-compressor/internal";
|
|
7
7
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
8
8
|
import {
|
|
9
9
|
IAttachMessage,
|
|
10
10
|
IEnvelope,
|
|
11
11
|
InboundAttachMessage,
|
|
12
|
-
} from "@fluidframework/runtime-definitions";
|
|
12
|
+
} from "@fluidframework/runtime-definitions/internal";
|
|
13
|
+
|
|
13
14
|
import { IDataStoreAliasMessage } from "./dataStore.js";
|
|
14
15
|
import { GarbageCollectionMessage } from "./gc/index.js";
|
|
15
16
|
import { IChunkedOp } from "./opLifecycle/index.js";
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IBatchMessage } from "@fluidframework/container-definitions";
|
|
6
|
+
import { IBatchMessage } from "@fluidframework/container-definitions/internal";
|
|
7
|
+
|
|
7
8
|
import { CompressionAlgorithms } from "../containerRuntime.js";
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -5,10 +5,12 @@
|
|
|
5
5
|
|
|
6
6
|
import { IsoBuffer } from "@fluid-internal/client-utils";
|
|
7
7
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { assert } from "@fluidframework/core-utils";
|
|
9
|
-
import { UsageError, createChildLogger } from "@fluidframework/telemetry-utils";
|
|
8
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
9
|
+
import { UsageError, createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
10
10
|
import { compress } from "lz4js";
|
|
11
|
+
|
|
11
12
|
import { CompressionAlgorithms } from "../containerRuntime.js";
|
|
13
|
+
|
|
12
14
|
import { estimateSocketSize } from "./batchManager.js";
|
|
13
15
|
import { BatchMessage, IBatch } from "./definitions.js";
|
|
14
16
|
|
|
@@ -5,10 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
import { IsoBuffer, Uint8ArrayToString } from "@fluid-internal/client-utils";
|
|
7
7
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { assert } from "@fluidframework/core-utils";
|
|
8
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
9
9
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
10
|
-
import { createChildLogger } from "@fluidframework/telemetry-utils";
|
|
10
|
+
import { createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
11
11
|
import { decompress } from "lz4js";
|
|
12
|
+
|
|
12
13
|
import { CompressionAlgorithms } from "../containerRuntime.js";
|
|
13
14
|
import { IBatchMetadata } from "../metadata.js";
|
|
14
15
|
|
|
@@ -4,9 +4,10 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
|
-
import { assert } from "@fluidframework/core-utils";
|
|
7
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
8
8
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
9
|
-
import { createChildLogger } from "@fluidframework/telemetry-utils";
|
|
9
|
+
import { createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
10
|
+
|
|
10
11
|
import { IBatch } from "./definitions.js";
|
|
11
12
|
|
|
12
13
|
/**
|
|
@@ -3,16 +3,18 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IBatchMessage } from "@fluidframework/container-definitions";
|
|
6
|
+
import { IBatchMessage } from "@fluidframework/container-definitions/internal";
|
|
7
7
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { assert } from "@fluidframework/core-utils";
|
|
8
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
9
9
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
10
10
|
import {
|
|
11
11
|
DataCorruptionError,
|
|
12
12
|
createChildLogger,
|
|
13
13
|
extractSafePropertiesFromMessage,
|
|
14
|
-
} from "@fluidframework/telemetry-utils";
|
|
14
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
15
|
+
|
|
15
16
|
import { ContainerMessageType, ContainerRuntimeChunkedOpMessage } from "../messageTypes.js";
|
|
17
|
+
|
|
16
18
|
import { estimateSocketSize } from "./batchManager.js";
|
|
17
19
|
import { BatchMessage, IBatch, IChunkedOp } from "./definitions.js";
|
|
18
20
|
|
|
@@ -3,17 +3,20 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
6
|
+
import { ICriticalContainerError } from "@fluidframework/container-definitions";
|
|
7
|
+
import { IBatchMessage } from "@fluidframework/container-definitions/internal";
|
|
7
8
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { assert } from "@fluidframework/core-utils";
|
|
9
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
9
10
|
import {
|
|
10
11
|
GenericError,
|
|
11
12
|
MonitoringContext,
|
|
12
13
|
UsageError,
|
|
13
14
|
createChildMonitoringContext,
|
|
14
|
-
} from "@fluidframework/telemetry-utils";
|
|
15
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
16
|
+
|
|
15
17
|
import { ICompressionRuntimeOptions } from "../containerRuntime.js";
|
|
16
18
|
import { IPendingBatchMessage, PendingStateManager } from "../pendingStateManager.js";
|
|
19
|
+
|
|
17
20
|
import {
|
|
18
21
|
BatchManager,
|
|
19
22
|
BatchSequenceNumbers,
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
|
|
7
|
+
|
|
7
8
|
import {
|
|
8
9
|
ContainerMessageType,
|
|
9
10
|
type InboundContainerRuntimeMessage,
|
|
@@ -11,6 +12,7 @@ import {
|
|
|
11
12
|
type InboundSequencedContainerRuntimeMessageOrSystemMessage,
|
|
12
13
|
type InboundSequencedRecentlyAddedContainerRuntimeMessage,
|
|
13
14
|
} from "../messageTypes.js";
|
|
15
|
+
|
|
14
16
|
import { OpDecompressor } from "./opDecompressor.js";
|
|
15
17
|
import { OpGroupingManager, isGroupedBatch } from "./opGroupingManager.js";
|
|
16
18
|
import { OpSplitter, isChunkedMessage } from "./opSplitter.js";
|
package/src/packageVersion.ts
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import Deque from "double-ended-queue";
|
|
7
|
-
|
|
8
6
|
import { ICriticalContainerError } from "@fluidframework/container-definitions";
|
|
9
7
|
import { IDisposable } from "@fluidframework/core-interfaces";
|
|
10
|
-
import { assert, Lazy } from "@fluidframework/core-utils";
|
|
8
|
+
import { assert, Lazy } from "@fluidframework/core-utils/internal";
|
|
11
9
|
import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
12
|
-
import {
|
|
10
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
11
|
+
import { DataProcessingError } from "@fluidframework/telemetry-utils/internal";
|
|
12
|
+
import Deque from "double-ended-queue";
|
|
13
13
|
|
|
14
14
|
import { InboundSequencedContainerRuntimeMessage } from "./messageTypes.js";
|
|
15
15
|
import { IBatchMetadata } from "./metadata.js";
|
package/src/scheduleManager.ts
CHANGED
|
@@ -6,16 +6,17 @@
|
|
|
6
6
|
import type { EventEmitter } from "@fluid-internal/client-utils";
|
|
7
7
|
import { performance } from "@fluid-internal/client-utils";
|
|
8
8
|
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
9
|
-
import { assert } from "@fluidframework/core-utils";
|
|
10
|
-
import { isRuntimeMessage } from "@fluidframework/driver-utils";
|
|
9
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
10
|
+
import { isRuntimeMessage } from "@fluidframework/driver-utils/internal";
|
|
11
11
|
import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
|
|
12
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
12
13
|
import {
|
|
13
14
|
DataCorruptionError,
|
|
14
15
|
DataProcessingError,
|
|
15
|
-
ITelemetryLoggerExt,
|
|
16
16
|
createChildLogger,
|
|
17
17
|
extractSafePropertiesFromMessage,
|
|
18
|
-
} from "@fluidframework/telemetry-utils";
|
|
18
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
19
|
+
|
|
19
20
|
import { DeltaScheduler } from "./deltaScheduler.js";
|
|
20
21
|
import { IBatchMetadata } from "./metadata.js";
|
|
21
22
|
import { pkgVersion } from "./packageVersion.js";
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
import {
|
|
7
7
|
IDocumentStorageService,
|
|
8
8
|
IDocumentStorageServicePolicies,
|
|
9
|
-
} from "@fluidframework/driver-definitions";
|
|
10
|
-
import { DocumentStorageServiceProxy } from "@fluidframework/driver-utils";
|
|
9
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
10
|
+
import { DocumentStorageServiceProxy } from "@fluidframework/driver-utils/internal";
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* IDocumentStorageService proxy which intercepts requests if they can be satisfied by the blobs received in the
|
|
@@ -2,8 +2,11 @@
|
|
|
2
2
|
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
|
-
|
|
6
|
-
import {
|
|
5
|
+
|
|
6
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
7
|
+
import { DataProcessingError } from "@fluidframework/telemetry-utils/internal";
|
|
8
|
+
|
|
9
|
+
import { pkgVersion } from "../packageVersion.js";
|
|
7
10
|
|
|
8
11
|
/**
|
|
9
12
|
* Descripe allowed type for properties in document schema.
|
|
@@ -12,7 +15,7 @@ import { DataProcessingError } from "@fluidframework/telemetry-utils";
|
|
|
12
15
|
* we want them to continue to collaborate alongside clients who support that capability, but such capability is shipping dark for now.
|
|
13
16
|
* @alpha
|
|
14
17
|
*/
|
|
15
|
-
export type DocumentSchemaValueType = string | true | number | undefined;
|
|
18
|
+
export type DocumentSchemaValueType = string | string[] | true | number | undefined;
|
|
16
19
|
|
|
17
20
|
/**
|
|
18
21
|
* ID Compressor mode.
|
|
@@ -92,6 +95,18 @@ export interface IDocumentSchemaFeatures {
|
|
|
92
95
|
compressionLz4: boolean;
|
|
93
96
|
idCompressorMode: IdCompressorMode;
|
|
94
97
|
opGroupingEnabled: boolean;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* List of disallowed versions of the runtime.
|
|
101
|
+
* This option is sticky. Once a version of runtime is added to this list (when supplied to DocumentsSchemaController's constructor)
|
|
102
|
+
* it will be added to the list of disallowed versions and stored in document metadata.
|
|
103
|
+
* Each runtime checks if its version is in this list on container open. If it is, it immediately exits with error message
|
|
104
|
+
* indicating to the user that this version is no longer supported.
|
|
105
|
+
* Currently there is no mechanism to remove version from this list. I.e. If it was once added to the list,
|
|
106
|
+
* it gets added to any document metadata (documents that gets open by this runtime) and there is no way to clear it from document's
|
|
107
|
+
* metadata.
|
|
108
|
+
*/
|
|
109
|
+
disallowedVersions: string[];
|
|
95
110
|
}
|
|
96
111
|
|
|
97
112
|
/**
|
|
@@ -181,6 +196,22 @@ class IdCompressorProperty extends MultiChoice {
|
|
|
181
196
|
}
|
|
182
197
|
}
|
|
183
198
|
|
|
199
|
+
class CheckVersions implements IProperty<string[] | undefined> {
|
|
200
|
+
public or(currentDocSchema: string[] = [], desiredDocSchema: string[] = []) {
|
|
201
|
+
const set = new Set<string>([...currentDocSchema, ...desiredDocSchema]);
|
|
202
|
+
return arrayToProp([...set.values()]);
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
// Once version is there, it stays there forever.
|
|
206
|
+
public and(currentDocSchema: string[] = [], desiredDocSchema: string[] = []) {
|
|
207
|
+
return this.or(currentDocSchema, desiredDocSchema);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
public validate(t: unknown) {
|
|
211
|
+
return t === undefined || (Array.isArray(t) && !t.includes(pkgVersion));
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
|
|
184
215
|
/**
|
|
185
216
|
* Helper structure to valida if a schema is compatible with existing code.
|
|
186
217
|
*/
|
|
@@ -189,6 +220,7 @@ const documentSchemaSupportedConfigs = {
|
|
|
189
220
|
idCompressorMode: new IdCompressorProperty(["delayed", "on"]),
|
|
190
221
|
opGroupingEnabled: new TrueOrUndefined(),
|
|
191
222
|
compressionLz4: new TrueOrUndefined(),
|
|
223
|
+
disallowedVersions: new CheckVersions(),
|
|
192
224
|
};
|
|
193
225
|
|
|
194
226
|
/**
|
|
@@ -208,7 +240,7 @@ function checkRuntimeCompatibility(documentSchema?: IDocumentSchema) {
|
|
|
208
240
|
if (documentSchema.version !== currentDocumentVersionSchema) {
|
|
209
241
|
throw DataProcessingError.create(
|
|
210
242
|
msg,
|
|
211
|
-
"
|
|
243
|
+
"checkRuntimeCompat1",
|
|
212
244
|
undefined, // message
|
|
213
245
|
{
|
|
214
246
|
runtimeSchemaVersion: documentSchema.version,
|
|
@@ -238,7 +270,7 @@ function checkRuntimeCompatibility(documentSchema?: IDocumentSchema) {
|
|
|
238
270
|
const value = documentSchema[unknownProperty];
|
|
239
271
|
throw DataProcessingError.create(
|
|
240
272
|
msg,
|
|
241
|
-
"
|
|
273
|
+
"checkRuntimeCompat2",
|
|
242
274
|
undefined, // message
|
|
243
275
|
{
|
|
244
276
|
codeVersion: currentDocumentVersionSchema,
|
|
@@ -314,6 +346,10 @@ function boolToProp(b: boolean) {
|
|
|
314
346
|
return b ? true : undefined;
|
|
315
347
|
}
|
|
316
348
|
|
|
349
|
+
function arrayToProp(arr: string[]) {
|
|
350
|
+
return arr.length === 0 ? undefined : arr;
|
|
351
|
+
}
|
|
352
|
+
|
|
317
353
|
/* eslint-disable jsdoc/check-indentation */
|
|
318
354
|
|
|
319
355
|
/**
|
|
@@ -345,6 +381,18 @@ function boolToProp(b: boolean) {
|
|
|
345
381
|
* clients who do not understand such feature will continue to fail to open such documents, as such documents very
|
|
346
382
|
* likely contain data in a new format.
|
|
347
383
|
*
|
|
384
|
+
* Controller operates with 4 schemas:
|
|
385
|
+
* - document schema: whatever we loaded from summary metadata + ops. It follows eventuall consistency rules (i.e. like DDS).
|
|
386
|
+
* - desired schema - what client is asking for to have (i.e. all the desired settings, based on runtime options / feature gates).
|
|
387
|
+
* - session schema - current session schema. It's "and" of the above two schemas.
|
|
388
|
+
* - future schema - "or" of document and desires schemas.
|
|
389
|
+
*
|
|
390
|
+
* "or" & "and" operators are defined individually for each property. For Boolean properties it's literally &&, || operators.
|
|
391
|
+
* But for other properties it's more nuanced.
|
|
392
|
+
*
|
|
393
|
+
* Whenver document schema does not match future schema, controller will send an op that attempts to changs documents schema to
|
|
394
|
+
* future schema.
|
|
395
|
+
*
|
|
348
396
|
* Users of this class need to use DocumentsSchemaController.sessionSchema to determine what features can be used.
|
|
349
397
|
*
|
|
350
398
|
* There are two modes this class can operate:
|
|
@@ -392,12 +440,10 @@ export class DocumentsSchemaController {
|
|
|
392
440
|
|
|
393
441
|
/**
|
|
394
442
|
* Constructs DocumentsSchemaController that controls current schema and processes around it, including changes in schema.
|
|
395
|
-
* @param explicitSchemaControl - Tells if schema changes are done implicitly (without ops - legacy behavior), or go through formal schema change ops process.
|
|
396
443
|
* @param existing - Is the document existing document, or a new doc.
|
|
397
444
|
* @param documentMetadataSchema - current document's schema, if present.
|
|
398
|
-
* @param
|
|
399
|
-
* @param
|
|
400
|
-
* @param opGroupingEnabled - true if it's desired to use op grouping.
|
|
445
|
+
* @param features - features of the document schema that current session wants to see enabled.
|
|
446
|
+
* @param onSchemaChange - callback that is called whenever schema is changed (not called on creation / load, only when processing document schema change ops)
|
|
401
447
|
*/
|
|
402
448
|
constructor(
|
|
403
449
|
existing: boolean,
|
|
@@ -407,6 +453,12 @@ export class DocumentsSchemaController {
|
|
|
407
453
|
) {
|
|
408
454
|
checkRuntimeCompatibility(documentMetadataSchema);
|
|
409
455
|
|
|
456
|
+
// For simplicity, let's only support new schema features for explicit schema control mode
|
|
457
|
+
assert(
|
|
458
|
+
features.disallowedVersions.length === 0 || features.explicitSchemaControl,
|
|
459
|
+
"not supported",
|
|
460
|
+
);
|
|
461
|
+
|
|
410
462
|
this.documentSchema =
|
|
411
463
|
(documentMetadataSchema as IDocumentSchemaCurrent) ??
|
|
412
464
|
({
|
|
@@ -434,6 +486,7 @@ export class DocumentsSchemaController {
|
|
|
434
486
|
compressionLz4: boolToProp(features.compressionLz4),
|
|
435
487
|
idCompressorMode: features.idCompressorMode,
|
|
436
488
|
opGroupingEnabled: boolToProp(features.opGroupingEnabled),
|
|
489
|
+
disallowedVersions: arrayToProp(features.disallowedVersions),
|
|
437
490
|
},
|
|
438
491
|
};
|
|
439
492
|
|
|
@@ -479,23 +532,29 @@ export class DocumentsSchemaController {
|
|
|
479
532
|
return schema;
|
|
480
533
|
}
|
|
481
534
|
|
|
482
|
-
|
|
535
|
+
/**
|
|
536
|
+
* Called by Container runtime whenever it is about to send some op.
|
|
537
|
+
* It gives opportunity for controller to issue its own ops - we do not want to send ops if there are no local changes in document.
|
|
538
|
+
* @returns Optional message to send.
|
|
539
|
+
*/
|
|
540
|
+
public maybeSendSchemaMessage(): IDocumentSchemaChangeMessage | undefined {
|
|
483
541
|
if (this.sendOp && this.futureSchema !== undefined) {
|
|
484
542
|
assert(
|
|
485
543
|
this.explicitSchemaControl &&
|
|
486
544
|
this.futureSchema.runtime.explicitSchemaControl === true,
|
|
487
545
|
"not legacy",
|
|
488
546
|
);
|
|
489
|
-
|
|
547
|
+
return {
|
|
490
548
|
...this.futureSchema,
|
|
491
549
|
refSeq: this.documentSchema.refSeq,
|
|
492
|
-
}
|
|
550
|
+
};
|
|
493
551
|
}
|
|
494
552
|
this.sendOp = false;
|
|
495
553
|
}
|
|
496
554
|
|
|
497
555
|
/**
|
|
498
556
|
* Process document schema change message
|
|
557
|
+
* Called by ContainerRuntime whenever it sees document schema messages.
|
|
499
558
|
* @param content - content of the message
|
|
500
559
|
* @param local - whether op is local
|
|
501
560
|
* @param sequenceNumber - sequence number of the op
|
|
@@ -8,13 +8,11 @@
|
|
|
8
8
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
9
9
|
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
10
10
|
import { IEvent, IEventProvider, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
11
|
-
import { assert } from "@fluidframework/core-utils";
|
|
11
|
+
import { assert } from "@fluidframework/core-utils/internal";
|
|
12
12
|
import { IClient, IQuorumClients, ISequencedClient } from "@fluidframework/protocol-definitions";
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
createChildLogger,
|
|
17
|
-
} from "@fluidframework/telemetry-utils";
|
|
13
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
14
|
+
import { UsageError, createChildLogger } from "@fluidframework/telemetry-utils/internal";
|
|
15
|
+
|
|
18
16
|
import { summarizerClientType } from "./summarizerClientElection.js";
|
|
19
17
|
|
|
20
18
|
// helper types for recursive readonly.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
7
|
import { IDisposable, ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { assert, Deferred, PromiseTimer, delay } from "@fluidframework/core-utils";
|
|
8
|
+
import { assert, Deferred, PromiseTimer, delay } from "@fluidframework/core-utils/internal";
|
|
9
9
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
10
10
|
import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
|
|
11
11
|
import {
|
|
@@ -14,9 +14,11 @@ import {
|
|
|
14
14
|
createChildLogger,
|
|
15
15
|
createChildMonitoringContext,
|
|
16
16
|
isFluidError,
|
|
17
|
-
} from "@fluidframework/telemetry-utils";
|
|
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 {
|
|
22
24
|
EnqueueSummarizeResult,
|
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
|
|
6
6
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
7
7
|
import { IFluidHandleContext } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { Deferred } from "@fluidframework/core-utils";
|
|
8
|
+
import { Deferred } from "@fluidframework/core-utils/internal";
|
|
9
|
+
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
9
10
|
import {
|
|
10
11
|
IFluidErrorBase,
|
|
11
|
-
ITelemetryLoggerExt,
|
|
12
12
|
LoggingError,
|
|
13
13
|
UsageError,
|
|
14
14
|
createChildLogger,
|
|
15
15
|
wrapErrorAndLog,
|
|
16
|
-
} from "@fluidframework/telemetry-utils";
|
|
16
|
+
} from "@fluidframework/telemetry-utils/internal";
|
|
17
|
+
|
|
17
18
|
import { ISummaryConfiguration } from "../containerRuntime.js";
|
|
19
|
+
|
|
18
20
|
import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator.js";
|
|
19
21
|
import { RunningSummarizer } from "./runningSummarizer.js";
|
|
20
22
|
import { SummarizeHeuristicData } from "./summarizerHeuristics.js";
|
|
@@ -7,6 +7,7 @@ import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
|
7
7
|
import { IEvent, IEventProvider } from "@fluidframework/core-interfaces";
|
|
8
8
|
import { IClientDetails, MessageType } from "@fluidframework/protocol-definitions";
|
|
9
9
|
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
10
|
+
|
|
10
11
|
import {
|
|
11
12
|
IOrderedClientElection,
|
|
12
13
|
ISerializedElection,
|
|
@@ -3,9 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { Timer } from "@fluidframework/core-utils";
|
|
6
|
+
import { Timer } from "@fluidframework/core-utils/internal";
|
|
7
7
|
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
8
|
+
|
|
8
9
|
import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
|
|
10
|
+
|
|
9
11
|
import {
|
|
10
12
|
ISummarizeAttempt,
|
|
11
13
|
ISummarizeHeuristicData,
|