-
Notifications
You must be signed in to change notification settings - Fork 244
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support transitions in OOB #5728
Conversation
Hello francoisferrand,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Waiting for approvalThe following approvals are needed before I can proceed with the merge:
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
✅ All tests successful. No failed tests found. Additional details and impacted files
... and 6 files with indirect coverage changes @@ Coverage Diff @@
## development/9.0 #5728 +/- ##
===================================================
+ Coverage 64.46% 64.88% +0.41%
===================================================
Files 185 185
Lines 11640 11663 +23
===================================================
+ Hits 7504 7567 +63
+ Misses 4136 4096 -40
Flags with carried forward coverage won't be shown. Click here to find out more. |
When writing to OOB bucket/location, use the versionId of the ingested location (i.e. the dataStore versionId) as the versionId of the object, like what is done by OOB/ingestion. This is needed to ensure the object can consistently be accessed from either Zenko or the data location, with the same versionId; and prevents the creation of another revision of the object (basically duplicating it) when the object is ingested. Issue: CLDSRV-563
857167a
to
1b7f5c0
Compare
When restoring to OOB bucket, we cannot force the versionId of the object written to the backend, and it is thus not match the versionId of the ingested object. Thus we add extra user metadata to allow OOB to allow ingestion processor to "match" the (new) restored object with the existing ingested object. Issue: CLDSRV-563
Issue: CLDSRV-563
This ensures the field is present on metadata DELETE requests, and thus available for use by OOB. Issue: CLDSRV-563
An oplog update is only required when the object is archived, instead of when lifecycle is enabled: so fix the condition to avoid extra associated load. The update is also required when bucket notification is enabled on the bucket, no change there. Issue: CLDSRV-563
1b7f5c0
to
ca48d4d
Compare
/approve |
I have successfully merged the changeset of this pull request
The following branches have NOT changed:
Please check the status of the associated issue CLDSRV-563. Goodbye francoisferrand. The following options are set: approve |
Transition in OOB really only requires that an extra x-amz-meta-scal-version-id metadata is added when restoring the object, to allow backbeat to map the new objet being ingested with the existing metadata object.
This also requires this field to be added to overhead field, so it is provided in the oplog if the object is removed (from "backend" side) while restored.
In addition, as it requires using both endpoint, this opens new risk: to ensure OOB is "in-sync", writes through the OOB will not have the same VersionID as the backend. This is acutally not really a new behavior, as it allows this case to be consistent with the state of metadata when the object is simply ingested.
Issue: CLDSRV-563