Skip to content

Coalesce intermediate updates in subscriber queue #7308

@arkodg

Description

@arkodg

Description:

Describe the issue.

We are leveraging the Updates field in the Snapshot

for _, update := range snapshot.Updates {
during a Subscribe

This allows us to perform smaller unit of work ( per key instead of map) ops like deleting an IR in the xds subscriber but this means that for a cases where the message is in state of the world form, like ControllerResources , we get multiple updates for the same key (e.g. deployment rollout of 100 pods, causing 100 endpoints to be gradually updated) which causes multiple iterations of translation, each iteration delaying convergence .

We can do better here by merging the updates based on key and operation (mainly to avoid skipping a delete) reducing duplicate operations .

[optional Relevant Links:]

Any extra documentation required to understand the issue.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions