summaryrefslogtreecommitdiff
path: root/src/osd/OSD.h
diff options
context:
space:
mode:
authorSage Weil <sage.weil@dreamhost.com>2012-04-29 15:27:51 -0700
committerSage Weil <sage.weil@dreamhost.com>2012-04-29 15:27:51 -0700
commit2039a76c9f71173bb918275414e15d0aeca0edc5 (patch)
treee98cb23212d24f582b0f64246d955eda343f1add /src/osd/OSD.h
parentd64e1b974023e06b8d96d2c620510697f0f4957f (diff)
downloadceph-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.h2
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);