From: Xiaoxi Chen Date: Mon, 1 Dec 2014 13:35:10 +0000 (+0800) Subject: Cleanup noop in message X-Git-Tag: v0.90~21^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3376fee957c916653c8b6035b971e2b76190233d;p=ceph.git Cleanup noop in message The noop loop are dead, so clean it up Signed-off-by: Xiaoxi Chen --- diff --git a/src/messages/MOSDSubOp.h b/src/messages/MOSDSubOp.h index 1918283a812b..bf54d0bbec86 100644 --- a/src/messages/MOSDSubOp.h +++ b/src/messages/MOSDSubOp.h @@ -45,7 +45,6 @@ public: // op to exec vector ops; utime_t mtime; - bool noop; bool old_exists; uint64_t old_size; @@ -119,7 +118,10 @@ public: off += ops[i].op.payload_len; } ::decode(mtime, p); - ::decode(noop, p); + //we don't need noop anymore + bool noop_dont_need; + ::decode(noop_dont_need, p); + ::decode(acks_wanted, p); ::decode(version, p); ::decode(old_exists, p); @@ -198,7 +200,8 @@ public: data.append(ops[i].indata); } ::encode(mtime, payload); - ::encode(noop, payload); + //encode a false here for backward compatiable + ::encode(false, payload); ::encode(acks_wanted, payload); ::encode(version, payload); ::encode(old_exists, payload); @@ -237,7 +240,7 @@ public: MOSDSubOp() : Message(MSG_OSD_SUBOP, HEAD_VERSION, COMPAT_VERSION) { } MOSDSubOp(osd_reqid_t r, pg_shard_t from, - spg_t p, const hobject_t& po, bool noop_, int aw, + spg_t p, const hobject_t& po, int aw, epoch_t mape, ceph_tid_t rtid, eversion_t v) : Message(MSG_OSD_SUBOP, HEAD_VERSION, COMPAT_VERSION), map_epoch(mape), @@ -246,7 +249,6 @@ public: pgid(p), poid(po), acks_wanted(aw), - noop(noop_), old_exists(false), old_size(0), version(v), first(false), complete(false), @@ -264,8 +266,6 @@ public: << " " << pgid << " " << poid << " " << ops; - if (noop) - out << " (NOOP)"; if (first) out << " first"; if (complete) diff --git a/src/osd/PG.cc b/src/osd/PG.cc index afb3a631e6ee..49b7c9d4f580 100644 --- a/src/osd/PG.cc +++ b/src/osd/PG.cc @@ -3336,7 +3336,7 @@ void PG::scrub_reserve_replicas() eversion_t v; osd_reqid_t reqid; MOSDSubOp *subop = new MOSDSubOp( - reqid, pg_whoami, spg_t(info.pgid.pgid, i->shard), poid, false, 0, + reqid, pg_whoami, spg_t(info.pgid.pgid, i->shard), poid, 0, get_osdmap()->get_epoch(), osd->get_tid(), v); subop->ops = scrub; osd->send_message_osd_cluster( @@ -3358,7 +3358,7 @@ void PG::scrub_unreserve_replicas() eversion_t v; osd_reqid_t reqid; MOSDSubOp *subop = new MOSDSubOp( - reqid, pg_whoami, spg_t(info.pgid.pgid, i->shard), poid, false, 0, + reqid, pg_whoami, spg_t(info.pgid.pgid, i->shard), poid, 0, get_osdmap()->get_epoch(), osd->get_tid(), v); subop->ops = scrub; osd->send_message_osd_cluster(i->osd, subop, get_osdmap()->get_epoch()); @@ -3654,7 +3654,6 @@ void PG::replica_scrub( pg_whoami, spg_t(info.pgid.pgid, get_primary().shard), poid, - false, 0, msg->map_epoch, osd->get_tid(), diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index f64aa9400d70..47df97409e22 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -7198,7 +7198,7 @@ void ReplicatedBackend::issue_op( reqid, parent->whoami_shard(), spg_t(get_info().pgid.pgid, i->shard), soid, - false, acks_wanted, + acks_wanted, get_osdmap()->get_epoch(), tid, at_version); @@ -7948,9 +7948,7 @@ void ReplicatedBackend::sub_op_modify(OpRequestRef op) const hobject_t& soid = m->poid; const char *opname; - if (m->noop) - opname = "no-op"; - else if (m->ops.size()) + if (m->ops.size()) opname = ceph_osd_op_name(m->ops[0].op.op); else opname = "trans"; @@ -7958,7 +7956,6 @@ void ReplicatedBackend::sub_op_modify(OpRequestRef op) dout(10) << "sub_op_modify " << opname << " " << soid << " v " << m->version - << (m->noop ? " NOOP" : "") << (m->logbl.length() ? " (transaction)" : " (parallel exec") << " " << m->logbl.length() << dendl; @@ -7979,74 +7976,61 @@ void ReplicatedBackend::sub_op_modify(OpRequestRef op) rm->last_complete = get_info().last_complete; rm->epoch_started = get_osdmap()->get_epoch(); - if (!m->noop) { - assert(m->logbl.length()); - // shipped transaction and log entries - vector log; - - bufferlist::iterator p = m->get_data().begin(); - ::decode(rm->opt, p); - if (!(m->get_connection()->get_features() & CEPH_FEATURE_OSD_SNAPMAPPER)) - rm->opt.set_tolerate_collection_add_enoent(); - - if (m->new_temp_oid != hobject_t()) { - dout(20) << __func__ << " start tracking temp " << m->new_temp_oid << dendl; - add_temp_obj(m->new_temp_oid); - get_temp_coll(&rm->localt); - } - if (m->discard_temp_oid != hobject_t()) { - dout(20) << __func__ << " stop tracking temp " << m->discard_temp_oid << dendl; - if (rm->opt.empty()) { - dout(10) << __func__ << ": removing object " << m->discard_temp_oid - << " since we won't get the transaction" << dendl; - rm->localt.remove(temp_coll, m->discard_temp_oid); - } - clear_temp_obj(m->discard_temp_oid); - } - - p = m->logbl.begin(); - ::decode(log, p); - if (m->hobject_incorrect_pool) { - for (vector::iterator i = log.begin(); - i != log.end(); - ++i) { - if (!i->soid.is_max() && i->soid.pool == -1) - i->soid.pool = get_info().pgid.pool(); - } - rm->opt.set_pool_override(get_info().pgid.pool()); - } - rm->opt.set_replica(); - - bool update_snaps = false; - if (!rm->opt.empty()) { - // If the opt is non-empty, we infer we are before - // last_backfill (according to the primary, not our - // not-quite-accurate value), and should update the - // collections now. Otherwise, we do it later on push. - update_snaps = true; - } - parent->update_stats(m->pg_stats); - parent->log_operation( - log, - m->updated_hit_set_history, - m->pg_trim_to, - m->pg_trim_rollback_to, - update_snaps, - &(rm->localt)); + assert(m->logbl.length()); + // shipped transaction and log entries + vector log; + + bufferlist::iterator p = m->get_data().begin(); + ::decode(rm->opt, p); + if (!(m->get_connection()->get_features() & CEPH_FEATURE_OSD_SNAPMAPPER)) + rm->opt.set_tolerate_collection_add_enoent(); + + if (m->new_temp_oid != hobject_t()) { + dout(20) << __func__ << " start tracking temp " << m->new_temp_oid << dendl; + add_temp_obj(m->new_temp_oid); + get_temp_coll(&rm->localt); + } + if (m->discard_temp_oid != hobject_t()) { + dout(20) << __func__ << " stop tracking temp " << m->discard_temp_oid << dendl; + if (rm->opt.empty()) { + dout(10) << __func__ << ": removing object " << m->discard_temp_oid + << " since we won't get the transaction" << dendl; + rm->localt.remove(temp_coll, m->discard_temp_oid); + } + clear_temp_obj(m->discard_temp_oid); + } + + p = m->logbl.begin(); + ::decode(log, p); + if (m->hobject_incorrect_pool) { + for (vector::iterator i = log.begin(); + i != log.end(); + ++i) { + if (!i->soid.is_max() && i->soid.pool == -1) + i->soid.pool = get_info().pgid.pool(); + } + rm->opt.set_pool_override(get_info().pgid.pool()); + } + rm->opt.set_replica(); + + bool update_snaps = false; + if (!rm->opt.empty()) { + // If the opt is non-empty, we infer we are before + // last_backfill (according to the primary, not our + // not-quite-accurate value), and should update the + // collections now. Otherwise, we do it later on push. + update_snaps = true; + } + parent->update_stats(m->pg_stats); + parent->log_operation( + log, + m->updated_hit_set_history, + m->pg_trim_to, + m->pg_trim_rollback_to, + update_snaps, + &(rm->localt)); - rm->bytes_written = rm->opt.get_encoded_bytes(); - - } else { - assert(0); - #if 0 - // just trim the log - if (m->pg_trim_to != eversion_t()) { - pg_log.trim(m->pg_trim_to, info); - dirty_info = true; - write_if_dirty(rm->localt); - } - #endif - } + rm->bytes_written = rm->opt.get_encoded_bytes(); op->mark_started(); @@ -8439,7 +8423,7 @@ void ReplicatedPG::send_remove_op( MOSDSubOp *subop = new MOSDSubOp( rid, pg_whoami, spg_t(info.pgid.pgid, peer.shard), - oid, false, CEPH_OSD_FLAG_ACK, + oid, CEPH_OSD_FLAG_ACK, get_osdmap()->get_epoch(), tid, v); subop->ops = vector(1); subop->ops[0].op.op = CEPH_OSD_OP_DELETE; @@ -8577,7 +8561,7 @@ int ReplicatedBackend::send_pull_legacy(int prio, pg_shard_t peer, MOSDSubOp *subop = new MOSDSubOp( rid, parent->whoami_shard(), get_info().pgid, recovery_info.soid, - false, CEPH_OSD_FLAG_ACK, + CEPH_OSD_FLAG_ACK, get_osdmap()->get_epoch(), tid, recovery_info.version); subop->set_priority(prio); @@ -9021,7 +9005,7 @@ int ReplicatedBackend::send_push_op_legacy(int prio, pg_shard_t peer, PushOp &po MOSDSubOp *subop = new MOSDSubOp( rid, parent->whoami_shard(), spg_t(get_info().pgid.pgid, peer.shard), pop.soid, - false, 0, get_osdmap()->get_epoch(), + 0, get_osdmap()->get_epoch(), tid, pop.recovery_info.version); subop->ops = vector(1); subop->ops[0].op.op = CEPH_OSD_OP_PUSH;