Skip to content
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

Update filestore-filesystem-compat.rst #286

Closed
wants to merge 1 commit into from
Closed

Update filestore-filesystem-compat.rst #286

wants to merge 1 commit into from

Conversation

nigwil
Copy link

@nigwil nigwil commented May 14, 2013

missing "not" in note about XFS xattrs.

missing "not" in note about XFS xattrs.
@liewegas
Copy link
Member

iirc xfs actually does have a limit, but it is 64k and so it is rarely hit. we should make the rados api tests set 100k attrs to verify the osd is behaving properly...

@nigwil
Copy link
Author

nigwil commented May 15, 2013

Looks like the story gets even more complicated Brian Behlendorf notes in this post: http://permalink.gmane.org/gmane.linux.file-systems.zfs.devel/75, that Linux limits individual name/value pairs to 64KB, that XFS (and ZFS) have no limit on the number of pairs per file.

@nigwil
Copy link
Author

nigwil commented May 15, 2013

Nothing like testing assumptions. I just tried to set 100KB as a file extended attribute on an XFS filesystem and it only took 65536 (64KiB) bytes, but lets me set multiple attributes per file. So it would seem the various manual pages attr(1) xfs(5) are somewhat imprecise about what is imposing the limits.

@liewegas
Copy link
Member

The osd is supposed to compensate in various ways for the fs xattr limitations. If you're up for it, we shoudl extend something in src/test/librados/* to set getting/setting small and large attrs on objects to make sure it is working..

@nigwil
Copy link
Author

nigwil commented May 17, 2013

Did more digging and can confirm that it is Linux that is enforcing the 64KiB limit, in setxattr() in http://lxr.free-electrons.com/source/fs/xattr.c it does a attribute size check against XATTR_SIZE_MAX which is defined in limits.h as 64KiB (http://lxr.free-electrons.com/source/include/uapi/linux/limits.h#L15)

How large an attribute should we test for? and about how many is a reasonable number? I can have a go at making the test for it.

@yehudasa
Copy link
Member

The issue that we saw recently was with listxattr() that couldn't respond with more than 64k of data. With a large enough xattr this can be hit as we split it into multiple xattrs.

@liewegas
Copy link
Member

i'm thinking we should make the big xattr spillover into leveldb the default, and just make the filestore detect these limits on startup to set good default values for the given fs..

and add some tests to ceph_test_rados_api_something to set large and many attrs to make sure things behave in the extreme.

@liewegas liewegas closed this Aug 17, 2013
liewegas pushed a commit that referenced this pull request Dec 14, 2016
Calamari_setup now allows > 1 mon.
theanalyst pushed a commit to theanalyst/ceph that referenced this pull request May 6, 2019
[SES5] rpm: add downstream-only ceph-qa-health-ok subpackage
liewegas pushed a commit to liewegas/ceph that referenced this pull request Nov 5, 2021
andriytk pushed a commit to andriytk/cortx-rgw that referenced this pull request Jun 15, 2022
…on (ceph#291) (ceph#292)

* rgw_sal_motr: [CORTX-31877] Support Stat counting for Multipart & Obj OverWrite case (ceph#286)

* rgw_sal_motr: [CORTX-31877] Support Stats for Multipart & Obj OverWrite case

In multipart upload, each part upload increments the total object size by part size
and count by one. When the complete multipart is called, the object count is reset to
consider all parts as single object.
On abort size of each part is subtracted and the object count is decremented by number
of parts as well.

Object overwrite case is also hanlded with the same PR which decrement the size of old
obj and increment the size of new obj in case of unversioned bucket. Obj count will
remain the same.

* rgw_sal_motr: [CORTX-31877] handle stats on delete marker delete

Delete marker creating does not increment the stats but deletion of
delete marker was causing object count to go down by 1.
Addressed the same by addition of a delete marker check.

Signed-off-by: Sumedh Anantrao Kulkarni <sumedh.a.kulkarni@seagate.com>

* rgw, rgw_sal_motr: [CORTX-31836] calculate actual size for all types of objects (ceph#287)

Size Rounded is the actual size occupied by an object on disk including
padding required as per the unit and block size.
size_rounded parameter is added in bucket_dir_entry as well as in sal motr
object and part related classes to store the calculated size.

Signed-off-by: Sachin Punadikar <sachin.punadikar@seagate.com>
Signed-off-by: Diwakar92 <diwakar.kumar@seagate.com>
Signed-off-by: Sumedh Anantrao Kulkarni <sumedh.a.kulkarni@seagate.com>
tobias-urdin pushed a commit to tobias-urdin/ceph that referenced this pull request Aug 2, 2023
Add a case for lifecycle expiration on versining enabled bucket.

Reviewed-by: Casey Bodley <cbodley@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants