Exploratory Support for Twisted-Native Load Balancing
* develop a twisted.application API that can be used by other applications
to load balancing
. a service needs to indicate that it is load balancing
. if it is, it needs to read its load balancing configuration object
. it needs to start up one or more proxies
. it needs shutdown its main service and replace it with a listening service
* in order for this to happen, most of the responsiblities of the proxy
manager need to move out into a t.a.service object
. the following need to be managed: proxies, schedulers, connections, and
configurations
* likewise, connection tracking and managerment need to be taken out of the
scheduler code and put into the service management code
. schedulers need to have all host data removed from them
. they need to be passed only one parameter upon initialization: the lb
algorithm type
. the proxy should not access the scheduler directly, it should ask the
proxy manager to do it on its behalf (by calling the appropriate pm
method)
* static load balancring service
. number of proxies are determined by configuration
* dynamic load balancing service
. number of proxies are determined by load
. need to define "load"
* possibly add proxy mixins/subclasses for different protocols (HTTP, DNS,
etc.)
Blueprint information
- Status:
- Started
- Approver:
- None
- Priority:
- Medium
- Drafter:
- None
- Direction:
- Approved
- Assignee:
- None
- Definition:
- New
- Series goal:
- None
- Implementation:
- Good progress
- Milestone target:
- None
- Started by
- Duncan McGreggor
- Completed by