summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-10-01 10:41:42 -0700
committerSage Weil <sage@inktank.com>2013-10-01 10:41:42 -0700
commitcb43abda894f90fe7db1c7643a4c7b535a4c73f4 (patch)
tree01a024c8fc4455b84d7c239a04389d58372fd4cd
parentc415d46e019d7f790261c580a20f96dde498371f (diff)
parent94478e01c85e7feb624b71cd03dfc66c697191cd (diff)
downloadceph-cb43abda894f90fe7db1c7643a4c7b535a4c73f4.tar.gz
Merge pull request #659 from ceph/wip-objecter-notier
Wip objecter notier Reviewed-by: Sage Weil <sage@inktank.com>
-rw-r--r--src/osd/OSD.cc1
-rw-r--r--src/osdc/Objecter.cc2
-rw-r--r--src/osdc/Objecter.h5
3 files changed, 7 insertions, 1 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index 9a2fbb5c576..22366b0baca 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -434,6 +434,7 @@ void OSDService::init()
objecter_timer.init();
objecter->set_client_incarnation(0);
objecter->init_locked();
+ objecter->unset_honor_cache_redirects();
}
watch_timer.init();
}
diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc
index 6c0486ce801..d2c574d982e 100644
--- a/src/osdc/Objecter.cc
+++ b/src/osdc/Objecter.cc
@@ -1338,7 +1338,7 @@ int Objecter::recalc_op_target(Op *op)
need_check_tiering = true;
}
- if (need_check_tiering) {
+ if (honor_cache_redirects && need_check_tiering) {
const pg_pool_t *pi = osdmap->get_pg_pool(op->base_oloc.pool);
if (pi) {
if (is_read && pi->has_read_tier())
diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h
index 880023ab37b..eef226ad9b2 100644
--- a/src/osdc/Objecter.h
+++ b/src/osdc/Objecter.h
@@ -785,6 +785,7 @@ class Objecter {
int global_op_flags; // flags which are applied to each IO op
bool keep_balanced_budget;
bool honor_osdmap_full;
+ bool honor_cache_redirects;
void maybe_request_map();
@@ -1260,6 +1261,7 @@ public:
num_unacked(0), num_uncommitted(0),
global_op_flags(0),
keep_balanced_budget(false), honor_osdmap_full(true),
+ honor_cache_redirects(true),
last_seen_osdmap_version(0),
last_seen_pgmap_version(0),
client_lock(l), timer(t),
@@ -1293,6 +1295,9 @@ public:
void set_honor_osdmap_full() { honor_osdmap_full = true; }
void unset_honor_osdmap_full() { honor_osdmap_full = false; }
+ void set_honor_cache_redirects() { honor_cache_redirects = true; }
+ void unset_honor_cache_redirects() { honor_cache_redirects = false; }
+
void scan_requests(bool skipped_map,
map<tid_t, Op*>& need_resend,
list<LingerOp*>& need_resend_linger,