Project

General

Profile

Cleanup #1768

osd_client: gratuitous ceph_monc_request_next_osdmap calls

Added by Anonymous over 7 years ago. Updated almost 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Category:
libceph
Target version:
Start date:
11/30/2011
Due date:
% Done:

0%

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

Description

kick_requests() is called from within a loop that iterates through multiple OSD map updates ... which means that it may be called multiple times in a row.

If some queued request does not have an OSD in the current map, kick_requests() issues a monitor request for a new map before returning ... even if we already have (but simply have not yet processed) the update that cures the problem.

It would be more efficient to simply have kick_requests() return a value indicating whether or not a new map is needed. ceph_osdc_handle_map() would ignore this value for all but the final call to kick_requests() and only request an updated map if required OSDs were still not available.

History

#1 Updated by Sage Weil over 7 years ago

  • Project changed from Ceph to Linux kernel client
  • Category deleted (OSD)

#2 Updated by Sage Weil over 7 years ago

  • translation missing: en.field_position set to 16

#3 Updated by Josh Durgin about 4 years ago

  • Target version set to sprint2

#4 Updated by Ilya Dryomov almost 3 years ago

  • Category set to libceph
  • Status changed from New to Closed

OSD client has been rewritten in 4.7. We now rely on handle_timeout(), which requests a new map if there are homeless requests.

Also available in: Atom PDF