Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Commits on Nov 20, 2015
  1. Merge pull request #52 from sata/call-free-members

    Perform task across free members
Commits on Nov 19, 2015
  1. @sata

    Perform task across free members

    sata committed
    * call_free_members/{2,3} performs passed in function across free members in pool
    * adds tests for api call
Commits on Oct 26, 2015
  1. Merge pull request #50 from hamidreza-s/master

    Guard against passing wrong-typed argument instead of pid when calling return_group_member
  2. @hamidreza-s
Commits on Aug 27, 2015
  1. Merge pull request #47 from sdebnath/erlang_now

    Switch from erlang:now/0 to os:timestamp/0
Commits on Jul 4, 2015
  1. @sdebnath

    Switch from erlang:now/0 to os:timestamp/0

    sdebnath committed
    R18 deprecates erlang:now/0. Unfortunately, the new erlang:system_time or
    the erlang:timestamp that is recommended is not available prior to R18. To
    maintain a compatible codebase across both releases, os:timestamp/0 is the
    way to go where monotonically increasing timestamp is not required.
Commits on Apr 10, 2015
  1. Merge pull request #45 from layerhq/optional_stop_mfa_callback

    Add option `stop_mfa` for alternative member termination
  2. Add option `stop_mfa`

    Juan Puig committed
Commits on Feb 3, 2015
  1. Merge pull request #43 from dcheckoway/feature-auto-grow

    Add optional `auto_grow_threshold` for anticipatory growth
    We have a use case where our pool needs to start relatively small (init_conn=1000) but grow quite large over time (max_conn=65535). And...we want to avoid at all costs getting error_no_members when trying to take a member from the pool. The caller should not ever have to wait for a new member to be started.
    To that end, I've added a new auto_grow_threshold feature. It's fully backward compatible, in that it's undefined by default. There is no change whatsoever for existing pooler users.
    For those who choose to set auto_grow_threshold to a non-negative integer, however, they will benefit from members being started prior to all free members having been exhausted.
    The idea is that when free_count drops to auto_grow_threshold, a new batch of members will be started in the background. By the time free_count would have dropped to zero, there's already a new batch waiting & ready. In fact, free_count never drops to zero in the first place (as long as member start can keep up with the take demand).
    This has already proven to work extremely well for us -- we avoid the "cliff" behavior and see the pool growing smartly in advance of the demand.
Commits on Jan 25, 2015
  1. @dcheckoway
Commits on Jan 11, 2015
  1. Merge pull request #42 from dcheckoway/master

    Don't bother queueing when Timeout=0
Commits on Jan 7, 2015
  1. @dcheckoway
Commits on Nov 19, 2014
  1. Merge pull request #39 from nevar/fix_travis_image

    Travis image fix
Commits on Nov 5, 2014
  1. @nevar

    Travis image fix

    nevar committed
Commits on Oct 8, 2014
  1. @oferrigni

    Merge pull request #37 from seth/of/use_erlang_timers

    oferrigni committed
    Switch to erlang:send_after and erlang:cancel_timer
  2. @oferrigni
  3. @oferrigni

    Merge pull request #36 from seth/of/fix_bookkeeping

    oferrigni committed
    Decrement free_count when replying to queued requestor
  4. @oferrigni
  5. @oferrigni

    Merge pull request #35 from seth/of/interogate_queue_on_return

    oferrigni committed
    Return member should satisfy pending queued requestors
  6. @oferrigni
Commits on Oct 6, 2014
  1. @oferrigni

    Merge pull request #34 from seth/of/queueing

    oferrigni committed
    Queueing requestors with an external api
  2. @oferrigni

    Implement take_member queueing

    oferrigni committed
    Take_member now supports request queueing! This feature allows for consumers to
    specify a timeout during which a pool member may be returned to a caller. A
    timeout of zero means that a member or error will be immediately returned.
    Otherwise, take_member will defer replying to the consumer, setting a timer
    to the duration of the timeout. When the timer pops, error_no_members will be
    sent to the consumer. If during the timeout a new member is returned to the
    pool, the requestor queue will be popped and that requestor will receive the
    the member.
Commits on Oct 1, 2014
  1. @oferrigni

    Merge pull request #33 from seth/of/fix_pooler_starter_stop_return

    oferrigni committed
    Correct return of handle_cast stop
  2. @oferrigni
Commits on Sep 30, 2014
  1. @oferrigni

    Merge pull request #31 from oferrigni/of/kill_stale_started_members

    oferrigni committed
    Of/kill stale started members
  2. @oferrigni

    pooler_starter should cleanup slow process starts

    oferrigni committed
    Pooler/_starter previously had a bug where if a started process took longer
    than the start_member_timeout but did not crash, the process would get
    orphaned. This fix includes modifications to the starter that change its
    lifecycle. The starter will now wait to be stopped by the pooler gen_server via
    either the stop_member_async or stop apis. The stop_member_async api is called
    on the error path and the stop api is called on the success path.
    Additionally, pooler gen_server bookkeeping is fixed to correctly update the
    pool state with regard to starting members. Previously, pool record was not
    updated with the starting members list returned from the non_stale filter.
Commits on Sep 23, 2014
  1. @metadave

    update demo quick start

    metadave committed
Commits on Sep 21, 2014
  1. Fix bug when a member is returned more than once

    In the event that the same member pid was returned multiple times -- in
    essence "double freed" -- the pool accounting became corrupted.
    When handling returns, we now ignore members that are already in the
    free state and log a warning message since this is very likely to be an
    indication of a problem in the calling code. Members should only be
    free'd once.
Commits on Jul 31, 2014
Commits on Jun 30, 2014
  1. @lastres

    Add the possibility of calling the Exometer API for the metrics inste…

    lastres committed
    …ad of the Folsom one
    * It is still possible to define the callback module. It will expect either the Folsom or the Exometer callbacks depending on the configuration parameter.
Commits on May 6, 2014
  1. Merge pull request #22 from jwilberding/master

    Updates for better building
  2. @jwilberding
  3. @jwilberding

    Add older versions of erlang back in, we have to remove 17.0rc1 becau…

    jwilberding committed
    …se it handles depcrecations different than 17.0, which makes life difficult
  4. @jwilberding
Something went wrong with that request. Please try again.