@fluidframework/container-runtime 2.0.0-dev.4.2.0.153917 → 2.0.0-dev.4.3.0.158678
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/dist/containerRuntime.d.ts +33 -3
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +187 -58
- 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/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 +1 -1
- package/dist/opLifecycle/index.d.ts.map +1 -1
- package/dist/opLifecycle/index.js.map +1 -1
- package/dist/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/dist/opLifecycle/opGroupingManager.js +5 -0
- package/dist/opLifecycle/opGroupingManager.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts +2 -2
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +34 -22
- package/dist/opLifecycle/outbox.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 +1 -1
- package/dist/summary/index.d.ts.map +1 -1
- package/dist/summary/index.js +2 -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 +17 -1
- package/dist/summary/orderedClientElection.js.map +1 -1
- package/dist/summary/runningSummarizer.d.ts +0 -1
- package/dist/summary/runningSummarizer.d.ts.map +1 -1
- package/dist/summary/runningSummarizer.js +1 -17
- package/dist/summary/runningSummarizer.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/summaryManager.d.ts.map +1 -1
- package/dist/summary/summaryManager.js +2 -0
- package/dist/summary/summaryManager.js.map +1 -1
- package/lib/containerRuntime.d.ts +33 -3
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +170 -60
- 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/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 +1 -1
- package/lib/opLifecycle/index.d.ts.map +1 -1
- package/lib/opLifecycle/index.js.map +1 -1
- package/lib/opLifecycle/opGroupingManager.d.ts.map +1 -1
- package/lib/opLifecycle/opGroupingManager.js +5 -0
- package/lib/opLifecycle/opGroupingManager.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts +2 -2
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +35 -23
- package/lib/opLifecycle/outbox.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 +1 -1
- package/lib/summary/index.d.ts.map +1 -1
- package/lib/summary/index.js +1 -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 +17 -1
- package/lib/summary/orderedClientElection.js.map +1 -1
- package/lib/summary/runningSummarizer.d.ts +0 -1
- package/lib/summary/runningSummarizer.d.ts.map +1 -1
- package/lib/summary/runningSummarizer.js +1 -17
- package/lib/summary/runningSummarizer.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/summaryManager.d.ts.map +1 -1
- package/lib/summary/summaryManager.js +2 -0
- package/lib/summary/summaryManager.js.map +1 -1
- package/package.json +27 -18
- package/src/containerRuntime.ts +256 -88
- 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/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 +13 -0
- package/src/opLifecycle/batchManager.ts +35 -2
- package/src/opLifecycle/index.ts +1 -1
- package/src/opLifecycle/opGroupingManager.ts +5 -1
- package/src/opLifecycle/outbox.ts +57 -23
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +21 -7
- package/src/summary/index.ts +1 -0
- package/src/summary/orderedClientElection.ts +15 -2
- package/src/summary/runningSummarizer.ts +3 -24
- package/src/summary/summaryFormat.ts +4 -0
- package/src/summary/summaryManager.ts +2 -0
|
@@ -9,7 +9,7 @@ import { IContainerRuntime, IContainerRuntimeEvents } from "@fluidframework/cont
|
|
|
9
9
|
import { TypedEventEmitter } from "@fluidframework/common-utils";
|
|
10
10
|
import { IDocumentStorageService } from "@fluidframework/driver-definitions";
|
|
11
11
|
import { IClientDetails, IDocumentMessage, IQuorumClients, ISequencedDocumentMessage, ISignalMessage, ISummaryTree } from "@fluidframework/protocol-definitions";
|
|
12
|
-
import { FlushMode, IFluidDataStoreContextDetached, IFluidDataStoreRegistry, IGarbageCollectionData, NamedFluidDataStoreRegistryEntries, ISummaryTreeWithStats, IDataStore, ITelemetryContext } from "@fluidframework/runtime-definitions";
|
|
12
|
+
import { FlushMode, IFluidDataStoreContextDetached, IFluidDataStoreRegistry, IGarbageCollectionData, NamedFluidDataStoreRegistryEntries, ISummaryTreeWithStats, IDataStore, ITelemetryContext, IIdCompressor, IIdCompressorCore } from "@fluidframework/runtime-definitions";
|
|
13
13
|
import { IBlobManagerLoadInfo } from "./blobManager";
|
|
14
14
|
import { IContainerRuntimeMetadata, ISerializedElection, SubmitSummaryResult, ISubmitSummaryOptions, ISummarizer, ISummarizerInternalsProvider, ISummarizerRuntime, IRefreshSummaryAckOptions } from "./summary";
|
|
15
15
|
import { GCNodeType, IGCRuntimeOptions, IGCStats } from "./gc";
|
|
@@ -19,7 +19,13 @@ export declare enum ContainerMessageType {
|
|
|
19
19
|
ChunkedOp = "chunkedOp",
|
|
20
20
|
BlobAttach = "blobAttach",
|
|
21
21
|
Rejoin = "rejoin",
|
|
22
|
-
Alias = "alias"
|
|
22
|
+
Alias = "alias",
|
|
23
|
+
/**
|
|
24
|
+
* An op containing an IdRange of Ids allocated using the runtime's IdCompressor since
|
|
25
|
+
* the last allocation op was sent.
|
|
26
|
+
* See the [IdCompressor README](./id-compressor/README.md) for more details.
|
|
27
|
+
*/
|
|
28
|
+
IdAllocation = "idAllocation"
|
|
23
29
|
}
|
|
24
30
|
export interface ContainerRuntimeMessage {
|
|
25
31
|
contents: any;
|
|
@@ -182,6 +188,11 @@ export interface IContainerRuntimeOptions {
|
|
|
182
188
|
* @experimental Not ready for use.
|
|
183
189
|
*/
|
|
184
190
|
readonly chunkSizeInBytes?: number;
|
|
191
|
+
/**
|
|
192
|
+
* Enable the IdCompressor in the runtime.
|
|
193
|
+
* @experimental Not ready for use.
|
|
194
|
+
*/
|
|
195
|
+
readonly enableRuntimeIdCompressor?: boolean;
|
|
185
196
|
/**
|
|
186
197
|
* If enabled, the runtime will block all attempts to send an op inside the
|
|
187
198
|
* {@link ContainerRuntime#ensureNoDataModelChanges} callback. The callback is used by
|
|
@@ -332,6 +343,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
332
343
|
get scope(): FluidObject;
|
|
333
344
|
get IFluidDataStoreRegistry(): IFluidDataStoreRegistry;
|
|
334
345
|
get attachState(): AttachState;
|
|
346
|
+
idCompressor: (IIdCompressor & IIdCompressorCore) | undefined;
|
|
335
347
|
get IFluidHandleContext(): IFluidHandleContext;
|
|
336
348
|
private readonly handleContext;
|
|
337
349
|
/**
|
|
@@ -394,6 +406,8 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
394
406
|
private emitDirtyDocumentEvent;
|
|
395
407
|
private readonly enableOpReentryCheck;
|
|
396
408
|
private readonly disableAttachReorder;
|
|
409
|
+
private readonly summaryStateUpdateMethod;
|
|
410
|
+
private readonly closeSummarizerDelayMs;
|
|
397
411
|
private readonly defaultTelemetrySignalSampleCount;
|
|
398
412
|
private _perfSignalData;
|
|
399
413
|
/**
|
|
@@ -435,10 +449,14 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
435
449
|
* ! Note: should not be used for anything other than telemetry and is not considered a stable GUID
|
|
436
450
|
*/
|
|
437
451
|
private readonly telemetryDocumentId;
|
|
452
|
+
/**
|
|
453
|
+
* If true, the runtime has access to an IdCompressor
|
|
454
|
+
*/
|
|
455
|
+
private readonly idCompressorEnabled;
|
|
438
456
|
/**
|
|
439
457
|
* @internal
|
|
440
458
|
*/
|
|
441
|
-
protected constructor(context: IContainerContext, registry: IFluidDataStoreRegistry, metadata: IContainerRuntimeMetadata | undefined, electedSummarizerData: ISerializedElection | undefined, chunks: [string, string[]][], dataStoreAliasMap: [string, string][], runtimeOptions: Readonly<Required<IContainerRuntimeOptions>>, containerScope: FluidObject, logger: ITelemetryLogger, existing: boolean, blobManagerSnapshot: IBlobManagerLoadInfo, _storage: IDocumentStorageService, requestHandler?: ((request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>) | undefined, summaryConfiguration?: ISummaryConfiguration, initializeEntryPoint?: (containerRuntime: IContainerRuntime) => Promise<FluidObject>);
|
|
459
|
+
protected constructor(context: IContainerContext, registry: IFluidDataStoreRegistry, metadata: IContainerRuntimeMetadata | undefined, electedSummarizerData: ISerializedElection | undefined, chunks: [string, string[]][], dataStoreAliasMap: [string, string][], runtimeOptions: Readonly<Required<IContainerRuntimeOptions>>, containerScope: FluidObject, logger: ITelemetryLogger, existing: boolean, blobManagerSnapshot: IBlobManagerLoadInfo, _storage: IDocumentStorageService, idCompressor: (IIdCompressor & IIdCompressorCore) | undefined, requestHandler?: ((request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>) | undefined, summaryConfiguration?: ISummaryConfiguration, initializeEntryPoint?: (containerRuntime: IContainerRuntime) => Promise<FluidObject>);
|
|
442
460
|
/**
|
|
443
461
|
* Initializes the state from the base snapshot this container runtime loaded from.
|
|
444
462
|
*/
|
|
@@ -467,11 +485,22 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
467
485
|
private shouldContinueReconnecting;
|
|
468
486
|
private resetReconnectCount;
|
|
469
487
|
private replayPendingStates;
|
|
488
|
+
/**
|
|
489
|
+
* Updates the runtime's IdCompressor with the stashed state present in the given op. This is a bit of a
|
|
490
|
+
* hack and is unnecessarily expensive. As it stands, every locally stashed op (all ops that get stored in
|
|
491
|
+
* the PendingStateManager) will store their serialized representation locally until ack'd. Upon receiving
|
|
492
|
+
* this stashed state, the IdCompressor blindly deserializes to the stashed state and assumes the session.
|
|
493
|
+
* Technically only the last stashed state is needed to do this correctly, but we would have to write some
|
|
494
|
+
* more hacky code to modify the batch before it gets sent out.
|
|
495
|
+
* @param content - An IdAllocationOp with "stashedState", which is a representation of un-ack'd local state.
|
|
496
|
+
*/
|
|
497
|
+
private applyStashedIdAllocationOp;
|
|
470
498
|
private applyStashedOp;
|
|
471
499
|
setConnectionState(connected: boolean, clientId?: string): void;
|
|
472
500
|
private setConnectionStateCore;
|
|
473
501
|
notifyOpReplay(message: ISequencedDocumentMessage): Promise<void>;
|
|
474
502
|
process(messageArg: ISequencedDocumentMessage, local: boolean): void;
|
|
503
|
+
private _processedClientSequenceNumber;
|
|
475
504
|
private processCore;
|
|
476
505
|
private processAliasMessage;
|
|
477
506
|
/**
|
|
@@ -641,6 +670,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
641
670
|
submitDataStoreOp(id: string, contents: any, localOpMetadata?: unknown): void;
|
|
642
671
|
submitDataStoreAliasOp(contents: any, localOpMetadata: unknown): void;
|
|
643
672
|
uploadBlob(blob: ArrayBufferLike): Promise<IFluidHandle<ArrayBufferLike>>;
|
|
673
|
+
private maybeSubmitIdAllocationOp;
|
|
644
674
|
private submit;
|
|
645
675
|
private scheduleFlush;
|
|
646
676
|
private submitSummaryMessage;
|
|
@@ -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/dist/containerRuntime.js
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
22
|
exports.ContainerRuntime = exports.getDeviceSpec = exports.agentSchedulerId = exports.isRuntimeMessage = exports.RuntimeMessage = exports.CompressionAlgorithms = exports.defaultRuntimeHeaderData = exports.TombstoneResponseHeaderKey = exports.AllowTombstoneRequestHeaderKey = exports.RuntimeHeaders = exports.DefaultSummaryConfiguration = exports.ContainerMessageType = void 0;
|
|
4
23
|
const container_definitions_1 = require("@fluidframework/container-definitions");
|
|
@@ -40,6 +59,12 @@ var ContainerMessageType;
|
|
|
40
59
|
ContainerMessageType["Rejoin"] = "rejoin";
|
|
41
60
|
// Sets the alias of a root data store
|
|
42
61
|
ContainerMessageType["Alias"] = "alias";
|
|
62
|
+
/**
|
|
63
|
+
* An op containing an IdRange of Ids allocated using the runtime's IdCompressor since
|
|
64
|
+
* the last allocation op was sent.
|
|
65
|
+
* See the [IdCompressor README](./id-compressor/README.md) for more details.
|
|
66
|
+
*/
|
|
67
|
+
ContainerMessageType["IdAllocation"] = "idAllocation";
|
|
43
68
|
})(ContainerMessageType = exports.ContainerMessageType || (exports.ContainerMessageType = {}));
|
|
44
69
|
exports.DefaultSummaryConfiguration = {
|
|
45
70
|
state: "enabled",
|
|
@@ -95,6 +120,12 @@ const defaultCompressionConfig = {
|
|
|
95
120
|
compressionAlgorithm: CompressionAlgorithms.lz4,
|
|
96
121
|
};
|
|
97
122
|
const defaultChunkSizeInBytes = 204800;
|
|
123
|
+
/**
|
|
124
|
+
* Instead of refreshing from latest because we do not have 100% confidence in the state
|
|
125
|
+
* of the current system, we should close the summarizer and let it recover.
|
|
126
|
+
* This delay's goal is to prevent tight restart loops
|
|
127
|
+
*/
|
|
128
|
+
const defaultCloseSummarizerDelayMs = 10000; // 10 seconds
|
|
98
129
|
/**
|
|
99
130
|
* @deprecated - use ContainerRuntimeMessage instead
|
|
100
131
|
*/
|
|
@@ -143,8 +174,8 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
143
174
|
/**
|
|
144
175
|
* @internal
|
|
145
176
|
*/
|
|
146
|
-
constructor(context, registry, metadata, electedSummarizerData, chunks, dataStoreAliasMap, runtimeOptions, containerScope, logger, existing, blobManagerSnapshot, _storage, requestHandler, summaryConfiguration, initializeEntryPoint) {
|
|
147
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
177
|
+
constructor(context, registry, metadata, electedSummarizerData, chunks, dataStoreAliasMap, runtimeOptions, containerScope, logger, existing, blobManagerSnapshot, _storage, idCompressor, requestHandler, summaryConfiguration, initializeEntryPoint) {
|
|
178
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
148
179
|
if (summaryConfiguration === void 0) { summaryConfiguration = Object.assign(Object.assign({}, exports.DefaultSummaryConfiguration), (_a = runtimeOptions.summaryOptions) === null || _a === void 0 ? void 0 : _a.summaryConfigOverrides); }
|
|
149
180
|
super();
|
|
150
181
|
this.context = context;
|
|
@@ -206,6 +237,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
206
237
|
};
|
|
207
238
|
this.innerDeltaManager = context.deltaManager;
|
|
208
239
|
this.deltaManager = new deltaManagerSummarizerProxy_1.DeltaManagerSummarizerProxy(context.deltaManager);
|
|
240
|
+
this.mc = (0, telemetry_utils_1.loggerToMonitoringContext)(telemetry_utils_1.ChildLogger.create(this.logger, "ContainerRuntime"));
|
|
209
241
|
let loadSummaryNumber;
|
|
210
242
|
// Get the container creation metadata. For new container, we initialize these. For existing containers,
|
|
211
243
|
// get the values from the metadata blob.
|
|
@@ -217,6 +249,9 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
217
249
|
// summaryNumber was renamed from summaryCount. For older docs that haven't been opened for a long time,
|
|
218
250
|
// the count is reset to 0.
|
|
219
251
|
loadSummaryNumber = (_b = metadata === null || metadata === void 0 ? void 0 : metadata.summaryNumber) !== null && _b !== void 0 ? _b : 0;
|
|
252
|
+
// Enabling the IdCompressor is a one-way operation and we only want to
|
|
253
|
+
// allow new containers to turn it on
|
|
254
|
+
this.idCompressorEnabled = (_c = metadata === null || metadata === void 0 ? void 0 : metadata.idCompressorEnabled) !== null && _c !== void 0 ? _c : false;
|
|
220
255
|
}
|
|
221
256
|
else {
|
|
222
257
|
this.createContainerMetadata = {
|
|
@@ -224,12 +259,13 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
224
259
|
createContainerTimestamp: Date.now(),
|
|
225
260
|
};
|
|
226
261
|
loadSummaryNumber = 0;
|
|
262
|
+
this.idCompressorEnabled =
|
|
263
|
+
(_d = this.mc.config.getBoolean("Fluid.ContainerRuntime.IdCompressorEnabled")) !== null && _d !== void 0 ? _d : idCompressor !== undefined;
|
|
227
264
|
}
|
|
228
265
|
this.nextSummaryNumber = loadSummaryNumber + 1;
|
|
229
266
|
this.messageAtLastSummary = metadata === null || metadata === void 0 ? void 0 : metadata.message;
|
|
230
267
|
this._connected = this.context.connected;
|
|
231
|
-
this.gcTombstoneEnforcementAllowed = (0, gc_1.shouldAllowGcTombstoneEnforcement)((
|
|
232
|
-
this.mc = (0, telemetry_utils_1.loggerToMonitoringContext)(telemetry_utils_1.ChildLogger.create(this.logger, "ContainerRuntime"));
|
|
268
|
+
this.gcTombstoneEnforcementAllowed = (0, gc_1.shouldAllowGcTombstoneEnforcement)((_e = metadata === null || metadata === void 0 ? void 0 : metadata.gcFeatureMatrix) === null || _e === void 0 ? void 0 : _e.tombstoneGeneration /* persisted */, this.runtimeOptions.gcOptions[gc_1.gcTombstoneGenerationOptionName] /* current */);
|
|
233
269
|
this.mc.logger.sendTelemetryEvent({
|
|
234
270
|
eventName: "GCFeatureMatrix",
|
|
235
271
|
metadataValue: JSON.stringify(metadata === null || metadata === void 0 ? void 0 : metadata.gcFeatureMatrix),
|
|
@@ -237,7 +273,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
237
273
|
gcOptions_gcTombstoneGeneration: this.runtimeOptions.gcOptions[gc_1.gcTombstoneGenerationOptionName],
|
|
238
274
|
}),
|
|
239
275
|
});
|
|
240
|
-
this.telemetryDocumentId = (
|
|
276
|
+
this.telemetryDocumentId = (_f = metadata === null || metadata === void 0 ? void 0 : metadata.telemetryDocumentId) !== null && _f !== void 0 ? _f : (0, uuid_1.v4)();
|
|
241
277
|
this.disableAttachReorder = this.mc.config.getBoolean("Fluid.ContainerRuntime.disableAttachOpReorder");
|
|
242
278
|
const disableChunking = this.mc.config.getBoolean("Fluid.ContainerRuntime.CompressionChunkingDisabled");
|
|
243
279
|
const opGroupingManager = new opLifecycle_1.OpGroupingManager(this.groupedBatchingEnabled);
|
|
@@ -256,10 +292,13 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
256
292
|
this.heuristicsDisabled = this.isHeuristicsDisabled();
|
|
257
293
|
this.maxOpsSinceLastSummary = this.getMaxOpsSinceLastSummary();
|
|
258
294
|
this.initialSummarizerDelayMs = this.getInitialSummarizerDelayMs();
|
|
295
|
+
if (this.idCompressorEnabled) {
|
|
296
|
+
this.idCompressor = idCompressor;
|
|
297
|
+
}
|
|
259
298
|
this.maxConsecutiveReconnects =
|
|
260
|
-
(
|
|
299
|
+
(_g = this.mc.config.getNumber(maxConsecutiveReconnectsKey)) !== null && _g !== void 0 ? _g : this.defaultMaxConsecutiveReconnects;
|
|
261
300
|
if (runtimeOptions.flushMode === runtime_definitions_1.FlushModeExperimental.Async &&
|
|
262
|
-
((
|
|
301
|
+
((_h = context.supportedFeatures) === null || _h === void 0 ? void 0 : _h.get("referenceSequenceNumbers")) !== true) {
|
|
263
302
|
// The loader does not support reference sequence numbers, falling back on FlushMode.TurnBased
|
|
264
303
|
this.mc.logger.sendErrorEvent({ eventName: "FlushModeFallback" });
|
|
265
304
|
this._flushMode = runtime_definitions_1.FlushMode.TurnBased;
|
|
@@ -268,7 +307,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
268
307
|
this._flushMode = runtimeOptions.flushMode;
|
|
269
308
|
}
|
|
270
309
|
const pendingRuntimeState = context.pendingLocalState;
|
|
271
|
-
const maxSnapshotCacheDurationMs = (
|
|
310
|
+
const maxSnapshotCacheDurationMs = (_k = (_j = this._storage) === null || _j === void 0 ? void 0 : _j.policies) === null || _k === void 0 ? void 0 : _k.maximumCacheDurationMs;
|
|
272
311
|
if (maxSnapshotCacheDurationMs !== undefined &&
|
|
273
312
|
maxSnapshotCacheDurationMs > 5 * 24 * 60 * 60 * 1000) {
|
|
274
313
|
// This is a runtime enforcement of what's already explicit in the policy's type itself,
|
|
@@ -320,15 +359,9 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
320
359
|
this.dataStores = new dataStores_1.DataStores((0, dataStores_1.getSummaryForDatastores)(context.baseSnapshot, metadata), this, (attachMsg) => this.submit(ContainerMessageType.Attach, attachMsg), (id, createParam) => (summarizeInternal, getGCDataFn) => this.summarizerNode.createChild(summarizeInternal, id, createParam, undefined, getGCDataFn), (id) => this.summarizerNode.deleteChild(id), this.mc.logger, (path, timestampMs, packagePath) => this.garbageCollector.nodeUpdated(path, "Changed", timestampMs, packagePath), (path) => this.garbageCollector.isNodeDeleted(path), new Map(dataStoreAliasMap));
|
|
321
360
|
this.blobManager = new blobManager_1.BlobManager(this.handleContext, blobManagerSnapshot, () => this.storage, (localId, blobId) => {
|
|
322
361
|
if (!this.disposed) {
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
this.flush();
|
|
327
|
-
this.submit(ContainerMessageType.BlobAttach, undefined, undefined, {
|
|
328
|
-
localId,
|
|
329
|
-
blobId,
|
|
330
|
-
});
|
|
331
|
-
this.flush();
|
|
362
|
+
this.submit(ContainerMessageType.BlobAttach, undefined, undefined, {
|
|
363
|
+
localId,
|
|
364
|
+
blobId,
|
|
332
365
|
});
|
|
333
366
|
}
|
|
334
367
|
}, (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));
|
|
@@ -363,10 +396,17 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
363
396
|
},
|
|
364
397
|
logger: this.mc.logger,
|
|
365
398
|
groupingManager: opGroupingManager,
|
|
399
|
+
getCurrentSequenceNumbers: () => ({
|
|
400
|
+
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
401
|
+
clientSequenceNumber: this._processedClientSequenceNumber,
|
|
402
|
+
}),
|
|
366
403
|
});
|
|
367
404
|
this.context.quorum.on("removeMember", (clientId) => {
|
|
368
405
|
this.remoteMessageProcessor.clearPartialMessagesFor(clientId);
|
|
369
406
|
});
|
|
407
|
+
this.summaryStateUpdateMethod = this.mc.config.getString("Fluid.ContainerRuntime.Test.SummaryStateUpdateMethod");
|
|
408
|
+
const closeSummarizerDelayOverride = this.mc.config.getNumber("Fluid.ContainerRuntime.Test.CloseSummarizerDelayOverrideMs");
|
|
409
|
+
this.closeSummarizerDelayMs = closeSummarizerDelayOverride !== null && closeSummarizerDelayOverride !== void 0 ? closeSummarizerDelayOverride : defaultCloseSummarizerDelayMs;
|
|
370
410
|
this.summaryCollection = new summary_1.SummaryCollection(this.deltaManager, this.logger);
|
|
371
411
|
this.dirtyContainer =
|
|
372
412
|
this.context.attachState !== container_definitions_1.AttachState.Attached ||
|
|
@@ -444,6 +484,9 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
444
484
|
disableChunking,
|
|
445
485
|
disableAttachReorder: this.disableAttachReorder,
|
|
446
486
|
disablePartialFlush,
|
|
487
|
+
idCompressorEnabled: this.idCompressorEnabled,
|
|
488
|
+
summaryStateUpdateMethod: this.summaryStateUpdateMethod,
|
|
489
|
+
closeSummarizerDelayOverride,
|
|
447
490
|
}), telemetryDocumentId: this.telemetryDocumentId, groupedBatchingEnabled: this.groupedBatchingEnabled }));
|
|
448
491
|
(0, connectionTelemetry_1.ReportOpPerfTelemetry)(this.context.clientId, this.deltaManager, this.logger);
|
|
449
492
|
(0, batchTracker_1.BindBatchTracker)(this, this.logger);
|
|
@@ -503,7 +546,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
503
546
|
* This object should provide all the functionality that the Container is expected to provide to the loader layer.
|
|
504
547
|
*/
|
|
505
548
|
static async loadRuntime(params) {
|
|
506
|
-
var _a, _b, _c, _d;
|
|
549
|
+
var _a, _b, _c, _d, _e, _f;
|
|
507
550
|
const { context, registryEntries, existing, requestHandler, runtimeOptions = {}, containerScope = {}, containerRuntimeCtor = ContainerRuntime, initializeEntryPoint, } = params;
|
|
508
551
|
// If taggedLogger exists, use it. Otherwise, wrap the vanilla logger:
|
|
509
552
|
// back-compat: Remove the TaggedLoggerAdapter fallback once all the host are using loader > 0.45
|
|
@@ -514,7 +557,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
514
557
|
runtimeVersion: packageVersion_1.pkgVersion,
|
|
515
558
|
},
|
|
516
559
|
});
|
|
517
|
-
const { summaryOptions = {}, gcOptions = {}, loadSequenceNumberVerification = "close", flushMode = defaultFlushMode, compressionOptions = defaultCompressionConfig, maxBatchSizeInBytes = defaultMaxBatchSizeInBytes, chunkSizeInBytes = defaultChunkSizeInBytes, enableOpReentryCheck = false, enableGroupedBatching = false, } = runtimeOptions;
|
|
560
|
+
const { summaryOptions = {}, gcOptions = {}, loadSequenceNumberVerification = "close", flushMode = defaultFlushMode, compressionOptions = defaultCompressionConfig, maxBatchSizeInBytes = defaultMaxBatchSizeInBytes, enableRuntimeIdCompressor = false, chunkSizeInBytes = defaultChunkSizeInBytes, enableOpReentryCheck = false, enableGroupedBatching = false, } = runtimeOptions;
|
|
518
561
|
const registry = new dataStoreRegistry_1.FluidDataStoreRegistry(registryEntries);
|
|
519
562
|
const tryFetchBlob = async (blobName) => {
|
|
520
563
|
var _a;
|
|
@@ -526,11 +569,12 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
526
569
|
return (0, driver_utils_1.readAndParse)(context.storage, blobId);
|
|
527
570
|
}
|
|
528
571
|
};
|
|
529
|
-
const [chunks, metadata, electedSummarizerData, aliases] = await Promise.all([
|
|
572
|
+
const [chunks, metadata, electedSummarizerData, aliases, serializedIdCompressor] = await Promise.all([
|
|
530
573
|
tryFetchBlob(summary_1.chunksBlobName),
|
|
531
574
|
tryFetchBlob(summary_1.metadataBlobName),
|
|
532
575
|
tryFetchBlob(summary_1.electedSummarizerBlobName),
|
|
533
576
|
tryFetchBlob(summary_1.aliasBlobName),
|
|
577
|
+
tryFetchBlob(summary_1.idCompressorBlobName),
|
|
534
578
|
]);
|
|
535
579
|
const loadExisting = existing === true || context.existing === true;
|
|
536
580
|
// read snapshot blobs needed for BlobManager to load
|
|
@@ -562,6 +606,15 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
562
606
|
}
|
|
563
607
|
}
|
|
564
608
|
}
|
|
609
|
+
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;
|
|
610
|
+
let idCompressor;
|
|
611
|
+
if (idCompressorEnabled) {
|
|
612
|
+
const { IdCompressor, createSessionId } = await Promise.resolve().then(() => __importStar(require("./id-compressor")));
|
|
613
|
+
idCompressor =
|
|
614
|
+
serializedIdCompressor !== undefined
|
|
615
|
+
? IdCompressor.deserialize(serializedIdCompressor, createSessionId())
|
|
616
|
+
: new IdCompressor(createSessionId(), logger);
|
|
617
|
+
}
|
|
565
618
|
const runtime = new containerRuntimeCtor(context, registry, metadata, electedSummarizerData, chunks !== null && chunks !== void 0 ? chunks : [], aliases !== null && aliases !== void 0 ? aliases : [], {
|
|
566
619
|
summaryOptions,
|
|
567
620
|
gcOptions,
|
|
@@ -570,9 +623,10 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
570
623
|
compressionOptions,
|
|
571
624
|
maxBatchSizeInBytes,
|
|
572
625
|
chunkSizeInBytes,
|
|
626
|
+
enableRuntimeIdCompressor,
|
|
573
627
|
enableOpReentryCheck,
|
|
574
628
|
enableGroupedBatching,
|
|
575
|
-
}, containerScope, logger, loadExisting, blobManagerSnapshot, context.storage, requestHandler, undefined, // summaryConfiguration
|
|
629
|
+
}, containerScope, logger, loadExisting, blobManagerSnapshot, context.storage, idCompressor, requestHandler, undefined, // summaryConfiguration
|
|
576
630
|
initializeEntryPoint);
|
|
577
631
|
// It's possible to have ops with a reference sequence number of 0. Op sequence numbers start
|
|
578
632
|
// at 1, so we won't see a replayed saved op with a sequence number of 0.
|
|
@@ -808,12 +862,17 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
808
862
|
summaryNumber: this.nextSummaryNumber++, summaryFormatVersion: 1 }), this.garbageCollector.getMetadata()), {
|
|
809
863
|
// The last message processed at the time of summary. If there are no new messages, use the message from the
|
|
810
864
|
// last summary.
|
|
811
|
-
message: (_a = (0, summary_1.extractSummaryMetadataMessage)(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary, telemetryDocumentId: this.telemetryDocumentId });
|
|
865
|
+
message: (_a = (0, summary_1.extractSummaryMetadataMessage)(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary, telemetryDocumentId: this.telemetryDocumentId, idCompressorEnabled: this.idCompressorEnabled ? true : undefined });
|
|
812
866
|
(0, runtime_utils_1.addBlobToSummary)(summaryTree, summary_1.metadataBlobName, JSON.stringify(metadata));
|
|
813
867
|
}
|
|
814
868
|
addContainerStateToSummary(summaryTree, fullTree, trackState, telemetryContext) {
|
|
815
869
|
var _a;
|
|
816
870
|
this.addMetadataToSummary(summaryTree);
|
|
871
|
+
if (this.idCompressorEnabled) {
|
|
872
|
+
(0, common_utils_1.assert)(this.idCompressor !== undefined, 0x67a /* IdCompressor should be defined if enabled */);
|
|
873
|
+
const idCompressorState = JSON.stringify(this.idCompressor.serialize(false));
|
|
874
|
+
(0, runtime_utils_1.addBlobToSummary)(summaryTree, summary_1.idCompressorBlobName, idCompressorState);
|
|
875
|
+
}
|
|
817
876
|
if (this.remoteMessageProcessor.partialMessages.size > 0) {
|
|
818
877
|
const content = JSON.stringify([...this.remoteMessageProcessor.partialMessages]);
|
|
819
878
|
(0, runtime_utils_1.addBlobToSummary)(summaryTree, summary_1.chunksBlobName, content);
|
|
@@ -895,12 +954,28 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
895
954
|
// Officially transition from the old state to the new state.
|
|
896
955
|
this.updateDocumentDirtyState(newState);
|
|
897
956
|
}
|
|
898
|
-
|
|
957
|
+
/**
|
|
958
|
+
* Updates the runtime's IdCompressor with the stashed state present in the given op. This is a bit of a
|
|
959
|
+
* hack and is unnecessarily expensive. As it stands, every locally stashed op (all ops that get stored in
|
|
960
|
+
* the PendingStateManager) will store their serialized representation locally until ack'd. Upon receiving
|
|
961
|
+
* this stashed state, the IdCompressor blindly deserializes to the stashed state and assumes the session.
|
|
962
|
+
* Technically only the last stashed state is needed to do this correctly, but we would have to write some
|
|
963
|
+
* more hacky code to modify the batch before it gets sent out.
|
|
964
|
+
* @param content - An IdAllocationOp with "stashedState", which is a representation of un-ack'd local state.
|
|
965
|
+
*/
|
|
966
|
+
async applyStashedIdAllocationOp(op) {
|
|
967
|
+
const { IdCompressor } = await Promise.resolve().then(() => __importStar(require("./id-compressor")));
|
|
968
|
+
this.idCompressor = IdCompressor.deserialize(op.stashedState);
|
|
969
|
+
}
|
|
970
|
+
async applyStashedOp(type, contents) {
|
|
899
971
|
switch (type) {
|
|
900
972
|
case ContainerMessageType.FluidDataStoreOp:
|
|
901
|
-
return this.dataStores.applyStashedOp(
|
|
973
|
+
return this.dataStores.applyStashedOp(contents);
|
|
902
974
|
case ContainerMessageType.Attach:
|
|
903
|
-
return this.dataStores.applyStashedAttachOp(
|
|
975
|
+
return this.dataStores.applyStashedAttachOp(contents);
|
|
976
|
+
case ContainerMessageType.IdAllocation:
|
|
977
|
+
(0, common_utils_1.assert)(this.idCompressor !== undefined, 0x67b /* IdCompressor should be defined if enabled */);
|
|
978
|
+
return this.applyStashedIdAllocationOp(contents);
|
|
904
979
|
case ContainerMessageType.Alias:
|
|
905
980
|
case ContainerMessageType.BlobAttach:
|
|
906
981
|
return;
|
|
@@ -996,6 +1071,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
996
1071
|
// the beginning and end. This allows it to emit appropriate events and/or pause the processing of new
|
|
997
1072
|
// messages once a batch has been fully processed.
|
|
998
1073
|
this.scheduleManager.beforeOpProcessing(message);
|
|
1074
|
+
this._processedClientSequenceNumber = message.clientSequenceNumber;
|
|
999
1075
|
try {
|
|
1000
1076
|
let localOpMetadata;
|
|
1001
1077
|
if (local && runtimeMessage && message.type !== ContainerMessageType.ChunkedOp) {
|
|
@@ -1020,6 +1096,10 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1020
1096
|
case ContainerMessageType.BlobAttach:
|
|
1021
1097
|
this.blobManager.processBlobAttachOp(message, local);
|
|
1022
1098
|
break;
|
|
1099
|
+
case ContainerMessageType.IdAllocation:
|
|
1100
|
+
(0, common_utils_1.assert)(this.idCompressor !== undefined, 0x67c /* IdCompressor should be defined if enabled */);
|
|
1101
|
+
this.idCompressor.finalizeCreationRange(message.contents);
|
|
1102
|
+
break;
|
|
1023
1103
|
case ContainerMessageType.ChunkedOp:
|
|
1024
1104
|
case ContainerMessageType.Rejoin:
|
|
1025
1105
|
break;
|
|
@@ -1329,17 +1409,21 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1329
1409
|
fullGC,
|
|
1330
1410
|
runSweep,
|
|
1331
1411
|
});
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1412
|
+
try {
|
|
1413
|
+
let gcStats;
|
|
1414
|
+
if (runGC) {
|
|
1415
|
+
gcStats = await this.collectGarbage({ logger: summaryLogger, runSweep, fullGC }, telemetryContext);
|
|
1416
|
+
}
|
|
1417
|
+
const { stats, summary } = await this.summarizerNode.summarize(fullTree, trackState, telemetryContext);
|
|
1418
|
+
(0, common_utils_1.assert)(summary.type === protocol_definitions_1.SummaryType.Tree, 0x12f /* "Container Runtime's summarize should always return a tree" */);
|
|
1419
|
+
return { stats, summary, gcStats };
|
|
1420
|
+
}
|
|
1421
|
+
finally {
|
|
1422
|
+
this.logger.sendTelemetryEvent({
|
|
1423
|
+
eventName: "SummarizeTelemetry",
|
|
1424
|
+
details: telemetryContext.serialize(),
|
|
1425
|
+
});
|
|
1335
1426
|
}
|
|
1336
|
-
const { stats, summary } = await this.summarizerNode.summarize(fullTree, trackState, telemetryContext);
|
|
1337
|
-
this.logger.sendTelemetryEvent({
|
|
1338
|
-
eventName: "SummarizeTelemetry",
|
|
1339
|
-
details: telemetryContext.serialize(),
|
|
1340
|
-
});
|
|
1341
|
-
(0, common_utils_1.assert)(summary.type === protocol_definitions_1.SummaryType.Tree, 0x12f /* "Container Runtime's summarize should always return a tree" */);
|
|
1342
|
-
return { stats, summary, gcStats };
|
|
1343
1427
|
}
|
|
1344
1428
|
/**
|
|
1345
1429
|
* Before GC runs, called by the garbage collector to update any pending GC state. This is mainly used to notify
|
|
@@ -1726,6 +1810,35 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1726
1810
|
this.verifyNotClosed();
|
|
1727
1811
|
return this.blobManager.createBlob(blob);
|
|
1728
1812
|
}
|
|
1813
|
+
maybeSubmitIdAllocationOp(type) {
|
|
1814
|
+
var _a, _b;
|
|
1815
|
+
if (type !== ContainerMessageType.IdAllocation) {
|
|
1816
|
+
let idAllocationBatchMessage;
|
|
1817
|
+
let idRange;
|
|
1818
|
+
if (this.idCompressorEnabled) {
|
|
1819
|
+
(0, common_utils_1.assert)(this.idCompressor !== undefined, 0x67d /* IdCompressor should be defined if enabled */);
|
|
1820
|
+
idRange = this.idCompressor.takeNextCreationRange();
|
|
1821
|
+
// Don't include the idRange if there weren't any Ids allocated
|
|
1822
|
+
idRange = ((_a = idRange === null || idRange === void 0 ? void 0 : idRange.ids) === null || _a === void 0 ? void 0 : _a.first) !== undefined ? idRange : undefined;
|
|
1823
|
+
}
|
|
1824
|
+
if (idRange !== undefined) {
|
|
1825
|
+
const idAllocationMessage = {
|
|
1826
|
+
type: ContainerMessageType.IdAllocation,
|
|
1827
|
+
contents: idRange,
|
|
1828
|
+
};
|
|
1829
|
+
idAllocationBatchMessage = {
|
|
1830
|
+
contents: JSON.stringify(idAllocationMessage),
|
|
1831
|
+
deserializedContent: idAllocationMessage,
|
|
1832
|
+
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
1833
|
+
metadata: undefined,
|
|
1834
|
+
localOpMetadata: (_b = this.idCompressor) === null || _b === void 0 ? void 0 : _b.serialize(true),
|
|
1835
|
+
};
|
|
1836
|
+
}
|
|
1837
|
+
if (idAllocationBatchMessage !== undefined) {
|
|
1838
|
+
this.outbox.submit(idAllocationBatchMessage);
|
|
1839
|
+
}
|
|
1840
|
+
}
|
|
1841
|
+
}
|
|
1729
1842
|
submit(type, contents, localOpMetadata = undefined, metadata = undefined) {
|
|
1730
1843
|
this.verifyNotClosed();
|
|
1731
1844
|
this.verifyCanSubmitOps();
|
|
@@ -1748,6 +1861,11 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1748
1861
|
referenceSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
1749
1862
|
};
|
|
1750
1863
|
try {
|
|
1864
|
+
// Submit an IdAllocation op if any Ids have been generated since
|
|
1865
|
+
// the last op was submitted. Don't submit another if it's an IdAllocation
|
|
1866
|
+
// op as that means we're in resubmission flow and we don't want to send
|
|
1867
|
+
// IdRanges out of order.
|
|
1868
|
+
this.maybeSubmitIdAllocationOp(type);
|
|
1751
1869
|
// If this is attach message for new data store, and we are in a batch, send this op out of order
|
|
1752
1870
|
// Is it safe:
|
|
1753
1871
|
// Yes, this should be safe reordering. Newly created data stores are not visible through API surface.
|
|
@@ -1884,6 +2002,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1884
2002
|
break;
|
|
1885
2003
|
case ContainerMessageType.Attach:
|
|
1886
2004
|
case ContainerMessageType.Alias:
|
|
2005
|
+
case ContainerMessageType.IdAllocation:
|
|
1887
2006
|
this.submit(type, content, localOpMetadata);
|
|
1888
2007
|
break;
|
|
1889
2008
|
case ContainerMessageType.ChunkedOp:
|
|
@@ -1933,6 +2052,19 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1933
2052
|
ackHandle,
|
|
1934
2053
|
targetSequenceNumber: summaryRefSeq,
|
|
1935
2054
|
}, readAndParseBlob);
|
|
2055
|
+
/**
|
|
2056
|
+
* back-compat - Older loaders and drivers (pre 2.0.0-internal.1.4) don't have fetchSource as a param in the
|
|
2057
|
+
* getVersions API. So, they will not fetch the latest snapshot from network in the previous fetch call. For
|
|
2058
|
+
* these scenarios, fetch the snapshot corresponding to the ack handle to have the same behavior before the
|
|
2059
|
+
* change that started fetching latest snapshot always.
|
|
2060
|
+
*/
|
|
2061
|
+
if (fetchResult.latestSnapshotRefSeq < summaryRefSeq) {
|
|
2062
|
+
fetchResult = await this.fetchSnapshotFromStorage(summaryLogger, {
|
|
2063
|
+
eventName: "RefreshLatestSummaryAckFetchBackCompat",
|
|
2064
|
+
ackHandle,
|
|
2065
|
+
targetSequenceNumber: summaryRefSeq,
|
|
2066
|
+
}, readAndParseBlob, ackHandle);
|
|
2067
|
+
}
|
|
1936
2068
|
/**
|
|
1937
2069
|
* If the fetched snapshot is older than the one for which the ack was received, close the container.
|
|
1938
2070
|
* This should never happen because an ack should be sent after the latest summary is updated in the server.
|
|
@@ -1944,21 +2076,13 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1944
2076
|
* state.
|
|
1945
2077
|
*/
|
|
1946
2078
|
if (fetchResult.latestSnapshotRefSeq < summaryRefSeq) {
|
|
1947
|
-
|
|
1948
|
-
fetchResult = await this.fetchSnapshotFromStorage(summaryLogger, {
|
|
1949
|
-
eventName: "RefreshLatestSummaryAckFetch",
|
|
2079
|
+
const error = container_utils_1.DataProcessingError.create("Fetched snapshot is older than the received ack", "RefreshLatestSummaryAck", undefined /* sequencedMessage */, {
|
|
1950
2080
|
ackHandle,
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
|
|
1955
|
-
|
|
1956
|
-
summaryRefSeq,
|
|
1957
|
-
fetchedSnapshotRefSeq: fetchResult.latestSnapshotRefSeq,
|
|
1958
|
-
});
|
|
1959
|
-
this.closeFn(error);
|
|
1960
|
-
throw error;
|
|
1961
|
-
}
|
|
2081
|
+
summaryRefSeq,
|
|
2082
|
+
fetchedSnapshotRefSeq: fetchResult.latestSnapshotRefSeq,
|
|
2083
|
+
});
|
|
2084
|
+
this.closeFn(error);
|
|
2085
|
+
throw error;
|
|
1962
2086
|
}
|
|
1963
2087
|
// In case we had to retrieve the latest snapshot and it is different than summaryRefSeq,
|
|
1964
2088
|
// wait for the delta manager to catch up before refreshing the latest Summary.
|
|
@@ -1997,15 +2121,7 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
1997
2121
|
}
|
|
1998
2122
|
async fetchSnapshotFromStorage(logger, event, readAndParseBlob, versionId) {
|
|
1999
2123
|
var _a;
|
|
2000
|
-
const
|
|
2001
|
-
if (recoveryMethod === "restart") {
|
|
2002
|
-
const error = new container_utils_1.GenericError("Restarting summarizer instead of refreshing");
|
|
2003
|
-
this.mc.logger.sendTelemetryEvent(Object.assign(Object.assign({}, event), { eventName: "ClosingSummarizerOnSummaryStale", codePath: event.eventName, message: "Stopping fetch from storage", versionId: versionId != null ? versionId : undefined }), error);
|
|
2004
|
-
(_a = this._summarizer) === null || _a === void 0 ? void 0 : _a.stop("latestSummaryStateStale");
|
|
2005
|
-
this.closeFn();
|
|
2006
|
-
throw error;
|
|
2007
|
-
}
|
|
2008
|
-
return telemetry_utils_1.PerformanceEvent.timedExecAsync(logger, event, async (perfEvent) => {
|
|
2124
|
+
const snapshotResults = await telemetry_utils_1.PerformanceEvent.timedExecAsync(logger, event, async (perfEvent) => {
|
|
2009
2125
|
const stats = {};
|
|
2010
2126
|
const trace = common_utils_1.Trace.start();
|
|
2011
2127
|
const versions = await this.storage.getVersions(versionId, 1, "refreshLatestSummaryAckFromServer", versionId === null ? driver_definitions_1.FetchSource.noCache : undefined);
|
|
@@ -2024,6 +2140,19 @@ class ContainerRuntime extends common_utils_1.TypedEventEmitter {
|
|
|
2024
2140
|
latestSnapshotRefSeq,
|
|
2025
2141
|
};
|
|
2026
2142
|
});
|
|
2143
|
+
// We choose to close the summarizer after the snapshot cache is updated to avoid
|
|
2144
|
+
// situations which the main client (which is likely to be re-elected as the leader again)
|
|
2145
|
+
// loads the summarizer from cache.
|
|
2146
|
+
if (this.summaryStateUpdateMethod === "restart") {
|
|
2147
|
+
const error = new container_utils_1.GenericError("Restarting summarizer instead of refreshing");
|
|
2148
|
+
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);
|
|
2149
|
+
// Delay 10 seconds before restarting summarizer to prevent the summarizer from restarting too frequently.
|
|
2150
|
+
await (0, common_utils_1.delay)(this.closeSummarizerDelayMs);
|
|
2151
|
+
(_a = this._summarizer) === null || _a === void 0 ? void 0 : _a.stop("latestSummaryStateStale");
|
|
2152
|
+
this.closeFn();
|
|
2153
|
+
throw error;
|
|
2154
|
+
}
|
|
2155
|
+
return snapshotResults;
|
|
2027
2156
|
}
|
|
2028
2157
|
notifyAttaching() { } // do nothing (deprecated method)
|
|
2029
2158
|
getPendingLocalState() {
|