Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
rgw structures rework #11485
Create new types:
Don't store placement info in rgw_bucket (if possible, still keeping explicit placement for backward compatibility when dealing with older data). head object will always reside in the bucket's default placement target pool, (from the zone config), tail depends on what's in the manifest.
Rework rgw_obj; rename some of the fields, don't refer to oid as object anymore and don't auto generate the oid. Don't encode the oid, but the name, ns, and instance. Split rgw_obj_key and rgw_obj_index_key, and rgw_obj handles both as needed.
Pools can now be defined with a namespace ([:ns]), and consolidate a few of the default pools.
looking really good!
the new structure names make it much clearer what each piece is for and how it's used
the namespace changes on top are really elegant, using escape characters for the parsing, and having a single
rgw_init_ioctx() to handle the pool creation and the call to
your commit messages made it a lot easier to review (thanks!), and the unit tests are a big help for validation
Upgrade test is green here: