@fluidframework/container-runtime 2.0.0-dev-rc.5.0.0.263932 → 2.0.0-dev-rc.5.0.0.267932
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/api-report/container-runtime.api.md +43 -53
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +4 -4
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +1 -1
- package/dist/blobManager.js.map +1 -1
- package/dist/channelCollection.d.ts +3 -3
- package/dist/channelCollection.d.ts.map +1 -1
- package/dist/channelCollection.js +3 -3
- package/dist/channelCollection.js.map +1 -1
- package/dist/connectionTelemetry.d.ts +2 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +14 -14
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.d.ts +2 -1
- package/dist/containerHandleContext.d.ts.map +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +12 -19
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +74 -120
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +7 -8
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +3 -3
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/deltaManagerProxies.d.ts +4 -3
- package/dist/deltaManagerProxies.d.ts.map +1 -1
- package/dist/deltaManagerProxies.js.map +1 -1
- package/dist/deltaScheduler.d.ts +2 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts +1 -3
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +18 -21
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +11 -30
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +3 -30
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +1 -3
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +2 -3
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts +1 -1
- package/dist/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/dist/gc/gcSummaryDefinitions.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +2 -35
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +9 -62
- package/dist/gc/gcSummaryStateTracker.js.map +1 -1
- package/dist/gc/gcTelemetry.d.ts +1 -1
- package/dist/gc/gcTelemetry.d.ts.map +1 -1
- package/dist/gc/gcTelemetry.js +2 -2
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.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 +1 -2
- package/dist/gc/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/messageTypes.d.ts +1 -1
- package/dist/messageTypes.d.ts.map +1 -1
- package/dist/messageTypes.js.map +1 -1
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +2 -2
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +11 -1
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +13 -2
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +10 -3
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +7 -0
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +4 -2
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +12 -7
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +10 -0
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +12 -17
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +2 -2
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/opProperties.d.ts +1 -1
- package/dist/opProperties.d.ts.map +1 -1
- package/dist/opProperties.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.js.map +1 -1
- package/dist/scheduleManager.d.ts +2 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js.map +1 -1
- package/dist/storageServiceWithAttachBlobs.js.map +1 -1
- package/dist/summary/documentSchema.js +1 -1
- package/dist/summary/documentSchema.js.map +1 -1
- package/dist/summary/index.d.ts +1 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +4 -2
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +35 -13
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +1 -6
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +22 -108
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +1 -1
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +4 -1
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +1 -1
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +2 -2
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +3 -3
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +16 -16
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -3
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +17 -29
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +2 -1
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +11 -11
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +3 -3
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +2 -2
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +7 -8
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +26 -22
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.js.map +1 -1
- package/dist/throttler.js.map +1 -1
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +4 -4
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +1 -1
- package/lib/blobManager.js.map +1 -1
- package/lib/channelCollection.d.ts +3 -3
- package/lib/channelCollection.d.ts.map +1 -1
- package/lib/channelCollection.js +3 -3
- package/lib/channelCollection.js.map +1 -1
- package/lib/connectionTelemetry.d.ts +2 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +2 -2
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerHandleContext.d.ts +2 -1
- package/lib/containerHandleContext.d.ts.map +1 -1
- package/lib/containerHandleContext.js.map +1 -1
- package/lib/containerRuntime.d.ts +12 -19
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +68 -114
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +7 -8
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +3 -3
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/deltaManagerProxies.d.ts +4 -3
- package/lib/deltaManagerProxies.d.ts.map +1 -1
- package/lib/deltaManagerProxies.js.map +1 -1
- package/lib/deltaScheduler.d.ts +2 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts +1 -3
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +18 -21
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +12 -31
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +3 -30
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +0 -2
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +2 -3
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcReferenceGraphAlgorithm.js.map +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts +1 -1
- package/lib/gc/gcSummaryDefinitions.d.ts.map +1 -1
- package/lib/gc/gcSummaryDefinitions.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +2 -35
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +4 -57
- package/lib/gc/gcSummaryStateTracker.js.map +1 -1
- package/lib/gc/gcTelemetry.d.ts +1 -1
- package/lib/gc/gcTelemetry.d.ts.map +1 -1
- package/lib/gc/gcTelemetry.js +2 -2
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +1 -1
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +1 -1
- package/lib/gc/index.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/messageTypes.d.ts +1 -1
- package/lib/messageTypes.d.ts.map +1 -1
- package/lib/messageTypes.js.map +1 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +2 -2
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +11 -1
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +13 -2
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +10 -3
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +7 -0
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +4 -2
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +12 -7
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +10 -0
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +12 -17
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/opProperties.d.ts +1 -1
- package/lib/opProperties.d.ts.map +1 -1
- package/lib/opProperties.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.js.map +1 -1
- package/lib/scheduleManager.d.ts +2 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js.map +1 -1
- package/lib/storageServiceWithAttachBlobs.js.map +1 -1
- package/lib/summary/documentSchema.js +1 -1
- package/lib/summary/documentSchema.js.map +1 -1
- package/lib/summary/index.d.ts +1 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +4 -2
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +35 -13
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +1 -6
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +21 -107
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +1 -1
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +4 -1
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +1 -1
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +1 -1
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +3 -3
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +14 -14
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +2 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +2 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +17 -29
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +2 -1
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +3 -3
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +3 -3
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +2 -2
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +7 -8
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +25 -21
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.js.map +1 -1
- package/lib/throttler.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +72 -24
- package/src/batchTracker.ts +1 -1
- package/src/blobManager.ts +7 -7
- package/src/channelCollection.ts +8 -9
- package/src/connectionTelemetry.ts +14 -6
- package/src/containerHandleContext.ts +2 -1
- package/src/containerRuntime.ts +88 -141
- package/src/dataStore.ts +2 -1
- package/src/dataStoreContext.ts +16 -17
- package/src/deltaManagerProxies.ts +7 -5
- package/src/deltaScheduler.ts +2 -1
- package/src/gc/garbageCollection.md +0 -8
- package/src/gc/garbageCollection.ts +20 -25
- package/src/gc/gcConfigs.ts +8 -34
- package/src/gc/gcDefinitions.ts +4 -31
- package/src/gc/gcHelpers.ts +2 -2
- package/src/gc/gcSummaryDefinitions.ts +1 -1
- package/src/gc/gcSummaryStateTracker.ts +7 -73
- package/src/gc/gcTelemetry.ts +2 -2
- package/src/gc/index.ts +0 -1
- package/src/index.ts +1 -1
- package/src/messageTypes.ts +1 -1
- package/src/opLifecycle/README.md +120 -160
- package/src/opLifecycle/definitions.ts +2 -2
- package/src/opLifecycle/opCompressor.ts +13 -2
- package/src/opLifecycle/opDecompressor.ts +1 -1
- package/src/opLifecycle/opGroupingManager.ts +11 -4
- package/src/opLifecycle/opSplitter.ts +13 -8
- package/src/opLifecycle/outbox.ts +12 -27
- package/src/opLifecycle/remoteMessageProcessor.ts +2 -1
- package/src/opProperties.ts +2 -4
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +1 -1
- package/src/scheduleManager.ts +2 -1
- package/src/summary/index.ts +1 -1
- package/src/summary/orderedClientElection.ts +83 -12
- package/src/summary/runningSummarizer.ts +31 -115
- package/src/summary/summarizer.ts +5 -2
- package/src/summary/summarizerClientElection.ts +2 -1
- package/src/summary/summarizerNode/summarizerNode.ts +19 -31
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +2 -1
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +4 -8
- package/src/summary/summarizerTypes.ts +22 -33
- package/src/summary/summaryCollection.ts +2 -2
- package/src/summary/summaryFormat.ts +9 -7
- package/src/summary/summaryGenerator.ts +51 -29
package/src/containerRuntime.ts
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
IAudience,
|
|
10
10
|
ISelf,
|
|
11
11
|
ICriticalContainerError,
|
|
12
|
+
type IAudienceEvents,
|
|
12
13
|
} from "@fluidframework/container-definitions";
|
|
13
14
|
import {
|
|
14
15
|
IBatchMessage,
|
|
@@ -17,7 +18,6 @@ import {
|
|
|
17
18
|
ILoader,
|
|
18
19
|
IRuntime,
|
|
19
20
|
LoaderHeader,
|
|
20
|
-
type IAudienceEvents,
|
|
21
21
|
IDeltaManager,
|
|
22
22
|
} from "@fluidframework/container-definitions/internal";
|
|
23
23
|
import {
|
|
@@ -27,12 +27,14 @@ import {
|
|
|
27
27
|
import {
|
|
28
28
|
FluidObject,
|
|
29
29
|
IFluidHandle,
|
|
30
|
-
IFluidHandleContext,
|
|
31
|
-
type IFluidHandleInternal,
|
|
32
|
-
IProvideFluidHandleContext,
|
|
33
30
|
IRequest,
|
|
34
31
|
IResponse,
|
|
35
32
|
ITelemetryBaseLogger,
|
|
33
|
+
} from "@fluidframework/core-interfaces";
|
|
34
|
+
import {
|
|
35
|
+
IFluidHandleContext,
|
|
36
|
+
type IFluidHandleInternal,
|
|
37
|
+
IProvideFluidHandleContext,
|
|
36
38
|
} from "@fluidframework/core-interfaces/internal";
|
|
37
39
|
import { ISignalEnvelope } from "@fluidframework/core-interfaces/internal";
|
|
38
40
|
import {
|
|
@@ -42,11 +44,23 @@ import {
|
|
|
42
44
|
PromiseCache,
|
|
43
45
|
delay,
|
|
44
46
|
} from "@fluidframework/core-utils/internal";
|
|
47
|
+
import {
|
|
48
|
+
IClientDetails,
|
|
49
|
+
IQuorumClients,
|
|
50
|
+
ISequencedDocumentMessage,
|
|
51
|
+
ISignalMessage,
|
|
52
|
+
ISummaryTree,
|
|
53
|
+
SummaryType,
|
|
54
|
+
} from "@fluidframework/driver-definitions";
|
|
45
55
|
import {
|
|
46
56
|
DriverHeader,
|
|
47
57
|
FetchSource,
|
|
48
58
|
IDocumentStorageService,
|
|
49
59
|
type ISnapshot,
|
|
60
|
+
IDocumentMessage,
|
|
61
|
+
ISnapshotTree,
|
|
62
|
+
ISummaryContent,
|
|
63
|
+
MessageType,
|
|
50
64
|
} from "@fluidframework/driver-definitions/internal";
|
|
51
65
|
import { readAndParse } from "@fluidframework/driver-utils/internal";
|
|
52
66
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
@@ -57,24 +71,9 @@ import type {
|
|
|
57
71
|
SerializedIdCompressorWithOngoingSession,
|
|
58
72
|
} from "@fluidframework/id-compressor/internal";
|
|
59
73
|
import {
|
|
60
|
-
IClientDetails,
|
|
61
|
-
IDocumentMessage,
|
|
62
|
-
IQuorumClients,
|
|
63
|
-
ISequencedDocumentMessage,
|
|
64
|
-
ISignalMessage,
|
|
65
|
-
ISnapshotTree,
|
|
66
|
-
ISummaryContent,
|
|
67
|
-
ISummaryTree,
|
|
68
|
-
MessageType,
|
|
69
|
-
SummaryType,
|
|
70
|
-
} from "@fluidframework/protocol-definitions";
|
|
71
|
-
import {
|
|
72
|
-
IGarbageCollectionData,
|
|
73
|
-
IInboundSignalMessage,
|
|
74
74
|
ISummaryTreeWithStats,
|
|
75
75
|
ITelemetryContext,
|
|
76
|
-
|
|
77
|
-
import {
|
|
76
|
+
IGarbageCollectionData,
|
|
78
77
|
CreateChildSummarizerNodeParam,
|
|
79
78
|
FlushMode,
|
|
80
79
|
FlushModeExperimental,
|
|
@@ -88,6 +87,7 @@ import {
|
|
|
88
87
|
SummarizeInternalFn,
|
|
89
88
|
channelsTreeName,
|
|
90
89
|
gcTreeKey,
|
|
90
|
+
IInboundSignalMessage,
|
|
91
91
|
} from "@fluidframework/runtime-definitions/internal";
|
|
92
92
|
import {
|
|
93
93
|
GCDataBuilder,
|
|
@@ -1188,6 +1188,8 @@ export class ContainerRuntime
|
|
|
1188
1188
|
|
|
1189
1189
|
private readonly summarizerNode: IRootSummarizerNodeWithGC;
|
|
1190
1190
|
|
|
1191
|
+
private readonly logger: ITelemetryLoggerExt;
|
|
1192
|
+
|
|
1191
1193
|
private readonly maxConsecutiveReconnects: number;
|
|
1192
1194
|
private readonly defaultMaxConsecutiveReconnects = 7;
|
|
1193
1195
|
|
|
@@ -1348,7 +1350,8 @@ export class ContainerRuntime
|
|
|
1348
1350
|
dataStoreAliasMap: [string, string][],
|
|
1349
1351
|
private readonly runtimeOptions: Readonly<Required<IContainerRuntimeOptions>>,
|
|
1350
1352
|
private readonly containerScope: FluidObject,
|
|
1351
|
-
|
|
1353
|
+
// Create a custom ITelemetryBaseLogger to output telemetry events.
|
|
1354
|
+
public readonly baseLogger: ITelemetryBaseLogger,
|
|
1352
1355
|
existing: boolean,
|
|
1353
1356
|
blobManagerSnapshot: IBlobManagerLoadInfo,
|
|
1354
1357
|
private readonly _storage: IDocumentStorageService,
|
|
@@ -1389,6 +1392,7 @@ export class ContainerRuntime
|
|
|
1389
1392
|
snapshotWithContents,
|
|
1390
1393
|
} = context;
|
|
1391
1394
|
|
|
1395
|
+
this.logger = createChildLogger({ logger: this.baseLogger });
|
|
1392
1396
|
this.mc = createChildMonitoringContext({
|
|
1393
1397
|
logger: this.logger,
|
|
1394
1398
|
namespace: "ContainerRuntime",
|
|
@@ -1787,6 +1791,9 @@ export class ContainerRuntime
|
|
|
1787
1791
|
orderedClientCollection,
|
|
1788
1792
|
electedSummarizerData ?? this.innerDeltaManager.lastSequenceNumber,
|
|
1789
1793
|
SummarizerClientElection.isClientEligible,
|
|
1794
|
+
this.mc.config.getBoolean(
|
|
1795
|
+
"Fluid.ContainerRuntime.OrderedClientElection.EnablePerformanceEvents",
|
|
1796
|
+
),
|
|
1790
1797
|
);
|
|
1791
1798
|
|
|
1792
1799
|
this.summarizerClientElection = new SummarizerClientElection(
|
|
@@ -1859,7 +1866,7 @@ export class ContainerRuntime
|
|
|
1859
1866
|
}
|
|
1860
1867
|
|
|
1861
1868
|
// logging hardware telemetry
|
|
1862
|
-
logger.sendTelemetryEvent({
|
|
1869
|
+
this.logger.sendTelemetryEvent({
|
|
1863
1870
|
eventName: "DeviceSpec",
|
|
1864
1871
|
...getDeviceSpec(),
|
|
1865
1872
|
});
|
|
@@ -2220,7 +2227,7 @@ export class ContainerRuntime
|
|
|
2220
2227
|
);
|
|
2221
2228
|
|
|
2222
2229
|
// Is document schema explicit control on?
|
|
2223
|
-
const
|
|
2230
|
+
const explicitSchemaControl = documentSchema?.runtime.explicitSchemaControl;
|
|
2224
2231
|
|
|
2225
2232
|
const metadata: IContainerRuntimeMetadata = {
|
|
2226
2233
|
...this.createContainerMetadata,
|
|
@@ -2234,10 +2241,10 @@ export class ContainerRuntime
|
|
|
2234
2241
|
// runtimes (that preceed document schema control capabilities) to close container on load due to mismatch in
|
|
2235
2242
|
// last message's sequence number.
|
|
2236
2243
|
// See also lastMessageFromMetadata()
|
|
2237
|
-
message:
|
|
2244
|
+
message: explicitSchemaControl
|
|
2238
2245
|
? ({ sequenceNumber: -1 } as any as ISummaryMetadataMessage)
|
|
2239
2246
|
: message,
|
|
2240
|
-
lastMessage:
|
|
2247
|
+
lastMessage: explicitSchemaControl ? message : undefined,
|
|
2241
2248
|
documentSchema,
|
|
2242
2249
|
};
|
|
2243
2250
|
|
|
@@ -3435,7 +3442,6 @@ export class ContainerRuntime
|
|
|
3435
3442
|
const {
|
|
3436
3443
|
fullTree = false,
|
|
3437
3444
|
finalAttempt = false,
|
|
3438
|
-
refreshLatestAck,
|
|
3439
3445
|
summaryLogger,
|
|
3440
3446
|
latestSummaryRefSeqNum,
|
|
3441
3447
|
} = options;
|
|
@@ -3455,16 +3461,6 @@ export class ContainerRuntime
|
|
|
3455
3461
|
|
|
3456
3462
|
assert(this.outbox.isEmpty, 0x3d1 /* Can't trigger summary in the middle of a batch */);
|
|
3457
3463
|
|
|
3458
|
-
// We close the summarizer and download a new snapshot and reload the container
|
|
3459
|
-
if (refreshLatestAck === true) {
|
|
3460
|
-
return this.prefetchLatestSummaryThenClose(
|
|
3461
|
-
createChildLogger({
|
|
3462
|
-
logger: summaryNumberLogger,
|
|
3463
|
-
properties: { all: { safeSummary: true } },
|
|
3464
|
-
}),
|
|
3465
|
-
);
|
|
3466
|
-
}
|
|
3467
|
-
|
|
3468
3464
|
// If the container is dirty, i.e., there are pending unacked ops, the summary will not be eventual consistent
|
|
3469
3465
|
// and it may even be incorrect. So, wait for the container to be saved with a timeout. If the container is not
|
|
3470
3466
|
// saved within the timeout, check if it should be failed or can continue.
|
|
@@ -3560,7 +3556,7 @@ export class ContainerRuntime
|
|
|
3560
3556
|
stage: "base",
|
|
3561
3557
|
referenceSequenceNumber: summaryRefSeqNum,
|
|
3562
3558
|
minimumSequenceNumber,
|
|
3563
|
-
error: new
|
|
3559
|
+
error: new RetriableSummaryError(
|
|
3564
3560
|
`Summarizer node state inconsistent with summarizer state.`,
|
|
3565
3561
|
),
|
|
3566
3562
|
};
|
|
@@ -3612,18 +3608,15 @@ export class ContainerRuntime
|
|
|
3612
3608
|
stage: "base",
|
|
3613
3609
|
referenceSequenceNumber: summaryRefSeqNum,
|
|
3614
3610
|
minimumSequenceNumber,
|
|
3615
|
-
error: new
|
|
3611
|
+
error: new RetriableSummaryError(continueResult.error),
|
|
3616
3612
|
};
|
|
3617
3613
|
}
|
|
3618
3614
|
|
|
3619
3615
|
const trace = Trace.start();
|
|
3620
3616
|
let summarizeResult: ISummaryTreeWithStats;
|
|
3621
|
-
// If the GC state needs to be reset, we need to force a full tree summary and update the unreferenced
|
|
3622
|
-
// state of all the nodes.
|
|
3623
|
-
const forcedFullTree = this.garbageCollector.summaryStateNeedsReset;
|
|
3624
3617
|
try {
|
|
3625
3618
|
summarizeResult = await this.summarize({
|
|
3626
|
-
fullTree
|
|
3619
|
+
fullTree,
|
|
3627
3620
|
trackState: true,
|
|
3628
3621
|
summaryLogger: summaryNumberLogger,
|
|
3629
3622
|
runGC: this.garbageCollector.shouldRunGC,
|
|
@@ -3633,7 +3626,7 @@ export class ContainerRuntime
|
|
|
3633
3626
|
stage: "base",
|
|
3634
3627
|
referenceSequenceNumber: summaryRefSeqNum,
|
|
3635
3628
|
minimumSequenceNumber,
|
|
3636
|
-
error: wrapError(error, (msg) => new
|
|
3629
|
+
error: wrapError(error, (msg) => new RetriableSummaryError(msg)),
|
|
3637
3630
|
};
|
|
3638
3631
|
}
|
|
3639
3632
|
|
|
@@ -3700,7 +3693,6 @@ export class ContainerRuntime
|
|
|
3700
3693
|
summaryTree,
|
|
3701
3694
|
summaryStats,
|
|
3702
3695
|
generateDuration: trace.trace().duration,
|
|
3703
|
-
forcedFullTree,
|
|
3704
3696
|
} as const;
|
|
3705
3697
|
|
|
3706
3698
|
continueResult = checkContinue();
|
|
@@ -3708,7 +3700,7 @@ export class ContainerRuntime
|
|
|
3708
3700
|
return {
|
|
3709
3701
|
stage: "generate",
|
|
3710
3702
|
...generateSummaryData,
|
|
3711
|
-
error: new
|
|
3703
|
+
error: new RetriableSummaryError(continueResult.error),
|
|
3712
3704
|
};
|
|
3713
3705
|
}
|
|
3714
3706
|
|
|
@@ -3735,7 +3727,7 @@ export class ContainerRuntime
|
|
|
3735
3727
|
return {
|
|
3736
3728
|
stage: "generate",
|
|
3737
3729
|
...generateSummaryData,
|
|
3738
|
-
error: wrapError(error, (msg) => new
|
|
3730
|
+
error: wrapError(error, (msg) => new RetriableSummaryError(msg)),
|
|
3739
3731
|
};
|
|
3740
3732
|
}
|
|
3741
3733
|
|
|
@@ -3758,7 +3750,7 @@ export class ContainerRuntime
|
|
|
3758
3750
|
return {
|
|
3759
3751
|
stage: "upload",
|
|
3760
3752
|
...uploadData,
|
|
3761
|
-
error: new
|
|
3753
|
+
error: new RetriableSummaryError(continueResult.error),
|
|
3762
3754
|
};
|
|
3763
3755
|
}
|
|
3764
3756
|
|
|
@@ -3769,7 +3761,7 @@ export class ContainerRuntime
|
|
|
3769
3761
|
return {
|
|
3770
3762
|
stage: "upload",
|
|
3771
3763
|
...uploadData,
|
|
3772
|
-
error: wrapError(error, (msg) => new
|
|
3764
|
+
error: wrapError(error, (msg) => new RetriableSummaryError(msg)),
|
|
3773
3765
|
};
|
|
3774
3766
|
}
|
|
3775
3767
|
|
|
@@ -3786,7 +3778,7 @@ export class ContainerRuntime
|
|
|
3786
3778
|
return {
|
|
3787
3779
|
stage: "upload",
|
|
3788
3780
|
...uploadData,
|
|
3789
|
-
error: wrapError(error, (msg) => new
|
|
3781
|
+
error: wrapError(error, (msg) => new RetriableSummaryError(msg)),
|
|
3790
3782
|
};
|
|
3791
3783
|
}
|
|
3792
3784
|
return submitData;
|
|
@@ -3919,13 +3911,13 @@ export class ContainerRuntime
|
|
|
3919
3911
|
return this.blobManager.createBlob(blob, signal);
|
|
3920
3912
|
}
|
|
3921
3913
|
|
|
3922
|
-
private submitIdAllocationOpIfNeeded(resubmitOutstandingRanges
|
|
3914
|
+
private submitIdAllocationOpIfNeeded(resubmitOutstandingRanges: boolean): void {
|
|
3923
3915
|
if (this._idCompressor) {
|
|
3924
3916
|
const idRange = resubmitOutstandingRanges
|
|
3925
|
-
? this.
|
|
3917
|
+
? this._idCompressor.takeUnfinalizedCreationRange()
|
|
3926
3918
|
: this._idCompressor.takeNextCreationRange();
|
|
3927
3919
|
// Don't include the idRange if there weren't any Ids allocated
|
|
3928
|
-
if (idRange
|
|
3920
|
+
if (idRange.ids !== undefined) {
|
|
3929
3921
|
const idAllocationMessage: ContainerRuntimeIdAllocationMessage = {
|
|
3930
3922
|
type: ContainerMessageType.IdAllocation,
|
|
3931
3923
|
contents: idRange,
|
|
@@ -3970,6 +3962,10 @@ export class ContainerRuntime
|
|
|
3970
3962
|
}
|
|
3971
3963
|
|
|
3972
3964
|
const type = containerRuntimeMessage.type;
|
|
3965
|
+
assert(
|
|
3966
|
+
type !== ContainerMessageType.IdAllocation,
|
|
3967
|
+
"IdAllocation should be submitted directly to outbox.",
|
|
3968
|
+
);
|
|
3973
3969
|
const message: BatchMessage = {
|
|
3974
3970
|
contents: serializedContent,
|
|
3975
3971
|
metadata,
|
|
@@ -3978,44 +3974,36 @@ export class ContainerRuntime
|
|
|
3978
3974
|
};
|
|
3979
3975
|
|
|
3980
3976
|
try {
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
//
|
|
3984
|
-
//
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
3988
|
-
this.
|
|
3989
|
-
|
|
3990
|
-
|
|
3991
|
-
|
|
3992
|
-
|
|
3993
|
-
|
|
3994
|
-
|
|
3995
|
-
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
contents,
|
|
4006
|
-
};
|
|
4007
|
-
this.outbox.submit({
|
|
4008
|
-
contents: JSON.stringify(msg),
|
|
4009
|
-
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
4010
|
-
});
|
|
4011
|
-
}
|
|
3977
|
+
this.submitIdAllocationOpIfNeeded(false);
|
|
3978
|
+
|
|
3979
|
+
// Allow document schema controller to send a message if it needs to propose change in document schema.
|
|
3980
|
+
// If it needs to send a message, it will call provided callback with payload of such message and rely
|
|
3981
|
+
// on this callback to do actual sending.
|
|
3982
|
+
const contents = this.documentsSchemaController.maybeSendSchemaMessage();
|
|
3983
|
+
if (contents) {
|
|
3984
|
+
this.logger.sendTelemetryEvent({
|
|
3985
|
+
eventName: "SchemaChangeProposal",
|
|
3986
|
+
refSeq: contents.refSeq,
|
|
3987
|
+
version: contents.version,
|
|
3988
|
+
newRuntimeSchema: JSON.stringify(contents.runtime),
|
|
3989
|
+
sessionRuntimeSchema: JSON.stringify(this.sessionSchema),
|
|
3990
|
+
oldRuntimeSchema: JSON.stringify(this.metadata?.documentSchema?.runtime),
|
|
3991
|
+
});
|
|
3992
|
+
const msg: ContainerRuntimeDocumentSchemaMessage = {
|
|
3993
|
+
type: ContainerMessageType.DocumentSchemaChange,
|
|
3994
|
+
contents,
|
|
3995
|
+
};
|
|
3996
|
+
this.outbox.submit({
|
|
3997
|
+
contents: JSON.stringify(msg),
|
|
3998
|
+
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
3999
|
+
});
|
|
4000
|
+
}
|
|
4012
4001
|
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
}
|
|
4002
|
+
if (type === ContainerMessageType.BlobAttach) {
|
|
4003
|
+
// BlobAttach ops must have their metadata visible and cannot be grouped (see opGroupingManager.ts)
|
|
4004
|
+
this.outbox.submitBlobAttach(message);
|
|
4005
|
+
} else {
|
|
4006
|
+
this.outbox.submit(message);
|
|
4019
4007
|
}
|
|
4020
4008
|
|
|
4021
4009
|
if (!this.currentlyBatching()) {
|
|
@@ -4224,7 +4212,7 @@ export class ContainerRuntime
|
|
|
4224
4212
|
* and then close as the current main client is likely to be re-elected as the parent summarizer again.
|
|
4225
4213
|
*/
|
|
4226
4214
|
if (!result.isSummaryTracked && result.isSummaryNewer) {
|
|
4227
|
-
await this.
|
|
4215
|
+
await this.fetchLatestSnapshotAndClose(
|
|
4228
4216
|
summaryLogger,
|
|
4229
4217
|
{
|
|
4230
4218
|
eventName: "RefreshLatestSummaryAckFetch",
|
|
@@ -4233,8 +4221,6 @@ export class ContainerRuntime
|
|
|
4233
4221
|
},
|
|
4234
4222
|
readAndParseBlob,
|
|
4235
4223
|
);
|
|
4236
|
-
|
|
4237
|
-
await this.closeStaleSummarizer();
|
|
4238
4224
|
return;
|
|
4239
4225
|
}
|
|
4240
4226
|
|
|
@@ -4243,54 +4229,16 @@ export class ContainerRuntime
|
|
|
4243
4229
|
}
|
|
4244
4230
|
|
|
4245
4231
|
/**
|
|
4246
|
-
* Fetches the latest snapshot from storage
|
|
4247
|
-
*
|
|
4248
|
-
*
|
|
4249
|
-
* @returns a generic summarization error
|
|
4232
|
+
* Fetches the latest snapshot from storage and closes the container. This is done in cases where
|
|
4233
|
+
* the last known snapshot is older than the latest one. This will ensure that the latest snapshot
|
|
4234
|
+
* is downloaded and we don't end up loading snapshot from cache.
|
|
4250
4235
|
*/
|
|
4251
|
-
private async
|
|
4252
|
-
summaryLogger: ITelemetryLoggerExt,
|
|
4253
|
-
): Promise<IBaseSummarizeResult> {
|
|
4254
|
-
const readAndParseBlob = async <T>(id: string) => readAndParse<T>(this.storage, id);
|
|
4255
|
-
|
|
4256
|
-
// This is a performance optimization as the same parent is likely to be elected again, and would use its
|
|
4257
|
-
// cache to fetch the snapshot instead of the network.
|
|
4258
|
-
await this.fetchLatestSnapshotFromStorage(
|
|
4259
|
-
summaryLogger,
|
|
4260
|
-
{
|
|
4261
|
-
eventName: "RefreshLatestSummaryFromServerFetch",
|
|
4262
|
-
},
|
|
4263
|
-
readAndParseBlob,
|
|
4264
|
-
);
|
|
4265
|
-
|
|
4266
|
-
await this.closeStaleSummarizer();
|
|
4267
|
-
|
|
4268
|
-
return {
|
|
4269
|
-
stage: "base",
|
|
4270
|
-
error: new LoggingError("summary state stale - Unsupported option 'refreshLatestAck'"),
|
|
4271
|
-
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
4272
|
-
minimumSequenceNumber: this.deltaManager.minimumSequenceNumber,
|
|
4273
|
-
};
|
|
4274
|
-
}
|
|
4275
|
-
|
|
4276
|
-
private async closeStaleSummarizer(): Promise<void> {
|
|
4277
|
-
// Delay before restarting summarizer to prevent the summarizer from restarting too frequently.
|
|
4278
|
-
await delay(this.closeSummarizerDelayMs);
|
|
4279
|
-
this._summarizer?.stop("latestSummaryStateStale");
|
|
4280
|
-
this.disposeFn();
|
|
4281
|
-
}
|
|
4282
|
-
|
|
4283
|
-
/**
|
|
4284
|
-
* Downloads the latest snapshot from storage.
|
|
4285
|
-
* By default, it also closes the container after downloading the snapshot. However, this may be
|
|
4286
|
-
* overridden via options.
|
|
4287
|
-
*/
|
|
4288
|
-
private async fetchLatestSnapshotFromStorage(
|
|
4236
|
+
private async fetchLatestSnapshotAndClose(
|
|
4289
4237
|
logger: ITelemetryLoggerExt,
|
|
4290
4238
|
event: ITelemetryGenericEventExt,
|
|
4291
4239
|
readAndParseBlob: ReadAndParseBlob,
|
|
4292
|
-
)
|
|
4293
|
-
|
|
4240
|
+
) {
|
|
4241
|
+
await PerformanceEvent.timedExecAsync(
|
|
4294
4242
|
logger,
|
|
4295
4243
|
event,
|
|
4296
4244
|
async (perfEvent: {
|
|
@@ -4329,13 +4277,12 @@ export class ContainerRuntime
|
|
|
4329
4277
|
stats.snapshotVersion = versions[0].id;
|
|
4330
4278
|
|
|
4331
4279
|
perfEvent.end(stats);
|
|
4332
|
-
return {
|
|
4333
|
-
snapshotTree: maybeSnapshot,
|
|
4334
|
-
versionId: versions[0].id,
|
|
4335
|
-
latestSnapshotRefSeq,
|
|
4336
|
-
};
|
|
4337
4280
|
},
|
|
4338
4281
|
);
|
|
4282
|
+
|
|
4283
|
+
await delay(this.closeSummarizerDelayMs);
|
|
4284
|
+
this._summarizer?.stop("latestSummaryStateStale");
|
|
4285
|
+
this.disposeFn();
|
|
4339
4286
|
}
|
|
4340
4287
|
|
|
4341
4288
|
public getPendingLocalState(props?: IGetPendingLocalStateProps): unknown {
|
package/src/dataStore.ts
CHANGED
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { AttachState } from "@fluidframework/container-definitions";
|
|
7
|
-
import { FluidObject
|
|
7
|
+
import { FluidObject } from "@fluidframework/core-interfaces";
|
|
8
|
+
import { type IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
|
|
8
9
|
import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
9
10
|
import {
|
|
10
11
|
AliasResult,
|
package/src/dataStoreContext.ts
CHANGED
|
@@ -12,12 +12,21 @@ import {
|
|
|
12
12
|
IRequest,
|
|
13
13
|
IResponse,
|
|
14
14
|
ITelemetryBaseProperties,
|
|
15
|
+
type IEvent,
|
|
15
16
|
} from "@fluidframework/core-interfaces";
|
|
16
|
-
import { type
|
|
17
|
+
import { type IFluidHandleInternal } from "@fluidframework/core-interfaces/internal";
|
|
17
18
|
import { assert, LazyPromise, unreachableCase } from "@fluidframework/core-utils/internal";
|
|
19
|
+
import {
|
|
20
|
+
IClientDetails,
|
|
21
|
+
IQuorumClients,
|
|
22
|
+
ISequencedDocumentMessage,
|
|
23
|
+
} from "@fluidframework/driver-definitions";
|
|
18
24
|
import {
|
|
19
25
|
IDocumentStorageService,
|
|
20
26
|
type ISnapshot,
|
|
27
|
+
IDocumentMessage,
|
|
28
|
+
ISnapshotTree,
|
|
29
|
+
ITreeEntry,
|
|
21
30
|
} from "@fluidframework/driver-definitions/internal";
|
|
22
31
|
import {
|
|
23
32
|
BlobTreeEntry,
|
|
@@ -26,20 +35,9 @@ import {
|
|
|
26
35
|
} from "@fluidframework/driver-utils/internal";
|
|
27
36
|
import type { IIdCompressor } from "@fluidframework/id-compressor";
|
|
28
37
|
import {
|
|
29
|
-
IClientDetails,
|
|
30
|
-
IDocumentMessage,
|
|
31
|
-
IQuorumClients,
|
|
32
|
-
ISequencedDocumentMessage,
|
|
33
|
-
ISnapshotTree,
|
|
34
|
-
ITreeEntry,
|
|
35
|
-
} from "@fluidframework/protocol-definitions";
|
|
36
|
-
import {
|
|
37
|
-
IGarbageCollectionData,
|
|
38
|
-
IInboundSignalMessage,
|
|
39
38
|
ISummaryTreeWithStats,
|
|
40
39
|
ITelemetryContext,
|
|
41
|
-
|
|
42
|
-
import {
|
|
40
|
+
IGarbageCollectionData,
|
|
43
41
|
CreateChildSummarizerNodeFn,
|
|
44
42
|
CreateChildSummarizerNodeParam,
|
|
45
43
|
FluidDataStoreRegistryEntry,
|
|
@@ -58,6 +56,7 @@ import {
|
|
|
58
56
|
SummarizeInternalFn,
|
|
59
57
|
channelsTreeName,
|
|
60
58
|
gcDataBlobKey,
|
|
59
|
+
IInboundSignalMessage,
|
|
61
60
|
} from "@fluidframework/runtime-definitions/internal";
|
|
62
61
|
import {
|
|
63
62
|
addBlobToSummary,
|
|
@@ -211,8 +210,8 @@ export abstract class FluidDataStoreContext
|
|
|
211
210
|
return this.parentContext.clientDetails;
|
|
212
211
|
}
|
|
213
212
|
|
|
214
|
-
public get
|
|
215
|
-
return this.parentContext.
|
|
213
|
+
public get baseLogger() {
|
|
214
|
+
return this.parentContext.baseLogger;
|
|
216
215
|
}
|
|
217
216
|
|
|
218
217
|
public get deltaManager(): IDeltaManager<ISequencedDocumentMessage, IDocumentMessage> {
|
|
@@ -293,7 +292,7 @@ export abstract class FluidDataStoreContext
|
|
|
293
292
|
// We know that if the base snapshot is omitted, then the isRootDataStore flag is not set.
|
|
294
293
|
// That means we can skip the expensive call to getInitialSnapshotDetails for virtualized datastores,
|
|
295
294
|
// and get the information from the alias map directly.
|
|
296
|
-
if (aliasedDataStores !== undefined && this.baseSnapshot?.omitted === true) {
|
|
295
|
+
if (aliasedDataStores !== undefined && (this.baseSnapshot as any)?.omitted === true) {
|
|
297
296
|
return aliasedDataStores.has(this.id);
|
|
298
297
|
}
|
|
299
298
|
|
|
@@ -383,7 +382,7 @@ export abstract class FluidDataStoreContext
|
|
|
383
382
|
);
|
|
384
383
|
|
|
385
384
|
this.mc = createChildMonitoringContext({
|
|
386
|
-
logger: this.
|
|
385
|
+
logger: this.baseLogger,
|
|
387
386
|
namespace: "FluidDataStoreContext",
|
|
388
387
|
properties: {
|
|
389
388
|
all: tagCodeArtifacts({
|
|
@@ -13,17 +13,19 @@ import type {
|
|
|
13
13
|
ReadOnlyInfo,
|
|
14
14
|
} from "@fluidframework/container-definitions/internal";
|
|
15
15
|
import type { IErrorBase } from "@fluidframework/core-interfaces";
|
|
16
|
-
import type { IAnyDriverError } from "@fluidframework/driver-definitions/internal";
|
|
17
16
|
import {
|
|
18
|
-
IClientConfiguration,
|
|
19
17
|
IClientDetails,
|
|
20
|
-
IDocumentMessage,
|
|
21
18
|
ISequencedDocumentMessage,
|
|
22
19
|
ISignalMessage,
|
|
23
|
-
} from "@fluidframework/
|
|
20
|
+
} from "@fluidframework/driver-definitions";
|
|
21
|
+
import type { IAnyDriverError } from "@fluidframework/driver-definitions/internal";
|
|
22
|
+
import {
|
|
23
|
+
IClientConfiguration,
|
|
24
|
+
IDocumentMessage,
|
|
25
|
+
} from "@fluidframework/driver-definitions/internal";
|
|
24
26
|
|
|
25
|
-
import { summarizerClientType } from "./summary/index.js";
|
|
26
27
|
import type { PendingStateManager } from "./pendingStateManager.js";
|
|
28
|
+
import { summarizerClientType } from "./summary/index.js";
|
|
27
29
|
|
|
28
30
|
/**
|
|
29
31
|
* Base class for DeltaManager proxy that proxy's access to the real DeltaManager.
|
package/src/deltaScheduler.ts
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
|
|
6
6
|
import { performance } from "@fluid-internal/client-utils";
|
|
7
7
|
import { IDeltaManager } from "@fluidframework/container-definitions/internal";
|
|
8
|
-
import {
|
|
8
|
+
import { ISequencedDocumentMessage } from "@fluidframework/driver-definitions";
|
|
9
|
+
import { IDocumentMessage } from "@fluidframework/driver-definitions/internal";
|
|
9
10
|
import { ITelemetryLoggerExt, formatTick } from "@fluidframework/telemetry-utils/internal";
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -88,14 +88,6 @@ for apps to override settings easily, e.g. by backing their `IConfigProviderBase
|
|
|
88
88
|
In cases where a behavior is controlled by both a Config Setting and GC Option, you may experiment at first using Config Settings
|
|
89
89
|
and then later update the passed-in GC Options to finalize the configuration in your code.
|
|
90
90
|
|
|
91
|
-
### Disabling Mark Phase
|
|
92
|
-
|
|
93
|
-
If you wish to disable Mark Phase for newly-created documents, set the `gcAllowed` GC Option to `false`.
|
|
94
|
-
Note that this will disable GC permanently (including the sweep phase) for the container during its lifetime.
|
|
95
|
-
|
|
96
|
-
Mark Phase can also be disabled just for the session, among other behaviors,
|
|
97
|
-
covered in the [Advanced Configuration](./gcEarlyAdoption.md#more-advanced-configurations) docs.
|
|
98
|
-
|
|
99
91
|
### Enabling Sweep Phase
|
|
100
92
|
|
|
101
93
|
To enable the Sweep Phase for new documents, you must set the `enableGCSweep` GC Option to true.
|