A resume-based WSGI Load Balancer

E
Type:
Talk
Audience level:
Intermediate
Category:
Web Frameworks
March 9th 5:20 p.m. – 6 p.m.

Description

When a web application is large, it's a good idea to send different kinds of requests to different servers to reduce the content corpus managed by each server. A decentralized load balancing-based approach is presented in which each application server keeps track of what it's good at and presents its resume to load balancers, which use application server resumes to distribute load.

Abstract

We host newspaper web sites and content management systems for several hundred newspapers. The working set for all newspapers is too large to be effectively managed by individual application servers. Manual distribution of load is inflexible and ineffective. We created a resume-based dynamic and decentralized load balancer that distributed work to application servers in a way that greatly reduces the working set on each server.

Outline:

  • Problem
  • Previous work
  • Architecture
    • Request Classification
    • Workers maintain their own resumes
    • LB serves work to workers (and responses to browsers)
    • Multiple load balancers
    • WSGI integration
  • Results
    • Compare work distribution before and after
    • Compare database cache utilization before and after
    • Work distribution as workers are added and removed
    • Limitations