Synchronize state between multiple replicas of Gateway Controller #503
VirajSalaka
started this conversation in
General
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Problem
Gateway Controller needs to run multiple replicas for the sake of high availability and all those replicas should have the same XDS cache state populated.
Solution
Abstract
Introduce new tables for maintaining states and events for each category. The data won't be linked to any available data via foreign keys. When api deploy request is received, gateway controller updates the tables and process ends. There is a separate go routine running in each gateway controller which polls on the states table. And if what received from state table for APIs is different compared to what it already knows, then it would do a lookup on Events table based on timestamp.
Key Characteristics
DDL
Synchronization Flow
Write Path (Instance A modifies an API)
Read Path (Instance A/B detects and applies change)
Cleanup Path
Alternative Approaches
Beta Was this translation helpful? Give feedback.
All reactions