Bug 1328446
Summary: | [RHEL-6] gluster-swift [PERF]: Account and container listings fetch metadata from FS even when it's not needed | ||
---|---|---|---|
Product: | [Red Hat Storage] Red Hat Gluster Storage | Reporter: | Prashanth Pai <ppai> |
Component: | gluster-swift | Assignee: | Prashanth Pai <ppai> |
Status: | CLOSED ERRATA | QA Contact: | surabhi <sbhaloth> |
Severity: | medium | Docs Contact: | |
Priority: | high | ||
Version: | rhgs-3.1 | CC: | asrivast, nlevinki, rcyriac, rhinduja, rhs-bugs, sbhaloth, thiago |
Target Milestone: | --- | Keywords: | ZStream |
Target Release: | RHGS 3.1.3 | ||
Hardware: | All | ||
OS: | All | ||
Whiteboard: | |||
Fixed In Version: | swiftonfile-1.13.1-8 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | 1312810 | Environment: | |
Last Closed: | 2016-06-23 05:36:31 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Bug Depends On: | 1312810 | ||
Bug Blocks: | 1299184 |
Comment 2
Prashanth Pai
2016-04-25 09:21:50 UTC
Downstream changes merged: https://code.engineering.redhat.com/gerrit/#/q/topic:bug-1328446 Verified with latest swiftclient build, there are no getxattr calls to each and every object inside container or each and every container inside Account which was the case with previous swift versions. just verified it via strace output.No extensive perf testing has been done. ps aux | grep account root 7701 0.0 0.0 103308 856 pts/1 S+ 13:11 0:00 grep account root 32697 0.0 0.1 241024 15432 ? Ss Apr26 0:00 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf root 32715 0.0 0.1 241500 13572 ? S Apr26 0:11 /usr/bin/python /usr/bin/swift-account-server /etc/swift/account-server.conf lstat("/mnt/gluster-object/test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat("/mnt/gluster-object/test/..", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/var/run/swift/db_file.db", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 stat("/mnt/gluster-object/test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 getxattr("/mnt/gluster-object/test", "user.swift.metadata", 0x0, 0) = 172 getxattr("/mnt/gluster-object/test", "user.swift.metadata", "{"X-Bytes-Used":[0,0],"X-Timestamp":["1461741553.16310",0],"X-Object-Count":[0,0],"X-Type":["Account",0],"X-PUT-Timestamp":["1461741553.16310",0],"X-Container-Count":[5,0]}", 172) = 172 stat("/mnt/gluster-object/test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/mnt/gluster-object/test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/mnt/gluster-object/test", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 9 getdents(9, /* 6 entries */, 32768) = 152 getdents(9, /* 0 entries */, 32768) = 0 close(9) = 0 stat("/mnt/gluster-object/test/c2", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/mnt/gluster-object/test/c3", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/mnt/gluster-object/test/c1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 setxattr("/mnt/gluster-object/test", "user.swift.metadata", "{"X-Bytes-Used":[ lstat("/mnt/gluster-object/test/..", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/mnt/gluster-object/test/c1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 getxattr("/mnt/gluster-object/test/c1", "user.swift.metadata", 0x0, 0) = 148 getxattr("/mnt/gluster-object/test/c1", "user.swift.metadata", "{"X-Object-Count":[5,0],"X-Timestamp":["1462887054.74214",0],"X-Type":["container",0],"X-PUT-Timestamp":["1462887054.77291",0],"X-Bytes-Used":[0,0]}", 148) = 148 stat("/mnt/gluster-object/test/c1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 stat("/mnt/gluster-object/test/c1", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 open("/mnt/gluster-object/test/c1", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 8 getdents(8, /* 7 entries */, 32768) = 168 getdents(8, /* 0 entries */, 32768) = 0 close(8) = 0 stat("/mnt/gluster-object/test/c1/o1", {st_mode=S_IFREG|0755, st_size=11, ...}) = 0 stat("/mnt/gluster-object/test/c1/o2", {st_mode=S_IFREG|0755, st_size=11, ...}) = 0 stat("/mnt/gluster-object/test/c1/o3", {st_mode=S_IFREG|0755, st_size=11, ...}) = 0 stat("/mnt/gluster-object/test/c1/o4", {st_mode=S_IFREG|0755, st_size=11, ...}) = 0 stat("/mnt/gluster-object/test/c1/o5", {st_mode=S_IFREG|0755, st_size=11, ...}) = 0 gettimeofday({1462887445, 549926}, NULL) = 0 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHEA-2016:1246 |