Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Analyzing the design suggested by CS team with pros,cons and effect of edge cases #1795

Closed
Tracked by #1791
rmsamitha opened this issue May 4, 2023 · 3 comments
Closed
Tracked by #1791

Comments

@rmsamitha
Copy link
Member

rmsamitha commented May 4, 2023

Analyzing the design suggested by CS team with pros,cons and effect of edge cases

@rmsamitha
Copy link
Member Author

Flow of the design suggested, is presented in a diagram:
Redis-cache-Ruwan Design drawio

@rmsamitha
Copy link
Member Author

Concerns

  • Master cannot be a GW node since we don’t recommend hazelcast clustering
  • How the Redis server can act as a master - has to figure-out
  • If the local counter value was increased in some time window, do we need to maintain that increased counter value to next time units too? Is there a trend to have a higher load to a certain node? This maintenance would add unnecessary complexity.

Pros

  • Performance hit will be less. (no synchronous flow is introduced additionally other than the retrieval of the additional batch of tokens)
  • Configured BE throttle limit will be universal. (not a per GW node limit)

Cons

  • Premature throttling (throttle at lower limit) i.e.
  • Above approach has assumed that the load is evenly distributed.
  • Load Balancing is not guaranteed to be even. (also in Round-Robin)
  • GW1 can consume all its quota and then total of the buffer too.
  • Other GWs might not have consumed much of their quota.
  • But GW1 will not accept requests further and gets throttled.
  • Still the requests are accepted by other GWs in cluster.
  • This will add a new problem which is at the cost of solving our original problem. (original: throttle after delay or slip, new: premature throttling)
  • This can be a critical issue again since expected request load will not be handled by the GWs.

@rmsamitha
Copy link
Member Author

Completed the task and documented all details : 28/04/2022

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

No branches or pull requests

1 participant