@fluidframework/container-runtime 2.0.0-dev.3.1.0.125672 → 2.0.0-dev.4.2.0.153917
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/CHANGELOG.md +58 -0
- package/README.md +69 -0
- package/dist/blobManager.d.ts +29 -24
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +162 -92
- package/dist/blobManager.js.map +1 -1
- package/dist/containerRuntime.d.ts +74 -76
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +328 -264
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts +39 -13
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +112 -49
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStores.d.ts +28 -4
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +107 -41
- package/dist/dataStores.js.map +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts +19 -0
- package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -0
- package/dist/deltaManagerSummarizerProxy.js +40 -0
- package/dist/deltaManagerSummarizerProxy.js.map +1 -0
- package/dist/gc/garbageCollection.d.ts +204 -0
- package/dist/gc/garbageCollection.d.ts.map +1 -0
- package/dist/{garbageCollection.js → gc/garbageCollection.js} +190 -554
- package/dist/gc/garbageCollection.js.map +1 -0
- package/dist/gc/gcConfigs.d.ts +22 -0
- package/dist/gc/gcConfigs.d.ts.map +1 -0
- package/dist/gc/gcConfigs.js +143 -0
- package/dist/gc/gcConfigs.js.map +1 -0
- package/dist/gc/gcDefinitions.d.ts +320 -0
- package/dist/gc/gcDefinitions.d.ts.map +1 -0
- package/dist/gc/gcDefinitions.js +81 -0
- package/dist/gc/gcDefinitions.js.map +1 -0
- package/dist/gc/gcHelpers.d.ts +86 -0
- package/dist/gc/gcHelpers.d.ts.map +1 -0
- package/dist/gc/gcHelpers.js +268 -0
- package/dist/gc/gcHelpers.js.map +1 -0
- package/dist/gc/gcReferenceGraphAlgorithm.d.ts +16 -0
- package/dist/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
- package/dist/gc/gcReferenceGraphAlgorithm.js +49 -0
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -0
- package/dist/gc/gcSummaryDefinitions.d.ts +52 -0
- package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -0
- package/dist/gc/gcSummaryDefinitions.js +7 -0
- package/dist/gc/gcSummaryDefinitions.js.map +1 -0
- package/dist/gc/gcSummaryStateTracker.d.ts +93 -0
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -0
- package/dist/gc/gcSummaryStateTracker.js +239 -0
- package/dist/gc/gcSummaryStateTracker.js.map +1 -0
- package/dist/gc/gcSweepReadyUsageDetection.d.ts.map +1 -0
- package/dist/{gcSweepReadyUsageDetection.js → gc/gcSweepReadyUsageDetection.js} +2 -2
- package/dist/gc/gcSweepReadyUsageDetection.js.map +1 -0
- package/dist/gc/gcUnreferencedStateTracker.d.ts +34 -0
- package/dist/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
- package/dist/gc/gcUnreferencedStateTracker.js +94 -0
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -0
- package/dist/gc/index.d.ts +13 -0
- package/dist/gc/index.d.ts.map +1 -0
- package/dist/gc/index.js +50 -0
- package/dist/gc/index.js.map +1 -0
- package/dist/index.d.ts +3 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -9
- package/dist/index.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts +11 -13
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +26 -38
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +4 -0
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +2 -1
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +4 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +25 -10
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +4 -0
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +43 -4
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +14 -0
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/dist/opLifecycle/opGroupingManager.js +56 -0
- package/dist/opLifecycle/opGroupingManager.js.map +1 -0
- package/dist/opLifecycle/opSplitter.d.ts +16 -4
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +39 -15
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +21 -3
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +90 -51
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +30 -20
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts +3 -3
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +20 -21
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.d.ts +17 -0
- package/dist/storageServiceWithAttachBlobs.d.ts.map +1 -0
- package/dist/storageServiceWithAttachBlobs.js +32 -0
- package/dist/storageServiceWithAttachBlobs.js.map +1 -0
- package/dist/summary/index.d.ts +17 -0
- package/dist/summary/index.d.ts.map +1 -0
- package/dist/summary/index.js +48 -0
- package/dist/summary/index.js.map +1 -0
- package/dist/summary/orderedClientElection.d.ts.map +1 -0
- package/dist/summary/orderedClientElection.js.map +1 -0
- package/dist/{runWhileConnectedCoordinator.d.ts → summary/runWhileConnectedCoordinator.d.ts} +3 -2
- package/dist/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
- package/dist/{runWhileConnectedCoordinator.js → summary/runWhileConnectedCoordinator.js} +5 -4
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -0
- package/{lib → dist/summary}/runningSummarizer.d.ts +23 -20
- package/dist/summary/runningSummarizer.d.ts.map +1 -0
- package/dist/{runningSummarizer.js → summary/runningSummarizer.js} +191 -74
- package/dist/summary/runningSummarizer.js.map +1 -0
- package/dist/{summarizer.d.ts → summary/summarizer.d.ts} +4 -9
- package/dist/summary/summarizer.d.ts.map +1 -0
- package/dist/{summarizer.js → summary/summarizer.js} +10 -79
- package/dist/summary/summarizer.js.map +1 -0
- package/dist/summary/summarizerClientElection.d.ts.map +1 -0
- package/dist/summary/summarizerClientElection.js.map +1 -0
- package/dist/{summarizerHeuristics.d.ts → summary/summarizerHeuristics.d.ts} +2 -1
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -0
- package/dist/{summarizerHeuristics.js → summary/summarizerHeuristics.js} +6 -3
- package/dist/summary/summarizerHeuristics.js.map +1 -0
- package/dist/summary/summarizerNode/index.d.ts +8 -0
- package/dist/summary/summarizerNode/index.d.ts.map +1 -0
- package/dist/summary/summarizerNode/index.js +12 -0
- package/dist/summary/summarizerNode/index.js.map +1 -0
- package/dist/summary/summarizerNode/summarizerNode.d.ts +149 -0
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
- package/dist/summary/summarizerNode/summarizerNode.js +531 -0
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -0
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +125 -0
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +132 -0
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +148 -0
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +424 -0
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
- package/{lib → dist/summary}/summarizerTypes.d.ts +21 -19
- package/dist/summary/summarizerTypes.d.ts.map +1 -0
- package/dist/{summarizerTypes.js → summary/summarizerTypes.js} +0 -5
- package/dist/summary/summarizerTypes.js.map +1 -0
- package/dist/summary/summaryCollection.d.ts.map +1 -0
- package/dist/summary/summaryCollection.js.map +1 -0
- package/{lib → dist/summary}/summaryFormat.d.ts +3 -21
- package/dist/summary/summaryFormat.d.ts.map +1 -0
- package/dist/{summaryFormat.js → summary/summaryFormat.js} +1 -10
- package/dist/summary/summaryFormat.js.map +1 -0
- package/{lib → dist/summary}/summaryGenerator.d.ts +28 -2
- package/dist/summary/summaryGenerator.d.ts.map +1 -0
- package/dist/{summaryGenerator.js → summary/summaryGenerator.js} +23 -20
- package/dist/summary/summaryGenerator.js.map +1 -0
- package/dist/{summaryManager.d.ts → summary/summaryManager.d.ts} +1 -1
- package/dist/summary/summaryManager.d.ts.map +1 -0
- package/dist/summary/summaryManager.js.map +1 -0
- package/lib/blobManager.d.ts +29 -24
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +159 -89
- package/lib/blobManager.js.map +1 -1
- package/lib/containerRuntime.d.ts +74 -76
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +301 -237
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStoreContext.d.ts +39 -13
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +101 -38
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStores.d.ts +28 -4
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +100 -34
- package/lib/dataStores.js.map +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts +19 -0
- package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -0
- package/lib/deltaManagerSummarizerProxy.js +36 -0
- package/lib/deltaManagerSummarizerProxy.js.map +1 -0
- package/lib/gc/garbageCollection.d.ts +204 -0
- package/lib/gc/garbageCollection.d.ts.map +1 -0
- package/lib/{garbageCollection.js → gc/garbageCollection.js} +172 -535
- package/lib/gc/garbageCollection.js.map +1 -0
- package/lib/gc/gcConfigs.d.ts +22 -0
- package/lib/gc/gcConfigs.d.ts.map +1 -0
- package/lib/gc/gcConfigs.js +139 -0
- package/lib/gc/gcConfigs.js.map +1 -0
- package/lib/gc/gcDefinitions.d.ts +320 -0
- package/lib/gc/gcDefinitions.d.ts.map +1 -0
- package/lib/gc/gcDefinitions.js +78 -0
- package/lib/gc/gcDefinitions.js.map +1 -0
- package/lib/gc/gcHelpers.d.ts +86 -0
- package/lib/gc/gcHelpers.d.ts.map +1 -0
- package/lib/gc/gcHelpers.js +254 -0
- package/lib/gc/gcHelpers.js.map +1 -0
- package/lib/gc/gcReferenceGraphAlgorithm.d.ts +16 -0
- package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +1 -0
- package/lib/gc/gcReferenceGraphAlgorithm.js +45 -0
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -0
- package/lib/gc/gcSummaryDefinitions.d.ts +52 -0
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -0
- package/lib/gc/gcSummaryDefinitions.js +6 -0
- package/lib/gc/gcSummaryDefinitions.js.map +1 -0
- package/lib/gc/gcSummaryStateTracker.d.ts +93 -0
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -0
- package/lib/gc/gcSummaryStateTracker.js +235 -0
- package/lib/gc/gcSummaryStateTracker.js.map +1 -0
- package/lib/gc/gcSweepReadyUsageDetection.d.ts.map +1 -0
- package/lib/{gcSweepReadyUsageDetection.js → gc/gcSweepReadyUsageDetection.js} +1 -1
- package/lib/gc/gcSweepReadyUsageDetection.js.map +1 -0
- package/lib/gc/gcUnreferencedStateTracker.d.ts +34 -0
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +1 -0
- package/lib/gc/gcUnreferencedStateTracker.js +90 -0
- 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.js +12 -0
- package/lib/gc/index.js.map +1 -0
- package/lib/index.d.ts +3 -7
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -4
- package/lib/index.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts +11 -13
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +24 -37
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +4 -0
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +2 -1
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +2 -1
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +26 -11
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +4 -0
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +43 -4
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +14 -0
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/lib/opLifecycle/opGroupingManager.js +52 -0
- package/lib/opLifecycle/opGroupingManager.js.map +1 -0
- package/lib/opLifecycle/opSplitter.d.ts +16 -4
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +39 -15
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +21 -3
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +92 -53
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +30 -20
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts +3 -3
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +20 -21
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.d.ts +17 -0
- package/lib/storageServiceWithAttachBlobs.d.ts.map +1 -0
- package/lib/storageServiceWithAttachBlobs.js +28 -0
- package/lib/storageServiceWithAttachBlobs.js.map +1 -0
- package/lib/summary/index.d.ts +17 -0
- package/lib/summary/index.d.ts.map +1 -0
- package/lib/summary/index.js +16 -0
- package/lib/summary/index.js.map +1 -0
- package/lib/summary/orderedClientElection.d.ts.map +1 -0
- package/lib/summary/orderedClientElection.js.map +1 -0
- package/lib/{runWhileConnectedCoordinator.d.ts → summary/runWhileConnectedCoordinator.d.ts} +3 -2
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +1 -0
- package/lib/{runWhileConnectedCoordinator.js → summary/runWhileConnectedCoordinator.js} +5 -4
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -0
- package/{dist → lib/summary}/runningSummarizer.d.ts +23 -20
- package/lib/summary/runningSummarizer.d.ts.map +1 -0
- package/lib/{runningSummarizer.js → summary/runningSummarizer.js} +192 -75
- package/lib/summary/runningSummarizer.js.map +1 -0
- package/lib/{summarizer.d.ts → summary/summarizer.d.ts} +4 -9
- package/lib/summary/summarizer.d.ts.map +1 -0
- package/lib/{summarizer.js → summary/summarizer.js} +12 -81
- package/lib/summary/summarizer.js.map +1 -0
- package/lib/summary/summarizerClientElection.d.ts.map +1 -0
- package/lib/summary/summarizerClientElection.js.map +1 -0
- package/lib/{summarizerHeuristics.d.ts → summary/summarizerHeuristics.d.ts} +2 -1
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -0
- package/lib/{summarizerHeuristics.js → summary/summarizerHeuristics.js} +6 -3
- package/lib/summary/summarizerHeuristics.js.map +1 -0
- package/lib/summary/summarizerNode/index.d.ts +8 -0
- 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.ts +149 -0
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -0
- package/lib/summary/summarizerNode/summarizerNode.js +526 -0
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -0
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +125 -0
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -0
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +125 -0
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -0
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +148 -0
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -0
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +419 -0
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -0
- package/{dist → lib/summary}/summarizerTypes.d.ts +21 -19
- package/lib/summary/summarizerTypes.d.ts.map +1 -0
- package/lib/summary/summarizerTypes.js +6 -0
- package/lib/summary/summarizerTypes.js.map +1 -0
- package/lib/summary/summaryCollection.d.ts.map +1 -0
- package/lib/summary/summaryCollection.js.map +1 -0
- package/{dist → lib/summary}/summaryFormat.d.ts +3 -21
- package/lib/summary/summaryFormat.d.ts.map +1 -0
- package/lib/{summaryFormat.js → summary/summaryFormat.js} +0 -8
- package/lib/summary/summaryFormat.js.map +1 -0
- package/{dist → lib/summary}/summaryGenerator.d.ts +28 -2
- package/lib/summary/summaryGenerator.d.ts.map +1 -0
- package/lib/{summaryGenerator.js → summary/summaryGenerator.js} +21 -19
- package/lib/summary/summaryGenerator.js.map +1 -0
- package/lib/{summaryManager.d.ts → summary/summaryManager.d.ts} +1 -1
- package/lib/summary/summaryManager.d.ts.map +1 -0
- package/lib/summary/summaryManager.js.map +1 -0
- package/package.json +66 -60
- package/src/blobManager.ts +196 -110
- package/src/containerRuntime.ts +491 -391
- package/src/dataStoreContext.ts +140 -49
- package/src/dataStores.ts +139 -41
- package/src/deltaManagerSummarizerProxy.ts +46 -0
- package/{garbageCollection.md → src/gc/garbageCollection.md} +2 -2
- package/src/{garbageCollection.ts → gc/garbageCollection.ts} +245 -890
- package/src/gc/gcConfigs.ts +193 -0
- package/src/gc/gcDefinitions.ts +387 -0
- package/src/gc/gcHelpers.ts +335 -0
- package/src/gc/gcReferenceGraphAlgorithm.ts +52 -0
- package/src/gc/gcSummaryDefinitions.ts +54 -0
- package/src/gc/gcSummaryStateTracker.ts +329 -0
- package/src/{gcSweepReadyUsageDetection.ts → gc/gcSweepReadyUsageDetection.ts} +1 -1
- package/src/gc/gcUnreferencedStateTracker.ts +114 -0
- package/src/gc/index.ts +65 -0
- package/src/index.ts +10 -22
- package/src/opLifecycle/README.md +263 -0
- package/src/opLifecycle/batchManager.ts +26 -55
- package/src/opLifecycle/definitions.ts +4 -0
- package/src/opLifecycle/index.ts +2 -1
- package/src/opLifecycle/opCompressor.ts +32 -12
- package/src/opLifecycle/opDecompressor.ts +50 -5
- package/src/opLifecycle/opGroupingManager.ts +78 -0
- package/src/opLifecycle/opSplitter.ts +56 -17
- package/src/opLifecycle/outbox.ts +126 -62
- package/src/opLifecycle/remoteMessageProcessor.ts +38 -22
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +34 -27
- package/src/storageServiceWithAttachBlobs.ts +38 -0
- package/src/summary/index.ts +105 -0
- package/src/{runWhileConnectedCoordinator.ts → summary/runWhileConnectedCoordinator.ts} +7 -7
- package/src/{runningSummarizer.ts → summary/runningSummarizer.ts} +318 -156
- package/src/{summarizer.ts → summary/summarizer.ts} +12 -105
- package/src/{summarizerHeuristics.ts → summary/summarizerHeuristics.ts} +13 -4
- package/src/summary/summarizerNode/index.ts +12 -0
- package/src/summary/summarizerNode/summarizerNode.ts +766 -0
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +214 -0
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +644 -0
- package/src/{summarizerTypes.ts → summary/summarizerTypes.ts} +28 -25
- package/src/{summaryFormat.ts → summary/summaryFormat.ts} +3 -29
- package/src/{summaryGenerator.ts → summary/summaryGenerator.ts} +34 -27
- package/src/{summaryManager.ts → summary/summaryManager.ts} +1 -1
- package/dist/garbageCollection.d.ts +0 -411
- package/dist/garbageCollection.d.ts.map +0 -1
- package/dist/garbageCollection.js.map +0 -1
- package/dist/garbageCollectionConstants.d.ts +0 -23
- package/dist/garbageCollectionConstants.d.ts.map +0 -1
- package/dist/garbageCollectionConstants.js +0 -36
- package/dist/garbageCollectionConstants.js.map +0 -1
- package/dist/garbageCollectionHelpers.d.ts +0 -15
- package/dist/garbageCollectionHelpers.d.ts.map +0 -1
- package/dist/garbageCollectionHelpers.js +0 -27
- package/dist/garbageCollectionHelpers.js.map +0 -1
- package/dist/gcSweepReadyUsageDetection.d.ts.map +0 -1
- package/dist/gcSweepReadyUsageDetection.js.map +0 -1
- package/dist/orderedClientElection.d.ts.map +0 -1
- package/dist/orderedClientElection.js.map +0 -1
- package/dist/runWhileConnectedCoordinator.d.ts.map +0 -1
- package/dist/runWhileConnectedCoordinator.js.map +0 -1
- package/dist/runningSummarizer.d.ts.map +0 -1
- package/dist/runningSummarizer.js.map +0 -1
- package/dist/serializedSnapshotStorage.d.ts +0 -58
- package/dist/serializedSnapshotStorage.d.ts.map +0 -1
- package/dist/serializedSnapshotStorage.js +0 -110
- package/dist/serializedSnapshotStorage.js.map +0 -1
- package/dist/summarizer.d.ts.map +0 -1
- package/dist/summarizer.js.map +0 -1
- package/dist/summarizerClientElection.d.ts.map +0 -1
- package/dist/summarizerClientElection.js.map +0 -1
- package/dist/summarizerHandle.d.ts +0 -12
- package/dist/summarizerHandle.d.ts.map +0 -1
- package/dist/summarizerHandle.js +0 -22
- package/dist/summarizerHandle.js.map +0 -1
- package/dist/summarizerHeuristics.d.ts.map +0 -1
- package/dist/summarizerHeuristics.js.map +0 -1
- package/dist/summarizerTypes.d.ts.map +0 -1
- package/dist/summarizerTypes.js.map +0 -1
- package/dist/summaryCollection.d.ts.map +0 -1
- package/dist/summaryCollection.js.map +0 -1
- package/dist/summaryFormat.d.ts.map +0 -1
- package/dist/summaryFormat.js.map +0 -1
- package/dist/summaryGenerator.d.ts.map +0 -1
- package/dist/summaryGenerator.js.map +0 -1
- package/dist/summaryManager.d.ts.map +0 -1
- package/dist/summaryManager.js.map +0 -1
- package/lib/garbageCollection.d.ts +0 -411
- package/lib/garbageCollection.d.ts.map +0 -1
- package/lib/garbageCollection.js.map +0 -1
- package/lib/garbageCollectionConstants.d.ts +0 -23
- package/lib/garbageCollectionConstants.d.ts.map +0 -1
- package/lib/garbageCollectionConstants.js +0 -33
- package/lib/garbageCollectionConstants.js.map +0 -1
- package/lib/garbageCollectionHelpers.d.ts +0 -15
- package/lib/garbageCollectionHelpers.d.ts.map +0 -1
- package/lib/garbageCollectionHelpers.js +0 -23
- package/lib/garbageCollectionHelpers.js.map +0 -1
- package/lib/gcSweepReadyUsageDetection.d.ts.map +0 -1
- package/lib/gcSweepReadyUsageDetection.js.map +0 -1
- package/lib/orderedClientElection.d.ts.map +0 -1
- package/lib/orderedClientElection.js.map +0 -1
- package/lib/runWhileConnectedCoordinator.d.ts.map +0 -1
- package/lib/runWhileConnectedCoordinator.js.map +0 -1
- package/lib/runningSummarizer.d.ts.map +0 -1
- package/lib/runningSummarizer.js.map +0 -1
- package/lib/serializedSnapshotStorage.d.ts +0 -58
- package/lib/serializedSnapshotStorage.d.ts.map +0 -1
- package/lib/serializedSnapshotStorage.js +0 -106
- package/lib/serializedSnapshotStorage.js.map +0 -1
- package/lib/summarizer.d.ts.map +0 -1
- package/lib/summarizer.js.map +0 -1
- package/lib/summarizerClientElection.d.ts.map +0 -1
- package/lib/summarizerClientElection.js.map +0 -1
- package/lib/summarizerHandle.d.ts +0 -12
- package/lib/summarizerHandle.d.ts.map +0 -1
- package/lib/summarizerHandle.js +0 -18
- package/lib/summarizerHandle.js.map +0 -1
- package/lib/summarizerHeuristics.d.ts.map +0 -1
- package/lib/summarizerHeuristics.js.map +0 -1
- package/lib/summarizerTypes.d.ts.map +0 -1
- package/lib/summarizerTypes.js +0 -9
- package/lib/summarizerTypes.js.map +0 -1
- package/lib/summaryCollection.d.ts.map +0 -1
- package/lib/summaryCollection.js.map +0 -1
- package/lib/summaryFormat.d.ts.map +0 -1
- package/lib/summaryFormat.js.map +0 -1
- package/lib/summaryGenerator.d.ts.map +0 -1
- package/lib/summaryGenerator.js.map +0 -1
- package/lib/summaryManager.d.ts.map +0 -1
- package/lib/summaryManager.js.map +0 -1
- package/src/garbageCollectionConstants.ts +0 -38
- package/src/garbageCollectionHelpers.ts +0 -37
- package/src/serializedSnapshotStorage.ts +0 -151
- package/src/summarizerHandle.ts +0 -23
- /package/dist/{gcSweepReadyUsageDetection.d.ts → gc/gcSweepReadyUsageDetection.d.ts} +0 -0
- /package/dist/{orderedClientElection.d.ts → summary/orderedClientElection.d.ts} +0 -0
- /package/dist/{orderedClientElection.js → summary/orderedClientElection.js} +0 -0
- /package/dist/{summarizerClientElection.d.ts → summary/summarizerClientElection.d.ts} +0 -0
- /package/dist/{summarizerClientElection.js → summary/summarizerClientElection.js} +0 -0
- /package/dist/{summaryCollection.d.ts → summary/summaryCollection.d.ts} +0 -0
- /package/dist/{summaryCollection.js → summary/summaryCollection.js} +0 -0
- /package/dist/{summaryManager.js → summary/summaryManager.js} +0 -0
- /package/lib/{gcSweepReadyUsageDetection.d.ts → gc/gcSweepReadyUsageDetection.d.ts} +0 -0
- /package/lib/{orderedClientElection.d.ts → summary/orderedClientElection.d.ts} +0 -0
- /package/lib/{orderedClientElection.js → summary/orderedClientElection.js} +0 -0
- /package/lib/{summarizerClientElection.d.ts → summary/summarizerClientElection.d.ts} +0 -0
- /package/lib/{summarizerClientElection.js → summary/summarizerClientElection.js} +0 -0
- /package/lib/{summaryCollection.d.ts → summary/summaryCollection.d.ts} +0 -0
- /package/lib/{summaryCollection.js → summary/summaryCollection.js} +0 -0
- /package/lib/{summaryManager.js → summary/summaryManager.js} +0 -0
- /package/src/{orderedClientElection.ts → summary/orderedClientElection.ts} +0 -0
- /package/src/{summarizerClientElection.ts → summary/summarizerClientElection.ts} +0 -0
- /package/src/{summaryCollection.ts → summary/summaryCollection.ts} +0 -0
|
@@ -10,7 +10,6 @@ import {
|
|
|
10
10
|
ITelemetryProperties,
|
|
11
11
|
} from "@fluidframework/common-definitions";
|
|
12
12
|
import { ITelemetryLoggerPropertyBag } from "@fluidframework/telemetry-utils";
|
|
13
|
-
import { IFluidLoadable } from "@fluidframework/core-interfaces";
|
|
14
13
|
import { ContainerWarning, IDeltaManager } from "@fluidframework/container-definitions";
|
|
15
14
|
import {
|
|
16
15
|
ISequencedDocumentMessage,
|
|
@@ -18,24 +17,9 @@ import {
|
|
|
18
17
|
IDocumentMessage,
|
|
19
18
|
} from "@fluidframework/protocol-definitions";
|
|
20
19
|
import { ISummaryStats } from "@fluidframework/runtime-definitions";
|
|
20
|
+
import { ISummaryConfigurationHeuristics } from "../containerRuntime";
|
|
21
21
|
import { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from "./summaryCollection";
|
|
22
22
|
import { SummarizeReason } from "./summaryGenerator";
|
|
23
|
-
import { ISummaryConfigurationHeuristics } from ".";
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* @deprecated This will be removed in a later release.
|
|
27
|
-
*/
|
|
28
|
-
export const ISummarizer: keyof IProvideSummarizer = "ISummarizer";
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* @deprecated This will be removed in a later release.
|
|
32
|
-
*/
|
|
33
|
-
export interface IProvideSummarizer {
|
|
34
|
-
/**
|
|
35
|
-
* @deprecated This will be removed in a later release.
|
|
36
|
-
*/
|
|
37
|
-
readonly ISummarizer: ISummarizer;
|
|
38
|
-
}
|
|
39
23
|
|
|
40
24
|
/**
|
|
41
25
|
* Similar to AbortSignal, but using promise instead of events
|
|
@@ -84,7 +68,6 @@ export interface IConnectableRuntime {
|
|
|
84
68
|
readonly disposed: boolean;
|
|
85
69
|
readonly connected: boolean;
|
|
86
70
|
readonly clientId: string | undefined;
|
|
87
|
-
readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
88
71
|
once(event: "connected" | "disconnected" | "dispose", listener: () => void): this;
|
|
89
72
|
}
|
|
90
73
|
|
|
@@ -92,8 +75,17 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
|
|
|
92
75
|
readonly logger: ITelemetryLogger;
|
|
93
76
|
/** clientId of parent (non-summarizing) container that owns summarizer container */
|
|
94
77
|
readonly summarizerClientId: string | undefined;
|
|
78
|
+
readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
95
79
|
disposeFn?(): void;
|
|
96
80
|
closeFn(): void;
|
|
81
|
+
on?(
|
|
82
|
+
event: "op",
|
|
83
|
+
listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void,
|
|
84
|
+
): this;
|
|
85
|
+
off?(
|
|
86
|
+
event: "op",
|
|
87
|
+
listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void,
|
|
88
|
+
): this;
|
|
97
89
|
}
|
|
98
90
|
|
|
99
91
|
/** Options affecting summarize behavior. */
|
|
@@ -310,8 +302,13 @@ export type SummarizerStopReason =
|
|
|
310
302
|
| "notElectedClient"
|
|
311
303
|
/** Summarizer client was disconnected */
|
|
312
304
|
| "summarizerClientDisconnected"
|
|
313
|
-
|
|
314
|
-
| "summarizerException"
|
|
305
|
+
/** running summarizer threw an exception */
|
|
306
|
+
| "summarizerException"
|
|
307
|
+
/**
|
|
308
|
+
* The previous summary state on the summarizer is not the most recently acked summary. this also happens when the
|
|
309
|
+
* first submitSummary attempt fails for any reason and there's a 2nd summary attempt without an ack
|
|
310
|
+
*/
|
|
311
|
+
| "latestSummaryStateStale";
|
|
315
312
|
|
|
316
313
|
export interface ISummarizerEvents extends IEvent {
|
|
317
314
|
/**
|
|
@@ -320,10 +317,12 @@ export interface ISummarizerEvents extends IEvent {
|
|
|
320
317
|
(event: "summarizingError", listener: (error: ISummarizingWarning) => void);
|
|
321
318
|
}
|
|
322
319
|
|
|
323
|
-
export interface ISummarizer
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
320
|
+
export interface ISummarizer extends IEventProvider<ISummarizerEvents> {
|
|
321
|
+
/**
|
|
322
|
+
* Allows {@link ISummarizer} to be used with our {@link @fluidframework/core-interfaces#FluidObject} pattern.
|
|
323
|
+
*/
|
|
324
|
+
readonly ISummarizer?: ISummarizer;
|
|
325
|
+
|
|
327
326
|
/*
|
|
328
327
|
* Asks summarizer to move to exit.
|
|
329
328
|
* Summarizer will finish current processes, which may take a while.
|
|
@@ -412,6 +411,8 @@ export interface ISummarizeHeuristicData {
|
|
|
412
411
|
|
|
413
412
|
/** Mark that the last sent summary attempt has received an ack */
|
|
414
413
|
markLastAttemptAsSuccessful(): void;
|
|
414
|
+
|
|
415
|
+
opsSinceLastSummary: number;
|
|
415
416
|
}
|
|
416
417
|
|
|
417
418
|
/** Responsible for running heuristics determining when to summarize. */
|
|
@@ -505,7 +506,9 @@ type SummaryGeneratorOptionalTelemetryProperties =
|
|
|
505
506
|
/** Actual sequence number of the summary op proposal. */
|
|
506
507
|
| "summarySequenceNumber"
|
|
507
508
|
/** Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying. */
|
|
508
|
-
| "nackRetryAfter"
|
|
509
|
+
| "nackRetryAfter"
|
|
510
|
+
/** The stage at which the submit summary method failed at. This can help determine what type of failure we have */
|
|
511
|
+
| "stage";
|
|
509
512
|
|
|
510
513
|
export type SummaryGeneratorTelemetry = Pick<
|
|
511
514
|
ITelemetryProperties,
|
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
gcTreeKey,
|
|
17
17
|
ISummaryTreeWithStats,
|
|
18
18
|
} from "@fluidframework/runtime-definitions";
|
|
19
|
+
import { IGCMetadata } from "../gc";
|
|
19
20
|
|
|
20
21
|
type OmitAttributesVersions<T> = Omit<T, "snapshotFormatVersion" | "summaryFormatVersion">;
|
|
21
22
|
interface IFluidDataStoreAttributes0 {
|
|
@@ -88,6 +89,8 @@ export interface IContainerRuntimeMetadata extends ICreateContainerMetadata, IGC
|
|
|
88
89
|
readonly disableIsolatedChannels?: true;
|
|
89
90
|
/** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */
|
|
90
91
|
readonly summaryNumber?: number;
|
|
92
|
+
/** GUID to identify a document in telemetry */
|
|
93
|
+
readonly telemetryDocumentId?: string;
|
|
91
94
|
}
|
|
92
95
|
|
|
93
96
|
export interface ICreateContainerMetadata {
|
|
@@ -97,27 +100,6 @@ export interface ICreateContainerMetadata {
|
|
|
97
100
|
createContainerTimestamp?: number;
|
|
98
101
|
}
|
|
99
102
|
|
|
100
|
-
export type GCVersion = number;
|
|
101
|
-
export interface IGCMetadata {
|
|
102
|
-
/**
|
|
103
|
-
* The version of the GC code that was run to generate the GC data that is written in the summary.
|
|
104
|
-
* Also, used to determine whether GC is enabled for this container or not:
|
|
105
|
-
* - A value of 0 or undefined means GC is disabled.
|
|
106
|
-
* - A value greater than 0 means GC is enabled.
|
|
107
|
-
*/
|
|
108
|
-
readonly gcFeature?: GCVersion;
|
|
109
|
-
/**
|
|
110
|
-
* Tells whether the GC sweep phase is enabled for this container.
|
|
111
|
-
* - True means sweep phase is enabled.
|
|
112
|
-
* - False means sweep phase is disabled. If GC is disabled as per gcFeature, sweep is also disabled.
|
|
113
|
-
*/
|
|
114
|
-
readonly sweepEnabled?: boolean;
|
|
115
|
-
/** If this is present, the session for this container will expire after this time and the container will close */
|
|
116
|
-
readonly sessionExpiryTimeoutMs?: number;
|
|
117
|
-
/** How long to wait after an object is unreferenced before deleting it via GC Sweep */
|
|
118
|
-
readonly sweepTimeoutMs?: number;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
103
|
/** The properties of an ISequencedDocumentMessage to be stored in the metadata blob in summary. */
|
|
122
104
|
export type ISummaryMetadataMessage = Pick<
|
|
123
105
|
ISequencedDocumentMessage,
|
|
@@ -173,14 +155,6 @@ export function rootHasIsolatedChannels(metadata?: IContainerRuntimeMetadata): b
|
|
|
173
155
|
return !!metadata && !metadata.disableIsolatedChannels;
|
|
174
156
|
}
|
|
175
157
|
|
|
176
|
-
export function getGCVersion(metadata?: IGCMetadata): GCVersion {
|
|
177
|
-
if (!metadata) {
|
|
178
|
-
// Force to 0/disallowed in prior versions
|
|
179
|
-
return 0;
|
|
180
|
-
}
|
|
181
|
-
return metadata.gcFeature ?? 0;
|
|
182
|
-
}
|
|
183
|
-
|
|
184
158
|
export const protocolTreeName = ".protocol";
|
|
185
159
|
|
|
186
160
|
/**
|
|
@@ -120,6 +120,10 @@ const summarizeErrors = {
|
|
|
120
120
|
disconnect: "Summary cancelled due to summarizer or main client disconnect",
|
|
121
121
|
} as const;
|
|
122
122
|
|
|
123
|
+
// Helper functions to report failures and return.
|
|
124
|
+
export const getFailMessage = (errorCode: keyof typeof summarizeErrors) =>
|
|
125
|
+
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
126
|
+
|
|
123
127
|
export class SummarizeResultBuilder {
|
|
124
128
|
public readonly summarySubmitted = new Deferred<SummarizeResultPart<SubmitSummaryResult>>();
|
|
125
129
|
public readonly summaryOpBroadcasted = new Deferred<
|
|
@@ -171,7 +175,6 @@ export class SummaryGenerator {
|
|
|
171
175
|
private readonly submitSummaryCallback: (
|
|
172
176
|
options: ISubmitSummaryOptions,
|
|
173
177
|
) => Promise<SubmitSummaryResult>,
|
|
174
|
-
private readonly raiseSummarizingError: (errorMessage: string) => void,
|
|
175
178
|
private readonly successfulSummaryCallback: () => void,
|
|
176
179
|
private readonly summaryWatcher: Pick<IClientSummaryWatcher, "watchSummary">,
|
|
177
180
|
private readonly logger: ITelemetryLogger,
|
|
@@ -194,10 +197,6 @@ export class SummaryGenerator {
|
|
|
194
197
|
cancellationToken: ISummaryCancellationToken,
|
|
195
198
|
resultsBuilder = new SummarizeResultBuilder(),
|
|
196
199
|
): ISummarizeResults {
|
|
197
|
-
this.logger.sendTelemetryEvent({
|
|
198
|
-
eventName: "Summarize_start",
|
|
199
|
-
...summarizeProps,
|
|
200
|
-
});
|
|
201
200
|
this.summarizeCore(summarizeProps, options, resultsBuilder, cancellationToken).catch(
|
|
202
201
|
(error) => {
|
|
203
202
|
const message = "UnexpectedSummarizeError";
|
|
@@ -229,22 +228,22 @@ export class SummaryGenerator {
|
|
|
229
228
|
timeSinceLastSummary,
|
|
230
229
|
};
|
|
231
230
|
|
|
232
|
-
const summarizeEvent = PerformanceEvent.start(
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
231
|
+
const summarizeEvent = PerformanceEvent.start(
|
|
232
|
+
logger,
|
|
233
|
+
{
|
|
234
|
+
eventName: "Summarize",
|
|
235
|
+
refreshLatestAck,
|
|
236
|
+
...summarizeTelemetryProps,
|
|
237
|
+
},
|
|
238
|
+
{ start: true, end: true, cancel: "generic" },
|
|
239
|
+
);
|
|
237
240
|
|
|
238
|
-
// Helper functions to report failures and return.
|
|
239
|
-
const getFailMessage = (errorCode: keyof typeof summarizeErrors) =>
|
|
240
|
-
`${errorCode}: ${summarizeErrors[errorCode]}`;
|
|
241
241
|
const fail = (
|
|
242
242
|
errorCode: keyof typeof summarizeErrors,
|
|
243
243
|
error?: any,
|
|
244
244
|
properties?: SummaryGeneratorTelemetry,
|
|
245
245
|
nackSummaryResult?: INackSummaryResult,
|
|
246
246
|
) => {
|
|
247
|
-
this.raiseSummarizingError(summarizeErrors[errorCode]);
|
|
248
247
|
// UploadSummary may fail with 429 and retryAfter - respect that
|
|
249
248
|
// Summary Nack also can have retryAfter, it's parsed below and comes as a property.
|
|
250
249
|
const retryAfterSeconds = getRetryDelaySecondsFromError(error);
|
|
@@ -257,17 +256,17 @@ export class SummaryGenerator {
|
|
|
257
256
|
? "generic"
|
|
258
257
|
: "error";
|
|
259
258
|
|
|
260
|
-
const
|
|
259
|
+
const reason = getFailMessage(errorCode);
|
|
261
260
|
summarizeEvent.cancel(
|
|
262
261
|
{
|
|
263
262
|
...properties,
|
|
264
|
-
reason
|
|
263
|
+
reason,
|
|
265
264
|
category,
|
|
266
265
|
retryAfterSeconds,
|
|
267
266
|
},
|
|
268
|
-
error ??
|
|
267
|
+
error ?? reason,
|
|
269
268
|
); // disconnect & summaryAckTimeout do not have proper error.
|
|
270
|
-
resultsBuilder.fail(
|
|
269
|
+
resultsBuilder.fail(reason, error, nackSummaryResult, retryAfterSeconds);
|
|
271
270
|
};
|
|
272
271
|
|
|
273
272
|
// Wait to generate and send summary
|
|
@@ -283,18 +282,20 @@ export class SummaryGenerator {
|
|
|
283
282
|
cancellationToken,
|
|
284
283
|
});
|
|
285
284
|
|
|
285
|
+
this.heuristicData.recordAttempt(summaryData.referenceSequenceNumber);
|
|
286
|
+
|
|
286
287
|
// Cumulatively add telemetry properties based on how far generateSummary went.
|
|
287
288
|
const referenceSequenceNumber = summaryData.referenceSequenceNumber;
|
|
288
|
-
const opsSinceLastSummary =
|
|
289
|
-
referenceSequenceNumber -
|
|
290
|
-
this.heuristicData.lastSuccessfulSummary.refSequenceNumber;
|
|
291
289
|
summarizeTelemetryProps = {
|
|
292
290
|
...summarizeTelemetryProps,
|
|
293
291
|
referenceSequenceNumber,
|
|
294
292
|
minimumSequenceNumber: summaryData.minimumSequenceNumber,
|
|
295
293
|
opsSinceLastAttempt:
|
|
296
294
|
referenceSequenceNumber - this.heuristicData.lastAttempt.refSequenceNumber,
|
|
297
|
-
opsSinceLastSummary
|
|
295
|
+
opsSinceLastSummary:
|
|
296
|
+
referenceSequenceNumber -
|
|
297
|
+
this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
|
|
298
|
+
stage: summaryData.stage,
|
|
298
299
|
};
|
|
299
300
|
summarizeTelemetryProps = this.addSummaryDataToTelemetryProps(
|
|
300
301
|
summaryData,
|
|
@@ -318,12 +319,15 @@ export class SummaryGenerator {
|
|
|
318
319
|
if (!fullTree && !summaryData.forcedFullTree) {
|
|
319
320
|
const { summarizedDataStoreCount, gcStateUpdatedDataStoreCount = 0 } =
|
|
320
321
|
summaryData.summaryStats;
|
|
321
|
-
if (
|
|
322
|
+
if (
|
|
323
|
+
summarizedDataStoreCount >
|
|
324
|
+
gcStateUpdatedDataStoreCount + this.heuristicData.opsSinceLastSummary
|
|
325
|
+
) {
|
|
322
326
|
logger.sendErrorEvent({
|
|
323
327
|
eventName: "IncrementalSummaryViolation",
|
|
324
328
|
summarizedDataStoreCount,
|
|
325
329
|
gcStateUpdatedDataStoreCount,
|
|
326
|
-
opsSinceLastSummary,
|
|
330
|
+
opsSinceLastSummary: this.heuristicData.opsSinceLastSummary,
|
|
327
331
|
});
|
|
328
332
|
}
|
|
329
333
|
}
|
|
@@ -334,7 +338,9 @@ export class SummaryGenerator {
|
|
|
334
338
|
} catch (error) {
|
|
335
339
|
return fail("submitSummaryFailure", error);
|
|
336
340
|
} finally {
|
|
337
|
-
|
|
341
|
+
if (summaryData === undefined) {
|
|
342
|
+
this.heuristicData.recordAttempt();
|
|
343
|
+
}
|
|
338
344
|
this.summarizeTimer.clear();
|
|
339
345
|
}
|
|
340
346
|
|
|
@@ -414,12 +420,13 @@ export class SummaryGenerator {
|
|
|
414
420
|
// Check for retryDelay in summaryNack response.
|
|
415
421
|
assert(ackNackOp.type === MessageType.SummaryNack, 0x274 /* "type check" */);
|
|
416
422
|
const summaryNack = ackNackOp.contents;
|
|
417
|
-
const
|
|
423
|
+
const errorMessage = summaryNack?.message;
|
|
418
424
|
const retryAfterSeconds = summaryNack?.retryAfter;
|
|
419
425
|
|
|
420
426
|
// pre-0.58 error message prefix: summaryNack
|
|
421
|
-
const error = new LoggingError(`Received summaryNack
|
|
427
|
+
const error = new LoggingError(`Received summaryNack`, {
|
|
422
428
|
retryAfterSeconds,
|
|
429
|
+
errorMessage,
|
|
423
430
|
});
|
|
424
431
|
|
|
425
432
|
assert(
|
|
@@ -12,8 +12,8 @@ import {
|
|
|
12
12
|
import { assert } from "@fluidframework/common-utils";
|
|
13
13
|
import { ChildLogger, PerformanceEvent } from "@fluidframework/telemetry-utils";
|
|
14
14
|
import { DriverErrorType } from "@fluidframework/driver-definitions";
|
|
15
|
+
import { IThrottler } from "../throttler";
|
|
15
16
|
import { ISummarizerClientElection } from "./summarizerClientElection";
|
|
16
|
-
import { IThrottler } from "./throttler";
|
|
17
17
|
import { ISummarizer, SummarizerStopReason } from "./summarizerTypes";
|
|
18
18
|
import { SummaryCollection } from "./summaryCollection";
|
|
19
19
|
import { Summarizer } from "./summarizer";
|