public:
struct coll_entry_t {
int m_id;
+ spg_t m_pgid;
coll_t m_coll;
hobject_t m_meta_obj;
ObjectStore::Sequencer m_osr;
int m_next_object_id;
coll_entry_t(int i, char *coll_buf, char *meta_obj_buf)
- : m_id(i), m_coll(coll_buf),
+ : m_id(i),
+ m_pgid(pg_t(i, 1), shard_id_t::NO_SHARD),
+ m_coll(m_pgid),
m_meta_obj(sobject_t(object_t(meta_obj_buf), CEPH_NOSNAP)),
m_osr(coll_buf), m_next_object_id(0) {
}
t->setattr(coll, obj, "objxattr", bl);
}
-void WorkloadGenerator::do_setattr_collection(ObjectStore::Transaction *t,
- coll_t coll, C_StatState *stat)
+void WorkloadGenerator::do_pgmeta_omap_set(ObjectStore::Transaction *t, spg_t pgid,
+ coll_t coll, C_StatState *stat)
{
if (m_suppress_write_xattr_coll) {
dout(5) << __func__ << " suppressed" << dendl;
if (m_do_stats && (stat != NULL))
stat->written_data += bl.length();
- t->collection_setattr(coll, "collxattr", bl);
+ ghobject_t pgmeta(pgid.make_pgmeta_oid());
+ map<string,bufferlist> values;
+ values["_"].claim(bl);
+ t->omap_setkeys(coll, pgmeta, values);
}
+
void WorkloadGenerator::do_append_log(ObjectStore::Transaction *t,
coll_entry_t *entry, C_StatState *stat)
{
do_write_object(t, entry->m_coll, *obj, stat_state);
do_setattr_object(t, entry->m_coll, *obj, stat_state);
- do_setattr_collection(t, entry->m_coll, stat_state);
+ do_pgmeta_omap_set(t, entry->m_pgid, entry->m_coll, stat_state);
do_append_log(t, entry, stat_state);
c = new C_OnReadable(this, t);
coll_t coll, hobject_t obj, C_StatState *stat);
void do_setattr_object(ObjectStore::Transaction *t,
coll_t coll, hobject_t obj, C_StatState *stat);
- void do_setattr_collection(ObjectStore::Transaction *t, coll_t coll,
+ void do_pgmeta_omap_set(ObjectStore::Transaction *t, spg_t pgid, coll_t coll,
C_StatState *stat);
void do_append_log(ObjectStore::Transaction *t, coll_entry_t *entry,
C_StatState *stat);