Update README with load balancing details

Added a note about load balancing algorithms from a referenced paper.
This commit is contained in:
Phong Nguyen
2025-12-03 12:47:46 -05:00
committed by GitHub
parent 3e61c621e7
commit 1235d3611d

View File

@@ -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)