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)