Switch branches/tags
Commits on Apr 12, 2013
  1. Pay for the piper

    Vagabond committed Apr 12, 2013
  2. Minor refactor

    Vagabond committed Apr 12, 2013
Commits on Oct 17, 2012
  1. Merge pull request #232 from basho/core232-sysmon-memory-usage

    Jared Morrow committed Oct 17, 2012
    Address high memory use by riak_core_sysmon_handler
  2. Fix duplication of gc call

    Kelly McLaughlin committed Oct 17, 2012
  3. Changes per review comments

    Kelly McLaughlin committed Oct 17, 2012
Commits on Oct 1, 2012
  1. Address high memory usage by riak_core_sysmon_handler.

    Kelly McLaughlin committed Oct 1, 2012
    Fixes CORE232
    Change riak_core_sysmon_handler to use hibernation to free up
    resources when it is idle since it does not do a good job of freeing
    these resources on its own. Also force garbage collection on the
    riak_core_sysmon_handler process if it receives a large_heap message
    about itself. This is to avoid a feedback loop that can lead to severe
    memory usage by the handler, node slowness, and even cause the node to
    crash after consuming all available memory.
Commits on Sep 27, 2012
  1. Merge branch 'core231-vnode-proxy-error-handling' into 1.2

    Kelly McLaughlin committed Sep 27, 2012
Commits on Sep 26, 2012
  1. Improve exception handling for synchronous calls in riak_core_vnode_p…

    Kelly McLaughlin committed Sep 26, 2012
    Fixes CORE231
    The call functions in riak_core_vnode_proxy only expected a result
    of {ok, Res}. This change calls a new function, call_reply, to
    better handle the case when an exception is thrown and wrap
    the reason in an error tuple.
Commits on Sep 25, 2012
Commits on Sep 21, 2012
  1. Call ring_trans synchronously, not in a spawn

    reiddraper committed Sep 21, 2012
    Calling `add_supported_to_ring` is not threadsafe.
    If a process retrieves the member_meta and then
    it's concurrently updated by another process,
    the original process' changed will be overwritten.
    To exhibit the original bug, I added a
    timer:sleep(crypto:rand_uniform(1, 1000))
    line inside the spawned fun that calls
    riak_core_ring_manager:ring_trans(F, ok)
Commits on Sep 13, 2012
  1. Merge pull request #223 from basho/jdb-timers

    Jared Morrow committed Sep 13, 2012
    Change ticks from timer to more efficient erlang:send_after
  2. Merge pull request #224 from basho/adt-os-timestamp

    Jared Morrow committed Sep 13, 2012
    erlang:now() -> os:timestamp() in all the places it is safe
Commits on Sep 8, 2012
  1. Update webmachine dep to bring in new mochiweb

    Jared Morrow committed with Vagabond Sep 8, 2012
  2. erlang:now() -> os:timestamp() in all the places it is safe

    Vagabond committed Sep 8, 2012
    There are a few places I didn't touch as it was unclear if the values
    needed to be monotonic or not. Specifically core_claimant, core_gossip,
    core_ring and core_ring_manager.
Commits on Sep 7, 2012
  1. Roll riak_core version 1.2.1

    Jared Morrow committed Sep 7, 2012
Commits on Aug 29, 2012
  1. Merge branch 'core212-restart-worker-pool' into 1.2

    Kelly McLaughlin committed Aug 29, 2012
  2. Include eunit header.

    Kelly McLaughlin committed Aug 27, 2012
  3. Add eunit test.

    Kelly McLaughlin committed Aug 27, 2012
  4. Fix breakage from previous commit.

    Kelly McLaughlin committed Jul 20, 2012
  5. Add debug log output when vnode worker pool is restarted.

    Kelly McLaughlin committed Jul 20, 2012
  6. Have the vnode restart the worker pool if the process dies.

    Kelly McLaughlin committed Jul 20, 2012
Commits on Aug 16, 2012
  1. Take newer upstream poolboy.

    jonmeredith committed Aug 16, 2012
    @vagabond promised it works.
Commits on Aug 3, 2012
  1. Ensure legacy nodes are probed when new capabilities registered

    jtuple committed Aug 3, 2012
    The capability system caches prior probes of legacy app vars when dealing
    with legacy nodes. Prior to this commit, the logic was simple. If there
    were any cached results, no probes were performed. Unfortunately, this
    could lead to a race condition. If capabilities were probed before all
    applications (eg. riak_core, riak_kv) had started and registered their
    capabilities, the cache would only include some results, and no probes
    would be performed for the newly registered capabilities. This commit
    makes things more fine-grained, checking for cached results of individual
    This change does nothing for non-legacy nodes. All nodes that support
    the capability system natively already worked with delayed registration.
Commits on Jul 25, 2012
  1. Fix spurious "Forcing update of stalled ring"

    jtuple committed Jul 25, 2012
    Changed the force update logic in riak_core_claimant to not perform
    a forced update if we have pending staged joins and no auto-joining
    nodes. Forcing a ring update because of staged joins will not actually
    change the ring, because staged joins will not transition until
    committed. This was a false positive detection of a stalled ring.
  2. restructure supervision tree so that folsom is an included app

    russelldb committed Jul 25, 2012
    All stat mods depend on folsom, yet they are not linked to it.
    This change brings folsom under supervision of a core stat sup,
    which also supervises the riak stat subsystem. Now when folsom exits
    everyone gets to restart clean and recover.
    riak_core_stat_sup (rest_for_one)
           - folsom_sup
           - riak_core_stats_sup (one_for_one)
              - riak_*_stat
              - riak_stat_cache
    riak_core_stats_sup will start and supervise gen_server stat mods at
    registration time, and will re-start them should the sup crash.
Commits on Jul 24, 2012
Commits on Jul 22, 2012
  1. Merge pull request #214 from basho/jdb-ring-manager-load

    jtuple committed Jul 22, 2012
    Fix race during start-up that could overwrite existing ring file.
    Fix issue #166.
  2. Fix capability system race condition

    jtuple committed Jul 21, 2012
    Prevent the node from crashing when the capability system attempts to
    negotiate capabilities before the node has registered any capabilities.