Database / ScyllaDB Interview questions
How does token-aware routing improve latency in ScyllaDB?
Without token awareness, a driver sends a request to an arbitrary node, which then has to act as a coordinator and forward the request to whichever node(s) actually own the relevant data, adding an extra network hop before the "real" work even starts.
// Token-aware driver (conceptual) token = murmur3(partitionKey) replicas = tokenRing.getReplicasFor(token) connection = pickClosest(replicas) // often combined with a local DC preference sendRequest(connection, query)
A token-aware driver computes the same token-ring hash the cluster itself uses, based on the partition key in the query, and sends the request directly to one of the nodes that actually owns that data - skipping the coordinator forwarding hop entirely for the common case. Combined with a shard-aware driver (which goes one step further and picks the exact CPU shard), this removes essentially all unnecessary internal routing, cutting both latency and the coordinator load that would otherwise accumulate on whichever node happened to receive the request first.
More Related questions...