With the new pools configuration, now we auto create the
pools when needed (through bucket creation). Also, make
sure only to configure default placement in zone structure,
if old config hasn't been done yet.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
We'd like to have bucket entry point and instance info at the same
log shard, so that we can process them in order.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Use of rgw_bucket when referring to the bucket instance,
use bucket name when referring to the bucket entry point.
Also, remove bucket input param where not needed (internally
was using the bucket structure from the bucket info).
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
There are a few different cases for setting the object version.
Either we need to create a new version, or we need to set the
version provided (one metadata put). We also need to make sure
that we log the correct previous version of the object. This
commit fixes a few cases.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
We now keep the owner at the bucket entry point. Also, reading
bucket info at RGWCreateBucket::execute(), because previous changes
has made it so that we didn't have the required bucket info
initialized there.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Added rgwx-bucket-instance request param that selects the actual bucket
instance to use for this request.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Create utility functions for reading writing bucket entry
point and bucket instance. Add a separate meta handler for
bucket instance.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
policy reading used to have exact same logic for both buckets
and objects, however, we now need to read bucket attributes
through get_bucket_info().
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Bucket info now resides in an instance specific object. The
old bucket info object now contains a pointer to the new
instance.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
Since we tied the atomic put handler to libcurl output
data, which uses much smaller chunks, we need to buffer
data, otherwise we'd end up with a huge amount of small
writes.
Signed-off-by: Yehuda Sadeh <yehuda@inktank.com>
We introduce an implementation class RGWReplicaLogger, and two user
classes RGWReplicaObjectLogger (for the data/metadata logs) and
RGWReplicaBucketLogger (for the bucket logs).
Signed-off-by: Greg Farnum <greg@inktank.com>
This class can be applied to any object, and will keep track of
the bounds, matching times, and matching sets of in-progress items.
We're about to add a cls_replica_log_client that will provide a friendly
user interface and provide more documentation.
Signed-off-by: Greg Farnum <greg@inktank.com>
1. zone-id inclusion in lock/unlock for mdlog and datalog
2. renewal of lock if the locker request lock again
3. modified lock_id param to locker-id
Signed-off-by: Babu Shanmugam <anbu@enovance.com>
Conflicts:
src/rgw/rgw_rest_log.cc