@fluidframework/container-runtime 2.0.0-dev.4.1.0.148229 → 2.0.0-dev.4.3.0.157531
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +58 -0
- package/README.md +69 -0
- package/dist/blobManager.d.ts +6 -14
- package/dist/blobManager.d.ts.map +1 -1
- package/dist/blobManager.js +50 -37
- package/dist/blobManager.js.map +1 -1
- package/dist/containerRuntime.d.ts +47 -4
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +203 -49
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts +2 -1
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +3 -0
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStores.d.ts +5 -5
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +3 -6
- package/dist/dataStores.js.map +1 -1
- package/dist/gc/garbageCollection.d.ts.map +1 -1
- package/dist/gc/garbageCollection.js +5 -5
- package/dist/gc/garbageCollection.js.map +1 -1
- package/dist/gc/gcConfigs.d.ts.map +1 -1
- package/dist/gc/gcConfigs.js +1 -3
- package/dist/gc/gcConfigs.js.map +1 -1
- package/dist/gc/gcDefinitions.js +1 -1
- package/dist/gc/gcDefinitions.js.map +1 -1
- package/dist/gc/gcHelpers.d.ts.map +1 -1
- package/dist/gc/gcHelpers.js +6 -6
- package/dist/gc/gcHelpers.js.map +1 -1
- package/dist/id-compressor/appendOnlySortedMap.d.ts +146 -0
- package/dist/id-compressor/appendOnlySortedMap.d.ts.map +1 -0
- package/dist/id-compressor/appendOnlySortedMap.js +360 -0
- package/dist/id-compressor/appendOnlySortedMap.js.map +1 -0
- package/dist/id-compressor/idCompressor.d.ts +279 -0
- package/dist/id-compressor/idCompressor.d.ts.map +1 -0
- package/dist/id-compressor/idCompressor.js +1258 -0
- package/dist/id-compressor/idCompressor.js.map +1 -0
- package/dist/id-compressor/idRange.d.ts +11 -0
- package/dist/id-compressor/idRange.d.ts.map +1 -0
- package/dist/id-compressor/idRange.js +29 -0
- package/dist/id-compressor/idRange.js.map +1 -0
- package/dist/id-compressor/index.d.ts +14 -0
- package/dist/id-compressor/index.d.ts.map +1 -0
- package/dist/id-compressor/index.js +38 -0
- package/dist/id-compressor/index.js.map +1 -0
- package/dist/id-compressor/numericUuid.d.ts +59 -0
- package/dist/id-compressor/numericUuid.d.ts.map +1 -0
- package/dist/id-compressor/numericUuid.js +325 -0
- package/dist/id-compressor/numericUuid.js.map +1 -0
- package/dist/id-compressor/sessionIdNormalizer.d.ts +138 -0
- package/dist/id-compressor/sessionIdNormalizer.d.ts.map +1 -0
- package/dist/id-compressor/sessionIdNormalizer.js +488 -0
- package/dist/id-compressor/sessionIdNormalizer.js.map +1 -0
- package/dist/id-compressor/utils.d.ts +57 -0
- package/dist/id-compressor/utils.d.ts.map +1 -0
- package/dist/id-compressor/utils.js +90 -0
- package/dist/id-compressor/utils.js.map +1 -0
- package/dist/id-compressor/uuidUtilities.d.ts +30 -0
- package/dist/id-compressor/uuidUtilities.d.ts.map +1 -0
- package/dist/id-compressor/uuidUtilities.js +106 -0
- package/dist/id-compressor/uuidUtilities.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/opLifecycle/batchManager.d.ts +9 -2
- package/dist/opLifecycle/batchManager.d.ts.map +1 -1
- package/dist/opLifecycle/batchManager.js +21 -2
- package/dist/opLifecycle/batchManager.js.map +1 -1
- package/dist/opLifecycle/index.d.ts +2 -1
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js +3 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/dist/opLifecycle/opDecompressor.js +2 -1
- package/dist/opLifecycle/opDecompressor.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts +14 -0
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/dist/opLifecycle/opGroupingManager.js +61 -0
- package/dist/opLifecycle/opGroupingManager.js.map +1 -0
- package/dist/opLifecycle/opSplitter.d.ts +1 -1
- package/dist/opLifecycle/opSplitter.d.ts.map +1 -1
- package/dist/opLifecycle/opSplitter.js +5 -6
- package/dist/opLifecycle/opSplitter.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +4 -2
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +37 -25
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/dist/opLifecycle/remoteMessageProcessor.js +30 -20
- package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts +1 -1
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +11 -3
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/summary/index.d.ts +2 -2
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +4 -1
- package/dist/summary/index.js.map +1 -1
- package/dist/summary/orderedClientElection.d.ts +1 -0
- package/dist/summary/orderedClientElection.d.ts.map +1 -1
- package/dist/summary/orderedClientElection.js +19 -0
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +4 -3
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +65 -66
- package/dist/summary/runningSummarizer.js.map +1 -1
- package/dist/summary/summarizer.d.ts.map +1 -1
- package/dist/summary/summarizer.js +1 -5
- package/dist/summary/summarizer.js.map +1 -1
- package/dist/summary/summarizerHeuristics.d.ts +1 -0
- package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summary/summarizerHeuristics.js +3 -0
- package/dist/summary/summarizerHeuristics.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js +1 -1
- package/dist/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts +128 -2
- package/dist/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js +4 -3
- package/dist/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/dist/summary/summarizerTypes.d.ts +14 -2
- package/dist/summary/summarizerTypes.d.ts.map +1 -1
- package/dist/summary/summarizerTypes.js.map +1 -1
- package/dist/summary/summaryFormat.d.ts +3 -0
- package/dist/summary/summaryFormat.d.ts.map +1 -1
- package/dist/summary/summaryFormat.js +3 -1
- package/dist/summary/summaryFormat.js.map +1 -1
- package/dist/summary/summaryGenerator.d.ts +28 -2
- package/dist/summary/summaryGenerator.d.ts.map +1 -1
- package/dist/summary/summaryGenerator.js +19 -16
- package/dist/summary/summaryGenerator.js.map +1 -1
- package/dist/summary/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +2 -0
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/blobManager.d.ts +6 -14
- package/lib/blobManager.d.ts.map +1 -1
- package/lib/blobManager.js +50 -37
- package/lib/blobManager.js.map +1 -1
- package/lib/containerRuntime.d.ts +47 -4
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +187 -52
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStoreContext.d.ts +2 -1
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +3 -0
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStores.d.ts +5 -5
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +3 -6
- package/lib/dataStores.js.map +1 -1
- package/lib/gc/garbageCollection.d.ts.map +1 -1
- package/lib/gc/garbageCollection.js +5 -5
- package/lib/gc/garbageCollection.js.map +1 -1
- package/lib/gc/gcConfigs.d.ts.map +1 -1
- package/lib/gc/gcConfigs.js +1 -3
- package/lib/gc/gcConfigs.js.map +1 -1
- package/lib/gc/gcDefinitions.js +1 -1
- package/lib/gc/gcDefinitions.js.map +1 -1
- package/lib/gc/gcHelpers.d.ts.map +1 -1
- package/lib/gc/gcHelpers.js +6 -6
- package/lib/gc/gcHelpers.js.map +1 -1
- package/lib/id-compressor/appendOnlySortedMap.d.ts +146 -0
- package/lib/id-compressor/appendOnlySortedMap.d.ts.map +1 -0
- package/lib/id-compressor/appendOnlySortedMap.js +355 -0
- package/lib/id-compressor/appendOnlySortedMap.js.map +1 -0
- package/lib/id-compressor/idCompressor.d.ts +279 -0
- package/lib/id-compressor/idCompressor.d.ts.map +1 -0
- package/lib/id-compressor/idCompressor.js +1248 -0
- package/lib/id-compressor/idCompressor.js.map +1 -0
- package/lib/id-compressor/idRange.d.ts +11 -0
- package/lib/id-compressor/idRange.d.ts.map +1 -0
- package/lib/id-compressor/idRange.js +25 -0
- package/lib/id-compressor/idRange.js.map +1 -0
- package/lib/id-compressor/index.d.ts +14 -0
- package/lib/id-compressor/index.d.ts.map +1 -0
- package/lib/id-compressor/index.js +14 -0
- package/lib/id-compressor/index.js.map +1 -0
- package/lib/id-compressor/numericUuid.d.ts +59 -0
- package/lib/id-compressor/numericUuid.d.ts.map +1 -0
- package/lib/id-compressor/numericUuid.js +315 -0
- package/lib/id-compressor/numericUuid.js.map +1 -0
- package/lib/id-compressor/sessionIdNormalizer.d.ts +138 -0
- package/lib/id-compressor/sessionIdNormalizer.d.ts.map +1 -0
- package/lib/id-compressor/sessionIdNormalizer.js +484 -0
- package/lib/id-compressor/sessionIdNormalizer.js.map +1 -0
- package/lib/id-compressor/utils.d.ts +57 -0
- package/lib/id-compressor/utils.d.ts.map +1 -0
- package/lib/id-compressor/utils.js +79 -0
- package/lib/id-compressor/utils.js.map +1 -0
- package/lib/id-compressor/uuidUtilities.d.ts +30 -0
- package/lib/id-compressor/uuidUtilities.d.ts.map +1 -0
- package/lib/id-compressor/uuidUtilities.js +98 -0
- package/lib/id-compressor/uuidUtilities.js.map +1 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/opLifecycle/batchManager.d.ts +9 -2
- package/lib/opLifecycle/batchManager.d.ts.map +1 -1
- package/lib/opLifecycle/batchManager.js +19 -1
- package/lib/opLifecycle/batchManager.js.map +1 -1
- package/lib/opLifecycle/index.d.ts +2 -1
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js +1 -0
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opDecompressor.d.ts.map +1 -1
- package/lib/opLifecycle/opDecompressor.js +2 -1
- package/lib/opLifecycle/opDecompressor.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts +14 -0
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -0
- package/lib/opLifecycle/opGroupingManager.js +57 -0
- package/lib/opLifecycle/opGroupingManager.js.map +1 -0
- package/lib/opLifecycle/opSplitter.d.ts +1 -1
- package/lib/opLifecycle/opSplitter.d.ts.map +1 -1
- package/lib/opLifecycle/opSplitter.js +5 -6
- package/lib/opLifecycle/opSplitter.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +4 -2
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +38 -26
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.d.ts +4 -2
- package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
- package/lib/opLifecycle/remoteMessageProcessor.js +30 -20
- package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts +1 -1
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +11 -3
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/summary/index.d.ts +2 -2
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +2 -1
- package/lib/summary/index.js.map +1 -1
- package/lib/summary/orderedClientElection.d.ts +1 -0
- package/lib/summary/orderedClientElection.d.ts.map +1 -1
- package/lib/summary/orderedClientElection.js +19 -0
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +4 -3
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +65 -66
- package/lib/summary/runningSummarizer.js.map +1 -1
- package/lib/summary/summarizer.d.ts.map +1 -1
- package/lib/summary/summarizer.js +1 -5
- package/lib/summary/summarizer.js.map +1 -1
- package/lib/summary/summarizerHeuristics.d.ts +1 -0
- package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summary/summarizerHeuristics.js +3 -0
- package/lib/summary/summarizerHeuristics.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js +1 -1
- package/lib/summary/summarizerNode/summarizerNode.js.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts +128 -2
- package/lib/summary/summarizerNode/summarizerNodeWithGc.d.ts.map +1 -1
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js +3 -3
- package/lib/summary/summarizerNode/summarizerNodeWithGc.js.map +1 -1
- package/lib/summary/summarizerTypes.d.ts +14 -2
- package/lib/summary/summarizerTypes.d.ts.map +1 -1
- package/lib/summary/summarizerTypes.js.map +1 -1
- package/lib/summary/summaryFormat.d.ts +3 -0
- package/lib/summary/summaryFormat.d.ts.map +1 -1
- package/lib/summary/summaryFormat.js +2 -0
- package/lib/summary/summaryFormat.js.map +1 -1
- package/lib/summary/summaryGenerator.d.ts +28 -2
- package/lib/summary/summaryGenerator.d.ts.map +1 -1
- package/lib/summary/summaryGenerator.js +17 -15
- package/lib/summary/summaryGenerator.js.map +1 -1
- package/lib/summary/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +2 -0
- package/lib/summary/summaryManager.js.map +1 -1
- package/package.json +29 -17
- package/src/blobManager.ts +64 -41
- package/src/containerRuntime.ts +294 -65
- package/src/dataStoreContext.ts +6 -0
- package/src/dataStores.ts +4 -7
- package/src/gc/garbageCollection.ts +7 -6
- package/src/gc/gcConfigs.ts +1 -3
- package/src/gc/gcDefinitions.ts +1 -1
- package/src/gc/gcHelpers.ts +9 -6
- package/src/id-compressor/README.md +3 -0
- package/src/id-compressor/appendOnlySortedMap.ts +427 -0
- package/src/id-compressor/idCompressor.ts +1854 -0
- package/src/id-compressor/idRange.ts +35 -0
- package/src/id-compressor/index.ts +35 -0
- package/src/id-compressor/numericUuid.ts +383 -0
- package/src/id-compressor/sessionIdNormalizer.ts +609 -0
- package/src/id-compressor/utils.ts +114 -0
- package/src/id-compressor/uuidUtilities.ts +123 -0
- package/src/index.ts +1 -0
- package/src/opLifecycle/README.md +119 -0
- package/src/opLifecycle/batchManager.ts +35 -2
- package/src/opLifecycle/index.ts +2 -1
- package/src/opLifecycle/opDecompressor.ts +1 -0
- package/src/opLifecycle/opGroupingManager.ts +82 -0
- package/src/opLifecycle/opSplitter.ts +1 -5
- package/src/opLifecycle/outbox.ts +64 -26
- package/src/opLifecycle/remoteMessageProcessor.ts +38 -22
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +21 -7
- package/src/summary/index.ts +2 -1
- package/src/summary/orderedClientElection.ts +17 -1
- package/src/summary/runningSummarizer.ts +78 -77
- package/src/summary/summarizer.ts +0 -8
- package/src/summary/summarizerHeuristics.ts +4 -0
- package/src/summary/summarizerNode/summarizerNode.ts +1 -1
- package/src/summary/summarizerNode/summarizerNodeWithGc.ts +3 -3
- package/src/summary/summarizerTypes.ts +20 -3
- package/src/summary/summaryFormat.ts +4 -0
- package/src/summary/summaryGenerator.ts +22 -16
- package/src/summary/summaryManager.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../src/containerRuntime.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../src/containerRuntime.ts"],"names":[],"mappings":"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"}
|
package/lib/containerRuntime.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AttachState, LoaderHeader, } from "@fluidframework/container-definitions";
|
|
2
|
-
import { assert, LazyPromise, Trace, TypedEventEmitter, unreachableCase, } from "@fluidframework/common-utils";
|
|
2
|
+
import { assert, delay, LazyPromise, Trace, TypedEventEmitter, unreachableCase, } from "@fluidframework/common-utils";
|
|
3
3
|
import { ChildLogger, raiseConnectedEvent, PerformanceEvent, TaggedLoggerAdapter, loggerToMonitoringContext, wrapError, } from "@fluidframework/telemetry-utils";
|
|
4
4
|
import { DriverHeader, FetchSource, } from "@fluidframework/driver-definitions";
|
|
5
5
|
import { readAndParse } from "@fluidframework/driver-utils";
|
|
@@ -15,13 +15,13 @@ import { PendingStateManager } from "./pendingStateManager";
|
|
|
15
15
|
import { pkgVersion } from "./packageVersion";
|
|
16
16
|
import { BlobManager } from "./blobManager";
|
|
17
17
|
import { DataStores, getSummaryForDatastores } from "./dataStores";
|
|
18
|
-
import { aliasBlobName, blobsTreeName, chunksBlobName, createRootSummarizerNodeWithGC, electedSummarizerBlobName, extractSummaryMetadataMessage, metadataBlobName, Summarizer, SummaryManager, wrapSummaryInChannelsTree, SummaryCollection, OrderedClientCollection, OrderedClientElection, SummarizerClientElection, summarizerClientType, RunWhileConnectedCoordinator, } from "./summary";
|
|
18
|
+
import { aliasBlobName, blobsTreeName, chunksBlobName, createRootSummarizerNodeWithGC, electedSummarizerBlobName, extractSummaryMetadataMessage, idCompressorBlobName, metadataBlobName, Summarizer, SummaryManager, wrapSummaryInChannelsTree, SummaryCollection, OrderedClientCollection, OrderedClientElection, SummarizerClientElection, summarizerClientType, RunWhileConnectedCoordinator, } from "./summary";
|
|
19
19
|
import { formExponentialFn, Throttler } from "./throttler";
|
|
20
20
|
import { GarbageCollector, GCNodeType, gcTombstoneGenerationOptionName, shouldAllowGcTombstoneEnforcement, trimLeadingAndTrailingSlashes, } from "./gc";
|
|
21
21
|
import { channelToDataStore, isDataStoreAliasMessage } from "./dataStore";
|
|
22
22
|
import { BindBatchTracker } from "./batchTracker";
|
|
23
23
|
import { ScheduleManager } from "./scheduleManager";
|
|
24
|
-
import { OpCompressor, OpDecompressor, Outbox, OpSplitter, RemoteMessageProcessor, } from "./opLifecycle";
|
|
24
|
+
import { OpCompressor, OpDecompressor, Outbox, OpSplitter, RemoteMessageProcessor, OpGroupingManager, } from "./opLifecycle";
|
|
25
25
|
import { DeltaManagerSummarizerProxy } from "./deltaManagerSummarizerProxy";
|
|
26
26
|
export var ContainerMessageType;
|
|
27
27
|
(function (ContainerMessageType) {
|
|
@@ -37,6 +37,12 @@ export var ContainerMessageType;
|
|
|
37
37
|
ContainerMessageType["Rejoin"] = "rejoin";
|
|
38
38
|
// Sets the alias of a root data store
|
|
39
39
|
ContainerMessageType["Alias"] = "alias";
|
|
40
|
+
/**
|
|
41
|
+
* An op containing an IdRange of Ids allocated using the runtime's IdCompressor since
|
|
42
|
+
* the last allocation op was sent.
|
|
43
|
+
* See the [IdCompressor README](./id-compressor/README.md) for more details.
|
|
44
|
+
*/
|
|
45
|
+
ContainerMessageType["IdAllocation"] = "idAllocation";
|
|
40
46
|
})(ContainerMessageType || (ContainerMessageType = {}));
|
|
41
47
|
export const DefaultSummaryConfiguration = {
|
|
42
48
|
state: "enabled",
|
|
@@ -45,7 +51,7 @@ export const DefaultSummaryConfiguration = {
|
|
|
45
51
|
maxTime: 60 * 1000,
|
|
46
52
|
maxOps: 100,
|
|
47
53
|
minOpsForLastSummaryAttempt: 10,
|
|
48
|
-
maxAckWaitTime:
|
|
54
|
+
maxAckWaitTime: 3 * 60 * 1000,
|
|
49
55
|
maxOpsSinceLastSummary: 7000,
|
|
50
56
|
initialSummarizerDelayMs: 5 * 1000,
|
|
51
57
|
nonRuntimeOpWeight: 0.1,
|
|
@@ -92,6 +98,12 @@ const defaultCompressionConfig = {
|
|
|
92
98
|
compressionAlgorithm: CompressionAlgorithms.lz4,
|
|
93
99
|
};
|
|
94
100
|
const defaultChunkSizeInBytes = 204800;
|
|
101
|
+
/**
|
|
102
|
+
* Instead of refreshing from latest because we do not have 100% confidence in the state
|
|
103
|
+
* of the current system, we should close the summarizer and let it recover.
|
|
104
|
+
* This delay's goal is to prevent tight restart loops
|
|
105
|
+
*/
|
|
106
|
+
const defaultCloseSummarizerDelayMs = 10000; // 10 seconds
|
|
95
107
|
/**
|
|
96
108
|
* @deprecated - use ContainerRuntimeMessage instead
|
|
97
109
|
*/
|
|
@@ -138,8 +150,8 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
138
150
|
/**
|
|
139
151
|
* @internal
|
|
140
152
|
*/
|
|
141
|
-
constructor(context, registry, metadata, electedSummarizerData, chunks, dataStoreAliasMap, runtimeOptions, containerScope, logger, existing, blobManagerSnapshot, _storage, requestHandler, summaryConfiguration, initializeEntryPoint) {
|
|
142
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
153
|
+
constructor(context, registry, metadata, electedSummarizerData, chunks, dataStoreAliasMap, runtimeOptions, containerScope, logger, existing, blobManagerSnapshot, _storage, idCompressor, requestHandler, summaryConfiguration, initializeEntryPoint) {
|
|
154
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
143
155
|
if (summaryConfiguration === void 0) { summaryConfiguration = Object.assign(Object.assign({}, DefaultSummaryConfiguration), (_a = runtimeOptions.summaryOptions) === null || _a === void 0 ? void 0 : _a.summaryConfigOverrides); }
|
|
144
156
|
super();
|
|
145
157
|
this.context = context;
|
|
@@ -201,6 +213,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
201
213
|
};
|
|
202
214
|
this.innerDeltaManager = context.deltaManager;
|
|
203
215
|
this.deltaManager = new DeltaManagerSummarizerProxy(context.deltaManager);
|
|
216
|
+
this.mc = loggerToMonitoringContext(ChildLogger.create(this.logger, "ContainerRuntime"));
|
|
204
217
|
let loadSummaryNumber;
|
|
205
218
|
// Get the container creation metadata. For new container, we initialize these. For existing containers,
|
|
206
219
|
// get the values from the metadata blob.
|
|
@@ -212,6 +225,9 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
212
225
|
// summaryNumber was renamed from summaryCount. For older docs that haven't been opened for a long time,
|
|
213
226
|
// the count is reset to 0.
|
|
214
227
|
loadSummaryNumber = (_b = metadata === null || metadata === void 0 ? void 0 : metadata.summaryNumber) !== null && _b !== void 0 ? _b : 0;
|
|
228
|
+
// Enabling the IdCompressor is a one-way operation and we only want to
|
|
229
|
+
// allow new containers to turn it on
|
|
230
|
+
this.idCompressorEnabled = (_c = metadata === null || metadata === void 0 ? void 0 : metadata.idCompressorEnabled) !== null && _c !== void 0 ? _c : false;
|
|
215
231
|
}
|
|
216
232
|
else {
|
|
217
233
|
this.createContainerMetadata = {
|
|
@@ -219,12 +235,13 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
219
235
|
createContainerTimestamp: Date.now(),
|
|
220
236
|
};
|
|
221
237
|
loadSummaryNumber = 0;
|
|
238
|
+
this.idCompressorEnabled =
|
|
239
|
+
(_d = this.mc.config.getBoolean("Fluid.ContainerRuntime.IdCompressorEnabled")) !== null && _d !== void 0 ? _d : idCompressor !== undefined;
|
|
222
240
|
}
|
|
223
241
|
this.nextSummaryNumber = loadSummaryNumber + 1;
|
|
224
242
|
this.messageAtLastSummary = metadata === null || metadata === void 0 ? void 0 : metadata.message;
|
|
225
243
|
this._connected = this.context.connected;
|
|
226
|
-
this.gcTombstoneEnforcementAllowed = shouldAllowGcTombstoneEnforcement((
|
|
227
|
-
this.mc = loggerToMonitoringContext(ChildLogger.create(this.logger, "ContainerRuntime"));
|
|
244
|
+
this.gcTombstoneEnforcementAllowed = shouldAllowGcTombstoneEnforcement((_e = metadata === null || metadata === void 0 ? void 0 : metadata.gcFeatureMatrix) === null || _e === void 0 ? void 0 : _e.tombstoneGeneration /* persisted */, this.runtimeOptions.gcOptions[gcTombstoneGenerationOptionName] /* current */);
|
|
228
245
|
this.mc.logger.sendTelemetryEvent({
|
|
229
246
|
eventName: "GCFeatureMatrix",
|
|
230
247
|
metadataValue: JSON.stringify(metadata === null || metadata === void 0 ? void 0 : metadata.gcFeatureMatrix),
|
|
@@ -232,11 +249,12 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
232
249
|
gcOptions_gcTombstoneGeneration: this.runtimeOptions.gcOptions[gcTombstoneGenerationOptionName],
|
|
233
250
|
}),
|
|
234
251
|
});
|
|
235
|
-
this.telemetryDocumentId = (
|
|
252
|
+
this.telemetryDocumentId = (_f = metadata === null || metadata === void 0 ? void 0 : metadata.telemetryDocumentId) !== null && _f !== void 0 ? _f : uuid();
|
|
236
253
|
this.disableAttachReorder = this.mc.config.getBoolean("Fluid.ContainerRuntime.disableAttachOpReorder");
|
|
237
254
|
const disableChunking = this.mc.config.getBoolean("Fluid.ContainerRuntime.CompressionChunkingDisabled");
|
|
255
|
+
const opGroupingManager = new OpGroupingManager(this.groupedBatchingEnabled);
|
|
238
256
|
const opSplitter = new OpSplitter(chunks, this.context.submitBatchFn, disableChunking === true ? Number.POSITIVE_INFINITY : runtimeOptions.chunkSizeInBytes, runtimeOptions.maxBatchSizeInBytes, this.mc.logger);
|
|
239
|
-
this.remoteMessageProcessor = new RemoteMessageProcessor(opSplitter, new OpDecompressor(this.mc.logger));
|
|
257
|
+
this.remoteMessageProcessor = new RemoteMessageProcessor(opSplitter, new OpDecompressor(this.mc.logger), opGroupingManager);
|
|
240
258
|
this.handleContext = new ContainerFluidHandleContext("", this);
|
|
241
259
|
if (this.summaryConfiguration.state === "enabled") {
|
|
242
260
|
this.validateSummaryHeuristicConfiguration(this.summaryConfiguration);
|
|
@@ -250,10 +268,13 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
250
268
|
this.heuristicsDisabled = this.isHeuristicsDisabled();
|
|
251
269
|
this.maxOpsSinceLastSummary = this.getMaxOpsSinceLastSummary();
|
|
252
270
|
this.initialSummarizerDelayMs = this.getInitialSummarizerDelayMs();
|
|
271
|
+
if (this.idCompressorEnabled) {
|
|
272
|
+
this.idCompressor = idCompressor;
|
|
273
|
+
}
|
|
253
274
|
this.maxConsecutiveReconnects =
|
|
254
|
-
(
|
|
275
|
+
(_g = this.mc.config.getNumber(maxConsecutiveReconnectsKey)) !== null && _g !== void 0 ? _g : this.defaultMaxConsecutiveReconnects;
|
|
255
276
|
if (runtimeOptions.flushMode === FlushModeExperimental.Async &&
|
|
256
|
-
((
|
|
277
|
+
((_h = context.supportedFeatures) === null || _h === void 0 ? void 0 : _h.get("referenceSequenceNumbers")) !== true) {
|
|
257
278
|
// The loader does not support reference sequence numbers, falling back on FlushMode.TurnBased
|
|
258
279
|
this.mc.logger.sendErrorEvent({ eventName: "FlushModeFallback" });
|
|
259
280
|
this._flushMode = FlushMode.TurnBased;
|
|
@@ -262,7 +283,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
262
283
|
this._flushMode = runtimeOptions.flushMode;
|
|
263
284
|
}
|
|
264
285
|
const pendingRuntimeState = context.pendingLocalState;
|
|
265
|
-
const maxSnapshotCacheDurationMs = (
|
|
286
|
+
const maxSnapshotCacheDurationMs = (_k = (_j = this._storage) === null || _j === void 0 ? void 0 : _j.policies) === null || _k === void 0 ? void 0 : _k.maximumCacheDurationMs;
|
|
266
287
|
if (maxSnapshotCacheDurationMs !== undefined &&
|
|
267
288
|
maxSnapshotCacheDurationMs > 5 * 24 * 60 * 60 * 1000) {
|
|
268
289
|
// This is a runtime enforcement of what's already explicit in the policy's type itself,
|
|
@@ -319,7 +340,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
319
340
|
blobId,
|
|
320
341
|
});
|
|
321
342
|
}
|
|
322
|
-
}, (blobPath) => this.garbageCollector.nodeUpdated(blobPath, "Loaded"), (blobPath) => this.garbageCollector.isNodeDeleted(blobPath), this, pendingRuntimeState === null || pendingRuntimeState === void 0 ? void 0 : pendingRuntimeState.pendingAttachmentBlobs, () => this.
|
|
343
|
+
}, (blobPath) => this.garbageCollector.nodeUpdated(blobPath, "Loaded"), (blobPath) => this.garbageCollector.isNodeDeleted(blobPath), this, pendingRuntimeState === null || pendingRuntimeState === void 0 ? void 0 : pendingRuntimeState.pendingAttachmentBlobs, (error) => this.closeFn(error));
|
|
323
344
|
this.scheduleManager = new ScheduleManager(context.deltaManager, this, () => this.clientId, ChildLogger.create(this.logger, "ScheduleManager"));
|
|
324
345
|
this.pendingStateManager = new PendingStateManager({
|
|
325
346
|
applyStashedOp: this.applyStashedOp.bind(this),
|
|
@@ -350,10 +371,18 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
350
371
|
disablePartialFlush: disablePartialFlush === true,
|
|
351
372
|
},
|
|
352
373
|
logger: this.mc.logger,
|
|
374
|
+
groupingManager: opGroupingManager,
|
|
375
|
+
getCurrentSequenceNumbers: () => ({
|
|
376
|
+
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
377
|
+
clientSequenceNumber: this._processedClientSequenceNumber,
|
|
378
|
+
}),
|
|
353
379
|
});
|
|
354
380
|
this.context.quorum.on("removeMember", (clientId) => {
|
|
355
381
|
this.remoteMessageProcessor.clearPartialMessagesFor(clientId);
|
|
356
382
|
});
|
|
383
|
+
this.summaryStateUpdateMethod = this.mc.config.getString("Fluid.ContainerRuntime.Test.SummaryStateUpdateMethod");
|
|
384
|
+
const closeSummarizerDelayOverride = this.mc.config.getNumber("Fluid.ContainerRuntime.Test.CloseSummarizerDelayOverrideMs");
|
|
385
|
+
this.closeSummarizerDelayMs = closeSummarizerDelayOverride !== null && closeSummarizerDelayOverride !== void 0 ? closeSummarizerDelayOverride : defaultCloseSummarizerDelayMs;
|
|
357
386
|
this.summaryCollection = new SummaryCollection(this.deltaManager, this.logger);
|
|
358
387
|
this.dirtyContainer =
|
|
359
388
|
this.context.attachState !== AttachState.Attached ||
|
|
@@ -431,7 +460,10 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
431
460
|
disableChunking,
|
|
432
461
|
disableAttachReorder: this.disableAttachReorder,
|
|
433
462
|
disablePartialFlush,
|
|
434
|
-
|
|
463
|
+
idCompressorEnabled: this.idCompressorEnabled,
|
|
464
|
+
summaryStateUpdateMethod: this.summaryStateUpdateMethod,
|
|
465
|
+
closeSummarizerDelayOverride,
|
|
466
|
+
}), telemetryDocumentId: this.telemetryDocumentId, groupedBatchingEnabled: this.groupedBatchingEnabled }));
|
|
435
467
|
ReportOpPerfTelemetry(this.context.clientId, this.deltaManager, this.logger);
|
|
436
468
|
BindBatchTracker(this, this.logger);
|
|
437
469
|
this.entryPoint = new LazyPromise(async () => {
|
|
@@ -490,7 +522,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
490
522
|
* This object should provide all the functionality that the Container is expected to provide to the loader layer.
|
|
491
523
|
*/
|
|
492
524
|
static async loadRuntime(params) {
|
|
493
|
-
var _a, _b, _c, _d;
|
|
525
|
+
var _a, _b, _c, _d, _e, _f;
|
|
494
526
|
const { context, registryEntries, existing, requestHandler, runtimeOptions = {}, containerScope = {}, containerRuntimeCtor = ContainerRuntime, initializeEntryPoint, } = params;
|
|
495
527
|
// If taggedLogger exists, use it. Otherwise, wrap the vanilla logger:
|
|
496
528
|
// back-compat: Remove the TaggedLoggerAdapter fallback once all the host are using loader > 0.45
|
|
@@ -501,7 +533,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
501
533
|
runtimeVersion: pkgVersion,
|
|
502
534
|
},
|
|
503
535
|
});
|
|
504
|
-
const { summaryOptions = {}, gcOptions = {}, loadSequenceNumberVerification = "close", flushMode = defaultFlushMode, compressionOptions = defaultCompressionConfig, maxBatchSizeInBytes = defaultMaxBatchSizeInBytes, chunkSizeInBytes = defaultChunkSizeInBytes, enableOpReentryCheck = false, } = runtimeOptions;
|
|
536
|
+
const { summaryOptions = {}, gcOptions = {}, loadSequenceNumberVerification = "close", flushMode = defaultFlushMode, compressionOptions = defaultCompressionConfig, maxBatchSizeInBytes = defaultMaxBatchSizeInBytes, enableRuntimeIdCompressor = false, chunkSizeInBytes = defaultChunkSizeInBytes, enableOpReentryCheck = false, enableGroupedBatching = false, } = runtimeOptions;
|
|
505
537
|
const registry = new FluidDataStoreRegistry(registryEntries);
|
|
506
538
|
const tryFetchBlob = async (blobName) => {
|
|
507
539
|
var _a;
|
|
@@ -513,11 +545,12 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
513
545
|
return readAndParse(context.storage, blobId);
|
|
514
546
|
}
|
|
515
547
|
};
|
|
516
|
-
const [chunks, metadata, electedSummarizerData, aliases] = await Promise.all([
|
|
548
|
+
const [chunks, metadata, electedSummarizerData, aliases, serializedIdCompressor] = await Promise.all([
|
|
517
549
|
tryFetchBlob(chunksBlobName),
|
|
518
550
|
tryFetchBlob(metadataBlobName),
|
|
519
551
|
tryFetchBlob(electedSummarizerBlobName),
|
|
520
552
|
tryFetchBlob(aliasBlobName),
|
|
553
|
+
tryFetchBlob(idCompressorBlobName),
|
|
521
554
|
]);
|
|
522
555
|
const loadExisting = existing === true || context.existing === true;
|
|
523
556
|
// read snapshot blobs needed for BlobManager to load
|
|
@@ -549,6 +582,15 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
549
582
|
}
|
|
550
583
|
}
|
|
551
584
|
}
|
|
585
|
+
const idCompressorEnabled = (_f = (_e = metadata === null || metadata === void 0 ? void 0 : metadata.idCompressorEnabled) !== null && _e !== void 0 ? _e : runtimeOptions.enableRuntimeIdCompressor) !== null && _f !== void 0 ? _f : false;
|
|
586
|
+
let idCompressor;
|
|
587
|
+
if (idCompressorEnabled) {
|
|
588
|
+
const { IdCompressor, createSessionId } = await import("./id-compressor");
|
|
589
|
+
idCompressor =
|
|
590
|
+
serializedIdCompressor !== undefined
|
|
591
|
+
? IdCompressor.deserialize(serializedIdCompressor, createSessionId())
|
|
592
|
+
: new IdCompressor(createSessionId(), logger);
|
|
593
|
+
}
|
|
552
594
|
const runtime = new containerRuntimeCtor(context, registry, metadata, electedSummarizerData, chunks !== null && chunks !== void 0 ? chunks : [], aliases !== null && aliases !== void 0 ? aliases : [], {
|
|
553
595
|
summaryOptions,
|
|
554
596
|
gcOptions,
|
|
@@ -557,8 +599,10 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
557
599
|
compressionOptions,
|
|
558
600
|
maxBatchSizeInBytes,
|
|
559
601
|
chunkSizeInBytes,
|
|
602
|
+
enableRuntimeIdCompressor,
|
|
560
603
|
enableOpReentryCheck,
|
|
561
|
-
|
|
604
|
+
enableGroupedBatching,
|
|
605
|
+
}, containerScope, logger, loadExisting, blobManagerSnapshot, context.storage, idCompressor, requestHandler, undefined, // summaryConfiguration
|
|
562
606
|
initializeEntryPoint);
|
|
563
607
|
// It's possible to have ops with a reference sequence number of 0. Op sequence numbers start
|
|
564
608
|
// at 1, so we won't see a replayed saved op with a sequence number of 0.
|
|
@@ -794,12 +838,17 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
794
838
|
summaryNumber: this.nextSummaryNumber++, summaryFormatVersion: 1 }), this.garbageCollector.getMetadata()), {
|
|
795
839
|
// The last message processed at the time of summary. If there are no new messages, use the message from the
|
|
796
840
|
// last summary.
|
|
797
|
-
message: (_a = extractSummaryMetadataMessage(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary, telemetryDocumentId: this.telemetryDocumentId });
|
|
841
|
+
message: (_a = extractSummaryMetadataMessage(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary, telemetryDocumentId: this.telemetryDocumentId, idCompressorEnabled: this.idCompressorEnabled ? true : undefined });
|
|
798
842
|
addBlobToSummary(summaryTree, metadataBlobName, JSON.stringify(metadata));
|
|
799
843
|
}
|
|
800
844
|
addContainerStateToSummary(summaryTree, fullTree, trackState, telemetryContext) {
|
|
801
845
|
var _a;
|
|
802
846
|
this.addMetadataToSummary(summaryTree);
|
|
847
|
+
if (this.idCompressorEnabled) {
|
|
848
|
+
assert(this.idCompressor !== undefined, 0x67a /* IdCompressor should be defined if enabled */);
|
|
849
|
+
const idCompressorState = JSON.stringify(this.idCompressor.serialize(false));
|
|
850
|
+
addBlobToSummary(summaryTree, idCompressorBlobName, idCompressorState);
|
|
851
|
+
}
|
|
803
852
|
if (this.remoteMessageProcessor.partialMessages.size > 0) {
|
|
804
853
|
const content = JSON.stringify([...this.remoteMessageProcessor.partialMessages]);
|
|
805
854
|
addBlobToSummary(summaryTree, chunksBlobName, content);
|
|
@@ -881,12 +930,28 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
881
930
|
// Officially transition from the old state to the new state.
|
|
882
931
|
this.updateDocumentDirtyState(newState);
|
|
883
932
|
}
|
|
884
|
-
|
|
933
|
+
/**
|
|
934
|
+
* Updates the runtime's IdCompressor with the stashed state present in the given op. This is a bit of a
|
|
935
|
+
* hack and is unnecessarily expensive. As it stands, every locally stashed op (all ops that get stored in
|
|
936
|
+
* the PendingStateManager) will store their serialized representation locally until ack'd. Upon receiving
|
|
937
|
+
* this stashed state, the IdCompressor blindly deserializes to the stashed state and assumes the session.
|
|
938
|
+
* Technically only the last stashed state is needed to do this correctly, but we would have to write some
|
|
939
|
+
* more hacky code to modify the batch before it gets sent out.
|
|
940
|
+
* @param content - An IdAllocationOp with "stashedState", which is a representation of un-ack'd local state.
|
|
941
|
+
*/
|
|
942
|
+
async applyStashedIdAllocationOp(op) {
|
|
943
|
+
const { IdCompressor } = await import("./id-compressor");
|
|
944
|
+
this.idCompressor = IdCompressor.deserialize(op.stashedState);
|
|
945
|
+
}
|
|
946
|
+
async applyStashedOp(type, contents) {
|
|
885
947
|
switch (type) {
|
|
886
948
|
case ContainerMessageType.FluidDataStoreOp:
|
|
887
|
-
return this.dataStores.applyStashedOp(
|
|
949
|
+
return this.dataStores.applyStashedOp(contents);
|
|
888
950
|
case ContainerMessageType.Attach:
|
|
889
|
-
return this.dataStores.applyStashedAttachOp(
|
|
951
|
+
return this.dataStores.applyStashedAttachOp(contents);
|
|
952
|
+
case ContainerMessageType.IdAllocation:
|
|
953
|
+
assert(this.idCompressor !== undefined, 0x67b /* IdCompressor should be defined if enabled */);
|
|
954
|
+
return this.applyStashedIdAllocationOp(contents);
|
|
890
955
|
case ContainerMessageType.Alias:
|
|
891
956
|
case ContainerMessageType.BlobAttach:
|
|
892
957
|
return;
|
|
@@ -965,7 +1030,6 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
965
1030
|
await this.pendingStateManager.applyStashedOpsAt(message.sequenceNumber);
|
|
966
1031
|
}
|
|
967
1032
|
process(messageArg, local) {
|
|
968
|
-
var _a;
|
|
969
1033
|
this.verifyNotClosed();
|
|
970
1034
|
// Whether or not the message is actually a runtime message.
|
|
971
1035
|
// It may be a legacy runtime message (ie already unpacked and ContainerMessageType)
|
|
@@ -973,11 +1037,17 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
973
1037
|
const runtimeMessage = messageArg.type === MessageType.Operation;
|
|
974
1038
|
// Do shallow copy of message, as the processing flow will modify it.
|
|
975
1039
|
const messageCopy = Object.assign({}, messageArg);
|
|
976
|
-
const message
|
|
1040
|
+
for (const message of this.remoteMessageProcessor.process(messageCopy)) {
|
|
1041
|
+
this.processCore(message, local, runtimeMessage);
|
|
1042
|
+
}
|
|
1043
|
+
}
|
|
1044
|
+
processCore(message, local, runtimeMessage) {
|
|
1045
|
+
var _a;
|
|
977
1046
|
// Surround the actual processing of the operation with messages to the schedule manager indicating
|
|
978
1047
|
// the beginning and end. This allows it to emit appropriate events and/or pause the processing of new
|
|
979
1048
|
// messages once a batch has been fully processed.
|
|
980
1049
|
this.scheduleManager.beforeOpProcessing(message);
|
|
1050
|
+
this._processedClientSequenceNumber = message.clientSequenceNumber;
|
|
981
1051
|
try {
|
|
982
1052
|
let localOpMetadata;
|
|
983
1053
|
if (local && runtimeMessage && message.type !== ContainerMessageType.ChunkedOp) {
|
|
@@ -1002,6 +1072,10 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1002
1072
|
case ContainerMessageType.BlobAttach:
|
|
1003
1073
|
this.blobManager.processBlobAttachOp(message, local);
|
|
1004
1074
|
break;
|
|
1075
|
+
case ContainerMessageType.IdAllocation:
|
|
1076
|
+
assert(this.idCompressor !== undefined, 0x67c /* IdCompressor should be defined if enabled */);
|
|
1077
|
+
this.idCompressor.finalizeCreationRange(message.contents);
|
|
1078
|
+
break;
|
|
1005
1079
|
case ContainerMessageType.ChunkedOp:
|
|
1006
1080
|
case ContainerMessageType.Rejoin:
|
|
1007
1081
|
break;
|
|
@@ -1020,8 +1094,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1020
1094
|
throw error;
|
|
1021
1095
|
}
|
|
1022
1096
|
}
|
|
1023
|
-
|
|
1024
|
-
if (runtimeMessage) {
|
|
1097
|
+
if (runtimeMessage || this.groupedBatchingEnabled) {
|
|
1025
1098
|
this.emit("op", message, runtimeMessage);
|
|
1026
1099
|
}
|
|
1027
1100
|
this.scheduleManager.afterOpProcessing(undefined, message);
|
|
@@ -1312,17 +1385,21 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1312
1385
|
fullGC,
|
|
1313
1386
|
runSweep,
|
|
1314
1387
|
});
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1388
|
+
try {
|
|
1389
|
+
let gcStats;
|
|
1390
|
+
if (runGC) {
|
|
1391
|
+
gcStats = await this.collectGarbage({ logger: summaryLogger, runSweep, fullGC }, telemetryContext);
|
|
1392
|
+
}
|
|
1393
|
+
const { stats, summary } = await this.summarizerNode.summarize(fullTree, trackState, telemetryContext);
|
|
1394
|
+
assert(summary.type === SummaryType.Tree, 0x12f /* "Container Runtime's summarize should always return a tree" */);
|
|
1395
|
+
return { stats, summary, gcStats };
|
|
1396
|
+
}
|
|
1397
|
+
finally {
|
|
1398
|
+
this.logger.sendTelemetryEvent({
|
|
1399
|
+
eventName: "SummarizeTelemetry",
|
|
1400
|
+
details: telemetryContext.serialize(),
|
|
1401
|
+
});
|
|
1318
1402
|
}
|
|
1319
|
-
const { stats, summary } = await this.summarizerNode.summarize(fullTree, trackState, telemetryContext);
|
|
1320
|
-
this.logger.sendTelemetryEvent({
|
|
1321
|
-
eventName: "SummarizeTelemetry",
|
|
1322
|
-
details: telemetryContext.serialize(),
|
|
1323
|
-
});
|
|
1324
|
-
assert(summary.type === SummaryType.Tree, 0x12f /* "Container Runtime's summarize should always return a tree" */);
|
|
1325
|
-
return { stats, summary, gcStats };
|
|
1326
1403
|
}
|
|
1327
1404
|
/**
|
|
1328
1405
|
* Before GC runs, called by the garbage collector to update any pending GC state. This is mainly used to notify
|
|
@@ -1709,6 +1786,35 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1709
1786
|
this.verifyNotClosed();
|
|
1710
1787
|
return this.blobManager.createBlob(blob);
|
|
1711
1788
|
}
|
|
1789
|
+
maybeSubmitIdAllocationOp(type) {
|
|
1790
|
+
var _a, _b;
|
|
1791
|
+
if (type !== ContainerMessageType.IdAllocation) {
|
|
1792
|
+
let idAllocationBatchMessage;
|
|
1793
|
+
let idRange;
|
|
1794
|
+
if (this.idCompressorEnabled) {
|
|
1795
|
+
assert(this.idCompressor !== undefined, 0x67d /* IdCompressor should be defined if enabled */);
|
|
1796
|
+
idRange = this.idCompressor.takeNextCreationRange();
|
|
1797
|
+
// Don't include the idRange if there weren't any Ids allocated
|
|
1798
|
+
idRange = ((_a = idRange === null || idRange === void 0 ? void 0 : idRange.ids) === null || _a === void 0 ? void 0 : _a.first) !== undefined ? idRange : undefined;
|
|
1799
|
+
}
|
|
1800
|
+
if (idRange !== undefined) {
|
|
1801
|
+
const idAllocationMessage = {
|
|
1802
|
+
type: ContainerMessageType.IdAllocation,
|
|
1803
|
+
contents: idRange,
|
|
1804
|
+
};
|
|
1805
|
+
idAllocationBatchMessage = {
|
|
1806
|
+
contents: JSON.stringify(idAllocationMessage),
|
|
1807
|
+
deserializedContent: idAllocationMessage,
|
|
1808
|
+
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
1809
|
+
metadata: undefined,
|
|
1810
|
+
localOpMetadata: (_b = this.idCompressor) === null || _b === void 0 ? void 0 : _b.serialize(true),
|
|
1811
|
+
};
|
|
1812
|
+
}
|
|
1813
|
+
if (idAllocationBatchMessage !== undefined) {
|
|
1814
|
+
this.outbox.submit(idAllocationBatchMessage);
|
|
1815
|
+
}
|
|
1816
|
+
}
|
|
1817
|
+
}
|
|
1712
1818
|
submit(type, contents, localOpMetadata = undefined, metadata = undefined) {
|
|
1713
1819
|
this.verifyNotClosed();
|
|
1714
1820
|
this.verifyCanSubmitOps();
|
|
@@ -1731,6 +1837,11 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1731
1837
|
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
1732
1838
|
};
|
|
1733
1839
|
try {
|
|
1840
|
+
// Submit an IdAllocation op if any Ids have been generated since
|
|
1841
|
+
// the last op was submitted. Don't submit another if it's an IdAllocation
|
|
1842
|
+
// op as that means we're in resubmission flow and we don't want to send
|
|
1843
|
+
// IdRanges out of order.
|
|
1844
|
+
this.maybeSubmitIdAllocationOp(type);
|
|
1734
1845
|
// If this is attach message for new data store, and we are in a batch, send this op out of order
|
|
1735
1846
|
// Is it safe:
|
|
1736
1847
|
// Yes, this should be safe reordering. Newly created data stores are not visible through API surface.
|
|
@@ -1867,6 +1978,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1867
1978
|
break;
|
|
1868
1979
|
case ContainerMessageType.Attach:
|
|
1869
1980
|
case ContainerMessageType.Alias:
|
|
1981
|
+
case ContainerMessageType.IdAllocation:
|
|
1870
1982
|
this.submit(type, content, localOpMetadata);
|
|
1871
1983
|
break;
|
|
1872
1984
|
case ContainerMessageType.ChunkedOp:
|
|
@@ -1916,6 +2028,19 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1916
2028
|
ackHandle,
|
|
1917
2029
|
targetSequenceNumber: summaryRefSeq,
|
|
1918
2030
|
}, readAndParseBlob);
|
|
2031
|
+
/**
|
|
2032
|
+
* back-compat - Older loaders and drivers (pre 2.0.0-internal.1.4) don't have fetchSource as a param in the
|
|
2033
|
+
* getVersions API. So, they will not fetch the latest snapshot from network in the previous fetch call. For
|
|
2034
|
+
* these scenarios, fetch the snapshot corresponding to the ack handle to have the same behavior before the
|
|
2035
|
+
* change that started fetching latest snapshot always.
|
|
2036
|
+
*/
|
|
2037
|
+
if (fetchResult.latestSnapshotRefSeq < summaryRefSeq) {
|
|
2038
|
+
fetchResult = await this.fetchSnapshotFromStorage(summaryLogger, {
|
|
2039
|
+
eventName: "RefreshLatestSummaryAckFetchBackCompat",
|
|
2040
|
+
ackHandle,
|
|
2041
|
+
targetSequenceNumber: summaryRefSeq,
|
|
2042
|
+
}, readAndParseBlob, ackHandle);
|
|
2043
|
+
}
|
|
1919
2044
|
/**
|
|
1920
2045
|
* If the fetched snapshot is older than the one for which the ack was received, close the container.
|
|
1921
2046
|
* This should never happen because an ack should be sent after the latest summary is updated in the server.
|
|
@@ -1927,21 +2052,13 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1927
2052
|
* state.
|
|
1928
2053
|
*/
|
|
1929
2054
|
if (fetchResult.latestSnapshotRefSeq < summaryRefSeq) {
|
|
1930
|
-
|
|
1931
|
-
fetchResult = await this.fetchSnapshotFromStorage(summaryLogger, {
|
|
1932
|
-
eventName: "RefreshLatestSummaryAckFetch",
|
|
2055
|
+
const error = DataProcessingError.create("Fetched snapshot is older than the received ack", "RefreshLatestSummaryAck", undefined /* sequencedMessage */, {
|
|
1933
2056
|
ackHandle,
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
summaryRefSeq,
|
|
1940
|
-
fetchedSnapshotRefSeq: fetchResult.latestSnapshotRefSeq,
|
|
1941
|
-
});
|
|
1942
|
-
this.closeFn(error);
|
|
1943
|
-
throw error;
|
|
1944
|
-
}
|
|
2057
|
+
summaryRefSeq,
|
|
2058
|
+
fetchedSnapshotRefSeq: fetchResult.latestSnapshotRefSeq,
|
|
2059
|
+
});
|
|
2060
|
+
this.closeFn(error);
|
|
2061
|
+
throw error;
|
|
1945
2062
|
}
|
|
1946
2063
|
// In case we had to retrieve the latest snapshot and it is different than summaryRefSeq,
|
|
1947
2064
|
// wait for the delta manager to catch up before refreshing the latest Summary.
|
|
@@ -1979,7 +2096,8 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1979
2096
|
return this.fetchSnapshotFromStorage(logger, event, readAndParseBlob, null /* latest */);
|
|
1980
2097
|
}
|
|
1981
2098
|
async fetchSnapshotFromStorage(logger, event, readAndParseBlob, versionId) {
|
|
1982
|
-
|
|
2099
|
+
var _a;
|
|
2100
|
+
const snapshotResults = await PerformanceEvent.timedExecAsync(logger, event, async (perfEvent) => {
|
|
1983
2101
|
const stats = {};
|
|
1984
2102
|
const trace = Trace.start();
|
|
1985
2103
|
const versions = await this.storage.getVersions(versionId, 1, "refreshLatestSummaryAckFromServer", versionId === null ? FetchSource.noCache : undefined);
|
|
@@ -1998,6 +2116,19 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1998
2116
|
latestSnapshotRefSeq,
|
|
1999
2117
|
};
|
|
2000
2118
|
});
|
|
2119
|
+
// We choose to close the summarizer after the snapshot cache is updated to avoid
|
|
2120
|
+
// situations which the main client (which is likely to be re-elected as the leader again)
|
|
2121
|
+
// loads the summarizer from cache.
|
|
2122
|
+
if (this.summaryStateUpdateMethod === "restart") {
|
|
2123
|
+
const error = new GenericError("Restarting summarizer instead of refreshing");
|
|
2124
|
+
this.mc.logger.sendTelemetryEvent(Object.assign(Object.assign({}, event), { eventName: "ClosingSummarizerOnSummaryStale", codePath: event.eventName, message: "Stopping fetch from storage", versionId: versionId != null ? versionId : undefined, closeSummarizerDelayMs: this.closeSummarizerDelayMs }), error);
|
|
2125
|
+
// Delay 10 seconds before restarting summarizer to prevent the summarizer from restarting too frequently.
|
|
2126
|
+
await delay(this.closeSummarizerDelayMs);
|
|
2127
|
+
(_a = this._summarizer) === null || _a === void 0 ? void 0 : _a.stop("latestSummaryStateStale");
|
|
2128
|
+
this.closeFn();
|
|
2129
|
+
throw error;
|
|
2130
|
+
}
|
|
2131
|
+
return snapshotResults;
|
|
2001
2132
|
}
|
|
2002
2133
|
notifyAttaching() { } // do nothing (deprecated method)
|
|
2003
2134
|
getPendingLocalState() {
|
|
@@ -2050,6 +2181,10 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
2050
2181
|
throw new UsageError(`"minIdleTime" [${configuration.minIdleTime}] cannot be greater than "maxIdleTime" [${configuration.maxIdleTime}]`);
|
|
2051
2182
|
}
|
|
2052
2183
|
}
|
|
2184
|
+
get groupedBatchingEnabled() {
|
|
2185
|
+
const killSwitch = this.mc.config.getBoolean("Fluid.ContainerRuntime.DisableGroupedBatching");
|
|
2186
|
+
return killSwitch !== true && this.runtimeOptions.enableGroupedBatching;
|
|
2187
|
+
}
|
|
2053
2188
|
}
|
|
2054
2189
|
/**
|
|
2055
2190
|
* Wait for a specific sequence number. Promise should resolve when we reach that number,
|