- 26 Dec 2023
- 2 Minutes to read
- Print
- PDF
Routing Overview
- Updated on 26 Dec 2023
- 2 Minutes to read
- Print
- PDF
Qwilt's routing strategy leverages multiple data sources to establish the ideal client/server pairing within our ultra-distributed edge deployment. The integration of varied sources of information allows for more accurate routing decisions, minimizing latency, maximizing cache hit probability, and optimizing both the quality of experience (QoE) and delivery efficiency.
In this article, we'll provide a brief overview of the key components that influence our routing decisions.
Intimate Knowledge of the ISP Network Topology via BGP
By integrating with the BGP protocol, Qwilt gains access to ISP network topology data, allowing us to continuously map IP subnets to the nearest Qwilt CDN cache.
User-to-Server Latency Measurements
Qwilt measures the latency between end-user subnets and our deployed pops, utilizing the lowest latency as a basis for determining the optimal client-server pairing. Latency measurements to DNS resolvers are also used to inform routing decisions.
User and Server Geolocation
Qwilt utilizes third-party geolocation databases to map user subnets to the nearest Qwilt POP based on inferred geolocation data. This method complements routing decisions when BGP integration is not available.
Server Health Status
Qwilt continuously monitors server health and load. If a server is unavailable or heavily loaded, requests are rerouted to the nearest available server for a better QoE.
Server Load Status
Qwilt considers server load when making routing decisions. For example, if the server nearest to the client is loaded, a request may be routed to a server that can provide better performance despite being farther away.
Optimized Next Tier Selection
The Qwilt CDN topology incorporates several mid-tiers. Each cache group at the edge and mid-tier is linked to the closest mid-tier cache group. This arrangement ensures that if the requested content is unavailable in a specific cache group, the request is automatically directed to the nearest cache group. Qwilt enhances the selection process for the subsequent caching tier by leveraging all of the routing strategies outlined in this article.
Traffic Steering / Fallback Policies
Multiple layers of fallback policies ensure that client requests are always served, even in the event of cache failures or high loads.
Cache Hit Maximization
Qwilt distributes content among the servers in a caching group, and strategically routes client requests to the cache most likely to have the requested content, to minimize cache misses and maximize cache hit probability.
Content Popularity Adaptability
Usually, the entire content library is evenly distributed across the cache group (Cache Hit Maximization). But if each cache has the same percentage of content, and some of the content is significantly more popular, traffic will not be balanced. Qwilt has a mechanism to diagnose and adapt to content popularity on the fly. When content is identified as popular (crossing a predefined threshold), it is then distributed on multiple caches in the group to balance the load.
Qwilt also supports preemptive distribution of content across the entire cache pool for content that is anticipated to be in high demand.
Multiple Routing Techniques
Qwilt supports multiple routing techniques, including DNS, HTTP, manifest rewrite, and a routing API for content providers to optimize edge node selection.
Supporting IPv4/6 Public and Private IP
Qwilt supports both IPv4 and IPv6, as well as public and private IP scenarios, ensuring compatibility with diverse network environments.