Project

General

Profile

Actions

Feature #14032

open

Feature #14031: EC overwrites

EC Overwrites: Phase 2: Peering support for ec overwrites

Added by Samuel Just over 8 years ago. Updated over 7 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

The current design for ec overwrites allows for replicas to be missing at the head of their log log entries in which they did not participate (if, for example, the replica is a data shard which was not overwritten by a particular update). Peering needs to be updated to handle this: it's no longer sufficient to choose the shortest log from the authoritative interval (since entries past the end of that log might have been committed if that replica did not participate). Instead, we must pull all logs from the authoritative interval back to last_update, extend each log until we hit an entry in which it should have participated, but didn't. The shortest of these extended logs then gives us our authoritative last_update and log.

First, GetInfo (and therefore find_best_info and friends) needs to be modified to pass on to the next step the set of candidate infos. GetLog should be split into GetLogReplicated and GetLogEC. GetLogReplicated simply pulls the longest candidate log (as we currently do for replicated). GetLogEC does the above. I think after that point we can simply continue on with the rest of peering.

Actions #1

Updated by Samuel Just almost 8 years ago

  • Assignee set to Samuel Just
Actions #2

Updated by Samuel Just over 7 years ago

  • Assignee deleted (Samuel Just)

This won't be necessary until we start skipping writes to non-participating shards -- punting for now.

Actions #3

Updated by Samuel Just over 7 years ago

  • Subject changed from Peering support for ec overwrites to Phase 2: Peering support for ec overwrites
Actions #4

Updated by Samuel Just over 7 years ago

  • Subject changed from Phase 2: Peering support for ec overwrites to EC Overwrites: Phase 2: Peering support for ec overwrites
Actions

Also available in: Atom PDF