@fluidframework/container-runtime 0.59.2000-63294 → 0.59.3000-66610
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/.eslintrc.js +0 -1
- package/dist/batchTracker.js +1 -1
- package/dist/batchTracker.js.map +1 -1
- package/dist/blobManager.js +8 -8
- package/dist/blobManager.js.map +1 -1
- package/dist/connectionTelemetry.js +8 -8
- package/dist/connectionTelemetry.js.map +1 -1
- package/dist/containerHandleContext.js +1 -1
- package/dist/containerHandleContext.js.map +1 -1
- package/dist/containerRuntime.d.ts +27 -17
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +149 -174
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStore.js +1 -1
- package/dist/dataStore.js.map +1 -1
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +44 -44
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreContexts.d.ts +2 -2
- package/dist/dataStoreContexts.d.ts.map +1 -1
- package/dist/dataStoreContexts.js +8 -8
- package/dist/dataStoreContexts.js.map +1 -1
- package/dist/dataStores.d.ts +4 -2
- package/dist/dataStores.d.ts.map +1 -1
- package/dist/dataStores.js +45 -33
- package/dist/dataStores.js.map +1 -1
- package/dist/garbageCollection.d.ts +23 -23
- package/dist/garbageCollection.d.ts.map +1 -1
- package/dist/garbageCollection.js +81 -50
- package/dist/garbageCollection.js.map +1 -1
- package/dist/opTelemetry.js +1 -1
- package/dist/opTelemetry.js.map +1 -1
- package/dist/orderedClientElection.d.ts.map +1 -1
- package/dist/orderedClientElection.js +2 -2
- package/dist/orderedClientElection.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.js +17 -17
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/runWhileConnectedCoordinator.js +1 -1
- package/dist/runWhileConnectedCoordinator.js.map +1 -1
- package/dist/runningSummarizer.d.ts.map +1 -1
- package/dist/runningSummarizer.js +7 -6
- package/dist/runningSummarizer.js.map +1 -1
- package/dist/summarizer.d.ts.map +1 -1
- package/dist/summarizer.js +4 -3
- package/dist/summarizer.js.map +1 -1
- package/dist/summarizerClientElection.js.map +1 -1
- package/dist/summarizerHeuristics.d.ts +1 -1
- package/dist/summarizerHeuristics.d.ts.map +1 -1
- package/dist/summarizerHeuristics.js +1 -1
- package/dist/summarizerHeuristics.js.map +1 -1
- package/dist/summarizerTypes.d.ts +4 -2
- package/dist/summarizerTypes.d.ts.map +1 -1
- package/dist/summarizerTypes.js.map +1 -1
- package/dist/summaryCollection.js +2 -2
- package/dist/summaryCollection.js.map +1 -1
- package/dist/summaryFormat.d.ts +37 -11
- package/dist/summaryFormat.d.ts.map +1 -1
- package/dist/summaryFormat.js +12 -4
- package/dist/summaryFormat.js.map +1 -1
- package/dist/summaryGenerator.d.ts.map +1 -1
- package/dist/summaryGenerator.js +6 -4
- package/dist/summaryGenerator.js.map +1 -1
- package/dist/summaryManager.js +5 -5
- package/dist/summaryManager.js.map +1 -1
- package/dist/throttler.js +2 -2
- package/dist/throttler.js.map +1 -1
- package/lib/blobManager.js.map +1 -1
- package/lib/containerRuntime.d.ts +27 -17
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +68 -93
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStore.js.map +1 -1
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreContexts.d.ts +2 -2
- package/lib/dataStoreContexts.d.ts.map +1 -1
- package/lib/dataStoreContexts.js +2 -2
- package/lib/dataStoreContexts.js.map +1 -1
- package/lib/dataStores.d.ts +4 -2
- package/lib/dataStores.d.ts.map +1 -1
- package/lib/dataStores.js +22 -10
- package/lib/dataStores.js.map +1 -1
- package/lib/garbageCollection.d.ts +23 -23
- package/lib/garbageCollection.d.ts.map +1 -1
- package/lib/garbageCollection.js +68 -37
- package/lib/garbageCollection.js.map +1 -1
- package/lib/opTelemetry.js.map +1 -1
- package/lib/orderedClientElection.d.ts.map +1 -1
- package/lib/orderedClientElection.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/runningSummarizer.d.ts.map +1 -1
- package/lib/runningSummarizer.js +4 -3
- package/lib/runningSummarizer.js.map +1 -1
- package/lib/summarizer.d.ts.map +1 -1
- package/lib/summarizer.js +1 -0
- package/lib/summarizer.js.map +1 -1
- package/lib/summarizerClientElection.js.map +1 -1
- package/lib/summarizerHeuristics.d.ts +1 -1
- package/lib/summarizerHeuristics.d.ts.map +1 -1
- package/lib/summarizerHeuristics.js +1 -1
- package/lib/summarizerHeuristics.js.map +1 -1
- package/lib/summarizerTypes.d.ts +4 -2
- package/lib/summarizerTypes.d.ts.map +1 -1
- package/lib/summarizerTypes.js.map +1 -1
- package/lib/summaryCollection.js.map +1 -1
- package/lib/summaryFormat.d.ts +37 -11
- package/lib/summaryFormat.d.ts.map +1 -1
- package/lib/summaryFormat.js +10 -2
- package/lib/summaryFormat.js.map +1 -1
- package/lib/summaryGenerator.d.ts.map +1 -1
- package/lib/summaryGenerator.js +2 -0
- package/lib/summaryGenerator.js.map +1 -1
- package/lib/summaryManager.js.map +1 -1
- package/lib/throttler.js.map +1 -1
- package/package.json +26 -20
- package/src/blobManager.ts +3 -3
- package/src/containerRuntime.ts +108 -137
- package/src/dataStoreContext.ts +8 -11
- package/src/dataStoreContexts.ts +5 -5
- package/src/dataStores.ts +30 -13
- package/src/garbageCollection.ts +100 -57
- package/src/orderedClientElection.ts +5 -10
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +2 -2
- package/src/runningSummarizer.ts +8 -9
- package/src/summarizer.ts +2 -2
- package/src/summarizerHeuristics.ts +1 -1
- package/src/summarizerTypes.ts +8 -6
- package/src/summaryFormat.ts +38 -11
- package/src/summaryGenerator.ts +7 -5
- package/src/summaryManager.ts +2 -2
- package/src/throttler.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../src/containerRuntime.ts"],"names":[],"mappings":";AAAA;;;GAGG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAgD,gBAAgB,EAAE,MAAM,oCAAoC,CAAC;AACpH,OAAO,EACH,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,SAAS,EACZ,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACH,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EAEb,QAAQ,EACR,uBAAuB,EACvB,WAAW,EACX,cAAc,EAEjB,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EACH,iBAAiB,EACjB,uBAAuB,EAC1B,MAAM,+CAA+C,CAAC;AACvD,OAAO,EAGH,iBAAiB,EAGpB,MAAM,8BAA8B,CAAC;AAWtC,OAAO,EAAgB,uBAAuB,EAAmB,MAAM,oCAAoC,CAAC;AAQ5G,OAAO,EACH,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,yBAAyB,EACzB,cAAc,EACd,qBAAqB,EAErB,YAAY,EACZ,WAAW,EAEd,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EACH,SAAS,EAET,8BAA8B,EAC9B,uBAAuB,EAEvB,sBAAsB,EAKtB,kCAAkC,EAClC,qBAAqB,EAMrB,UAAU,EACb,MAAM,qCAAqC,CAAC;AAsB7C,OAAO,EAAE,kBAAkB,EAAuB,MAAM,uBAAuB,CAAC;AAmBhF,OAAO,EACH,mBAAmB,EAGnB,qBAAqB,EACrB,WAAW,EACX,4BAA4B,EAC5B,kBAAkB,EAClB,kBAAkB,EACrB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAEH,UAAU,EAEV,yBAAyB,EAEzB,QAAQ,EACX,MAAM,qBAAqB,CAAC;AAS7B,oBAAY,oBAAoB;IAE5B,gBAAgB,cAAc;IAG9B,MAAM,WAAW;IAGjB,SAAS,cAAc;IAGvB,UAAU,eAAe;IAGzB,MAAM,WAAW;IAGjB,KAAK,UAAU;CAClB;AAED,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,MAAM,CAAC;IAEhB,WAAW,EAAE,MAAM,CAAC;IAEpB,QAAQ,EAAE,MAAM,CAAC;IAEjB,YAAY,EAAE,WAAW,GAAG,oBAAoB,CAAC;CACpD;AAED,MAAM,WAAW,uBAAuB;IACpC,QAAQ,EAAE,GAAG,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;CAC9B;AAmBD,MAAM,WAAW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"containerRuntime.d.ts","sourceRoot":"","sources":["../src/containerRuntime.ts"],"names":[],"mappings":"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"}
|
package/lib/containerRuntime.js
CHANGED
|
@@ -2,7 +2,7 @@ import { AttachState, LoaderHeader, } from "@fluidframework/container-definition
|
|
|
2
2
|
import { assert, Trace, TypedEventEmitter, unreachableCase, performance, } from "@fluidframework/common-utils";
|
|
3
3
|
import { ChildLogger, raiseConnectedEvent, PerformanceEvent, normalizeError, TaggedLoggerAdapter, loggerToMonitoringContext, TelemetryDataTag, } from "@fluidframework/telemetry-utils";
|
|
4
4
|
import { DriverHeader } from "@fluidframework/driver-definitions";
|
|
5
|
-
import { readAndParse
|
|
5
|
+
import { readAndParse } from "@fluidframework/driver-utils";
|
|
6
6
|
import { DataCorruptionError, GenericError, UsageError, extractSafePropertiesFromMessage, } from "@fluidframework/container-utils";
|
|
7
7
|
import { MessageType, SummaryType, } from "@fluidframework/protocol-definitions";
|
|
8
8
|
import { FlushMode, channelsTreeName, } from "@fluidframework/runtime-definitions";
|
|
@@ -372,8 +372,8 @@ export function getDeviceSpec() {
|
|
|
372
372
|
* It will define the store level mappings.
|
|
373
373
|
*/
|
|
374
374
|
export class ContainerRuntime extends TypedEventEmitter {
|
|
375
|
-
constructor(context, registry, metadata, electedSummarizerData, chunks, dataStoreAliasMap, runtimeOptions, containerScope, logger, existing, blobManagerSnapshot, requestHandler
|
|
376
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j;
|
|
375
|
+
constructor(context, registry, metadata, electedSummarizerData, chunks, dataStoreAliasMap, runtimeOptions, containerScope, logger, existing, blobManagerSnapshot, requestHandler) {
|
|
376
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
377
377
|
super();
|
|
378
378
|
this.context = context;
|
|
379
379
|
this.registry = registry;
|
|
@@ -381,7 +381,6 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
381
381
|
this.containerScope = containerScope;
|
|
382
382
|
this.logger = logger;
|
|
383
383
|
this.requestHandler = requestHandler;
|
|
384
|
-
this._storage = _storage;
|
|
385
384
|
this.defaultMaxConsecutiveReconnects = 15;
|
|
386
385
|
this._orderSequentiallyCalls = 0;
|
|
387
386
|
this.needsFlush = false;
|
|
@@ -440,21 +439,6 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
440
439
|
}
|
|
441
440
|
};
|
|
442
441
|
this.messageAtLastSummary = metadata === null || metadata === void 0 ? void 0 : metadata.message;
|
|
443
|
-
// If this is an existing container, we get values from metadata.
|
|
444
|
-
// otherwise, we initialize them.
|
|
445
|
-
if (existing) {
|
|
446
|
-
this.createContainerMetadata = {
|
|
447
|
-
createContainerRuntimeVersion: metadata === null || metadata === void 0 ? void 0 : metadata.createContainerRuntimeVersion,
|
|
448
|
-
createContainerTimestamp: metadata === null || metadata === void 0 ? void 0 : metadata.createContainerTimestamp,
|
|
449
|
-
};
|
|
450
|
-
this.summaryCount = metadata === null || metadata === void 0 ? void 0 : metadata.summaryCount;
|
|
451
|
-
}
|
|
452
|
-
else {
|
|
453
|
-
this.createContainerMetadata = {
|
|
454
|
-
createContainerRuntimeVersion: pkgVersion,
|
|
455
|
-
createContainerTimestamp: Date.now(),
|
|
456
|
-
};
|
|
457
|
-
}
|
|
458
442
|
// Default to false (enabled).
|
|
459
443
|
this.disableIsolatedChannels = (_a = this.runtimeOptions.summaryOptions.disableIsolatedChannels) !== null && _a !== void 0 ? _a : false;
|
|
460
444
|
this._connected = this.context.connected;
|
|
@@ -465,7 +449,8 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
465
449
|
((_b = this.mc.config.getBoolean(useDataStoreAliasingKey)) !== null && _b !== void 0 ? _b : false) ||
|
|
466
450
|
((_c = runtimeOptions.useDataStoreAliasing) !== null && _c !== void 0 ? _c : false);
|
|
467
451
|
this._maxOpSizeInBytes = ((_d = this.mc.config.getNumber(maxOpSizeInBytesKey)) !== null && _d !== void 0 ? _d : defaultMaxOpSizeInBytes);
|
|
468
|
-
this.maxConsecutiveReconnects =
|
|
452
|
+
this.maxConsecutiveReconnects =
|
|
453
|
+
(_e = this.mc.config.getNumber(maxConsecutiveReconnectsKey)) !== null && _e !== void 0 ? _e : this.defaultMaxConsecutiveReconnects;
|
|
469
454
|
this._flushMode = runtimeOptions.flushMode;
|
|
470
455
|
this.garbageCollector = GarbageCollector.create(this, this.runtimeOptions.gcOptions, (nodePath) => this.getGCNodePackagePath(nodePath), () => { var _a; return (_a = this.messageAtLastSummary) === null || _a === void 0 ? void 0 : _a.timestamp; }, context.baseSnapshot, async (id) => readAndParse(this.storage, id), this.mc.logger, existing, metadata);
|
|
471
456
|
const loadedFromSequenceNumber = this.deltaManager.initialSequenceNumber;
|
|
@@ -572,8 +557,27 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
572
557
|
}
|
|
573
558
|
// logging hardware telemetry
|
|
574
559
|
logger.sendTelemetryEvent(Object.assign({ eventName: "DeviceSpec" }, getDeviceSpec()));
|
|
575
|
-
|
|
576
|
-
|
|
560
|
+
let loadSummaryNumber;
|
|
561
|
+
// Get the container creation metadata. For new container, we initialize these. For existing containers,
|
|
562
|
+
// get the values from the metadata blob.
|
|
563
|
+
if (existing) {
|
|
564
|
+
this.createContainerMetadata = {
|
|
565
|
+
createContainerRuntimeVersion: metadata === null || metadata === void 0 ? void 0 : metadata.createContainerRuntimeVersion,
|
|
566
|
+
createContainerTimestamp: metadata === null || metadata === void 0 ? void 0 : metadata.createContainerTimestamp,
|
|
567
|
+
};
|
|
568
|
+
// back-compat 0.59.3000 - Older document may either write summaryCount or not write it at all. If it does
|
|
569
|
+
// not write it, initialize summaryNumber to 0.
|
|
570
|
+
loadSummaryNumber = (_l = (_k = metadata === null || metadata === void 0 ? void 0 : metadata.summaryNumber) !== null && _k !== void 0 ? _k : metadata === null || metadata === void 0 ? void 0 : metadata.summaryCount) !== null && _l !== void 0 ? _l : 0;
|
|
571
|
+
}
|
|
572
|
+
else {
|
|
573
|
+
this.createContainerMetadata = {
|
|
574
|
+
createContainerRuntimeVersion: pkgVersion,
|
|
575
|
+
createContainerTimestamp: Date.now(),
|
|
576
|
+
};
|
|
577
|
+
loadSummaryNumber = 0;
|
|
578
|
+
}
|
|
579
|
+
this.nextSummaryNumber = loadSummaryNumber + 1;
|
|
580
|
+
this.logger.sendTelemetryEvent(Object.assign(Object.assign(Object.assign({ eventName: "ContainerLoadStats" }, this.createContainerMetadata), this.dataStores.containerLoadStats), { summaryNumber: loadSummaryNumber, summaryFormatVersion: metadata === null || metadata === void 0 ? void 0 : metadata.summaryFormatVersion, disableIsolatedChannels: metadata === null || metadata === void 0 ? void 0 : metadata.disableIsolatedChannels, gcVersion: metadata === null || metadata === void 0 ? void 0 : metadata.gcFeature }));
|
|
577
581
|
ReportOpPerfTelemetry(this.context.clientId, this.deltaManager, this.logger);
|
|
578
582
|
BindBatchTracker(this, this.logger);
|
|
579
583
|
this.opTracker = new OpTracker(this.deltaManager, this.mc.config.getBoolean(disableOpTrackingKey) === true);
|
|
@@ -600,28 +604,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
600
604
|
},
|
|
601
605
|
});
|
|
602
606
|
const { summaryOptions = {}, gcOptions = {}, loadSequenceNumberVerification = "close", useDataStoreAliasing = false, flushMode = defaultFlushMode, } = runtimeOptions;
|
|
603
|
-
|
|
604
|
-
// then there are no .channel layers, we pack at level 1, otherwise we pack at level 2
|
|
605
|
-
const packingLevel = summaryOptions.disableIsolatedChannels ? 1 : 2;
|
|
606
|
-
let storage = context.storage;
|
|
607
|
-
if (context.baseSnapshot) {
|
|
608
|
-
// This will patch snapshot in place!
|
|
609
|
-
// If storage is provided, it will wrap storage with BlobAggregationStorage that can
|
|
610
|
-
// pack & unpack aggregated blobs.
|
|
611
|
-
// Note that if storage is provided later by loader layer, we will wrap storage in this.storage getter.
|
|
612
|
-
// BlobAggregationStorage is smart enough for double-wrapping to be no-op
|
|
613
|
-
if (context.attachState === AttachState.Attached) {
|
|
614
|
-
// IContainerContext storage api return type still has undefined in 0.39 package version.
|
|
615
|
-
// So once we release 0.40 container-defn package we can remove this check.
|
|
616
|
-
assert(context.storage !== undefined, 0x1f4 /* "Attached state should have storage" */);
|
|
617
|
-
const aggrStorage = BlobAggregationStorage.wrap(context.storage, logger, undefined /* allowPacking */, packingLevel);
|
|
618
|
-
await aggrStorage.unpackSnapshot(context.baseSnapshot);
|
|
619
|
-
storage = aggrStorage;
|
|
620
|
-
}
|
|
621
|
-
else {
|
|
622
|
-
await BlobAggregationStorage.unpackSnapshot(context.baseSnapshot);
|
|
623
|
-
}
|
|
624
|
-
}
|
|
607
|
+
const storage = context.storage;
|
|
625
608
|
const registry = new FluidDataStoreRegistry(registryEntries);
|
|
626
609
|
const tryFetchBlob = async (blobName) => {
|
|
627
610
|
var _a;
|
|
@@ -671,7 +654,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
671
654
|
loadSequenceNumberVerification,
|
|
672
655
|
useDataStoreAliasing,
|
|
673
656
|
flushMode,
|
|
674
|
-
}, containerScope, logger, loadExisting, blobManagerSnapshot, requestHandler
|
|
657
|
+
}, containerScope, logger, loadExisting, blobManagerSnapshot, requestHandler);
|
|
675
658
|
return runtime;
|
|
676
659
|
}
|
|
677
660
|
get options() {
|
|
@@ -687,20 +670,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
687
670
|
return this.context.deltaManager;
|
|
688
671
|
}
|
|
689
672
|
get storage() {
|
|
690
|
-
|
|
691
|
-
// All callers should be fixed, as this API is called in detached state of container when we have
|
|
692
|
-
// no storage and it's passed down the stack without right typing.
|
|
693
|
-
// back-compat 0.40 NoStorageInDetachedMode. Also, IContainerContext storage api return type still
|
|
694
|
-
// has undefined in 0.39 package version.
|
|
695
|
-
// So once we release 0.40 container-defn package we can remove this check.
|
|
696
|
-
if (!this._storage && this.context.storage) {
|
|
697
|
-
// Note: BlobAggregationStorage is smart enough for double-wrapping to be no-op
|
|
698
|
-
// If isolated channels are disabled, then there are no .channel layers, we pack at level 1,
|
|
699
|
-
// otherwise we pack at level 2
|
|
700
|
-
this._storage = BlobAggregationStorage.wrap(this.context.storage, this.logger, undefined /* allowPacking */, this.disableIsolatedChannels ? 1 : 2);
|
|
701
|
-
}
|
|
702
|
-
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
703
|
-
return this._storage;
|
|
673
|
+
return this.context.storage;
|
|
704
674
|
}
|
|
705
675
|
get reSubmitFn() {
|
|
706
676
|
// eslint-disable-next-line @typescript-eslint/unbound-method
|
|
@@ -845,7 +815,8 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
845
815
|
async getDataStoreFromRequest(id, request) {
|
|
846
816
|
var _a, _b, _c;
|
|
847
817
|
const wait = typeof ((_a = request.headers) === null || _a === void 0 ? void 0 : _a[RuntimeHeaders.wait]) === "boolean"
|
|
848
|
-
? (_b = request.headers) === null || _b === void 0 ? void 0 : _b[RuntimeHeaders.wait]
|
|
818
|
+
? (_b = request.headers) === null || _b === void 0 ? void 0 : _b[RuntimeHeaders.wait]
|
|
819
|
+
: true;
|
|
849
820
|
const dataStoreContext = await this.dataStores.getDataStore(id, wait);
|
|
850
821
|
/**
|
|
851
822
|
* If GC should run and this an external app request with "externalRequest" header, we need to return
|
|
@@ -867,16 +838,22 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
867
838
|
this.garbageCollector.nodeUpdated(`/${id}`, "Loaded", undefined /* timestampMs */, dataStoreContext.packagePath, request === null || request === void 0 ? void 0 : request.headers);
|
|
868
839
|
return dataStoreChannel;
|
|
869
840
|
}
|
|
870
|
-
|
|
841
|
+
/** Adds the container's metadata to the given summary tree. */
|
|
842
|
+
addMetadataToSummary(summaryTree) {
|
|
871
843
|
var _a;
|
|
872
|
-
|
|
844
|
+
const metadata = Object.assign(Object.assign(Object.assign(Object.assign({}, this.createContainerMetadata), {
|
|
845
|
+
// back-compat 0.59.3000: This is renamed to summaryNumber. Can be removed when 0.59.3000 saturates.
|
|
846
|
+
summaryCount: this.nextSummaryNumber,
|
|
847
|
+
// Increment the summary number for the next summary that will be generated.
|
|
848
|
+
summaryNumber: this.nextSummaryNumber++, summaryFormatVersion: 1, disableIsolatedChannels: this.disableIsolatedChannels || undefined }), this.garbageCollector.getMetadata()), {
|
|
873
849
|
// The last message processed at the time of summary. If there are no new messages, use the message from the
|
|
874
850
|
// last summary.
|
|
875
|
-
message: (_a = extractSummaryMetadataMessage(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary
|
|
851
|
+
message: (_a = extractSummaryMetadataMessage(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary });
|
|
852
|
+
addBlobToSummary(summaryTree, metadataBlobName, JSON.stringify(metadata));
|
|
876
853
|
}
|
|
877
854
|
addContainerStateToSummary(summaryTree) {
|
|
878
855
|
var _a;
|
|
879
|
-
|
|
856
|
+
this.addMetadataToSummary(summaryTree);
|
|
880
857
|
if (this.chunkMap.size > 0) {
|
|
881
858
|
const content = JSON.stringify([...this.chunkMap]);
|
|
882
859
|
addBlobToSummary(summaryTree, chunksBlobName, content);
|
|
@@ -889,11 +866,11 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
889
866
|
const electedSummarizerContent = JSON.stringify((_a = this.summarizerClientElection) === null || _a === void 0 ? void 0 : _a.serialize());
|
|
890
867
|
addBlobToSummary(summaryTree, electedSummarizerBlobName, electedSummarizerContent);
|
|
891
868
|
}
|
|
892
|
-
const
|
|
869
|
+
const blobManagerSummary = this.blobManager.summarize();
|
|
893
870
|
// Some storage (like git) doesn't allow empty tree, so we can omit it.
|
|
894
871
|
// and the blob manager can handle the tree not existing when loading
|
|
895
|
-
if (Object.keys(
|
|
896
|
-
addTreeToSummary(summaryTree, blobsTreeName,
|
|
872
|
+
if (Object.keys(blobManagerSummary.summary.tree).length > 0) {
|
|
873
|
+
addTreeToSummary(summaryTree, blobsTreeName, blobManagerSummary);
|
|
897
874
|
}
|
|
898
875
|
if (this.garbageCollector.writeDataAtRoot) {
|
|
899
876
|
const gcSummary = this.garbageCollector.summarize();
|
|
@@ -1430,31 +1407,30 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1430
1407
|
return (_b = (_a = this.deltaManager.lastMessage) === null || _a === void 0 ? void 0 : _a.timestamp) !== null && _b !== void 0 ? _b : (_c = this.messageAtLastSummary) === null || _c === void 0 ? void 0 : _c.timestamp;
|
|
1431
1408
|
}
|
|
1432
1409
|
/**
|
|
1433
|
-
* Returns the type of the GC node. Currently, there are nodes that belong to
|
|
1434
|
-
*
|
|
1410
|
+
* Returns the type of the GC node. Currently, there are nodes that belong to the root ("/"), data stores or
|
|
1411
|
+
* blob manager.
|
|
1435
1412
|
*/
|
|
1436
1413
|
getNodeType(nodePath) {
|
|
1414
|
+
var _a;
|
|
1437
1415
|
if (this.isBlobPath(nodePath)) {
|
|
1438
1416
|
return GCNodeType.Blob;
|
|
1439
1417
|
}
|
|
1440
|
-
|
|
1441
|
-
return GCNodeType.DataStore;
|
|
1442
|
-
}
|
|
1443
|
-
// Root node ("/") and DDS nodes belong to "Other" node types.
|
|
1444
|
-
return GCNodeType.Other;
|
|
1418
|
+
return (_a = this.dataStores.getGCNodeType(nodePath)) !== null && _a !== void 0 ? _a : GCNodeType.Other;
|
|
1445
1419
|
}
|
|
1446
1420
|
/**
|
|
1447
1421
|
* Called by GC to retrieve the package path of the node with the given path. The node should belong to a
|
|
1448
1422
|
* data store or an attachment blob.
|
|
1449
1423
|
*/
|
|
1450
1424
|
getGCNodePackagePath(nodePath) {
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1425
|
+
switch (this.getNodeType(nodePath)) {
|
|
1426
|
+
case GCNodeType.Blob:
|
|
1427
|
+
return ["_blobs"];
|
|
1428
|
+
case GCNodeType.DataStore:
|
|
1429
|
+
case GCNodeType.SubDataStore:
|
|
1430
|
+
return this.dataStores.getDataStorePackagePath(nodePath);
|
|
1431
|
+
default:
|
|
1432
|
+
assert(false, 0x2de /* "Package path requested for unsupported node type." */);
|
|
1454
1433
|
}
|
|
1455
|
-
const dataStorePkgPath = this.dataStores.getDataStorePackagePath(nodePath);
|
|
1456
|
-
assert(dataStorePkgPath !== undefined, 0x2d6 /* "Package path requested for unknown node type." */);
|
|
1457
|
-
return dataStorePkgPath;
|
|
1458
1434
|
}
|
|
1459
1435
|
/**
|
|
1460
1436
|
* Returns whether a given path is for attachment blobs that are in the format - "/BlobManager.basePath/...".
|
|
@@ -1493,11 +1469,17 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1493
1469
|
async submitSummary(options) {
|
|
1494
1470
|
var _a, _b, _c;
|
|
1495
1471
|
const { fullTree, refreshLatestAck, summaryLogger } = options;
|
|
1472
|
+
// The summary number for this summary. This will be updated during the summary process, so get it now and
|
|
1473
|
+
// use it for all events logged during this summary.
|
|
1474
|
+
const summaryNumber = this.nextSummaryNumber;
|
|
1475
|
+
const summaryNumberLogger = ChildLogger.create(summaryLogger, undefined, {
|
|
1476
|
+
all: { summaryNumber },
|
|
1477
|
+
});
|
|
1496
1478
|
if (refreshLatestAck) {
|
|
1497
|
-
const latestSummaryRefSeq = await this.refreshLatestSummaryAckFromServer(ChildLogger.create(
|
|
1479
|
+
const latestSummaryRefSeq = await this.refreshLatestSummaryAckFromServer(ChildLogger.create(summaryNumberLogger, undefined, { all: { safeSummary: true } }));
|
|
1498
1480
|
if (latestSummaryRefSeq > this.deltaManager.lastSequenceNumber) {
|
|
1499
1481
|
// We need to catch up to the latest summary's reference sequence number before pausing.
|
|
1500
|
-
await PerformanceEvent.timedExecAsync(
|
|
1482
|
+
await PerformanceEvent.timedExecAsync(summaryNumberLogger, {
|
|
1501
1483
|
eventName: "WaitingForSeq",
|
|
1502
1484
|
lastSequenceNumber: this.deltaManager.lastSequenceNumber,
|
|
1503
1485
|
targetSequenceNumber: latestSummaryRefSeq,
|
|
@@ -1513,12 +1495,12 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1513
1495
|
// We should be here is we haven't processed be here. If we are of if the last message's sequence number
|
|
1514
1496
|
// doesn't match the last processed sequence number, log an error.
|
|
1515
1497
|
if (summaryRefSeqNum !== ((_a = this.deltaManager.lastMessage) === null || _a === void 0 ? void 0 : _a.sequenceNumber)) {
|
|
1516
|
-
|
|
1498
|
+
summaryNumberLogger.sendErrorEvent({
|
|
1517
1499
|
eventName: "LastSequenceMismatch",
|
|
1518
1500
|
error: message,
|
|
1519
1501
|
});
|
|
1520
1502
|
}
|
|
1521
|
-
this.summarizerNode.startSummary(summaryRefSeqNum,
|
|
1503
|
+
this.summarizerNode.startSummary(summaryRefSeqNum, summaryNumberLogger);
|
|
1522
1504
|
// Helper function to check whether we should still continue between each async step.
|
|
1523
1505
|
const checkContinue = () => {
|
|
1524
1506
|
// Do not check for loss of connectivity directly! Instead leave it up to
|
|
@@ -1555,13 +1537,6 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1555
1537
|
error: continueResult.error,
|
|
1556
1538
|
};
|
|
1557
1539
|
}
|
|
1558
|
-
// increment summary count
|
|
1559
|
-
if (this.summaryCount !== undefined) {
|
|
1560
|
-
this.summaryCount++;
|
|
1561
|
-
}
|
|
1562
|
-
else {
|
|
1563
|
-
this.summaryCount = 1;
|
|
1564
|
-
}
|
|
1565
1540
|
const trace = Trace.start();
|
|
1566
1541
|
let summarizeResult;
|
|
1567
1542
|
// If the GC state needs to be reset, we need to force a full tree summary and update the unreferenced
|
|
@@ -1571,7 +1546,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1571
1546
|
summarizeResult = await this.summarize({
|
|
1572
1547
|
fullTree: fullTree || forcedFullTree,
|
|
1573
1548
|
trackState: true,
|
|
1574
|
-
summaryLogger,
|
|
1549
|
+
summaryLogger: summaryNumberLogger,
|
|
1575
1550
|
runGC: this.garbageCollector.shouldRunGC,
|
|
1576
1551
|
});
|
|
1577
1552
|
}
|
|
@@ -1595,7 +1570,7 @@ export class ContainerRuntime extends TypedEventEmitter {
|
|
|
1595
1570
|
const gcSummaryTreeStats = summaryTree.tree[gcTreeKey]
|
|
1596
1571
|
? calculateStats(summaryTree.tree[gcTreeKey])
|
|
1597
1572
|
: undefined;
|
|
1598
|
-
const summaryStats = Object.assign({ dataStoreCount: this.dataStores.size, summarizedDataStoreCount: this.dataStores.size - handleCount, gcStateUpdatedDataStoreCount: (_b = summarizeResult.gcStats) === null || _b === void 0 ? void 0 : _b.updatedDataStoreCount, gcBlobNodeCount: gcSummaryTreeStats === null || gcSummaryTreeStats === void 0 ? void 0 : gcSummaryTreeStats.blobNodeCount, gcTotalBlobsSize: gcSummaryTreeStats === null || gcSummaryTreeStats === void 0 ? void 0 : gcSummaryTreeStats.totalBlobSize, opsSizesSinceLastSummary: this.opTracker.opsSizeAccumulator, nonSystemOpsSinceLastSummary: this.opTracker.nonSystemOpCount }, partialStats);
|
|
1573
|
+
const summaryStats = Object.assign({ dataStoreCount: this.dataStores.size, summarizedDataStoreCount: this.dataStores.size - handleCount, gcStateUpdatedDataStoreCount: (_b = summarizeResult.gcStats) === null || _b === void 0 ? void 0 : _b.updatedDataStoreCount, gcBlobNodeCount: gcSummaryTreeStats === null || gcSummaryTreeStats === void 0 ? void 0 : gcSummaryTreeStats.blobNodeCount, gcTotalBlobsSize: gcSummaryTreeStats === null || gcSummaryTreeStats === void 0 ? void 0 : gcSummaryTreeStats.totalBlobSize, opsSizesSinceLastSummary: this.opTracker.opsSizeAccumulator, nonSystemOpsSinceLastSummary: this.opTracker.nonSystemOpCount, summaryNumber }, partialStats);
|
|
1599
1574
|
const generateSummaryData = {
|
|
1600
1575
|
referenceSequenceNumber: summaryRefSeqNum,
|
|
1601
1576
|
minimumSequenceNumber,
|