-
server-lambdas: Nexus client connections can now disconnect in batches (#21465) 9427e25689
Added the option to make Nexus client connections disconnect in batches. The new options are within
socketIo
element of the Nexus config:gracefulShutdownEnabled
(true or false)gracefulShutdownDrainTimeMs
(overall time for disconnection)gracefulShutdownDrainIntervalMs
(how long each batch has to disconnect)
Additionally, the
DrainTimeMs
setting should be set to a value greater than the settingshared:runnerServerCloseTimeoutMs
which governs how long Alfred and Nexus have to shutdown.You can find more details in pull request #19938.
-
server-lambdas: Performance: Keep pending checkpoint message for future summaries (#21465) 9427e25689
During a session there may be multiple client/service summary calls, and independently, multiple checkpoints. Checkpoint will clear messages storage in
pendingCheckpointMessages
, which is also used for writing summaries. Because of this cleanup, when we write new summaries, it often needs to request the ops from Alfred again, which is not quite efficient.Now the pending messages are cached for improved performance.
You can find more details in pull request #20029.
-
server-lambdas: Fix: send correct connection scopes for client (#21465) 9427e25689
When a client joins in "write" mode with only "read" scopes in their token, the connection message from server will reflect a "read" client mode.
You can find more details in pull request #20312.
-
server-lambdas: Fix: cover edge cases for scrubbed checkpoint users (#21465) 9427e25689
Overhauled how the Scribe lambda handles invalid, missing, or outdated checkpoint data via fallbacks.
Before:
if (no global checkpoint) use Default checkpoint elsif (global checkpoint was cleared or global checkpoint quorum was scrubbed) use Summary checkpoint else use latest DB checkpoint (local or global)
After:
if (no global and no local checkpoint and no summary checkpoint) use Default checkpoint elsif ( global checkpoint was cleared and summary checkpoint ahead of local db checkpoint or latest DB checkpoint quorum was scrubbed or summary checkpoint ahead of latest DB checkpoint ) use Summary checkpoint else use latest DB checkpoint (local or global)
Also: Updated
CheckpointService
with additional fallback logic for loading a checkpoint from local or global DB depending on whether the quorum information in the checkpoint is valid (i.e. does not contain scrubbed users).You can find more details in pull request #20259.
-
server-lambdas, server-services-core: SessionStartMetric removed from Scribe and Deli microservices (#21465) 9427e25689
This change removes the SessionStartMetric from Scribe and Deli. The metric is a source of bugs and has been superseded by the
restoreFromCheckpoint
andRunService
metrics.You can find more details about the reasons for this change in pull request #21125.
-
Alfred no longer handles websocket traffic (#19227) 8766d1d800
Removed the websocket component of Alfred and stood it as a new microservice, Nexus. When running locally it will run on port 3002. Clients that have discovery enabled and use deltaStreamUrl need no change as they will automatically connect to Nexus. If support for older clients is necessary, an Nginx redirect for Alfred socket requests to be forwarded to Nexus can be used.
-
BREAKING CHANGE: Foreman lambda removed c6e203af0c
The Foreman lambda in @fluidframework/server-lambdas has been removed. It has not been used for several releases. There is no replacement.
-
Updated @fluidframework/protocol-definitions (#19090) ecd9e67b57
The @fluidframework/protocol-definitions dependency has been upgraded to v3.1.0. See the full changelog.
-
Updated @fluidframework/common-utils (#19090) ecd9e67b57
The @fluidframework/common-utils dependency has been upgraded to v3.1.0. See the full changelog.
-
Updated @fluidframework/common-definitions (#19090) ecd9e67b57
The @fluidframework/common-definitions dependency has been upgraded to v1.1.0. See the full changelog.