Project

General

Profile

Feature #5280

osd/client: messages should be tagged with the earliest sane map

Added by Samuel Just almost 11 years ago. Updated about 5 years ago.

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

0%

Source:
other
Tags:
Backport:
Reviewed:
Affected Versions:
Component(RADOS):
OSD
Pull request ID:

Description

A client at epoch e should not have to wait for an osd to catch up to epoch e unless the mapping changed in epoch e. Generally a message should be tagged with the earliest valid epoch.

History

#1 Updated by Samuel Just almost 11 years ago

  • Target version deleted (v0.67 - Dumpling)

#2 Updated by Sage Weil over 10 years ago

i started coding this up for the objecter but realized it doesn't really help.. when we initiate a io we calculate the target for our current map, but we don't know what same_primary_since has been (nor do we want to search backwards in time to find out). we can track it going forward, but that only helps for requests that keep getting retried because the cluster is thrashing or something. and the cost is an extra table lookup for the pg_t -> PGMapping. if we have gobs of ios in flight and the pg mapping stays alive then maybe that is a win, but... usually not.

on the osd side, the map epochs are tagged with the pg's map. and in general we are aggressively sharing incrementals already, so the target of any msgs should already have seen the map it needs. before doing anything we should instrument how often the osds are waitlisting messages due to an osdmap to see if this actually ever happens....

#3 Updated by Greg Farnum over 10 years ago

Couldn't we pretty easily on the client side just keep track of the last map which changed the osd states or the pg_temp mapping? That's barely any calculation to keep track of and probably covers the common cases.

Thumbs up for instrumenting to get more information on this (and on when we are, in general, going to the monitors for maps). Do we have any tickets for this?

#4 Updated by Patrick Donnelly about 5 years ago

  • Project changed from Ceph to RADOS
  • Component(RADOS) OSD added

Also available in: Atom PDF