}
std::vector<ObjectRef> ovec(i.objects.size());
+ uint64_t prev_pool_id = META_POOL_ID;
for (int pos = 0; i.have_op(); ++pos) {
Transaction::Op *op = i.decode_op();
// collection operations
CollectionRef &c = cvec[op->cid];
+ // validate all collections are in the same pool
+ spg_t pgid;
+ if (!!c && c->cid.is_pg(&pgid)) {
+ ceph_assert(prev_pool_id == pgid.pool() || prev_pool_id == META_POOL_ID);
+ prev_pool_id = pgid.pool();
+ }
+
switch (op->op) {
case Transaction::OP_RMCOLL: {
const coll_t &cid = i.get_cid(op->cid);
#include <algorithm>
#include <boost/smart_ptr/intrusive_ptr.hpp>
+#define META_POOL_ID ((uint64_t)-1ull)
+
/**
* ObjectStoreImitator will simulate how BlueStore does IO (as of the time
* the simulator is written) and assess the defragmentation levels of different