@fluidframework/container-runtime 2.0.0-internal.6.0.0 → 2.0.0-internal.6.1.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 (55) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/containerRuntime.d.ts.map +1 -1
  3. package/dist/containerRuntime.js +15 -11
  4. package/dist/containerRuntime.js.map +1 -1
  5. package/dist/dataStoreContext.d.ts.map +1 -1
  6. package/dist/dataStoreContext.js +1 -2
  7. package/dist/dataStoreContext.js.map +1 -1
  8. package/dist/deltaManagerProxyBase.d.ts +35 -0
  9. package/dist/deltaManagerProxyBase.d.ts.map +1 -0
  10. package/dist/deltaManagerProxyBase.js +77 -0
  11. package/dist/deltaManagerProxyBase.js.map +1 -0
  12. package/dist/deltaManagerSummarizerProxy.d.ts +1 -1
  13. package/dist/deltaManagerSummarizerProxy.d.ts.map +1 -1
  14. package/dist/deltaManagerSummarizerProxy.js +2 -2
  15. package/dist/deltaManagerSummarizerProxy.js.map +1 -1
  16. package/dist/packageVersion.d.ts +1 -1
  17. package/dist/packageVersion.js +1 -1
  18. package/dist/packageVersion.js.map +1 -1
  19. package/dist/summary/runningSummarizer.d.ts.map +1 -1
  20. package/dist/summary/runningSummarizer.js +8 -24
  21. package/dist/summary/runningSummarizer.js.map +1 -1
  22. package/dist/summary/summaryGenerator.d.ts.map +1 -1
  23. package/dist/summary/summaryGenerator.js +0 -1
  24. package/dist/summary/summaryGenerator.js.map +1 -1
  25. package/lib/containerRuntime.d.ts.map +1 -1
  26. package/lib/containerRuntime.js +15 -11
  27. package/lib/containerRuntime.js.map +1 -1
  28. package/lib/dataStoreContext.d.ts.map +1 -1
  29. package/lib/dataStoreContext.js +1 -2
  30. package/lib/dataStoreContext.js.map +1 -1
  31. package/lib/deltaManagerProxyBase.d.ts +35 -0
  32. package/lib/deltaManagerProxyBase.d.ts.map +1 -0
  33. package/lib/deltaManagerProxyBase.js +73 -0
  34. package/lib/deltaManagerProxyBase.js.map +1 -0
  35. package/lib/deltaManagerSummarizerProxy.d.ts +1 -1
  36. package/lib/deltaManagerSummarizerProxy.d.ts.map +1 -1
  37. package/lib/deltaManagerSummarizerProxy.js +1 -1
  38. package/lib/deltaManagerSummarizerProxy.js.map +1 -1
  39. package/lib/packageVersion.d.ts +1 -1
  40. package/lib/packageVersion.js +1 -1
  41. package/lib/packageVersion.js.map +1 -1
  42. package/lib/summary/runningSummarizer.d.ts.map +1 -1
  43. package/lib/summary/runningSummarizer.js +8 -24
  44. package/lib/summary/runningSummarizer.js.map +1 -1
  45. package/lib/summary/summaryGenerator.d.ts.map +1 -1
  46. package/lib/summary/summaryGenerator.js +0 -1
  47. package/lib/summary/summaryGenerator.js.map +1 -1
  48. package/package.json +19 -31
  49. package/src/containerRuntime.ts +21 -16
  50. package/src/dataStoreContext.ts +1 -2
  51. package/src/deltaManagerProxyBase.ts +111 -0
  52. package/src/deltaManagerSummarizerProxy.ts +2 -1
  53. package/src/packageVersion.ts +1 -1
  54. package/src/summary/runningSummarizer.ts +9 -31
  55. package/src/summary/summaryGenerator.ts +0 -1
@@ -0,0 +1,111 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ import { EventForwarder } from "@fluidframework/common-utils";
7
+ import {
8
+ IDeltaManager,
9
+ IDeltaManagerEvents,
10
+ IDeltaQueue,
11
+ IDeltaSender,
12
+ ReadOnlyInfo,
13
+ } from "@fluidframework/container-definitions";
14
+ import {
15
+ IClientConfiguration,
16
+ IClientDetails,
17
+ IDocumentMessage,
18
+ ISequencedDocumentMessage,
19
+ ISignalMessage,
20
+ } from "@fluidframework/protocol-definitions";
21
+
22
+ /**
23
+ * Base class for creating proxy to the real delta manager. It implements all required methods on IDeltaManager and
24
+ * proxy implementations can override specific methods.
25
+ */
26
+ export class DeltaManagerProxyBase
27
+ extends EventForwarder<IDeltaManagerEvents>
28
+ implements IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>
29
+ {
30
+ public get IDeltaSender(): IDeltaSender {
31
+ return this;
32
+ }
33
+
34
+ public get inbound(): IDeltaQueue<ISequencedDocumentMessage> {
35
+ return this.deltaManager.inbound;
36
+ }
37
+
38
+ public get outbound(): IDeltaQueue<IDocumentMessage[]> {
39
+ return this.deltaManager.outbound;
40
+ }
41
+
42
+ public get inboundSignal(): IDeltaQueue<ISignalMessage> {
43
+ return this.deltaManager.inboundSignal;
44
+ }
45
+
46
+ public get minimumSequenceNumber(): number {
47
+ return this.deltaManager.minimumSequenceNumber;
48
+ }
49
+
50
+ public get lastSequenceNumber(): number {
51
+ return this.deltaManager.lastSequenceNumber;
52
+ }
53
+
54
+ public get lastMessage() {
55
+ return this.deltaManager.lastMessage;
56
+ }
57
+
58
+ public get lastKnownSeqNumber() {
59
+ return this.deltaManager.lastKnownSeqNumber;
60
+ }
61
+
62
+ public get initialSequenceNumber(): number {
63
+ return this.deltaManager.initialSequenceNumber;
64
+ }
65
+
66
+ public get hasCheckpointSequenceNumber() {
67
+ return this.deltaManager.hasCheckpointSequenceNumber;
68
+ }
69
+
70
+ public get clientDetails(): IClientDetails {
71
+ return this.deltaManager.clientDetails;
72
+ }
73
+
74
+ public get version(): string {
75
+ return this.deltaManager.version;
76
+ }
77
+
78
+ public get maxMessageSize(): number {
79
+ return this.deltaManager.maxMessageSize;
80
+ }
81
+
82
+ public get serviceConfiguration(): IClientConfiguration | undefined {
83
+ return this.deltaManager.serviceConfiguration;
84
+ }
85
+
86
+ public get active(): boolean {
87
+ return this.deltaManager.active;
88
+ }
89
+
90
+ public get readOnlyInfo(): ReadOnlyInfo {
91
+ return this.deltaManager.readOnlyInfo;
92
+ }
93
+
94
+ constructor(
95
+ protected readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>,
96
+ ) {
97
+ super(deltaManager);
98
+ }
99
+
100
+ public dispose(): void {
101
+ super.dispose();
102
+ }
103
+
104
+ public submitSignal(content: any): void {
105
+ return this.deltaManager.submitSignal(content);
106
+ }
107
+
108
+ public flush(): void {
109
+ return this.deltaManager.flush();
110
+ }
111
+ }
@@ -4,8 +4,9 @@
4
4
  */
5
5
 
6
6
  import { IDeltaManager, ReadOnlyInfo } from "@fluidframework/container-definitions";
7
- import { DeltaManagerProxyBase } from "@fluidframework/container-utils";
8
7
  import { IDocumentMessage, ISequencedDocumentMessage } from "@fluidframework/protocol-definitions";
8
+
9
+ import { DeltaManagerProxyBase } from "./deltaManagerProxyBase";
9
10
  import { summarizerClientType } from "./summary";
10
11
 
11
12
  /**
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/container-runtime";
9
- export const pkgVersion = "2.0.0-internal.6.0.0";
9
+ export const pkgVersion = "2.0.0-internal.6.1.1";
@@ -44,8 +44,6 @@ import {
44
44
 
45
45
  const maxSummarizeAckWaitTime = 10 * 60 * 1000; // 10 minutes
46
46
 
47
- const defaultNumberSummarizationAttempts = 2; // only up to 2 attempts
48
-
49
47
  /**
50
48
  * An instance of RunningSummarizer manages the heuristics for summarizing.
51
49
  * Until disposed, the instance of RunningSummarizer can assume that it is
@@ -573,31 +571,15 @@ export class RunningSummarizer implements IDisposable {
573
571
  this.beforeSummaryAction();
574
572
  },
575
573
  async () => {
576
- const attempts: (ISummarizeOptions & { delaySeconds?: number })[] = [
574
+ const attempts: ISummarizeOptions[] = [
577
575
  { refreshLatestAck: false, fullTree: false },
578
576
  { refreshLatestAck: true, fullTree: false },
579
- { refreshLatestAck: true, fullTree: false, delaySeconds: 2 * 60 },
580
- { refreshLatestAck: true, fullTree: true, delaySeconds: 10 * 60 },
581
577
  ];
582
578
  let overrideDelaySeconds: number | undefined;
583
579
  let summaryAttempts = 0;
584
580
  let summaryAttemptsPerPhase = 0;
585
- // Reducing the default number of attempts to defaultNumberofSummarizationAttempts.
586
- let totalAttempts =
587
- this.mc.config.getNumber("Fluid.Summarizer.Attempts") ??
588
- defaultNumberSummarizationAttempts;
589
-
590
- if (totalAttempts > attempts.length) {
591
- this.mc.logger.sendTelemetryEvent({
592
- eventName: "InvalidSummarizerAttempts",
593
- attempts: totalAttempts,
594
- });
595
- totalAttempts = defaultNumberSummarizationAttempts;
596
- } else if (totalAttempts < 1) {
597
- throw new UsageError("Invalid number of attempts.");
598
- }
599
-
600
- for (let summaryAttemptPhase = 0; summaryAttemptPhase < totalAttempts; ) {
581
+ let summaryAttemptPhase = 0;
582
+ while (summaryAttemptPhase < attempts.length) {
601
583
  if (this.cancellationToken.cancelled) {
602
584
  return;
603
585
  }
@@ -609,22 +591,20 @@ export class RunningSummarizer implements IDisposable {
609
591
 
610
592
  summaryAttemptsPerPhase++;
611
593
 
612
- const { delaySeconds: regularDelaySeconds = 0, ...options } =
613
- attempts[summaryAttemptPhase];
614
-
594
+ const summarizeOptions = attempts[summaryAttemptPhase];
615
595
  const summarizeProps: ISummarizeTelemetryProperties = {
616
596
  reason,
617
597
  summaryAttempts,
618
598
  summaryAttemptsPerPhase,
619
599
  summaryAttemptPhase: summaryAttemptPhase + 1, // make everything 1-based
620
- ...options,
600
+ ...summarizeOptions,
621
601
  };
622
602
 
623
603
  // Note: no need to account for cancellationToken.waitCancelled here, as
624
604
  // this is accounted SummaryGenerator.summarizeCore that controls receivedSummaryAckOrNack.
625
605
  const resultSummarize = this.generator.summarize(
626
606
  summarizeProps,
627
- options,
607
+ summarizeOptions,
628
608
  cancellationToken,
629
609
  );
630
610
  const result = await resultSummarize.receivedSummaryAckOrNack;
@@ -635,15 +615,13 @@ export class RunningSummarizer implements IDisposable {
635
615
 
636
616
  // Check for retryDelay that can come from summaryNack or upload summary flow.
637
617
  // Retry the same step only once per retryAfter response.
638
- overrideDelaySeconds = result.retryAfterSeconds;
639
- if (overrideDelaySeconds === undefined || summaryAttemptsPerPhase > 1) {
618
+ const delaySeconds = result.retryAfterSeconds;
619
+ if (delaySeconds === undefined || summaryAttemptsPerPhase > 1) {
640
620
  summaryAttemptPhase++;
641
621
  summaryAttemptsPerPhase = 0;
642
622
  }
643
623
 
644
- const delaySeconds = overrideDelaySeconds ?? regularDelaySeconds;
645
-
646
- if (delaySeconds > 0) {
624
+ if (delaySeconds !== undefined) {
647
625
  this.mc.logger.sendPerformanceEvent({
648
626
  eventName: "SummarizeAttemptDelay",
649
627
  duration: delaySeconds,
@@ -242,7 +242,6 @@ export class SummaryGenerator {
242
242
  const { refreshLatestAck, fullTree } = options;
243
243
  const logger = createChildLogger({
244
244
  logger: this.logger,
245
- namespace: undefined,
246
245
  properties: { all: summarizeProps },
247
246
  });
248
247