@fluidframework/container-runtime 2.0.0-internal.2.4.0 → 2.0.0-internal.3.0.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.
- package/dist/containerRuntime.d.ts +45 -42
- package/dist/containerRuntime.d.ts.map +1 -1
- package/dist/containerRuntime.js +87 -38
- package/dist/containerRuntime.js.map +1 -1
- package/dist/dataStoreContext.d.ts +1 -0
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +7 -2
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/opLifecycle/outbox.d.ts.map +1 -1
- package/dist/opLifecycle/outbox.js +0 -1
- package/dist/opLifecycle/outbox.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/pendingStateManager.d.ts +4 -13
- package/dist/pendingStateManager.d.ts.map +1 -1
- package/dist/pendingStateManager.js +130 -160
- package/dist/pendingStateManager.js.map +1 -1
- package/dist/summarizerClientElection.d.ts +1 -2
- package/dist/summarizerClientElection.d.ts.map +1 -1
- package/dist/summarizerClientElection.js +3 -30
- package/dist/summarizerClientElection.js.map +1 -1
- package/dist/summarizerTypes.d.ts +0 -4
- package/dist/summarizerTypes.d.ts.map +1 -1
- package/dist/summarizerTypes.js.map +1 -1
- package/lib/containerRuntime.d.ts +45 -42
- package/lib/containerRuntime.d.ts.map +1 -1
- package/lib/containerRuntime.js +87 -38
- package/lib/containerRuntime.js.map +1 -1
- package/lib/dataStoreContext.d.ts +1 -0
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +7 -2
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/opLifecycle/outbox.d.ts.map +1 -1
- package/lib/opLifecycle/outbox.js +0 -1
- package/lib/opLifecycle/outbox.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/pendingStateManager.d.ts +4 -13
- package/lib/pendingStateManager.d.ts.map +1 -1
- package/lib/pendingStateManager.js +130 -160
- package/lib/pendingStateManager.js.map +1 -1
- package/lib/summarizerClientElection.d.ts +1 -2
- package/lib/summarizerClientElection.d.ts.map +1 -1
- package/lib/summarizerClientElection.js +3 -30
- package/lib/summarizerClientElection.js.map +1 -1
- package/lib/summarizerTypes.d.ts +0 -4
- package/lib/summarizerTypes.d.ts.map +1 -1
- package/lib/summarizerTypes.js.map +1 -1
- package/package.json +34 -16
- package/src/containerRuntime.ts +116 -84
- package/src/dataStoreContext.ts +12 -6
- package/src/opLifecycle/outbox.ts +0 -2
- package/src/packageVersion.ts +1 -1
- package/src/pendingStateManager.ts +146 -187
- package/src/summarizerClientElection.ts +1 -30
- package/src/summarizerTypes.ts +0 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizerClientElection.js","sourceRoot":"","sources":["../src/summarizerClientElection.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IEvent, IEventProvider, ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { TypedEventEmitter } from \"@fluidframework/common-utils\";\nimport { IClientDetails, MessageType } from \"@fluidframework/protocol-definitions\";\nimport { IOrderedClientElection, ISerializedElection, ITrackedClient } from \"./orderedClientElection\";\nimport { ISummaryCollectionOpEvents } from \"./summaryCollection\";\n\nexport const summarizerClientType = \"summarizer\";\n\nexport interface ISummarizerClientElectionEvents extends IEvent {\n (event: \"electedSummarizerChanged\", handler: () => void): void;\n}\n\nexport interface ISummarizerClientElection extends IEventProvider<ISummarizerClientElectionEvents> {\n readonly electedClientId: string | undefined;\n readonly electedParentId: string | undefined;\n}\n\n/**\n * This class encapsulates logic around tracking the elected summarizer client.\n * It will handle updating the elected client when a summary ack hasn't been seen\n * for some configured number of ops.\n */\nexport class SummarizerClientElection\n extends TypedEventEmitter<ISummarizerClientElectionEvents>\n implements ISummarizerClientElection {\n /**\n * Used to calculate number of ops since last summary ack for the current elected client.\n * This will be undefined if there is no elected summarizer, or no summary ack has been\n * observed since this client was elected.\n * When a summary ack comes in, this will be set to the sequence number of the summary ack.\n */\n private lastSummaryAckSeqForClient: number | undefined;\n /**\n * Used to prevent excess logging by recording the sequence number that we last reported at,\n * and making sure we don't report another event to telemetry. If things work as intended,\n * this is not needed, otherwise it could report an event on every op in worst case scenario.\n */\n private lastReportedSeq = 0;\n\n public get electedClientId() {\n return this.clientElection.electedClient?.clientId;\n }\n public get electedParentId() {\n return this.clientElection.electedParent?.clientId;\n }\n\n constructor(\n private readonly logger: ITelemetryLogger,\n private readonly summaryCollection: IEventProvider<ISummaryCollectionOpEvents>,\n public readonly clientElection: IOrderedClientElection,\n private readonly maxOpsSinceLastSummary: number,\n private readonly electionEnabled: boolean,\n ) {\n super();\n // On every inbound op, if enough ops pass without seeing a summary ack (per elected client),\n // elect a new client and log to telemetry.\n this.summaryCollection.on(\"default\", ({ sequenceNumber }) => {\n const electedClientId = this.electedClientId;\n if (electedClientId === undefined) {\n // Reset election if no elected client, but eligible clients are connected.\n // This should be uncommon, but is possible if the initial state of the\n // ordered client election contains an undefined client id or one not found\n // in the quorum (the latter would already log an error).\n if (this.clientElection.eligibleCount > 0) {\n this.clientElection.resetElectedClient(sequenceNumber);\n }\n return;\n }\n let electionSequenceNumber = this.clientElection.electionSequenceNumber;\n const opsWithoutSummary = sequenceNumber - (this.lastSummaryAckSeqForClient ?? electionSequenceNumber);\n if (opsWithoutSummary > this.maxOpsSinceLastSummary) {\n // Log and elect a new summarizer client.\n const opsSinceLastReport = sequenceNumber - this.lastReportedSeq;\n if (opsSinceLastReport > this.maxOpsSinceLastSummary) {\n this.logger.sendTelemetryEvent({\n eventName: \"ElectedClientNotSummarizing\",\n electedClientId,\n lastSummaryAckSeqForClient: this.lastSummaryAckSeqForClient,\n electionSequenceNumber,\n nextElectedClientId: this.clientElection.peekNextElectedClient()?.clientId,\n electionEnabled: this.electionEnabled,\n });\n this.lastReportedSeq = sequenceNumber;\n }\n\n if (this.electionEnabled) {\n const previousParentId = this.electedParentId;\n this.clientElection.incrementElectedClient(sequenceNumber);\n\n // Verify that state incremented as expected. This should be reliable,\n // since all of OrderedClientElection is synchronous.\n electionSequenceNumber = this.clientElection.electionSequenceNumber;\n if (sequenceNumber > (this.lastSummaryAckSeqForClient ?? electionSequenceNumber)) {\n if (opsSinceLastReport > this.maxOpsSinceLastSummary) {\n this.logger.sendErrorEvent({\n eventName: \"UnexpectedElectionSequenceNumber\",\n // Expected to be undefined\n lastSummaryAckSeqForClient: this.lastSummaryAckSeqForClient,\n // Expected to be same as op sequenceNumber\n electionSequenceNumber,\n sequenceNumber,\n previousClientId: electedClientId,\n previousParentId,\n electedParentId: this.electedParentId,\n electedClientId: this.electedClientId,\n opsSinceLastReport,\n maxOpsSinceLastSummary,\n });\n }\n }\n }\n }\n });\n\n // When a summary ack comes in, reset our op seq counter.\n this.summaryCollection.on(MessageType.SummaryAck, (op) => {\n this.lastSummaryAckSeqForClient = op.sequenceNumber;\n });\n\n // Use oldest client election for unanimously and deterministically deciding\n // which client should summarize.\n this.clientElection.on(\"election\", (client, sequenceNumber) => {\n this.lastSummaryAckSeqForClient = undefined;\n if (client === undefined && this.clientElection.eligibleCount > 0) {\n // If no client is valid for election, reset to the oldest again.\n // Also make extra sure not to get stuck in an infinite loop here:\n // If there are no eligible clients, just wait until a client joins\n // and will be auto-elected.\n this.clientElection.resetElectedClient(sequenceNumber);\n }\n // Election can trigger a change in SummaryManager state.\n this.emit(\"electedSummarizerChanged\");\n });\n }\n\n public serialize(): ISerializedElection {\n const { electedClientId, electedParentId, electionSequenceNumber } = this.clientElection.serialize();\n return {\n electedClientId,\n electedParentId,\n electionSequenceNumber: this.lastSummaryAckSeqForClient ?? electionSequenceNumber,\n };\n }\n\n public static isClientEligible(client: ITrackedClient): boolean {\n const details = client.client.details;\n if (details === undefined) {\n // Very old clients back-compat\n return true;\n }\n return SummarizerClientElection.clientDetailsPermitElection(details);\n }\n\n public static readonly clientDetailsPermitElection = (details: IClientDetails): boolean =>\n details.capabilities.interactive || details.type === summarizerClientType;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"summarizerClientElection.js","sourceRoot":"","sources":["../src/summarizerClientElection.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAGH,+DAAiE;AACjE,+EAAmF;AAItE,QAAA,oBAAoB,GAAG,YAAY,CAAC;AAWjD;;;;GAIG;AACH,MAAa,wBACT,SAAQ,gCAAkD;IAuB1D,YACqB,MAAwB,EACxB,iBAA6D,EAC9D,cAAsC,EACrC,sBAA8B;QAE/C,KAAK,EAAE,CAAC;QALS,WAAM,GAAN,MAAM,CAAkB;QACxB,sBAAiB,GAAjB,iBAAiB,CAA4C;QAC9D,mBAAc,GAAd,cAAc,CAAwB;QACrC,2BAAsB,GAAtB,sBAAsB,CAAQ;QAlBnD;;;;WAIG;QACK,oBAAe,GAAG,CAAC,CAAC;QAgBxB,6FAA6F;QAC7F,2CAA2C;QAC3C,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,EAAE,cAAc,EAAE,EAAE,EAAE;;YACxD,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,CAAC;YAC7C,IAAI,eAAe,KAAK,SAAS,EAAE;gBAC/B,2EAA2E;gBAC3E,uEAAuE;gBACvE,2EAA2E;gBAC3E,yDAAyD;gBACzD,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,EAAE;oBACvC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;iBAC1D;gBACD,OAAO;aACV;YACD,MAAM,sBAAsB,GAAG,IAAI,CAAC,cAAc,CAAC,sBAAsB,CAAC;YAC1E,MAAM,iBAAiB,GAAG,cAAc,GAAG,CAAC,MAAA,IAAI,CAAC,0BAA0B,mCAAI,sBAAsB,CAAC,CAAC;YACvG,IAAI,iBAAiB,GAAG,IAAI,CAAC,sBAAsB,EAAE;gBACjD,yCAAyC;gBACzC,MAAM,kBAAkB,GAAG,cAAc,GAAG,IAAI,CAAC,eAAe,CAAC;gBACjE,IAAI,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,EAAE;oBAClD,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC;wBAC3B,SAAS,EAAE,6BAA6B;wBACxC,eAAe;wBACf,0BAA0B,EAAE,IAAI,CAAC,0BAA0B;wBAC3D,sBAAsB;wBACtB,mBAAmB,EAAE,MAAA,IAAI,CAAC,cAAc,CAAC,qBAAqB,EAAE,0CAAE,QAAQ;qBAC7E,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;iBACzC;aACJ;QACL,CAAC,CAAC,CAAC;QAEH,yDAAyD;QACzD,IAAI,CAAC,iBAAiB,CAAC,EAAE,CAAC,kCAAW,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,EAAE;YACrD,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAC,cAAc,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,4EAA4E;QAC5E,iCAAiC;QACjC,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,EAAE;YAC1D,IAAI,CAAC,0BAA0B,GAAG,SAAS,CAAC;YAC5C,IAAI,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,EAAE;gBAC/D,iEAAiE;gBACjE,kEAAkE;gBAClE,mEAAmE;gBACnE,4BAA4B;gBAC5B,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAAC;aAC1D;YACD,yDAAyD;YACzD,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACP,CAAC;IAjED,IAAW,eAAe;;QACtB,OAAO,MAAA,IAAI,CAAC,cAAc,CAAC,aAAa,0CAAE,QAAQ,CAAC;IACvD,CAAC;IACD,IAAW,eAAe;;QACtB,OAAO,MAAA,IAAI,CAAC,cAAc,CAAC,aAAa,0CAAE,QAAQ,CAAC;IACvD,CAAC;IA8DM,SAAS;;QACZ,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,sBAAsB,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QACrG,OAAO;YACH,eAAe;YACf,eAAe;YACf,sBAAsB,EAAE,MAAA,IAAI,CAAC,0BAA0B,mCAAI,sBAAsB;SACpF,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,gBAAgB,CAAC,MAAsB;QACjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACtC,IAAI,OAAO,KAAK,SAAS,EAAE;YACvB,+BAA+B;YAC/B,OAAO,IAAI,CAAC;SACf;QACD,OAAO,wBAAwB,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC;;AApGL,4DAwGC;AAF0B,oDAA2B,GAAG,CAAC,OAAuB,EAAW,EAAE,CACtF,OAAO,CAAC,YAAY,CAAC,WAAW,IAAI,OAAO,CAAC,IAAI,KAAK,4BAAoB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IEvent, IEventProvider, ITelemetryLogger } from \"@fluidframework/common-definitions\";\nimport { TypedEventEmitter } from \"@fluidframework/common-utils\";\nimport { IClientDetails, MessageType } from \"@fluidframework/protocol-definitions\";\nimport { IOrderedClientElection, ISerializedElection, ITrackedClient } from \"./orderedClientElection\";\nimport { ISummaryCollectionOpEvents } from \"./summaryCollection\";\n\nexport const summarizerClientType = \"summarizer\";\n\nexport interface ISummarizerClientElectionEvents extends IEvent {\n (event: \"electedSummarizerChanged\", handler: () => void): void;\n}\n\nexport interface ISummarizerClientElection extends IEventProvider<ISummarizerClientElectionEvents> {\n readonly electedClientId: string | undefined;\n readonly electedParentId: string | undefined;\n}\n\n/**\n * This class encapsulates logic around tracking the elected summarizer client.\n * It will handle updating the elected client when a summary ack hasn't been seen\n * for some configured number of ops.\n */\nexport class SummarizerClientElection\n extends TypedEventEmitter<ISummarizerClientElectionEvents>\n implements ISummarizerClientElection {\n /**\n * Used to calculate number of ops since last summary ack for the current elected client.\n * This will be undefined if there is no elected summarizer, or no summary ack has been\n * observed since this client was elected.\n * When a summary ack comes in, this will be set to the sequence number of the summary ack.\n */\n private lastSummaryAckSeqForClient: number | undefined;\n /**\n * Used to prevent excess logging by recording the sequence number that we last reported at,\n * and making sure we don't report another event to telemetry. If things work as intended,\n * this is not needed, otherwise it could report an event on every op in worst case scenario.\n */\n private lastReportedSeq = 0;\n\n public get electedClientId() {\n return this.clientElection.electedClient?.clientId;\n }\n public get electedParentId() {\n return this.clientElection.electedParent?.clientId;\n }\n\n constructor(\n private readonly logger: ITelemetryLogger,\n private readonly summaryCollection: IEventProvider<ISummaryCollectionOpEvents>,\n public readonly clientElection: IOrderedClientElection,\n private readonly maxOpsSinceLastSummary: number,\n ) {\n super();\n // On every inbound op, if enough ops pass without seeing a summary ack (per elected client),\n // elect a new client and log to telemetry.\n this.summaryCollection.on(\"default\", ({ sequenceNumber }) => {\n const electedClientId = this.electedClientId;\n if (electedClientId === undefined) {\n // Reset election if no elected client, but eligible clients are connected.\n // This should be uncommon, but is possible if the initial state of the\n // ordered client election contains an undefined client id or one not found\n // in the quorum (the latter would already log an error).\n if (this.clientElection.eligibleCount > 0) {\n this.clientElection.resetElectedClient(sequenceNumber);\n }\n return;\n }\n const electionSequenceNumber = this.clientElection.electionSequenceNumber;\n const opsWithoutSummary = sequenceNumber - (this.lastSummaryAckSeqForClient ?? electionSequenceNumber);\n if (opsWithoutSummary > this.maxOpsSinceLastSummary) {\n // Log and elect a new summarizer client.\n const opsSinceLastReport = sequenceNumber - this.lastReportedSeq;\n if (opsSinceLastReport > this.maxOpsSinceLastSummary) {\n this.logger.sendTelemetryEvent({\n eventName: \"ElectedClientNotSummarizing\",\n electedClientId,\n lastSummaryAckSeqForClient: this.lastSummaryAckSeqForClient,\n electionSequenceNumber,\n nextElectedClientId: this.clientElection.peekNextElectedClient()?.clientId,\n });\n this.lastReportedSeq = sequenceNumber;\n }\n }\n });\n\n // When a summary ack comes in, reset our op seq counter.\n this.summaryCollection.on(MessageType.SummaryAck, (op) => {\n this.lastSummaryAckSeqForClient = op.sequenceNumber;\n });\n\n // Use oldest client election for unanimously and deterministically deciding\n // which client should summarize.\n this.clientElection.on(\"election\", (client, sequenceNumber) => {\n this.lastSummaryAckSeqForClient = undefined;\n if (client === undefined && this.clientElection.eligibleCount > 0) {\n // If no client is valid for election, reset to the oldest again.\n // Also make extra sure not to get stuck in an infinite loop here:\n // If there are no eligible clients, just wait until a client joins\n // and will be auto-elected.\n this.clientElection.resetElectedClient(sequenceNumber);\n }\n // Election can trigger a change in SummaryManager state.\n this.emit(\"electedSummarizerChanged\");\n });\n }\n\n public serialize(): ISerializedElection {\n const { electedClientId, electedParentId, electionSequenceNumber } = this.clientElection.serialize();\n return {\n electedClientId,\n electedParentId,\n electionSequenceNumber: this.lastSummaryAckSeqForClient ?? electionSequenceNumber,\n };\n }\n\n public static isClientEligible(client: ITrackedClient): boolean {\n const details = client.client.details;\n if (details === undefined) {\n // Very old clients back-compat\n return true;\n }\n return SummarizerClientElection.clientDetailsPermitElection(details);\n }\n\n public static readonly clientDetailsPermitElection = (details: IClientDetails): boolean =>\n details.capabilities.interactive || details.type === summarizerClientType;\n}\n"]}
|
|
@@ -73,10 +73,6 @@ export interface ISummarizerRuntime extends IConnectableRuntime {
|
|
|
73
73
|
readonly summarizerClientId: string | undefined;
|
|
74
74
|
disposeFn?(): void;
|
|
75
75
|
closeFn(): void;
|
|
76
|
-
/** @deprecated 1.0, please remove all implementations and usage */
|
|
77
|
-
on(event: "batchEnd", listener: (error: any, op: ISequencedDocumentMessage) => void): this;
|
|
78
|
-
/** @deprecated 1.0, please remove all implementations and usage */
|
|
79
|
-
removeListener(event: "batchEnd", listener: (error: any, op: ISequencedDocumentMessage) => void): this;
|
|
80
76
|
}
|
|
81
77
|
/** Options affecting summarize behavior. */
|
|
82
78
|
export interface ISummarizeOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizerTypes.d.ts","sourceRoot":"","sources":["../src/summarizerTypes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACH,MAAM,EACN,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EACH,cAAc,EACjB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AACxF,OAAO,EACH,yBAAyB,EACzB,YAAY,EACZ,gBAAgB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACjG,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,+BAA+B,EAAE,MAAM,GAAG,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,kBAAkC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAC/B;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,mDAAmD;IACnD,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACtC;AAGD,oBAAY,yBAAyB,GAAG,kBAAkB,CAAC,oBAAoB,CAAC,CAAC;AAEjF,MAAM,WAAW,4BAA4B;IACzC,iGAAiG;IACjG,aAAa,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAE5E,wFAAwF;IACxF,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9E;AAED;;KAEK;AACL,MAAM,WAAW,kBAAkB;IAC/B;;;;;OAKG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IACzD,QAAQ,CAAC,SAAS,EAAE,kBAAkB,CAAC;IACvC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,mBAAmB;IAChC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,yBAAyB,EAAE,gBAAgB,CAAC,CAAC;IAClF,IAAI,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;CACrF;AAED,MAAM,WAAW,kBAAmB,SAAQ,mBAAmB;IAC3D,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAClC,oFAAoF;IACpF,QAAQ,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IAChD,SAAS,CAAC,IAAI,IAAI,CAAC;IACnB,OAAO,IAAI,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"summarizerTypes.d.ts","sourceRoot":"","sources":["../src/summarizerTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summarizerTypes.js","sourceRoot":"","sources":["../src/summarizerTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuBH;;GAEG;AACU,QAAA,WAAW,GAA6B,aAAa,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n IEvent,\n IEventProvider,\n ITelemetryLogger,\n ITelemetryProperties,\n} from \"@fluidframework/common-definitions\";\nimport { ITelemetryLoggerPropertyBag } from \"@fluidframework/telemetry-utils\";\nimport {\n IFluidLoadable,\n} from \"@fluidframework/core-interfaces\";\nimport { ContainerWarning, IDeltaManager } from \"@fluidframework/container-definitions\";\nimport {\n ISequencedDocumentMessage,\n ISummaryTree,\n IDocumentMessage,\n} from \"@fluidframework/protocol-definitions\";\nimport { ISummaryStats } from \"@fluidframework/runtime-definitions\";\nimport { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from \"./summaryCollection\";\nimport { SummarizeReason } from \"./summaryGenerator\";\nimport { ISummaryConfigurationHeuristics } from \".\";\n\n/**\n * @deprecated This will be removed in a later release.\n */\nexport const ISummarizer: keyof IProvideSummarizer = \"ISummarizer\";\n\n/**\n * @deprecated This will be removed in a later release.\n */\nexport interface IProvideSummarizer {\n /**\n * @deprecated This will be removed in a later release.\n */\n readonly ISummarizer: ISummarizer;\n}\n\n/**\n * Similar to AbortSignal, but using promise instead of events\n * @param T - cancellation reason type\n */\nexport interface ICancellationToken<T> {\n /** Tells if this cancellable token is cancelled */\n readonly cancelled: boolean;\n /**\n * Promise that gets fulfilled when this cancellable token is cancelled\n * @returns reason of cancellation\n */\n readonly waitCancelled: Promise<T>;\n}\n\n/* Similar to AbortSignal, but using promise instead of events */\nexport type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;\n\nexport interface ISummarizerInternalsProvider {\n /** Encapsulates the work to walk the internals of the running container to generate a summary */\n submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;\n\n /** Callback whenever a new SummaryAck is received, to update internal tracking state */\n refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;\n}\n\n/**\n * @deprecated Options that control the behavior of a running summarizer.\n * */\nexport interface ISummarizerOptions {\n /**\n * Set to true to disable the default heuristics from running; false by default.\n * This affects only the heuristics around when a summarizer should\n * submit summaries. So when it is disabled, summarizer clients should\n * not be expected to summarize unless an on-demand summary is requested.\n */\n disableHeuristics: boolean;\n}\n\nexport interface ISummarizingWarning extends ContainerWarning {\n readonly errorType: \"summarizingError\";\n readonly logged: boolean;\n}\n\nexport interface IConnectableRuntime {\n readonly disposed: boolean;\n readonly connected: boolean;\n readonly clientId: string | undefined;\n readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n once(event: \"connected\" | \"disconnected\" | \"dispose\", listener: () => void): this;\n}\n\nexport interface ISummarizerRuntime extends IConnectableRuntime {\n readonly logger: ITelemetryLogger;\n /** clientId of parent (non-summarizing) container that owns summarizer container */\n readonly summarizerClientId: string | undefined;\n disposeFn?(): void;\n closeFn(): void;\n /** @deprecated 1.0, please remove all implementations and usage */\n on(event: \"batchEnd\", listener: (error: any, op: ISequencedDocumentMessage) => void): this;\n /** @deprecated 1.0, please remove all implementations and usage */\n removeListener(event: \"batchEnd\", listener: (error: any, op: ISequencedDocumentMessage) => void): this;\n}\n\n/** Options affecting summarize behavior. */\nexport interface ISummarizeOptions {\n /** True to generate the full tree with no handle reuse optimizations; defaults to false */\n readonly fullTree?: boolean;\n /** True to ask the server what the latest summary is first; defaults to false */\n readonly refreshLatestAck?: boolean;\n}\n\n/**\n * Data required to update internal tracking state after receiving a Summary Ack.\n */\n export interface IRefreshSummaryAckOptions {\n /** Handle from the ack's summary op. */\n readonly proposalHandle: string | undefined;\n /** Handle from the summary ack just received */\n readonly ackHandle: string;\n /** Reference sequence number from the ack's summary op */\n readonly summaryRefSeq: number;\n /** Telemetry logger to which telemetry events will be forwarded. */\n readonly summaryLogger: ITelemetryLogger;\n}\n\nexport interface ISubmitSummaryOptions extends ISummarizeOptions {\n /** Logger to use for correlated summary events */\n readonly summaryLogger: ITelemetryLogger;\n /** Tells when summary process should be cancelled */\n readonly cancellationToken: ISummaryCancellationToken;\n}\n\nexport interface IOnDemandSummarizeOptions extends ISummarizeOptions {\n /** Reason for generating summary. */\n readonly reason: string;\n}\n\n/** Options to use when enqueueing a summarize attempt. */\nexport interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {\n /** If specified, The summarize attempt will not occur until after this sequence number. */\n readonly afterSequenceNumber?: number;\n\n /**\n * True to override the existing enqueued summarize attempt if there is one.\n * This will guarantee that this attempt gets enqueued. If override is false,\n * than an existing enqueued summarize attempt will block a new one from being\n * enqueued. There can only be one enqueued at a time. Defaults to false.\n */\n readonly override?: boolean;\n}\n\n/**\n * In addition to the normal summary tree + stats, this contains additional stats\n * only relevant at the root of the tree.\n */\nexport interface IGeneratedSummaryStats extends ISummaryStats {\n /** The total number of data stores in the container. */\n readonly dataStoreCount: number;\n /** The number of data stores that were summarized in this summary. */\n readonly summarizedDataStoreCount: number;\n /** The number of data stores whose GC reference state was updated in this summary. */\n readonly gcStateUpdatedDataStoreCount?: number;\n /** The size of the gc blobs in this summary. */\n readonly gcTotalBlobsSize?: number;\n /** The number of gc blobs in this summary. */\n readonly gcBlobNodeCount?: number;\n /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */\n readonly summaryNumber: number;\n}\n\n/** Base results for all submitSummary attempts. */\nexport interface IBaseSummarizeResult {\n readonly stage: \"base\";\n /** Error object related to failed summarize attempt. */\n readonly error: any;\n /** Reference sequence number as of the generate summary attempt. */\n readonly referenceSequenceNumber: number;\n readonly minimumSequenceNumber: number;\n}\n\n/** Results of submitSummary after generating the summary tree. */\nexport interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, \"stage\"> {\n readonly stage: \"generate\";\n /** Generated summary tree. */\n readonly summaryTree: ISummaryTree;\n /** Stats for generated summary tree. */\n readonly summaryStats: IGeneratedSummaryStats;\n /** Time it took to generate the summary tree and stats. */\n readonly generateDuration: number;\n /** True if the full tree regeneration with no handle reuse optimizations was forced. */\n readonly forcedFullTree: boolean;\n}\n\n/** Results of submitSummary after uploading the tree to storage. */\nexport interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, \"stage\"> {\n readonly stage: \"upload\";\n /** The handle returned by storage pointing to the uploaded summary tree. */\n readonly handle: string;\n /** Time it took to upload the summary tree to storage. */\n readonly uploadDuration: number;\n}\n\n/** Results of submitSummary after submitting the summarize op. */\nexport interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, \"stage\" | \"error\"> {\n readonly stage: \"submit\";\n /** The client sequence number of the summarize op submitted for the summary. */\n readonly clientSequenceNumber: number;\n /** Time it took to submit the summarize op to the broadcasting service. */\n readonly submitOpDuration: number;\n}\n\n/**\n * Strict type representing result of a submitSummary attempt.\n * The result consists of 4 possible stages, each with its own data.\n * The data is cumulative, so each stage will contain the data from the previous stages.\n * If the final \"submitted\" stage is not reached, the result may contain the error object.\n *\n * Stages:\n *\n * 1. \"base\" - stopped before the summary tree was even generated, and the result only contains the base data\n *\n * 2. \"generate\" - the summary tree was generated, and the result will contain that tree + stats\n *\n * 3. \"upload\" - the summary was uploaded to storage, and the result contains the server-provided handle\n *\n * 4. \"submit\" - the summarize op was submitted, and the result contains the op client sequence number.\n */\nexport type SubmitSummaryResult =\n | IBaseSummarizeResult\n | IGenerateSummaryTreeResult\n | IUploadSummaryResult\n | ISubmitSummaryOpResult;\n\nexport interface IBroadcastSummaryResult {\n readonly summarizeOp: ISummaryOpMessage;\n readonly broadcastDuration: number;\n}\n\nexport interface IAckSummaryResult {\n readonly summaryAckOp: ISummaryAckMessage;\n readonly ackNackDuration: number;\n}\n\nexport interface INackSummaryResult {\n readonly summaryNackOp: ISummaryNackMessage;\n readonly ackNackDuration: number;\n}\n\nexport type SummarizeResultPart<TSuccess, TFailure = undefined> = {\n success: true;\n data: TSuccess;\n} | {\n success: false;\n data: TFailure | undefined;\n message: string;\n error: any;\n retryAfterSeconds?: number;\n};\n\nexport interface ISummarizeResults {\n /** Resolves when we generate, upload, and submit the summary. */\n readonly summarySubmitted: Promise<SummarizeResultPart<SubmitSummaryResult>>;\n /** Resolves when we observe our summarize op broadcast. */\n readonly summaryOpBroadcasted: Promise<SummarizeResultPart<IBroadcastSummaryResult>>;\n /** Resolves when we receive a summaryAck or summaryNack. */\n readonly receivedSummaryAckOrNack: Promise<SummarizeResultPart<IAckSummaryResult, INackSummaryResult>>;\n}\n\nexport type EnqueueSummarizeResult = (ISummarizeResults & {\n /**\n * Indicates that another summarize attempt is not already enqueued,\n * and this attempt has been enqueued.\n */\n readonly alreadyEnqueued?: undefined;\n}) | (ISummarizeResults & {\n /** Indicates that another summarize attempt was already enqueued. */\n readonly alreadyEnqueued: true;\n /**\n * Indicates that the other enqueued summarize attempt was abandoned,\n * and this attempt has been enqueued enqueued.\n */\n readonly overridden: true;\n}) | {\n /** Indicates that another summarize attempt was already enqueued. */\n readonly alreadyEnqueued: true;\n /**\n * Indicates that the other enqueued summarize attempt remains enqueued,\n * and this attempt has not been enqueued.\n */\n readonly overridden?: undefined;\n};\n\nexport type SummarizerStopReason =\n /** Summarizer client failed to summarize in all 3 consecutive attempts. */\n | \"failToSummarize\"\n /** Parent client reported that it is no longer connected. */\n | \"parentNotConnected\"\n /**\n * Parent client reported that it is no longer elected the summarizer.\n * This is the normal flow; a disconnect will always trigger the parent\n * client to no longer be elected as responsible for summaries. Then it\n * tries to stop its spawned summarizer client.\n */\n | \"notElectedParent\"\n /**\n * We are not already running the summarizer and we are not the current elected client id.\n */\n | \"notElectedClient\"\n /** Summarizer client was disconnected */\n | \"summarizerClientDisconnected\"\n /* running summarizer threw an exception */\n | \"summarizerException\";\n\nexport interface ISummarizerEvents extends IEvent {\n /**\n * An event indicating that the Summarizer is having problems summarizing\n */\n (event: \"summarizingError\", listener: (error: ISummarizingWarning) => void);\n}\n\nexport interface ISummarizer extends\n IEventProvider<ISummarizerEvents>, IFluidLoadable, Partial<IProvideSummarizer> {\n /*\n * Asks summarizer to move to exit.\n * Summarizer will finish current processes, which may take a while.\n * For example, summarizer may complete last summary before exiting.\n */\n stop(reason: SummarizerStopReason): void;\n\n /* Closes summarizer. Any pending processes (summary in flight) are abandoned. */\n close(): void;\n\n run(onBehalfOf: string, disableHeuristics?: boolean): Promise<SummarizerStopReason>;\n\n /**\n * Attempts to generate a summary on demand. If already running, takes no action.\n * @param options - options controlling the summarize attempt\n * @returns an alreadyRunning promise if a summarize attempt is already in progress,\n * which will resolve when the current attempt completes. At that point caller can\n * decide to try again or not. Otherwise, it will return an object containing promises\n * that resolve as the summarize attempt progresses. They will resolve with success\n * false if a failure is encountered.\n */\n summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;\n /**\n * Enqueue an attempt to summarize after the specified sequence number.\n * If afterSequenceNumber is provided, the summarize attempt is \"enqueued\"\n * to run once an eligible op comes in with sequenceNumber \\>= afterSequenceNumber.\n * @param options - options controlling the summarize attempt\n * @returns an object containing an alreadyEnqueued flag to indicate if another\n * summarize attempt has already been enqueued. It also may contain an overridden flag\n * when alreadyEnqueued is true, that indicates whether this attempt forced the\n * previous attempt to abort. If this attempt becomes enqueued, it returns an object\n * containing promises that resolve as the summarize attempt progresses. They will\n * resolve with success false if a failure is encountered.\n */\n enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;\n}\n\n/** Data about an attempt to summarize used for heuristics. */\nexport interface ISummarizeAttempt {\n /** Reference sequence number when summary was generated or attempted */\n readonly refSequenceNumber: number;\n\n /** Time of summary attempt after it was sent or attempted */\n readonly summaryTime: number;\n\n /** Sequence number of summary op */\n summarySequenceNumber?: number;\n}\n\n/** Data relevant for summary heuristics. */\nexport interface ISummarizeHeuristicData {\n /** Latest received op sequence number */\n lastOpSequenceNumber: number;\n\n /** Most recent summary attempt from this client */\n readonly lastAttempt: ISummarizeAttempt;\n\n /** Most recent summary that received an ack */\n readonly lastSuccessfulSummary: Readonly<ISummarizeAttempt>;\n\n /** Number of runtime ops since last summary */\n numRuntimeOps: number;\n\n /** Number of non-runtime ops since last summary */\n numNonRuntimeOps: number;\n\n /** Cumulative size in bytes of all the ops since the last summary */\n totalOpsSize: number;\n\n /** Wether or not this instance contains adjusted metrics due to missing op data */\n hasMissingOpData: boolean;\n\n /**\n * Updates lastAttempt and lastSuccessfulAttempt based on the last summary.\n * @param lastSummary - last ack summary\n */\n updateWithLastSummaryAckInfo(lastSummary: ISummarizeAttempt): void;\n\n /**\n * Records a summary attempt. If the attempt was successfully sent,\n * provide the reference sequence number, otherwise it will be set\n * to the last seen op sequence number.\n * @param referenceSequenceNumber - reference sequence number of sent summary\n */\n recordAttempt(referenceSequenceNumber?: number): void;\n\n /** Mark that the last sent summary attempt has received an ack */\n markLastAttemptAsSuccessful(): void;\n}\n\n/** Responsible for running heuristics determining when to summarize. */\nexport interface ISummarizeHeuristicRunner {\n /** Start specific heuristic trackers (ex: idle timer) */\n start(): void;\n\n /** Runs the heuristics to determine if it should try to summarize */\n run(): void;\n\n /** Runs a different heuristic to check if it should summarize before closing */\n shouldRunLastSummary(): boolean;\n\n /** Disposes of resources */\n dispose(): void;\n}\n\ntype ISummarizeTelemetryRequiredProperties =\n /** Reason code for attempting to summarize */\n \"reason\";\n\ntype ISummarizeTelemetryOptionalProperties =\n /** Number of attempts within the last time window, used for calculating the throttle delay. */\n \"summaryAttempts\" |\n /** Number of attempts within the current phase (currently capped at 2 ) */\n \"summaryAttemptsPerPhase\" |\n /** One-based count of phases we've attempted (used to index into an array of ISummarizeOptions */\n \"summaryAttemptPhase\" |\n keyof ISummarizeOptions;\n\nexport type ISummarizeTelemetryProperties =\n Pick<ITelemetryProperties, ISummarizeTelemetryRequiredProperties> &\n Partial<Pick<ITelemetryProperties, ISummarizeTelemetryOptionalProperties>>;\n\n/** Strategy used to heuristically determine when we should run a summary */\nexport interface ISummaryHeuristicStrategy {\n /** Summarize reason for this summarize heuristic strategy (ex: \"maxTime\") */\n summarizeReason: Readonly<SummarizeReason>;\n\n /**\n * Determines if this strategy's summarize criteria been met\n * @param configuration - summary configuration we are to check against\n * @param heuristicData - heuristic data used to confirm conditions are met\n */\n shouldRunSummary(configuration: ISummaryConfigurationHeuristics, heuristicData: ISummarizeHeuristicData): boolean;\n}\n\ntype SummaryGeneratorRequiredTelemetryProperties =\n /** True to generate the full tree with no handle reuse optimizations */\n \"fullTree\" |\n /** Time since we last attempted to generate a summary */\n \"timeSinceLastAttempt\" |\n /** Time since we last successfully generated a summary */\n \"timeSinceLastSummary\";\n\ntype SummaryGeneratorOptionalTelemetryProperties =\n /** Reference sequence number as of the generate summary attempt. */\n \"referenceSequenceNumber\" |\n /** minimum sequence number (at the reference sequence number) */\n \"minimumSequenceNumber\" |\n /** Delta between the current reference sequence number and the reference sequence number of the last attempt */\n \"opsSinceLastAttempt\" |\n /** Delta between the current reference sequence number and the reference sequence number of the last summary */\n \"opsSinceLastSummary\" |\n /**\n * Delta in sum of op sizes between the current reference sequence number and the reference\n * sequence number of the last summary\n */\n \"opsSizesSinceLastSummary\" |\n /** Delta between the number of non-runtime ops since the last summary */\n \"nonRuntimeOpsSinceLastSummary\" |\n /** Wether or not this instance contains adjusted metrics due to missing op data */\n \"hasMissingOpData\" |\n /** Time it took to generate the summary tree and stats. */\n \"generateDuration\" |\n /** The handle returned by storage pointing to the uploaded summary tree. */\n \"handle\" |\n /** Time it took to upload the summary tree to storage. */\n \"uploadDuration\" |\n /** The client sequence number of the summarize op submitted for the summary. */\n \"clientSequenceNumber\" |\n /** Time it took for this summary to be acked after it was generated */\n \"ackWaitDuration\" |\n /** Reference sequence number of the ack/nack message */\n \"ackNackSequenceNumber\" |\n /** Actual sequence number of the summary op proposal. */\n \"summarySequenceNumber\" |\n /** Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying. */\n \"nackRetryAfter\";\n\nexport type SummaryGeneratorTelemetry =\n Pick<ITelemetryProperties, SummaryGeneratorRequiredTelemetryProperties> &\n Partial<Pick<ITelemetryProperties, SummaryGeneratorOptionalTelemetryProperties>>;\n\nexport interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {\n /** Number of times the summarizer run. */\n summarizeCount: () => number;\n /** Number of successful attempts to summarize. */\n summarizerSuccessfulAttempts: () => number;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"summarizerTypes.js","sourceRoot":"","sources":["../src/summarizerTypes.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAuBH;;GAEG;AACU,QAAA,WAAW,GAA6B,aAAa,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n IEvent,\n IEventProvider,\n ITelemetryLogger,\n ITelemetryProperties,\n} from \"@fluidframework/common-definitions\";\nimport { ITelemetryLoggerPropertyBag } from \"@fluidframework/telemetry-utils\";\nimport {\n IFluidLoadable,\n} from \"@fluidframework/core-interfaces\";\nimport { ContainerWarning, IDeltaManager } from \"@fluidframework/container-definitions\";\nimport {\n ISequencedDocumentMessage,\n ISummaryTree,\n IDocumentMessage,\n} from \"@fluidframework/protocol-definitions\";\nimport { ISummaryStats } from \"@fluidframework/runtime-definitions\";\nimport { ISummaryAckMessage, ISummaryNackMessage, ISummaryOpMessage } from \"./summaryCollection\";\nimport { SummarizeReason } from \"./summaryGenerator\";\nimport { ISummaryConfigurationHeuristics } from \".\";\n\n/**\n * @deprecated This will be removed in a later release.\n */\nexport const ISummarizer: keyof IProvideSummarizer = \"ISummarizer\";\n\n/**\n * @deprecated This will be removed in a later release.\n */\nexport interface IProvideSummarizer {\n /**\n * @deprecated This will be removed in a later release.\n */\n readonly ISummarizer: ISummarizer;\n}\n\n/**\n * Similar to AbortSignal, but using promise instead of events\n * @param T - cancellation reason type\n */\nexport interface ICancellationToken<T> {\n /** Tells if this cancellable token is cancelled */\n readonly cancelled: boolean;\n /**\n * Promise that gets fulfilled when this cancellable token is cancelled\n * @returns reason of cancellation\n */\n readonly waitCancelled: Promise<T>;\n}\n\n/* Similar to AbortSignal, but using promise instead of events */\nexport type ISummaryCancellationToken = ICancellationToken<SummarizerStopReason>;\n\nexport interface ISummarizerInternalsProvider {\n /** Encapsulates the work to walk the internals of the running container to generate a summary */\n submitSummary(options: ISubmitSummaryOptions): Promise<SubmitSummaryResult>;\n\n /** Callback whenever a new SummaryAck is received, to update internal tracking state */\n refreshLatestSummaryAck(options: IRefreshSummaryAckOptions): Promise<void>;\n}\n\n/**\n * @deprecated Options that control the behavior of a running summarizer.\n * */\nexport interface ISummarizerOptions {\n /**\n * Set to true to disable the default heuristics from running; false by default.\n * This affects only the heuristics around when a summarizer should\n * submit summaries. So when it is disabled, summarizer clients should\n * not be expected to summarize unless an on-demand summary is requested.\n */\n disableHeuristics: boolean;\n}\n\nexport interface ISummarizingWarning extends ContainerWarning {\n readonly errorType: \"summarizingError\";\n readonly logged: boolean;\n}\n\nexport interface IConnectableRuntime {\n readonly disposed: boolean;\n readonly connected: boolean;\n readonly clientId: string | undefined;\n readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n once(event: \"connected\" | \"disconnected\" | \"dispose\", listener: () => void): this;\n}\n\nexport interface ISummarizerRuntime extends IConnectableRuntime {\n readonly logger: ITelemetryLogger;\n /** clientId of parent (non-summarizing) container that owns summarizer container */\n readonly summarizerClientId: string | undefined;\n disposeFn?(): void;\n closeFn(): void;\n}\n\n/** Options affecting summarize behavior. */\nexport interface ISummarizeOptions {\n /** True to generate the full tree with no handle reuse optimizations; defaults to false */\n readonly fullTree?: boolean;\n /** True to ask the server what the latest summary is first; defaults to false */\n readonly refreshLatestAck?: boolean;\n}\n\n/**\n * Data required to update internal tracking state after receiving a Summary Ack.\n */\n export interface IRefreshSummaryAckOptions {\n /** Handle from the ack's summary op. */\n readonly proposalHandle: string | undefined;\n /** Handle from the summary ack just received */\n readonly ackHandle: string;\n /** Reference sequence number from the ack's summary op */\n readonly summaryRefSeq: number;\n /** Telemetry logger to which telemetry events will be forwarded. */\n readonly summaryLogger: ITelemetryLogger;\n}\n\nexport interface ISubmitSummaryOptions extends ISummarizeOptions {\n /** Logger to use for correlated summary events */\n readonly summaryLogger: ITelemetryLogger;\n /** Tells when summary process should be cancelled */\n readonly cancellationToken: ISummaryCancellationToken;\n}\n\nexport interface IOnDemandSummarizeOptions extends ISummarizeOptions {\n /** Reason for generating summary. */\n readonly reason: string;\n}\n\n/** Options to use when enqueueing a summarize attempt. */\nexport interface IEnqueueSummarizeOptions extends IOnDemandSummarizeOptions {\n /** If specified, The summarize attempt will not occur until after this sequence number. */\n readonly afterSequenceNumber?: number;\n\n /**\n * True to override the existing enqueued summarize attempt if there is one.\n * This will guarantee that this attempt gets enqueued. If override is false,\n * than an existing enqueued summarize attempt will block a new one from being\n * enqueued. There can only be one enqueued at a time. Defaults to false.\n */\n readonly override?: boolean;\n}\n\n/**\n * In addition to the normal summary tree + stats, this contains additional stats\n * only relevant at the root of the tree.\n */\nexport interface IGeneratedSummaryStats extends ISummaryStats {\n /** The total number of data stores in the container. */\n readonly dataStoreCount: number;\n /** The number of data stores that were summarized in this summary. */\n readonly summarizedDataStoreCount: number;\n /** The number of data stores whose GC reference state was updated in this summary. */\n readonly gcStateUpdatedDataStoreCount?: number;\n /** The size of the gc blobs in this summary. */\n readonly gcTotalBlobsSize?: number;\n /** The number of gc blobs in this summary. */\n readonly gcBlobNodeCount?: number;\n /** The summary number for a container's summary. Incremented on summaries throughout its lifetime. */\n readonly summaryNumber: number;\n}\n\n/** Base results for all submitSummary attempts. */\nexport interface IBaseSummarizeResult {\n readonly stage: \"base\";\n /** Error object related to failed summarize attempt. */\n readonly error: any;\n /** Reference sequence number as of the generate summary attempt. */\n readonly referenceSequenceNumber: number;\n readonly minimumSequenceNumber: number;\n}\n\n/** Results of submitSummary after generating the summary tree. */\nexport interface IGenerateSummaryTreeResult extends Omit<IBaseSummarizeResult, \"stage\"> {\n readonly stage: \"generate\";\n /** Generated summary tree. */\n readonly summaryTree: ISummaryTree;\n /** Stats for generated summary tree. */\n readonly summaryStats: IGeneratedSummaryStats;\n /** Time it took to generate the summary tree and stats. */\n readonly generateDuration: number;\n /** True if the full tree regeneration with no handle reuse optimizations was forced. */\n readonly forcedFullTree: boolean;\n}\n\n/** Results of submitSummary after uploading the tree to storage. */\nexport interface IUploadSummaryResult extends Omit<IGenerateSummaryTreeResult, \"stage\"> {\n readonly stage: \"upload\";\n /** The handle returned by storage pointing to the uploaded summary tree. */\n readonly handle: string;\n /** Time it took to upload the summary tree to storage. */\n readonly uploadDuration: number;\n}\n\n/** Results of submitSummary after submitting the summarize op. */\nexport interface ISubmitSummaryOpResult extends Omit<IUploadSummaryResult, \"stage\" | \"error\"> {\n readonly stage: \"submit\";\n /** The client sequence number of the summarize op submitted for the summary. */\n readonly clientSequenceNumber: number;\n /** Time it took to submit the summarize op to the broadcasting service. */\n readonly submitOpDuration: number;\n}\n\n/**\n * Strict type representing result of a submitSummary attempt.\n * The result consists of 4 possible stages, each with its own data.\n * The data is cumulative, so each stage will contain the data from the previous stages.\n * If the final \"submitted\" stage is not reached, the result may contain the error object.\n *\n * Stages:\n *\n * 1. \"base\" - stopped before the summary tree was even generated, and the result only contains the base data\n *\n * 2. \"generate\" - the summary tree was generated, and the result will contain that tree + stats\n *\n * 3. \"upload\" - the summary was uploaded to storage, and the result contains the server-provided handle\n *\n * 4. \"submit\" - the summarize op was submitted, and the result contains the op client sequence number.\n */\nexport type SubmitSummaryResult =\n | IBaseSummarizeResult\n | IGenerateSummaryTreeResult\n | IUploadSummaryResult\n | ISubmitSummaryOpResult;\n\nexport interface IBroadcastSummaryResult {\n readonly summarizeOp: ISummaryOpMessage;\n readonly broadcastDuration: number;\n}\n\nexport interface IAckSummaryResult {\n readonly summaryAckOp: ISummaryAckMessage;\n readonly ackNackDuration: number;\n}\n\nexport interface INackSummaryResult {\n readonly summaryNackOp: ISummaryNackMessage;\n readonly ackNackDuration: number;\n}\n\nexport type SummarizeResultPart<TSuccess, TFailure = undefined> = {\n success: true;\n data: TSuccess;\n} | {\n success: false;\n data: TFailure | undefined;\n message: string;\n error: any;\n retryAfterSeconds?: number;\n};\n\nexport interface ISummarizeResults {\n /** Resolves when we generate, upload, and submit the summary. */\n readonly summarySubmitted: Promise<SummarizeResultPart<SubmitSummaryResult>>;\n /** Resolves when we observe our summarize op broadcast. */\n readonly summaryOpBroadcasted: Promise<SummarizeResultPart<IBroadcastSummaryResult>>;\n /** Resolves when we receive a summaryAck or summaryNack. */\n readonly receivedSummaryAckOrNack: Promise<SummarizeResultPart<IAckSummaryResult, INackSummaryResult>>;\n}\n\nexport type EnqueueSummarizeResult = (ISummarizeResults & {\n /**\n * Indicates that another summarize attempt is not already enqueued,\n * and this attempt has been enqueued.\n */\n readonly alreadyEnqueued?: undefined;\n}) | (ISummarizeResults & {\n /** Indicates that another summarize attempt was already enqueued. */\n readonly alreadyEnqueued: true;\n /**\n * Indicates that the other enqueued summarize attempt was abandoned,\n * and this attempt has been enqueued enqueued.\n */\n readonly overridden: true;\n}) | {\n /** Indicates that another summarize attempt was already enqueued. */\n readonly alreadyEnqueued: true;\n /**\n * Indicates that the other enqueued summarize attempt remains enqueued,\n * and this attempt has not been enqueued.\n */\n readonly overridden?: undefined;\n};\n\nexport type SummarizerStopReason =\n /** Summarizer client failed to summarize in all 3 consecutive attempts. */\n | \"failToSummarize\"\n /** Parent client reported that it is no longer connected. */\n | \"parentNotConnected\"\n /**\n * Parent client reported that it is no longer elected the summarizer.\n * This is the normal flow; a disconnect will always trigger the parent\n * client to no longer be elected as responsible for summaries. Then it\n * tries to stop its spawned summarizer client.\n */\n | \"notElectedParent\"\n /**\n * We are not already running the summarizer and we are not the current elected client id.\n */\n | \"notElectedClient\"\n /** Summarizer client was disconnected */\n | \"summarizerClientDisconnected\"\n /* running summarizer threw an exception */\n | \"summarizerException\";\n\nexport interface ISummarizerEvents extends IEvent {\n /**\n * An event indicating that the Summarizer is having problems summarizing\n */\n (event: \"summarizingError\", listener: (error: ISummarizingWarning) => void);\n}\n\nexport interface ISummarizer extends\n IEventProvider<ISummarizerEvents>, IFluidLoadable, Partial<IProvideSummarizer> {\n /*\n * Asks summarizer to move to exit.\n * Summarizer will finish current processes, which may take a while.\n * For example, summarizer may complete last summary before exiting.\n */\n stop(reason: SummarizerStopReason): void;\n\n /* Closes summarizer. Any pending processes (summary in flight) are abandoned. */\n close(): void;\n\n run(onBehalfOf: string, disableHeuristics?: boolean): Promise<SummarizerStopReason>;\n\n /**\n * Attempts to generate a summary on demand. If already running, takes no action.\n * @param options - options controlling the summarize attempt\n * @returns an alreadyRunning promise if a summarize attempt is already in progress,\n * which will resolve when the current attempt completes. At that point caller can\n * decide to try again or not. Otherwise, it will return an object containing promises\n * that resolve as the summarize attempt progresses. They will resolve with success\n * false if a failure is encountered.\n */\n summarizeOnDemand(options: IOnDemandSummarizeOptions): ISummarizeResults;\n /**\n * Enqueue an attempt to summarize after the specified sequence number.\n * If afterSequenceNumber is provided, the summarize attempt is \"enqueued\"\n * to run once an eligible op comes in with sequenceNumber \\>= afterSequenceNumber.\n * @param options - options controlling the summarize attempt\n * @returns an object containing an alreadyEnqueued flag to indicate if another\n * summarize attempt has already been enqueued. It also may contain an overridden flag\n * when alreadyEnqueued is true, that indicates whether this attempt forced the\n * previous attempt to abort. If this attempt becomes enqueued, it returns an object\n * containing promises that resolve as the summarize attempt progresses. They will\n * resolve with success false if a failure is encountered.\n */\n enqueueSummarize(options: IEnqueueSummarizeOptions): EnqueueSummarizeResult;\n}\n\n/** Data about an attempt to summarize used for heuristics. */\nexport interface ISummarizeAttempt {\n /** Reference sequence number when summary was generated or attempted */\n readonly refSequenceNumber: number;\n\n /** Time of summary attempt after it was sent or attempted */\n readonly summaryTime: number;\n\n /** Sequence number of summary op */\n summarySequenceNumber?: number;\n}\n\n/** Data relevant for summary heuristics. */\nexport interface ISummarizeHeuristicData {\n /** Latest received op sequence number */\n lastOpSequenceNumber: number;\n\n /** Most recent summary attempt from this client */\n readonly lastAttempt: ISummarizeAttempt;\n\n /** Most recent summary that received an ack */\n readonly lastSuccessfulSummary: Readonly<ISummarizeAttempt>;\n\n /** Number of runtime ops since last summary */\n numRuntimeOps: number;\n\n /** Number of non-runtime ops since last summary */\n numNonRuntimeOps: number;\n\n /** Cumulative size in bytes of all the ops since the last summary */\n totalOpsSize: number;\n\n /** Wether or not this instance contains adjusted metrics due to missing op data */\n hasMissingOpData: boolean;\n\n /**\n * Updates lastAttempt and lastSuccessfulAttempt based on the last summary.\n * @param lastSummary - last ack summary\n */\n updateWithLastSummaryAckInfo(lastSummary: ISummarizeAttempt): void;\n\n /**\n * Records a summary attempt. If the attempt was successfully sent,\n * provide the reference sequence number, otherwise it will be set\n * to the last seen op sequence number.\n * @param referenceSequenceNumber - reference sequence number of sent summary\n */\n recordAttempt(referenceSequenceNumber?: number): void;\n\n /** Mark that the last sent summary attempt has received an ack */\n markLastAttemptAsSuccessful(): void;\n}\n\n/** Responsible for running heuristics determining when to summarize. */\nexport interface ISummarizeHeuristicRunner {\n /** Start specific heuristic trackers (ex: idle timer) */\n start(): void;\n\n /** Runs the heuristics to determine if it should try to summarize */\n run(): void;\n\n /** Runs a different heuristic to check if it should summarize before closing */\n shouldRunLastSummary(): boolean;\n\n /** Disposes of resources */\n dispose(): void;\n}\n\ntype ISummarizeTelemetryRequiredProperties =\n /** Reason code for attempting to summarize */\n \"reason\";\n\ntype ISummarizeTelemetryOptionalProperties =\n /** Number of attempts within the last time window, used for calculating the throttle delay. */\n \"summaryAttempts\" |\n /** Number of attempts within the current phase (currently capped at 2 ) */\n \"summaryAttemptsPerPhase\" |\n /** One-based count of phases we've attempted (used to index into an array of ISummarizeOptions */\n \"summaryAttemptPhase\" |\n keyof ISummarizeOptions;\n\nexport type ISummarizeTelemetryProperties =\n Pick<ITelemetryProperties, ISummarizeTelemetryRequiredProperties> &\n Partial<Pick<ITelemetryProperties, ISummarizeTelemetryOptionalProperties>>;\n\n/** Strategy used to heuristically determine when we should run a summary */\nexport interface ISummaryHeuristicStrategy {\n /** Summarize reason for this summarize heuristic strategy (ex: \"maxTime\") */\n summarizeReason: Readonly<SummarizeReason>;\n\n /**\n * Determines if this strategy's summarize criteria been met\n * @param configuration - summary configuration we are to check against\n * @param heuristicData - heuristic data used to confirm conditions are met\n */\n shouldRunSummary(configuration: ISummaryConfigurationHeuristics, heuristicData: ISummarizeHeuristicData): boolean;\n}\n\ntype SummaryGeneratorRequiredTelemetryProperties =\n /** True to generate the full tree with no handle reuse optimizations */\n \"fullTree\" |\n /** Time since we last attempted to generate a summary */\n \"timeSinceLastAttempt\" |\n /** Time since we last successfully generated a summary */\n \"timeSinceLastSummary\";\n\ntype SummaryGeneratorOptionalTelemetryProperties =\n /** Reference sequence number as of the generate summary attempt. */\n \"referenceSequenceNumber\" |\n /** minimum sequence number (at the reference sequence number) */\n \"minimumSequenceNumber\" |\n /** Delta between the current reference sequence number and the reference sequence number of the last attempt */\n \"opsSinceLastAttempt\" |\n /** Delta between the current reference sequence number and the reference sequence number of the last summary */\n \"opsSinceLastSummary\" |\n /**\n * Delta in sum of op sizes between the current reference sequence number and the reference\n * sequence number of the last summary\n */\n \"opsSizesSinceLastSummary\" |\n /** Delta between the number of non-runtime ops since the last summary */\n \"nonRuntimeOpsSinceLastSummary\" |\n /** Wether or not this instance contains adjusted metrics due to missing op data */\n \"hasMissingOpData\" |\n /** Time it took to generate the summary tree and stats. */\n \"generateDuration\" |\n /** The handle returned by storage pointing to the uploaded summary tree. */\n \"handle\" |\n /** Time it took to upload the summary tree to storage. */\n \"uploadDuration\" |\n /** The client sequence number of the summarize op submitted for the summary. */\n \"clientSequenceNumber\" |\n /** Time it took for this summary to be acked after it was generated */\n \"ackWaitDuration\" |\n /** Reference sequence number of the ack/nack message */\n \"ackNackSequenceNumber\" |\n /** Actual sequence number of the summary op proposal. */\n \"summarySequenceNumber\" |\n /** Optional Retry-After time in seconds. If specified, the client should wait this many seconds before retrying. */\n \"nackRetryAfter\";\n\nexport type SummaryGeneratorTelemetry =\n Pick<ITelemetryProperties, SummaryGeneratorRequiredTelemetryProperties> &\n Partial<Pick<ITelemetryProperties, SummaryGeneratorOptionalTelemetryProperties>>;\n\nexport interface ISummarizeRunnerTelemetry extends ITelemetryLoggerPropertyBag {\n /** Number of times the summarizer run. */\n summarizeCount: () => number;\n /** Number of successful attempts to summarize. */\n summarizerSuccessfulAttempts: () => number;\n}\n"]}
|
|
@@ -13,7 +13,7 @@ import { FlushMode, IFluidDataStoreContextDetached, IFluidDataStoreRegistry, IGa
|
|
|
13
13
|
import { IBlobManagerLoadInfo } from "./blobManager";
|
|
14
14
|
import { IContainerRuntimeMetadata } from "./summaryFormat";
|
|
15
15
|
import { ISerializedElection } from "./orderedClientElection";
|
|
16
|
-
import { SubmitSummaryResult, ISubmitSummaryOptions, ISummarizer, ISummarizerInternalsProvider,
|
|
16
|
+
import { SubmitSummaryResult, ISubmitSummaryOptions, ISummarizer, ISummarizerInternalsProvider, ISummarizerRuntime, IRefreshSummaryAckOptions } from "./summarizerTypes";
|
|
17
17
|
import { GCNodeType, IGarbageCollectionRuntime, IGCStats } from "./garbageCollection";
|
|
18
18
|
export declare enum ContainerMessageType {
|
|
19
19
|
FluidDataStoreOp = "component",
|
|
@@ -32,12 +32,6 @@ export interface ISummaryBaseConfiguration {
|
|
|
32
32
|
* Delay before first attempt to spawn summarizing container.
|
|
33
33
|
*/
|
|
34
34
|
initialSummarizerDelayMs: number;
|
|
35
|
-
/**
|
|
36
|
-
* @deprecated
|
|
37
|
-
* Flag that will enable changing elected summarizer client after maxOpsSinceLastSummary.
|
|
38
|
-
* This defaults to false (disabled) and must be explicitly set to true to enable.
|
|
39
|
-
*/
|
|
40
|
-
summarizerClientElection: boolean;
|
|
41
35
|
/**
|
|
42
36
|
* Defines the maximum allowed time to wait for a pending summary ack.
|
|
43
37
|
* The maximum amount of time client will wait for a summarize is the minimum of
|
|
@@ -168,36 +162,6 @@ export interface ISummaryRuntimeOptions {
|
|
|
168
162
|
* {@link ISummaryBaseConfiguration.initialSummarizerDelayMs} instead.
|
|
169
163
|
*/
|
|
170
164
|
initialSummarizerDelayMs?: number;
|
|
171
|
-
/**
|
|
172
|
-
* Flag that disables summaries if it is set to true.
|
|
173
|
-
*
|
|
174
|
-
* @deprecated Use {@link ISummaryRuntimeOptions.summaryConfigOverrides}'s
|
|
175
|
-
* {@link ISummaryConfigurationDisableSummarizer.state} instead.
|
|
176
|
-
*/
|
|
177
|
-
disableSummaries?: boolean;
|
|
178
|
-
/**
|
|
179
|
-
* @defaultValue 7000 operations (ops)
|
|
180
|
-
*
|
|
181
|
-
* @deprecated Use {@link ISummaryRuntimeOptions.summaryConfigOverrides}'s
|
|
182
|
-
* {@link ISummaryBaseConfiguration.maxOpsSinceLastSummary} instead.
|
|
183
|
-
*/
|
|
184
|
-
maxOpsSinceLastSummary?: number;
|
|
185
|
-
/**
|
|
186
|
-
* Flag that will enable changing elected summarizer client after maxOpsSinceLastSummary.
|
|
187
|
-
*
|
|
188
|
-
* @defaultValue `false` (disabled) and must be explicitly set to true to enable.
|
|
189
|
-
*
|
|
190
|
-
* @deprecated Use {@link ISummaryRuntimeOptions.summaryConfigOverrides}'s
|
|
191
|
-
* {@link ISummaryBaseConfiguration.summarizerClientElection} instead.
|
|
192
|
-
*/
|
|
193
|
-
summarizerClientElection?: boolean;
|
|
194
|
-
/**
|
|
195
|
-
* Options that control the running summarizer behavior.
|
|
196
|
-
*
|
|
197
|
-
* @deprecated Use {@link ISummaryRuntimeOptions.summaryConfigOverrides}'s
|
|
198
|
-
* `{@link ISummaryConfiguration.state} = "DisableHeuristics"` instead.
|
|
199
|
-
* */
|
|
200
|
-
summarizerOptions?: Readonly<Partial<ISummarizerOptions>>;
|
|
201
165
|
}
|
|
202
166
|
/**
|
|
203
167
|
* Options for op compression.
|
|
@@ -266,9 +230,10 @@ export interface IContainerRuntimeOptions {
|
|
|
266
230
|
*/
|
|
267
231
|
readonly chunkSizeInBytes?: number;
|
|
268
232
|
/**
|
|
269
|
-
* If enabled, the runtime will block all attempts to send an op
|
|
270
|
-
*
|
|
271
|
-
*
|
|
233
|
+
* If enabled, the runtime will block all attempts to send an op inside the
|
|
234
|
+
* {@link ContainerRuntime#ensureNoDataModelChanges} callback. The callback is used by
|
|
235
|
+
* {@link @fluidframework/shared-object-base#SharedObjectCore} for event handlers so enabling this
|
|
236
|
+
* will disallow modifying DDSes while handling DDS events.
|
|
272
237
|
*
|
|
273
238
|
* By default, the feature is disabled. If enabled from options, the `Fluid.ContainerRuntime.DisableOpReentryCheck`
|
|
274
239
|
* can be used to disable it at runtime.
|
|
@@ -362,6 +327,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
362
327
|
get IContainerRuntime(): this;
|
|
363
328
|
get IFluidRouter(): this;
|
|
364
329
|
/**
|
|
330
|
+
* @deprecated - use loadRuntime instead.
|
|
365
331
|
* Load the stores from a snapshot and returns the runtime.
|
|
366
332
|
* @param context - Context of the container.
|
|
367
333
|
* @param registryEntries - Mapping to the stores.
|
|
@@ -372,6 +338,27 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
372
338
|
* allows mixin classes to leverage this method to define their own async initializer.
|
|
373
339
|
*/
|
|
374
340
|
static load(context: IContainerContext, registryEntries: NamedFluidDataStoreRegistryEntries, requestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>, runtimeOptions?: IContainerRuntimeOptions, containerScope?: FluidObject, existing?: boolean, containerRuntimeCtor?: typeof ContainerRuntime): Promise<ContainerRuntime>;
|
|
341
|
+
/**
|
|
342
|
+
* Load the stores from a snapshot and returns the runtime.
|
|
343
|
+
* @param params - An object housing the runtime properties:
|
|
344
|
+
* - context - Context of the container.
|
|
345
|
+
* - registryEntries - Mapping to the stores.
|
|
346
|
+
* - existing - When loading from an existing snapshot
|
|
347
|
+
* - requestHandler - Request handlers for the container runtime
|
|
348
|
+
* - runtimeOptions - Additional options to be passed to the runtime
|
|
349
|
+
* - containerScope - runtime services provided with context
|
|
350
|
+
* - containerRuntimeCtor - Constructor to use to create the ContainerRuntime instance.
|
|
351
|
+
* This allows mixin classes to leverage this method to define their own async initializer.
|
|
352
|
+
*/
|
|
353
|
+
static loadRuntime(params: {
|
|
354
|
+
context: IContainerContext;
|
|
355
|
+
registryEntries: NamedFluidDataStoreRegistryEntries;
|
|
356
|
+
existing: boolean;
|
|
357
|
+
requestHandler?: (request: IRequest, runtime: IContainerRuntime) => Promise<IResponse>;
|
|
358
|
+
runtimeOptions?: IContainerRuntimeOptions;
|
|
359
|
+
containerScope?: FluidObject;
|
|
360
|
+
containerRuntimeCtor?: typeof ContainerRuntime;
|
|
361
|
+
}): Promise<ContainerRuntime>;
|
|
375
362
|
get options(): ILoaderOptions;
|
|
376
363
|
get clientId(): string | undefined;
|
|
377
364
|
get clientDetails(): IClientDetails;
|
|
@@ -410,6 +397,23 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
410
397
|
* attachment blobs that were added while disconnected
|
|
411
398
|
*/
|
|
412
399
|
private delayConnectClientId?;
|
|
400
|
+
private ensureNoDataModelChangesCalls;
|
|
401
|
+
/**
|
|
402
|
+
* Tracks the number of detected reentrant ops to report,
|
|
403
|
+
* in order to self-throttle the telemetry events.
|
|
404
|
+
*
|
|
405
|
+
* This should be removed as part of ADO:2322
|
|
406
|
+
*/
|
|
407
|
+
private opReentryCallsToReport;
|
|
408
|
+
/**
|
|
409
|
+
* Invokes the given callback and expects that no ops are submitted
|
|
410
|
+
* until execution finishes. If an op is submitted, an error will be raised.
|
|
411
|
+
*
|
|
412
|
+
* Can be disabled by feature gate `Fluid.ContainerRuntime.DisableOpReentryCheck`
|
|
413
|
+
*
|
|
414
|
+
* @param callback - the callback to be invoked
|
|
415
|
+
*/
|
|
416
|
+
ensureNoDataModelChanges<T>(callback: () => T): T;
|
|
413
417
|
get connected(): boolean;
|
|
414
418
|
/** clientId of parent (non-summarizing) container that owns summarizer container */
|
|
415
419
|
get summarizerClientId(): string | undefined;
|
|
@@ -440,8 +444,6 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
440
444
|
private isSummariesDisabled;
|
|
441
445
|
private readonly heuristicsDisabled;
|
|
442
446
|
private isHeuristicsDisabled;
|
|
443
|
-
private readonly summarizerClientElectionEnabled;
|
|
444
|
-
private isSummarizerClientElectionEnabled;
|
|
445
447
|
private readonly maxOpsSinceLastSummary;
|
|
446
448
|
private getMaxOpsSinceLastSummary;
|
|
447
449
|
private readonly initialSummarizerDelayMs;
|
|
@@ -649,6 +651,7 @@ export declare class ContainerRuntime extends TypedEventEmitter<IContainerRuntim
|
|
|
649
651
|
* be called after dispose due to asynchrony should not call this.
|
|
650
652
|
*/
|
|
651
653
|
private verifyNotClosed;
|
|
654
|
+
private verifyCanSubmitOps;
|
|
652
655
|
/**
|
|
653
656
|
* Finds the right store and asks it to resubmit the message. This typically happens when we
|
|
654
657
|
* reconnect and there are pending messages.
|
|
@@ -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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"}
|