@fluidframework/container-runtime 0.59.2001 → 0.59.3000

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.
Files changed (143) hide show
  1. package/.eslintrc.js +0 -1
  2. package/dist/batchTracker.js +1 -1
  3. package/dist/batchTracker.js.map +1 -1
  4. package/dist/blobManager.d.ts +8 -1
  5. package/dist/blobManager.d.ts.map +1 -1
  6. package/dist/blobManager.js +27 -17
  7. package/dist/blobManager.js.map +1 -1
  8. package/dist/connectionTelemetry.js +8 -8
  9. package/dist/connectionTelemetry.js.map +1 -1
  10. package/dist/containerHandleContext.js +1 -1
  11. package/dist/containerHandleContext.js.map +1 -1
  12. package/dist/containerRuntime.d.ts +27 -17
  13. package/dist/containerRuntime.d.ts.map +1 -1
  14. package/dist/containerRuntime.js +152 -176
  15. package/dist/containerRuntime.js.map +1 -1
  16. package/dist/dataStore.js +1 -1
  17. package/dist/dataStore.js.map +1 -1
  18. package/dist/dataStoreContext.d.ts.map +1 -1
  19. package/dist/dataStoreContext.js +44 -44
  20. package/dist/dataStoreContext.js.map +1 -1
  21. package/dist/dataStoreContexts.d.ts +2 -2
  22. package/dist/dataStoreContexts.d.ts.map +1 -1
  23. package/dist/dataStoreContexts.js +8 -8
  24. package/dist/dataStoreContexts.js.map +1 -1
  25. package/dist/dataStores.d.ts +6 -4
  26. package/dist/dataStores.d.ts.map +1 -1
  27. package/dist/dataStores.js +50 -37
  28. package/dist/dataStores.js.map +1 -1
  29. package/dist/garbageCollection.d.ts +23 -23
  30. package/dist/garbageCollection.d.ts.map +1 -1
  31. package/dist/garbageCollection.js +81 -50
  32. package/dist/garbageCollection.js.map +1 -1
  33. package/dist/opTelemetry.js +1 -1
  34. package/dist/opTelemetry.js.map +1 -1
  35. package/dist/orderedClientElection.d.ts.map +1 -1
  36. package/dist/orderedClientElection.js +2 -2
  37. package/dist/orderedClientElection.js.map +1 -1
  38. package/dist/packageVersion.d.ts +1 -1
  39. package/dist/packageVersion.js +1 -1
  40. package/dist/packageVersion.js.map +1 -1
  41. package/dist/pendingStateManager.js +17 -17
  42. package/dist/pendingStateManager.js.map +1 -1
  43. package/dist/runWhileConnectedCoordinator.js +1 -1
  44. package/dist/runWhileConnectedCoordinator.js.map +1 -1
  45. package/dist/runningSummarizer.d.ts.map +1 -1
  46. package/dist/runningSummarizer.js +7 -6
  47. package/dist/runningSummarizer.js.map +1 -1
  48. package/dist/summarizer.d.ts.map +1 -1
  49. package/dist/summarizer.js +4 -3
  50. package/dist/summarizer.js.map +1 -1
  51. package/dist/summarizerClientElection.js.map +1 -1
  52. package/dist/summarizerHeuristics.d.ts +1 -1
  53. package/dist/summarizerHeuristics.d.ts.map +1 -1
  54. package/dist/summarizerHeuristics.js +1 -1
  55. package/dist/summarizerHeuristics.js.map +1 -1
  56. package/dist/summarizerTypes.d.ts +4 -2
  57. package/dist/summarizerTypes.d.ts.map +1 -1
  58. package/dist/summarizerTypes.js.map +1 -1
  59. package/dist/summaryCollection.js +2 -2
  60. package/dist/summaryCollection.js.map +1 -1
  61. package/dist/summaryFormat.d.ts +37 -11
  62. package/dist/summaryFormat.d.ts.map +1 -1
  63. package/dist/summaryFormat.js +12 -4
  64. package/dist/summaryFormat.js.map +1 -1
  65. package/dist/summaryGenerator.d.ts.map +1 -1
  66. package/dist/summaryGenerator.js +6 -4
  67. package/dist/summaryGenerator.js.map +1 -1
  68. package/dist/summaryManager.js +5 -5
  69. package/dist/summaryManager.js.map +1 -1
  70. package/dist/throttler.js +2 -2
  71. package/dist/throttler.js.map +1 -1
  72. package/lib/blobManager.d.ts +8 -1
  73. package/lib/blobManager.d.ts.map +1 -1
  74. package/lib/blobManager.js +19 -9
  75. package/lib/blobManager.js.map +1 -1
  76. package/lib/containerRuntime.d.ts +27 -17
  77. package/lib/containerRuntime.d.ts.map +1 -1
  78. package/lib/containerRuntime.js +71 -95
  79. package/lib/containerRuntime.js.map +1 -1
  80. package/lib/dataStore.js.map +1 -1
  81. package/lib/dataStoreContext.d.ts.map +1 -1
  82. package/lib/dataStoreContext.js.map +1 -1
  83. package/lib/dataStoreContexts.d.ts +2 -2
  84. package/lib/dataStoreContexts.d.ts.map +1 -1
  85. package/lib/dataStoreContexts.js +2 -2
  86. package/lib/dataStoreContexts.js.map +1 -1
  87. package/lib/dataStores.d.ts +6 -4
  88. package/lib/dataStores.d.ts.map +1 -1
  89. package/lib/dataStores.js +27 -14
  90. package/lib/dataStores.js.map +1 -1
  91. package/lib/garbageCollection.d.ts +23 -23
  92. package/lib/garbageCollection.d.ts.map +1 -1
  93. package/lib/garbageCollection.js +68 -37
  94. package/lib/garbageCollection.js.map +1 -1
  95. package/lib/opTelemetry.js.map +1 -1
  96. package/lib/orderedClientElection.d.ts.map +1 -1
  97. package/lib/orderedClientElection.js.map +1 -1
  98. package/lib/packageVersion.d.ts +1 -1
  99. package/lib/packageVersion.js +1 -1
  100. package/lib/packageVersion.js.map +1 -1
  101. package/lib/pendingStateManager.js.map +1 -1
  102. package/lib/runningSummarizer.d.ts.map +1 -1
  103. package/lib/runningSummarizer.js +4 -3
  104. package/lib/runningSummarizer.js.map +1 -1
  105. package/lib/summarizer.d.ts.map +1 -1
  106. package/lib/summarizer.js +1 -0
  107. package/lib/summarizer.js.map +1 -1
  108. package/lib/summarizerClientElection.js.map +1 -1
  109. package/lib/summarizerHeuristics.d.ts +1 -1
  110. package/lib/summarizerHeuristics.d.ts.map +1 -1
  111. package/lib/summarizerHeuristics.js +1 -1
  112. package/lib/summarizerHeuristics.js.map +1 -1
  113. package/lib/summarizerTypes.d.ts +4 -2
  114. package/lib/summarizerTypes.d.ts.map +1 -1
  115. package/lib/summarizerTypes.js.map +1 -1
  116. package/lib/summaryCollection.js.map +1 -1
  117. package/lib/summaryFormat.d.ts +37 -11
  118. package/lib/summaryFormat.d.ts.map +1 -1
  119. package/lib/summaryFormat.js +10 -2
  120. package/lib/summaryFormat.js.map +1 -1
  121. package/lib/summaryGenerator.d.ts.map +1 -1
  122. package/lib/summaryGenerator.js +2 -0
  123. package/lib/summaryGenerator.js.map +1 -1
  124. package/lib/summaryManager.js.map +1 -1
  125. package/lib/throttler.js.map +1 -1
  126. package/package.json +26 -20
  127. package/src/blobManager.ts +23 -11
  128. package/src/containerRuntime.ts +111 -139
  129. package/src/dataStoreContext.ts +8 -11
  130. package/src/dataStoreContexts.ts +5 -5
  131. package/src/dataStores.ts +35 -17
  132. package/src/garbageCollection.ts +100 -57
  133. package/src/orderedClientElection.ts +5 -10
  134. package/src/packageVersion.ts +1 -1
  135. package/src/pendingStateManager.ts +2 -2
  136. package/src/runningSummarizer.ts +8 -9
  137. package/src/summarizer.ts +2 -2
  138. package/src/summarizerHeuristics.ts +1 -1
  139. package/src/summarizerTypes.ts +8 -6
  140. package/src/summaryFormat.ts +38 -11
  141. package/src/summaryGenerator.ts +7 -5
  142. package/src/summaryManager.ts +2 -2
  143. package/src/throttler.ts +1 -1
@@ -34,25 +34,31 @@ export interface ContainerRuntimeMessage {
34
34
  type: ContainerMessageType;
35
35
  }
36
36
  export interface IGCRuntimeOptions {
37
- disableGC?: boolean;
38
37
  /**
39
- * Flag representing the summary's preference for allowing garbage collection.
40
- * This is stored in the summary and unchangeable (for now). So this runtime option
41
- * only takes affect on new containers.
42
- * Currently if this is set to false, it will take priority and any container will
43
- * never run GC.
38
+ * Flag that if true, will enable running garbage collection (GC) in a container. GC has mark phase and sweep phase.
39
+ * In mark phase, unreferenced objects are identified and marked as such in the summary. This option enables the
40
+ * mark phase.
41
+ * In sweep phase, unreferenced objects are eventually deleted from the container if they meet certain conditions.
42
+ * Sweep phase can be enabled via the "sweepAllowed" option.
43
+ * Note: This setting becomes part of the container's summary and cannot be changed.
44
44
  */
45
45
  gcAllowed?: boolean;
46
46
  /**
47
- * Flag that will bypass optimizations and generate GC data for all nodes irrespective of whether the node
48
- * changed or not.
47
+ * Flag that if true, enables GC's sweep phase which will eventually delete unreferenced objects from the container.
48
+ * This flag should only be set to true if "gcAllowed" is true.
49
+ * Note: This setting becomes part of the container's summary and cannot be changed.
49
50
  */
50
- runFullGC?: boolean;
51
+ sweepAllowed?: boolean;
52
+ /**
53
+ * Flag that will disable garbage collection if set to true. Can be used to disable running GC on container where
54
+ * is allowed via the gcAllowed option.
55
+ */
56
+ disableGC?: boolean;
51
57
  /**
52
- * Flag that if true, will run sweep which may delete unused objects that meet certain criteria. Only takes
53
- * effect if GC is enabled.
58
+ * Flag that will bypass optimizations and generate GC data for all nodes irrespective of whether a node
59
+ * changed or not.
54
60
  */
55
- runSweep?: boolean;
61
+ runFullGC?: boolean;
56
62
  /**
57
63
  * Allows additional GC options to be passed.
58
64
  */
@@ -185,7 +191,6 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
185
191
  private readonly containerScope;
186
192
  readonly logger: ITelemetryLogger;
187
193
  private readonly requestHandler?;
188
- private _storage?;
189
194
  get IContainerRuntime(): this;
190
195
  get IFluidRouter(): this;
191
196
  /**
@@ -263,7 +268,11 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
263
268
  private get summarizer();
264
269
  private get summariesDisabled();
265
270
  private readonly createContainerMetadata;
266
- private summaryCount;
271
+ /**
272
+ * The summary number of the next summary that will be generated for this container. This is incremented every time
273
+ * a summary is generated.
274
+ */
275
+ private nextSummaryNumber;
267
276
  private readonly opTracker;
268
277
  private constructor();
269
278
  dispose(error?: Error): void;
@@ -279,7 +288,8 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
279
288
  */
280
289
  resolveHandle(request: IRequest): Promise<IResponse>;
281
290
  private getDataStoreFromRequest;
282
- private formMetadata;
291
+ /** Adds the container's metadata to the given summary tree. */
292
+ private addMetadataToSummary;
283
293
  private addContainerStateToSummary;
284
294
  private shouldContinueReconnecting;
285
295
  private resetReconnectCount;
@@ -411,8 +421,8 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
411
421
  */
412
422
  getCurrentReferenceTimestampMs(): number | undefined;
413
423
  /**
414
- * Returns the type of the GC node. Currently, there are nodes that belong to data store and nodes that belong
415
- * to the blob manager.
424
+ * Returns the type of the GC node. Currently, there are nodes that belong to the root ("/"), data stores or
425
+ * blob manager.
416
426
  */
417
427
  getNodeType(nodePath: string): GCNodeType;
418
428
  /**
@@ -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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"}
@@ -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, BlobAggregationStorage } from "@fluidframework/driver-utils";
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, _storage) {
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 = (_e = this.mc.config.getNumber(maxConsecutiveReconnectsKey)) !== null && _e !== void 0 ? _e : this.defaultMaxConsecutiveReconnects;
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;
@@ -489,7 +474,7 @@ export class ContainerRuntime extends TypedEventEmitter {
489
474
  this.summarizerNode.loadBaseSummaryWithoutDifferential(this.context.baseSnapshot);
490
475
  }
491
476
  this.dataStores = new DataStores(getSummaryForDatastores(context.baseSnapshot, metadata), this, (attachMsg) => this.submit(ContainerMessageType.Attach, attachMsg), (id, createParam) => (summarizeInternal, getGCDataFn, getBaseGCDetailsFn) => this.summarizerNode.createChild(summarizeInternal, id, createParam, undefined, getGCDataFn, getBaseGCDetailsFn), (id) => this.summarizerNode.deleteChild(id), this.mc.logger, async () => this.garbageCollector.getBaseGCDetails(), (path, timestampMs, packagePath) => this.garbageCollector.nodeUpdated(path, "Changed", timestampMs, packagePath), new Map(dataStoreAliasMap), this.garbageCollector.writeDataAtRoot);
492
- this.blobManager = new BlobManager(this.handleContext, blobManagerSnapshot, () => this.storage, (blobId) => this.submit(ContainerMessageType.BlobAttach, undefined, undefined, { blobId }), this, this.logger);
477
+ this.blobManager = new BlobManager(this.handleContext, blobManagerSnapshot, () => this.storage, (blobId) => this.submit(ContainerMessageType.BlobAttach, undefined, undefined, { blobId }), (blobPath) => this.garbageCollector.nodeUpdated(blobPath, "Loaded"), this, this.logger);
493
478
  this.scheduleManager = new ScheduleManager(context.deltaManager, this, ChildLogger.create(this.logger, "ScheduleManager"));
494
479
  this.deltaSender = this.deltaManager;
495
480
  this.pendingStateManager = new PendingStateManager(this, async (type, content) => this.applyStashedOp(type, content), this._flushMode, context.pendingLocalState);
@@ -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
- // logging container load stats
576
- this.logger.sendTelemetryEvent(Object.assign(Object.assign(Object.assign({ eventName: "ContainerLoadStats" }, this.createContainerMetadata), this.dataStores.containerLoadStats), { summaryCount: this.summaryCount, 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 }));
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
- // We pack at data store level only. If isolated channels are disabled,
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, storage);
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
- // This code is plain wrong. It lies that it never returns undefined!!!
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
@@ -769,7 +739,8 @@ export class ContainerRuntime extends TypedEventEmitter {
769
739
  this.removeAllListeners();
770
740
  }
771
741
  get IFluidTokenProvider() {
772
- if (this.options && this.options.intelligence) {
742
+ var _a;
743
+ if ((_a = this.options) === null || _a === void 0 ? void 0 : _a.intelligence) {
773
744
  // eslint-disable-next-line @typescript-eslint/consistent-type-assertions
774
745
  return {
775
746
  intelligence: this.options.intelligence,
@@ -845,7 +816,8 @@ export class ContainerRuntime extends TypedEventEmitter {
845
816
  async getDataStoreFromRequest(id, request) {
846
817
  var _a, _b, _c;
847
818
  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] : true;
819
+ ? (_b = request.headers) === null || _b === void 0 ? void 0 : _b[RuntimeHeaders.wait]
820
+ : true;
849
821
  const dataStoreContext = await this.dataStores.getDataStore(id, wait);
850
822
  /**
851
823
  * If GC should run and this an external app request with "externalRequest" header, we need to return
@@ -867,16 +839,22 @@ export class ContainerRuntime extends TypedEventEmitter {
867
839
  this.garbageCollector.nodeUpdated(`/${id}`, "Loaded", undefined /* timestampMs */, dataStoreContext.packagePath, request === null || request === void 0 ? void 0 : request.headers);
868
840
  return dataStoreChannel;
869
841
  }
870
- formMetadata() {
842
+ /** Adds the container's metadata to the given summary tree. */
843
+ addMetadataToSummary(summaryTree) {
871
844
  var _a;
872
- return Object.assign(Object.assign({}, this.createContainerMetadata), { summaryCount: this.summaryCount, summaryFormatVersion: 1, disableIsolatedChannels: this.disableIsolatedChannels || undefined, gcFeature: this.garbageCollector.gcSummaryFeatureVersion,
845
+ const metadata = Object.assign(Object.assign(Object.assign(Object.assign({}, this.createContainerMetadata), {
846
+ // back-compat 0.59.3000: This is renamed to summaryNumber. Can be removed when 0.59.3000 saturates.
847
+ summaryCount: this.nextSummaryNumber,
848
+ // Increment the summary number for the next summary that will be generated.
849
+ summaryNumber: this.nextSummaryNumber++, summaryFormatVersion: 1, disableIsolatedChannels: this.disableIsolatedChannels || undefined }), this.garbageCollector.getMetadata()), {
873
850
  // The last message processed at the time of summary. If there are no new messages, use the message from the
874
851
  // last summary.
875
- message: (_a = extractSummaryMetadataMessage(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary, sessionExpiryTimeoutMs: this.garbageCollector.sessionExpiryTimeoutMs });
852
+ message: (_a = extractSummaryMetadataMessage(this.deltaManager.lastMessage)) !== null && _a !== void 0 ? _a : this.messageAtLastSummary });
853
+ addBlobToSummary(summaryTree, metadataBlobName, JSON.stringify(metadata));
876
854
  }
877
855
  addContainerStateToSummary(summaryTree) {
878
856
  var _a;
879
- addBlobToSummary(summaryTree, metadataBlobName, JSON.stringify(this.formMetadata()));
857
+ this.addMetadataToSummary(summaryTree);
880
858
  if (this.chunkMap.size > 0) {
881
859
  const content = JSON.stringify([...this.chunkMap]);
882
860
  addBlobToSummary(summaryTree, chunksBlobName, content);
@@ -889,11 +867,11 @@ export class ContainerRuntime extends TypedEventEmitter {
889
867
  const electedSummarizerContent = JSON.stringify((_a = this.summarizerClientElection) === null || _a === void 0 ? void 0 : _a.serialize());
890
868
  addBlobToSummary(summaryTree, electedSummarizerBlobName, electedSummarizerContent);
891
869
  }
892
- const summary = this.blobManager.summarize();
870
+ const blobManagerSummary = this.blobManager.summarize();
893
871
  // Some storage (like git) doesn't allow empty tree, so we can omit it.
894
872
  // and the blob manager can handle the tree not existing when loading
895
- if (Object.keys(summary.summary.tree).length > 0) {
896
- addTreeToSummary(summaryTree, blobsTreeName, summary);
873
+ if (Object.keys(blobManagerSummary.summary.tree).length > 0) {
874
+ addTreeToSummary(summaryTree, blobsTreeName, blobManagerSummary);
897
875
  }
898
876
  if (this.garbageCollector.writeDataAtRoot) {
899
877
  const gcSummary = this.garbageCollector.summarize();
@@ -1430,31 +1408,30 @@ export class ContainerRuntime extends TypedEventEmitter {
1430
1408
  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
1409
  }
1432
1410
  /**
1433
- * Returns the type of the GC node. Currently, there are nodes that belong to data store and nodes that belong
1434
- * to the blob manager.
1411
+ * Returns the type of the GC node. Currently, there are nodes that belong to the root ("/"), data stores or
1412
+ * blob manager.
1435
1413
  */
1436
1414
  getNodeType(nodePath) {
1415
+ var _a;
1437
1416
  if (this.isBlobPath(nodePath)) {
1438
1417
  return GCNodeType.Blob;
1439
1418
  }
1440
- if (this.dataStores.isDataStoreNode(nodePath)) {
1441
- return GCNodeType.DataStore;
1442
- }
1443
- // Root node ("/") and DDS nodes belong to "Other" node types.
1444
- return GCNodeType.Other;
1419
+ return (_a = this.dataStores.getGCNodeType(nodePath)) !== null && _a !== void 0 ? _a : GCNodeType.Other;
1445
1420
  }
1446
1421
  /**
1447
1422
  * Called by GC to retrieve the package path of the node with the given path. The node should belong to a
1448
1423
  * data store or an attachment blob.
1449
1424
  */
1450
1425
  getGCNodePackagePath(nodePath) {
1451
- // If the node is a blob, return "_blobs" as the package path.
1452
- if (this.isBlobPath(nodePath)) {
1453
- return ["_blobs"];
1426
+ switch (this.getNodeType(nodePath)) {
1427
+ case GCNodeType.Blob:
1428
+ return ["_blobs"];
1429
+ case GCNodeType.DataStore:
1430
+ case GCNodeType.SubDataStore:
1431
+ return this.dataStores.getDataStorePackagePath(nodePath);
1432
+ default:
1433
+ assert(false, 0x2de /* "Package path requested for unsupported node type." */);
1454
1434
  }
1455
- const dataStorePkgPath = this.dataStores.getDataStorePackagePath(nodePath);
1456
- assert(dataStorePkgPath !== undefined, 0x2d6 /* "Package path requested for unknown node type." */);
1457
- return dataStorePkgPath;
1458
1435
  }
1459
1436
  /**
1460
1437
  * Returns whether a given path is for attachment blobs that are in the format - "/BlobManager.basePath/...".
@@ -1493,11 +1470,17 @@ export class ContainerRuntime extends TypedEventEmitter {
1493
1470
  async submitSummary(options) {
1494
1471
  var _a, _b, _c;
1495
1472
  const { fullTree, refreshLatestAck, summaryLogger } = options;
1473
+ // The summary number for this summary. This will be updated during the summary process, so get it now and
1474
+ // use it for all events logged during this summary.
1475
+ const summaryNumber = this.nextSummaryNumber;
1476
+ const summaryNumberLogger = ChildLogger.create(summaryLogger, undefined, {
1477
+ all: { summaryNumber },
1478
+ });
1496
1479
  if (refreshLatestAck) {
1497
- const latestSummaryRefSeq = await this.refreshLatestSummaryAckFromServer(ChildLogger.create(summaryLogger, undefined, { all: { safeSummary: true } }));
1480
+ const latestSummaryRefSeq = await this.refreshLatestSummaryAckFromServer(ChildLogger.create(summaryNumberLogger, undefined, { all: { safeSummary: true } }));
1498
1481
  if (latestSummaryRefSeq > this.deltaManager.lastSequenceNumber) {
1499
1482
  // We need to catch up to the latest summary's reference sequence number before pausing.
1500
- await PerformanceEvent.timedExecAsync(summaryLogger, {
1483
+ await PerformanceEvent.timedExecAsync(summaryNumberLogger, {
1501
1484
  eventName: "WaitingForSeq",
1502
1485
  lastSequenceNumber: this.deltaManager.lastSequenceNumber,
1503
1486
  targetSequenceNumber: latestSummaryRefSeq,
@@ -1513,12 +1496,12 @@ export class ContainerRuntime extends TypedEventEmitter {
1513
1496
  // We should be here is we haven't processed be here. If we are of if the last message's sequence number
1514
1497
  // doesn't match the last processed sequence number, log an error.
1515
1498
  if (summaryRefSeqNum !== ((_a = this.deltaManager.lastMessage) === null || _a === void 0 ? void 0 : _a.sequenceNumber)) {
1516
- summaryLogger.sendErrorEvent({
1499
+ summaryNumberLogger.sendErrorEvent({
1517
1500
  eventName: "LastSequenceMismatch",
1518
1501
  error: message,
1519
1502
  });
1520
1503
  }
1521
- this.summarizerNode.startSummary(summaryRefSeqNum, summaryLogger);
1504
+ this.summarizerNode.startSummary(summaryRefSeqNum, summaryNumberLogger);
1522
1505
  // Helper function to check whether we should still continue between each async step.
1523
1506
  const checkContinue = () => {
1524
1507
  // Do not check for loss of connectivity directly! Instead leave it up to
@@ -1555,13 +1538,6 @@ export class ContainerRuntime extends TypedEventEmitter {
1555
1538
  error: continueResult.error,
1556
1539
  };
1557
1540
  }
1558
- // increment summary count
1559
- if (this.summaryCount !== undefined) {
1560
- this.summaryCount++;
1561
- }
1562
- else {
1563
- this.summaryCount = 1;
1564
- }
1565
1541
  const trace = Trace.start();
1566
1542
  let summarizeResult;
1567
1543
  // If the GC state needs to be reset, we need to force a full tree summary and update the unreferenced
@@ -1571,7 +1547,7 @@ export class ContainerRuntime extends TypedEventEmitter {
1571
1547
  summarizeResult = await this.summarize({
1572
1548
  fullTree: fullTree || forcedFullTree,
1573
1549
  trackState: true,
1574
- summaryLogger,
1550
+ summaryLogger: summaryNumberLogger,
1575
1551
  runGC: this.garbageCollector.shouldRunGC,
1576
1552
  });
1577
1553
  }
@@ -1595,7 +1571,7 @@ export class ContainerRuntime extends TypedEventEmitter {
1595
1571
  const gcSummaryTreeStats = summaryTree.tree[gcTreeKey]
1596
1572
  ? calculateStats(summaryTree.tree[gcTreeKey])
1597
1573
  : 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);
1574
+ 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
1575
  const generateSummaryData = {
1600
1576
  referenceSequenceNumber: summaryRefSeqNum,
1601
1577
  minimumSequenceNumber,