Skip to content

Commit

Permalink
osd: use correct shard for temp scrub object
Browse files Browse the repository at this point in the history
Use ghobject_t type throughout.  Make ghobject_t variant of
spg_t::make_temp_object().

Signed-off-by: Sage Weil <sage@redhat.com>
  • Loading branch information
liewegas committed Mar 11, 2016
1 parent 19e6b64 commit bd2285f
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 11 deletions.
4 changes: 2 additions & 2 deletions src/osd/ReplicatedPG.cc
Expand Up @@ -6489,7 +6489,7 @@ hobject_t ReplicatedPG::generate_temp_object()
{
ostringstream ss;
ss << "temp_" << info.pgid << "_" << get_role() << "_" << osd->monc->get_global_id() << "_" << (++temp_seq);
hobject_t hoid = info.pgid.make_temp_object(ss.str());
hobject_t hoid = info.pgid.make_temp_hobject(ss.str());
dout(20) << __func__ << " " << hoid << dendl;
return hoid;
}
Expand All @@ -6502,7 +6502,7 @@ hobject_t ReplicatedPG::get_temp_recovery_object(eversion_t version, snapid_t sn
<< "_" << info.history.same_interval_since
<< "_" << snap;
// pgid + version + interval + snapid is unique, and short
hobject_t hoid = info.pgid.make_temp_object(ss.str());
hobject_t hoid = info.pgid.make_temp_hobject(ss.str());
dout(20) << __func__ << " " << hoid << dendl;
return hoid;
}
Expand Down
10 changes: 5 additions & 5 deletions src/osd/ScrubStore.cc
Expand Up @@ -7,11 +7,11 @@
#include "include/rados/rados_types.hpp"

namespace {
hobject_t make_scrub_object(const spg_t& pgid)
ghobject_t make_scrub_object(const spg_t& pgid)
{
ostringstream ss;
ss << "scrub_" << pgid;
return pgid.make_temp_object(ss.str());
return pgid.make_temp_ghobject(ss.str());
}

string first_object_key(int64_t pool)
Expand Down Expand Up @@ -101,12 +101,12 @@ Store::create(ObjectStore* store,
{
assert(store);
assert(t);
hobject_t oid = make_scrub_object(pgid);
t->touch(coll, ghobject_t{oid});
ghobject_t oid = make_scrub_object(pgid);
t->touch(coll, oid);
return new Store{coll, oid, store};
}

Store::Store(const coll_t& coll, const hobject_t& oid, ObjectStore* store)
Store::Store(const coll_t& coll, const ghobject_t& oid, ObjectStore* store)
: coll(coll),
hoid(oid),
driver(store, coll, hoid),
Expand Down
2 changes: 1 addition & 1 deletion src/osd/ScrubStore.h
Expand Up @@ -37,7 +37,7 @@ class Store {
const librados::object_id_t& start,
uint64_t max_return);
private:
Store(const coll_t& coll, const hobject_t& oid, ObjectStore* store);
Store(const coll_t& coll, const ghobject_t& oid, ObjectStore* store);
std::vector<bufferlist> get_errors(ObjectStore* store,
const string& start, const string& end,
uint64_t max_return);
Expand Down
11 changes: 10 additions & 1 deletion src/osd/osd_types.h
Expand Up @@ -497,11 +497,20 @@ struct spg_t {
DECODE_FINISH(bl);
}

hobject_t make_temp_object(const string& name) const {
hobject_t make_temp_hobject(const string& name) const {
return hobject_t(object_t(name), "", CEPH_NOSNAP,
pgid.ps(),
hobject_t::POOL_TEMP_START - pgid.pool(), "");
}

ghobject_t make_temp_ghobject(const string& name) const {
return ghobject_t(
hobject_t(object_t(name), "", CEPH_NOSNAP,
pgid.ps(),
hobject_t::POOL_TEMP_START - pgid.pool(), ""),
ghobject_t::NO_GEN,
shard);
}
};
WRITE_CLASS_ENCODER(spg_t)
WRITE_EQ_OPERATORS_2(spg_t, pgid, shard)
Expand Down
4 changes: 2 additions & 2 deletions src/test/objectstore_bench.cc
Expand Up @@ -269,7 +269,7 @@ int main(int argc, const char *argv[])
for (int i = 0; i < cfg.threads; i++) {
std::stringstream oss;
oss << "osbench-thread-" << i;
oids.emplace_back(pg.make_temp_object(oss.str()));
oids.emplace_back(pg.make_temp_hobject(oss.str()));

ObjectStore::Sequencer osr(__func__);
ObjectStore::Transaction t;
Expand All @@ -278,7 +278,7 @@ int main(int argc, const char *argv[])
assert(r == 0);
}
} else {
oids.emplace_back(pg.make_temp_object("osbench"));
oids.emplace_back(pg.make_temp_hobject("osbench"));

ObjectStore::Sequencer osr(__func__);
ObjectStore::Transaction t;
Expand Down

0 comments on commit bd2285f

Please sign in to comment.