Permalink
Switch branches/tags
Commits on Jun 14, 2012
  1. Tag messages, only send timeout if asked

    This changes the message protocol between the db_update_listener client
    and coordinator so that replies are tagged with the 'state' atom and
    Pid of the coordinator process.  Hopefully it avoids unexpected
    messages being treated as the State.  It also avoids sending a timeout
    message unless a 'get_state' request has arrived.  Previously we'd send
    extra 'timeout' messages and end up somewhat out-of-sync.
    
    Using a gen_fsm for the coordinator would seem to be the way to go here.
    
    BugzID: 13421
    kocolosk committed Jun 14, 2012
  2. Remove an import

    kocolosk committed Jun 14, 2012
Commits on May 14, 2012
  1. Use a separate mailbox for 'db_updated' messages

    A continuous changes feed will decay with an active
    database as the controller mailbox is shared with the
    db updater notifier. This patch spawns a separate
    process to receive the 'db_updated' messages.
    
    BugzID:13421
    Bob Dionne committed Apr 2, 2012
Commits on Apr 13, 2012
  1. Ignore 'complete' messages from suppressed workers

    If we have a database where one copy of a partition contributes zero
    rows to a reduce view but another copy of the same partition contributes
    one or more rows we can end up erroneously removing a worker which has
    already contributed a row to a response.  This puts the coordinator into
    an inconsistent state and can ultimately cause the response to hang.
    
    The fix is simple -- just guard processing of 'complete' messages by
    checking if the worker sending the message has already lost the race to
    another copy.
    
    BugzID: 13461
    kocolosk committed Apr 13, 2012
Commits on Mar 19, 2012
  1. Tolerate whitespace in BC sequences

    If a BC update sequence is parsed as JSON and formatted back to a
    string it may pick up internal whitespace. unpack_seqs now tolerates this.
    
    BugzID: 13400
    Robert Newson committed Mar 19, 2012
Commits on Feb 25, 2012
  1. Teach unpack_seqs how to handle BC 0.4 and LC 1.2 style update sequences

    BugzID: 13351
    Robert Newson committed Feb 25, 2012
Commits on Jan 26, 2012
  1. Fix unused variable compiler error

    Bob Dionne committed Jan 26, 2012
Commits on Jan 20, 2012
  1. Merge pull request #31 from cloudant/13080-fabric-doc-update-missing-…

    …case
    
    fix missed error case in doc update
    bdionne committed Jan 20, 2012
  2. Merge pull request #29 from cloudant/13065-design-docs-node-down

    Fix callback error handling in fabric:design_docs
    bdionne committed Jan 20, 2012
Commits on Jan 18, 2012
  1. Remove clause that converts error tuple to ok tuple

    force_reply/3 now checks for errors like conflict and if all are the same for
    a given doc, it uses the value of Health, otherwise an error tuple is returned
    and handled in the chttpd layer.
    
    BugzID: 13080
    Bob Dionne committed Jan 18, 2012
  2. Change callback fun to return error tuple

    and change fabric_view:remove_down_shards to expect an error tuple
    rather than ok.
    
    BugzID:13065
    Bob Dionne committed Jan 18, 2012
  3. Fix callback error handling in fabric:design_docs

    fabric_view:remove_down_shards invokes the callback with an error tuple
    and expects an ok response, which it returns as an error to the controller.
    
    BugzID:13065
    Bob Dionne committed Dec 22, 2011
Commits on Jan 12, 2012
  1. Fix bad prepend value caused by timeouts

    When timeouts occur receive_results in fabric_view_changes was using the
    original returned response from initial start callback rather than the current
    value in the accumulator within the state. Thus it lost the comma needed for
    prepending in subsequent calls.
    
    BugzID:13131
    Bob Dionne committed Jan 12, 2012
Commits on Jan 9, 2012
  1. fix missed error case in doc update

    If a write fails to meet quorum, returning a 202 accept, a subsequent
    write of the same doc will return an update conflict but also an error
    tuple as nodes could be down. This patch handles that edge case, ensuring
    a 409 conflict is returned.
    
    BugzID:13080
    Bob Dionne committed Jan 9, 2012
Commits on Jan 6, 2012
  1. Merge pull request #27 from cloudant/13003-bad-read-repair

    BugzID: 13003
    kocolosk committed Jan 6, 2012
Commits on Dec 30, 2011
  1. Ensure response with needs repair contains the correct value

    For example we may have responses like (1-foo, 2-bar, 1-foo) where we've
    reached a quorum with 1-foo but 1-foo is an ancestor of 2-bar which is the
    correct answer. In this case we don't want to respond with 1-foo. This patch
    ensures that after remove_ancestors is called the remaining response is the
    same as the one that made quorum. So (1-foo, 2-bar, 2-bar) would respond with
    2-bar needs repair and (1-foo, 2-bar, 1-foo) would block with read repair.
    
    BugzID:13003
    Bob Dionne committed Dec 13, 2011
Commits on Nov 14, 2011
Commits on Nov 9, 2011
  1. Correctly support old-style update_seq in unpack_seqs

    The regexp in unpack_seqs permits - anywhere, causing a full
    old-style update_seq to match, rather than just the opaque part.
    
    This patch prevents that and adds unit tests to prove it.
    
    BugzID: 12833
    Robert Newson committed Nov 8, 2011
Commits on Oct 11, 2011
  1. Support conflicts with include_docs in _changes

    BugzID: 12725
    kocolosk committed Oct 11, 2011
  2. Support conflicts=true with include_docs=true

    Support conflicts=true when used with include_docs=true for 1.1
    compatibility.
    
    BugzID: 12725
    Robert Newson committed Oct 11, 2011
Commits on Oct 10, 2011
  1. Merge pull request #23 from cloudant/12634-update-type-specs

    Update -specs to reflect new realities
    kocolosk committed Oct 10, 2011
Commits on Oct 7, 2011
  1. Update -specs to reflect new realities

    BugzID: 12634
    kocolosk committed Oct 6, 2011
  2. Handle errors when computing ancestry

    BugzID: 12212
    kocolosk committed Oct 7, 2011
  3. Merge pull request #22 from cloudant/stuck-continuous-replications

    Preserve state during timeouts in the _changes feed
    kocolosk committed Oct 7, 2011
Commits on Oct 6, 2011
  1. Fix the changes feed.

    The handling of timeout messages in fabric_view_changes:handle_message/3
    was incorrectly discarding updates to the state. This means that we
    could accidentally discard things like the handling of rexi_EXIT
    messages which would then later lead to an infinite wait in
    rexi_utils:recv/6 because we forgot that the node died.
    
    BugzID: 12706
    davisp committed Oct 4, 2011
Commits on Oct 4, 2011
Commits on Sep 28, 2011
  1. 1.1.x compatibility

    In 1.1.x (post 1.1.0) we have removed Style from couch_db:changes_since
    so fabric needs to not call it with that parameter now.
    
    BugzID: 12645
    Robert Newson committed Sep 28, 2011
Commits on Sep 23, 2011
  1. Fix invocation of lists:filter

    kocolosk committed Sep 23, 2011
Commits on Sep 22, 2011
  1. Merge branch '12220-nodedown-handling-db', close #18

    Conflicts:
    	src/fabric_util.erl
    
    BugzID: 12220
    kocolosk committed Sep 22, 2011
  2. Merge pull request #20 from cloudant/12605-continuous-changes-timeouts

    Do not skip heartbeats when DB is updated
    kocolosk committed Sep 22, 2011
  3. Allow RPC workers to create database shard files

    An RPC worker should only be invoked on a shard in the partition table,
    so creating the file is kosher.
    kocolosk committed Sep 22, 2011