Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Simplify tracked state at each summarizerNode (microsoft#22095)
This PR removes some redundant tracked states that are maintained by each summarizerNode. Following are the list of changes: - Disable incremental summaries and perform complete summarization instead (the first time), for the cases where base snapshot was created in an older document where isolated channels were disabled (i.e. `.channels` concept was not there in a node path). [`containerRuntime.ts`] - `SummaryNode` is removed. SummaryNode was tracking base, additional etc. path related information for each node, which was convoluting the code too much. It has been simplified by always providing the path information to the summarizerNode as a `_summaryHandleId`. Every time a child node it created, it's path is stored as _summaryHandleId and thus removes the need for `SummaryNode`. [`summarizerNode.ts`, `summarizerNodeUtils.ts`]. - `latestSummary:SummaryNode` is replaced with just `_lastSummaryreferenceSequenceNumber`. - `PendingSummaryInfo` has been introduced to solve for the other half of the logic that was fulfilled previously by `SummaryNode` i.e. maintaining the state of pending summaries submitted so far. Instead of saving path and referenceSequenceNumber both, we now just maintain `referenceSequenceNumber`. Saves memory footprint, and simplifies code. [`summarizerNode.ts`, `summarizerNodeUtils.ts`] - The above changes also reflected in`summarizerNodeWithGC.ts`.
- Loading branch information