CDN Load Balancer Using Probabilistic Filters for Size Estimation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional content delivery networks (CDNs) face inefficiencies in load balancing due to the lack of consideration for data object sizes, leading to imbalanced cache server loads and increased latency, especially when handling diverse content resources with varying computational requirements.

Innovation Solution

Implementing a CDN that uses probabilistic filters, such as Bloom filters, to estimate data object sizes and distribute load balancing decisions based on these estimates, allowing for more efficient allocation of resources across cache servers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If traditional load balancing methods are used without considering data object sizes, then the system is simpler to implement, but cache server loads become imbalanced and latency increases

Engineering Contradiction:
Improveload balancing implementationVSAvoidcontent delivery latency
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary estimation of data object sizes using probabilistic filters (Bloom filters) before actual content delivery. This allows the load balancer to make informed routing decisions about cache server selection in advance, balancing load based on estimated object sizes without waiting for actual size revelation, thereby reducing delivery latency while maintaining implementation simplicity.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If data object sizes are accurately known before delivery, then load balancing efficiency improves, but system complexity and measurement difficulty increase

Engineering Contradiction:
Improveload balancing efficiencyVSAvoidsize estimation system complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system introduces probabilistic filters (Bloom filters) as an intermediary mechanism to estimate data object sizes without requiring direct measurement of actual sizes. These filters serve as a middle layer that provides approximate size information with acceptable accuracy, enabling efficient load balancing while avoiding the complexity of precise size measurement systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system uses lightweight probabilistic data structures (Bloom filters) that require minimal memory and computational resources compared to storing actual size information for all objects. These filters provide sufficient accuracy for load balancing purposes without the overhead of complex measurement and storage infrastructure.

Inventive Principle:
Principle #27Cheap short-living objects (Disposable)

3Ease of operation

If all content requests are handled with equal resource allocation, then the system is easier to manage, but computational resources are wasted on large objects and latency increases

Engineering Contradiction:
Improveresource managementVSAvoidcomputational resource efficiency
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The system applies differentiated resource allocation based on local characteristics of each data object (its size category determined by probabilistic filters). Instead of uniform resource allocation, the load balancer routes objects to cache servers based on their estimated sizes, matching larger objects to servers with available capacity and smaller objects to any available server, thereby optimizing computational resource efficiency while maintaining manageable complexity.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS11075987B1Load estimating content delivery network
Publication Date: 2021.07.27 AMAZON TECH INC
  • US11075987B1 patent drawing
  • US11075987B1 patent drawing
  • US11075987B1 patent drawing

AI summary

A CDN that employs a load balancer that uses probabilistic filters to estimate sizes of requested data objects and that balances incoming request loads according to the estimated sizes is provided herein. For example, the load balancer stores probabilistic filters. Each probabilistic filter is associated with a size range. When the CDN receives a data object request, the load balancer generates a cache key and tests whether the cache key is a member of any probabilistic filter. If the cache key is a member of a probabilistic filter, then the load balancer estimates a size of the requested data object based on the probabilistic filter of which the cache key is a member. The load balancer then uses the estimated size to estimate the added load on one or more cache servers. Based on the estimated added load, the load balancer selects a cache server to handle the request.