diff options
author | Sage Weil <sage@inktank.com> | 2013-10-01 10:41:42 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-10-01 10:41:42 -0700 |
commit | cb43abda894f90fe7db1c7643a4c7b535a4c73f4 (patch) | |
tree | 01a024c8fc4455b84d7c239a04389d58372fd4cd | |
parent | c415d46e019d7f790261c580a20f96dde498371f (diff) | |
parent | 94478e01c85e7feb624b71cd03dfc66c697191cd (diff) | |
download | ceph-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.cc | 1 | ||||
-rw-r--r-- | src/osdc/Objecter.cc | 2 | ||||
-rw-r--r-- | src/osdc/Objecter.h | 5 |
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, |