{"push_id":667955840,"size":1,"distinct_size":1,"ref":"refs/heads/driver-rados","head":"193f2e6ac59506e23812e6bb58b778261eeeb604","before":"71d1719af1a4f8e28f7ac3277454af7950339917","commits":[{"sha":"193f2e6ac59506e23812e6bb58b778261eeeb604","author":{"email":"774456b991ef9bb1dc623bb5ac1c6eb77676d2ce@ovh.net","name":"Vincent Giersch"},"message":"Storage Driver: Ceph Object Storage (RADOS)\n\nThis driver implements the storagedriver.StorageDriver interface and\nuses Ceph Object Storage as storage backend.\n\nSince RADOS is an object storage and no hierarchy notion, the\nfollowing convention is used to keep the filesystem notions stored in\nthis backend:\n\n* All the objects data are stored with opaque UUID names prefixed\n  (e.g. \"blob:d3d232ff-ab3a-4046-9ab7-930228d4c164).\n* All the hierarchy information are stored in rados omaps, where the\n  omap object identifier is the virtual directory name, the keys in\n  a specific are the relative filenames and the values the blob\n  object identifier (or empty value for a sub directory).\n\n  e.g. For the following hierarchy:\n\n     /directory1\n     /directory1/object1\n     /directory1/object2\n     /directory1/directory2/object3\n\n  The omap \"/directory1\" will contains the following key / values:\n    - \"object1\" \"blob:d3d232ff-ab3a-4046-9ab7-930228d4c164\"\n    - \"object2\" \"blob:db2e359d-4af0-4bfb-ba1d-d2fd029866a0\"\n    - \"directory2\" \"\"\n\n  The omap \"/directory1/directory2\" will contains:\n    - \"object3\" \"blob:9ae2371c-81fc-4945-80ac-8bf7f566a5d9\"\n\n* The MOVE is implemented by changing the reference to a specific\n  blob in its parent virtual directory omap.\n\nThis driver stripes rados objects to a fixed size (e.g. 4M). The idea\nis to keep small objects (as done by RBD on the top of RADOS) that\nwill be easily synchronized accross OSDs. The information of the\noriginal object (i.e total size of the chunks) is stored as a Xattr\nin the first chunk object.\n\nSigned-off-by: Vincent Giersch <vincent.giersch@ovh.net>","distinct":true,"url":"https://api.github.com/repos/gierschv/distribution/commits/193f2e6ac59506e23812e6bb58b778261eeeb604"}]}