@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
|
@@ -1,411 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* Copyright (c) Microsoft Corporation and contributors. All rights reserved.
|
|
3
|
-
* Licensed under the MIT License.
|
|
4
|
-
*/
|
|
5
|
-
import { ITelemetryLogger } from "@fluidframework/common-definitions";
|
|
6
|
-
import { ICriticalContainerError } from "@fluidframework/container-definitions";
|
|
7
|
-
import { IRequestHeader } from "@fluidframework/core-interfaces";
|
|
8
|
-
import { ISnapshotTree } from "@fluidframework/protocol-definitions";
|
|
9
|
-
import { IGarbageCollectionData, IGarbageCollectionDetailsBase, ISummarizeResult, ITelemetryContext } from "@fluidframework/runtime-definitions";
|
|
10
|
-
import { ReadAndParseBlob, RefreshSummaryResult } from "@fluidframework/runtime-utils";
|
|
11
|
-
import { IGCRuntimeOptions } from "./containerRuntime";
|
|
12
|
-
import { IContainerRuntimeMetadata, IGCMetadata, ICreateContainerMetadata } from "./summaryFormat";
|
|
13
|
-
/** The statistics of the system state after a garbage collection run. */
|
|
14
|
-
export interface IGCStats {
|
|
15
|
-
/** The number of nodes in the container. */
|
|
16
|
-
nodeCount: number;
|
|
17
|
-
/** The number of data stores in the container. */
|
|
18
|
-
dataStoreCount: number;
|
|
19
|
-
/** The number of attachment blobs in the container. */
|
|
20
|
-
attachmentBlobCount: number;
|
|
21
|
-
/** The number of unreferenced nodes in the container. */
|
|
22
|
-
unrefNodeCount: number;
|
|
23
|
-
/** The number of unreferenced data stores in the container. */
|
|
24
|
-
unrefDataStoreCount: number;
|
|
25
|
-
/** The number of unreferenced attachment blobs in the container. */
|
|
26
|
-
unrefAttachmentBlobCount: number;
|
|
27
|
-
/** The number of nodes whose reference state updated since last GC run. */
|
|
28
|
-
updatedNodeCount: number;
|
|
29
|
-
/** The number of data stores whose reference state updated since last GC run. */
|
|
30
|
-
updatedDataStoreCount: number;
|
|
31
|
-
/** The number of attachment blobs whose reference state updated since last GC run. */
|
|
32
|
-
updatedAttachmentBlobCount: number;
|
|
33
|
-
}
|
|
34
|
-
/** The types of GC nodes in the GC reference graph. */
|
|
35
|
-
export declare const GCNodeType: {
|
|
36
|
-
DataStore: string;
|
|
37
|
-
SubDataStore: string;
|
|
38
|
-
Blob: string;
|
|
39
|
-
Other: string;
|
|
40
|
-
};
|
|
41
|
-
export declare type GCNodeType = typeof GCNodeType[keyof typeof GCNodeType];
|
|
42
|
-
/** Defines the APIs for the runtime object to be passed to the garbage collector. */
|
|
43
|
-
export interface IGarbageCollectionRuntime {
|
|
44
|
-
/** Before GC runs, called to notify the runtime to update any pending GC state. */
|
|
45
|
-
updateStateBeforeGC(): Promise<void>;
|
|
46
|
-
/** Returns the garbage collection data of the runtime. */
|
|
47
|
-
getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;
|
|
48
|
-
/** After GC has run, called to notify the runtime of routes that are used in it. */
|
|
49
|
-
updateUsedRoutes(usedRoutes: string[]): void;
|
|
50
|
-
/** After GC has run, called to notify the runtime of routes that are unused in it. */
|
|
51
|
-
updateUnusedRoutes(unusedRoutes: string[]): void;
|
|
52
|
-
/** Called to notify the runtime of routes that are tombstones. */
|
|
53
|
-
updateTombstonedRoutes(tombstoneRoutes: string[]): void;
|
|
54
|
-
/** Returns a referenced timestamp to be used to track unreferenced nodes. */
|
|
55
|
-
getCurrentReferenceTimestampMs(): number | undefined;
|
|
56
|
-
/** Returns the type of the GC node. */
|
|
57
|
-
getNodeType(nodePath: string): GCNodeType;
|
|
58
|
-
/** Called when the runtime should close because of an error. */
|
|
59
|
-
closeFn: (error?: ICriticalContainerError) => void;
|
|
60
|
-
}
|
|
61
|
-
/** Defines the contract for the garbage collector. */
|
|
62
|
-
export interface IGarbageCollector {
|
|
63
|
-
/** Tells whether GC should run or not. */
|
|
64
|
-
readonly shouldRunGC: boolean;
|
|
65
|
-
/** Tells whether the GC state in summary needs to be reset in the next summary. */
|
|
66
|
-
readonly summaryStateNeedsReset: boolean;
|
|
67
|
-
readonly trackGCState: boolean;
|
|
68
|
-
/** Initialize the state from the base snapshot after its creation. */
|
|
69
|
-
initializeBaseState(): Promise<void>;
|
|
70
|
-
/** Run garbage collection and update the reference / used state of the system. */
|
|
71
|
-
collectGarbage(options: {
|
|
72
|
-
logger?: ITelemetryLogger;
|
|
73
|
-
runSweep?: boolean;
|
|
74
|
-
fullGC?: boolean;
|
|
75
|
-
}): Promise<IGCStats | undefined>;
|
|
76
|
-
/** Summarizes the GC data and returns it as a summary tree. */
|
|
77
|
-
summarize(fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext): ISummarizeResult | undefined;
|
|
78
|
-
/** Returns the garbage collector specific metadata to be written into the summary. */
|
|
79
|
-
getMetadata(): IGCMetadata;
|
|
80
|
-
/** Returns the GC details generated from the base snapshot. */
|
|
81
|
-
getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
|
|
82
|
-
/** Called when the latest summary of the system has been refreshed. */
|
|
83
|
-
refreshLatestSummary(result: RefreshSummaryResult, proposalHandle: string | undefined, summaryRefSeq: number, readAndParseBlob: ReadAndParseBlob): Promise<void>;
|
|
84
|
-
/** Called when a node is updated. Used to detect and log when an inactive node is changed or loaded. */
|
|
85
|
-
nodeUpdated(nodePath: string, reason: "Loaded" | "Changed", timestampMs?: number, packagePath?: readonly string[], requestHeaders?: IRequestHeader): void;
|
|
86
|
-
/** Called when a reference is added to a node. Used to identify nodes that were referenced between summaries. */
|
|
87
|
-
addedOutboundReference(fromNodePath: string, toNodePath: string): void;
|
|
88
|
-
/** Returns true if this node has been deleted by GC during sweep phase. */
|
|
89
|
-
isNodeDeleted(nodePath: string): boolean;
|
|
90
|
-
setConnectionState(connected: boolean, clientId?: string): void;
|
|
91
|
-
dispose(): void;
|
|
92
|
-
}
|
|
93
|
-
/** Parameters necessary for creating a GarbageCollector. */
|
|
94
|
-
export interface IGarbageCollectorCreateParams {
|
|
95
|
-
readonly runtime: IGarbageCollectionRuntime;
|
|
96
|
-
readonly gcOptions: IGCRuntimeOptions;
|
|
97
|
-
readonly baseLogger: ITelemetryLogger;
|
|
98
|
-
readonly existing: boolean;
|
|
99
|
-
readonly metadata: IContainerRuntimeMetadata | undefined;
|
|
100
|
-
readonly createContainerMetadata: ICreateContainerMetadata;
|
|
101
|
-
readonly baseSnapshot: ISnapshotTree | undefined;
|
|
102
|
-
readonly isSummarizerClient: boolean;
|
|
103
|
-
readonly getNodePackagePath: (nodePath: string) => Promise<readonly string[] | undefined>;
|
|
104
|
-
readonly getLastSummaryTimestampMs: () => number | undefined;
|
|
105
|
-
readonly readAndParseBlob: ReadAndParseBlob;
|
|
106
|
-
readonly activeConnection: () => boolean;
|
|
107
|
-
readonly getContainerDiagnosticId: () => string;
|
|
108
|
-
}
|
|
109
|
-
/** The state of node that is unreferenced. */
|
|
110
|
-
export declare const UnreferencedState: {
|
|
111
|
-
/** The node is active, i.e., it can become referenced again. */
|
|
112
|
-
readonly Active: "Active";
|
|
113
|
-
/** The node is inactive, i.e., it should not become referenced. */
|
|
114
|
-
readonly Inactive: "Inactive";
|
|
115
|
-
/** The node is ready to be deleted by the sweep phase. */
|
|
116
|
-
readonly SweepReady: "SweepReady";
|
|
117
|
-
};
|
|
118
|
-
export declare type UnreferencedState = typeof UnreferencedState[keyof typeof UnreferencedState];
|
|
119
|
-
/**
|
|
120
|
-
* Helper class that tracks the state of an unreferenced node such as the time it was unreferenced and if it can
|
|
121
|
-
* be deleted by the sweep phase.
|
|
122
|
-
*/
|
|
123
|
-
export declare class UnreferencedStateTracker {
|
|
124
|
-
readonly unreferencedTimestampMs: number;
|
|
125
|
-
/** The time after which node transitions to Inactive state. */
|
|
126
|
-
private readonly inactiveTimeoutMs;
|
|
127
|
-
/** The time after which node transitions to SweepReady state; undefined if session expiry is disabled. */
|
|
128
|
-
private readonly sweepTimeoutMs;
|
|
129
|
-
private _state;
|
|
130
|
-
get state(): UnreferencedState;
|
|
131
|
-
/** Timer to indicate when an unreferenced object is considered Inactive */
|
|
132
|
-
private readonly inactiveTimer;
|
|
133
|
-
/** Timer to indicate when an unreferenced object is Sweep-Ready */
|
|
134
|
-
private readonly sweepTimer;
|
|
135
|
-
constructor(unreferencedTimestampMs: number,
|
|
136
|
-
/** The time after which node transitions to Inactive state. */
|
|
137
|
-
inactiveTimeoutMs: number,
|
|
138
|
-
/** The current reference timestamp used to track how long this node has been unreferenced for. */
|
|
139
|
-
currentReferenceTimestampMs: number,
|
|
140
|
-
/** The time after which node transitions to SweepReady state; undefined if session expiry is disabled. */
|
|
141
|
-
sweepTimeoutMs: number | undefined);
|
|
142
|
-
updateTracking(currentReferenceTimestampMs: number): void;
|
|
143
|
-
private clearTimers;
|
|
144
|
-
/** Stop tracking this node. Reset the unreferenced timers and state, if any. */
|
|
145
|
-
stopTracking(): void;
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* The garbage collector for the container runtime. It consolidates the garbage collection functionality and maintains
|
|
149
|
-
* its state across summaries.
|
|
150
|
-
*
|
|
151
|
-
* Node - represented as nodeId, it's a node on the GC graph
|
|
152
|
-
*
|
|
153
|
-
* Outbound Route - a path from one node to another node, think `nodeA` -\> `nodeB`
|
|
154
|
-
*
|
|
155
|
-
* Graph - all nodes with their respective routes
|
|
156
|
-
*
|
|
157
|
-
* ```
|
|
158
|
-
* GC Graph
|
|
159
|
-
*
|
|
160
|
-
* Node
|
|
161
|
-
* NodeId = "datastore1"
|
|
162
|
-
* / \\
|
|
163
|
-
* OutboundRoute OutboundRoute
|
|
164
|
-
* / \\
|
|
165
|
-
* Node Node
|
|
166
|
-
* NodeId = "dds1" NodeId = "dds2"
|
|
167
|
-
* ```
|
|
168
|
-
*/
|
|
169
|
-
export declare class GarbageCollector implements IGarbageCollector {
|
|
170
|
-
static create(createParams: IGarbageCollectorCreateParams): IGarbageCollector;
|
|
171
|
-
/**
|
|
172
|
-
* Tells whether the GC state needs to be reset in the next summary. We need to do this if:
|
|
173
|
-
*
|
|
174
|
-
* 1. GC was enabled and is now disabled. The GC state needs to be removed and everything becomes referenced.
|
|
175
|
-
*
|
|
176
|
-
* 2. GC was disabled and is now enabled. The GC state needs to be regenerated and added to summary.
|
|
177
|
-
*
|
|
178
|
-
* 3. GC is enabled and the latest summary state is refreshed from a snapshot that had GC disabled and vice-versa.
|
|
179
|
-
*
|
|
180
|
-
* 4. The GC version in the latest summary is different from the current GC version. This can happen if:
|
|
181
|
-
*
|
|
182
|
-
* 4.1. The summary this client loaded with has data from a different GC version.
|
|
183
|
-
*
|
|
184
|
-
* 4.2. This client's latest summary was updated from a snapshot that has a different GC version.
|
|
185
|
-
*/
|
|
186
|
-
get summaryStateNeedsReset(): boolean;
|
|
187
|
-
/**
|
|
188
|
-
* Tracks if GC is enabled for this document. This is specified during document creation and doesn't change
|
|
189
|
-
* throughout its lifetime.
|
|
190
|
-
*/
|
|
191
|
-
private readonly gcEnabled;
|
|
192
|
-
/**
|
|
193
|
-
* Tracks if sweep phase is enabled for this document. This is specified during document creation and doesn't change
|
|
194
|
-
* throughout its lifetime.
|
|
195
|
-
*/
|
|
196
|
-
private readonly sweepEnabled;
|
|
197
|
-
/**
|
|
198
|
-
* Tracks if GC should run or not. Even if GC is enabled for a document (see gcEnabled), it can be explicitly
|
|
199
|
-
* disabled via runtime options or feature flags.
|
|
200
|
-
*/
|
|
201
|
-
readonly shouldRunGC: boolean;
|
|
202
|
-
/**
|
|
203
|
-
* Tracks if sweep phase should run or not. Even if the sweep phase is enabled for a document (see sweepEnabled), it
|
|
204
|
-
* can be explicitly disabled via feature flags. It also won't run if session expiry is not enabled.
|
|
205
|
-
*/
|
|
206
|
-
private readonly shouldRunSweep;
|
|
207
|
-
readonly trackGCState: boolean;
|
|
208
|
-
private readonly testMode;
|
|
209
|
-
private readonly tombstoneMode;
|
|
210
|
-
private readonly mc;
|
|
211
|
-
/**
|
|
212
|
-
* Tells whether the GC state needs to be reset. This can happen under 3 conditions:
|
|
213
|
-
*
|
|
214
|
-
* 1. The base snapshot contains GC state but GC is disabled. This will happen the first time GC is disabled after
|
|
215
|
-
* it was enabled before. GC state needs to be removed from summary and all nodes should be marked referenced.
|
|
216
|
-
*
|
|
217
|
-
* 2. The base snapshot does not have GC state but GC is enabled. This will happen the very first time GC runs on
|
|
218
|
-
* a document and the first time GC is enabled after is was disabled before.
|
|
219
|
-
*
|
|
220
|
-
* 3. GC is enabled and the latest summary state is refreshed from a snapshot that had GC disabled and vice-versa.
|
|
221
|
-
*
|
|
222
|
-
* Note that the state will be reset only once for the first summary generated after this returns true. After that,
|
|
223
|
-
* this will return false.
|
|
224
|
-
*/
|
|
225
|
-
private get gcStateNeedsReset();
|
|
226
|
-
private wasGCRunInLatestSummary;
|
|
227
|
-
private readonly currentGCVersion;
|
|
228
|
-
private latestSummaryGCVersion;
|
|
229
|
-
private gcDataFromLastRun;
|
|
230
|
-
private readonly newReferencesSinceLastRun;
|
|
231
|
-
private tombstones;
|
|
232
|
-
private deletedNodes;
|
|
233
|
-
/**
|
|
234
|
-
* Keeps track of the GC data from the latest summary successfully submitted to and acked from the server.
|
|
235
|
-
*/
|
|
236
|
-
private latestSummaryData;
|
|
237
|
-
/**
|
|
238
|
-
* Keeps track of the GC data from the last summary submitted to the server but not yet acked.
|
|
239
|
-
*/
|
|
240
|
-
private pendingSummaryData;
|
|
241
|
-
private readonly baseSnapshotDataP;
|
|
242
|
-
private readonly initializeGCStateFromBaseSnapshotP;
|
|
243
|
-
private readonly baseGCDetailsP;
|
|
244
|
-
private readonly unreferencedNodesState;
|
|
245
|
-
private sessionExpiryTimer;
|
|
246
|
-
private readonly loggedUnreferencedEvents;
|
|
247
|
-
private pendingEventsQueue;
|
|
248
|
-
private completedRuns;
|
|
249
|
-
private readonly runtime;
|
|
250
|
-
private readonly createContainerMetadata;
|
|
251
|
-
private readonly gcOptions;
|
|
252
|
-
private readonly isSummarizerClient;
|
|
253
|
-
/** The time in ms to expire a session for a client for gc. */
|
|
254
|
-
private readonly sessionExpiryTimeoutMs;
|
|
255
|
-
/** The time after which an unreferenced node is inactive. */
|
|
256
|
-
private readonly inactiveTimeoutMs;
|
|
257
|
-
/** The time after which an unreferenced node is ready to be swept. */
|
|
258
|
-
private readonly sweepTimeoutMs;
|
|
259
|
-
/** For a given node path, returns the node's package path. */
|
|
260
|
-
private readonly getNodePackagePath;
|
|
261
|
-
/** Returns the timestamp of the last summary generated for this container. */
|
|
262
|
-
private readonly getLastSummaryTimestampMs;
|
|
263
|
-
/** Returns true if connection is active, i.e. it's "write" connection and the runtime is connected. */
|
|
264
|
-
private readonly activeConnection;
|
|
265
|
-
/** Returns a list of all the configurations for garbage collection. */
|
|
266
|
-
private get configs();
|
|
267
|
-
/** Handler to respond to when a SweepReady object is used */
|
|
268
|
-
private readonly sweepReadyUsageHandler;
|
|
269
|
-
protected constructor(createParams: IGarbageCollectorCreateParams);
|
|
270
|
-
/**
|
|
271
|
-
* Called during container initialization. Initialize from the tombstone state in the base snapshot. This is done
|
|
272
|
-
* during initialization so that deleted or tombstoned objects are marked as such before they are loaded or used.
|
|
273
|
-
*/
|
|
274
|
-
initializeBaseState(): Promise<void>;
|
|
275
|
-
/**
|
|
276
|
-
* Update state from the given snapshot data. This is done during load and during refreshing state from a snapshot.
|
|
277
|
-
* All current tracking is reset and updated from the data in the snapshot.
|
|
278
|
-
* @param snapshotData - The snapshot data to update state from. If this is undefined, all GC state and tracking
|
|
279
|
-
* is reset.
|
|
280
|
-
* @param currentReferenceTimestampMs - The current reference timestamp for marking unreferenced nodes' unreferenced
|
|
281
|
-
* timestamp.
|
|
282
|
-
*/
|
|
283
|
-
private updateStateFromSnapshotData;
|
|
284
|
-
/**
|
|
285
|
-
* Called when the connection state of the runtime changes, i.e., it connects or disconnects. GC subscribes to this
|
|
286
|
-
* to initialize the base state for non-summarizer clients so that they can track inactive / sweep ready nodes.
|
|
287
|
-
* @param connected - Whether the runtime connected / disconnected.
|
|
288
|
-
* @param clientId - The clientId of this runtime.
|
|
289
|
-
*/
|
|
290
|
-
setConnectionState(connected: boolean, clientId?: string | undefined): void;
|
|
291
|
-
/**
|
|
292
|
-
* Runs garbage collection and updates the reference / used state of the nodes in the container.
|
|
293
|
-
* @returns stats of the GC run or undefined if GC did not run.
|
|
294
|
-
*/
|
|
295
|
-
collectGarbage(options: {
|
|
296
|
-
/** Logger to use for logging GC events */
|
|
297
|
-
logger?: ITelemetryLogger;
|
|
298
|
-
/** True to run GC sweep phase after the mark phase */
|
|
299
|
-
runSweep?: boolean;
|
|
300
|
-
/** True to generate full GC data */
|
|
301
|
-
fullGC?: boolean;
|
|
302
|
-
}): Promise<IGCStats | undefined>;
|
|
303
|
-
private runPreGCSteps;
|
|
304
|
-
private runPostGCSteps;
|
|
305
|
-
/**
|
|
306
|
-
* Summarizes the GC data and returns it as a summary tree.
|
|
307
|
-
* We current write the entire GC state in a single blob. This can be modified later to write multiple
|
|
308
|
-
* blobs. All the blob keys should start with `gcBlobPrefix`.
|
|
309
|
-
*/
|
|
310
|
-
summarize(fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext): ISummarizeResult | undefined;
|
|
311
|
-
/**
|
|
312
|
-
* Builds the GC summary tree which contains GC state, deleted nodes and tombstones.
|
|
313
|
-
* If trackState is false, all of GC state, deleted nodes and tombstones are written as summary blobs.
|
|
314
|
-
* If trackState is true, only states that changed are written. Rest are written as handles.
|
|
315
|
-
* @param serializedGCState - The GC state serialized as string.
|
|
316
|
-
* @param serializedTombstones - The tombstone state serialized as string.
|
|
317
|
-
* @param serializedDeletedNodes - Deleted nodes serialized as string.
|
|
318
|
-
* @param trackState - Whether we are tracking GC state across summaries.
|
|
319
|
-
* @returns the GC summary tree.
|
|
320
|
-
*/
|
|
321
|
-
private buildGCSummaryTree;
|
|
322
|
-
getMetadata(): IGCMetadata;
|
|
323
|
-
/**
|
|
324
|
-
* Returns a the GC details generated from the base summary. This is used to initialize the GC state of the nodes
|
|
325
|
-
* in the container.
|
|
326
|
-
*/
|
|
327
|
-
getBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;
|
|
328
|
-
/**
|
|
329
|
-
* Called to refresh the latest summary state. This happens when either a pending summary is acked or a snapshot
|
|
330
|
-
* is downloaded and should be used to update the state.
|
|
331
|
-
*/
|
|
332
|
-
refreshLatestSummary(result: RefreshSummaryResult, proposalHandle: string | undefined, summaryRefSeq: number, readAndParseBlob: ReadAndParseBlob): Promise<void>;
|
|
333
|
-
/**
|
|
334
|
-
* Called when a node with the given id is updated. If the node is inactive, log an error.
|
|
335
|
-
* @param nodePath - The id of the node that changed.
|
|
336
|
-
* @param reason - Whether the node was loaded or changed.
|
|
337
|
-
* @param timestampMs - The timestamp when the node changed.
|
|
338
|
-
* @param packagePath - The package path of the node. This may not be available if the node hasn't been loaded yet.
|
|
339
|
-
* @param requestHeaders - If the node was loaded via request path, the headers in the request.
|
|
340
|
-
*/
|
|
341
|
-
nodeUpdated(nodePath: string, reason: "Loaded" | "Changed", timestampMs?: number, packagePath?: readonly string[], requestHeaders?: IRequestHeader): void;
|
|
342
|
-
/**
|
|
343
|
-
* Called when an outbound reference is added to a node. This is used to identify all nodes that have been
|
|
344
|
-
* referenced between summaries so that their unreferenced timestamp can be reset.
|
|
345
|
-
*
|
|
346
|
-
* @param fromNodePath - The node from which the reference is added.
|
|
347
|
-
* @param toNodePath - The node to which the reference is added.
|
|
348
|
-
*/
|
|
349
|
-
addedOutboundReference(fromNodePath: string, toNodePath: string): void;
|
|
350
|
-
/**
|
|
351
|
-
* Returns whether a node with the given path has been deleted or not. This can be used by the runtime to identify
|
|
352
|
-
* cases where objects are used after they are deleted and throw / log errors accordingly.
|
|
353
|
-
*/
|
|
354
|
-
isNodeDeleted(nodePath: string): boolean;
|
|
355
|
-
dispose(): void;
|
|
356
|
-
/**
|
|
357
|
-
* Updates the state of the system as per the current GC run. It does the following:
|
|
358
|
-
* 1. Sets up the current GC state as per the gcData.
|
|
359
|
-
* 2. Starts tracking for nodes that have become unreferenced in this run.
|
|
360
|
-
* 3. Clears tracking for nodes that were unreferenced but became referenced in this run.
|
|
361
|
-
* @param gcData - The data representing the reference graph on which GC is run.
|
|
362
|
-
* @param gcResult - The result of the GC run on the gcData.
|
|
363
|
-
* @param currentReferenceTimestampMs - The timestamp to be used for unreferenced nodes' timestamp.
|
|
364
|
-
*/
|
|
365
|
-
private updateCurrentState;
|
|
366
|
-
/**
|
|
367
|
-
* Since GC runs periodically, the GC data that is generated only tells us the state of the world at that point in
|
|
368
|
-
* time. There can be nodes that were referenced in between two runs and their unreferenced state needs to be
|
|
369
|
-
* updated. For example, in the following scenarios not updating the unreferenced timestamp can lead to deletion of
|
|
370
|
-
* these objects while there can be in-memory referenced to it:
|
|
371
|
-
* 1. A node transitions from `unreferenced -> referenced -> unreferenced` between two runs. When the reference is
|
|
372
|
-
* added, the object may have been accessed and in-memory reference to it added.
|
|
373
|
-
* 2. A reference is added from one unreferenced node to one or more unreferenced nodes. Even though the node[s] were
|
|
374
|
-
* unreferenced, they could have been accessed and in-memory reference to them added.
|
|
375
|
-
*
|
|
376
|
-
* This function identifies nodes that were referenced since last run and removes their unreferenced state, if any.
|
|
377
|
-
* If these nodes are currently unreferenced, they will be assigned new unreferenced state by the current run.
|
|
378
|
-
*/
|
|
379
|
-
private updateStateSinceLastRun;
|
|
380
|
-
/**
|
|
381
|
-
* Finds all new references or outbound routes in the current graph that haven't been explicitly notified to GC.
|
|
382
|
-
* The principle is that every new reference or outbound route must be notified to GC via the
|
|
383
|
-
* addedOutboundReference method. It it hasn't, its a bug and we want to identify these scenarios.
|
|
384
|
-
*
|
|
385
|
-
* In more simple terms:
|
|
386
|
-
* Missing Explicit References = Current References - Previous References - Explicitly Added References;
|
|
387
|
-
*
|
|
388
|
-
* @param currentGCData - The GC data (reference graph) from the current GC run.
|
|
389
|
-
* @param previousGCData - The GC data (reference graph) from the previous GC run.
|
|
390
|
-
* @param explicitReferences - New references added explicity between the previous and the current run.
|
|
391
|
-
* @returns - a list of missing explicit references
|
|
392
|
-
*/
|
|
393
|
-
private findMissingExplicitReferences;
|
|
394
|
-
/**
|
|
395
|
-
* Generates the stats of a garbage collection run from the given results of the run.
|
|
396
|
-
* @param gcResult - The result of a GC run.
|
|
397
|
-
* @returns the GC stats of the GC run.
|
|
398
|
-
*/
|
|
399
|
-
private generateStats;
|
|
400
|
-
/**
|
|
401
|
-
* For nodes that are ready to sweep, log an event for now. Until we start running sweep which deletes objects,
|
|
402
|
-
* this will give us a view into how much deleted content a container has.
|
|
403
|
-
*/
|
|
404
|
-
private logSweepEvents;
|
|
405
|
-
/**
|
|
406
|
-
* Called when an inactive node is used after. Queue up an event that will be logged next time GC runs.
|
|
407
|
-
*/
|
|
408
|
-
private inactiveNodeUsed;
|
|
409
|
-
private logUnreferencedEvents;
|
|
410
|
-
}
|
|
411
|
-
//# sourceMappingURL=garbageCollection.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollection.d.ts","sourceRoot":"","sources":["../src/garbageCollection.ts"],"names":[],"mappings":"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"}
|