Permalink
Switch branches/tags
Commits on Sep 4, 2017
  1. Merge pull request #85 from cloudant/93610-code_upgrade-fix

    iilyak committed Sep 4, 2017
    Avoid long computation in code_change/3
  2. Avoid long computation in code_change/3

    ILYA Khlopotov committed Aug 29, 2017
    If code_change function doesn't return within 5 seconds the release
    handler would abort release upgrade. In order to prevent it from
    happening avoid long computation (ets recreation) spawn a new migration
    process.
    
    BugzID: 93610
Commits on Jun 19, 2017
  1. Merge pull request #84 from cloudant/mem3_shards-hot-upgrade

    jaydoane committed Jun 19, 2017
    Support mem3_shards hot upgrade
Commits on Jun 17, 2017
  1. Keep default code_change clause

    jaydoane committed Jun 17, 2017
  2. Support hot upgrade

    jaydoane committed Jun 17, 2017
Commits on Jun 16, 2017
  1. Use correct stats counter key

    jaydoane committed Jun 16, 2017
Commits on Apr 25, 2017
  1. Merge pull request #83 from cloudant/77475-backport-COUCHDB-3376-fix-…

    jaydoane committed Apr 25, 2017
    …mem3-shards
    
    Back port COUCHDB-3376 fix mem3 shards
Commits on Apr 22, 2017
  1. Add unit tests for mem3_shards

    nickva committed with jaydoane Apr 18, 2017
    COUCHDB-3376
  2. Use a temporary process when caching shard maps

    davisp committed with jaydoane Apr 14, 2017
    This change introduces a new shard_writer process into the mem3_shards
    caching approach. It turns out its not terribly difficult to create
    thundering herd scenarios that back up the mem3_shards mailbox. And if
    the Q value is large this backup can happen quite quickly.
    
    This changes things so that we use a temporary process to perform the
    actual `ets:insert/2` call which keeps the shard map out of mem3_shards'
    message queue.
    
    A second optimization is that only a single client will attempt to send
    the shard map to begin with by checking the existence of the writer key
    using `ets:insert_new/2`.
    
    COUCHDB-3376
  3. Fix stale shards cache

    davisp committed with jaydoane Feb 24, 2017
    There's a race condition in mem3_shards that can result in having shards
    in the cache for a database that's been deleted. This results in a
    confused cluster that thinks a database exists until you attempt to open
    it.
    
    The fix is to ignore any cache insert requests that come from an older
    version of the dbs db than mem3_shards cache knows about.
    
    Big thanks to @jdoane for the identification and original patch.
    
    COUCHDB-3376
Commits on Mar 10, 2016
  1. Update twig to same version as parent project

    robfraz committed Mar 10, 2016
Commits on Dec 16, 2015
  1. Merge pull request #81 from cloudant/57511-rebalance-print-fix

    theburge committed Dec 16, 2015
    Permit hyphens in cluster names.
  2. Permit hyphens in cluster names.

    theburge committed Dec 16, 2015
    The regex now matches the definition of a valid hostname component more
    closely (although the restrictions on starting/ending characters are not
    enforced).
Commits on Jul 28, 2015
  1. Merge pull request #80 from cloudant/49932-rebalance-name-matching

    theburge committed Jul 28, 2015
    Fix mem3_rebalance for single-letter DBs.
  2. Fix mem3_rebalance for single-letter DBs.

    theburge committed Jul 28, 2015
    This corrects a fault where plan generation would succeed but printing
    the plan would fail.
    
    BugzId: 49932
Commits on Jun 26, 2015
Commits on Mar 18, 2015
  1. Merge pull request #77 from cloudant/set-batch-options-for-internal-sync

    Sam Smith committed Mar 18, 2015
    Set batch options for internal sync
  2. Enable batch options to be set in config for internal sync

    Sam Smith committed Nov 21, 2014
    Allows an operator to set batch_size and batch_count for internal push
    replications to a specific node via config:set, for example:
    
    config:set("mem3.batch_size", "dbcore@db1.cluster001.cloudant.net", "200").
    config:set("mem3.batch_count", "dbcore@db1.cluster001.cloudant.net", "2").
    
    This may prove useful when syncing a new node into the cluster.
Commits on Jan 8, 2015
  1. Merge pull request #79 from cloudant/43260-mem3-rep-autocreate-shards

    davisp committed Jan 8, 2015
    Make sure mem3_rep autocreates target shards
  2. Make sure mem3_rep autocreates target shards

    davisp committed Jan 8, 2015
    The change to our fancier history entries introduced a regression that
    internal replication wouldn't automatically create the target shards.
    This fixes the issue by adding a get_or_create_db/2 in mem3_rep and
    switches the use of couch_db:open_int/2 to that function.
    
    BugzId: 43260
Commits on Nov 7, 2014
  1. Merge pull request #76 from cloudant/39298-dead-replication-retries

    banjiewen committed Nov 7, 2014
    Don't retry replications for shard/node pairs no longer in shardmap
  2. Don't retry replications for shard/node pairs no longer in shardmap

    banjiewen committed Nov 7, 2014
    mem3_sync will continuously attempt to replicate shards for nodes that are down,
    even if those nodes were removed from the shard map. This leads to an infinite
    loop of retries for nodes that have been decomissioned from the cluster.
    
    BugzID: 39298
Commits on Nov 6, 2014
  1. Merge pull request #74 from cloudant/37676-chunk-revs

    banjiewen committed Nov 6, 2014
    Chunk missing revisions before attempting to save on target
  2. Chunk missing revisions before attempting to save on target

    banjiewen committed Oct 29, 2014
    In cases with pathological documents revision patterns (e.g., 10000 open
    conflicts and tree depth of 300000 on a single document), attempting to
    replicate the full revision tree in one batch causes the system to crash by
    attempting to send an oversized message. We've observed messages of > 4GB in the
    wild.
    
    This patch divides the set of revisions-to-replicate for a single document into
    chunks of a configurable size, thereby allowing operators to keep the system
    stable when attempting to replicate these troublesome documents.
    
    BugzID: 37676
Commits on Nov 3, 2014
  1. Merge pull request #75 from cloudant/37960-db-creation-race

    Henning Diedrich committed Nov 3, 2014
    Fix race when the database did not exist before starting.
  2. Fix race when the database did not exist before starting.

    H. Diedrich committed Nov 3, 2014
    This might be relevant for all automated tests of fresh builds, i.e. also
    Jenkins system tests.
    
    Tests are in dbcore/37960-db-creation-race, see git log, make check.
    
    BugzID: 37960
Commits on Sep 30, 2014
Commits on Jul 19, 2014
  1. Merge pull request #68 from cloudant/16742-couch-stats

    sagelywizard committed Jul 19, 2014
    Replace margaret with couch_stats
Commits on Jul 15, 2014
  1. Replace margaret with couch_stats

    banjiewen committed with sagelywizard Feb 4, 2014
    Also add stats_descriptions.cfg.
    
    BugzID: 16742
Commits on Jun 25, 2014
  1. Merge pull request #71 from cloudant/31712-remove-owner-fun

    rnewson committed Jun 25, 2014
    Remove mem3_util:owner
Commits on Jun 16, 2014
  1. Remove mem3_util:owner

    rnewson committed Jun 16, 2014
Commits on May 2, 2014
  1. Merge pull request #70 from cloudant/29571-metadatadb

    chewbranca committed May 2, 2014
    29571 metadatadb
Commits on Apr 29, 2014
  1. Get the shard suffix for a given database

    chewbranca committed Apr 29, 2014
    This grabs the shards for the given database name, and then pulls out
    the first shard and extracts out the suffix. mem3:shards is ets
    backed, so in the general case this should be fast.
    
    BugzId: 29571
  2. Allow mem3_shards:local to take a list or binary

    chewbranca committed Apr 29, 2014
    BugzId: 29571
  3. Merge pull request #67 from cloudant/27753-fast-forward-shard-copies

    kocolosk committed Apr 29, 2014
    Fast forward internal repl. between file copies
    
    BugzID: 27753