if (dst->mount() < 0) return 1;
// objects
- hash_map<pobject_t, coll_t> did_object;
+ hash_map<sobject_t, coll_t> did_object;
// collections
vector<coll_t> collections;
dst->apply_transaction(t);
}
- vector<pobject_t> o;
+ vector<sobject_t> o;
src->collection_list(*p, o);
int numo = o.size();
int j = 1;
- for (vector<pobject_t>::iterator q = o.begin(); q != o.end(); q++) {
+ for (vector<sobject_t>::iterator q = o.begin(); q != o.end(); q++) {
ObjectStore::Transaction t;
if (did_object.count(*q))
t.collection_add(*p, did_object[*q], *q);
// ---------------------------
-typedef sobject_t pobject_t;
-
struct coll_t {
__u64 pgid;
snapid_t snap;
// subop
pg_t pgid;
- pobject_t poid;
+ sobject_t poid;
__u8 acks_wanted;
map<nstring,bufferptr> attrset;
interval_set<__u64> data_subset;
- map<pobject_t, interval_set<__u64> > clone_subsets;
+ map<sobject_t, interval_set<__u64> > clone_subsets;
virtual void decode_payload() {
bufferlist::iterator p = payload.begin();
}
- MOSDSubOp(osd_reqid_t r, pg_t p, pobject_t po, bool noop_, int aw,
+ MOSDSubOp(osd_reqid_t r, pg_t p, sobject_t po, bool noop_, int aw,
epoch_t mape, tid_t rtid, eversion_t v) :
Message(MSG_OSD_SUBOP),
map_epoch(mape),
osd_reqid_t reqid;
pg_t pgid;
tid_t rep_tid;
- pobject_t poid;
+ sobject_t poid;
vector<ceph_osd_op> ops;
pg_t get_pg() { return pgid; }
tid_t get_rep_tid() { return rep_tid; }
- pobject_t get_poid() { return poid; }
+ sobject_t get_poid() { return poid; }
int get_ack_type() { return ack_type; }
bool is_ondisk() { return ack_type & CEPH_OSD_FLAG_ONDISK; }
private:
Mutex faker_lock;
ObjectStore *store;
- hash_map<coll_t, set<pobject_t> > fakecollections;
+ hash_map<coll_t, set<sobject_t> > fakecollections;
public:
FakeCollections(ObjectStore *s) : faker_lock("FakeCollections::faker_lock"), store(s) {}
int list_collections(vector<coll_t>& ls) {
faker_lock.Lock();
int r = 0;
- for (hash_map< coll_t, set<pobject_t> >::iterator p = fakecollections.begin();
+ for (hash_map< coll_t, set<sobject_t> >::iterator p = fakecollections.begin();
p != fakecollections.end();
p++) {
r++;
return r;
}
- int collection_add(coll_t c, pobject_t o,
+ int collection_add(coll_t c, sobject_t o,
Context *onsafe=0) {
faker_lock.Lock();
fakecollections[c].insert(o);
return 0;
}
- int collection_remove(coll_t c, pobject_t o,
+ int collection_remove(coll_t c, sobject_t o,
Context *onsafe=0) {
faker_lock.Lock();
fakecollections[c].erase(o);
return fakecollections[c].empty();
}
- int collection_list(coll_t c, vector<pobject_t>& o) {
+ int collection_list(coll_t c, vector<sobject_t>& o) {
faker_lock.Lock();
int r = 0;
- for (set<pobject_t>::iterator p = fakecollections[c].begin();
+ for (set<sobject_t>::iterator p = fakecollections[c].begin();
p != fakecollections[c].end();
p++) {
o.push_back(*p);
Mutex faker_lock;
ObjectStore *store;
- hash_map<pobject_t, FakeAttrSet> fakeoattrs;
+ hash_map<sobject_t, FakeAttrSet> fakeoattrs;
hash_map<coll_t, FakeAttrSet> fakecattrs;
public:
FakeAttrs(ObjectStore *s) : faker_lock("FakeAttrs::faker_lock"), store(s) {}
- int setattr(coll_t cid, pobject_t oid, const char *name,
+ int setattr(coll_t cid, sobject_t oid, const char *name,
const void *value, size_t size,
Context *onsafe=0) {
faker_lock.Lock();
faker_lock.Unlock();
return r;
}
- int setattrs(coll_t cid, pobject_t oid, map<nstring,bufferptr>& aset) {
+ int setattrs(coll_t cid, sobject_t oid, map<nstring,bufferptr>& aset) {
faker_lock.Lock();
int r = fakeoattrs[oid].setattrs(aset);
faker_lock.Unlock();
return r;
}
- int getattr(coll_t cid, pobject_t oid, const char *name,
+ int getattr(coll_t cid, sobject_t oid, const char *name,
void *value, size_t size) {
faker_lock.Lock();
int r = fakeoattrs[oid].getattr(name, value, size);
faker_lock.Unlock();
return r;
}
- int getattr(coll_t cid, pobject_t oid, const char *name, bufferptr& bp) {
+ int getattr(coll_t cid, sobject_t oid, const char *name, bufferptr& bp) {
faker_lock.Lock();
int r = fakeoattrs[oid].getattr(name, bp);
faker_lock.Unlock();
return r;
}
- int getattrs(coll_t cid, pobject_t oid, map<nstring,bufferptr>& aset) {
+ int getattrs(coll_t cid, sobject_t oid, map<nstring,bufferptr>& aset) {
faker_lock.Lock();
int r = fakeoattrs[oid].getattrs(aset);
faker_lock.Unlock();
return r;
}
- int rmattr(coll_t cid, pobject_t oid, const char *name,
+ int rmattr(coll_t cid, sobject_t oid, const char *name,
Context *onsafe=0) {
faker_lock.Lock();
int r = fakeoattrs[oid].rmattr(name);
return r;
}
- int listattr(coll_t cid, pobject_t oid, char *attrs, size_t size) {
+ int listattr(coll_t cid, sobject_t oid, char *attrs, size_t size) {
faker_lock.Lock();
int r = fakeoattrs[oid].listattr(attrs,size);
faker_lock.Unlock();
/*
- * sorry, these are sentitive to the pobject_t and coll_t typing.
+ * sorry, these are sentitive to the sobject_t and coll_t typing.
*/
// 11111111112222222222333333333344444444445555555555
// 012345678901234567890123456789012345678901234567890123456789
// yyyyyyyyyyyyyyyy.zzzzzzzz.a_s
-void FileStore::append_oname(const pobject_t &oid, char *s)
+void FileStore::append_oname(const sobject_t &oid, char *s)
{
//assert(sizeof(oid) == 28);
char *t = s + strlen(s);
//parse_object(t+1);
}
-bool FileStore::parse_object(char *s, pobject_t& o)
+bool FileStore::parse_object(char *s, sobject_t& o)
{
char *bar = s + strlen(s) - 1;
while (*bar != '_' &&
#endif
}
-void FileStore::get_coname(coll_t cid, const pobject_t& oid, char *s)
+void FileStore::get_coname(coll_t cid, const sobject_t& oid, char *s)
{
get_cdir(cid, s);
append_oname(oid, s);
case Transaction::OP_CLONE:
{
- const pobject_t& oid = t.get_oid();
- const pobject_t& noid = t.get_oid();
+ const sobject_t& oid = t.get_oid();
+ const sobject_t& noid = t.get_oid();
_clone(t.get_cid(), oid, noid);
}
break;
case Transaction::OP_CLONERANGE:
{
- const pobject_t& oid = t.get_oid();
- const pobject_t& noid = t.get_oid();
+ const sobject_t& oid = t.get_oid();
+ const sobject_t& noid = t.get_oid();
__u64 off = t.get_length();
__u64 len = t.get_length();
_clone_range(t.get_cid(), oid, noid, off, len);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
__u64 offset, len;
t.get_length(offset);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
__u64 offset, len;
t.get_length(offset);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
__u64 len;
t.get_length(len);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
//remove(cid, oid, 0);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
const char *attrname;
t.get_attrname(attrname);
if (op == Transaction::OP_SETATTRS) {
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
getattrs(cid, oid, oldattrs);
get_coname(cid, oid, fn);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
const char *attrname;
t.get_attrname(attrname);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
- pobject_t noid;
+ sobject_t noid;
t.get_oid(noid);
clone(cid, oid, noid);
coll_t cid, ocid;
t.get_cid(cid);
t.get_cid(ocid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
collection_add(cid, ocid, oid, 0);
assert(0);
{
coll_t cid;
t.get_cid(cid);
- pobject_t oid;
+ sobject_t oid;
t.get_oid(oid);
collection_remove(cid, oid, 0);
assert(0);
// --------------------
// objects
-bool FileStore::exists(coll_t cid, const pobject_t& oid)
+bool FileStore::exists(coll_t cid, const sobject_t& oid)
{
struct stat st;
if (stat(cid, oid, &st) == 0)
return false;
}
-int FileStore::stat(coll_t cid, const pobject_t& oid, struct stat *st)
+int FileStore::stat(coll_t cid, const sobject_t& oid, struct stat *st)
{
char fn[PATH_MAX];
get_coname(cid, oid, fn);
return r < 0 ? -errno:r;
}
-int FileStore::read(coll_t cid, const pobject_t& oid,
+int FileStore::read(coll_t cid, const sobject_t& oid,
__u64 offset, size_t len,
bufferlist& bl) {
char fn[PATH_MAX];
-int FileStore::_remove(coll_t cid, const pobject_t& oid)
+int FileStore::_remove(coll_t cid, const sobject_t& oid)
{
char fn[PATH_MAX];
get_coname(cid, oid, fn);
return r;
}
-int FileStore::_truncate(coll_t cid, const pobject_t& oid, __u64 size)
+int FileStore::_truncate(coll_t cid, const sobject_t& oid, __u64 size)
{
char fn[PATH_MAX];
get_coname(cid, oid, fn);
}
-int FileStore::_touch(coll_t cid, const pobject_t& oid)
+int FileStore::_touch(coll_t cid, const sobject_t& oid)
{
char fn[PATH_MAX];
get_coname(cid, oid, fn);
return r;
}
-int FileStore::_write(coll_t cid, const pobject_t& oid,
+int FileStore::_write(coll_t cid, const sobject_t& oid,
__u64 offset, size_t len,
const bufferlist& bl)
{
return r;
}
-int FileStore::_zero(coll_t cid, const pobject_t& oid, __u64 offset, size_t len)
+int FileStore::_zero(coll_t cid, const sobject_t& oid, __u64 offset, size_t len)
{
// write zeros.. yuck!
bufferptr bp(len);
return _write(cid, oid, offset, len, bl);
}
-int FileStore::_clone(coll_t cid, const pobject_t& oldoid, const pobject_t& newoid)
+int FileStore::_clone(coll_t cid, const sobject_t& oldoid, const sobject_t& newoid)
{
char ofn[PATH_MAX], nfn[PATH_MAX];
get_coname(cid, oldoid, ofn);
return r;
}
-int FileStore::_clone_range(coll_t cid, const pobject_t& oldoid, const pobject_t& newoid, __u64 off, __u64 len)
+int FileStore::_clone_range(coll_t cid, const sobject_t& oldoid, const sobject_t& newoid, __u64 off, __u64 len)
{
char ofn[PATH_MAX], nfn[PATH_MAX];
get_coname(cid, oldoid, ofn);
// objects
-int FileStore::getattr(coll_t cid, const pobject_t& oid, const char *name,
+int FileStore::getattr(coll_t cid, const sobject_t& oid, const char *name,
void *value, size_t size)
{
if (fake_attrs) return attrs.getattr(cid, oid, name, value, size);
return r;
}
-int FileStore::getattr(coll_t cid, const pobject_t& oid, const char *name, bufferptr &bp)
+int FileStore::getattr(coll_t cid, const sobject_t& oid, const char *name, bufferptr &bp)
{
if (fake_attrs) return attrs.getattr(cid, oid, name, bp);
return r;
}
-int FileStore::getattrs(coll_t cid, const pobject_t& oid, map<nstring,bufferptr>& aset)
+int FileStore::getattrs(coll_t cid, const sobject_t& oid, map<nstring,bufferptr>& aset)
{
if (fake_attrs) return attrs.getattrs(cid, oid, aset);
-int FileStore::_setattr(coll_t cid, const pobject_t& oid, const char *name,
+int FileStore::_setattr(coll_t cid, const sobject_t& oid, const char *name,
const void *value, size_t size)
{
if (fake_attrs) return attrs.setattr(cid, oid, name, value, size);
return r;
}
-int FileStore::_setattrs(coll_t cid, const pobject_t& oid, map<nstring,bufferptr>& aset)
+int FileStore::_setattrs(coll_t cid, const sobject_t& oid, map<nstring,bufferptr>& aset)
{
if (fake_attrs) return attrs.setattrs(cid, oid, aset);
}
-int FileStore::_rmattr(coll_t cid, const pobject_t& oid, const char *name)
+int FileStore::_rmattr(coll_t cid, const sobject_t& oid, const char *name)
{
if (fake_attrs) return attrs.rmattr(cid, oid, name);
// parse
if (de->d_name[0] == '.') continue;
//cout << " got object " << de->d_name << std::endl;
- pobject_t o;
+ sobject_t o;
if (parse_object(de->d_name, o)) {
empty = false;
break;
return empty;
}
-int FileStore::collection_list_partial(coll_t c, vector<pobject_t>& ls, int max_count, collection_list_handle_t *handle)
+int FileStore::collection_list_partial(coll_t c, vector<sobject_t>& ls, int max_count, collection_list_handle_t *handle)
{
if (fake_collections) return collections.collection_list(c, ls);
return -errno;
// first, build (ino, object) list
- vector< pair<ino_t,pobject_t> > inolist;
+ vector< pair<ino_t,sobject_t> > inolist;
struct dirent *de;
if (handle)
// parse
if (de->d_name[0] == '.') continue;
//cout << " got object " << de->d_name << std::endl;
- pobject_t o;
+ sobject_t o;
if (parse_object(de->d_name, o)) {
- inolist.push_back(pair<ino_t,pobject_t>(de->d_ino, o));
+ inolist.push_back(pair<ino_t,sobject_t>(de->d_ino, o));
ls.push_back(o);
}
}
// build final list
ls.resize(inolist.size());
int i = 0;
- for (vector< pair<ino_t,pobject_t> >::iterator p = inolist.begin(); p != inolist.end(); p++)
+ for (vector< pair<ino_t,sobject_t> >::iterator p = inolist.begin(); p != inolist.end(); p++)
ls[i++] = p->second;
dout(10) << "collection_list " << fn << " = 0 (" << ls.size() << " objects)" << dendl;
}
-int FileStore::collection_list(coll_t c, vector<pobject_t>& ls)
+int FileStore::collection_list(coll_t c, vector<sobject_t>& ls)
{
if (fake_collections) return collections.collection_list(c, ls);
return -errno;
// first, build (ino, object) list
- vector< pair<ino_t,pobject_t> > inolist;
+ vector< pair<ino_t,sobject_t> > inolist;
struct dirent *de;
while ((de = ::readdir(dir)) != 0) {
// parse
if (de->d_name[0] == '.') continue;
//cout << " got object " << de->d_name << std::endl;
- pobject_t o;
+ sobject_t o;
if (parse_object(de->d_name, o)) {
- inolist.push_back(pair<ino_t,pobject_t>(de->d_ino, o));
+ inolist.push_back(pair<ino_t,sobject_t>(de->d_ino, o));
ls.push_back(o);
}
}
// build final list
ls.resize(inolist.size());
int i = 0;
- for (vector< pair<ino_t,pobject_t> >::iterator p = inolist.begin(); p != inolist.end(); p++)
+ for (vector< pair<ino_t,sobject_t> >::iterator p = inolist.begin(); p != inolist.end(); p++)
ls[i++] = p->second;
dout(10) << "collection_list " << fn << " = 0 (" << ls.size() << " objects)" << dendl;
}
-int FileStore::_collection_add(coll_t c, coll_t cid, const pobject_t& o)
+int FileStore::_collection_add(coll_t c, coll_t cid, const sobject_t& o)
{
if (fake_collections) return collections.collection_add(c, o);
return r;
}
-int FileStore::_collection_remove(coll_t c, const pobject_t& o)
+int FileStore::_collection_remove(coll_t c, const sobject_t& o)
{
if (fake_collections) return collections.collection_remove(c, o);
bool fake_collections;
// helper fns
- void append_oname(const pobject_t &oid, char *s);
- //void get_oname(pobject_t oid, char *s);
+ void append_oname(const sobject_t &oid, char *s);
+ //void get_oname(sobject_t oid, char *s);
void get_cdir(coll_t cid, char *s);
- void get_coname(coll_t cid, const pobject_t& oid, char *s);
- bool parse_object(char *s, pobject_t& o);
+ void get_coname(coll_t cid, const sobject_t& oid, char *s);
+ bool parse_object(char *s, sobject_t& o);
bool parse_coll(char *s, coll_t& c);
int lock_fsid();
// ------------------
// objects
- int pick_object_revision_lt(pobject_t& oid) {
+ int pick_object_revision_lt(sobject_t& oid) {
return 0;
}
- bool exists(coll_t cid, const pobject_t& oid);
- int stat(coll_t cid, const pobject_t& oid, struct stat *st);
- int read(coll_t cid, const pobject_t& oid, __u64 offset, size_t len, bufferlist& bl);
-
- int _touch(coll_t cid, const pobject_t& oid);
- int _write(coll_t cid, const pobject_t& oid, __u64 offset, size_t len, const bufferlist& bl);
- int _zero(coll_t cid, const pobject_t& oid, __u64 offset, size_t len);
- int _truncate(coll_t cid, const pobject_t& oid, __u64 size);
- int _clone(coll_t cid, const pobject_t& oldoid, const pobject_t& newoid);
- int _clone_range(coll_t cid, const pobject_t& oldoid, const pobject_t& newoid, __u64 off, __u64 len);
+ bool exists(coll_t cid, const sobject_t& oid);
+ int stat(coll_t cid, const sobject_t& oid, struct stat *st);
+ int read(coll_t cid, const sobject_t& oid, __u64 offset, size_t len, bufferlist& bl);
+
+ int _touch(coll_t cid, const sobject_t& oid);
+ int _write(coll_t cid, const sobject_t& oid, __u64 offset, size_t len, const bufferlist& bl);
+ int _zero(coll_t cid, const sobject_t& oid, __u64 offset, size_t len);
+ int _truncate(coll_t cid, const sobject_t& oid, __u64 size);
+ int _clone(coll_t cid, const sobject_t& oldoid, const sobject_t& newoid);
+ int _clone_range(coll_t cid, const sobject_t& oldoid, const sobject_t& newoid, __u64 off, __u64 len);
int _do_clone_range(int from, int to, __u64 off, __u64 len);
- int _remove(coll_t cid, const pobject_t& oid);
+ int _remove(coll_t cid, const sobject_t& oid);
void _start_sync();
void sync(Context *onsafe);
// attrs
- int getattr(coll_t cid, const pobject_t& oid, const char *name, void *value, size_t size);
- int getattr(coll_t cid, const pobject_t& oid, const char *name, bufferptr &bp);
- int getattrs(coll_t cid, const pobject_t& oid, map<nstring,bufferptr>& aset);
+ int getattr(coll_t cid, const sobject_t& oid, const char *name, void *value, size_t size);
+ int getattr(coll_t cid, const sobject_t& oid, const char *name, bufferptr &bp);
+ int getattrs(coll_t cid, const sobject_t& oid, map<nstring,bufferptr>& aset);
int _getattr(const char *fn, const char *name, bufferptr& bp);
int _getattrs(const char *fn, map<nstring,bufferptr>& aset);
- int _setattr(coll_t cid, const pobject_t& oid, const char *name, const void *value, size_t size);
- int _setattrs(coll_t cid, const pobject_t& oid, map<nstring,bufferptr>& aset);
- int _rmattr(coll_t cid, const pobject_t& oid, const char *name);
+ int _setattr(coll_t cid, const sobject_t& oid, const char *name, const void *value, size_t size);
+ int _setattrs(coll_t cid, const sobject_t& oid, map<nstring,bufferptr>& aset);
+ int _rmattr(coll_t cid, const sobject_t& oid, const char *name);
int collection_getattr(coll_t c, const char *name, void *value, size_t size);
int collection_getattr(coll_t c, const char *name, bufferlist& bl);
int collection_stat(coll_t c, struct stat *st);
bool collection_exists(coll_t c);
bool collection_empty(coll_t c);
- int collection_list_partial(coll_t c, vector<pobject_t>& o, int count, collection_list_handle_t *handle);
- int collection_list(coll_t c, vector<pobject_t>& o);
+ int collection_list_partial(coll_t c, vector<sobject_t>& o, int count, collection_list_handle_t *handle);
+ int collection_list(coll_t c, vector<sobject_t>& o);
int _create_collection(coll_t c);
int _destroy_collection(coll_t c);
- int _collection_add(coll_t c, coll_t ocid, const pobject_t& o);
- int _collection_remove(coll_t c, const pobject_t& o);
+ int _collection_add(coll_t c, coll_t ocid, const sobject_t& o);
+ int _collection_remove(coll_t c, const sobject_t& o);
- void trim_from_cache(coll_t cid, const pobject_t& oid, __u64 offset, size_t len) {}
- int is_cached(coll_t cid, const pobject_t& oid, __u64 offset, size_t len) { return -1; }
+ void trim_from_cache(coll_t cid, const sobject_t& oid, __u64 offset, size_t len) {}
+ int is_cached(coll_t cid, const sobject_t& oid, __u64 offset, size_t len) { return -1; }
};
#endif
*/
vector<int8_t> ops;
vector<bufferlist> bls;
- vector<pobject_t> oids;
+ vector<sobject_t> oids;
vector<coll_t> cids;
vector<int64_t> lengths;
bufferlist &get_bl() {
return bls[blp++];
}
- pobject_t get_oid() {
+ sobject_t get_oid() {
return oids[oidp++];
}
coll_t get_cid() {
int op = OP_STARTSYNC;
ops.push_back(op);
}
- void touch(coll_t cid, const pobject_t& oid) {
+ void touch(coll_t cid, const sobject_t& oid) {
int op = OP_TOUCH;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen += 3;
}
- void write(coll_t cid, const pobject_t& oid, __u64 off, size_t len, const bufferlist& bl) {
+ void write(coll_t cid, const sobject_t& oid, __u64 off, size_t len, const bufferlist& bl) {
int op = OP_WRITE;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen += 3 + bl.buffers().size();
}
- void zero(coll_t cid, const pobject_t& oid, __u64 off, size_t len) {
+ void zero(coll_t cid, const sobject_t& oid, __u64 off, size_t len) {
int op = OP_ZERO;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen += 3 + 1;
}
- void trim_from_cache(coll_t cid, const pobject_t& oid, __u64 off, size_t len) {
+ void trim_from_cache(coll_t cid, const sobject_t& oid, __u64 off, size_t len) {
int op = OP_TRIMCACHE;
ops.push_back(op);
cids.push_back(cid);
lengths.push_back(len);
//len++;
}
- void truncate(coll_t cid, const pobject_t& oid, __u64 off) {
+ void truncate(coll_t cid, const sobject_t& oid, __u64 off) {
int op = OP_TRUNCATE;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen++;
}
- void remove(coll_t cid, const pobject_t& oid) {
+ void remove(coll_t cid, const sobject_t& oid) {
int op = OP_REMOVE;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen++;
}
- void setattr(coll_t cid, const pobject_t& oid, const char* name, const void* val, int len) {
+ void setattr(coll_t cid, const sobject_t& oid, const char* name, const void* val, int len) {
bufferlist bl;
bl.append((char*)val, len);
setattr(cid, oid, name, bl);
}
- void setattr(coll_t cid, const pobject_t& oid, nstring& s, bufferlist& val) {
+ void setattr(coll_t cid, const sobject_t& oid, nstring& s, bufferlist& val) {
attrnames2.push_back(nstring());
attrnames2.back().swap(s);
setattr(cid, oid, attrnames2.back().c_str(), val);
}
- void setattr(coll_t cid, const pobject_t& oid, const char* name, bufferlist& val) {
+ void setattr(coll_t cid, const sobject_t& oid, const char* name, bufferlist& val) {
int op = OP_SETATTR;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen++;
}
- void setattrs(coll_t cid, const pobject_t& oid, map<nstring,bufferptr>& attrset) {
+ void setattrs(coll_t cid, const sobject_t& oid, map<nstring,bufferptr>& attrset) {
map<nstring,bufferptr> empty;
int op = OP_SETATTRS;
ops.push_back(op);
//len++;
//blen += 5 + attrset.size(); // HACK allowance for removing old attrs
}
- void rmattr(coll_t cid, const pobject_t& oid, nstring& s) {
+ void rmattr(coll_t cid, const sobject_t& oid, nstring& s) {
attrnames2.push_back(nstring());
attrnames2.back().swap(s);
rmattr(cid, oid, attrnames2.back().c_str());
}
- void rmattr(coll_t cid, const pobject_t& oid, const char* name) {
+ void rmattr(coll_t cid, const sobject_t& oid, const char* name) {
int op = OP_RMATTR;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen++;
}
- void clone(coll_t cid, const pobject_t& oid, pobject_t noid) {
+ void clone(coll_t cid, const sobject_t& oid, sobject_t noid) {
int op = OP_CLONE;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen += 5;
}
- void clone_range(coll_t cid, const pobject_t& oid, pobject_t noid, __u64 off, __u64 len) {
+ void clone_range(coll_t cid, const sobject_t& oid, sobject_t noid, __u64 off, __u64 len) {
int op = OP_CLONERANGE;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen++;
}
- void collection_add(coll_t cid, coll_t ocid, const pobject_t& oid) {
+ void collection_add(coll_t cid, coll_t ocid, const sobject_t& oid) {
int op = OP_COLL_ADD;
ops.push_back(op);
cids.push_back(cid);
//len++;
//blen++;
}
- void collection_remove(coll_t cid, const pobject_t& oid) {
+ void collection_remove(coll_t cid, const sobject_t& oid) {
int op = OP_COLL_REMOVE;
ops.push_back(op);
cids.push_back(cid);
virtual int statfs(struct statfs *buf) = 0;
// objects
- virtual bool exists(coll_t cid, const pobject_t& oid) = 0; // useful?
- virtual int stat(coll_t cid, const pobject_t& oid, struct stat *st) = 0; // struct stat?
- virtual int read(coll_t cid, const pobject_t& oid, __u64 offset, size_t len, bufferlist& bl) = 0;
+ virtual bool exists(coll_t cid, const sobject_t& oid) = 0; // useful?
+ virtual int stat(coll_t cid, const sobject_t& oid, struct stat *st) = 0; // struct stat?
+ virtual int read(coll_t cid, const sobject_t& oid, __u64 offset, size_t len, bufferlist& bl) = 0;
/*
- virtual int _remove(coll_t cid, pobject_t oid) = 0;
- virtual int _truncate(coll_t cid, pobject_t oid, __u64 size) = 0;
- virtual int _write(coll_t cid, pobject_t oid, __u64 offset, size_t len, const bufferlist& bl) = 0;
- virtual int _zero(coll_t cid, pobject_t oid, __u64 offset, size_t len) {
+ virtual int _remove(coll_t cid, sobject_t oid) = 0;
+ virtual int _truncate(coll_t cid, sobject_t oid, __u64 size) = 0;
+ virtual int _write(coll_t cid, sobject_t oid, __u64 offset, size_t len, const bufferlist& bl) = 0;
+ virtual int _zero(coll_t cid, sobject_t oid, __u64 offset, size_t len) {
// write zeros.. yuck!
bufferptr bp(len);
bufferlist bl;
}
*/
- virtual void trim_from_cache(coll_t cid, const pobject_t& oid, __u64 offset, size_t len) = 0; //{ }
- virtual int is_cached(coll_t cid, const pobject_t& oid, __u64 offset, size_t len) = 0; //{ return -1; }
+ virtual void trim_from_cache(coll_t cid, const sobject_t& oid, __u64 offset, size_t len) = 0; //{ }
+ virtual int is_cached(coll_t cid, const sobject_t& oid, __u64 offset, size_t len) = 0; //{ return -1; }
- virtual int getattr(coll_t cid, const pobject_t& oid, const char *name, void *value, size_t size) = 0;
- virtual int getattr(coll_t cid, const pobject_t& oid, const char *name, bufferptr& value) = 0;
- int getattr(coll_t cid, const pobject_t& oid, const char *name, bufferlist& value) {
+ virtual int getattr(coll_t cid, const sobject_t& oid, const char *name, void *value, size_t size) = 0;
+ virtual int getattr(coll_t cid, const sobject_t& oid, const char *name, bufferptr& value) = 0;
+ int getattr(coll_t cid, const sobject_t& oid, const char *name, bufferlist& value) {
bufferptr bp;
int r = getattr(cid, oid, name, bp);
if (bp.length())
value.push_back(bp);
return r;
}
- virtual int getattrs(coll_t cid, const pobject_t& oid, map<nstring,bufferptr>& aset) {return 0;};
+ virtual int getattrs(coll_t cid, const sobject_t& oid, map<nstring,bufferptr>& aset) {return 0;};
/*
- virtual int _setattr(coll_t cid, pobject_t oid, const char *name, const void *value, size_t size) = 0;
- virtual int _setattr(coll_t cid, pobject_t oid, const char *name, const bufferptr &bp) {
+ virtual int _setattr(coll_t cid, sobject_t oid, const char *name, const void *value, size_t size) = 0;
+ virtual int _setattr(coll_t cid, sobject_t oid, const char *name, const bufferptr &bp) {
return _setattr(cid, oid, name, bp.c_str(), bp.length());
}
- virtual int _setattrs(coll_t cid, pobject_t oid, map<string,bufferptr>& aset) = 0;
- virtual int _rmattr(coll_t cid, pobject_t oid, const char *name) {return 0;}
- virtual int _clone(coll_t cid, pobject_t oid, pobject_t noid) {
+ virtual int _setattrs(coll_t cid, sobject_t oid, map<string,bufferptr>& aset) = 0;
+ virtual int _rmattr(coll_t cid, sobject_t oid, const char *name) {return 0;}
+ virtual int _clone(coll_t cid, sobject_t oid, sobject_t noid) {
return -1;
}
*/
virtual int collection_getattr(coll_t cid, const char *name, bufferlist& bl) = 0;
virtual int collection_getattrs(coll_t cid, map<nstring,bufferptr> &aset) = 0;
virtual bool collection_empty(coll_t c) = 0;
- virtual int collection_list_partial(coll_t c, vector<pobject_t>& o, int count, collection_list_handle_t *handle) = 0;
- virtual int collection_list(coll_t c, vector<pobject_t>& o) = 0;
+ virtual int collection_list_partial(coll_t c, vector<sobject_t>& o, int count, collection_list_handle_t *handle) = 0;
+ virtual int collection_list(coll_t c, vector<sobject_t>& o) = 0;
/*
virtual int _create_collection(coll_t c) = 0;
virtual int _destroy_collection(coll_t c) = 0;
- virtual int _collection_add(coll_t c, coll_t ocid, pobject_t o) = 0;
- virtual int _collection_remove(coll_t c, pobject_t o) = 0;
+ virtual int _collection_add(coll_t c, coll_t ocid, sobject_t o) = 0;
+ virtual int _collection_remove(coll_t c, sobject_t o) = 0;
virtual int _collection_setattr(coll_t cid, const char *name,
const void *value, size_t size) = 0;
virtual int _collection_rmattr(coll_t cid, const char *name) = 0;
bufferlist sbl;
sbl.substr_of(bl, 0, t);
ObjectStore::Transaction tr;
- pobject_t oid(poid, 0);
+ sobject_t oid(poid, 0);
tr.write(0, oid, off, t, sbl);
store->apply_transaction(tr);
off += t;
generic_dout(2) << "age_empty at " << free << " / " << avail << " / " << pc << " removing " << hex << poid << dec << dendl;
ObjectStore::Transaction t;
- pobject_t oid(poid, 0);
+ sobject_t oid(poid, 0);
t.remove(0, oid);
store->apply_transaction(t);
age_free_oids.push_back(poid);
object_t oid("disk_bw_test");
for (int i=0; i<1000; i++) {
ObjectStore::Transaction t;
- t.write(0, pobject_t(oid, 0), i*bl.length(), bl.length(), bl);
+ t.write(0, sobject_t(oid, 0), i*bl.length(), bl.length(), bl);
store->apply_transaction(t);
}
store->sync();
end -= start;
cout << "measured " << (1000.0 / (double)end) << " mb/sec" << std::endl;
ObjectStore::Transaction tr;
- tr.remove(0, pobject_t(oid, 0));
+ tr.remove(0, sobject_t(oid, 0));
store->apply_transaction(tr);
// set osd weight
backlog_wq.dequeue(pg);
// remove from store
- vector<pobject_t> olist;
+ vector<sobject_t> olist;
ObjectStore::Transaction t;
{
for (set<snapid_t>::iterator p = pg->snap_collections.begin();
p != pg->snap_collections.end();
p++) {
- vector<pobject_t> olist;
+ vector<sobject_t> olist;
store->collection_list(pgid.to_snap_coll(*p), olist);
dout(10) << "_remove_unlock_pg " << pgid << " snap " << *p << " " << olist.size() << " objects" << dendl;
- for (vector<pobject_t>::iterator q = olist.begin();
+ for (vector<sobject_t>::iterator q = olist.begin();
q != olist.end();
q++)
t.remove(pgid.to_snap_coll(*p), *q);
// main collection
store->collection_list(pgid.to_coll(), olist);
dout(10) << "_remove_unlock_pg " << pgid << " " << olist.size() << " objects" << dendl;
- for (vector<pobject_t>::iterator p = olist.begin();
+ for (vector<sobject_t>::iterator p = olist.begin();
p != olist.end();
p++)
t.remove(pgid.to_coll(), *p);
for (map<epoch_t,bufferlist>::iterator p = m->maps.begin();
p != m->maps.end();
p++) {
- pobject_t poid = get_osdmap_pobject_name(p->first);
+ sobject_t poid = get_osdmap_pobject_name(p->first);
if (store->exists(0, poid)) {
dout(10) << "handle_osd_map already had full map epoch " << p->first << dendl;
logger->inc(l_osd_mapfdup);
for (map<epoch_t,bufferlist>::iterator p = m->incremental_maps.begin();
p != m->incremental_maps.end();
p++) {
- pobject_t poid = get_inc_osdmap_pobject_name(p->first);
+ sobject_t poid = get_inc_osdmap_pobject_name(p->first);
if (store->exists(0, poid)) {
dout(10) << "handle_osd_map already had incremental map epoch " << p->first << dendl;
logger->inc(l_osd_mapidup);
dout(10) << "split_pg " << *parent << dendl;
pg_t parentid = parent->info.pgid;
- vector<pobject_t> olist;
+ vector<sobject_t> olist;
store->collection_list(parent->info.pgid.to_coll(), olist);
- for (vector<pobject_t>::iterator p = olist.begin(); p != olist.end(); p++) {
- pobject_t poid = *p;
+ for (vector<sobject_t>::iterator p = olist.begin(); p != olist.end(); p++) {
+ sobject_t poid = *p;
ceph_object_layout l = osdmap->make_object_layout(poid.oid, parentid.pool(), parentid.preferred());
pg_t pgid = osdmap->raw_pg_to_pg(pg_t(le64_to_cpu(l.ol_pgid)));
if (pgid != parentid) {
ClassHandler *class_handler;
int get_nodeid() { return whoami; }
- static pobject_t get_osdmap_pobject_name(epoch_t epoch) {
+ static sobject_t get_osdmap_pobject_name(epoch_t epoch) {
char foo[20];
sprintf(foo, "osdmap.%d", epoch);
- return pobject_t(object_t(foo), 0);
+ return sobject_t(object_t(foo), 0);
}
- static pobject_t get_inc_osdmap_pobject_name(epoch_t epoch) {
+ static sobject_t get_inc_osdmap_pobject_name(epoch_t epoch) {
char foo[20];
sprintf(foo, "inc_osdmap.%d", epoch);
- return pobject_t(object_t(foo), 0);
+ return sobject_t(object_t(foo), 0);
}
unlock();
- vector<pobject_t> olist;
+ vector<sobject_t> olist;
osd->store->collection_list(info.pgid.to_coll(), olist);
- for (vector<pobject_t>::iterator it = olist.begin();
+ for (vector<sobject_t>::iterator it = olist.begin();
it != olist.end();
it++) {
- pobject_t poid = *it;
+ sobject_t poid = *it;
Log::Entry e;
e.soid = poid;
coll_t c = info.pgid.to_coll();
// objects
- vector<pobject_t> ls;
+ vector<sobject_t> ls;
osd->store->collection_list(c, ls);
// sort
dout(10) << "sorting " << ls.size() << " objects" << dendl;
- vector< pair<pobject_t,int> > tab(ls.size());
- vector< pair<pobject_t,int> >::iterator q = tab.begin();
+ vector< pair<sobject_t,int> > tab(ls.size());
+ vector< pair<sobject_t,int> >::iterator q = tab.begin();
int i = 0;
- for (vector<pobject_t>::iterator p = ls.begin();
+ for (vector<sobject_t>::iterator p = ls.begin();
p != ls.end();
p++, i++, q++) {
q->first = *p;
// tab is now sorted, with ->second indicating object's original position
vector<int> pos(ls.size());
i = 0;
- for (vector< pair<pobject_t,int> >::iterator p = tab.begin();
+ for (vector< pair<sobject_t,int> >::iterator p = tab.begin();
p != tab.end();
p++, i++)
pos[p->second] = i;
dout(10) << " scanning " << ls.size() << " objects" << dendl;
map.objects.resize(ls.size());
i = 0;
- for (vector<pobject_t>::iterator p = ls.begin();
+ for (vector<sobject_t>::iterator p = ls.begin();
p != ls.end();
p++, i++) {
- pobject_t poid = *p;
+ sobject_t poid = *p;
ScrubMap::object& o = map.objects[pos[i]];
o.poid = *p;
dout(10) << "scrub requesting scrubmap from osd" << acting[i] << dendl;
vector<ceph_osd_op> scrub(1);
scrub[0].op = CEPH_OSD_OP_SCRUB;
- pobject_t poid;
+ sobject_t poid;
eversion_t v;
osd_reqid_t reqid;
MOSDSubOp *subop = new MOSDSubOp(reqid, info.pgid, poid, false, 0,
operator uint64_t() const { return u.pg64; }
- pobject_t to_log_pobject() const {
+ sobject_t to_log_pobject() const {
char foo[20];
sprintf(foo, "pg_log_%llx", (long long unsigned)u.pg64);
- return pobject_t(object_t(foo), CEPH_NOSNAP);
+ return sobject_t(object_t(foo), CEPH_NOSNAP);
}
coll_t to_coll() const {
*/
struct ScrubMap {
struct object {
- pobject_t poid;
+ sobject_t poid;
__u64 size;
map<nstring,bufferptr> attrs;
//cout << "stop at " << end << std::endl;
cout << "# offset\tack\tcommit" << std::endl;
while (now < end) {
- pobject_t poid(object_t("streamtest"), 0);
+ sobject_t poid(object_t("streamtest"), 0);
utime_t start = now;
set_start(pos, now);
ObjectStore::Transaction t;