summaryrefslogtreecommitdiff
path: root/apps/couch/src/couch_db_updater.erl
diff options
context:
space:
mode:
authorAdam Kocoloski <adam@cloudant.com>2010-10-19 11:37:08 -0400
committerAdam Kocoloski <adam@cloudant.com>2010-10-19 11:37:08 -0400
commit4074a1f187193df9d13c5b9f35545833ae245a63 (patch)
tree1c645fb52db89149b649cc25b557c86178f1da8a /apps/couch/src/couch_db_updater.erl
parentdaf6bdcfe7d2d4eb2f69083973751ff85bb63a3d (diff)
improved read quorum and repair for open_revs
There are important distinctions between requests with open_revs=all, requests with an explicit revision list and latest=true, and a simple revision list. When open_revs=all, we take the union of all revisions returned by the workers, then reduce it by filtering out ancestors on each edit branch. An ancestor counts towards the descendant's read quorum. If an explicit revision list is given, a worker can respond with {{not_found, missing}, Rev}, an {ok, #doc{}} corresponding to the rev in question, or an {ok, #doc{}} with a newer revision if latest=true is supplied. not_found is considered to be an ancestor of any {ok,_} revision for quorum purposes. Down workers do not contribute to the read quorum. If workers disagree at all on the response, read repair will run asynchronously. The repair tries to save all the latest #doc{} records (i.e. the ones w/o descendants) which were received during the voting. BugzID 11047
Diffstat (limited to 'apps/couch/src/couch_db_updater.erl')
0 files changed, 0 insertions, 0 deletions