@fluidframework/container-runtime 2.63.0-359734 → 2.63.0

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 (70) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/api-report/container-runtime.legacy.beta.api.md +7 -1
  3. package/container-runtime.test-files.tar +0 -0
  4. package/dist/blobManager/blobManager.d.ts +62 -55
  5. package/dist/blobManager/blobManager.d.ts.map +1 -1
  6. package/dist/blobManager/blobManager.js +330 -308
  7. package/dist/blobManager/blobManager.js.map +1 -1
  8. package/dist/containerRuntime.d.ts.map +1 -1
  9. package/dist/containerRuntime.js +11 -9
  10. package/dist/containerRuntime.js.map +1 -1
  11. package/dist/index.d.ts +1 -1
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/legacy.d.ts +1 -0
  15. package/dist/packageVersion.d.ts +1 -1
  16. package/dist/packageVersion.d.ts.map +1 -1
  17. package/dist/packageVersion.js +1 -1
  18. package/dist/packageVersion.js.map +1 -1
  19. package/dist/summary/index.d.ts +2 -2
  20. package/dist/summary/index.d.ts.map +1 -1
  21. package/dist/summary/index.js +2 -1
  22. package/dist/summary/index.js.map +1 -1
  23. package/dist/summary/summarizerTypes.d.ts +8 -1
  24. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  25. package/dist/summary/summarizerTypes.js.map +1 -1
  26. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.d.ts.map +1 -1
  27. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.js +4 -3
  28. package/dist/summary/summaryDelayLoadedModule/runningSummarizer.js.map +1 -1
  29. package/dist/summary/summaryHelpers.d.ts +3 -0
  30. package/dist/summary/summaryHelpers.d.ts.map +1 -1
  31. package/dist/summary/summaryHelpers.js +5 -1
  32. package/dist/summary/summaryHelpers.js.map +1 -1
  33. package/lib/blobManager/blobManager.d.ts +62 -55
  34. package/lib/blobManager/blobManager.d.ts.map +1 -1
  35. package/lib/blobManager/blobManager.js +334 -312
  36. package/lib/blobManager/blobManager.js.map +1 -1
  37. package/lib/containerRuntime.d.ts.map +1 -1
  38. package/lib/containerRuntime.js +12 -10
  39. package/lib/containerRuntime.js.map +1 -1
  40. package/lib/index.d.ts +1 -1
  41. package/lib/index.d.ts.map +1 -1
  42. package/lib/index.js.map +1 -1
  43. package/lib/legacy.d.ts +1 -0
  44. package/lib/packageVersion.d.ts +1 -1
  45. package/lib/packageVersion.d.ts.map +1 -1
  46. package/lib/packageVersion.js +1 -1
  47. package/lib/packageVersion.js.map +1 -1
  48. package/lib/summary/index.d.ts +2 -2
  49. package/lib/summary/index.d.ts.map +1 -1
  50. package/lib/summary/index.js +1 -1
  51. package/lib/summary/index.js.map +1 -1
  52. package/lib/summary/summarizerTypes.d.ts +8 -1
  53. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  54. package/lib/summary/summarizerTypes.js.map +1 -1
  55. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.d.ts.map +1 -1
  56. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.js +4 -3
  57. package/lib/summary/summaryDelayLoadedModule/runningSummarizer.js.map +1 -1
  58. package/lib/summary/summaryHelpers.d.ts +3 -0
  59. package/lib/summary/summaryHelpers.d.ts.map +1 -1
  60. package/lib/summary/summaryHelpers.js +3 -0
  61. package/lib/summary/summaryHelpers.js.map +1 -1
  62. package/package.json +37 -18
  63. package/src/blobManager/blobManager.ts +428 -352
  64. package/src/containerRuntime.ts +33 -27
  65. package/src/index.ts +1 -0
  66. package/src/packageVersion.ts +1 -1
  67. package/src/summary/index.ts +2 -0
  68. package/src/summary/summarizerTypes.ts +10 -1
  69. package/src/summary/summaryDelayLoadedModule/runningSummarizer.ts +4 -6
  70. package/src/summary/summaryHelpers.ts +4 -0
@@ -282,6 +282,7 @@ import {
282
282
  type IRootSummarizerNodeWithGC,
283
283
  type ISerializedElection,
284
284
  isSummariesDisabled,
285
+ isSummaryOnRequest,
285
286
  type ISubmitSummaryOptions,
286
287
  type ISummarizeResults,
287
288
  type ISummarizerInternalsProvider,
@@ -1935,7 +1936,7 @@ export class ContainerRuntime
1935
1936
  }),
1936
1937
  isBlobDeleted: (blobPath: string) => this.garbageCollector.isNodeDeleted(blobPath),
1937
1938
  runtime: this,
1938
- stashedBlobs: pendingRuntimeState?.pendingAttachmentBlobs,
1939
+ pendingBlobs: pendingRuntimeState?.pendingAttachmentBlobs,
1939
1940
  createBlobPayloadPending: this.sessionSchema.createBlobPayloadPending === true,
1940
1941
  });
1941
1942
 
@@ -2180,31 +2181,7 @@ export class ContainerRuntime
2180
2181
  this.deltaManager,
2181
2182
  this.baseLogger,
2182
2183
  );
2183
- const orderedClientLogger = createChildLogger({
2184
- logger: this.baseLogger,
2185
- namespace: "OrderedClientElection",
2186
- });
2187
- const orderedClientCollection = new OrderedClientCollection(
2188
- orderedClientLogger,
2189
- this.innerDeltaManager,
2190
- this._quorum,
2191
- );
2192
- const orderedClientElectionForSummarizer = new OrderedClientElection(
2193
- orderedClientLogger,
2194
- orderedClientCollection,
2195
- this.electedSummarizerData ?? this.innerDeltaManager.lastSequenceNumber,
2196
- SummarizerClientElection.isClientEligible,
2197
- this.mc.config.getBoolean(
2198
- "Fluid.ContainerRuntime.OrderedClientElection.EnablePerformanceEvents",
2199
- ),
2200
- );
2201
-
2202
- this.summarizerClientElection = new SummarizerClientElection(
2203
- orderedClientLogger,
2204
- summaryCollection,
2205
- orderedClientElectionForSummarizer,
2206
- maxOpsSinceLastSummary,
2207
- );
2184
+ const onRequestMode = isSummaryOnRequest(this.summaryConfiguration);
2208
2185
 
2209
2186
  if (this.isSummarizerClient) {
2210
2187
  // We want to dynamically import any thing inside summaryDelayLoadedModule module only when we are the summarizer client,
@@ -2227,9 +2204,38 @@ export class ContainerRuntime
2227
2204
  () => this.innerDeltaManager.active,
2228
2205
  ),
2229
2206
  );
2230
- } else if (SummarizerClientElection.clientDetailsPermitElection(this.clientDetails)) {
2207
+ } else if (
2208
+ !onRequestMode &&
2209
+ SummarizerClientElection.clientDetailsPermitElection(this.clientDetails)
2210
+ ) {
2231
2211
  // Only create a SummaryManager and SummarizerClientElection
2232
2212
  // if summaries are enabled and we are not the summarizer client.
2213
+ const orderedClientLogger = createChildLogger({
2214
+ logger: this.baseLogger,
2215
+ namespace: "OrderedClientElection",
2216
+ });
2217
+ const orderedClientCollection = new OrderedClientCollection(
2218
+ orderedClientLogger,
2219
+ this.innerDeltaManager,
2220
+ this._quorum,
2221
+ );
2222
+ const orderedClientElectionForSummarizer = new OrderedClientElection(
2223
+ orderedClientLogger,
2224
+ orderedClientCollection,
2225
+ this.electedSummarizerData ?? this.innerDeltaManager.lastSequenceNumber,
2226
+ SummarizerClientElection.isClientEligible,
2227
+ this.mc.config.getBoolean(
2228
+ "Fluid.ContainerRuntime.OrderedClientElection.EnablePerformanceEvents",
2229
+ ),
2230
+ );
2231
+
2232
+ this.summarizerClientElection = new SummarizerClientElection(
2233
+ orderedClientLogger,
2234
+ summaryCollection,
2235
+ orderedClientElectionForSummarizer,
2236
+ maxOpsSinceLastSummary,
2237
+ );
2238
+
2233
2239
  const defaultAction = (): void => {
2234
2240
  if (summaryCollection.opsSinceLastAck > maxOpsSinceLastSummary) {
2235
2241
  this.mc.logger.sendTelemetryEvent({ eventName: "SummaryStatus:Behind" });
package/src/index.ts CHANGED
@@ -113,6 +113,7 @@ export {
113
113
  type ISummaryConfigurationHeuristics,
114
114
  type ISummaryConfigurationDisableSummarizer,
115
115
  type ISummaryConfigurationDisableHeuristics,
116
+ type ISummaryConfigurationWithSummaryOnRequest,
116
117
  type ISummaryConfiguration,
117
118
  DefaultSummaryConfiguration,
118
119
  } from "./summary/index.js";
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.63.0-359734";
9
+ export const pkgVersion = "2.63.0";
@@ -40,6 +40,7 @@ export {
40
40
  type ISummaryConfigurationDisableHeuristics,
41
41
  type ISummaryConfigurationDisableSummarizer,
42
42
  type ISummaryConfigurationHeuristics,
43
+ type ISummaryConfigurationWithSummaryOnRequest,
43
44
  type ISummaryBaseConfiguration,
44
45
  } from "./summarizerTypes.js";
45
46
  export {
@@ -98,6 +99,7 @@ export {
98
99
  summarizerRequestUrl,
99
100
  DefaultSummaryConfiguration,
100
101
  isSummariesDisabled,
102
+ isSummaryOnRequest,
101
103
  } from "./summaryHelpers.js";
102
104
  export {
103
105
  type IdCompressorMode,
@@ -759,10 +759,19 @@ export interface ISummaryConfigurationDisableHeuristics extends ISummaryBaseConf
759
759
  state: "disableHeuristics";
760
760
  }
761
761
 
762
+ /**
763
+ * Configuration used internally to indicate on-demand summaries only (no election/heuristics).
764
+ * @legacy @beta
765
+ */
766
+ export interface ISummaryConfigurationWithSummaryOnRequest extends ISummaryBaseConfiguration {
767
+ state: "summaryOnRequest";
768
+ }
769
+
762
770
  /**
763
771
  * @legacy @beta
764
772
  */
765
773
  export type ISummaryConfiguration =
766
774
  | ISummaryConfigurationDisableSummarizer
767
775
  | ISummaryConfigurationDisableHeuristics
768
- | ISummaryConfigurationHeuristics;
776
+ | ISummaryConfigurationHeuristics
777
+ | ISummaryConfigurationWithSummaryOnRequest;
@@ -227,14 +227,12 @@ export class RunningSummarizer
227
227
  },
228
228
  });
229
229
 
230
- if (configuration.state !== "disableHeuristics") {
231
- assert(
232
- this.configuration.state === "enabled",
233
- 0x2ea /* "Configuration state should be enabled" */,
234
- );
230
+ // Only create heuristics when in 'enabled' mode.
231
+ // This bypasses heuristics for 'disableHeuristics' and 'summaryOnRequest' configurations.
232
+ if (configuration.state === "enabled") {
235
233
  this.heuristicRunner = new SummarizeHeuristicRunner(
236
234
  heuristicData,
237
- this.configuration,
235
+ configuration,
238
236
  (reason) => this.trySummarize(reason),
239
237
  this.mc.logger,
240
238
  );
@@ -25,6 +25,10 @@ export function isSummariesDisabled(
25
25
  return config.state === "disabled";
26
26
  }
27
27
 
28
+ export function isSummaryOnRequest(config: { state?: string }): boolean {
29
+ return config.state === "summaryOnRequest";
30
+ }
31
+
28
32
  /**
29
33
  * @legacy @beta
30
34
  */