@fluidframework/container-runtime 2.0.0-dev.5.2.0.169897 → 2.0.0-dev.6.4.0.191258
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 +147 -0
- package/README.md +4 -3
- package/dist/batchTracker.d.ts +3 -2
- package/dist/batchTracker.d.ts.map +1 -1
- package/dist/batchTracker.js +6 -5
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.d.ts +15 -18
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +212 -171
- package/dist/blobManager.js.map +1 -1
- package/dist/connectionTelemetry.d.ts.map +1 -1
- package/dist/connectionTelemetry.js +33 -17
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerRuntime.d.ts +172 -35
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +722 -425
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.d.ts.map +1 -1
- package/dist/dataStore.js +15 -7
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts +4 -4
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +87 -90
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +1 -1
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +10 -10
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStoreRegistry.js +2 -2
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/dataStores.d.ts +23 -7
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +125 -82
- package/dist/dataStores.js.map +1 -1
- package/dist/deltaManagerProxyBase.d.ts +35 -0
- package/dist/deltaManagerProxyBase.d.ts.map +1 -0
- package/dist/deltaManagerProxyBase.js +77 -0
- package/dist/deltaManagerProxyBase.js.map +1 -0
- package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
- package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/dist/deltaManagerSummarizerProxy.js +4 -2
- package/dist/deltaManagerSummarizerProxy.js.map +1 -1
- package/dist/deltaScheduler.d.ts.map +1 -1
- package/dist/deltaScheduler.js +10 -10
- package/dist/deltaScheduler.js.map +1 -1
- package/dist/error.d.ts +14 -0
- package/dist/error.d.ts.map +1 -0
- package/dist/error.js +21 -0
- package/dist/error.js.map +1 -0
- package/dist/gc/garbageCollection.d.ts +10 -9
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +65 -56
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +18 -14
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.d.ts +17 -5
- package/dist/gc/gcDefinitions.d.ts.map +1 -1
- package/dist/gc/gcDefinitions.js +14 -15
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts +0 -8
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +11 -24
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/gc/gcSummaryStateTracker.d.ts +4 -7
- package/dist/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/dist/gc/gcSummaryStateTracker.js +19 -58
- 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 +45 -35
- package/dist/gc/gcTelemetry.js.map +1 -1
- package/dist/gc/gcUnreferencedStateTracker.js +4 -4
- package/dist/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/dist/gc/index.d.ts +2 -2
- package/dist/gc/index.d.ts.map +1 -1
- package/dist/gc/index.js +3 -5
- package/dist/gc/index.js.map +1 -1
- package/dist/id-compressor/appendOnlySortedMap.d.ts +8 -30
- package/dist/id-compressor/appendOnlySortedMap.d.ts.map +1 -1
- package/dist/id-compressor/appendOnlySortedMap.js +26 -68
- package/dist/id-compressor/appendOnlySortedMap.js.map +1 -1
- package/dist/id-compressor/finalSpace.d.ts +29 -0
- package/dist/id-compressor/finalSpace.d.ts.map +1 -0
- package/dist/id-compressor/finalSpace.js +62 -0
- package/dist/id-compressor/finalSpace.js.map +1 -0
- package/dist/id-compressor/idCompressor.d.ts +25 -250
- package/dist/id-compressor/idCompressor.d.ts.map +1 -1
- package/dist/id-compressor/idCompressor.js +390 -1153
- package/dist/id-compressor/idCompressor.js.map +1 -1
- package/dist/id-compressor/identifiers.d.ts +32 -0
- package/dist/id-compressor/identifiers.d.ts.map +1 -0
- package/dist/id-compressor/identifiers.js +15 -0
- package/dist/id-compressor/identifiers.js.map +1 -0
- package/dist/id-compressor/index.d.ts +5 -6
- package/dist/id-compressor/index.d.ts.map +1 -1
- package/dist/id-compressor/index.js +20 -26
- package/dist/id-compressor/index.js.map +1 -1
- package/dist/id-compressor/persistanceUtilities.d.ts +22 -0
- package/dist/id-compressor/persistanceUtilities.d.ts.map +1 -0
- package/dist/id-compressor/persistanceUtilities.js +43 -0
- package/dist/id-compressor/persistanceUtilities.js.map +1 -0
- package/dist/id-compressor/sessionSpaceNormalizer.d.ts +46 -0
- package/dist/id-compressor/sessionSpaceNormalizer.d.ts.map +1 -0
- package/dist/id-compressor/sessionSpaceNormalizer.js +80 -0
- package/dist/id-compressor/sessionSpaceNormalizer.js.map +1 -0
- package/dist/id-compressor/sessions.d.ts +115 -0
- package/dist/id-compressor/sessions.d.ts.map +1 -0
- package/dist/id-compressor/sessions.js +305 -0
- package/dist/id-compressor/sessions.js.map +1 -0
- package/dist/id-compressor/utilities.d.ts +49 -0
- package/dist/id-compressor/utilities.d.ts.map +1 -0
- package/dist/id-compressor/utilities.js +166 -0
- package/dist/id-compressor/utilities.js.map +1 -0
- package/dist/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -4
- package/dist/index.js.map +1 -1
- package/dist/metadata.d.ts +18 -0
- package/dist/metadata.d.ts.map +1 -0
- package/dist/metadata.js +7 -0
- package/dist/metadata.js.map +1 -0
- package/dist/opLifecycle/batchManager.d.ts +2 -1
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +15 -7
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/definitions.d.ts +11 -0
- package/dist/opLifecycle/definitions.d.ts.map +1 -1
- package/dist/opLifecycle/definitions.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +1 -1
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +2 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opCompressor.d.ts +2 -2
- package/dist/opLifecycle/opCompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opCompressor.js +12 -7
- package/dist/opLifecycle/opCompressor.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts +2 -2
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +30 -21
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +19 -13
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/opSplitter.d.ts +2 -2
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +24 -19
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +39 -6
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +138 -61
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +6 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +22 -8
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/opProperties.js +1 -2
- 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.d.ts +25 -10
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +101 -64
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/scheduleManager.d.ts.map +1 -1
- package/dist/scheduleManager.js +43 -33
- package/dist/scheduleManager.js.map +1 -1
- package/dist/summary/index.d.ts +4 -4
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +3 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +3 -3
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +26 -27
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runWhileConnectedCoordinator.js +3 -3
- package/dist/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +31 -10
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +271 -139
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts +8 -7
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +79 -78
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerClientElection.d.ts +2 -2
- package/dist/summary/summarizerClientElection.d.ts.map +1 -1
- package/dist/summary/summarizerClientElection.js +7 -11
- package/dist/summary/summarizerClientElection.js.map +1 -1
- package/dist/summary/summarizerHeuristics.js +10 -14
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/index.d.ts +1 -1
- package/dist/summary/summarizerNode/index.d.ts.map +1 -1
- package/dist/summary/summarizerNode/index.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.d.ts +40 -23
- package/dist/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +144 -149
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts +25 -29
- package/dist/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeUtils.js +2 -4
- package/dist/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +21 -16
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +74 -123
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +44 -24
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryCollection.d.ts +2 -2
- package/dist/summary/summaryCollection.d.ts.map +1 -1
- package/dist/summary/summaryCollection.js +16 -13
- package/dist/summary/summaryCollection.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +4 -0
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +8 -5
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +21 -6
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +117 -54
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts +8 -7
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +38 -28
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/batchTracker.d.ts +3 -2
- package/lib/batchTracker.d.ts.map +1 -1
- package/lib/batchTracker.js +5 -4
- package/lib/batchTracker.js.map +1 -1
- package/lib/blobManager.d.ts +15 -18
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +187 -146
- package/lib/blobManager.js.map +1 -1
- package/lib/connectionTelemetry.d.ts.map +1 -1
- package/lib/connectionTelemetry.js +23 -7
- package/lib/connectionTelemetry.js.map +1 -1
- package/lib/containerRuntime.d.ts +172 -35
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +678 -380
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.d.ts.map +1 -1
- package/lib/dataStore.js +13 -5
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts +4 -4
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +49 -52
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +1 -1
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +3 -3
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStoreRegistry.js +1 -1
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/dataStores.d.ts +23 -7
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +107 -64
- package/lib/dataStores.js.map +1 -1
- package/lib/deltaManagerProxyBase.d.ts +35 -0
- package/lib/deltaManagerProxyBase.d.ts.map +1 -0
- package/lib/deltaManagerProxyBase.js +73 -0
- package/lib/deltaManagerProxyBase.js.map +1 -0
- package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
- package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
- package/lib/deltaManagerSummarizerProxy.js +3 -1
- package/lib/deltaManagerSummarizerProxy.js.map +1 -1
- package/lib/deltaScheduler.d.ts.map +1 -1
- package/lib/deltaScheduler.js +7 -7
- package/lib/deltaScheduler.js.map +1 -1
- package/lib/error.d.ts +14 -0
- package/lib/error.d.ts.map +1 -0
- package/lib/error.js +17 -0
- package/lib/error.js.map +1 -0
- package/lib/gc/garbageCollection.d.ts +10 -9
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +61 -52
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +16 -12
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.d.ts +17 -5
- package/lib/gc/gcDefinitions.d.ts.map +1 -1
- package/lib/gc/gcDefinitions.js +13 -14
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts +0 -8
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +5 -17
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/gc/gcSummaryStateTracker.d.ts +4 -7
- package/lib/gc/gcSummaryStateTracker.d.ts.map +1 -1
- package/lib/gc/gcSummaryStateTracker.js +20 -59
- 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 +46 -36
- package/lib/gc/gcTelemetry.js.map +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js +1 -1
- package/lib/gc/gcUnreferencedStateTracker.js.map +1 -1
- package/lib/gc/index.d.ts +2 -2
- package/lib/gc/index.d.ts.map +1 -1
- package/lib/gc/index.js +2 -2
- package/lib/gc/index.js.map +1 -1
- package/lib/id-compressor/appendOnlySortedMap.d.ts +8 -30
- package/lib/id-compressor/appendOnlySortedMap.d.ts.map +1 -1
- package/lib/id-compressor/appendOnlySortedMap.js +25 -66
- package/lib/id-compressor/appendOnlySortedMap.js.map +1 -1
- package/lib/id-compressor/finalSpace.d.ts +29 -0
- package/lib/id-compressor/finalSpace.d.ts.map +1 -0
- package/lib/id-compressor/finalSpace.js +58 -0
- package/lib/id-compressor/finalSpace.js.map +1 -0
- package/lib/id-compressor/idCompressor.d.ts +25 -250
- package/lib/id-compressor/idCompressor.d.ts.map +1 -1
- package/lib/id-compressor/idCompressor.js +385 -1142
- package/lib/id-compressor/idCompressor.js.map +1 -1
- package/lib/id-compressor/identifiers.d.ts +32 -0
- package/lib/id-compressor/identifiers.d.ts.map +1 -0
- package/lib/id-compressor/identifiers.js +11 -0
- package/lib/id-compressor/identifiers.js.map +1 -0
- package/lib/id-compressor/index.d.ts +5 -6
- package/lib/id-compressor/index.d.ts.map +1 -1
- package/lib/id-compressor/index.js +5 -6
- package/lib/id-compressor/index.js.map +1 -1
- package/lib/id-compressor/persistanceUtilities.d.ts +22 -0
- package/lib/id-compressor/persistanceUtilities.d.ts.map +1 -0
- package/lib/id-compressor/persistanceUtilities.js +34 -0
- package/lib/id-compressor/persistanceUtilities.js.map +1 -0
- package/lib/id-compressor/sessionSpaceNormalizer.d.ts +46 -0
- package/lib/id-compressor/sessionSpaceNormalizer.d.ts.map +1 -0
- package/lib/id-compressor/sessionSpaceNormalizer.js +76 -0
- package/lib/id-compressor/sessionSpaceNormalizer.js.map +1 -0
- package/lib/id-compressor/sessions.d.ts +115 -0
- package/lib/id-compressor/sessions.d.ts.map +1 -0
- package/lib/id-compressor/sessions.js +290 -0
- package/lib/id-compressor/sessions.js.map +1 -0
- package/lib/id-compressor/utilities.d.ts +49 -0
- package/lib/id-compressor/utilities.d.ts.map +1 -0
- package/lib/id-compressor/utilities.js +148 -0
- package/lib/id-compressor/utilities.js.map +1 -0
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -2
- package/lib/index.js.map +1 -1
- package/lib/metadata.d.ts +18 -0
- package/lib/metadata.d.ts.map +1 -0
- package/lib/metadata.js +6 -0
- package/lib/metadata.js.map +1 -0
- package/lib/opLifecycle/batchManager.d.ts +2 -1
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +15 -7
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/definitions.d.ts +11 -0
- package/lib/opLifecycle/definitions.d.ts.map +1 -1
- package/lib/opLifecycle/definitions.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +1 -1
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +1 -1
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opCompressor.d.ts +2 -2
- package/lib/opLifecycle/opCompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opCompressor.js +10 -5
- package/lib/opLifecycle/opCompressor.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts +2 -2
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +22 -13
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +17 -11
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/opSplitter.d.ts +2 -2
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +15 -10
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +39 -6
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +132 -56
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +6 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +23 -9
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/opProperties.js +1 -2
- 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.d.ts +25 -10
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +90 -53
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/scheduleManager.d.ts.map +1 -1
- package/lib/scheduleManager.js +25 -15
- package/lib/scheduleManager.js.map +1 -1
- package/lib/summary/index.d.ts +4 -4
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +2 -2
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +3 -3
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +21 -22
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js +1 -1
- package/lib/summary/runWhileConnectedCoordinator.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +31 -10
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +265 -133
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts +8 -7
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +75 -74
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerClientElection.d.ts +2 -2
- package/lib/summary/summarizerClientElection.d.ts.map +1 -1
- package/lib/summary/summarizerClientElection.js +6 -10
- package/lib/summary/summarizerClientElection.js.map +1 -1
- package/lib/summary/summarizerHeuristics.js +9 -13
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/index.d.ts +1 -1
- package/lib/summary/summarizerNode/index.d.ts.map +1 -1
- package/lib/summary/summarizerNode/index.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.d.ts +40 -23
- package/lib/summary/summarizerNode/summarizerNode.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +132 -137
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts +25 -29
- package/lib/summary/summarizerNode/summarizerNodeUtils.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeUtils.js +2 -4
- package/lib/summary/summarizerNode/summarizerNodeUtils.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +21 -16
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +70 -119
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +44 -24
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryCollection.d.ts +2 -2
- package/lib/summary/summaryCollection.d.ts.map +1 -1
- package/lib/summary/summaryCollection.js +9 -6
- package/lib/summary/summaryCollection.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +4 -0
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +7 -4
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +21 -6
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +109 -47
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts +8 -7
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +35 -25
- package/lib/summary/summaryManager.js.map +1 -1
- package/package.json +30 -32
- package/src/batchTracker.ts +7 -5
- package/src/blobManager.ts +235 -172
- package/src/connectionTelemetry.ts +19 -5
- package/src/containerRuntime.ts +853 -431
- package/src/dataStore.ts +12 -4
- package/src/dataStoreContext.ts +49 -46
- package/src/dataStoreContexts.ts +4 -4
- package/src/dataStoreRegistry.ts +1 -1
- package/src/dataStores.ts +119 -80
- package/src/deltaManagerProxyBase.ts +111 -0
- package/src/deltaManagerSummarizerProxy.ts +4 -1
- package/src/deltaScheduler.ts +7 -11
- package/src/error.ts +18 -0
- package/src/gc/garbageCollection.md +53 -5
- package/src/gc/garbageCollection.ts +58 -51
- package/src/gc/gcConfigs.ts +4 -2
- package/src/gc/gcDefinitions.ts +17 -21
- package/src/gc/gcEarlyAdoption.md +145 -0
- package/src/gc/gcHelpers.ts +1 -12
- package/src/gc/gcSummaryStateTracker.ts +19 -65
- package/src/gc/gcTelemetry.ts +15 -13
- package/src/gc/gcUnreferencedStateTracker.ts +1 -1
- package/src/gc/index.ts +2 -4
- package/src/id-compressor/appendOnlySortedMap.ts +26 -87
- package/src/id-compressor/finalSpace.ts +67 -0
- package/src/id-compressor/idCompressor.ts +458 -1682
- package/src/id-compressor/identifiers.ts +42 -0
- package/src/id-compressor/index.ts +11 -20
- package/src/id-compressor/persistanceUtilities.ts +58 -0
- package/src/id-compressor/sessionSpaceNormalizer.ts +83 -0
- package/src/id-compressor/sessions.ts +405 -0
- package/src/id-compressor/utilities.ts +187 -0
- package/src/index.ts +9 -2
- package/src/metadata.ts +19 -0
- package/src/opLifecycle/README.md +20 -0
- package/src/opLifecycle/batchManager.ts +9 -1
- package/src/opLifecycle/definitions.ts +11 -0
- package/src/opLifecycle/index.ts +1 -1
- package/src/opLifecycle/opCompressor.ts +6 -5
- package/src/opLifecycle/opDecompressor.ts +47 -17
- package/src/opLifecycle/opGroupingManager.ts +18 -8
- package/src/opLifecycle/opSplitter.ts +10 -7
- package/src/opLifecycle/outbox.ts +177 -72
- package/src/opLifecycle/remoteMessageProcessor.ts +32 -9
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +123 -78
- package/src/scheduleManager.ts +22 -11
- package/src/summary/index.ts +7 -4
- package/src/summary/orderedClientElection.ts +10 -6
- package/src/summary/runWhileConnectedCoordinator.ts +1 -1
- package/src/summary/runningSummarizer.ts +291 -163
- package/src/summary/summarizer.ts +27 -16
- package/src/summary/summarizerClientElection.ts +2 -2
- package/src/summary/summarizerHeuristics.ts +1 -1
- package/src/summary/summarizerNode/index.ts +2 -2
- package/src/summary/summarizerNode/summarizerNode.ts +142 -184
- package/src/summary/summarizerNode/summarizerNodeUtils.ts +27 -35
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +72 -148
- package/src/summary/summarizerTypes.ts +49 -24
- package/src/summary/summaryCollection.ts +9 -4
- package/src/summary/summaryFormat.ts +9 -2
- package/src/summary/summaryGenerator.ts +72 -49
- package/src/summary/summaryManager.ts +44 -16
- package/dist/id-compressor/idRange.d.ts +0 -11
- package/dist/id-compressor/idRange.d.ts.map +0 -1
- package/dist/id-compressor/idRange.js +0 -29
- package/dist/id-compressor/idRange.js.map +0 -1
- package/dist/id-compressor/numericUuid.d.ts +0 -59
- package/dist/id-compressor/numericUuid.d.ts.map +0 -1
- package/dist/id-compressor/numericUuid.js +0 -325
- package/dist/id-compressor/numericUuid.js.map +0 -1
- package/dist/id-compressor/sessionIdNormalizer.d.ts +0 -138
- package/dist/id-compressor/sessionIdNormalizer.d.ts.map +0 -1
- package/dist/id-compressor/sessionIdNormalizer.js +0 -488
- package/dist/id-compressor/sessionIdNormalizer.js.map +0 -1
- package/dist/id-compressor/utils.d.ts +0 -57
- package/dist/id-compressor/utils.d.ts.map +0 -1
- package/dist/id-compressor/utils.js +0 -90
- package/dist/id-compressor/utils.js.map +0 -1
- package/dist/id-compressor/uuidUtilities.d.ts +0 -30
- package/dist/id-compressor/uuidUtilities.d.ts.map +0 -1
- package/dist/id-compressor/uuidUtilities.js +0 -106
- package/dist/id-compressor/uuidUtilities.js.map +0 -1
- package/lib/id-compressor/idRange.d.ts +0 -11
- package/lib/id-compressor/idRange.d.ts.map +0 -1
- package/lib/id-compressor/idRange.js +0 -25
- package/lib/id-compressor/idRange.js.map +0 -1
- package/lib/id-compressor/numericUuid.d.ts +0 -59
- package/lib/id-compressor/numericUuid.d.ts.map +0 -1
- package/lib/id-compressor/numericUuid.js +0 -315
- package/lib/id-compressor/numericUuid.js.map +0 -1
- package/lib/id-compressor/sessionIdNormalizer.d.ts +0 -138
- package/lib/id-compressor/sessionIdNormalizer.d.ts.map +0 -1
- package/lib/id-compressor/sessionIdNormalizer.js +0 -484
- package/lib/id-compressor/sessionIdNormalizer.js.map +0 -1
- package/lib/id-compressor/utils.d.ts +0 -57
- package/lib/id-compressor/utils.d.ts.map +0 -1
- package/lib/id-compressor/utils.js +0 -79
- package/lib/id-compressor/utils.js.map +0 -1
- package/lib/id-compressor/uuidUtilities.d.ts +0 -30
- package/lib/id-compressor/uuidUtilities.d.ts.map +0 -1
- package/lib/id-compressor/uuidUtilities.js +0 -98
- package/lib/id-compressor/uuidUtilities.js.map +0 -1
- package/src/id-compressor/idRange.ts +0 -35
- package/src/id-compressor/numericUuid.ts +0 -383
- package/src/id-compressor/sessionIdNormalizer.ts +0 -609
- package/src/id-compressor/utils.ts +0 -114
- package/src/id-compressor/uuidUtilities.ts +0 -123
package/dist/dataStoreContext.js
CHANGED
|
@@ -6,12 +6,12 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.LocalDetachedFluidDataStoreContext = exports.LocalFluidDataStoreContext = exports.LocalFluidDataStoreContextBase = exports.RemoteFluidDataStoreContext = exports.FluidDataStoreContext = exports.createAttributesBlob = void 0;
|
|
8
8
|
const container_definitions_1 = require("@fluidframework/container-definitions");
|
|
9
|
-
const
|
|
9
|
+
const client_utils_1 = require("@fluid-internal/client-utils");
|
|
10
|
+
const core_utils_1 = require("@fluidframework/core-utils");
|
|
10
11
|
const driver_utils_1 = require("@fluidframework/driver-utils");
|
|
11
12
|
const runtime_definitions_1 = require("@fluidframework/runtime-definitions");
|
|
12
13
|
const runtime_utils_1 = require("@fluidframework/runtime-utils");
|
|
13
14
|
const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
|
|
14
|
-
const container_utils_1 = require("@fluidframework/container-utils");
|
|
15
15
|
const summary_1 = require("./summary");
|
|
16
16
|
const gc_1 = require("./gc");
|
|
17
17
|
function createAttributes(pkg, isRootDataStore) {
|
|
@@ -30,9 +30,8 @@ exports.createAttributesBlob = createAttributesBlob;
|
|
|
30
30
|
/**
|
|
31
31
|
* Represents the context for the store. This context is passed to the store runtime.
|
|
32
32
|
*/
|
|
33
|
-
class FluidDataStoreContext extends
|
|
33
|
+
class FluidDataStoreContext extends client_utils_1.TypedEventEmitter {
|
|
34
34
|
constructor(props, existing, isLocalDataStore, makeLocallyVisibleFn) {
|
|
35
|
-
var _a;
|
|
36
35
|
super();
|
|
37
36
|
this.existing = existing;
|
|
38
37
|
this.isLocalDataStore = isLocalDataStore;
|
|
@@ -56,14 +55,25 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
56
55
|
this.pkg = props.pkg;
|
|
57
56
|
// URIs use slashes as delimiters. Handles use URIs.
|
|
58
57
|
// Thus having slashes in types almost guarantees trouble down the road!
|
|
59
|
-
(0,
|
|
58
|
+
(0, core_utils_1.assert)(!this.id.includes("/"), 0x13a /* Data store ID contains slash */);
|
|
60
59
|
this._attachState =
|
|
61
60
|
this.containerRuntime.attachState !== container_definitions_1.AttachState.Detached && this.existing
|
|
62
61
|
? this.containerRuntime.attachState
|
|
63
62
|
: container_definitions_1.AttachState.Detached;
|
|
64
63
|
const thisSummarizeInternal = async (fullTree, trackState, telemetryContext) => this.summarizeInternal(fullTree, trackState, telemetryContext);
|
|
65
64
|
this.summarizerNode = props.createSummarizerNodeFn(thisSummarizeInternal, async (fullGC) => this.getGCDataInternal(fullGC));
|
|
66
|
-
this.mc = (0, telemetry_utils_1.
|
|
65
|
+
this.mc = (0, telemetry_utils_1.createChildMonitoringContext)({
|
|
66
|
+
logger: this.logger,
|
|
67
|
+
namespace: "FluidDataStoreContext",
|
|
68
|
+
properties: {
|
|
69
|
+
all: (0, telemetry_utils_1.tagCodeArtifacts)({
|
|
70
|
+
fluidDataStoreId: this.id,
|
|
71
|
+
// The package name is a getter because `this.pkg` may not be initialized during construction.
|
|
72
|
+
// For data stores loaded from summary, it is initialized during data store realization.
|
|
73
|
+
fullPackageName: () => this.pkg?.join("/"),
|
|
74
|
+
}),
|
|
75
|
+
},
|
|
76
|
+
});
|
|
67
77
|
this.thresholdOpsCounter = new telemetry_utils_1.ThresholdCounter(FluidDataStoreContext.pendingOpsCountThreshold, this.mc.logger);
|
|
68
78
|
// Tombstone should only throw when the feature flag is enabled and the client isn't a summarizer
|
|
69
79
|
this.throwOnTombstoneUsage =
|
|
@@ -72,10 +82,10 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
72
82
|
this.clientDetails.type !== summary_1.summarizerClientType;
|
|
73
83
|
// By default, a data store can log maximum 10 local changes telemetry in summarizer.
|
|
74
84
|
this.localChangesTelemetryCount =
|
|
75
|
-
|
|
85
|
+
this.mc.config.getNumber("Fluid.Telemetry.LocalChangesTelemetryCount") ?? 10;
|
|
76
86
|
}
|
|
77
87
|
get packagePath() {
|
|
78
|
-
(0,
|
|
88
|
+
(0, core_utils_1.assert)(this.pkg !== undefined, 0x139 /* "Undefined package path" */);
|
|
79
89
|
return this.pkg;
|
|
80
90
|
}
|
|
81
91
|
get options() {
|
|
@@ -175,33 +185,29 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
175
185
|
this._tombstoned = tombstone;
|
|
176
186
|
}
|
|
177
187
|
rejectDeferredRealize(reason, failedPkgPath, fullPackageName) {
|
|
178
|
-
throw new telemetry_utils_1.LoggingError(reason, {
|
|
179
|
-
failedPkgPath
|
|
180
|
-
|
|
181
|
-
});
|
|
188
|
+
throw new telemetry_utils_1.LoggingError(reason, (0, telemetry_utils_1.tagCodeArtifacts)({
|
|
189
|
+
failedPkgPath,
|
|
190
|
+
packagePath: fullPackageName?.join("/"),
|
|
191
|
+
}));
|
|
182
192
|
}
|
|
183
193
|
async realize() {
|
|
184
|
-
(0,
|
|
194
|
+
(0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x13d /* "Detached runtime creation on realize()" */);
|
|
185
195
|
if (!this.channelDeferred) {
|
|
186
|
-
this.channelDeferred = new
|
|
196
|
+
this.channelDeferred = new core_utils_1.Deferred();
|
|
187
197
|
this.realizeCore(this.existing).catch((error) => {
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
fluidDataStoreId:
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
packageName: (0, runtime_utils_1.packagePathToTelemetryProperty)(this.pkg),
|
|
196
|
-
});
|
|
197
|
-
(_a = this.channelDeferred) === null || _a === void 0 ? void 0 : _a.reject(errorWrapped);
|
|
198
|
-
this.logger.sendErrorEvent({ eventName: "RealizeError" }, errorWrapped);
|
|
198
|
+
const errorWrapped = telemetry_utils_1.DataProcessingError.wrapIfUnrecognized(error, "realizeFluidDataStoreContext");
|
|
199
|
+
errorWrapped.addTelemetryProperties((0, telemetry_utils_1.tagCodeArtifacts)({
|
|
200
|
+
fullPackageName: this.pkg?.join("/"),
|
|
201
|
+
fluidDataStoreId: this.id,
|
|
202
|
+
}));
|
|
203
|
+
this.channelDeferred?.reject(errorWrapped);
|
|
204
|
+
this.mc.logger.sendErrorEvent({ eventName: "RealizeError" }, errorWrapped);
|
|
199
205
|
});
|
|
200
206
|
}
|
|
201
207
|
return this.channelDeferred.promise;
|
|
202
208
|
}
|
|
203
209
|
async factoryFromPackagePath(packages) {
|
|
204
|
-
(0,
|
|
210
|
+
(0, core_utils_1.assert)(this.pkg === packages, 0x13e /* "Unexpected package path" */);
|
|
205
211
|
if (packages === undefined) {
|
|
206
212
|
this.rejectDeferredRealize("packages is undefined");
|
|
207
213
|
}
|
|
@@ -219,7 +225,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
219
225
|
}
|
|
220
226
|
registry = entry.IFluidDataStoreRegistry;
|
|
221
227
|
}
|
|
222
|
-
const factory = entry
|
|
228
|
+
const factory = entry?.IFluidDataStoreFactory;
|
|
223
229
|
if (factory === undefined) {
|
|
224
230
|
this.rejectDeferredRealize("Can't find factory for package", lastPkg, packages);
|
|
225
231
|
}
|
|
@@ -233,10 +239,10 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
233
239
|
this._baseSnapshot = details.snapshot;
|
|
234
240
|
const packages = details.pkg;
|
|
235
241
|
const { factory, registry } = await this.factoryFromPackagePath(packages);
|
|
236
|
-
(0,
|
|
242
|
+
(0, core_utils_1.assert)(this.registry === undefined, 0x13f /* "datastore context registry is already set" */);
|
|
237
243
|
this.registry = registry;
|
|
238
244
|
const channel = await factory.instantiateDataStore(this, existing);
|
|
239
|
-
(0,
|
|
245
|
+
(0, core_utils_1.assert)(channel !== undefined, 0x140 /* "undefined channel on datastore context" */);
|
|
240
246
|
this.bindRuntime(channel);
|
|
241
247
|
}
|
|
242
248
|
/**
|
|
@@ -252,34 +258,36 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
252
258
|
if (!this.loaded) {
|
|
253
259
|
return;
|
|
254
260
|
}
|
|
255
|
-
(0,
|
|
261
|
+
(0, core_utils_1.assert)(this.connected === connected, 0x141 /* "Unexpected connected state" */);
|
|
256
262
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
257
263
|
this.channel.setConnectionState(connected, clientId);
|
|
258
264
|
}
|
|
259
265
|
process(messageArg, local, localOpMetadata) {
|
|
260
|
-
|
|
261
|
-
this.verifyNotClosed("process", true, (0, container_utils_1.extractSafePropertiesFromMessage)(messageArg));
|
|
266
|
+
this.verifyNotClosed("process", true, (0, telemetry_utils_1.extractSafePropertiesFromMessage)(messageArg));
|
|
262
267
|
const innerContents = messageArg.contents;
|
|
263
|
-
const message =
|
|
268
|
+
const message = {
|
|
269
|
+
...messageArg,
|
|
270
|
+
type: innerContents.type,
|
|
271
|
+
contents: innerContents.content,
|
|
272
|
+
};
|
|
264
273
|
this.summarizerNode.recordChange(message);
|
|
265
274
|
if (this.loaded) {
|
|
266
|
-
return
|
|
275
|
+
return this.channel?.process(message, local, localOpMetadata);
|
|
267
276
|
}
|
|
268
277
|
else {
|
|
269
|
-
(0,
|
|
270
|
-
(0,
|
|
278
|
+
(0, core_utils_1.assert)(!local, 0x142 /* "local store channel is not loaded" */);
|
|
279
|
+
(0, core_utils_1.assert)(this.pending !== undefined, 0x23d /* "pending is undefined" */);
|
|
271
280
|
this.pending.push(message);
|
|
272
281
|
this.thresholdOpsCounter.sendIfMultiple("StorePendingOps", this.pending.length);
|
|
273
282
|
}
|
|
274
283
|
}
|
|
275
284
|
processSignal(message, local) {
|
|
276
|
-
var _a;
|
|
277
285
|
this.verifyNotClosed("processSignal");
|
|
278
286
|
// Signals are ignored if the store is not yet loaded
|
|
279
287
|
if (!this.loaded) {
|
|
280
288
|
return;
|
|
281
289
|
}
|
|
282
|
-
|
|
290
|
+
this.channel?.processSignal(message, local);
|
|
283
291
|
}
|
|
284
292
|
getQuorum() {
|
|
285
293
|
return this._containerRuntime.getQuorum();
|
|
@@ -314,7 +322,11 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
314
322
|
summarizeResult.summary.unreferenced = true;
|
|
315
323
|
summarizeResult.stats.unreferencedBlobSize = summarizeResult.stats.totalBlobSize;
|
|
316
324
|
}
|
|
317
|
-
return
|
|
325
|
+
return {
|
|
326
|
+
...summarizeResult,
|
|
327
|
+
id: this.id,
|
|
328
|
+
pathPartsForChildren,
|
|
329
|
+
};
|
|
318
330
|
}
|
|
319
331
|
/**
|
|
320
332
|
* Returns the data used for garbage collection. This includes a list of GC nodes that represent this data store
|
|
@@ -334,7 +346,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
334
346
|
*/
|
|
335
347
|
async getGCDataInternal(fullGC = false) {
|
|
336
348
|
await this.realize();
|
|
337
|
-
(0,
|
|
349
|
+
(0, core_utils_1.assert)(this.channel !== undefined, 0x143 /* "Channel should not be undefined when running GC" */);
|
|
338
350
|
return this.channel.getGCData(fullGC);
|
|
339
351
|
}
|
|
340
352
|
/**
|
|
@@ -384,8 +396,8 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
384
396
|
* 2. When the data store is realized. This updates the channel's used routes as per last GC run.
|
|
385
397
|
*/
|
|
386
398
|
updateChannelUsedRoutes() {
|
|
387
|
-
(0,
|
|
388
|
-
(0,
|
|
399
|
+
(0, core_utils_1.assert)(this.loaded, 0x144 /* "Channel should be loaded when updating used routes" */);
|
|
400
|
+
(0, core_utils_1.assert)(this.channel !== undefined, 0x145 /* "Channel should be present when data store is loaded" */);
|
|
389
401
|
// If there is no lastUsedRoutes, GC has not run up until this point.
|
|
390
402
|
if (this.lastUsedRoutes === undefined) {
|
|
391
403
|
return;
|
|
@@ -405,7 +417,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
405
417
|
}
|
|
406
418
|
submitMessage(type, content, localOpMetadata) {
|
|
407
419
|
this.verifyNotClosed("submitMessage");
|
|
408
|
-
(0,
|
|
420
|
+
(0, core_utils_1.assert)(!!this.channel, 0x146 /* "Channel must exist when submitting message" */);
|
|
409
421
|
const fluidDataStoreContent = {
|
|
410
422
|
content,
|
|
411
423
|
type,
|
|
@@ -435,7 +447,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
435
447
|
}
|
|
436
448
|
submitSignal(type, content) {
|
|
437
449
|
this.verifyNotClosed("submitSignal");
|
|
438
|
-
(0,
|
|
450
|
+
(0, core_utils_1.assert)(!!this.channel, 0x147 /* "Channel must exist on submitting signal" */);
|
|
439
451
|
return this._containerRuntime.submitDataStoreSignal(this.id, type, content);
|
|
440
452
|
}
|
|
441
453
|
/**
|
|
@@ -443,8 +455,8 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
443
455
|
* globally visible now.
|
|
444
456
|
*/
|
|
445
457
|
makeLocallyVisible() {
|
|
446
|
-
(0,
|
|
447
|
-
(0,
|
|
458
|
+
(0, core_utils_1.assert)(this.channel !== undefined, 0x2cf /* "undefined channel on datastore context" */);
|
|
459
|
+
(0, core_utils_1.assert)(this.channel.visibilityState === runtime_definitions_1.VisibilityState.LocallyVisible, 0x590 /* Channel must be locally visible */);
|
|
448
460
|
this.makeLocallyVisibleFn();
|
|
449
461
|
}
|
|
450
462
|
/** @deprecated - To be replaced by calling makeLocallyVisible directly */
|
|
@@ -452,14 +464,13 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
452
464
|
this.makeLocallyVisibleFn();
|
|
453
465
|
}
|
|
454
466
|
bindRuntime(channel) {
|
|
455
|
-
var _a;
|
|
456
467
|
if (this.channel) {
|
|
457
468
|
throw new Error("Runtime already bound");
|
|
458
469
|
}
|
|
459
470
|
try {
|
|
460
|
-
(0,
|
|
461
|
-
(0,
|
|
462
|
-
(0,
|
|
471
|
+
(0, core_utils_1.assert)(!this.detachedRuntimeCreation, 0x148 /* "Detached runtime creation on runtime bind" */);
|
|
472
|
+
(0, core_utils_1.assert)(this.channelDeferred !== undefined, 0x149 /* "Undefined channel deferral" */);
|
|
473
|
+
(0, core_utils_1.assert)(this.pkg !== undefined, 0x14a /* "Undefined package path" */);
|
|
463
474
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
464
475
|
const pending = this.pending;
|
|
465
476
|
// Apply all pending ops
|
|
@@ -486,13 +497,9 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
486
497
|
this.channelDeferred.resolve(this.channel);
|
|
487
498
|
}
|
|
488
499
|
catch (error) {
|
|
489
|
-
|
|
490
|
-
this.logger.sendErrorEvent({
|
|
500
|
+
this.channelDeferred?.reject(error);
|
|
501
|
+
this.mc.logger.sendErrorEvent({
|
|
491
502
|
eventName: "BindRuntimeError",
|
|
492
|
-
fluidDataStoreId: {
|
|
493
|
-
value: this.id,
|
|
494
|
-
tag: telemetry_utils_1.TelemetryDataTag.CodeArtifact,
|
|
495
|
-
},
|
|
496
503
|
}, error);
|
|
497
504
|
}
|
|
498
505
|
}
|
|
@@ -517,7 +524,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
517
524
|
return {};
|
|
518
525
|
}
|
|
519
526
|
reSubmit(contents, localOpMetadata) {
|
|
520
|
-
(0,
|
|
527
|
+
(0, core_utils_1.assert)(!!this.channel, 0x14b /* "Channel must exist when resubmitting ops" */);
|
|
521
528
|
const innerContents = contents;
|
|
522
529
|
this.channel.reSubmit(innerContents.type, innerContents.content, localOpMetadata);
|
|
523
530
|
}
|
|
@@ -535,14 +542,13 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
535
542
|
if (!this.channel) {
|
|
536
543
|
await this.realize();
|
|
537
544
|
}
|
|
538
|
-
(0,
|
|
539
|
-
|
|
540
|
-
return this.channel.applyStashedOp(innerContents.content);
|
|
545
|
+
(0, core_utils_1.assert)(!!this.channel, 0x14c /* "Channel must exist when rebasing ops" */);
|
|
546
|
+
return this.channel.applyStashedOp(contents);
|
|
541
547
|
}
|
|
542
548
|
verifyNotClosed(callSite, checkTombstone = true, safeTelemetryProps = {}) {
|
|
543
549
|
if (this.deleted) {
|
|
544
550
|
const messageString = `Context is deleted! Call site [${callSite}]`;
|
|
545
|
-
const error = new
|
|
551
|
+
const error = new telemetry_utils_1.DataCorruptionError(messageString, safeTelemetryProps);
|
|
546
552
|
this.mc.logger.sendErrorEvent({
|
|
547
553
|
eventName: "GC_Deleted_DataStore_Changed",
|
|
548
554
|
callSite,
|
|
@@ -554,7 +560,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
554
560
|
}
|
|
555
561
|
if (checkTombstone && this.tombstoned) {
|
|
556
562
|
const messageString = `Context is tombstoned! Call site [${callSite}]`;
|
|
557
|
-
const error = new
|
|
563
|
+
const error = new telemetry_utils_1.DataCorruptionError(messageString, safeTelemetryProps);
|
|
558
564
|
(0, gc_1.sendGCUnexpectedUsageEvent)(this.mc, {
|
|
559
565
|
eventName: "GC_Tombstone_DataStore_Changed",
|
|
560
566
|
category: this.throwOnTombstoneUsage ? "error" : "generic",
|
|
@@ -572,7 +578,6 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
572
578
|
* other clients that are up-to-date till seq# 100 may not have them yet.
|
|
573
579
|
*/
|
|
574
580
|
identifyLocalChangeInSummarizer(eventName, type) {
|
|
575
|
-
var _a, _b;
|
|
576
581
|
if (this.clientDetails.type !== summary_1.summarizerClientType ||
|
|
577
582
|
this.localChangesTelemetryCount <= 0) {
|
|
578
583
|
return;
|
|
@@ -583,12 +588,7 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
583
588
|
this.mc.logger.sendTelemetryEvent({
|
|
584
589
|
eventName,
|
|
585
590
|
type,
|
|
586
|
-
|
|
587
|
-
value: this.id,
|
|
588
|
-
tag: telemetry_utils_1.TelemetryDataTag.CodeArtifact,
|
|
589
|
-
},
|
|
590
|
-
packageName: (0, runtime_utils_1.packagePathToTelemetryProperty)(this.pkg),
|
|
591
|
-
isSummaryInProgress: (_b = (_a = this.summarizerNode).isSummaryInProgress) === null || _b === void 0 ? void 0 : _b.call(_a),
|
|
591
|
+
isSummaryInProgress: this.summarizerNode.isSummaryInProgress?.(),
|
|
592
592
|
stack: (0, telemetry_utils_1.generateStack)(),
|
|
593
593
|
});
|
|
594
594
|
this.localChangesTelemetryCount--;
|
|
@@ -598,8 +598,8 @@ class FluidDataStoreContext extends common_utils_1.TypedEventEmitter {
|
|
|
598
598
|
// DDS will not create failure summaries
|
|
599
599
|
{ throwOnFailure: true }, getGCDataFn);
|
|
600
600
|
}
|
|
601
|
-
async uploadBlob(blob) {
|
|
602
|
-
return this.containerRuntime.uploadBlob(blob);
|
|
601
|
+
async uploadBlob(blob, signal) {
|
|
602
|
+
return this.containerRuntime.uploadBlob(blob, signal);
|
|
603
603
|
}
|
|
604
604
|
}
|
|
605
605
|
exports.FluidDataStoreContext = FluidDataStoreContext;
|
|
@@ -609,8 +609,7 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
609
609
|
super(props, true /* existing */, false /* isLocalDataStore */, () => {
|
|
610
610
|
throw new Error("Already attached");
|
|
611
611
|
});
|
|
612
|
-
this.initialSnapshotDetailsP = new
|
|
613
|
-
var _a;
|
|
612
|
+
this.initialSnapshotDetailsP = new core_utils_1.LazyPromise(async () => {
|
|
614
613
|
let tree = this.initSnapshotValue;
|
|
615
614
|
let isRootDataStore = true;
|
|
616
615
|
if (!!tree && tree.blobs[summary_1.dataStoreAttributesBlobName] !== undefined) {
|
|
@@ -635,10 +634,10 @@ class RemoteFluidDataStoreContext extends FluidDataStoreContext {
|
|
|
635
634
|
* data stores in older documents are not garbage collected incorrectly. This may lead to additional
|
|
636
635
|
* roots in the document but they won't break.
|
|
637
636
|
*/
|
|
638
|
-
isRootDataStore =
|
|
637
|
+
isRootDataStore = attributes.isRootDataStore ?? true;
|
|
639
638
|
if ((0, summary_1.hasIsolatedChannels)(attributes)) {
|
|
640
639
|
tree = tree.trees[runtime_definitions_1.channelsTreeName];
|
|
641
|
-
(0,
|
|
640
|
+
(0, core_utils_1.assert)(tree !== undefined, 0x1fe /* "isolated channels subtree should exist in remote datastore snapshot" */);
|
|
642
641
|
}
|
|
643
642
|
}
|
|
644
643
|
return {
|
|
@@ -678,17 +677,17 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
678
677
|
}
|
|
679
678
|
attachListeners() {
|
|
680
679
|
this.once("attaching", () => {
|
|
681
|
-
(0,
|
|
680
|
+
(0, core_utils_1.assert)(this.attachState === container_definitions_1.AttachState.Detached, 0x14d /* "Should move from detached to attaching" */);
|
|
682
681
|
this._attachState = container_definitions_1.AttachState.Attaching;
|
|
683
682
|
});
|
|
684
683
|
this.once("attached", () => {
|
|
685
|
-
(0,
|
|
684
|
+
(0, core_utils_1.assert)(this.attachState === container_definitions_1.AttachState.Attaching, 0x14e /* "Should move from attaching to attached" */);
|
|
686
685
|
this._attachState = container_definitions_1.AttachState.Attached;
|
|
687
686
|
});
|
|
688
687
|
}
|
|
689
688
|
generateAttachMessage() {
|
|
690
|
-
(0,
|
|
691
|
-
(0,
|
|
689
|
+
(0, core_utils_1.assert)(this.channel !== undefined, 0x14f /* "There should be a channel when generating attach message" */);
|
|
690
|
+
(0, core_utils_1.assert)(this.pkg !== undefined, 0x150 /* "pkg should be available in local data store context" */);
|
|
692
691
|
const summarizeResult = this.channel.getAttachSummary();
|
|
693
692
|
// Wrap dds summaries in .channels subtree.
|
|
694
693
|
(0, summary_1.wrapSummaryInChannelsTree)(summarizeResult);
|
|
@@ -705,7 +704,6 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
705
704
|
return message;
|
|
706
705
|
}
|
|
707
706
|
async getInitialSnapshotDetails() {
|
|
708
|
-
var _a;
|
|
709
707
|
let snapshot = this.snapshotTree;
|
|
710
708
|
let attributes;
|
|
711
709
|
let isRootDataStore = false;
|
|
@@ -715,20 +713,20 @@ class LocalFluidDataStoreContextBase extends FluidDataStoreContext {
|
|
|
715
713
|
attributes = await (0, summary_1.getFluidDataStoreAttributes)(this.storage, snapshot);
|
|
716
714
|
if ((0, summary_1.hasIsolatedChannels)(attributes)) {
|
|
717
715
|
snapshot = snapshot.trees[runtime_definitions_1.channelsTreeName];
|
|
718
|
-
(0,
|
|
716
|
+
(0, core_utils_1.assert)(snapshot !== undefined, 0x1ff /* "isolated channels subtree should exist in local datastore snapshot" */);
|
|
719
717
|
}
|
|
720
718
|
if (this.pkg === undefined) {
|
|
721
719
|
this.pkg = JSON.parse(attributes.pkg);
|
|
722
720
|
// If there is no isRootDataStore in the attributes blob, set it to true. This ensures that data
|
|
723
721
|
// stores in older documents are not garbage collected incorrectly. This may lead to additional
|
|
724
722
|
// roots in the document but they won't break.
|
|
725
|
-
if (
|
|
723
|
+
if (attributes.isRootDataStore ?? true) {
|
|
726
724
|
isRootDataStore = true;
|
|
727
725
|
this.setInMemoryRoot();
|
|
728
726
|
}
|
|
729
727
|
}
|
|
730
728
|
}
|
|
731
|
-
(0,
|
|
729
|
+
(0, core_utils_1.assert)(this.pkg !== undefined, 0x152 /* "pkg should be available in local data store" */);
|
|
732
730
|
return {
|
|
733
731
|
pkg: this.pkg,
|
|
734
732
|
isRootDataStore,
|
|
@@ -778,15 +776,14 @@ class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreContextBase
|
|
|
778
776
|
this.detachedRuntimeCreation = true;
|
|
779
777
|
}
|
|
780
778
|
async attachRuntime(registry, dataStoreChannel) {
|
|
781
|
-
|
|
782
|
-
(0, common_utils_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
|
|
779
|
+
(0, core_utils_1.assert)(this.detachedRuntimeCreation, 0x154 /* "runtime creation is already attached" */);
|
|
783
780
|
this.detachedRuntimeCreation = false;
|
|
784
|
-
(0,
|
|
785
|
-
this.channelDeferred = new
|
|
781
|
+
(0, core_utils_1.assert)(this.channelDeferred === undefined, 0x155 /* "channel deferral is already set" */);
|
|
782
|
+
this.channelDeferred = new core_utils_1.Deferred();
|
|
786
783
|
const factory = registry.IFluidDataStoreFactory;
|
|
787
784
|
const entry = await this.factoryFromPackagePath(this.pkg);
|
|
788
|
-
(0,
|
|
789
|
-
(0,
|
|
785
|
+
(0, core_utils_1.assert)(entry.factory === factory, 0x156 /* "Unexpected factory for package path" */);
|
|
786
|
+
(0, core_utils_1.assert)(this.registry === undefined, 0x157 /* "datastore registry already attached" */);
|
|
790
787
|
this.registry = entry.registry;
|
|
791
788
|
super.bindRuntime(dataStoreChannel);
|
|
792
789
|
// Load the handle to the data store's entryPoint to make sure that for a detached data store, the entryPoint
|
|
@@ -796,7 +793,7 @@ class LocalDetachedFluidDataStoreContext extends LocalFluidDataStoreContextBase
|
|
|
796
793
|
// of data store factories tends to construct the data object (at least kick off an async method that returns
|
|
797
794
|
// it); that code moved to the entryPoint initialization function, so we want to ensure it still executes
|
|
798
795
|
// before the data store is attached.
|
|
799
|
-
await
|
|
796
|
+
await dataStoreChannel.entryPoint?.get();
|
|
800
797
|
if (await this.isRoot()) {
|
|
801
798
|
dataStoreChannel.makeVisibleAndAttachGraph();
|
|
802
799
|
}
|