Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.Sign up
Improve availability by caching system.peers #864
When JVM Cassandra clients connect to YugaByte's CQL interface, they make an immediate, synchronous request to discover other nodes in the cluster by querying the system table for other peers. This information is cached on the client to allow the client to automatically route requests to other peers--both for load balancing and fault tolerance.
In Yugabyte 126.96.36.199-b2 CE, the
While it may be advantageous to perform linearizable reads of the system.peers table in some circumstances, the common case (what clients do automatically at the start of every connection) does not require up-to-date information. Client requests for system.peers are already cached on clients, and even if clients receive only partial lists of peers (including the trivial list of only the node they're talking to), that's still enough to begin doing work.
By caching the system.peers table, and/or returning a trivial row for the current node only when no master is available, YugaByte DB could let clients continue to connect and do work during some fault conditions.