diff options
-rw-r--r-- | README | 20 | ||||
-rw-r--r-- | README.textile | 28 | ||||
-rw-r--r-- | TODO.textile | 13 |
3 files changed, 41 insertions, 20 deletions
@@ -1,20 +0,0 @@ -erlbal is an erlang load balancer. - - -start_bal/0 spawns a balancer. -stop_bal/1 takes a balancer and kills all of its servers and then kills the balancer. -list_servers/1 takes a balancer and returns a list of the servers it balances over. - -start_server/2 takes a balancer, a node and a function and spawns a server on the node to serve the function. -stop_server/2 takes a balancer and a server PID and stops the server and removes it from the balancer. - -make_request/1 takes a balancer and returns the response from the server. -make_request/2 takes a balancer and an argument and returns the response from the server. - - -The balancer round robins requests between erlang processes. -When it receives a request, it forwards it on to the next server in the round robin. -The server then runs the function with the argument passed to it and returns a response to the balancer. -The balancer forwards the response back to the requestor. - -The function arg could be anything, so you can pass multiple args in a tuple or list, etc. diff --git a/README.textile b/README.textile new file mode 100644 index 0000000..42f05f3 --- /dev/null +++ b/README.textile @@ -0,0 +1,28 @@ +h1. erlbal + +erlbal is an erlang load balancer. + +h2. Balancer calls: + +* start_bal/0 spawns a balancer. +* stop_bal/1 takes a balancer and kills all of its servers and then kills the balancer. +* list_servers/1 takes a balancer and returns a list of the servers it balances over. + +h2. Server calls: + +* start_server/2 takes a balancer, a node and a function and spawns a server on the node to serve the function. +* stop_server/2 takes a balancer and a server PID and stops the server and removes it from the balancer. + +h2. Request calls: + +* make_request/1 takes a balancer and returns the response from the server. +* make_request/2 takes a balancer and an argument and returns the response from the server. + +h2. Info + +p. The balancer round robins requests between erlang processes. +When it receives a request, it forwards it on to the next server in the round robin. +The server then runs the function with the argument passed to it and returns a response to the balancer. +The balancer forwards the response back to the requestor. + +p. The function arg could be anything, so you can pass multiple args in a tuple or list, etc. diff --git a/TODO.textile b/TODO.textile new file mode 100644 index 0000000..2d10dfa --- /dev/null +++ b/TODO.textile @@ -0,0 +1,13 @@ +h1. TODO + +h2. Little changes: + +* Remove the Balancer variable from the server +* Add server state +* Remove the argless request call and implement strict listed args +* Make the server return directly to the requester, not to the balancer + +h2. BIG changes: + +* erlbal-p: current implementation of erlbal to schedule across processes +* erlbal-n: new project to actually load balance across nodes |