From 1235d3611d7ee7ad0e9d60ab81aa47f7ab7a644a Mon Sep 17 00:00:00 2001 From: Phong Nguyen <61171063+nnhphong@users.noreply.github.com> Date: Wed, 3 Dec 2025 12:47:46 -0500 Subject: [PATCH] Update README with load balancing details Added a note about load balancing algorithms from a referenced paper. --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index ab29caf..94ae351 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,8 @@ Production't graden't load balancer. - [ ] architecture astronauting - [ ] stream / session handling (i think wrapper around tokio TcpStream) - [ ] 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 tcp, for nginx (and haproxy, its similar): @@ -20,7 +21,7 @@ struct ngx_connection_s { 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_recv_chain_pt recv_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 - connect to the server - 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) \ No newline at end of file +- 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)