@fluidframework/container-runtime 2.0.0-internal.8.0.1 → 2.0.0-rc.1.0.1
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 +34 -0
- package/README.md +1 -7
- package/api-extractor-esm.json +4 -0
- package/api-extractor-lint.json +1 -10
- package/api-extractor.json +1 -9
- package/api-report/container-runtime.api.md +18 -17
- package/dist/blobManager.d.ts +8 -3
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +15 -4
- package/dist/blobManager.js.map +1 -1
- package/dist/container-runtime-alpha.d.ts +265 -17
- package/dist/container-runtime-beta.d.ts +0 -42
- package/dist/container-runtime-public.d.ts +0 -42
- package/dist/container-runtime-untrimmed.d.ts +32 -17
- package/dist/containerRuntime.d.ts +8 -4
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +15 -29
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts +5 -2
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +10 -3
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStores.d.ts +10 -3
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +51 -8
- package/dist/dataStores.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +15 -4
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +26 -19
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +29 -6
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +5 -3
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +13 -6
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +18 -9
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/index.d.ts +1 -1
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +2 -1
- package/dist/gc/index.js.map +1 -1
- package/dist/messageTypes.d.ts +1 -1
- package/dist/messageTypes.js +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +1 -1
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +4 -4
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +4 -1
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.d.ts +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +5 -0
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +46 -17
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +1 -1
- package/dist/summary/summarizer.js +1 -1
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +3 -1
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +7 -7
- package/dist/summary/summaryCollection.js +1 -1
- package/dist/summary/summaryCollection.js.map +1 -1
- package/lib/{batchTracker.d.ts → batchTracker.d.mts} +1 -1
- package/lib/batchTracker.d.mts.map +1 -0
- package/lib/{batchTracker.js → batchTracker.mjs} +1 -1
- package/lib/batchTracker.mjs.map +1 -0
- package/lib/{blobManager.d.ts → blobManager.d.mts} +9 -4
- package/lib/blobManager.d.mts.map +1 -0
- package/lib/{blobManager.js → blobManager.mjs} +17 -6
- package/lib/blobManager.mjs.map +1 -0
- package/lib/{connectionTelemetry.d.ts → connectionTelemetry.d.mts} +1 -1
- package/lib/connectionTelemetry.d.mts.map +1 -0
- package/lib/{connectionTelemetry.js → connectionTelemetry.mjs} +1 -1
- package/lib/connectionTelemetry.mjs.map +1 -0
- package/lib/{container-runtime-alpha.d.ts → container-runtime-alpha.d.mts} +265 -17
- package/lib/{container-runtime-beta.d.ts → container-runtime-beta.d.mts} +0 -42
- package/lib/{container-runtime-public.d.ts → container-runtime-public.d.mts} +0 -42
- package/lib/{container-runtime-untrimmed.d.ts → container-runtime-untrimmed.d.mts} +32 -17
- package/lib/{containerHandleContext.d.ts → containerHandleContext.d.mts} +2 -2
- package/lib/containerHandleContext.d.mts.map +1 -0
- package/lib/{containerHandleContext.js → containerHandleContext.mjs} +1 -1
- package/lib/containerHandleContext.mjs.map +1 -0
- package/lib/{containerRuntime.d.ts → containerRuntime.d.mts} +14 -14
- package/lib/containerRuntime.d.mts.map +1 -0
- package/lib/{containerRuntime.js → containerRuntime.mjs} +31 -22
- package/lib/containerRuntime.mjs.map +1 -0
- package/lib/{dataStore.d.ts → dataStore.d.mts} +3 -3
- package/lib/dataStore.d.mts.map +1 -0
- package/lib/{dataStore.js → dataStore.mjs} +1 -1
- package/lib/dataStore.mjs.map +1 -0
- package/lib/{dataStoreContext.d.ts → dataStoreContext.d.mts} +7 -4
- package/lib/dataStoreContext.d.mts.map +1 -0
- package/lib/{dataStoreContext.js → dataStoreContext.mjs} +13 -6
- package/lib/dataStoreContext.mjs.map +1 -0
- package/lib/{dataStoreContexts.d.ts → dataStoreContexts.d.mts} +2 -2
- package/lib/dataStoreContexts.d.mts.map +1 -0
- package/lib/{dataStoreContexts.js → dataStoreContexts.mjs} +1 -1
- package/lib/dataStoreContexts.mjs.map +1 -0
- package/lib/{dataStoreRegistry.d.ts → dataStoreRegistry.d.mts} +1 -1
- package/lib/dataStoreRegistry.d.mts.map +1 -0
- package/lib/{dataStoreRegistry.js → dataStoreRegistry.mjs} +1 -5
- package/lib/dataStoreRegistry.mjs.map +1 -0
- package/lib/{dataStores.d.ts → dataStores.d.mts} +17 -10
- package/lib/dataStores.d.mts.map +1 -0
- package/lib/{dataStores.js → dataStores.mjs} +58 -16
- package/lib/dataStores.mjs.map +1 -0
- package/lib/{deltaManagerProxyBase.d.ts → deltaManagerProxyBase.d.mts} +1 -1
- package/lib/deltaManagerProxyBase.d.mts.map +1 -0
- package/lib/{deltaManagerProxyBase.js → deltaManagerProxyBase.mjs} +1 -1
- package/lib/deltaManagerProxyBase.mjs.map +1 -0
- package/lib/{deltaManagerSummarizerProxy.d.ts → deltaManagerSummarizerProxy.d.mts} +2 -2
- package/lib/deltaManagerSummarizerProxy.d.mts.map +1 -0
- package/lib/{deltaManagerSummarizerProxy.js → deltaManagerSummarizerProxy.mjs} +3 -3
- package/lib/deltaManagerSummarizerProxy.mjs.map +1 -0
- package/lib/{deltaScheduler.d.ts → deltaScheduler.d.mts} +1 -1
- package/lib/deltaScheduler.d.mts.map +1 -0
- package/lib/{deltaScheduler.js → deltaScheduler.mjs} +1 -1
- package/lib/deltaScheduler.mjs.map +1 -0
- package/lib/{error.d.ts → error.d.mts} +1 -1
- package/lib/error.d.mts.map +1 -0
- package/lib/{error.js → error.mjs} +1 -1
- package/lib/error.mjs.map +1 -0
- package/lib/gc/{garbageCollection.d.ts → garbageCollection.d.mts} +5 -5
- package/lib/gc/garbageCollection.d.mts.map +1 -0
- package/lib/gc/{garbageCollection.js → garbageCollection.mjs} +28 -17
- package/lib/gc/garbageCollection.mjs.map +1 -0
- package/lib/gc/{gcConfigs.d.ts → gcConfigs.d.mts} +3 -3
- package/lib/gc/gcConfigs.d.mts.map +1 -0
- package/lib/gc/{gcConfigs.js → gcConfigs.mjs} +29 -22
- package/lib/gc/gcConfigs.mjs.map +1 -0
- package/lib/gc/{gcDefinitions.d.ts → gcDefinitions.d.mts} +33 -10
- package/lib/gc/gcDefinitions.d.mts.map +1 -0
- package/lib/gc/{gcDefinitions.js → gcDefinitions.mjs} +5 -3
- package/lib/gc/gcDefinitions.mjs.map +1 -0
- package/lib/gc/{gcHelpers.d.ts → gcHelpers.d.mts} +3 -3
- package/lib/gc/{gcHelpers.d.ts.map → gcHelpers.d.mts.map} +1 -1
- package/lib/gc/{gcHelpers.js → gcHelpers.mjs} +1 -1
- package/lib/gc/gcHelpers.mjs.map +1 -0
- package/lib/gc/{gcReferenceGraphAlgorithm.d.ts → gcReferenceGraphAlgorithm.d.mts} +2 -2
- package/lib/gc/gcReferenceGraphAlgorithm.d.mts.map +1 -0
- package/lib/gc/{gcReferenceGraphAlgorithm.js → gcReferenceGraphAlgorithm.mjs} +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.mjs.map +1 -0
- package/lib/gc/{gcSummaryDefinitions.d.ts → gcSummaryDefinitions.d.mts} +1 -1
- package/lib/gc/gcSummaryDefinitions.d.mts.map +1 -0
- package/lib/gc/{gcSummaryDefinitions.js → gcSummaryDefinitions.mjs} +1 -1
- package/lib/gc/gcSummaryDefinitions.mjs.map +1 -0
- package/lib/gc/{gcSummaryStateTracker.d.ts → gcSummaryStateTracker.d.mts} +4 -4
- package/lib/gc/gcSummaryStateTracker.d.mts.map +1 -0
- package/lib/gc/{gcSummaryStateTracker.js → gcSummaryStateTracker.mjs} +2 -2
- package/lib/gc/gcSummaryStateTracker.mjs.map +1 -0
- package/lib/gc/{gcTelemetry.d.ts → gcTelemetry.d.mts} +18 -11
- package/lib/gc/gcTelemetry.d.mts.map +1 -0
- package/lib/gc/{gcTelemetry.js → gcTelemetry.mjs} +20 -11
- package/lib/gc/gcTelemetry.mjs.map +1 -0
- package/lib/gc/{gcUnreferencedStateTracker.d.ts → gcUnreferencedStateTracker.d.mts} +2 -2
- package/lib/gc/gcUnreferencedStateTracker.d.mts.map +1 -0
- package/lib/gc/{gcUnreferencedStateTracker.js → gcUnreferencedStateTracker.mjs} +2 -2
- package/lib/gc/gcUnreferencedStateTracker.mjs.map +1 -0
- package/lib/gc/{index.d.ts → index.d.mts} +9 -9
- package/lib/gc/index.d.mts.map +1 -0
- package/lib/gc/{index.js → index.mjs} +8 -8
- package/lib/gc/index.mjs.map +1 -0
- package/lib/{index.d.ts → index.d.mts} +8 -8
- package/lib/index.d.mts.map +1 -0
- package/lib/{index.js → index.mjs} +7 -9
- package/lib/index.mjs.map +1 -0
- package/lib/{messageTypes.d.ts → messageTypes.d.mts} +5 -5
- package/lib/messageTypes.d.mts.map +1 -0
- package/lib/{messageTypes.js → messageTypes.mjs} +2 -2
- package/lib/messageTypes.mjs.map +1 -0
- package/lib/{metadata.d.ts → metadata.d.mts} +1 -1
- package/lib/metadata.d.mts.map +1 -0
- package/lib/{metadata.js → metadata.mjs} +1 -1
- package/lib/metadata.mjs.map +1 -0
- package/lib/opLifecycle/{batchManager.d.ts → batchManager.d.mts} +3 -3
- package/lib/opLifecycle/batchManager.d.mts.map +1 -0
- package/lib/opLifecycle/{batchManager.js → batchManager.mjs} +1 -1
- package/lib/opLifecycle/batchManager.mjs.map +1 -0
- package/lib/opLifecycle/{definitions.d.ts → definitions.d.mts} +3 -3
- package/lib/opLifecycle/definitions.d.mts.map +1 -0
- package/lib/opLifecycle/{definitions.js → definitions.mjs} +1 -1
- package/lib/opLifecycle/definitions.mjs.map +1 -0
- package/lib/opLifecycle/index.d.mts +13 -0
- package/lib/opLifecycle/index.d.mts.map +1 -0
- package/lib/opLifecycle/index.mjs +12 -0
- package/lib/opLifecycle/index.mjs.map +1 -0
- package/lib/opLifecycle/{opCompressor.d.ts → opCompressor.d.mts} +2 -2
- package/lib/opLifecycle/opCompressor.d.mts.map +1 -0
- package/lib/opLifecycle/{opCompressor.js → opCompressor.mjs} +3 -3
- package/lib/opLifecycle/opCompressor.mjs.map +1 -0
- package/lib/opLifecycle/{opDecompressor.d.ts → opDecompressor.d.mts} +2 -2
- package/lib/opLifecycle/opDecompressor.d.mts.map +1 -0
- package/lib/opLifecycle/{opDecompressor.js → opDecompressor.mjs} +2 -2
- package/lib/opLifecycle/opDecompressor.mjs.map +1 -0
- package/lib/opLifecycle/{opGroupingManager.d.ts → opGroupingManager.d.mts} +2 -2
- package/lib/opLifecycle/opGroupingManager.d.mts.map +1 -0
- package/lib/opLifecycle/{opGroupingManager.js → opGroupingManager.mjs} +1 -1
- package/lib/opLifecycle/opGroupingManager.mjs.map +1 -0
- package/lib/opLifecycle/{opSplitter.d.ts → opSplitter.d.mts} +2 -2
- package/lib/opLifecycle/opSplitter.d.mts.map +1 -0
- package/lib/opLifecycle/{opSplitter.js → opSplitter.mjs} +3 -3
- package/lib/opLifecycle/opSplitter.mjs.map +1 -0
- package/lib/opLifecycle/{outbox.d.ts → outbox.d.mts} +11 -11
- package/lib/opLifecycle/outbox.d.mts.map +1 -0
- package/lib/opLifecycle/{outbox.js → outbox.mjs} +6 -3
- package/lib/opLifecycle/outbox.mjs.map +1 -0
- package/lib/opLifecycle/{remoteMessageProcessor.d.ts → remoteMessageProcessor.d.mts} +5 -5
- package/lib/opLifecycle/remoteMessageProcessor.d.mts.map +1 -0
- package/lib/opLifecycle/{remoteMessageProcessor.js → remoteMessageProcessor.mjs} +2 -2
- package/lib/opLifecycle/remoteMessageProcessor.mjs.map +1 -0
- package/lib/{opProperties.d.ts → opProperties.d.mts} +1 -1
- package/lib/opProperties.d.mts.map +1 -0
- package/lib/{opProperties.js → opProperties.mjs} +1 -1
- package/lib/opProperties.mjs.map +1 -0
- package/lib/{packageVersion.d.ts → packageVersion.d.mts} +2 -2
- package/lib/packageVersion.d.mts.map +1 -0
- package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
- package/lib/packageVersion.mjs.map +1 -0
- package/lib/{pendingStateManager.d.ts → pendingStateManager.d.mts} +2 -2
- package/lib/pendingStateManager.d.mts.map +1 -0
- package/lib/{pendingStateManager.js → pendingStateManager.mjs} +2 -2
- package/lib/pendingStateManager.mjs.map +1 -0
- package/lib/{scheduleManager.d.ts → scheduleManager.d.mts} +1 -5
- package/lib/scheduleManager.d.mts.map +1 -0
- package/lib/{scheduleManager.js → scheduleManager.mjs} +3 -3
- package/lib/scheduleManager.mjs.map +1 -0
- package/lib/{storageServiceWithAttachBlobs.d.ts → storageServiceWithAttachBlobs.d.mts} +1 -1
- package/lib/storageServiceWithAttachBlobs.d.mts.map +1 -0
- package/lib/{storageServiceWithAttachBlobs.js → storageServiceWithAttachBlobs.mjs} +1 -1
- package/lib/storageServiceWithAttachBlobs.mjs.map +1 -0
- package/lib/summary/{index.d.ts → index.d.mts} +13 -13
- package/lib/summary/index.d.mts.map +1 -0
- package/lib/summary/{index.js → index.mjs} +12 -12
- package/lib/summary/index.mjs.map +1 -0
- package/lib/summary/{orderedClientElection.d.ts → orderedClientElection.d.mts} +1 -5
- package/lib/summary/orderedClientElection.d.mts.map +1 -0
- package/lib/summary/{orderedClientElection.js → orderedClientElection.mjs} +2 -2
- package/lib/summary/orderedClientElection.mjs.map +1 -0
- package/lib/summary/{runWhileConnectedCoordinator.d.ts → runWhileConnectedCoordinator.d.mts} +3 -3
- package/lib/summary/runWhileConnectedCoordinator.d.mts.map +1 -0
- package/lib/summary/{runWhileConnectedCoordinator.js → runWhileConnectedCoordinator.mjs} +1 -1
- package/lib/summary/runWhileConnectedCoordinator.mjs.map +1 -0
- package/lib/summary/{runningSummarizer.d.ts → runningSummarizer.d.mts} +10 -5
- package/lib/summary/runningSummarizer.d.mts.map +1 -0
- package/lib/summary/{runningSummarizer.js → runningSummarizer.mjs} +50 -21
- package/lib/summary/runningSummarizer.mjs.map +1 -0
- package/lib/summary/{summarizer.d.ts → summarizer.d.mts} +6 -6
- package/lib/summary/summarizer.d.mts.map +1 -0
- package/lib/summary/{summarizer.js → summarizer.mjs} +5 -5
- package/lib/summary/summarizer.mjs.map +1 -0
- package/lib/summary/{summarizerClientElection.d.ts → summarizerClientElection.d.mts} +3 -3
- package/lib/summary/summarizerClientElection.d.mts.map +1 -0
- package/lib/summary/{summarizerClientElection.js → summarizerClientElection.mjs} +1 -1
- package/lib/summary/summarizerClientElection.mjs.map +1 -0
- package/lib/summary/{summarizerHeuristics.d.ts → summarizerHeuristics.d.mts} +4 -4
- package/lib/summary/summarizerHeuristics.d.mts.map +1 -0
- package/lib/summary/{summarizerHeuristics.js → summarizerHeuristics.mjs} +1 -1
- package/lib/summary/summarizerHeuristics.mjs.map +1 -0
- package/lib/summary/summarizerNode/{index.d.ts → index.d.mts} +4 -4
- package/lib/summary/summarizerNode/index.d.mts.map +1 -0
- package/lib/summary/summarizerNode/{index.js → index.mjs} +3 -3
- package/lib/summary/summarizerNode/index.mjs.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNode.d.ts → summarizerNode.d.mts} +2 -2
- package/lib/summary/summarizerNode/summarizerNode.d.mts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNode.js → summarizerNode.mjs} +2 -2
- package/lib/summary/summarizerNode/summarizerNode.mjs.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeUtils.d.ts → summarizerNodeUtils.d.mts} +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.mts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeUtils.js → summarizerNodeUtils.mjs} +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.mjs.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeWithGc.d.ts → summarizerNodeWithGc.d.mts} +3 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.mts.map +1 -0
- package/lib/summary/summarizerNode/{summarizerNodeWithGc.js → summarizerNodeWithGc.mjs} +4 -4
- package/lib/summary/summarizerNode/summarizerNodeWithGc.mjs.map +1 -0
- package/lib/summary/{summarizerTypes.d.ts → summarizerTypes.d.mts} +7 -5
- package/lib/summary/summarizerTypes.d.mts.map +1 -0
- package/lib/summary/{summarizerTypes.js → summarizerTypes.mjs} +1 -1
- package/lib/summary/summarizerTypes.mjs.map +1 -0
- package/lib/summary/{summaryCollection.d.ts → summaryCollection.d.mts} +8 -8
- package/lib/summary/summaryCollection.d.mts.map +1 -0
- package/lib/summary/{summaryCollection.js → summaryCollection.mjs} +2 -2
- package/lib/summary/summaryCollection.mjs.map +1 -0
- package/lib/summary/{summaryFormat.d.ts → summaryFormat.d.mts} +2 -2
- package/lib/summary/summaryFormat.d.mts.map +1 -0
- package/lib/summary/{summaryFormat.js → summaryFormat.mjs} +1 -1
- package/lib/summary/summaryFormat.mjs.map +1 -0
- package/lib/summary/{summaryGenerator.d.ts → summaryGenerator.d.mts} +3 -3
- package/lib/summary/summaryGenerator.d.mts.map +1 -0
- package/lib/summary/{summaryGenerator.js → summaryGenerator.mjs} +1 -1
- package/lib/summary/summaryGenerator.mjs.map +1 -0
- package/lib/summary/{summaryManager.d.ts → summaryManager.d.mts} +5 -5
- package/lib/summary/summaryManager.d.mts.map +1 -0
- package/lib/summary/{summaryManager.js → summaryManager.mjs} +2 -2
- package/lib/summary/summaryManager.mjs.map +1 -0
- package/lib/{throttler.d.ts → throttler.d.mts} +1 -1
- package/lib/throttler.d.mts.map +1 -0
- package/lib/{throttler.js → throttler.mjs} +1 -1
- package/lib/throttler.mjs.map +1 -0
- package/package.json +145 -39
- package/src/blobManager.ts +15 -4
- package/src/containerRuntime.ts +15 -4
- package/src/dataStoreContext.ts +11 -4
- package/src/dataStores.ts +61 -7
- package/src/gc/garbageCollection.ts +18 -4
- package/src/gc/gcConfigs.ts +28 -20
- package/src/gc/gcDefinitions.ts +30 -6
- package/src/gc/gcTelemetry.ts +19 -9
- package/src/gc/index.ts +3 -0
- package/src/messageTypes.ts +1 -1
- package/src/opLifecycle/definitions.ts +1 -1
- package/src/opLifecycle/outbox.ts +5 -2
- package/src/packageVersion.ts +1 -1
- package/src/summary/runWhileConnectedCoordinator.ts +1 -1
- package/src/summary/runningSummarizer.ts +58 -25
- package/src/summary/summarizer.ts +1 -1
- package/src/summary/summarizerTypes.ts +3 -1
- package/src/summary/summaryCollection.ts +7 -7
- package/tsconfig.json +6 -4
- package/lib/batchTracker.d.ts.map +0 -1
- package/lib/batchTracker.js.map +0 -1
- package/lib/blobManager.d.ts.map +0 -1
- package/lib/blobManager.js.map +0 -1
- package/lib/connectionTelemetry.d.ts.map +0 -1
- package/lib/connectionTelemetry.js.map +0 -1
- package/lib/containerHandleContext.d.ts.map +0 -1
- package/lib/containerHandleContext.js.map +0 -1
- package/lib/containerRuntime.d.ts.map +0 -1
- package/lib/containerRuntime.js.map +0 -1
- package/lib/dataStore.d.ts.map +0 -1
- package/lib/dataStore.js.map +0 -1
- package/lib/dataStoreContext.d.ts.map +0 -1
- package/lib/dataStoreContext.js.map +0 -1
- package/lib/dataStoreContexts.d.ts.map +0 -1
- package/lib/dataStoreContexts.js.map +0 -1
- package/lib/dataStoreRegistry.d.ts.map +0 -1
- package/lib/dataStoreRegistry.js.map +0 -1
- package/lib/dataStores.d.ts.map +0 -1
- package/lib/dataStores.js.map +0 -1
- package/lib/deltaManagerProxyBase.d.ts.map +0 -1
- package/lib/deltaManagerProxyBase.js.map +0 -1
- package/lib/deltaManagerSummarizerProxy.d.ts.map +0 -1
- package/lib/deltaManagerSummarizerProxy.js.map +0 -1
- package/lib/deltaScheduler.d.ts.map +0 -1
- package/lib/deltaScheduler.js.map +0 -1
- package/lib/error.d.ts.map +0 -1
- package/lib/error.js.map +0 -1
- package/lib/gc/garbageCollection.d.ts.map +0 -1
- package/lib/gc/garbageCollection.js.map +0 -1
- package/lib/gc/gcConfigs.d.ts.map +0 -1
- package/lib/gc/gcConfigs.js.map +0 -1
- package/lib/gc/gcDefinitions.d.ts.map +0 -1
- package/lib/gc/gcDefinitions.js.map +0 -1
- package/lib/gc/gcHelpers.js.map +0 -1
- package/lib/gc/gcReferenceGraphAlgorithm.d.ts.map +0 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +0 -1
- package/lib/gc/gcSummaryDefinitions.d.ts.map +0 -1
- package/lib/gc/gcSummaryDefinitions.js.map +0 -1
- package/lib/gc/gcSummaryStateTracker.d.ts.map +0 -1
- package/lib/gc/gcSummaryStateTracker.js.map +0 -1
- package/lib/gc/gcTelemetry.d.ts.map +0 -1
- package/lib/gc/gcTelemetry.js.map +0 -1
- package/lib/gc/gcUnreferencedStateTracker.d.ts.map +0 -1
- package/lib/gc/gcUnreferencedStateTracker.js.map +0 -1
- package/lib/gc/index.d.ts.map +0 -1
- package/lib/gc/index.js.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/messageTypes.d.ts.map +0 -1
- package/lib/messageTypes.js.map +0 -1
- package/lib/metadata.d.ts.map +0 -1
- package/lib/metadata.js.map +0 -1
- package/lib/opLifecycle/batchManager.d.ts.map +0 -1
- package/lib/opLifecycle/batchManager.js.map +0 -1
- package/lib/opLifecycle/definitions.d.ts.map +0 -1
- package/lib/opLifecycle/definitions.js.map +0 -1
- package/lib/opLifecycle/index.d.ts +0 -13
- package/lib/opLifecycle/index.d.ts.map +0 -1
- package/lib/opLifecycle/index.js +0 -12
- package/lib/opLifecycle/index.js.map +0 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +0 -1
- package/lib/opLifecycle/opCompressor.js.map +0 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +0 -1
- package/lib/opLifecycle/opDecompressor.js.map +0 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +0 -1
- package/lib/opLifecycle/opGroupingManager.js.map +0 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +0 -1
- package/lib/opLifecycle/opSplitter.js.map +0 -1
- package/lib/opLifecycle/outbox.d.ts.map +0 -1
- package/lib/opLifecycle/outbox.js.map +0 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +0 -1
- package/lib/opLifecycle/remoteMessageProcessor.js.map +0 -1
- package/lib/opProperties.d.ts.map +0 -1
- package/lib/opProperties.js.map +0 -1
- package/lib/packageVersion.d.ts.map +0 -1
- package/lib/packageVersion.js.map +0 -1
- package/lib/pendingStateManager.d.ts.map +0 -1
- package/lib/pendingStateManager.js.map +0 -1
- package/lib/scheduleManager.d.ts.map +0 -1
- package/lib/scheduleManager.js.map +0 -1
- package/lib/storageServiceWithAttachBlobs.d.ts.map +0 -1
- package/lib/storageServiceWithAttachBlobs.js.map +0 -1
- package/lib/summary/index.d.ts.map +0 -1
- package/lib/summary/index.js.map +0 -1
- package/lib/summary/orderedClientElection.d.ts.map +0 -1
- package/lib/summary/orderedClientElection.js.map +0 -1
- package/lib/summary/runWhileConnectedCoordinator.d.ts.map +0 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +0 -1
- package/lib/summary/runningSummarizer.d.ts.map +0 -1
- package/lib/summary/runningSummarizer.js.map +0 -1
- package/lib/summary/summarizer.d.ts.map +0 -1
- package/lib/summary/summarizer.js.map +0 -1
- package/lib/summary/summarizerClientElection.d.ts.map +0 -1
- package/lib/summary/summarizerClientElection.js.map +0 -1
- package/lib/summary/summarizerHeuristics.d.ts.map +0 -1
- package/lib/summary/summarizerHeuristics.js.map +0 -1
- package/lib/summary/summarizerNode/index.d.ts.map +0 -1
- package/lib/summary/summarizerNode/index.js.map +0 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +0 -1
- package/lib/summary/summarizerNode/summarizerNode.js.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +0 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +0 -1
- package/lib/summary/summarizerTypes.d.ts.map +0 -1
- package/lib/summary/summarizerTypes.js.map +0 -1
- package/lib/summary/summaryCollection.d.ts.map +0 -1
- package/lib/summary/summaryCollection.js.map +0 -1
- package/lib/summary/summaryFormat.d.ts.map +0 -1
- package/lib/summary/summaryFormat.js.map +0 -1
- package/lib/summary/summaryGenerator.d.ts.map +0 -1
- package/lib/summary/summaryGenerator.js.map +0 -1
- package/lib/summary/summaryManager.d.ts.map +0 -1
- package/lib/summary/summaryManager.js.map +0 -1
- package/lib/throttler.d.ts.map +0 -1
- package/lib/throttler.js.map +0 -1
- package/tsconfig.esnext.json +0 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/container-runtime",
|
|
3
|
-
"version": "2.0.0-
|
|
3
|
+
"version": "2.0.0-rc.1.0.1",
|
|
4
4
|
"description": "Fluid container runtime",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -11,20 +11,132 @@
|
|
|
11
11
|
"license": "MIT",
|
|
12
12
|
"author": "Microsoft and contributors",
|
|
13
13
|
"sideEffects": false,
|
|
14
|
+
"exports": {
|
|
15
|
+
".": {
|
|
16
|
+
"import": {
|
|
17
|
+
"types": "./lib/index.d.mts",
|
|
18
|
+
"default": "./lib/index.mjs"
|
|
19
|
+
},
|
|
20
|
+
"require": {
|
|
21
|
+
"types": "./dist/index.d.ts",
|
|
22
|
+
"default": "./dist/index.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"./test/containerRuntime": {
|
|
26
|
+
"import": {
|
|
27
|
+
"types": "./lib/containerRuntime.d.mts",
|
|
28
|
+
"default": "./lib/containerRuntime.mjs"
|
|
29
|
+
},
|
|
30
|
+
"require": {
|
|
31
|
+
"types": "./dist/containerRuntime.d.ts",
|
|
32
|
+
"default": "./dist/containerRuntime.js"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"./test/deltaScheduler": {
|
|
36
|
+
"import": {
|
|
37
|
+
"types": "./lib/deltaScheduler.d.mts",
|
|
38
|
+
"default": "./lib/deltaScheduler.mjs"
|
|
39
|
+
},
|
|
40
|
+
"require": {
|
|
41
|
+
"types": "./dist/deltaScheduler.d.ts",
|
|
42
|
+
"default": "./dist/deltaScheduler.js"
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
"./test/scheduleManager": {
|
|
46
|
+
"import": {
|
|
47
|
+
"types": "./lib/scheduleManager.d.mts",
|
|
48
|
+
"default": "./lib/scheduleManager.mjs"
|
|
49
|
+
},
|
|
50
|
+
"require": {
|
|
51
|
+
"types": "./dist/scheduleManager.d.ts",
|
|
52
|
+
"default": "./dist/scheduleManager.js"
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
"./test/blobManager": {
|
|
56
|
+
"import": {
|
|
57
|
+
"types": "./lib/blobManager.d.mts",
|
|
58
|
+
"default": "./lib/blobManager.mjs"
|
|
59
|
+
},
|
|
60
|
+
"require": {
|
|
61
|
+
"types": "./dist/blobManager.d.ts",
|
|
62
|
+
"default": "./dist/blobManager.js"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
"./test/summary": {
|
|
66
|
+
"import": {
|
|
67
|
+
"types": "./lib/summary/index.d.mts",
|
|
68
|
+
"default": "./lib/summary/index.mjs"
|
|
69
|
+
},
|
|
70
|
+
"require": {
|
|
71
|
+
"types": "./dist/summary/index.d.ts",
|
|
72
|
+
"default": "./dist/summary/index.js"
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
"./test/gc": {
|
|
76
|
+
"import": {
|
|
77
|
+
"types": "./lib/gc/index.d.mts",
|
|
78
|
+
"default": "./lib/gc/index.mjs"
|
|
79
|
+
},
|
|
80
|
+
"require": {
|
|
81
|
+
"types": "./gc/index.d.ts",
|
|
82
|
+
"default": "./gc/index.js"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"./alpha": {
|
|
86
|
+
"import": {
|
|
87
|
+
"types": "./lib/container-runtime-alpha.d.mts",
|
|
88
|
+
"default": "./lib/index.mjs"
|
|
89
|
+
},
|
|
90
|
+
"require": {
|
|
91
|
+
"types": "./dist/container-runtime-alpha.d.ts",
|
|
92
|
+
"default": "./dist/index.js"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"./beta": {
|
|
96
|
+
"import": {
|
|
97
|
+
"types": "./lib/container-runtime-beta.d.mts",
|
|
98
|
+
"default": "./lib/index.mjs"
|
|
99
|
+
},
|
|
100
|
+
"require": {
|
|
101
|
+
"types": "./dist/container-runtime-beta.d.ts",
|
|
102
|
+
"default": "./dist/index.js"
|
|
103
|
+
}
|
|
104
|
+
},
|
|
105
|
+
"./internal": {
|
|
106
|
+
"import": {
|
|
107
|
+
"types": "./lib/index.d.mts",
|
|
108
|
+
"default": "./lib/index.mjs"
|
|
109
|
+
},
|
|
110
|
+
"require": {
|
|
111
|
+
"types": "./dist/index.d.ts",
|
|
112
|
+
"default": "./dist/index.js"
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"./public": {
|
|
116
|
+
"import": {
|
|
117
|
+
"types": "./lib/container-runtime-public.d.mts",
|
|
118
|
+
"default": "./lib/index.mjs"
|
|
119
|
+
},
|
|
120
|
+
"require": {
|
|
121
|
+
"types": "./dist/container-runtime-public.d.ts",
|
|
122
|
+
"default": "./dist/index.js"
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
},
|
|
14
126
|
"main": "dist/index.js",
|
|
15
|
-
"module": "lib/index.
|
|
127
|
+
"module": "lib/index.mjs",
|
|
16
128
|
"types": "dist/index.d.ts",
|
|
17
129
|
"c8": {
|
|
18
130
|
"all": true,
|
|
19
131
|
"cache-dir": "nyc/.cache",
|
|
20
132
|
"exclude": [
|
|
21
|
-
"src/test
|
|
22
|
-
"dist/test
|
|
133
|
+
"src/test/**/*.*ts",
|
|
134
|
+
"dist/test/**/*.*js"
|
|
23
135
|
],
|
|
24
136
|
"exclude-after-remap": false,
|
|
25
137
|
"include": [
|
|
26
|
-
"src
|
|
27
|
-
"dist
|
|
138
|
+
"src/**/*.*ts",
|
|
139
|
+
"dist/**/*.*js"
|
|
28
140
|
],
|
|
29
141
|
"report-dir": "nyc/report",
|
|
30
142
|
"reporter": [
|
|
@@ -35,43 +147,43 @@
|
|
|
35
147
|
"temp-directory": "nyc/.nyc_output"
|
|
36
148
|
},
|
|
37
149
|
"dependencies": {
|
|
38
|
-
"@fluid-internal/client-utils": ">=2.0.0-
|
|
39
|
-
"@fluidframework/container-definitions": ">=2.0.0-
|
|
40
|
-
"@fluidframework/container-runtime-definitions": ">=2.0.0-
|
|
41
|
-
"@fluidframework/core-interfaces": ">=2.0.0-
|
|
42
|
-
"@fluidframework/core-utils": ">=2.0.0-
|
|
43
|
-
"@fluidframework/datastore": ">=2.0.0-
|
|
44
|
-
"@fluidframework/driver-definitions": ">=2.0.0-
|
|
45
|
-
"@fluidframework/driver-utils": ">=2.0.0-
|
|
46
|
-
"@fluidframework/id-compressor": ">=2.0.0-
|
|
47
|
-
"@fluidframework/protocol-definitions": "^3.
|
|
48
|
-
"@fluidframework/runtime-definitions": ">=2.0.0-
|
|
49
|
-
"@fluidframework/runtime-utils": ">=2.0.0-
|
|
50
|
-
"@fluidframework/telemetry-utils": ">=2.0.0-
|
|
150
|
+
"@fluid-internal/client-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
151
|
+
"@fluidframework/container-definitions": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
152
|
+
"@fluidframework/container-runtime-definitions": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
153
|
+
"@fluidframework/core-interfaces": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
154
|
+
"@fluidframework/core-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
155
|
+
"@fluidframework/datastore": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
156
|
+
"@fluidframework/driver-definitions": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
157
|
+
"@fluidframework/driver-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
158
|
+
"@fluidframework/id-compressor": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
159
|
+
"@fluidframework/protocol-definitions": "^3.1.0",
|
|
160
|
+
"@fluidframework/runtime-definitions": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
161
|
+
"@fluidframework/runtime-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
162
|
+
"@fluidframework/telemetry-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
163
|
+
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
51
164
|
"double-ended-queue": "^2.1.0-0",
|
|
52
165
|
"events": "^3.1.0",
|
|
53
166
|
"lz4js": "^0.2.0",
|
|
54
|
-
"sorted-btree": "^1.8.0",
|
|
55
167
|
"uuid": "^9.0.0"
|
|
56
168
|
},
|
|
57
169
|
"devDependencies": {
|
|
58
170
|
"@arethetypeswrong/cli": "^0.13.3",
|
|
59
|
-
"@fluid-private/stochastic-test-utils": ">=2.0.0-
|
|
171
|
+
"@fluid-private/stochastic-test-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
60
172
|
"@fluid-tools/benchmark": "^0.48.0",
|
|
61
|
-
"@fluid-tools/build-cli": "^0.
|
|
173
|
+
"@fluid-tools/build-cli": "^0.29.0",
|
|
62
174
|
"@fluidframework/build-common": "^2.0.3",
|
|
63
|
-
"@fluidframework/build-tools": "^0.
|
|
64
|
-
"@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.
|
|
65
|
-
"@fluidframework/eslint-config-fluid": "^3.
|
|
66
|
-
"@fluidframework/mocha-test-setup": ">=2.0.0-
|
|
67
|
-
"@fluidframework/test-runtime-utils": ">=2.0.0-
|
|
175
|
+
"@fluidframework/build-tools": "^0.29.0",
|
|
176
|
+
"@fluidframework/container-runtime-previous": "npm:@fluidframework/container-runtime@2.0.0-internal.8.0.0",
|
|
177
|
+
"@fluidframework/eslint-config-fluid": "^3.2.0",
|
|
178
|
+
"@fluidframework/mocha-test-setup": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
179
|
+
"@fluidframework/test-runtime-utils": ">=2.0.0-rc.1.0.1 <2.0.0-rc.1.1.0",
|
|
68
180
|
"@microsoft/api-extractor": "^7.38.3",
|
|
69
181
|
"@types/double-ended-queue": "^2.1.0",
|
|
70
182
|
"@types/events": "^3.0.0",
|
|
71
183
|
"@types/mocha": "^9.1.1",
|
|
72
184
|
"@types/sinon": "^7.0.13",
|
|
73
185
|
"@types/uuid": "^9.0.2",
|
|
74
|
-
"c8": "^
|
|
186
|
+
"c8": "^8.0.1",
|
|
75
187
|
"copyfiles": "^2.4.1",
|
|
76
188
|
"cross-env": "^7.0.3",
|
|
77
189
|
"eslint": "~8.50.0",
|
|
@@ -82,6 +194,7 @@
|
|
|
82
194
|
"prettier": "~3.0.3",
|
|
83
195
|
"rimraf": "^4.4.0",
|
|
84
196
|
"sinon": "^7.4.2",
|
|
197
|
+
"tsc-multi": "^1.1.0",
|
|
85
198
|
"typescript": "~5.1.6"
|
|
86
199
|
},
|
|
87
200
|
"fluidBuild": {
|
|
@@ -99,13 +212,6 @@
|
|
|
99
212
|
"typeValidation": {
|
|
100
213
|
"broken": {
|
|
101
214
|
"ClassDeclaration_ContainerRuntime": {
|
|
102
|
-
"backCompat": false
|
|
103
|
-
},
|
|
104
|
-
"RemovedFunctionDeclaration_TEST_requestSummarizer": {
|
|
105
|
-
"forwardCompat": false,
|
|
106
|
-
"backCompat": false
|
|
107
|
-
},
|
|
108
|
-
"InterfaceDeclaration_IGCStats": {
|
|
109
215
|
"forwardCompat": false
|
|
110
216
|
}
|
|
111
217
|
}
|
|
@@ -113,15 +219,15 @@
|
|
|
113
219
|
"scripts": {
|
|
114
220
|
"api": "fluid-build . --task api",
|
|
115
221
|
"api-extractor:commonjs": "api-extractor run --local",
|
|
116
|
-
"api-extractor:esnext": "
|
|
222
|
+
"api-extractor:esnext": "api-extractor run --config ./api-extractor-esm.json",
|
|
117
223
|
"build": "fluid-build . --task build",
|
|
118
224
|
"build:commonjs": "fluid-build . --task commonjs",
|
|
119
225
|
"build:compile": "fluid-build . --task compile",
|
|
120
226
|
"build:docs": "fluid-build . --task api",
|
|
121
|
-
"build:esnext": "tsc --
|
|
227
|
+
"build:esnext": "tsc-multi --config ../../../common/build/build-common/tsc-multi.esm.json",
|
|
122
228
|
"build:genver": "gen-version",
|
|
123
229
|
"build:test": "tsc --project ./src/test/tsconfig.json",
|
|
124
|
-
"check:are-the-types-wrong": "attw --pack",
|
|
230
|
+
"check:are-the-types-wrong": "attw --pack . --entrypoints .",
|
|
125
231
|
"check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
|
|
126
232
|
"ci:build:docs": "api-extractor run",
|
|
127
233
|
"clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
|
|
@@ -133,7 +239,7 @@
|
|
|
133
239
|
"prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
134
240
|
"prettier:fix": "prettier --write . --cache --ignore-path ../../../.prettierignore",
|
|
135
241
|
"test": "npm run test:mocha",
|
|
136
|
-
"test:benchmark:report": "mocha --timeout 999999 --perfMode --parentProcess --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js \"./dist/**/*.perf.spec
|
|
242
|
+
"test:benchmark:report": "mocha --timeout 999999 --perfMode --parentProcess --fgrep @Benchmark --reporter @fluid-tools/benchmark/dist/MochaReporter.js \"./dist/**/*.perf.spec.*js\"",
|
|
137
243
|
"test:coverage": "c8 npm test",
|
|
138
244
|
"test:mocha": "mocha --ignore \"dist/test/types/*\" --recursive dist/test -r node_modules/@fluidframework/mocha-test-setup",
|
|
139
245
|
"test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
|
package/src/blobManager.ts
CHANGED
|
@@ -160,7 +160,9 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
160
160
|
|
|
161
161
|
/**
|
|
162
162
|
* This stores IDs of tombstoned blobs.
|
|
163
|
-
*
|
|
163
|
+
*
|
|
164
|
+
* A Tombstoned object has been unreferenced long enough that GC knows it won't be referenced again.
|
|
165
|
+
* Tombstoned objects are eventually deleted by GC.
|
|
164
166
|
*/
|
|
165
167
|
private readonly tombstonedBlobs: Set<string> = new Set();
|
|
166
168
|
|
|
@@ -770,10 +772,16 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
770
772
|
const maybeUnusedStorageIds: Set<string> = new Set();
|
|
771
773
|
for (const route of blobRoutes) {
|
|
772
774
|
const blobId = getBlobIdFromGCNodePath(route);
|
|
775
|
+
// If the blob hasn't already been deleted, log an error because this should never happen.
|
|
776
|
+
// If the blob has already been deleted, log a telemetry event. This can happen because multiple GC
|
|
777
|
+
// sweep ops can contain the same data store. It would be interesting to track how often this happens.
|
|
778
|
+
const alreadyDeleted = this.isBlobDeleted(route);
|
|
773
779
|
if (!this.redirectTable.has(blobId)) {
|
|
774
|
-
this.mc.logger.
|
|
780
|
+
this.mc.logger.sendTelemetryEvent({
|
|
775
781
|
eventName: "DeletedAttachmentBlobNotFound",
|
|
782
|
+
category: alreadyDeleted ? "generic" : "error",
|
|
776
783
|
blobId,
|
|
784
|
+
details: { alreadyDeleted },
|
|
777
785
|
});
|
|
778
786
|
continue;
|
|
779
787
|
}
|
|
@@ -801,8 +809,11 @@ export class BlobManager extends TypedEventEmitter<IBlobManagerEvents> {
|
|
|
801
809
|
}
|
|
802
810
|
|
|
803
811
|
/**
|
|
804
|
-
* This is called to update blobs whose routes are tombstones.
|
|
805
|
-
*
|
|
812
|
+
* This is called to update blobs whose routes are tombstones.
|
|
813
|
+
*
|
|
814
|
+
* A Tombstoned object has been unreferenced long enough that GC knows it won't be referenced again.
|
|
815
|
+
* Tombstoned objects are eventually deleted by GC.
|
|
816
|
+
*
|
|
806
817
|
* @param tombstonedRoutes - The routes of blob nodes that are tombstones.
|
|
807
818
|
*/
|
|
808
819
|
public updateTombstonedRoutes(tombstonedRoutes: readonly string[]) {
|
package/src/containerRuntime.ts
CHANGED
|
@@ -322,7 +322,7 @@ export type ISummaryConfiguration =
|
|
|
322
322
|
| ISummaryConfigurationHeuristics;
|
|
323
323
|
|
|
324
324
|
/**
|
|
325
|
-
* @
|
|
325
|
+
* @alpha
|
|
326
326
|
*/
|
|
327
327
|
export const DefaultSummaryConfiguration: ISummaryConfiguration = {
|
|
328
328
|
state: "enabled",
|
|
@@ -478,7 +478,7 @@ export enum RuntimeHeaders {
|
|
|
478
478
|
}
|
|
479
479
|
|
|
480
480
|
/** True if a tombstoned object should be returned without erroring
|
|
481
|
-
* @
|
|
481
|
+
* @alpha
|
|
482
482
|
*/
|
|
483
483
|
export const AllowTombstoneRequestHeaderKey = "allowTombstone"; // Belongs in the enum above, but avoiding the breaking change
|
|
484
484
|
/**
|
|
@@ -489,12 +489,12 @@ export const AllowInactiveRequestHeaderKey = "allowInactive"; // Belongs in the
|
|
|
489
489
|
|
|
490
490
|
/**
|
|
491
491
|
* Tombstone error responses will have this header set to true
|
|
492
|
-
* @
|
|
492
|
+
* @alpha
|
|
493
493
|
*/
|
|
494
494
|
export const TombstoneResponseHeaderKey = "isTombstoned";
|
|
495
495
|
/**
|
|
496
496
|
* Inactive error responses will have this header set to true
|
|
497
|
-
* @
|
|
497
|
+
* @alpha
|
|
498
498
|
*/
|
|
499
499
|
export const InactiveResponseHeaderKey = "isInactive";
|
|
500
500
|
|
|
@@ -2268,6 +2268,7 @@ export class ContainerRuntime
|
|
|
2268
2268
|
messageWithContext.message,
|
|
2269
2269
|
local,
|
|
2270
2270
|
localOpMetadata,
|
|
2271
|
+
(from, to) => this.garbageCollector.addedOutboundReference(from, to),
|
|
2271
2272
|
);
|
|
2272
2273
|
break;
|
|
2273
2274
|
case ContainerMessageType.BlobAttach:
|
|
@@ -2679,6 +2680,12 @@ export class ContainerRuntime
|
|
|
2679
2680
|
this.blobManager.setRedirectTable(blobRedirectTable);
|
|
2680
2681
|
}
|
|
2681
2682
|
|
|
2683
|
+
// We can finalize any allocated IDs since we're the only client
|
|
2684
|
+
const idRange = this.idCompressor?.takeNextCreationRange();
|
|
2685
|
+
if (idRange !== undefined) {
|
|
2686
|
+
this.idCompressor?.finalizeCreationRange(idRange);
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2682
2689
|
const summarizeResult = this.dataStores.createSummary(telemetryContext);
|
|
2683
2690
|
// Wrap data store summaries in .channels subtree.
|
|
2684
2691
|
wrapSummaryInChannelsTree(summarizeResult);
|
|
@@ -2860,6 +2867,10 @@ export class ContainerRuntime
|
|
|
2860
2867
|
|
|
2861
2868
|
/**
|
|
2862
2869
|
* This is called to update objects that are tombstones.
|
|
2870
|
+
*
|
|
2871
|
+
* A Tombstoned object has been unreferenced long enough that GC knows it won't be referenced again.
|
|
2872
|
+
* Tombstoned objects are eventually deleted by GC.
|
|
2873
|
+
*
|
|
2863
2874
|
* @param tombstonedRoutes - Data store and attachment blob routes that are tombstones in this Container.
|
|
2864
2875
|
*/
|
|
2865
2876
|
public updateTombstonedRoutes(tombstonedRoutes: readonly string[]) {
|
package/src/dataStoreContext.ts
CHANGED
|
@@ -78,7 +78,7 @@ import {
|
|
|
78
78
|
summarizerClientType,
|
|
79
79
|
} from "./summary";
|
|
80
80
|
import { ContainerRuntime } from "./containerRuntime";
|
|
81
|
-
import { sendGCUnexpectedUsageEvent } from "./gc";
|
|
81
|
+
import { detectOutboundRoutesViaDDSKey, sendGCUnexpectedUsageEvent } from "./gc";
|
|
82
82
|
|
|
83
83
|
function createAttributes(
|
|
84
84
|
pkg: readonly string[],
|
|
@@ -200,8 +200,8 @@ export abstract class FluidDataStoreContext
|
|
|
200
200
|
}
|
|
201
201
|
|
|
202
202
|
/**
|
|
203
|
-
*
|
|
204
|
-
*
|
|
203
|
+
* A Tombstoned object has been unreferenced long enough that GC knows it won't be referenced again.
|
|
204
|
+
* Tombstoned objects are eventually deleted by GC.
|
|
205
205
|
*/
|
|
206
206
|
private _tombstoned = false;
|
|
207
207
|
public get tombstoned() {
|
|
@@ -650,13 +650,20 @@ export abstract class FluidDataStoreContext
|
|
|
650
650
|
}
|
|
651
651
|
|
|
652
652
|
/**
|
|
653
|
+
* @deprecated There is no replacement for this, its functionality is no longer needed.
|
|
654
|
+
* It will be removed in a future release, sometime after 2.0.0-internal.8.0.0
|
|
655
|
+
*
|
|
653
656
|
* Called when a new outbound reference is added to another node. This is used by garbage collection to identify
|
|
654
657
|
* all references added in the system.
|
|
655
658
|
* @param srcHandle - The handle of the node that added the reference.
|
|
656
659
|
* @param outboundHandle - The handle of the outbound node that is referenced.
|
|
657
660
|
*/
|
|
658
661
|
public addedGCOutboundReference(srcHandle: IFluidHandle, outboundHandle: IFluidHandle) {
|
|
659
|
-
this.
|
|
662
|
+
// By default, skip this call since the ContainerRuntime will detect the outbound route directly.
|
|
663
|
+
if (this.mc.config.getBoolean(detectOutboundRoutesViaDDSKey) === true) {
|
|
664
|
+
// Note: The ContainerRuntime code will check this same setting to avoid double counting.
|
|
665
|
+
this._containerRuntime.addedGCOutboundReference(srcHandle, outboundHandle);
|
|
666
|
+
}
|
|
660
667
|
}
|
|
661
668
|
|
|
662
669
|
/**
|
package/src/dataStores.ts
CHANGED
|
@@ -33,6 +33,7 @@ import {
|
|
|
33
33
|
create404Response,
|
|
34
34
|
createResponseError,
|
|
35
35
|
GCDataBuilder,
|
|
36
|
+
isSerializedHandle,
|
|
36
37
|
responseToException,
|
|
37
38
|
SummaryTreeBuilder,
|
|
38
39
|
unpackChildNodesUsedRoutes,
|
|
@@ -61,7 +62,7 @@ import {
|
|
|
61
62
|
} from "./dataStoreContext";
|
|
62
63
|
import { StorageServiceWithAttachBlobs } from "./storageServiceWithAttachBlobs";
|
|
63
64
|
import { IDataStoreAliasMessage, isDataStoreAliasMessage } from "./dataStore";
|
|
64
|
-
import { GCNodeType, disableDatastoreSweepKey } from "./gc";
|
|
65
|
+
import { GCNodeType, detectOutboundRoutesViaDDSKey, disableDatastoreSweepKey } from "./gc";
|
|
65
66
|
import { IContainerRuntimeMetadata, nonDataStorePaths, rootHasIsolatedChannels } from "./summary";
|
|
66
67
|
|
|
67
68
|
type PendingAliasResolve = (success: boolean) => void;
|
|
@@ -441,6 +442,7 @@ export class DataStores implements IDisposable {
|
|
|
441
442
|
message: ISequencedDocumentMessage,
|
|
442
443
|
local: boolean,
|
|
443
444
|
localMessageMetadata: unknown,
|
|
445
|
+
addedOutboundReference: (fromNodePath: string, toNodePath: string) => void,
|
|
444
446
|
) {
|
|
445
447
|
const envelope = message.contents as IEnvelope;
|
|
446
448
|
const transformed = { ...message, contents: envelope.contents };
|
|
@@ -462,6 +464,13 @@ export class DataStores implements IDisposable {
|
|
|
462
464
|
assert(!!context, 0x162 /* "There should be a store context for the op" */);
|
|
463
465
|
context.process(transformed, local, localMessageMetadata);
|
|
464
466
|
|
|
467
|
+
// By default, we use the new behavior of detecting outbound routes here.
|
|
468
|
+
// If this setting is true, then DataStoreContext would be notifying GC instead.
|
|
469
|
+
if (this.mc.config.getBoolean(detectOutboundRoutesViaDDSKey) !== true) {
|
|
470
|
+
// Notify GC of any outbound references that were added by this op.
|
|
471
|
+
detectOutboundReferences(envelope, addedOutboundReference);
|
|
472
|
+
}
|
|
473
|
+
|
|
465
474
|
// Notify that a GC node for the data store changed. This is used to detect if a deleted data store is
|
|
466
475
|
// being used.
|
|
467
476
|
this.gcNodeUpdated(
|
|
@@ -830,12 +839,15 @@ export class DataStores implements IDisposable {
|
|
|
830
839
|
|
|
831
840
|
const dataStoreContext = this.contexts.get(dataStoreId);
|
|
832
841
|
if (dataStoreContext === undefined) {
|
|
833
|
-
this.
|
|
842
|
+
// If the data store hasn't already been deleted, log an error because this should never happen.
|
|
843
|
+
// If the data store has already been deleted, log a telemetry event. This can happen because multiple GC
|
|
844
|
+
// sweep ops can contain the same data store. It would be interesting to track how often this happens.
|
|
845
|
+
const alreadyDeleted = this.isDataStoreDeleted(`/${dataStoreId}`);
|
|
846
|
+
this.mc.logger.sendTelemetryEvent({
|
|
834
847
|
eventName: "DeletedDataStoreNotFound",
|
|
848
|
+
category: alreadyDeleted ? "generic" : "error",
|
|
835
849
|
...tagCodeArtifacts({ id: dataStoreId }),
|
|
836
|
-
details: {
|
|
837
|
-
alreadyDeleted: this.isDataStoreDeleted(dataStoreId),
|
|
838
|
-
},
|
|
850
|
+
details: { alreadyDeleted },
|
|
839
851
|
});
|
|
840
852
|
continue;
|
|
841
853
|
}
|
|
@@ -851,8 +863,11 @@ export class DataStores implements IDisposable {
|
|
|
851
863
|
}
|
|
852
864
|
|
|
853
865
|
/**
|
|
854
|
-
* This is called to update objects whose routes are tombstones.
|
|
855
|
-
*
|
|
866
|
+
* This is called to update objects whose routes are tombstones.
|
|
867
|
+
*
|
|
868
|
+
* A Tombstoned object has been unreferenced long enough that GC knows it won't be referenced again.
|
|
869
|
+
* Tombstoned objects are eventually deleted by GC.
|
|
870
|
+
*
|
|
856
871
|
* @param tombstonedRoutes - The routes that are tombstones in all data stores in this Container.
|
|
857
872
|
*/
|
|
858
873
|
public updateTombstonedRoutes(tombstonedRoutes: readonly string[]) {
|
|
@@ -944,3 +959,42 @@ export function getSummaryForDatastores(
|
|
|
944
959
|
};
|
|
945
960
|
}
|
|
946
961
|
}
|
|
962
|
+
|
|
963
|
+
/**
|
|
964
|
+
* Traverse this op's contents and detect any outbound routes that were added by this op.
|
|
965
|
+
*/
|
|
966
|
+
export function detectOutboundReferences(
|
|
967
|
+
envelope: IEnvelope,
|
|
968
|
+
addedOutboundReference: (fromNodePath: string, toNodePath: string) => void,
|
|
969
|
+
): void {
|
|
970
|
+
// These will be built up as we traverse the envelope contents
|
|
971
|
+
const outboundPaths: string[] = [];
|
|
972
|
+
let ddsAddress: string | undefined;
|
|
973
|
+
|
|
974
|
+
function recursivelyFindHandles(obj: unknown) {
|
|
975
|
+
if (typeof obj === "object" && obj !== null) {
|
|
976
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
977
|
+
// If 'value' is a serialized IFluidHandle, it represents a new outbound route.
|
|
978
|
+
if (isSerializedHandle(value)) {
|
|
979
|
+
outboundPaths.push(value.url);
|
|
980
|
+
}
|
|
981
|
+
|
|
982
|
+
// NOTE: This is taking a hard dependency on the fact that in our DataStore implementation,
|
|
983
|
+
// the address of the DDS is stored in a property called "address". This is not ideal.
|
|
984
|
+
// An alternative would be for the op envelope to include the absolute path (built up as it is submitted)
|
|
985
|
+
if (key === "address" && ddsAddress === undefined) {
|
|
986
|
+
ddsAddress = value;
|
|
987
|
+
}
|
|
988
|
+
|
|
989
|
+
recursivelyFindHandles(value);
|
|
990
|
+
}
|
|
991
|
+
}
|
|
992
|
+
}
|
|
993
|
+
|
|
994
|
+
recursivelyFindHandles(envelope.contents);
|
|
995
|
+
|
|
996
|
+
// GC node paths are all absolute paths, hence the "" prefix.
|
|
997
|
+
// e.g. this will yield "/dataStoreId/ddsId"
|
|
998
|
+
const fromPath = ["", envelope.address, ddsAddress].join("/");
|
|
999
|
+
outboundPaths.forEach((toPath) => addedOutboundReference(fromPath, toPath));
|
|
1000
|
+
}
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
ITelemetryLoggerExt,
|
|
21
21
|
MonitoringContext,
|
|
22
22
|
PerformanceEvent,
|
|
23
|
+
tagCodeArtifacts,
|
|
23
24
|
} from "@fluidframework/telemetry-utils";
|
|
24
25
|
import { BlobManager } from "../blobManager";
|
|
25
26
|
import {
|
|
@@ -262,7 +263,7 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
262
263
|
const currentReferenceTimestampMs = this.runtime.getCurrentReferenceTimestampMs();
|
|
263
264
|
assert(
|
|
264
265
|
currentReferenceTimestampMs !== undefined,
|
|
265
|
-
|
|
266
|
+
0x8a4 /* Trying to initialize GC state without current timestamp */,
|
|
266
267
|
);
|
|
267
268
|
|
|
268
269
|
/**
|
|
@@ -289,7 +290,7 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
289
290
|
nodeData.unreferencedTimestampMs,
|
|
290
291
|
this.configs.inactiveTimeoutMs,
|
|
291
292
|
currentReferenceTimestampMs,
|
|
292
|
-
this.configs.
|
|
293
|
+
this.configs.tombstoneTimeoutMs,
|
|
293
294
|
this.configs.sweepGracePeriodMs,
|
|
294
295
|
),
|
|
295
296
|
);
|
|
@@ -409,6 +410,7 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
409
410
|
{
|
|
410
411
|
eventName: "GCInitializationOrUpdateFailed",
|
|
411
412
|
gcConfigs: JSON.stringify(this.configs),
|
|
413
|
+
clientId,
|
|
412
414
|
},
|
|
413
415
|
error,
|
|
414
416
|
);
|
|
@@ -611,7 +613,7 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
611
613
|
currentReferenceTimestampMs,
|
|
612
614
|
this.configs.inactiveTimeoutMs,
|
|
613
615
|
currentReferenceTimestampMs,
|
|
614
|
-
this.configs.
|
|
616
|
+
this.configs.tombstoneTimeoutMs,
|
|
615
617
|
this.configs.sweepGracePeriodMs,
|
|
616
618
|
),
|
|
617
619
|
);
|
|
@@ -837,7 +839,7 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
837
839
|
gcFeatureMatrix: this.configs.persistedGcFeatureMatrix,
|
|
838
840
|
sessionExpiryTimeoutMs: this.configs.sessionExpiryTimeoutMs,
|
|
839
841
|
sweepEnabled: false, // DEPRECATED - to be removed
|
|
840
|
-
|
|
842
|
+
tombstoneTimeoutMs: this.configs.tombstoneTimeoutMs,
|
|
841
843
|
};
|
|
842
844
|
}
|
|
843
845
|
|
|
@@ -1005,6 +1007,18 @@ export class GarbageCollector implements IGarbageCollector {
|
|
|
1005
1007
|
return;
|
|
1006
1008
|
}
|
|
1007
1009
|
|
|
1010
|
+
if (!toNodePath.startsWith("/")) {
|
|
1011
|
+
// A long time ago we stored handles with relatives paths. We don't expect to see these cases though
|
|
1012
|
+
// because GC was enabled only after we made the switch to always using absolute paths.
|
|
1013
|
+
this.mc.logger.sendErrorEvent({
|
|
1014
|
+
eventName: "InvalidRelativeOutboundRoute",
|
|
1015
|
+
...tagCodeArtifacts({ fromId: fromNodePath, id: toNodePath }),
|
|
1016
|
+
});
|
|
1017
|
+
return;
|
|
1018
|
+
}
|
|
1019
|
+
|
|
1020
|
+
assert(fromNodePath.startsWith("/"), 0x8a5 /* fromNodePath must be an absolute path */);
|
|
1021
|
+
|
|
1008
1022
|
const outboundRoutes = this.newReferencesSinceLastRun.get(fromNodePath) ?? [];
|
|
1009
1023
|
outboundRoutes.push(toNodePath);
|
|
1010
1024
|
this.newReferencesSinceLastRun.set(fromNodePath, outboundRoutes);
|