diff options
author | Sage Weil <sage.weil@dreamhost.com> | 2012-04-29 15:27:51 -0700 |
---|---|---|
committer | Sage Weil <sage.weil@dreamhost.com> | 2012-04-29 15:27:51 -0700 |
commit | 2039a76c9f71173bb918275414e15d0aeca0edc5 (patch) | |
tree | e98cb23212d24f582b0f64246d955eda343f1add /src/osd/OSD.h | |
parent | d64e1b974023e06b8d96d2c620510697f0f4957f (diff) | |
download | ceph-historic/past-intervals-hack.tar.gz |
osd: kludge to efficiently rebuild past_intervals in parallel on startuphistoric/past-intervals-hack
Particularly tortured clusters might be buried under thousands of osdmap
epochs of thrashing with thousands of pgs. Rebuilding the past_intervals
becomes O(n^2) in that case, and can take days and days. Instead, do the
rebuild for all PGs in parallel during a single pass over the osdmap
history.
This is an ugly (mostly) one-time use hack that can removed soon.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
Diffstat (limited to 'src/osd/OSD.h')
-rw-r--r-- | src/osd/OSD.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/src/osd/OSD.h b/src/osd/OSD.h index bfcaadf9e91..681bd8ecda5 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -481,6 +481,8 @@ protected: C_Contexts **pfin); void load_pgs(); + void hack_build_past_intervals(); + void calc_priors_during(pg_t pgid, epoch_t start, epoch_t end, set<int>& pset); void project_pg_history(pg_t pgid, pg_history_t& h, epoch_t from, vector<int>& lastup, vector<int>& lastacting); |