Update README with load balancing details
Added a note about load balancing algorithms from a referenced paper.
This commit is contained in:
@@ -7,7 +7,8 @@ Production't graden't load balancer.
|
|||||||
- [ ] architecture astronauting
|
- [ ] architecture astronauting
|
||||||
- [ ] stream / session handling (i think wrapper around tokio TcpStream)
|
- [ ] stream / session handling (i think wrapper around tokio TcpStream)
|
||||||
- [ ] basic backend pooling
|
- [ ] basic backend pooling
|
||||||
- [ ] layer 4 load balancing
|
- [ ] layer 4 load balancing
|
||||||
|
- [ ] load balancing algorithm from the paper (https://www.wcse.org/WCSE_2018/W110.pdf)
|
||||||
|
|
||||||
## notes
|
## notes
|
||||||
tcp, for nginx (and haproxy, its similar):
|
tcp, for nginx (and haproxy, its similar):
|
||||||
@@ -20,7 +21,7 @@ struct ngx_connection_s {
|
|||||||
|
|
||||||
ngx_socket_t fd;
|
ngx_socket_t fd;
|
||||||
|
|
||||||
ngx_recv_pt recv; // fn pointer to whatever recv fn used (different for idfferent platforms / protocol
|
ngx_recv_pt recv; // fn pointer to whatever recv fn used (different for dfferent platforms / protocol
|
||||||
ngx_send_pt send; // ditto
|
ngx_send_pt send; // ditto
|
||||||
ngx_recv_chain_pt recv_chain;
|
ngx_recv_chain_pt recv_chain;
|
||||||
ngx_send_chain_pt send_chain;
|
ngx_send_chain_pt send_chain;
|
||||||
@@ -102,4 +103,4 @@ process to load balance:
|
|||||||
- ask the load balancing algorithm which server in the pool to route to
|
- ask the load balancing algorithm which server in the pool to route to
|
||||||
- connect to the server
|
- connect to the server
|
||||||
- proxy the data (copy_bidirectional? maybe we want some metrics or logging, so might do manually)
|
- proxy the data (copy_bidirectional? maybe we want some metrics or logging, so might do manually)
|
||||||
- cleanup when smoeone leavesr or something goes wrong (with TCP, OS / tokio will tell us, with UDP probably just timeout based, and a periodic sweep of all sessions)
|
- cleanup when smoeone leavesr or something goes wrong (with TCP, OS / tokio will tell us, with UDP probably just timeout based, and a periodic sweep of all sessions)
|
||||||
|
|||||||
Reference in New Issue
Block a user