@fluidframework/container-runtime 2.0.0-rc.1.0.3 → 2.0.0-rc.2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{.eslintrc.js → .eslintrc.cjs} +5 -5
- package/{.mocharc.js → .mocharc.cjs} +1 -1
- package/CHANGELOG.md +54 -0
- package/README.md +45 -0
- package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
- package/api-extractor-lint.json +1 -1
- package/api-extractor.json +1 -1
- package/api-report/container-runtime.api.md +68 -30
- package/dist/batchTracker.d.ts +1 -2
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +223 -0
- package/dist/channelCollection.d.ts.map +1 -0
- package/dist/{dataStores.js → channelCollection.js} +399 -83
- package/dist/channelCollection.js.map +1 -0
- package/dist/connectionTelemetry.d.ts +11 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +42 -4
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +98 -40
- package/dist/container-runtime-beta.d.ts +27 -9
- package/dist/container-runtime-public.d.ts +27 -9
- package/dist/container-runtime-untrimmed.d.ts +123 -40
- package/dist/containerHandleContext.d.ts +1 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +79 -55
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +541 -411
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts +2 -3
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +12 -11
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +71 -30
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +182 -141
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +1 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts +29 -4
- package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/dist/deltaManagerSummarizerProxy.js +91 -5
- package/dist/deltaManagerSummarizerProxy.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +22 -5
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +134 -75
- 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 +21 -21
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +29 -6
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +5 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +2 -2
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.d.ts +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +12 -5
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +18 -6
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +7 -7
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +20 -20
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts +6 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +22 -11
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +8 -8
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +40 -38
- package/dist/gc/index.js.map +1 -1
- package/dist/index.d.ts +8 -20
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -40
- package/dist/index.js.map +1 -1
- package/dist/messageTypes.d.ts +4 -4
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts +2 -2
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +2 -2
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +8 -8
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +18 -18
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +4 -4
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +3 -3
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +1 -10
- 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 +5 -5
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +7 -7
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +20 -12
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -4
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/package.json +3 -0
- 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 +2 -1
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +18 -10
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.d.ts +1 -2
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +5 -5
- package/dist/scheduleManager.js.map +1 -1
- package/dist/summary/index.d.ts +12 -12
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +43 -43
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.js +8 -8
- 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.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +11 -10
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +114 -81
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +4 -4
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +6 -6
- 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 +3 -3
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/index.d.ts +3 -3
- package/dist/summary/summarizerNode/index.d.ts.map +1 -1
- package/dist/summary/summarizerNode/index.js +4 -4
- package/dist/summary/summarizerNode/index.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +17 -7
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +45 -57
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +10 -19
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +1 -21
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +5 -6
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +16 -16
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +10 -21
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +15 -2
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +6 -5
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +10 -1
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +5 -6
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +4 -5
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/{batchTracker.d.mts → batchTracker.d.ts} +2 -3
- package/lib/batchTracker.d.ts.map +1 -0
- package/lib/{batchTracker.mjs → batchTracker.js} +1 -1
- package/lib/batchTracker.js.map +1 -0
- package/lib/{blobManager.d.mts → blobManager.d.ts} +1 -1
- package/lib/blobManager.d.ts.map +1 -0
- package/lib/{blobManager.mjs → blobManager.js} +1 -1
- package/lib/blobManager.js.map +1 -0
- package/lib/channelCollection.d.ts +223 -0
- package/lib/channelCollection.d.ts.map +1 -0
- package/lib/{dataStores.mjs → channelCollection.js} +384 -71
- package/lib/channelCollection.js.map +1 -0
- package/lib/{connectionTelemetry.d.mts → connectionTelemetry.d.ts} +12 -2
- package/lib/connectionTelemetry.d.ts.map +1 -0
- package/lib/{connectionTelemetry.mjs → connectionTelemetry.js} +43 -5
- package/lib/connectionTelemetry.js.map +1 -0
- package/lib/{container-runtime-alpha.d.mts → container-runtime-alpha.d.ts} +98 -40
- package/lib/{container-runtime-public.d.mts → container-runtime-beta.d.ts} +27 -9
- package/lib/{container-runtime-beta.d.mts → container-runtime-public.d.ts} +27 -9
- package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +123 -40
- package/lib/{containerHandleContext.d.mts → containerHandleContext.d.ts} +2 -2
- package/lib/containerHandleContext.d.ts.map +1 -0
- package/lib/{containerHandleContext.mjs → containerHandleContext.js} +1 -1
- package/lib/containerHandleContext.js.map +1 -0
- package/lib/{containerRuntime.d.mts → containerRuntime.d.ts} +84 -56
- package/lib/containerRuntime.d.ts.map +1 -0
- package/lib/{containerRuntime.mjs → containerRuntime.js} +460 -332
- package/lib/containerRuntime.js.map +1 -0
- package/lib/{dataStore.d.mts → dataStore.d.ts} +3 -4
- package/lib/dataStore.d.ts.map +1 -0
- package/lib/{dataStore.mjs → dataStore.js} +13 -12
- package/lib/dataStore.js.map +1 -0
- package/lib/{dataStoreContext.d.mts → dataStoreContext.d.ts} +72 -31
- package/lib/dataStoreContext.d.ts.map +1 -0
- package/lib/{dataStoreContext.mjs → dataStoreContext.js} +174 -133
- package/lib/dataStoreContext.js.map +1 -0
- package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +2 -2
- package/lib/dataStoreContexts.d.ts.map +1 -0
- package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +1 -1
- package/lib/dataStoreContexts.js.map +1 -0
- package/lib/{dataStoreRegistry.d.mts → dataStoreRegistry.d.ts} +1 -1
- package/lib/dataStoreRegistry.d.ts.map +1 -0
- package/lib/{dataStoreRegistry.mjs → dataStoreRegistry.js} +5 -1
- package/lib/dataStoreRegistry.js.map +1 -0
- package/{dist/deltaManagerProxyBase.d.ts → lib/deltaManagerSummarizerProxy.d.ts} +16 -7
- package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
- package/lib/deltaManagerSummarizerProxy.js +124 -0
- package/lib/deltaManagerSummarizerProxy.js.map +1 -0
- package/lib/{deltaScheduler.d.mts → deltaScheduler.d.ts} +1 -1
- package/lib/deltaScheduler.d.ts.map +1 -0
- package/lib/{deltaScheduler.mjs → deltaScheduler.js} +1 -1
- package/lib/deltaScheduler.js.map +1 -0
- package/lib/{error.d.mts → error.d.ts} +1 -1
- package/lib/error.d.ts.map +1 -0
- package/lib/{error.mjs → error.js} +1 -1
- package/lib/error.js.map +1 -0
- package/lib/gc/{garbageCollection.d.mts → garbageCollection.d.ts} +23 -6
- package/lib/gc/garbageCollection.d.ts.map +1 -0
- package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +103 -44
- package/lib/gc/garbageCollection.js.map +1 -0
- package/lib/gc/{gcConfigs.d.mts → gcConfigs.d.ts} +3 -3
- package/lib/gc/gcConfigs.d.ts.map +1 -0
- package/lib/gc/{gcConfigs.mjs → gcConfigs.js} +3 -3
- package/lib/gc/gcConfigs.js.map +1 -0
- package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +30 -7
- package/lib/gc/gcDefinitions.d.ts.map +1 -0
- package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +5 -1
- package/lib/gc/gcDefinitions.js.map +1 -0
- package/lib/gc/{gcHelpers.d.mts → gcHelpers.d.ts} +3 -3
- package/lib/gc/{gcHelpers.d.mts.map → gcHelpers.d.ts.map} +1 -1
- package/lib/gc/{gcHelpers.mjs → gcHelpers.js} +1 -1
- package/lib/gc/gcHelpers.js.map +1 -0
- package/lib/gc/{gcReferenceGraphAlgorithm.d.mts → gcReferenceGraphAlgorithm.d.ts} +2 -2
- package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
- package/lib/gc/{gcReferenceGraphAlgorithm.mjs → gcReferenceGraphAlgorithm.js} +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
- package/lib/gc/{gcSummaryDefinitions.d.mts → gcSummaryDefinitions.d.ts} +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
- package/lib/gc/{gcSummaryDefinitions.mjs → gcSummaryDefinitions.js} +1 -1
- package/lib/gc/gcSummaryDefinitions.js.map +1 -0
- package/lib/gc/{gcSummaryStateTracker.d.mts → gcSummaryStateTracker.d.ts} +13 -6
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
- package/lib/gc/{gcSummaryStateTracker.mjs → gcSummaryStateTracker.js} +17 -5
- package/lib/gc/gcSummaryStateTracker.js.map +1 -0
- package/lib/gc/{gcTelemetry.d.mts → gcTelemetry.d.ts} +8 -8
- package/lib/gc/gcTelemetry.d.ts.map +1 -0
- package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -5
- package/lib/gc/gcTelemetry.js.map +1 -0
- package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +7 -2
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
- package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +12 -2
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
- package/lib/gc/{index.d.mts → index.d.ts} +9 -9
- package/lib/gc/index.d.ts.map +1 -0
- package/lib/gc/{index.mjs → index.js} +8 -8
- package/lib/gc/index.js.map +1 -0
- package/lib/{index.d.mts → index.d.ts} +9 -21
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +12 -0
- package/lib/index.js.map +1 -0
- package/lib/{messageTypes.d.mts → messageTypes.d.ts} +5 -5
- package/lib/messageTypes.d.ts.map +1 -0
- package/lib/{messageTypes.mjs → messageTypes.js} +1 -1
- package/lib/messageTypes.js.map +1 -0
- package/lib/{metadata.d.mts → metadata.d.ts} +1 -1
- package/lib/metadata.d.ts.map +1 -0
- package/lib/{metadata.mjs → metadata.js} +1 -1
- package/lib/metadata.js.map +1 -0
- package/lib/opLifecycle/{batchManager.d.mts → batchManager.d.ts} +3 -3
- package/lib/opLifecycle/batchManager.d.ts.map +1 -0
- package/lib/opLifecycle/{batchManager.mjs → batchManager.js} +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -0
- package/lib/opLifecycle/{definitions.d.mts → definitions.d.ts} +3 -3
- package/lib/opLifecycle/definitions.d.ts.map +1 -0
- package/lib/opLifecycle/{definitions.mjs → definitions.js} +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -0
- package/lib/opLifecycle/index.d.ts +13 -0
- package/lib/opLifecycle/index.d.ts.map +1 -0
- package/lib/opLifecycle/index.js +12 -0
- package/lib/opLifecycle/index.js.map +1 -0
- package/lib/opLifecycle/{opCompressor.d.mts → opCompressor.d.ts} +2 -2
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -0
- package/lib/opLifecycle/{opCompressor.mjs → opCompressor.js} +3 -3
- package/lib/opLifecycle/opCompressor.js.map +1 -0
- package/lib/opLifecycle/{opDecompressor.d.mts → opDecompressor.d.ts} +2 -2
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -0
- package/lib/opLifecycle/{opDecompressor.mjs → opDecompressor.js} +2 -2
- package/lib/opLifecycle/opDecompressor.js.map +1 -0
- package/lib/opLifecycle/{opGroupingManager.d.mts → opGroupingManager.d.ts} +2 -2
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/lib/opLifecycle/{opGroupingManager.mjs → opGroupingManager.js} +2 -11
- package/lib/opLifecycle/opGroupingManager.js.map +1 -0
- package/lib/opLifecycle/{opSplitter.d.mts → opSplitter.d.ts} +2 -2
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -0
- package/lib/opLifecycle/{opSplitter.mjs → opSplitter.js} +3 -3
- package/lib/opLifecycle/opSplitter.js.map +1 -0
- package/lib/opLifecycle/{outbox.d.mts → outbox.d.ts} +8 -8
- package/lib/opLifecycle/outbox.d.ts.map +1 -0
- package/lib/opLifecycle/{outbox.mjs → outbox.js} +12 -4
- package/lib/opLifecycle/outbox.js.map +1 -0
- package/lib/opLifecycle/{remoteMessageProcessor.d.mts → remoteMessageProcessor.d.ts} +5 -5
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -0
- package/lib/opLifecycle/{remoteMessageProcessor.mjs → remoteMessageProcessor.js} +2 -2
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -0
- package/lib/{opProperties.d.mts → opProperties.d.ts} +1 -1
- package/lib/opProperties.d.ts.map +1 -0
- package/lib/{opProperties.mjs → opProperties.js} +1 -1
- package/lib/opProperties.js.map +1 -0
- package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
- package/lib/packageVersion.d.ts.map +1 -0
- package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
- package/lib/packageVersion.js.map +1 -0
- package/lib/{pendingStateManager.d.mts → pendingStateManager.d.ts} +3 -2
- package/lib/pendingStateManager.d.ts.map +1 -0
- package/lib/{pendingStateManager.mjs → pendingStateManager.js} +18 -10
- package/lib/pendingStateManager.js.map +1 -0
- package/lib/{scheduleManager.d.mts → scheduleManager.d.ts} +6 -3
- package/lib/scheduleManager.d.ts.map +1 -0
- package/lib/{scheduleManager.mjs → scheduleManager.js} +3 -3
- package/lib/scheduleManager.js.map +1 -0
- package/lib/{storageServiceWithAttachBlobs.d.mts → storageServiceWithAttachBlobs.d.ts} +1 -1
- package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
- package/lib/{storageServiceWithAttachBlobs.mjs → storageServiceWithAttachBlobs.js} +1 -1
- package/lib/storageServiceWithAttachBlobs.js.map +1 -0
- package/lib/summary/{index.d.mts → index.d.ts} +13 -13
- package/lib/summary/index.d.ts.map +1 -0
- package/lib/summary/{index.mjs → index.js} +12 -12
- package/lib/summary/index.js.map +1 -0
- package/lib/summary/{orderedClientElection.d.mts → orderedClientElection.d.ts} +5 -1
- package/lib/summary/orderedClientElection.d.ts.map +1 -0
- package/lib/summary/{orderedClientElection.mjs → orderedClientElection.js} +2 -2
- package/lib/summary/orderedClientElection.js.map +1 -0
- package/lib/summary/{runWhileConnectedCoordinator.d.mts → runWhileConnectedCoordinator.d.ts} +2 -2
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
- package/lib/summary/{runWhileConnectedCoordinator.mjs → runWhileConnectedCoordinator.js} +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
- package/lib/summary/{runningSummarizer.d.mts → runningSummarizer.d.ts} +12 -11
- package/lib/summary/runningSummarizer.d.ts.map +1 -0
- package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +108 -75
- package/lib/summary/runningSummarizer.js.map +1 -0
- package/lib/summary/{summarizer.d.mts → summarizer.d.ts} +5 -5
- package/lib/summary/summarizer.d.ts.map +1 -0
- package/lib/summary/{summarizer.mjs → summarizer.js} +4 -4
- package/lib/summary/summarizer.js.map +1 -0
- package/lib/summary/{summarizerClientElection.d.mts → summarizerClientElection.d.ts} +3 -3
- package/lib/summary/summarizerClientElection.d.ts.map +1 -0
- package/lib/summary/{summarizerClientElection.mjs → summarizerClientElection.js} +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -0
- package/lib/summary/{summarizerHeuristics.d.mts → summarizerHeuristics.d.ts} +4 -4
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
- package/lib/summary/{summarizerHeuristics.mjs → summarizerHeuristics.js} +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -0
- package/lib/summary/summarizerNode/{index.d.mts → index.d.ts} +4 -4
- package/lib/summary/summarizerNode/index.d.ts.map +1 -0
- package/lib/summary/summarizerNode/index.js +7 -0
- package/lib/summary/summarizerNode/index.js.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNode.d.mts → summarizerNode.d.ts} +18 -8
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +41 -53
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +11 -20
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -20
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +6 -7
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +12 -12
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
- package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +11 -22
- package/lib/summary/summarizerTypes.d.ts.map +1 -0
- package/lib/summary/{summarizerTypes.mjs → summarizerTypes.js} +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -0
- package/lib/summary/{summaryCollection.d.mts → summaryCollection.d.ts} +1 -1
- package/lib/summary/summaryCollection.d.ts.map +1 -0
- package/lib/summary/{summaryCollection.mjs → summaryCollection.js} +1 -1
- package/lib/summary/summaryCollection.js.map +1 -0
- package/lib/summary/{summaryFormat.d.mts → summaryFormat.d.ts} +16 -3
- package/lib/summary/summaryFormat.d.ts.map +1 -0
- package/lib/summary/{summaryFormat.mjs → summaryFormat.js} +1 -1
- package/lib/summary/summaryFormat.js.map +1 -0
- package/lib/summary/{summaryGenerator.d.mts → summaryGenerator.d.ts} +7 -6
- package/lib/summary/summaryGenerator.d.ts.map +1 -0
- package/lib/summary/{summaryGenerator.mjs → summaryGenerator.js} +11 -2
- package/lib/summary/summaryGenerator.js.map +1 -0
- package/lib/summary/{summaryManager.d.mts → summaryManager.d.ts} +6 -7
- package/lib/summary/summaryManager.d.ts.map +1 -0
- package/lib/summary/{summaryManager.mjs → summaryManager.js} +4 -5
- package/lib/summary/summaryManager.js.map +1 -0
- package/lib/test/batchTracker.spec.js +88 -0
- package/lib/test/batchTracker.spec.js.map +1 -0
- package/lib/test/blobManager.spec.js +835 -0
- package/lib/test/blobManager.spec.js.map +1 -0
- package/lib/test/channelCollection.spec.js +141 -0
- package/lib/test/channelCollection.spec.js.map +1 -0
- package/lib/test/containerRuntime.spec.js +1748 -0
- package/lib/test/containerRuntime.spec.js.map +1 -0
- package/lib/test/dataStoreContext.spec.js +801 -0
- package/lib/test/dataStoreContext.spec.js.map +1 -0
- package/lib/test/dataStoreCreation.spec.js +312 -0
- package/lib/test/dataStoreCreation.spec.js.map +1 -0
- package/lib/test/dataStoreRegistry.spec.js +26 -0
- package/lib/test/dataStoreRegistry.spec.js.map +1 -0
- package/lib/test/fuzz/fuzzUtils.js +66 -0
- package/lib/test/fuzz/fuzzUtils.js.map +1 -0
- package/lib/test/fuzz/summarizer.fuzz.spec.js +31 -0
- package/lib/test/fuzz/summarizer.fuzz.spec.js.map +1 -0
- package/lib/test/fuzz/summarizerFuzzMocks.js +162 -0
- package/lib/test/fuzz/summarizerFuzzMocks.js.map +1 -0
- package/lib/test/fuzz/summarizerFuzzSuite.js +106 -0
- package/lib/test/fuzz/summarizerFuzzSuite.js.map +1 -0
- package/lib/test/gc/garbageCollection.spec.js +1465 -0
- package/lib/test/gc/garbageCollection.spec.js.map +1 -0
- package/lib/test/gc/gcConfigs.spec.js +690 -0
- package/lib/test/gc/gcConfigs.spec.js.map +1 -0
- package/lib/test/gc/gcHelpers.spec.js +110 -0
- package/lib/test/gc/gcHelpers.spec.js.map +1 -0
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js +68 -0
- package/lib/test/gc/gcReferenceGraphAlgorithm.spec.js.map +1 -0
- package/lib/test/gc/gcStats.spec.js +391 -0
- package/lib/test/gc/gcStats.spec.js.map +1 -0
- package/lib/test/gc/gcSummaryStateTracker.spec.js +228 -0
- package/lib/test/gc/gcSummaryStateTracker.spec.js.map +1 -0
- package/lib/test/gc/gcTelemetry.spec.js +530 -0
- package/lib/test/gc/gcTelemetry.spec.js.map +1 -0
- package/lib/test/gc/gcUnitTestHelpers.js +29 -0
- package/lib/test/gc/gcUnitTestHelpers.js.map +1 -0
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js +192 -0
- package/lib/test/gc/gcUnreferencedStateTracker.spec.js.map +1 -0
- package/lib/test/getPendingBlobs.spec.js +193 -0
- package/lib/test/getPendingBlobs.spec.js.map +1 -0
- package/lib/test/hardwareStats.spec.js +93 -0
- package/lib/test/hardwareStats.spec.js.map +1 -0
- package/lib/test/index.js +6 -0
- package/lib/test/index.js.map +1 -0
- package/lib/test/opLifecycle/OpGroupingManager.spec.js +225 -0
- package/lib/test/opLifecycle/OpGroupingManager.spec.js.map +1 -0
- package/lib/test/opLifecycle/batchManager.spec.js +189 -0
- package/lib/test/opLifecycle/batchManager.spec.js.map +1 -0
- package/lib/test/opLifecycle/opCompressor.spec.js +74 -0
- package/lib/test/opLifecycle/opCompressor.spec.js.map +1 -0
- package/lib/test/opLifecycle/opDecompressor.spec.js +218 -0
- package/lib/test/opLifecycle/opDecompressor.spec.js.map +1 -0
- package/lib/test/opLifecycle/opSplitter.spec.js +272 -0
- package/lib/test/opLifecycle/opSplitter.spec.js.map +1 -0
- package/lib/test/opLifecycle/outbox.spec.js +675 -0
- package/lib/test/opLifecycle/outbox.spec.js.map +1 -0
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js +196 -0
- package/lib/test/opLifecycle/remoteMessageProcessor.spec.js.map +1 -0
- package/lib/test/pendingStateManager.spec.js +329 -0
- package/lib/test/pendingStateManager.spec.js.map +1 -0
- package/lib/test/scheduleManager.spec.js +270 -0
- package/lib/test/scheduleManager.spec.js.map +1 -0
- package/lib/test/summarizerNode.spec.js +326 -0
- package/lib/test/summarizerNode.spec.js.map +1 -0
- package/lib/test/summarizerNodeWithGc.spec.js +318 -0
- package/lib/test/summarizerNodeWithGc.spec.js.map +1 -0
- package/lib/test/summary/orderedClientElection.spec.js +535 -0
- package/lib/test/summary/orderedClientElection.spec.js.map +1 -0
- package/lib/test/summary/runningSummarizer.spec.js +1349 -0
- package/lib/test/summary/runningSummarizer.spec.js.map +1 -0
- package/lib/test/summary/summarizer.spec.js +29 -0
- package/lib/test/summary/summarizer.spec.js.map +1 -0
- package/lib/test/summary/summarizerClientElection.spec.js +436 -0
- package/lib/test/summary/summarizerClientElection.spec.js.map +1 -0
- package/lib/test/summary/summarizerHeuristics.spec.js +289 -0
- package/lib/test/summary/summarizerHeuristics.spec.js.map +1 -0
- package/lib/test/summary/summaryCollection.spec.js +200 -0
- package/lib/test/summary/summaryCollection.spec.js.map +1 -0
- package/lib/test/summary/summaryManager.spec.js +430 -0
- package/lib/test/summary/summaryManager.spec.js.map +1 -0
- package/lib/test/summary/testQuorumClients.js +34 -0
- package/lib/test/summary/testQuorumClients.js.map +1 -0
- package/lib/test/throttler.spec.js +175 -0
- package/lib/test/throttler.spec.js.map +1 -0
- package/lib/test/types/validateContainerRuntimePrevious.generated.js +180 -0
- package/lib/test/types/validateContainerRuntimePrevious.generated.js.map +1 -0
- package/lib/{throttler.d.mts → throttler.d.ts} +1 -1
- package/lib/throttler.d.ts.map +1 -0
- package/lib/{throttler.mjs → throttler.js} +1 -1
- package/lib/throttler.js.map +1 -0
- package/package.json +99 -88
- package/src/batchTracker.ts +1 -1
- package/src/blobManager.ts +1 -1
- package/src/{dataStores.ts → channelCollection.ts} +520 -84
- package/src/connectionTelemetry.ts +42 -3
- package/src/containerHandleContext.ts +1 -1
- package/src/containerRuntime.ts +661 -464
- package/src/dataStore.ts +13 -15
- package/src/dataStoreContext.ts +257 -184
- package/src/dataStoreContexts.ts +1 -1
- package/src/deltaManagerSummarizerProxy.ts +132 -7
- package/src/gc/garbageCollection.ts +121 -46
- package/src/gc/gcConfigs.ts +3 -3
- package/src/gc/gcDefinitions.ts +30 -7
- package/src/gc/gcHelpers.ts +2 -2
- package/src/gc/gcReferenceGraphAlgorithm.ts +1 -1
- package/src/gc/gcSummaryStateTracker.ts +19 -7
- package/src/gc/gcTelemetry.ts +10 -9
- package/src/gc/gcUnreferencedStateTracker.ts +12 -1
- package/src/gc/index.ts +10 -8
- package/src/index.ts +16 -27
- package/src/messageTypes.ts +4 -4
- package/src/opLifecycle/README.md +2 -4
- package/src/opLifecycle/batchManager.ts +2 -2
- package/src/opLifecycle/definitions.ts +2 -2
- package/src/opLifecycle/index.ts +8 -8
- package/src/opLifecycle/opCompressor.ts +3 -3
- package/src/opLifecycle/opDecompressor.ts +3 -3
- package/src/opLifecycle/opGroupingManager.ts +3 -12
- package/src/opLifecycle/opSplitter.ts +3 -3
- package/src/opLifecycle/outbox.ts +29 -9
- package/src/opLifecycle/remoteMessageProcessor.ts +4 -4
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +19 -13
- package/src/scheduleManager.ts +4 -4
- package/src/summary/index.ts +13 -12
- package/src/summary/orderedClientElection.ts +1 -1
- package/src/summary/runWhileConnectedCoordinator.ts +1 -1
- package/src/summary/runningSummarizer.ts +141 -93
- package/src/summary/summarizer.ts +7 -7
- package/src/summary/summarizerClientElection.ts +2 -2
- package/src/summary/summarizerHeuristics.ts +3 -3
- package/src/summary/summarizerNode/index.ts +6 -3
- package/src/summary/summarizerNode/summarizerNode.ts +54 -69
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +16 -34
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -17
- package/src/summary/summarizerTypes.ts +12 -24
- package/src/summary/summaryFormat.ts +16 -2
- package/src/summary/summaryGenerator.ts +16 -4
- package/src/summary/summaryManager.ts +6 -7
- package/tsconfig.cjs.json +7 -0
- package/tsconfig.json +2 -5
- package/dist/dataStores.d.ts +0 -149
- package/dist/dataStores.d.ts.map +0 -1
- package/dist/dataStores.js.map +0 -1
- package/dist/deltaManagerProxyBase.d.ts.map +0 -1
- package/dist/deltaManagerProxyBase.js +0 -77
- package/dist/deltaManagerProxyBase.js.map +0 -1
- package/lib/batchTracker.d.mts.map +0 -1
- package/lib/batchTracker.mjs.map +0 -1
- package/lib/blobManager.d.mts.map +0 -1
- package/lib/blobManager.mjs.map +0 -1
- package/lib/connectionTelemetry.d.mts.map +0 -1
- package/lib/connectionTelemetry.mjs.map +0 -1
- package/lib/containerHandleContext.d.mts.map +0 -1
- package/lib/containerHandleContext.mjs.map +0 -1
- package/lib/containerRuntime.d.mts.map +0 -1
- package/lib/containerRuntime.mjs.map +0 -1
- package/lib/dataStore.d.mts.map +0 -1
- package/lib/dataStore.mjs.map +0 -1
- package/lib/dataStoreContext.d.mts.map +0 -1
- package/lib/dataStoreContext.mjs.map +0 -1
- package/lib/dataStoreContexts.d.mts.map +0 -1
- package/lib/dataStoreContexts.mjs.map +0 -1
- package/lib/dataStoreRegistry.d.mts.map +0 -1
- package/lib/dataStoreRegistry.mjs.map +0 -1
- package/lib/dataStores.d.mts +0 -149
- package/lib/dataStores.d.mts.map +0 -1
- package/lib/dataStores.mjs.map +0 -1
- package/lib/deltaManagerProxyBase.d.mts +0 -35
- package/lib/deltaManagerProxyBase.d.mts.map +0 -1
- package/lib/deltaManagerProxyBase.mjs +0 -73
- package/lib/deltaManagerProxyBase.mjs.map +0 -1
- package/lib/deltaManagerSummarizerProxy.d.mts +0 -19
- package/lib/deltaManagerSummarizerProxy.d.mts.map +0 -1
- package/lib/deltaManagerSummarizerProxy.mjs +0 -38
- package/lib/deltaManagerSummarizerProxy.mjs.map +0 -1
- package/lib/deltaScheduler.d.mts.map +0 -1
- package/lib/deltaScheduler.mjs.map +0 -1
- package/lib/error.d.mts.map +0 -1
- package/lib/error.mjs.map +0 -1
- package/lib/gc/garbageCollection.d.mts.map +0 -1
- package/lib/gc/garbageCollection.mjs.map +0 -1
- package/lib/gc/gcConfigs.d.mts.map +0 -1
- package/lib/gc/gcConfigs.mjs.map +0 -1
- package/lib/gc/gcDefinitions.d.mts.map +0 -1
- package/lib/gc/gcDefinitions.mjs.map +0 -1
- package/lib/gc/gcHelpers.mjs.map +0 -1
- package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +0 -1
- package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +0 -1
- package/lib/gc/gcSummaryDefinitions.d.mts.map +0 -1
- package/lib/gc/gcSummaryDefinitions.mjs.map +0 -1
- package/lib/gc/gcSummaryStateTracker.d.mts.map +0 -1
- package/lib/gc/gcSummaryStateTracker.mjs.map +0 -1
- package/lib/gc/gcTelemetry.d.mts.map +0 -1
- package/lib/gc/gcTelemetry.mjs.map +0 -1
- package/lib/gc/gcUnreferencedStateTracker.d.mts.map +0 -1
- package/lib/gc/gcUnreferencedStateTracker.mjs.map +0 -1
- package/lib/gc/index.d.mts.map +0 -1
- package/lib/gc/index.mjs.map +0 -1
- package/lib/index.d.mts.map +0 -1
- package/lib/index.mjs +0 -24
- package/lib/index.mjs.map +0 -1
- package/lib/messageTypes.d.mts.map +0 -1
- package/lib/messageTypes.mjs.map +0 -1
- package/lib/metadata.d.mts.map +0 -1
- package/lib/metadata.mjs.map +0 -1
- package/lib/opLifecycle/batchManager.d.mts.map +0 -1
- package/lib/opLifecycle/batchManager.mjs.map +0 -1
- package/lib/opLifecycle/definitions.d.mts.map +0 -1
- package/lib/opLifecycle/definitions.mjs.map +0 -1
- package/lib/opLifecycle/index.d.mts +0 -13
- package/lib/opLifecycle/index.d.mts.map +0 -1
- package/lib/opLifecycle/index.mjs +0 -12
- package/lib/opLifecycle/index.mjs.map +0 -1
- package/lib/opLifecycle/opCompressor.d.mts.map +0 -1
- package/lib/opLifecycle/opCompressor.mjs.map +0 -1
- package/lib/opLifecycle/opDecompressor.d.mts.map +0 -1
- package/lib/opLifecycle/opDecompressor.mjs.map +0 -1
- package/lib/opLifecycle/opGroupingManager.d.mts.map +0 -1
- package/lib/opLifecycle/opGroupingManager.mjs.map +0 -1
- package/lib/opLifecycle/opSplitter.d.mts.map +0 -1
- package/lib/opLifecycle/opSplitter.mjs.map +0 -1
- package/lib/opLifecycle/outbox.d.mts.map +0 -1
- package/lib/opLifecycle/outbox.mjs.map +0 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +0 -1
- package/lib/opLifecycle/remoteMessageProcessor.mjs.map +0 -1
- package/lib/opProperties.d.mts.map +0 -1
- package/lib/opProperties.mjs.map +0 -1
- package/lib/packageVersion.d.mts.map +0 -1
- package/lib/packageVersion.mjs.map +0 -1
- package/lib/pendingStateManager.d.mts.map +0 -1
- package/lib/pendingStateManager.mjs.map +0 -1
- package/lib/scheduleManager.d.mts.map +0 -1
- package/lib/scheduleManager.mjs.map +0 -1
- package/lib/storageServiceWithAttachBlobs.d.mts.map +0 -1
- package/lib/storageServiceWithAttachBlobs.mjs.map +0 -1
- package/lib/summary/index.d.mts.map +0 -1
- package/lib/summary/index.mjs.map +0 -1
- package/lib/summary/orderedClientElection.d.mts.map +0 -1
- package/lib/summary/orderedClientElection.mjs.map +0 -1
- package/lib/summary/runWhileConnectedCoordinator.d.mts.map +0 -1
- package/lib/summary/runWhileConnectedCoordinator.mjs.map +0 -1
- package/lib/summary/runningSummarizer.d.mts.map +0 -1
- package/lib/summary/runningSummarizer.mjs.map +0 -1
- package/lib/summary/summarizer.d.mts.map +0 -1
- package/lib/summary/summarizer.mjs.map +0 -1
- package/lib/summary/summarizerClientElection.d.mts.map +0 -1
- package/lib/summary/summarizerClientElection.mjs.map +0 -1
- package/lib/summary/summarizerHeuristics.d.mts.map +0 -1
- package/lib/summary/summarizerHeuristics.mjs.map +0 -1
- package/lib/summary/summarizerNode/index.d.mts.map +0 -1
- package/lib/summary/summarizerNode/index.mjs +0 -7
- package/lib/summary/summarizerNode/index.mjs.map +0 -1
- package/lib/summary/summarizerNode/summarizerNode.d.mts.map +0 -1
- package/lib/summary/summarizerNode/summarizerNode.mjs.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +0 -1
- package/lib/summary/summarizerTypes.d.mts.map +0 -1
- package/lib/summary/summarizerTypes.mjs.map +0 -1
- package/lib/summary/summaryCollection.d.mts.map +0 -1
- package/lib/summary/summaryCollection.mjs.map +0 -1
- package/lib/summary/summaryFormat.d.mts.map +0 -1
- package/lib/summary/summaryFormat.mjs.map +0 -1
- package/lib/summary/summaryGenerator.d.mts.map +0 -1
- package/lib/summary/summaryGenerator.mjs.map +0 -1
- package/lib/summary/summaryManager.d.mts.map +0 -1
- package/lib/summary/summaryManager.mjs.map +0 -1
- package/lib/throttler.d.mts.map +0 -1
- package/lib/throttler.mjs.map +0 -1
- package/src/deltaManagerProxyBase.ts +0 -111
|
@@ -3,12 +3,11 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { ITelemetryBaseLogger
|
|
6
|
+
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
7
7
|
import {
|
|
8
8
|
ISummarizerNode,
|
|
9
9
|
ISummarizerNodeConfig,
|
|
10
10
|
ISummarizeResult,
|
|
11
|
-
ISummaryTreeWithStats,
|
|
12
11
|
CreateChildSummarizerNodeParam,
|
|
13
12
|
CreateSummarizerNodeSource,
|
|
14
13
|
SummarizeInternalFn,
|
|
@@ -19,7 +18,6 @@ import {
|
|
|
19
18
|
ISequencedDocumentMessage,
|
|
20
19
|
SummaryType,
|
|
21
20
|
ISnapshotTree,
|
|
22
|
-
SummaryObject,
|
|
23
21
|
} from "@fluidframework/protocol-definitions";
|
|
24
22
|
import {
|
|
25
23
|
ITelemetryLoggerExt,
|
|
@@ -28,20 +26,20 @@ import {
|
|
|
28
26
|
PerformanceEvent,
|
|
29
27
|
TelemetryDataTag,
|
|
30
28
|
tagCodeArtifacts,
|
|
29
|
+
type ITelemetryErrorEventExt,
|
|
31
30
|
} from "@fluidframework/telemetry-utils";
|
|
32
31
|
import { assert, unreachableCase } from "@fluidframework/core-utils";
|
|
33
|
-
import {
|
|
32
|
+
import { mergeStats } from "@fluidframework/runtime-utils";
|
|
34
33
|
import {
|
|
35
34
|
EscapedPath,
|
|
36
35
|
ICreateChildDetails,
|
|
37
|
-
IInitialSummary,
|
|
38
36
|
IRefreshSummaryResult,
|
|
37
|
+
IStartSummaryResult,
|
|
39
38
|
ISummarizerNodeRootContract,
|
|
40
39
|
parseSummaryForSubtrees,
|
|
41
|
-
parseSummaryTreeForSubtrees,
|
|
42
40
|
SummaryNode,
|
|
43
41
|
ValidateSummaryResult,
|
|
44
|
-
} from "./summarizerNodeUtils";
|
|
42
|
+
} from "./summarizerNodeUtils.js";
|
|
45
43
|
|
|
46
44
|
export interface IRootSummarizerNode extends ISummarizerNode, ISummarizerNodeRootContract {}
|
|
47
45
|
|
|
@@ -86,7 +84,6 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
86
84
|
private _changeSequenceNumber: number,
|
|
87
85
|
/** Undefined means created without summary */
|
|
88
86
|
private _latestSummary?: SummaryNode,
|
|
89
|
-
private readonly initialSummary?: IInitialSummary,
|
|
90
87
|
protected wipSummaryLogger?: ITelemetryBaseLogger,
|
|
91
88
|
/** A unique id of this node to be logged when sending telemetry. */
|
|
92
89
|
protected telemetryNodeId?: string,
|
|
@@ -101,7 +98,22 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
101
98
|
});
|
|
102
99
|
}
|
|
103
100
|
|
|
104
|
-
|
|
101
|
+
/**
|
|
102
|
+
* In order to produce a summary with a summarizer node, the summarizer node system must be notified a summary has
|
|
103
|
+
* started. This is done by calling startSummary. This will track the reference sequence number of the summary and
|
|
104
|
+
* run some validation checks to ensure the summary is correct.
|
|
105
|
+
* @param referenceSequenceNumber - the number of ops processed up to this point
|
|
106
|
+
* @param summaryLogger - the logger to use for the summary
|
|
107
|
+
* @param latestSummaryRefSeqNum - the reference sequence number of the latest summary. Another way to think about
|
|
108
|
+
* it is the reference sequence number of the previous summary.
|
|
109
|
+
* @returns the number of nodes in the tree, the number of nodes that are invalid, and the different types of
|
|
110
|
+
* sequence number mismatches
|
|
111
|
+
*/
|
|
112
|
+
public startSummary(
|
|
113
|
+
referenceSequenceNumber: number,
|
|
114
|
+
summaryLogger: ITelemetryBaseLogger,
|
|
115
|
+
latestSummaryRefSeqNum: number,
|
|
116
|
+
): IStartSummaryResult {
|
|
105
117
|
assert(
|
|
106
118
|
this.wipSummaryLogger === undefined,
|
|
107
119
|
0x19f /* "wipSummaryLogger should not be set yet in startSummary" */,
|
|
@@ -111,12 +123,40 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
111
123
|
0x1a0 /* "Already tracking a summary" */,
|
|
112
124
|
);
|
|
113
125
|
|
|
126
|
+
let nodes = 1;
|
|
127
|
+
let invalidNodes = 0;
|
|
128
|
+
const sequenceNumberMismatchKeySet = new Set<string>();
|
|
129
|
+
const nodeLatestSummaryRefSeqNum = this._latestSummary?.referenceSequenceNumber;
|
|
130
|
+
if (
|
|
131
|
+
nodeLatestSummaryRefSeqNum !== undefined &&
|
|
132
|
+
latestSummaryRefSeqNum !== nodeLatestSummaryRefSeqNum
|
|
133
|
+
) {
|
|
134
|
+
invalidNodes++;
|
|
135
|
+
sequenceNumberMismatchKeySet.add(
|
|
136
|
+
`${latestSummaryRefSeqNum}-${nodeLatestSummaryRefSeqNum}`,
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
|
|
114
140
|
this.wipSummaryLogger = summaryLogger;
|
|
115
141
|
|
|
116
142
|
for (const child of this.children.values()) {
|
|
117
|
-
child.startSummary(
|
|
143
|
+
const childStartSummaryResult = child.startSummary(
|
|
144
|
+
referenceSequenceNumber,
|
|
145
|
+
this.wipSummaryLogger,
|
|
146
|
+
latestSummaryRefSeqNum,
|
|
147
|
+
);
|
|
148
|
+
nodes += childStartSummaryResult.nodes;
|
|
149
|
+
invalidNodes += childStartSummaryResult.invalidNodes;
|
|
150
|
+
for (const invalidSequenceNumber of childStartSummaryResult.mismatchNumbers) {
|
|
151
|
+
sequenceNumberMismatchKeySet.add(invalidSequenceNumber);
|
|
152
|
+
}
|
|
118
153
|
}
|
|
119
154
|
this.wipReferenceSequenceNumber = referenceSequenceNumber;
|
|
155
|
+
return {
|
|
156
|
+
nodes,
|
|
157
|
+
invalidNodes,
|
|
158
|
+
mismatchNumbers: sequenceNumberMismatchKeySet,
|
|
159
|
+
};
|
|
120
160
|
}
|
|
121
161
|
|
|
122
162
|
public async summarize(
|
|
@@ -521,7 +561,6 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
521
561
|
config,
|
|
522
562
|
createDetails.changeSequenceNumber,
|
|
523
563
|
createDetails.latestSummary,
|
|
524
|
-
createDetails.initialSummary,
|
|
525
564
|
this.wipSummaryLogger,
|
|
526
565
|
createDetails.telemetryNodeId,
|
|
527
566
|
);
|
|
@@ -549,7 +588,6 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
549
588
|
id: string,
|
|
550
589
|
createParam: CreateChildSummarizerNodeParam,
|
|
551
590
|
): ICreateChildDetails {
|
|
552
|
-
let initialSummary: IInitialSummary | undefined;
|
|
553
591
|
let latestSummary: SummaryNode | undefined;
|
|
554
592
|
let changeSequenceNumber: number;
|
|
555
593
|
|
|
@@ -562,63 +600,12 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
562
600
|
) {
|
|
563
601
|
// Prioritize latest summary if it was after this node was attached.
|
|
564
602
|
latestSummary = parentLatestSummary.createForChild(id);
|
|
565
|
-
} else {
|
|
566
|
-
const summary = convertToSummaryTree(
|
|
567
|
-
createParam.snapshot,
|
|
568
|
-
) as ISummaryTreeWithStats;
|
|
569
|
-
initialSummary = {
|
|
570
|
-
sequenceNumber: createParam.sequenceNumber,
|
|
571
|
-
id,
|
|
572
|
-
summary,
|
|
573
|
-
};
|
|
574
603
|
}
|
|
575
604
|
changeSequenceNumber = createParam.sequenceNumber;
|
|
576
605
|
break;
|
|
577
606
|
}
|
|
578
|
-
case CreateSummarizerNodeSource.FromSummary:
|
|
579
|
-
if (this.initialSummary === undefined) {
|
|
580
|
-
assert(
|
|
581
|
-
!!parentLatestSummary,
|
|
582
|
-
0x1ac /* "Cannot create child from summary if parent does not have latest summary" */,
|
|
583
|
-
);
|
|
584
|
-
}
|
|
585
|
-
// fallthrough to local
|
|
586
|
-
}
|
|
607
|
+
case CreateSummarizerNodeSource.FromSummary:
|
|
587
608
|
case CreateSummarizerNodeSource.Local: {
|
|
588
|
-
const parentInitialSummary = this.initialSummary;
|
|
589
|
-
if (parentInitialSummary !== undefined) {
|
|
590
|
-
let childSummary: SummaryObject | undefined;
|
|
591
|
-
if (parentInitialSummary.summary !== undefined) {
|
|
592
|
-
const { childrenTree } = parseSummaryTreeForSubtrees(
|
|
593
|
-
parentInitialSummary.summary.summary,
|
|
594
|
-
);
|
|
595
|
-
assert(
|
|
596
|
-
childrenTree.type === SummaryType.Tree,
|
|
597
|
-
0x1d6 /* "Parent summary object is not a tree" */,
|
|
598
|
-
);
|
|
599
|
-
childSummary = childrenTree.tree[id];
|
|
600
|
-
}
|
|
601
|
-
if (createParam.type === CreateSummarizerNodeSource.FromSummary) {
|
|
602
|
-
// Locally created would not have differential subtree.
|
|
603
|
-
assert(!!childSummary, 0x1ad /* "Missing child summary tree" */);
|
|
604
|
-
}
|
|
605
|
-
let childSummaryWithStats: ISummaryTreeWithStats | undefined;
|
|
606
|
-
if (childSummary !== undefined) {
|
|
607
|
-
assert(
|
|
608
|
-
childSummary.type === SummaryType.Tree,
|
|
609
|
-
0x1ae /* "Child summary object is not a tree" */,
|
|
610
|
-
);
|
|
611
|
-
childSummaryWithStats = {
|
|
612
|
-
summary: childSummary,
|
|
613
|
-
stats: calculateStats(childSummary),
|
|
614
|
-
};
|
|
615
|
-
}
|
|
616
|
-
initialSummary = {
|
|
617
|
-
sequenceNumber: parentInitialSummary.sequenceNumber,
|
|
618
|
-
id,
|
|
619
|
-
summary: childSummaryWithStats,
|
|
620
|
-
};
|
|
621
|
-
}
|
|
622
609
|
latestSummary = parentLatestSummary?.createForChild(id);
|
|
623
610
|
changeSequenceNumber = parentLatestSummary?.referenceSequenceNumber ?? -1;
|
|
624
611
|
break;
|
|
@@ -629,13 +616,12 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
629
616
|
}
|
|
630
617
|
}
|
|
631
618
|
|
|
632
|
-
const
|
|
619
|
+
const childTelemetryNodeId = `${this.telemetryNodeId ?? ""}/${id}`;
|
|
633
620
|
|
|
634
621
|
return {
|
|
635
|
-
initialSummary,
|
|
636
622
|
latestSummary,
|
|
637
623
|
changeSequenceNumber,
|
|
638
|
-
telemetryNodeId:
|
|
624
|
+
telemetryNodeId: childTelemetryNodeId,
|
|
639
625
|
};
|
|
640
626
|
}
|
|
641
627
|
|
|
@@ -682,7 +668,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
682
668
|
/**
|
|
683
669
|
* Creates and throws an error due to unexpected conditions.
|
|
684
670
|
*/
|
|
685
|
-
protected throwUnexpectedError(eventProps:
|
|
671
|
+
protected throwUnexpectedError(eventProps: ITelemetryErrorEventExt): never {
|
|
686
672
|
const error = new LoggingError(eventProps.eventName, {
|
|
687
673
|
...eventProps,
|
|
688
674
|
referenceSequenceNumber: this.wipReferenceSequenceNumber,
|
|
@@ -719,7 +705,6 @@ export const createRootSummarizerNode = (
|
|
|
719
705
|
referenceSequenceNumber === undefined
|
|
720
706
|
? undefined
|
|
721
707
|
: SummaryNode.createForRoot(referenceSequenceNumber),
|
|
722
|
-
undefined /* initialSummary */,
|
|
723
708
|
undefined /* wipSummaryLogger */,
|
|
724
709
|
"" /* telemetryNodeId */,
|
|
725
710
|
);
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { ITelemetryLoggerExt, TelemetryDataTag } from "@fluidframework/telemetry-utils";
|
|
7
|
-
import { ISnapshotTree,
|
|
8
|
-
import { channelsTreeName
|
|
7
|
+
import { ISnapshotTree, SummaryObject } from "@fluidframework/protocol-definitions";
|
|
8
|
+
import { channelsTreeName } from "@fluidframework/runtime-definitions";
|
|
9
9
|
|
|
10
10
|
export interface IRefreshSummaryResult {
|
|
11
11
|
/** Tells whether this summary is tracked by this client. */
|
|
@@ -14,6 +14,15 @@ export interface IRefreshSummaryResult {
|
|
|
14
14
|
isSummaryNewer: boolean;
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
export interface IStartSummaryResult {
|
|
18
|
+
/** The number of summarizerNodes at the start of the summary. */
|
|
19
|
+
nodes: number;
|
|
20
|
+
/** The number of summarizerNodes in the wrong state. */
|
|
21
|
+
invalidNodes: number;
|
|
22
|
+
/** The invalid sequence numbers and their values. It should be in the format of validateSequenceNumber-nodeSequenceNumber */
|
|
23
|
+
mismatchNumbers: Set<string>;
|
|
24
|
+
}
|
|
25
|
+
|
|
17
26
|
/**
|
|
18
27
|
* Return type of validateSummary function. In case of success, the object returned should have success: true.
|
|
19
28
|
* In case of failure, the object returned should have success: false and additional properties to indicate what
|
|
@@ -37,7 +46,11 @@ export type ValidateSummaryResult =
|
|
|
37
46
|
};
|
|
38
47
|
|
|
39
48
|
export interface ISummarizerNodeRootContract {
|
|
40
|
-
startSummary(
|
|
49
|
+
startSummary(
|
|
50
|
+
referenceSequenceNumber: number,
|
|
51
|
+
summaryLogger: ITelemetryLoggerExt,
|
|
52
|
+
latestSummaryRefSeqNum: number,
|
|
53
|
+
): IStartSummaryResult;
|
|
41
54
|
validateSummary(): ValidateSummaryResult;
|
|
42
55
|
completeSummary(proposalHandle: string, validate: boolean): void;
|
|
43
56
|
clearSummary(): void;
|
|
@@ -135,21 +148,10 @@ export class SummaryNode {
|
|
|
135
148
|
}
|
|
136
149
|
}
|
|
137
150
|
|
|
138
|
-
/**
|
|
139
|
-
* Information about the initial summary tree found from an attach op.
|
|
140
|
-
*/
|
|
141
|
-
export interface IInitialSummary {
|
|
142
|
-
sequenceNumber: number;
|
|
143
|
-
id: string;
|
|
144
|
-
summary: ISummaryTreeWithStats | undefined;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
151
|
/**
|
|
148
152
|
* Represents the details needed to create a child summarizer node.
|
|
149
153
|
*/
|
|
150
154
|
export interface ICreateChildDetails {
|
|
151
|
-
/** Summary from attach op if known */
|
|
152
|
-
initialSummary: IInitialSummary | undefined;
|
|
153
155
|
/** Latest summary from server node data */
|
|
154
156
|
latestSummary: SummaryNode | undefined;
|
|
155
157
|
/** Sequence number of latest known change to the node */
|
|
@@ -184,23 +186,3 @@ export function parseSummaryForSubtrees(baseSummary: ISnapshotTree): ISubtreeInf
|
|
|
184
186
|
childrenPathPart: undefined,
|
|
185
187
|
};
|
|
186
188
|
}
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* Checks if the summary contains .channels subtree where the children subtrees
|
|
190
|
-
* would be located if exists.
|
|
191
|
-
* @param baseSummary - summary to check
|
|
192
|
-
*/
|
|
193
|
-
export function parseSummaryTreeForSubtrees(summary: ISummaryTree): ISubtreeInfo<SummaryObject> {
|
|
194
|
-
// New versions of snapshots have child nodes isolated in .channels subtree
|
|
195
|
-
const channelsSubtree = summary.tree[channelsTreeName];
|
|
196
|
-
if (channelsSubtree !== undefined) {
|
|
197
|
-
return {
|
|
198
|
-
childrenTree: channelsSubtree,
|
|
199
|
-
childrenPathPart: channelsTreeName,
|
|
200
|
-
};
|
|
201
|
-
}
|
|
202
|
-
return {
|
|
203
|
-
childrenTree: summary,
|
|
204
|
-
childrenPathPart: undefined,
|
|
205
|
-
};
|
|
206
|
-
}
|
|
@@ -3,12 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
ITelemetryLoggerExt,
|
|
8
|
-
LoggingError,
|
|
9
|
-
TelemetryDataTag,
|
|
10
|
-
tagCodeArtifacts,
|
|
11
|
-
} from "@fluidframework/telemetry-utils";
|
|
6
|
+
import { LoggingError, TelemetryDataTag, tagCodeArtifacts } from "@fluidframework/telemetry-utils";
|
|
12
7
|
import { assert, LazyPromise } from "@fluidframework/core-utils";
|
|
13
8
|
import {
|
|
14
9
|
CreateChildSummarizerNodeParam,
|
|
@@ -24,16 +19,16 @@ import {
|
|
|
24
19
|
} from "@fluidframework/runtime-definitions";
|
|
25
20
|
import { unpackChildNodesUsedRoutes } from "@fluidframework/runtime-utils";
|
|
26
21
|
import { ITelemetryBaseLogger } from "@fluidframework/core-interfaces";
|
|
27
|
-
import { cloneGCData, unpackChildNodesGCDetails } from "../../gc";
|
|
28
|
-
import { SummarizerNode } from "./summarizerNode";
|
|
22
|
+
import { cloneGCData, unpackChildNodesGCDetails } from "../../gc/index.js";
|
|
23
|
+
import { SummarizerNode } from "./summarizerNode.js";
|
|
29
24
|
import {
|
|
30
25
|
EscapedPath,
|
|
31
26
|
ICreateChildDetails,
|
|
32
|
-
|
|
27
|
+
IStartSummaryResult,
|
|
33
28
|
ISummarizerNodeRootContract,
|
|
34
29
|
SummaryNode,
|
|
35
30
|
ValidateSummaryResult,
|
|
36
|
-
} from "./summarizerNodeUtils";
|
|
31
|
+
} from "./summarizerNodeUtils.js";
|
|
37
32
|
|
|
38
33
|
export interface IRootSummarizerNodeWithGC
|
|
39
34
|
extends ISummarizerNodeWithGC,
|
|
@@ -111,7 +106,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
111
106
|
changeSequenceNumber: number,
|
|
112
107
|
/** Undefined means created without summary */
|
|
113
108
|
latestSummary?: SummaryNode,
|
|
114
|
-
initialSummary?: IInitialSummary,
|
|
115
109
|
wipSummaryLogger?: ITelemetryBaseLogger,
|
|
116
110
|
private readonly getGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
|
|
117
111
|
getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,
|
|
@@ -135,7 +129,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
135
129
|
config,
|
|
136
130
|
changeSequenceNumber,
|
|
137
131
|
latestSummary,
|
|
138
|
-
initialSummary,
|
|
139
132
|
wipSummaryLogger,
|
|
140
133
|
telemetryId,
|
|
141
134
|
);
|
|
@@ -239,7 +232,11 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
239
232
|
/**
|
|
240
233
|
* Called during the start of a summary. Updates the work-in-progress used routes.
|
|
241
234
|
*/
|
|
242
|
-
public startSummary(
|
|
235
|
+
public startSummary(
|
|
236
|
+
referenceSequenceNumber: number,
|
|
237
|
+
summaryLogger: ITelemetryBaseLogger,
|
|
238
|
+
latestSummaryRefSeqNum: number,
|
|
239
|
+
): IStartSummaryResult {
|
|
243
240
|
// If GC is disabled, skip setting wip used routes since we should not track GC state.
|
|
244
241
|
if (!this.gcDisabled) {
|
|
245
242
|
assert(
|
|
@@ -247,7 +244,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
247
244
|
0x1b4 /* "We should not already be tracking used routes when to track a new summary" */,
|
|
248
245
|
);
|
|
249
246
|
}
|
|
250
|
-
super.startSummary(referenceSequenceNumber, summaryLogger);
|
|
247
|
+
return super.startSummary(referenceSequenceNumber, summaryLogger, latestSummaryRefSeqNum);
|
|
251
248
|
}
|
|
252
249
|
|
|
253
250
|
/**
|
|
@@ -398,7 +395,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
398
395
|
createParam: CreateChildSummarizerNodeParam,
|
|
399
396
|
config: ISummarizerNodeConfigWithGC = {},
|
|
400
397
|
getGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,
|
|
401
|
-
getBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,
|
|
402
398
|
): ISummarizerNodeWithGC {
|
|
403
399
|
assert(!this.children.has(id), 0x1b6 /* "Create SummarizerNode child already exists" */);
|
|
404
400
|
/**
|
|
@@ -423,7 +419,6 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
423
419
|
},
|
|
424
420
|
createDetails.changeSequenceNumber,
|
|
425
421
|
createDetails.latestSummary,
|
|
426
|
-
createDetails.initialSummary,
|
|
427
422
|
this.wipSummaryLogger,
|
|
428
423
|
getGCDataFn,
|
|
429
424
|
getChildBaseGCDetailsFn,
|
|
@@ -563,7 +558,6 @@ export const createRootSummarizerNodeWithGC = (
|
|
|
563
558
|
referenceSequenceNumber === undefined
|
|
564
559
|
? undefined
|
|
565
560
|
: SummaryNode.createForRoot(referenceSequenceNumber),
|
|
566
|
-
undefined /* initialSummary */,
|
|
567
561
|
undefined /* wipSummaryLogger */,
|
|
568
562
|
getGCDataFn,
|
|
569
563
|
getBaseGCDetailsFn,
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
|
-
import { IEvent, IEventProvider,
|
|
6
|
+
import { IEvent, IEventProvider, ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
7
7
|
import { ITelemetryLoggerExt, ITelemetryLoggerPropertyBag } from "@fluidframework/telemetry-utils";
|
|
8
8
|
import { ContainerWarning, IDeltaManager } from "@fluidframework/container-definitions";
|
|
9
9
|
import {
|
|
@@ -12,9 +12,9 @@ import {
|
|
|
12
12
|
IDocumentMessage,
|
|
13
13
|
} from "@fluidframework/protocol-definitions";
|
|
14
14
|
import { ISummaryStats } from "@fluidframework/runtime-definitions";
|
|
15
|
-
import { ISummaryConfigurationHeuristics } from "../containerRuntime";
|
|
16
|
-
import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection";
|
|
17
|
-
import { SummarizeReason } from "./summaryGenerator";
|
|
15
|
+
import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
|
|
16
|
+
import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection.js";
|
|
17
|
+
import { SummarizeReason } from "./summaryGenerator.js";
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* Similar to AbortSignal, but using promise instead of events
|
|
@@ -63,20 +63,6 @@ export interface ISummarizerInternalsProvider {
|
|
|
63
63
|
refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
-
/**
|
|
67
|
-
* @deprecated Options that control the behavior of a running summarizer.
|
|
68
|
-
* @public
|
|
69
|
-
* */
|
|
70
|
-
export interface ISummarizerOptions {
|
|
71
|
-
/**
|
|
72
|
-
* Set to true to disable the default heuristics from running; false by default.
|
|
73
|
-
* This affects only the heuristics around when a summarizer should
|
|
74
|
-
* submit summaries. So when it is disabled, summarizer clients should
|
|
75
|
-
* not be expected to summarize unless an on-demand summary is requested.
|
|
76
|
-
*/
|
|
77
|
-
disableHeuristics: boolean;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
66
|
/**
|
|
81
67
|
* @internal
|
|
82
68
|
*/
|
|
@@ -141,6 +127,8 @@ export interface ISubmitSummaryOptions extends ISummarizeOptions {
|
|
|
141
127
|
readonly cancellationToken: ISummaryCancellationToken;
|
|
142
128
|
/** Summarization may be attempted multiple times. This tells whether this is the final summarization attempt. */
|
|
143
129
|
readonly finalAttempt?: boolean;
|
|
130
|
+
/** The sequence number of the latest summary used to validate if summary state is correct before summarizing */
|
|
131
|
+
readonly latestSummaryRefSeqNum: number;
|
|
144
132
|
}
|
|
145
133
|
|
|
146
134
|
/**
|
|
@@ -377,7 +365,7 @@ export type EnqueueSummarizeResult =
|
|
|
377
365
|
* @alpha
|
|
378
366
|
*/
|
|
379
367
|
export type SummarizerStopReason =
|
|
380
|
-
/** Summarizer client failed to summarize in all
|
|
368
|
+
/** Summarizer client failed to summarize in all attempts. */
|
|
381
369
|
| "failToSummarize"
|
|
382
370
|
/** Parent client reported that it is no longer connected. */
|
|
383
371
|
| "parentNotConnected"
|
|
@@ -438,7 +426,7 @@ export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
|
|
|
438
426
|
/* Closes summarizer. Any pending processes (summary in flight) are abandoned. */
|
|
439
427
|
close(): void;
|
|
440
428
|
|
|
441
|
-
run(onBehalfOf: string
|
|
429
|
+
run(onBehalfOf: string): Promise<SummarizerStopReason>;
|
|
442
430
|
|
|
443
431
|
/**
|
|
444
432
|
* Attempts to generate a summary on demand. If already running, takes no action.
|
|
@@ -551,10 +539,10 @@ type ISummarizeTelemetryOptionalProperties =
|
|
|
551
539
|
| keyof ISummarizeOptions;
|
|
552
540
|
|
|
553
541
|
export type ISummarizeTelemetryProperties = Pick<
|
|
554
|
-
|
|
542
|
+
ITelemetryBaseProperties,
|
|
555
543
|
ISummarizeTelemetryRequiredProperties
|
|
556
544
|
> &
|
|
557
|
-
Partial<Pick<
|
|
545
|
+
Partial<Pick<ITelemetryBaseProperties, ISummarizeTelemetryOptionalProperties>>;
|
|
558
546
|
|
|
559
547
|
/** Strategy used to heuristically determine when we should run a summary */
|
|
560
548
|
export interface ISummaryHeuristicStrategy {
|
|
@@ -620,10 +608,10 @@ type SummaryGeneratorOptionalTelemetryProperties =
|
|
|
620
608
|
| "stage";
|
|
621
609
|
|
|
622
610
|
export type SummaryGeneratorTelemetry = Pick<
|
|
623
|
-
|
|
611
|
+
ITelemetryBaseProperties,
|
|
624
612
|
SummaryGeneratorRequiredTelemetryProperties
|
|
625
613
|
> &
|
|
626
|
-
Partial<Pick<
|
|
614
|
+
Partial<Pick<ITelemetryBaseProperties, SummaryGeneratorOptionalTelemetryProperties>>;
|
|
627
615
|
|
|
628
616
|
export interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {
|
|
629
617
|
/** Number of times the summarizer run. */
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
gcTreeKey,
|
|
20
20
|
ISummaryTreeWithStats,
|
|
21
21
|
} from "@fluidframework/runtime-definitions";
|
|
22
|
-
import { IGCMetadata } from "../gc";
|
|
22
|
+
import { IGCMetadata } from "../gc/index.js";
|
|
23
23
|
|
|
24
24
|
type OmitAttributesVersions<T> = Omit<T, "snapshotFormatVersion" | "summaryFormatVersion">;
|
|
25
25
|
interface IFluidDataStoreAttributes0 {
|
|
@@ -85,6 +85,20 @@ 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
|
+
|
|
88
102
|
/**
|
|
89
103
|
* @alpha
|
|
90
104
|
*/
|
|
@@ -99,7 +113,7 @@ export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGC
|
|
|
99
113
|
/** GUID to identify a document in telemetry */
|
|
100
114
|
readonly telemetryDocumentId?: string;
|
|
101
115
|
/** True if the runtime IdCompressor is enabled */
|
|
102
|
-
readonly
|
|
116
|
+
readonly idCompressorMode?: IdCompressorMode;
|
|
103
117
|
}
|
|
104
118
|
|
|
105
119
|
/**
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
PerformanceEvent,
|
|
9
9
|
LoggingError,
|
|
10
10
|
} from "@fluidframework/telemetry-utils";
|
|
11
|
-
import {
|
|
11
|
+
import { ITelemetryBaseProperties } from "@fluidframework/core-interfaces";
|
|
12
12
|
|
|
13
13
|
import {
|
|
14
14
|
assert,
|
|
@@ -32,8 +32,9 @@ import {
|
|
|
32
32
|
ISummaryCancellationToken,
|
|
33
33
|
SummaryGeneratorTelemetry,
|
|
34
34
|
SubmitSummaryFailureData,
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
IRefreshSummaryAckOptions,
|
|
36
|
+
} from "./summarizerTypes.js";
|
|
37
|
+
import { IClientSummaryWatcher } from "./summaryCollection.js";
|
|
37
38
|
|
|
38
39
|
export type raceTimerResult<T> =
|
|
39
40
|
| { result: "done"; value: T }
|
|
@@ -186,7 +187,7 @@ export class RetriableSummaryError extends LoggingError {
|
|
|
186
187
|
constructor(
|
|
187
188
|
message: string,
|
|
188
189
|
public readonly retryAfterSeconds?: number,
|
|
189
|
-
props?:
|
|
190
|
+
props?: ITelemetryBaseProperties,
|
|
190
191
|
) {
|
|
191
192
|
super(message, props);
|
|
192
193
|
}
|
|
@@ -204,6 +205,9 @@ export class SummaryGenerator {
|
|
|
204
205
|
options: ISubmitSummaryOptions,
|
|
205
206
|
) => Promise<SubmitSummaryResult>,
|
|
206
207
|
private readonly successfulSummaryCallback: () => void,
|
|
208
|
+
private readonly refreshLatestSummaryCallback: (
|
|
209
|
+
options: IRefreshSummaryAckOptions,
|
|
210
|
+
) => Promise<void>,
|
|
207
211
|
private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
|
|
208
212
|
private readonly logger: ITelemetryLoggerExt,
|
|
209
213
|
) {
|
|
@@ -435,6 +439,14 @@ export class SummaryGenerator {
|
|
|
435
439
|
...summarizeTelemetryProps,
|
|
436
440
|
handle: ackNackOp.contents.handle,
|
|
437
441
|
});
|
|
442
|
+
// This processes the summary ack of the successful summary. This is so that the next summary does not
|
|
443
|
+
// start before the ack of the previous summary is processed.
|
|
444
|
+
await this.refreshLatestSummaryCallback({
|
|
445
|
+
proposalHandle: summarizeOp.contents.handle,
|
|
446
|
+
ackHandle: ackNackOp.contents.handle,
|
|
447
|
+
summaryRefSeq: summarizeOp.referenceSequenceNumber,
|
|
448
|
+
summaryLogger,
|
|
449
|
+
});
|
|
438
450
|
resultsBuilder.receivedSummaryAckOrNack.resolve({
|
|
439
451
|
success: true,
|
|
440
452
|
data: {
|
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
PerformanceEvent,
|
|
18
18
|
} from "@fluidframework/telemetry-utils";
|
|
19
19
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
20
|
-
import { IThrottler } from "../throttler";
|
|
21
|
-
import { ISummarizerClientElection } from "./summarizerClientElection";
|
|
20
|
+
import { IThrottler } from "../throttler.js";
|
|
21
|
+
import { ISummarizerClientElection } from "./summarizerClientElection.js";
|
|
22
22
|
import {
|
|
23
23
|
EnqueueSummarizeResult,
|
|
24
24
|
IEnqueueSummarizeOptions,
|
|
@@ -28,9 +28,9 @@ import {
|
|
|
28
28
|
ISummarizer,
|
|
29
29
|
ISummarizerEvents,
|
|
30
30
|
SummarizerStopReason,
|
|
31
|
-
} from "./summarizerTypes";
|
|
32
|
-
import { SummaryCollection } from "./summaryCollection";
|
|
33
|
-
import { Summarizer } from "./summarizer";
|
|
31
|
+
} from "./summarizerTypes.js";
|
|
32
|
+
import { SummaryCollection } from "./summaryCollection.js";
|
|
33
|
+
import { Summarizer } from "./summarizer.js";
|
|
34
34
|
|
|
35
35
|
const defaultInitialDelayMs = 5000;
|
|
36
36
|
const defaultOpsToBypassInitialDelay = 4000;
|
|
@@ -120,7 +120,6 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
|
|
|
120
120
|
initialDelayMs = defaultInitialDelayMs,
|
|
121
121
|
opsToBypassInitialDelay = defaultOpsToBypassInitialDelay,
|
|
122
122
|
}: Readonly<Partial<ISummaryManagerConfig>> = {},
|
|
123
|
-
private readonly disableHeuristics?: boolean,
|
|
124
123
|
) {
|
|
125
124
|
super();
|
|
126
125
|
|
|
@@ -295,7 +294,7 @@ export class SummaryManager extends TypedEventEmitter<ISummarizerEvents> impleme
|
|
|
295
294
|
return PerformanceEvent.timedExecAsync(
|
|
296
295
|
this.logger,
|
|
297
296
|
{ eventName: "RunningSummarizer", attempt: this.startThrottler.numAttempts },
|
|
298
|
-
async () => summarizer.run(clientId
|
|
297
|
+
async () => summarizer.run(clientId),
|
|
299
298
|
);
|
|
300
299
|
})
|
|
301
300
|
.then((reason: string) => {
|
package/tsconfig.json
CHANGED
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends":
|
|
3
|
-
"../../../common/build/build-common/tsconfig.base.json",
|
|
4
|
-
"../../../common/build/build-common/tsconfig.cjs.json",
|
|
5
|
-
],
|
|
2
|
+
"extends": "../../../common/build/build-common/tsconfig.node16.json",
|
|
6
3
|
"include": ["src/**/*"],
|
|
7
4
|
"exclude": ["src/test/**/*"],
|
|
8
5
|
"compilerOptions": {
|
|
9
6
|
"rootDir": "./src",
|
|
10
|
-
"outDir": "./
|
|
7
|
+
"outDir": "./lib",
|
|
11
8
|
},
|
|
12
9
|
}
|