Skip to content

fix: Do not call of caching service during routing to check sticky session if not needed#4549

Open
pavel-jares-bcm wants to merge 4 commits intov3.x.xfrom
reboot/fix-sticky-without-cache
Open

fix: Do not call of caching service during routing to check sticky session if not needed#4549
pavel-jares-bcm wants to merge 4 commits intov3.x.xfrom
reboot/fix-sticky-without-cache

Conversation

@pavel-jares-bcm
Copy link
Copy Markdown
Contributor

@pavel-jares-bcm pavel-jares-bcm commented Apr 9, 2026

Description

There is the class DeterministicLoadBalancer. This class is reposible for deterministic routing of request. It uses header X-InstanceId or last used used server to implement sticky session.

The issue is in the order of taken actions to process the request. If the request contains a token (the user could be detected) it always call caching service, even the value is not used there.

The impact:

more I/O and performance degradation for authenticated request
it could failed when Caching service is down (even the call is not needed)

Linked to #4510
Part of the # (epic)

Type of change

Please delete options that are not relevant.

  • fix: Bug fix (non-breaking change which fixes an issue)
  • feat: New feature (non-breaking change which adds functionality)
  • docs: Change in a documentation
  • refactor: Refactor the code
  • chore: Chore, repository cleanup, updates the dependencies.
  • BREAKING CHANGE or !: Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • My code follows the style guidelines of this project
  • PR title conforms to commit message guideline ## Commit Message Structure Guideline
  • I have commented my code, particularly in hard-to-understand areas. In JS I did provide JSDoc
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • The java tests in the area I was working on leverage @nested annotations
  • Any dependent changes have been merged and published in downstream modules

For more details about how should the code look like read the Contributing guideline

Signed-off-by: Pavel Jareš <Pavel.Jares@broadcom.com>

boolean stickySession = lbTypeIsAuthentication(serviceInstances.iterator().next());
if (!stickySession) {
// service does not support sticky session by userId, just return
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we log some message in debug also for this condition?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added one for each branch

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thanks

@taban03
Copy link
Copy Markdown
Contributor

taban03 commented Apr 14, 2026

Please provide a description in the PR

@sonarqubecloud
Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

Development

Successfully merging this pull request may close these issues.

2 participants