Project

General

Profile

Actions

Feature #1872

closed

rgw: only use shadow objects for large objects

Added by Yehuda Sadeh over 12 years ago. Updated over 6 years ago.

Status:
Resolved
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Reviewed:
Affected Versions:
Pull request ID:

Description

Currently we use shadow objects for every write that overwrites an object. We can avoid that by assuming that objects that are smaller or equal to the read chunk size are inherently atomic.
Things to keep in mind:
- read of object data might be atomic, but we currently first read object xattrs, and only then do we read the data which is not atomic. We should either still use barriers and handle this case, or we should read everything atomically in the first place as a single compound op.
- maybe doing the latter, but adding a method to cls_rgw that verifies ACLs, so that we only read the object if ACLs are ok?

Actions #1

Updated by Greg Farnum over 12 years ago

This will also require being careful to check both current and new sizes — the new object might be < chunk size while the old object is larger, for instance.

Actions #2

Updated by Yehuda Sadeh over 12 years ago

Once a race has been detected, operation needs to be restarted (unless we already have all requested data).

Actions #3

Updated by Yehuda Sadeh about 12 years ago

  • Status changed from New to Resolved

This has long been done.

Pushing acls check to cls_rgw can be done later on, but that's a different issue.

Actions #4

Updated by John Spray over 6 years ago

  • Project changed from Ceph to rgw
  • Category deleted (22)

Bulk reassign of radosgw category to RGW project.

Actions

Also available in: Atom PDF