@fluidframework/container-runtime 0.58.1001 → 0.58.2000-58133

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 (87) hide show
  1. package/dist/batchTracker.d.ts +1 -1
  2. package/dist/batchTracker.d.ts.map +1 -1
  3. package/dist/batchTracker.js.map +1 -1
  4. package/dist/containerRuntime.d.ts.map +1 -1
  5. package/dist/containerRuntime.js +8 -3
  6. package/dist/containerRuntime.js.map +1 -1
  7. package/dist/dataStore.js.map +1 -1
  8. package/dist/dataStoreContext.d.ts +17 -14
  9. package/dist/dataStoreContext.d.ts.map +1 -1
  10. package/dist/dataStoreContext.js +41 -31
  11. package/dist/dataStoreContext.js.map +1 -1
  12. package/dist/dataStores.d.ts.map +1 -1
  13. package/dist/dataStores.js +4 -2
  14. package/dist/dataStores.js.map +1 -1
  15. package/dist/garbageCollection.d.ts +1 -1
  16. package/dist/garbageCollection.d.ts.map +1 -1
  17. package/dist/garbageCollection.js +3 -4
  18. package/dist/garbageCollection.js.map +1 -1
  19. package/dist/packageVersion.d.ts +1 -1
  20. package/dist/packageVersion.d.ts.map +1 -1
  21. package/dist/packageVersion.js +1 -1
  22. package/dist/packageVersion.js.map +1 -1
  23. package/dist/runningSummarizer.d.ts.map +1 -1
  24. package/dist/runningSummarizer.js +1 -1
  25. package/dist/runningSummarizer.js.map +1 -1
  26. package/dist/summarizerClientElection.d.ts.map +1 -1
  27. package/dist/summarizerClientElection.js +1 -0
  28. package/dist/summarizerClientElection.js.map +1 -1
  29. package/dist/summarizerTypes.d.ts +13 -1
  30. package/dist/summarizerTypes.d.ts.map +1 -1
  31. package/dist/summarizerTypes.js.map +1 -1
  32. package/dist/summaryGenerator.d.ts +3 -3
  33. package/dist/summaryGenerator.d.ts.map +1 -1
  34. package/dist/summaryGenerator.js +1 -0
  35. package/dist/summaryGenerator.js.map +1 -1
  36. package/dist/summaryManager.d.ts.map +1 -1
  37. package/dist/summaryManager.js.map +1 -1
  38. package/lib/batchTracker.d.ts +1 -1
  39. package/lib/batchTracker.d.ts.map +1 -1
  40. package/lib/batchTracker.js.map +1 -1
  41. package/lib/containerRuntime.d.ts.map +1 -1
  42. package/lib/containerRuntime.js +8 -3
  43. package/lib/containerRuntime.js.map +1 -1
  44. package/lib/dataStore.js.map +1 -1
  45. package/lib/dataStoreContext.d.ts +17 -14
  46. package/lib/dataStoreContext.d.ts.map +1 -1
  47. package/lib/dataStoreContext.js +41 -31
  48. package/lib/dataStoreContext.js.map +1 -1
  49. package/lib/dataStores.d.ts.map +1 -1
  50. package/lib/dataStores.js +4 -2
  51. package/lib/dataStores.js.map +1 -1
  52. package/lib/garbageCollection.d.ts +1 -1
  53. package/lib/garbageCollection.d.ts.map +1 -1
  54. package/lib/garbageCollection.js +1 -2
  55. package/lib/garbageCollection.js.map +1 -1
  56. package/lib/packageVersion.d.ts +1 -1
  57. package/lib/packageVersion.d.ts.map +1 -1
  58. package/lib/packageVersion.js +1 -1
  59. package/lib/packageVersion.js.map +1 -1
  60. package/lib/runningSummarizer.d.ts.map +1 -1
  61. package/lib/runningSummarizer.js +1 -1
  62. package/lib/runningSummarizer.js.map +1 -1
  63. package/lib/summarizerClientElection.d.ts.map +1 -1
  64. package/lib/summarizerClientElection.js +1 -0
  65. package/lib/summarizerClientElection.js.map +1 -1
  66. package/lib/summarizerTypes.d.ts +13 -1
  67. package/lib/summarizerTypes.d.ts.map +1 -1
  68. package/lib/summarizerTypes.js.map +1 -1
  69. package/lib/summaryGenerator.d.ts +3 -3
  70. package/lib/summaryGenerator.d.ts.map +1 -1
  71. package/lib/summaryGenerator.js +1 -0
  72. package/lib/summaryGenerator.js.map +1 -1
  73. package/lib/summaryManager.d.ts.map +1 -1
  74. package/lib/summaryManager.js.map +1 -1
  75. package/package.json +17 -13
  76. package/src/batchTracker.ts +2 -2
  77. package/src/containerRuntime.ts +4 -1
  78. package/src/dataStore.ts +1 -1
  79. package/src/dataStoreContext.ts +38 -36
  80. package/src/dataStores.ts +2 -1
  81. package/src/garbageCollection.ts +5 -6
  82. package/src/packageVersion.ts +1 -1
  83. package/src/runningSummarizer.ts +5 -4
  84. package/src/summarizerClientElection.ts +1 -0
  85. package/src/summarizerTypes.ts +18 -0
  86. package/src/summaryGenerator.ts +41 -5
  87. package/src/summaryManager.ts +0 -1
@@ -26,6 +26,7 @@ import {
26
26
  SubmitSummaryResult,
27
27
  SummarizeResultPart,
28
28
  ISummaryCancellationToken,
29
+ ISummarizeTelemetryProperties,
29
30
  } from "./summarizerTypes";
30
31
  import { IClientSummaryWatcher } from "./summaryCollection";
31
32
 
@@ -54,6 +55,40 @@ export async function raceTimer<T>(
54
55
  const maxSummarizeTimeoutTime = 20000; // 20 sec
55
56
  const maxSummarizeTimeoutCount = 5; // Double and resend 5 times
56
57
 
58
+ type SummaryGeneratorRequiredTelemetryProperties =
59
+ /** True to generate the full tree with no handle reuse optimizations */
60
+ "fullTree" |
61
+ /** Time since we last attempted to generate a summary */
62
+ "timeSinceLastAttempt" |
63
+ /** Time since we last successfully generated a summary */
64
+ "timeSinceLastSummary";
65
+ type SummaryGeneratorOptionalTelemetryProperties =
66
+ /** Reference sequence number as of the generate summary attempt. */
67
+ "referenceSequenceNumber" |
68
+ /** Delta between the current reference sequence number and the reference sequence number of the last attempt */
69
+ "opsSinceLastAttempt" |
70
+ /** Delta between the current reference sequence number and the reference sequence number of the last summary */
71
+ "opsSinceLastSummary" |
72
+ /** Time it took to generate the summary tree and stats. */
73
+ "generateDuration" |
74
+ /** The handle returned by storage pointing to the uploaded summary tree. */
75
+ "handle" |
76
+ /** Time it took to upload the summary tree to storage. */
77
+ "uploadDuration" |
78
+ /** The client sequence number of the summarize op submitted for the summary. */
79
+ "clientSequenceNumber" |
80
+ /** Time it took for this summary to be acked after it was generated */
81
+ "ackWaitDuration" |
82
+ /** Reference sequence number of the ack/nack message */
83
+ "ackNackSequenceNumber" |
84
+ /** Actual sequence number of the summary op proposal. */
85
+ "summarySequenceNumber" |
86
+ /** Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying. */
87
+ "nackRetryAfter";
88
+ type SummaryGeneratorTelemetry =
89
+ Pick<ITelemetryProperties, SummaryGeneratorRequiredTelemetryProperties> &
90
+ Partial<Pick<ITelemetryProperties, SummaryGeneratorOptionalTelemetryProperties>>;
91
+
57
92
  export type SummarizeReason =
58
93
  /**
59
94
  * Attempt to summarize after idle timeout has elapsed.
@@ -171,7 +206,7 @@ export class SummaryGenerator {
171
206
  * fullTree to generate tree without any summary handles even if unchanged
172
207
  */
173
208
  public summarize(
174
- summarizeProps: ITelemetryProperties,
209
+ summarizeProps: ISummarizeTelemetryProperties,
175
210
  options: ISummarizeOptions,
176
211
  cancellationToken: ISummaryCancellationToken,
177
212
  resultsBuilder = new SummarizeResultBuilder(),
@@ -187,7 +222,7 @@ export class SummaryGenerator {
187
222
  }
188
223
 
189
224
  private async summarizeCore(
190
- summarizeProps: ITelemetryProperties,
225
+ summarizeProps: ISummarizeTelemetryProperties,
191
226
  options: ISummarizeOptions,
192
227
  resultsBuilder: SummarizeResultBuilder,
193
228
  cancellationToken: ISummaryCancellationToken,
@@ -197,11 +232,11 @@ export class SummaryGenerator {
197
232
 
198
233
  const timeSinceLastAttempt = Date.now() - this.heuristicData.lastAttempt.summaryTime;
199
234
  const timeSinceLastSummary = Date.now() - this.heuristicData.lastSuccessfulSummary.summaryTime;
200
- let summarizeTelemetryProps: Record<string, string | number | boolean | undefined> = {
235
+ let summarizeTelemetryProps: SummaryGeneratorTelemetry = {
201
236
  fullTree,
202
237
  timeSinceLastAttempt,
203
238
  timeSinceLastSummary,
204
- }
239
+ };
205
240
 
206
241
  const summarizeEvent = PerformanceEvent.start(logger, {
207
242
  eventName: "Summarize",
@@ -215,7 +250,7 @@ export class SummaryGenerator {
215
250
  const fail = (
216
251
  errorCode: keyof typeof summarizeErrors,
217
252
  error?: any,
218
- properties?: ITelemetryProperties,
253
+ properties?: SummaryGeneratorTelemetry,
219
254
  nackSummaryResult?: INackSummaryResult,
220
255
  ) => {
221
256
  this.raiseSummarizingError(summarizeErrors[errorCode]);
@@ -394,6 +429,7 @@ export class SummaryGenerator {
394
429
  const message = summaryNack?.message;
395
430
  const retryAfterSeconds = summaryNack?.retryAfter;
396
431
 
432
+ // pre-0.58 error message prefix: summaryNack
397
433
  const error = new LoggingError(`Received summaryNack: ${message}`, { retryAfterSeconds });
398
434
  logger.sendErrorEvent(
399
435
  { eventName: "SummaryNack", ...summarizeTelemetryProps, retryAfterSeconds }, error);
@@ -99,7 +99,6 @@ export class SummaryManager implements IDisposable {
99
99
  }: Readonly<Partial<ISummaryManagerConfig>> = {},
100
100
  private readonly summarizerOptions?: Readonly<Partial<ISummarizerOptions>>,
101
101
  ) {
102
-
103
102
  this.logger = ChildLogger.create(
104
103
  parentLogger,
105
104
  "SummaryManager",