@fluidframework/container-runtime 2.0.0-internal.4.2.1 → 2.0.0-internal.4.3.1

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 (131) hide show
  1. package/dist/connectionTelemetry.d.ts.map +1 -1
  2. package/dist/connectionTelemetry.js +1 -0
  3. package/dist/connectionTelemetry.js.map +1 -1
  4. package/dist/containerRuntime.d.ts.map +1 -1
  5. package/dist/containerRuntime.js +9 -6
  6. package/dist/containerRuntime.js.map +1 -1
  7. package/dist/dataStores.d.ts +5 -5
  8. package/dist/dataStores.d.ts.map +1 -1
  9. package/dist/dataStores.js +3 -6
  10. package/dist/dataStores.js.map +1 -1
  11. package/dist/gc/garbageCollection.d.ts +1 -27
  12. package/dist/gc/garbageCollection.d.ts.map +1 -1
  13. package/dist/gc/garbageCollection.js +30 -227
  14. package/dist/gc/garbageCollection.js.map +1 -1
  15. package/dist/gc/gcHelpers.d.ts +0 -10
  16. package/dist/gc/gcHelpers.d.ts.map +1 -1
  17. package/dist/gc/gcHelpers.js +1 -20
  18. package/dist/gc/gcHelpers.js.map +1 -1
  19. package/dist/gc/gcTelemetry.d.ts +91 -0
  20. package/dist/gc/gcTelemetry.d.ts.map +1 -0
  21. package/dist/gc/gcTelemetry.js +262 -0
  22. package/dist/gc/gcTelemetry.js.map +1 -0
  23. package/dist/gc/index.d.ts +2 -1
  24. package/dist/gc/index.d.ts.map +1 -1
  25. package/dist/gc/index.js +4 -2
  26. package/dist/gc/index.js.map +1 -1
  27. package/dist/opLifecycle/opGroupingManager.js +1 -1
  28. package/dist/opLifecycle/opGroupingManager.js.map +1 -1
  29. package/dist/opLifecycle/outbox.js +1 -1
  30. package/dist/opLifecycle/outbox.js.map +1 -1
  31. package/dist/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  32. package/dist/opLifecycle/remoteMessageProcessor.js +25 -22
  33. package/dist/opLifecycle/remoteMessageProcessor.js.map +1 -1
  34. package/dist/packageVersion.d.ts +1 -1
  35. package/dist/packageVersion.js +1 -1
  36. package/dist/packageVersion.js.map +1 -1
  37. package/dist/pendingStateManager.d.ts +1 -1
  38. package/dist/pendingStateManager.d.ts.map +1 -1
  39. package/dist/pendingStateManager.js.map +1 -1
  40. package/dist/summary/orderedClientElection.d.ts.map +1 -1
  41. package/dist/summary/orderedClientElection.js +14 -17
  42. package/dist/summary/orderedClientElection.js.map +1 -1
  43. package/dist/summary/summarizer.d.ts +2 -0
  44. package/dist/summary/summarizer.d.ts.map +1 -1
  45. package/dist/summary/summarizer.js +9 -4
  46. package/dist/summary/summarizer.js.map +1 -1
  47. package/dist/summary/summarizerHeuristics.d.ts +8 -9
  48. package/dist/summary/summarizerHeuristics.d.ts.map +1 -1
  49. package/dist/summary/summarizerHeuristics.js +15 -16
  50. package/dist/summary/summarizerHeuristics.js.map +1 -1
  51. package/dist/summary/summarizerTypes.d.ts +2 -0
  52. package/dist/summary/summarizerTypes.d.ts.map +1 -1
  53. package/dist/summary/summarizerTypes.js.map +1 -1
  54. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  55. package/dist/summary/summaryGenerator.js +4 -3
  56. package/dist/summary/summaryGenerator.js.map +1 -1
  57. package/lib/connectionTelemetry.d.ts.map +1 -1
  58. package/lib/connectionTelemetry.js +1 -0
  59. package/lib/connectionTelemetry.js.map +1 -1
  60. package/lib/containerRuntime.d.ts.map +1 -1
  61. package/lib/containerRuntime.js +9 -6
  62. package/lib/containerRuntime.js.map +1 -1
  63. package/lib/dataStores.d.ts +5 -5
  64. package/lib/dataStores.d.ts.map +1 -1
  65. package/lib/dataStores.js +3 -6
  66. package/lib/dataStores.js.map +1 -1
  67. package/lib/gc/garbageCollection.d.ts +1 -27
  68. package/lib/gc/garbageCollection.d.ts.map +1 -1
  69. package/lib/gc/garbageCollection.js +34 -231
  70. package/lib/gc/garbageCollection.js.map +1 -1
  71. package/lib/gc/gcHelpers.d.ts +0 -10
  72. package/lib/gc/gcHelpers.d.ts.map +1 -1
  73. package/lib/gc/gcHelpers.js +0 -18
  74. package/lib/gc/gcHelpers.js.map +1 -1
  75. package/lib/gc/gcTelemetry.d.ts +91 -0
  76. package/lib/gc/gcTelemetry.d.ts.map +1 -0
  77. package/lib/gc/gcTelemetry.js +257 -0
  78. package/lib/gc/gcTelemetry.js.map +1 -0
  79. package/lib/gc/index.d.ts +2 -1
  80. package/lib/gc/index.d.ts.map +1 -1
  81. package/lib/gc/index.js +2 -1
  82. package/lib/gc/index.js.map +1 -1
  83. package/lib/opLifecycle/opGroupingManager.js +1 -1
  84. package/lib/opLifecycle/opGroupingManager.js.map +1 -1
  85. package/lib/opLifecycle/outbox.js +1 -1
  86. package/lib/opLifecycle/outbox.js.map +1 -1
  87. package/lib/opLifecycle/remoteMessageProcessor.d.ts.map +1 -1
  88. package/lib/opLifecycle/remoteMessageProcessor.js +25 -22
  89. package/lib/opLifecycle/remoteMessageProcessor.js.map +1 -1
  90. package/lib/packageVersion.d.ts +1 -1
  91. package/lib/packageVersion.js +1 -1
  92. package/lib/packageVersion.js.map +1 -1
  93. package/lib/pendingStateManager.d.ts +1 -1
  94. package/lib/pendingStateManager.d.ts.map +1 -1
  95. package/lib/pendingStateManager.js.map +1 -1
  96. package/lib/summary/orderedClientElection.d.ts.map +1 -1
  97. package/lib/summary/orderedClientElection.js +14 -17
  98. package/lib/summary/orderedClientElection.js.map +1 -1
  99. package/lib/summary/summarizer.d.ts +2 -0
  100. package/lib/summary/summarizer.d.ts.map +1 -1
  101. package/lib/summary/summarizer.js +9 -4
  102. package/lib/summary/summarizer.js.map +1 -1
  103. package/lib/summary/summarizerHeuristics.d.ts +8 -9
  104. package/lib/summary/summarizerHeuristics.d.ts.map +1 -1
  105. package/lib/summary/summarizerHeuristics.js +15 -16
  106. package/lib/summary/summarizerHeuristics.js.map +1 -1
  107. package/lib/summary/summarizerTypes.d.ts +2 -0
  108. package/lib/summary/summarizerTypes.d.ts.map +1 -1
  109. package/lib/summary/summarizerTypes.js.map +1 -1
  110. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  111. package/lib/summary/summaryGenerator.js +4 -3
  112. package/lib/summary/summaryGenerator.js.map +1 -1
  113. package/package.json +17 -17
  114. package/src/connectionTelemetry.ts +1 -0
  115. package/src/containerRuntime.ts +12 -11
  116. package/src/dataStores.ts +4 -7
  117. package/src/gc/garbageCollection.ts +53 -315
  118. package/src/gc/gcHelpers.ts +1 -38
  119. package/src/gc/gcTelemetry.ts +393 -0
  120. package/src/gc/index.ts +1 -1
  121. package/src/opLifecycle/README.md +13 -0
  122. package/src/opLifecycle/opGroupingManager.ts +1 -1
  123. package/src/opLifecycle/outbox.ts +2 -2
  124. package/src/opLifecycle/remoteMessageProcessor.ts +37 -28
  125. package/src/packageVersion.ts +1 -1
  126. package/src/pendingStateManager.ts +1 -4
  127. package/src/summary/orderedClientElection.ts +14 -17
  128. package/src/summary/summarizer.ts +17 -5
  129. package/src/summary/summarizerHeuristics.ts +15 -16
  130. package/src/summary/summarizerTypes.ts +2 -0
  131. package/src/summary/summaryGenerator.ts +5 -4
@@ -27,32 +27,31 @@ export class SummarizeHeuristicData implements ISummarizeHeuristicData {
27
27
  }
28
28
 
29
29
  public get opsSinceLastSummary(): number {
30
- return this.numSystemOpsBefore + this.numNonSystemOpsBefore;
30
+ return this.numNonRuntimeOpsBefore + this.numRuntimeOpsBefore;
31
31
  }
32
32
 
33
- public numNonRuntimeOps: number = 0;
34
- public totalOpsSize: number = 0;
35
33
  public hasMissingOpData: boolean = false;
36
34
 
35
+ public totalOpsSize: number = 0;
37
36
  /**
38
37
  * Cumulative size in bytes of all the ops at the beginning of the summarization attempt.
39
38
  * Is used to adjust totalOpsSize appropriately after successful summarization.
40
39
  */
41
- /** */
42
40
  private totalOpsSizeBefore: number = 0;
43
41
 
42
+ public numNonRuntimeOps: number = 0;
44
43
  /**
45
- * Number of system ops at beginning of attempting to summarize.
46
- * Is used to adjust numSystemOps appropriately after successful summarization.
44
+ * Number of non-runtime ops at beginning of attempting to summarize.
45
+ * Is used to adjust numNonRuntimeOps appropriately after successful summarization.
47
46
  */
48
- private numSystemOpsBefore: number = 0;
47
+ private numNonRuntimeOpsBefore: number = 0;
49
48
 
50
49
  public numRuntimeOps: number = 0;
51
50
  /**
52
- * Number of non-system ops at beginning of attempting to summarize.
53
- * Is used to adjust numNonSystemOps appropriately after successful summarization.
51
+ * Number of runtime ops at beginning of attempting to summarize.
52
+ * Is used to adjust numRuntimeOps appropriately after successful summarization.
54
53
  */
55
- private numNonSystemOpsBefore: number = 0;
54
+ private numRuntimeOpsBefore: number = 0;
56
55
 
57
56
  constructor(
58
57
  public lastOpSequenceNumber: number,
@@ -74,19 +73,19 @@ export class SummarizeHeuristicData implements ISummarizeHeuristicData {
74
73
  summaryTime: Date.now(),
75
74
  };
76
75
 
77
- this.numSystemOpsBefore = this.numNonRuntimeOps;
78
- this.numNonSystemOpsBefore = this.numRuntimeOps;
76
+ this.numNonRuntimeOpsBefore = this.numNonRuntimeOps;
77
+ this.numRuntimeOpsBefore = this.numRuntimeOps;
79
78
  this.totalOpsSizeBefore = this.totalOpsSize;
80
79
  }
81
80
 
82
81
  public markLastAttemptAsSuccessful() {
83
82
  this._lastSuccessfulSummary = { ...this.lastAttempt };
84
83
 
85
- this.numNonRuntimeOps -= this.numSystemOpsBefore;
86
- this.numSystemOpsBefore = 0;
84
+ this.numNonRuntimeOps -= this.numNonRuntimeOpsBefore;
85
+ this.numNonRuntimeOpsBefore = 0;
87
86
 
88
- this.numRuntimeOps -= this.numNonSystemOpsBefore;
89
- this.numNonSystemOpsBefore = 0;
87
+ this.numRuntimeOps -= this.numRuntimeOpsBefore;
88
+ this.numRuntimeOpsBefore = 0;
90
89
 
91
90
  this.totalOpsSize -= this.totalOpsSizeBefore;
92
91
  this.totalOpsSizeBefore = 0;
@@ -489,6 +489,8 @@ type SummaryGeneratorOptionalTelemetryProperties =
489
489
  | "opsSizesSinceLastSummary"
490
490
  /** Delta between the number of non-runtime ops since the last summary */
491
491
  | "nonRuntimeOpsSinceLastSummary"
492
+ /** Delta between the number of runtime ops since the last summary */
493
+ | "runtimeOpsSinceLastSummary"
492
494
  /** Wether or not this instance contains adjusted metrics due to missing op data */
493
495
  | "hasMissingOpData"
494
496
  /** Time it took to generate the summary tree and stats. */
@@ -275,6 +275,9 @@ export class SummaryGenerator {
275
275
  // Use record type to prevent unexpected value types
276
276
  let summaryData: SubmitSummaryResult | undefined;
277
277
  try {
278
+ // Need to save refSeqNum before we record new attempt (happens as part of submitSummaryCallback)
279
+ const lastAttemptRefSeqNum = this.heuristicData.lastAttempt.refSequenceNumber;
280
+
278
281
  summaryData = await this.submitSummaryCallback({
279
282
  fullTree,
280
283
  refreshLatestAck,
@@ -282,16 +285,13 @@ export class SummaryGenerator {
282
285
  cancellationToken,
283
286
  });
284
287
 
285
- this.heuristicData.recordAttempt(summaryData.referenceSequenceNumber);
286
-
287
288
  // Cumulatively add telemetry properties based on how far generateSummary went.
288
289
  const referenceSequenceNumber = summaryData.referenceSequenceNumber;
289
290
  summarizeTelemetryProps = {
290
291
  ...summarizeTelemetryProps,
291
292
  referenceSequenceNumber,
292
293
  minimumSequenceNumber: summaryData.minimumSequenceNumber,
293
- opsSinceLastAttempt:
294
- referenceSequenceNumber - this.heuristicData.lastAttempt.refSequenceNumber,
294
+ opsSinceLastAttempt: referenceSequenceNumber - lastAttemptRefSeqNum,
295
295
  opsSinceLastSummary:
296
296
  referenceSequenceNumber -
297
297
  this.heuristicData.lastSuccessfulSummary.refSequenceNumber,
@@ -481,6 +481,7 @@ export class SummaryGenerator {
481
481
  hasMissingOpData: this.heuristicData.hasMissingOpData,
482
482
  opsSizesSinceLastSummary: this.heuristicData.totalOpsSize,
483
483
  nonRuntimeOpsSinceLastSummary: this.heuristicData.numNonRuntimeOps,
484
+ runtimeOpsSinceLastSummary: this.heuristicData.numRuntimeOps,
484
485
  };
485
486
 
486
487
  default: