Project

General

Profile

Cleanup #1768

osd_client: gratuitous ceph_monc_request_next_osdmap calls

Added by Anonymous about 7 years ago. Updated over 2 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 about 7 years ago

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

#2 Updated by Sage Weil almost 7 years ago

  • translation missing: en.field_position set to 16

#3 Updated by Josh Durgin over 3 years ago

  • Target version set to sprint2

#4 Updated by Ilya Dryomov over 2 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