@fluidframework/container-runtime 2.0.0-dev-rc.1.0.0.232845 → 2.0.0-dev-rc.2.0.0.245554
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +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 +425 -33
- 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.d.ts +0 -5
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +0 -12
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +225 -0
- package/dist/channelCollection.d.ts.map +1 -0
- package/dist/{dataStores.js → channelCollection.js} +447 -147
- 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 +129 -48
- package/dist/container-runtime-beta.d.ts +68 -9
- package/dist/container-runtime-public.d.ts +68 -9
- package/dist/container-runtime-untrimmed.d.ts +692 -49
- 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 +81 -64
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +503 -368
- 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 +118 -41
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +248 -159
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +2 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +1 -0
- 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 +12 -6
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +116 -78
- 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 +30 -23
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +22 -13
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +7 -4
- 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 +6 -7
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +20 -18
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts +1 -1
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +10 -10
- 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 -39
- package/dist/gc/index.js.map +1 -1
- package/dist/index.d.ts +11 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +36 -42
- package/dist/index.js.map +1 -1
- package/dist/messageTypes.d.ts +3 -3
- 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 +5 -4
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +47 -32
- 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 +16 -5
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +40 -10
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +9 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +3 -4
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +12 -12
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +9 -20
- 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 -6
- package/lib/blobManager.d.ts.map +1 -0
- package/lib/{blobManager.mjs → blobManager.js} +1 -13
- package/lib/blobManager.js.map +1 -0
- package/lib/channelCollection.d.ts +225 -0
- package/lib/channelCollection.d.ts.map +1 -0
- package/lib/{dataStores.mjs → channelCollection.js} +434 -137
- 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} +129 -48
- package/lib/{container-runtime-beta.d.mts → container-runtime-beta.d.ts} +68 -9
- package/lib/{container-runtime-public.d.mts → container-runtime-public.d.ts} +68 -9
- package/lib/{container-runtime-untrimmed.d.mts → container-runtime-untrimmed.d.ts} +692 -49
- 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} +86 -65
- package/lib/containerRuntime.d.ts.map +1 -0
- package/lib/{containerRuntime.mjs → containerRuntime.js} +423 -290
- 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} +119 -42
- package/lib/dataStoreContext.d.ts.map +1 -0
- package/lib/{dataStoreContext.mjs → dataStoreContext.js} +240 -151
- package/lib/dataStoreContext.js.map +1 -0
- package/lib/{dataStoreContexts.d.mts → dataStoreContexts.d.ts} +3 -2
- package/lib/dataStoreContexts.d.ts.map +1 -0
- package/lib/{dataStoreContexts.mjs → dataStoreContexts.js} +2 -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} +13 -7
- package/lib/gc/garbageCollection.d.ts.map +1 -0
- package/lib/gc/{garbageCollection.mjs → garbageCollection.js} +79 -41
- 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} +14 -7
- package/lib/gc/gcConfigs.js.map +1 -0
- package/lib/gc/{gcDefinitions.d.mts → gcDefinitions.d.ts} +23 -14
- package/lib/gc/gcDefinitions.d.ts.map +1 -0
- package/lib/gc/{gcDefinitions.mjs → gcDefinitions.js} +7 -4
- 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} +7 -8
- package/lib/gc/gcTelemetry.d.ts.map +1 -0
- package/lib/gc/{gcTelemetry.mjs → gcTelemetry.js} +5 -3
- package/lib/gc/gcTelemetry.js.map +1 -0
- package/lib/gc/{gcUnreferencedStateTracker.d.mts → gcUnreferencedStateTracker.d.ts} +2 -2
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
- package/lib/gc/{gcUnreferencedStateTracker.mjs → gcUnreferencedStateTracker.js} +2 -2
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -0
- package/lib/gc/index.d.ts +13 -0
- 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} +12 -22
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +15 -0
- package/lib/index.js.map +1 -0
- package/lib/{messageTypes.d.mts → messageTypes.d.ts} +4 -4
- 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} +6 -5
- package/lib/summary/runningSummarizer.d.ts.map +1 -0
- package/lib/summary/{runningSummarizer.mjs → runningSummarizer.js} +41 -26
- 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} +17 -6
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNode.mjs → summarizerNode.js} +34 -4
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeUtils.d.mts → summarizerNodeUtils.d.ts} +10 -2
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeUtils.mjs → summarizerNodeUtils.js} +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.mts → summarizerNodeWithGc.d.ts} +4 -5
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeWithGc.mjs → summarizerNodeWithGc.js} +7 -7
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
- package/lib/summary/{summarizerTypes.d.mts → summarizerTypes.d.ts} +10 -21
- 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 +138 -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 +771 -0
- package/lib/test/dataStoreContext.spec.js.map +1 -0
- package/lib/test/dataStoreCreation.spec.js +303 -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 +1464 -0
- package/lib/test/gc/garbageCollection.spec.js.map +1 -0
- package/lib/test/gc/gcConfigs.spec.js +689 -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 +390 -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 +101 -88
- package/src/batchTracker.ts +1 -1
- package/src/blobManager.ts +1 -15
- package/src/{dataStores.ts → channelCollection.ts} +620 -175
- package/src/connectionTelemetry.ts +42 -3
- package/src/containerHandleContext.ts +1 -1
- package/src/containerRuntime.ts +604 -415
- package/src/dataStore.ts +16 -15
- package/src/dataStoreContext.ts +376 -216
- package/src/dataStoreContexts.ts +2 -1
- package/src/deltaManagerSummarizerProxy.ts +132 -7
- package/src/gc/garbageCollection.ts +84 -44
- package/src/gc/gcConfigs.ts +17 -7
- package/src/gc/gcDefinitions.ts +23 -13
- 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 +9 -7
- package/src/gc/gcUnreferencedStateTracker.ts +1 -1
- package/src/gc/index.ts +10 -9
- package/src/index.ts +28 -27
- package/src/messageTypes.ts +3 -3
- 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 +52 -32
- 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 +50 -5
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +14 -1
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +11 -11
- package/src/summary/summarizerTypes.ts +11 -23
- 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 -151
- 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 -151
- 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 +0 -13
- 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 -25
- 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
package/src/summary/index.ts
CHANGED
|
@@ -10,28 +10,28 @@ export {
|
|
|
10
10
|
ITrackedClient,
|
|
11
11
|
OrderedClientCollection,
|
|
12
12
|
OrderedClientElection,
|
|
13
|
-
} from "./orderedClientElection";
|
|
14
|
-
export { defaultMaxAttemptsForSubmitFailures, RunningSummarizer } from "./runningSummarizer";
|
|
13
|
+
} from "./orderedClientElection.js";
|
|
14
|
+
export { defaultMaxAttemptsForSubmitFailures, RunningSummarizer } from "./runningSummarizer.js";
|
|
15
15
|
export {
|
|
16
16
|
ICancellableSummarizerController,
|
|
17
17
|
neverCancelledSummaryToken,
|
|
18
18
|
RunWhileConnectedCoordinator,
|
|
19
|
-
} from "./runWhileConnectedCoordinator";
|
|
20
|
-
export { Summarizer } from "./summarizer";
|
|
19
|
+
} from "./runWhileConnectedCoordinator.js";
|
|
20
|
+
export { Summarizer } from "./summarizer.js";
|
|
21
21
|
export {
|
|
22
22
|
ISummarizerClientElection,
|
|
23
23
|
ISummarizerClientElectionEvents,
|
|
24
24
|
SummarizerClientElection,
|
|
25
25
|
summarizerClientType,
|
|
26
|
-
} from "./summarizerClientElection";
|
|
27
|
-
export { SummarizeHeuristicData, SummarizeHeuristicRunner } from "./summarizerHeuristics";
|
|
26
|
+
} from "./summarizerClientElection.js";
|
|
27
|
+
export { SummarizeHeuristicData, SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
|
|
28
28
|
export {
|
|
29
29
|
createRootSummarizerNode,
|
|
30
30
|
createRootSummarizerNodeWithGC,
|
|
31
31
|
IRefreshSummaryResult,
|
|
32
32
|
IRootSummarizerNode,
|
|
33
33
|
IRootSummarizerNodeWithGC,
|
|
34
|
-
} from "./summarizerNode";
|
|
34
|
+
} from "./summarizerNode/index.js";
|
|
35
35
|
export {
|
|
36
36
|
IConnectableRuntime,
|
|
37
37
|
IGeneratedSummaryStats,
|
|
@@ -65,7 +65,7 @@ export {
|
|
|
65
65
|
SummaryStage,
|
|
66
66
|
IRetriableFailureResult,
|
|
67
67
|
ISummarizeEventProps,
|
|
68
|
-
} from "./summarizerTypes";
|
|
68
|
+
} from "./summarizerTypes.js";
|
|
69
69
|
export {
|
|
70
70
|
IAckedSummary,
|
|
71
71
|
ISummaryCollectionOpEvents,
|
|
@@ -77,7 +77,7 @@ export {
|
|
|
77
77
|
ISummaryNackMessage,
|
|
78
78
|
OpActionEventListener,
|
|
79
79
|
OpActionEventName,
|
|
80
|
-
} from "./summaryCollection";
|
|
80
|
+
} from "./summaryCollection.js";
|
|
81
81
|
export {
|
|
82
82
|
aliasBlobName,
|
|
83
83
|
blobsTreeName,
|
|
@@ -98,12 +98,13 @@ export {
|
|
|
98
98
|
WriteFluidDataStoreAttributes,
|
|
99
99
|
wrapSummaryInChannelsTree,
|
|
100
100
|
idCompressorBlobName,
|
|
101
|
-
|
|
102
|
-
|
|
101
|
+
IdCompressorMode,
|
|
102
|
+
} from "./summaryFormat.js";
|
|
103
|
+
export { getFailMessage, RetriableSummaryError, SummarizeReason } from "./summaryGenerator.js";
|
|
103
104
|
export {
|
|
104
105
|
IConnectedEvents,
|
|
105
106
|
IConnectedState,
|
|
106
107
|
ISummaryManagerConfig,
|
|
107
108
|
SummaryManager,
|
|
108
109
|
SummaryManagerState,
|
|
109
|
-
} from "./summaryManager";
|
|
110
|
+
} from "./summaryManager.js";
|
|
@@ -13,7 +13,7 @@ import { assert } from "@fluidframework/core-utils";
|
|
|
13
13
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
14
14
|
import { IDeltaManager } from "@fluidframework/container-definitions";
|
|
15
15
|
import { IClient, IQuorumClients, ISequencedClient } from "@fluidframework/protocol-definitions";
|
|
16
|
-
import { summarizerClientType } from "./summarizerClientElection";
|
|
16
|
+
import { summarizerClientType } from "./summarizerClientElection.js";
|
|
17
17
|
|
|
18
18
|
// helper types for recursive readonly.
|
|
19
19
|
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
@@ -15,9 +15,9 @@ import { assert, delay, Deferred, PromiseTimer } from "@fluidframework/core-util
|
|
|
15
15
|
import { TypedEventEmitter } from "@fluid-internal/client-utils";
|
|
16
16
|
import { DriverErrorTypes } from "@fluidframework/driver-definitions";
|
|
17
17
|
import { ISequencedDocumentMessage, MessageType } from "@fluidframework/protocol-definitions";
|
|
18
|
-
import { ISummaryConfiguration } from "../containerRuntime";
|
|
19
|
-
import { opSize } from "../opProperties";
|
|
20
|
-
import { SummarizeHeuristicRunner } from "./summarizerHeuristics";
|
|
18
|
+
import { ISummaryConfiguration } from "../containerRuntime.js";
|
|
19
|
+
import { opSize } from "../opProperties.js";
|
|
20
|
+
import { SummarizeHeuristicRunner } from "./summarizerHeuristics.js";
|
|
21
21
|
import {
|
|
22
22
|
IEnqueueSummarizeOptions,
|
|
23
23
|
ISummarizeOptions,
|
|
@@ -36,14 +36,14 @@ import {
|
|
|
36
36
|
IRefreshSummaryAckOptions,
|
|
37
37
|
ISummarizerEvents,
|
|
38
38
|
ISummarizeEventProps,
|
|
39
|
-
} from "./summarizerTypes";
|
|
40
|
-
import { IAckedSummary, IClientSummaryWatcher, SummaryCollection } from "./summaryCollection";
|
|
39
|
+
} from "./summarizerTypes.js";
|
|
40
|
+
import { IAckedSummary, IClientSummaryWatcher, SummaryCollection } from "./summaryCollection.js";
|
|
41
41
|
import {
|
|
42
42
|
raceTimer,
|
|
43
43
|
SummarizeReason,
|
|
44
44
|
SummarizeResultBuilder,
|
|
45
45
|
SummaryGenerator,
|
|
46
|
-
} from "./summaryGenerator";
|
|
46
|
+
} from "./summaryGenerator.js";
|
|
47
47
|
|
|
48
48
|
const maxSummarizeAckWaitTime = 10 * 60 * 1000; // 10 minutes
|
|
49
49
|
|
|
@@ -254,6 +254,9 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
|
|
|
254
254
|
}
|
|
255
255
|
});
|
|
256
256
|
|
|
257
|
+
const immediatelyRefreshLatestSummaryAck =
|
|
258
|
+
this.mc.config.getBoolean("Fluid.Summarizer.immediatelyRefreshLatestSummaryAck") ??
|
|
259
|
+
true;
|
|
257
260
|
this.generator = new SummaryGenerator(
|
|
258
261
|
this.pendingAckTimer,
|
|
259
262
|
this.heuristicData,
|
|
@@ -261,6 +264,11 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
|
|
|
261
264
|
() => {
|
|
262
265
|
this.totalSuccessfulAttempts++;
|
|
263
266
|
},
|
|
267
|
+
async (options: IRefreshSummaryAckOptions) => {
|
|
268
|
+
if (immediatelyRefreshLatestSummaryAck) {
|
|
269
|
+
await this.refreshLatestSummaryAckAndHandleError(options);
|
|
270
|
+
}
|
|
271
|
+
},
|
|
264
272
|
this.summaryWatcher,
|
|
265
273
|
this.mc.logger,
|
|
266
274
|
);
|
|
@@ -303,40 +311,48 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
|
|
|
303
311
|
// https://dev.azure.com/fluidframework/internal/_workitems/edit/779
|
|
304
312
|
await this.lockedSummaryAction(
|
|
305
313
|
() => {},
|
|
306
|
-
async () =>
|
|
307
|
-
|
|
314
|
+
async () => {
|
|
315
|
+
const options: IRefreshSummaryAckOptions = {
|
|
308
316
|
proposalHandle: summaryOpHandle,
|
|
309
317
|
ackHandle: summaryAckHandle,
|
|
310
318
|
summaryRefSeq: refSequenceNumber,
|
|
311
319
|
summaryLogger,
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
// latest version with which we will refresh the state. However in case of single commit
|
|
316
|
-
// summary, we might me missing a summary ack, so in that case we are still fine as the
|
|
317
|
-
// code in `submitSummary` function in container runtime, will refresh the latest state
|
|
318
|
-
// by calling `prefetchLatestSummaryThenClose`. We will load the next summarizer from the
|
|
319
|
-
// updated state and be fine.
|
|
320
|
-
const isIgnoredError =
|
|
321
|
-
isFluidError(error) &&
|
|
322
|
-
error.errorType === DriverErrorTypes.fileNotFoundOrAccessDeniedError;
|
|
323
|
-
|
|
324
|
-
summaryLogger.sendTelemetryEvent(
|
|
325
|
-
{
|
|
326
|
-
eventName: isIgnoredError
|
|
327
|
-
? "HandleSummaryAckErrorIgnored"
|
|
328
|
-
: "HandleLastSummaryAckError",
|
|
329
|
-
referenceSequenceNumber: refSequenceNumber,
|
|
330
|
-
proposalHandle: summaryOpHandle,
|
|
331
|
-
ackHandle: summaryAckHandle,
|
|
332
|
-
},
|
|
333
|
-
error,
|
|
334
|
-
);
|
|
335
|
-
}),
|
|
320
|
+
};
|
|
321
|
+
await this.refreshLatestSummaryAckAndHandleError(options);
|
|
322
|
+
},
|
|
336
323
|
() => {},
|
|
337
324
|
);
|
|
338
325
|
}
|
|
339
326
|
|
|
327
|
+
private readonly refreshLatestSummaryAckAndHandleError = async (
|
|
328
|
+
options: IRefreshSummaryAckOptions,
|
|
329
|
+
) => {
|
|
330
|
+
return this.refreshLatestSummaryAckCallback(options).catch(async (error) => {
|
|
331
|
+
// If the error is 404, so maybe the fetched version no longer exists on server. We just
|
|
332
|
+
// ignore this error in that case, as that means we will have another summaryAck for the
|
|
333
|
+
// latest version with which we will refresh the state. However in case of single commit
|
|
334
|
+
// summary, we might be missing a summary ack, so in that case we are still fine as the
|
|
335
|
+
// code in `submitSummary` function in container runtime, will refresh the latest state
|
|
336
|
+
// by calling `prefetchLatestSummaryThenClose`. We will load the next summarizer from the
|
|
337
|
+
// updated state and be fine.
|
|
338
|
+
const isIgnoredError =
|
|
339
|
+
isFluidError(error) &&
|
|
340
|
+
error.errorType === DriverErrorTypes.fileNotFoundOrAccessDeniedError;
|
|
341
|
+
|
|
342
|
+
options.summaryLogger.sendTelemetryEvent(
|
|
343
|
+
{
|
|
344
|
+
eventName: isIgnoredError
|
|
345
|
+
? "HandleSummaryAckErrorIgnored"
|
|
346
|
+
: "HandleLastSummaryAckError",
|
|
347
|
+
referenceSequenceNumber: options.summaryRefSeq,
|
|
348
|
+
proposalHandle: options.proposalHandle,
|
|
349
|
+
ackHandle: options.ackHandle,
|
|
350
|
+
},
|
|
351
|
+
error,
|
|
352
|
+
);
|
|
353
|
+
});
|
|
354
|
+
};
|
|
355
|
+
|
|
340
356
|
/**
|
|
341
357
|
* Responsible for receiving and processing all the summary acks.
|
|
342
358
|
* It starts processing ACKs after the one for the summary this client loaded from (initialSequenceNumber). Any
|
|
@@ -565,6 +581,8 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
|
|
|
565
581
|
...options,
|
|
566
582
|
summaryLogger,
|
|
567
583
|
cancellationToken: this.cancellationToken,
|
|
584
|
+
latestSummaryRefSeqNum:
|
|
585
|
+
this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
|
|
568
586
|
};
|
|
569
587
|
const summarizeResult = this.generator.summarize(summaryOptions, resultsBuilder);
|
|
570
588
|
// ensure we wait till the end of the process
|
|
@@ -660,6 +678,7 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
|
|
|
660
678
|
...summarizeOptions,
|
|
661
679
|
summaryLogger,
|
|
662
680
|
cancellationToken: this.cancellationToken,
|
|
681
|
+
latestSummaryRefSeqNum: this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
|
|
663
682
|
};
|
|
664
683
|
|
|
665
684
|
// Note: no need to account for cancellationToken.waitCancelled here, as
|
|
@@ -731,6 +750,7 @@ export class RunningSummarizer extends TypedEventEmitter<ISummarizerEvents> impl
|
|
|
731
750
|
summaryLogger,
|
|
732
751
|
cancellationToken: this.cancellationToken,
|
|
733
752
|
finalAttempt,
|
|
753
|
+
latestSummaryRefSeqNum: this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
|
|
734
754
|
};
|
|
735
755
|
const summarizeResult = this.generator.summarize(summaryOptions);
|
|
736
756
|
return { summarizeProps, summarizeResult };
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
wrapErrorAndLog,
|
|
15
15
|
} from "@fluidframework/telemetry-utils";
|
|
16
16
|
import { IFluidHandleContext } from "@fluidframework/core-interfaces";
|
|
17
|
-
import { ISummaryConfiguration } from "../containerRuntime";
|
|
18
|
-
import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator";
|
|
19
|
-
import { SummaryCollection } from "./summaryCollection";
|
|
20
|
-
import { RunningSummarizer } from "./runningSummarizer";
|
|
17
|
+
import { ISummaryConfiguration } from "../containerRuntime.js";
|
|
18
|
+
import { ICancellableSummarizerController } from "./runWhileConnectedCoordinator.js";
|
|
19
|
+
import { SummaryCollection } from "./summaryCollection.js";
|
|
20
|
+
import { RunningSummarizer } from "./runningSummarizer.js";
|
|
21
21
|
import {
|
|
22
22
|
IConnectableRuntime,
|
|
23
23
|
ISummarizer,
|
|
@@ -32,9 +32,9 @@ import {
|
|
|
32
32
|
EnqueueSummarizeResult,
|
|
33
33
|
ISummarizerEvents,
|
|
34
34
|
ISummarizeEventProps,
|
|
35
|
-
} from "./summarizerTypes";
|
|
36
|
-
import { SummarizeHeuristicData } from "./summarizerHeuristics";
|
|
37
|
-
import { SummarizeResultBuilder } from "./summaryGenerator";
|
|
35
|
+
} from "./summarizerTypes.js";
|
|
36
|
+
import { SummarizeHeuristicData } from "./summarizerHeuristics.js";
|
|
37
|
+
import { SummarizeResultBuilder } from "./summaryGenerator.js";
|
|
38
38
|
|
|
39
39
|
const summarizingError = "summarizingError";
|
|
40
40
|
|
|
@@ -11,8 +11,8 @@ import {
|
|
|
11
11
|
IOrderedClientElection,
|
|
12
12
|
ISerializedElection,
|
|
13
13
|
ITrackedClient,
|
|
14
|
-
} from "./orderedClientElection";
|
|
15
|
-
import { ISummaryCollectionOpEvents } from "./summaryCollection";
|
|
14
|
+
} from "./orderedClientElection.js";
|
|
15
|
+
import { ISummaryCollectionOpEvents } from "./summaryCollection.js";
|
|
16
16
|
|
|
17
17
|
export const summarizerClientType = "summarizer";
|
|
18
18
|
|
|
@@ -5,14 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
import { ITelemetryLoggerExt } from "@fluidframework/telemetry-utils";
|
|
7
7
|
import { Timer } from "@fluidframework/core-utils";
|
|
8
|
-
import { ISummaryConfigurationHeuristics } from "../containerRuntime";
|
|
8
|
+
import { ISummaryConfigurationHeuristics } from "../containerRuntime.js";
|
|
9
9
|
import {
|
|
10
10
|
ISummarizeHeuristicData,
|
|
11
11
|
ISummarizeHeuristicRunner,
|
|
12
12
|
ISummarizeAttempt,
|
|
13
13
|
ISummaryHeuristicStrategy,
|
|
14
|
-
} from "./summarizerTypes";
|
|
15
|
-
import { SummarizeReason } from "./summaryGenerator";
|
|
14
|
+
} from "./summarizerTypes.js";
|
|
15
|
+
import { SummarizeReason } from "./summaryGenerator.js";
|
|
16
16
|
|
|
17
17
|
/** Simple implementation of class for tracking summarize heuristic data. */
|
|
18
18
|
export class SummarizeHeuristicData implements ISummarizeHeuristicData {
|
|
@@ -7,6 +7,9 @@ export {
|
|
|
7
7
|
IRefreshSummaryResult,
|
|
8
8
|
ISummarizerNodeRootContract,
|
|
9
9
|
ValidateSummaryResult,
|
|
10
|
-
} from "./summarizerNodeUtils";
|
|
11
|
-
export { IRootSummarizerNode, createRootSummarizerNode } from "./summarizerNode";
|
|
12
|
-
export {
|
|
10
|
+
} from "./summarizerNodeUtils.js";
|
|
11
|
+
export { IRootSummarizerNode, createRootSummarizerNode } from "./summarizerNode.js";
|
|
12
|
+
export {
|
|
13
|
+
IRootSummarizerNodeWithGC,
|
|
14
|
+
createRootSummarizerNodeWithGC,
|
|
15
|
+
} from "./summarizerNodeWithGc.js";
|
|
@@ -3,7 +3,7 @@
|
|
|
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,
|
|
@@ -26,6 +26,7 @@ import {
|
|
|
26
26
|
PerformanceEvent,
|
|
27
27
|
TelemetryDataTag,
|
|
28
28
|
tagCodeArtifacts,
|
|
29
|
+
type ITelemetryErrorEventExt,
|
|
29
30
|
} from "@fluidframework/telemetry-utils";
|
|
30
31
|
import { assert, unreachableCase } from "@fluidframework/core-utils";
|
|
31
32
|
import { mergeStats } from "@fluidframework/runtime-utils";
|
|
@@ -33,11 +34,12 @@ import {
|
|
|
33
34
|
EscapedPath,
|
|
34
35
|
ICreateChildDetails,
|
|
35
36
|
IRefreshSummaryResult,
|
|
37
|
+
IStartSummaryResult,
|
|
36
38
|
ISummarizerNodeRootContract,
|
|
37
39
|
parseSummaryForSubtrees,
|
|
38
40
|
SummaryNode,
|
|
39
41
|
ValidateSummaryResult,
|
|
40
|
-
} from "./summarizerNodeUtils";
|
|
42
|
+
} from "./summarizerNodeUtils.js";
|
|
41
43
|
|
|
42
44
|
export interface IRootSummarizerNode extends ISummarizerNode, ISummarizerNodeRootContract {}
|
|
43
45
|
|
|
@@ -96,7 +98,22 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
96
98
|
});
|
|
97
99
|
}
|
|
98
100
|
|
|
99
|
-
|
|
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 {
|
|
100
117
|
assert(
|
|
101
118
|
this.wipSummaryLogger === undefined,
|
|
102
119
|
0x19f /* "wipSummaryLogger should not be set yet in startSummary" */,
|
|
@@ -106,12 +123,40 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
106
123
|
0x1a0 /* "Already tracking a summary" */,
|
|
107
124
|
);
|
|
108
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
|
+
|
|
109
140
|
this.wipSummaryLogger = summaryLogger;
|
|
110
141
|
|
|
111
142
|
for (const child of this.children.values()) {
|
|
112
|
-
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
|
+
}
|
|
113
153
|
}
|
|
114
154
|
this.wipReferenceSequenceNumber = referenceSequenceNumber;
|
|
155
|
+
return {
|
|
156
|
+
nodes,
|
|
157
|
+
invalidNodes,
|
|
158
|
+
mismatchNumbers: sequenceNumberMismatchKeySet,
|
|
159
|
+
};
|
|
115
160
|
}
|
|
116
161
|
|
|
117
162
|
public async summarize(
|
|
@@ -623,7 +668,7 @@ export class SummarizerNode implements IRootSummarizerNode {
|
|
|
623
668
|
/**
|
|
624
669
|
* Creates and throws an error due to unexpected conditions.
|
|
625
670
|
*/
|
|
626
|
-
protected throwUnexpectedError(eventProps:
|
|
671
|
+
protected throwUnexpectedError(eventProps: ITelemetryErrorEventExt): never {
|
|
627
672
|
const error = new LoggingError(eventProps.eventName, {
|
|
628
673
|
...eventProps,
|
|
629
674
|
referenceSequenceNumber: this.wipReferenceSequenceNumber,
|
|
@@ -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;
|
|
@@ -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,15 +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,
|
|
27
|
+
IStartSummaryResult,
|
|
32
28
|
ISummarizerNodeRootContract,
|
|
33
29
|
SummaryNode,
|
|
34
30
|
ValidateSummaryResult,
|
|
35
|
-
} from "./summarizerNodeUtils";
|
|
31
|
+
} from "./summarizerNodeUtils.js";
|
|
36
32
|
|
|
37
33
|
export interface IRootSummarizerNodeWithGC
|
|
38
34
|
extends ISummarizerNodeWithGC,
|
|
@@ -236,7 +232,11 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
236
232
|
/**
|
|
237
233
|
* Called during the start of a summary. Updates the work-in-progress used routes.
|
|
238
234
|
*/
|
|
239
|
-
public startSummary(
|
|
235
|
+
public startSummary(
|
|
236
|
+
referenceSequenceNumber: number,
|
|
237
|
+
summaryLogger: ITelemetryBaseLogger,
|
|
238
|
+
latestSummaryRefSeqNum: number,
|
|
239
|
+
): IStartSummaryResult {
|
|
240
240
|
// If GC is disabled, skip setting wip used routes since we should not track GC state.
|
|
241
241
|
if (!this.gcDisabled) {
|
|
242
242
|
assert(
|
|
@@ -244,7 +244,7 @@ export class SummarizerNodeWithGC extends SummarizerNode implements IRootSummari
|
|
|
244
244
|
0x1b4 /* "We should not already be tracking used routes when to track a new summary" */,
|
|
245
245
|
);
|
|
246
246
|
}
|
|
247
|
-
super.startSummary(referenceSequenceNumber, summaryLogger);
|
|
247
|
+
return super.startSummary(referenceSequenceNumber, summaryLogger, latestSummaryRefSeqNum);
|
|
248
248
|
}
|
|
249
249
|
|
|
250
250
|
/**
|
|
@@ -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
|
/**
|
|
@@ -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
|
/**
|