Permalink
Commits on Apr 28, 2012
Commits on Nov 25, 2011
  1. Changing mechanism of the load balancer

    Whenever a server would listen to TCP connections but never accept
    them, the lhttpc application would leak a ton of processes until
    the virtual machine is taken down.
    
    This was due to the way setting up connections was being done
    within the load balancer. This would lead to many milliseconds of
    delay for each socket connection attempt, and an eventual queue
    build-up would happen in the load balancer.
    Because requests freely spawn processes, this ended up having
    too many requests that the LB cannot deal with.
    
    This fix changes the structure around so that each client is
    responsible of setting their own socket and connection, enabling
    the load balancer to easily deny connections to newer processes
    when older ones are still stuck. Setting a good request timeout
    can then insure that slow requests won't starve the system.
    committed Nov 25, 2011
Commits on Nov 21, 2011
  1. Adding control flow on connections refused

    When many connections were being refused, the load balancer
    would impose no good control flow mecanism on incoming requests.
    After a while, demand can overtake the process and grow the
    message queue until the VM goes out of memory.
    
    This patch adds a counter of refused connections (happens when
    the server is down); if too many connections are refusd in a row
    (as many as the possible sockets), some of the requests will be
    blocked and will return {error, offline}.
    
    Whenever a successful request is made, the counter is dropped.
    
    The patch also contains a few minute optimizations for record
    assignment, gaining minimal amounts of speed.
    committed Nov 21, 2011
Commits on Nov 17, 2011
  1. Changing the lhttpc load balancer to use ETS

    The current implementation uses a dict and a queue for common
    socket operations when load-balancing. Over heavy load, the process
    gets to be very slow. Plus, it set itself as a high priority process,
    unbalancing the whole VM.
    
    This switches the dict to an ETS table, and the queue to a stack
    (list) in order to reduce operations. Moreover, the process will
    go back to a normal priority to make sure it doesn't mess up with
    the schedulers and timers too much.
    committed Nov 17, 2011
Commits on Nov 15, 2011
  1. Oops

    lpgauth committed Nov 15, 2011
Commits on Jul 22, 2011
  1. Fix bug / tests

    lpgauth committed Jul 22, 2011
Commits on Jul 20, 2011
  1. Move .hrl to include folder

    lpgauth committed Jul 20, 2011
Commits on Jul 19, 2011
  1. Remove debug messages + bug fix

    lpgauth committed Jul 19, 2011
Commits on Apr 20, 2011
  1. Bumping version.w

    tolbrino committed Apr 20, 2011
Commits on Mar 13, 2011
  1. Fixed some formatting errors.

    oscarh committed Mar 13, 2011
  2. For whatever reason in R14B1, it seems 50ms isn't enough for the ssl …

    …tests.
    
    I've raised the timeout to a seemingly random 100ms instead, and at least on
    my computer, the tests pass.
    oscarh committed Mar 13, 2011
Commits on Feb 25, 2011
Commits on Aug 23, 2010
  1. Add some good TODOs :)

    oscarh committed Aug 23, 2010
Commits on Aug 22, 2010
  1. Update outdated TODO file

    oscarh committed Aug 22, 2010
  2. Update changelog

    oscarh committed Aug 22, 2010
  3. Rebar support.

    Relatively untested...
    oscarh committed Aug 22, 2010
Commits on Aug 15, 2010
  1. erlangr r14 & rebar compatibility

    benoitc committed Aug 15, 2010
Commits on Jun 16, 2010
  1. Tiny documentation change.

    oscarh committed Jun 16, 2010
  2. Update documentation.

    oscarh committed Jun 16, 2010
  3. Update the doc/overview page.

    oscarh committed Jun 16, 2010
Commits on May 1, 2010
  1. Added tag 1.2.5 for changeset b8806a09fa3b

    --HG--
    branch : 1.2
    oscarh committed May 1, 2010
  2. Update version

    --HG--
    branch : 1.2
    oscarh committed May 1, 2010