Bug 1408809 - [Perf] : significant Performance regression seen with disperse volume when compared with 3.1.3
Summary: [Perf] : significant Performance regression seen with disperse volume when co...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: GlusterFS
Classification: Community
Component: disperse
Version: mainline
Hardware: Unspecified
OS: Unspecified
unspecified
urgent
Target Milestone: ---
Assignee: Ashish Pandey
QA Contact:
URL:
Whiteboard:
Depends On: 1406723
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-12-27 12:09 UTC by Ashish Pandey
Modified: 2017-05-30 18:38 UTC (History)
11 users (show)

Fixed In Version: glusterfs-3.11.0
Doc Type: If docs needed, set a value
Doc Text:
Clone Of: 1406723
Environment:
Last Closed: 2017-05-30 18:38:06 UTC
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Embargoed:


Attachments (Terms of Use)

Comment 1 Worker Ant 2016-12-27 12:11:03 UTC
REVIEW: http://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#2) for review on master by Ashish Pandey (aspandey)

Comment 2 Worker Ant 2017-01-31 10:16:40 UTC
REVIEW: https://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#3) for review on master by Ashish Pandey (aspandey)

Comment 3 Worker Ant 2017-01-31 10:45:25 UTC
REVIEW: https://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#4) for review on master by Ashish Pandey (aspandey)

Comment 4 Worker Ant 2017-02-03 11:47:57 UTC
REVIEW: https://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#5) for review on master by Ashish Pandey (aspandey)

Comment 5 Worker Ant 2017-02-08 07:43:41 UTC
REVIEW: https://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#6) for review on master by Ashish Pandey (aspandey)

Comment 6 Worker Ant 2017-02-23 11:10:34 UTC
REVIEW: https://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#7) for review on master by Ashish Pandey (aspandey)

Comment 7 Worker Ant 2017-02-28 11:10:10 UTC
REVIEW: https://review.gluster.org/16298 (cluster/ec: Set dirty flag for file Data fop only) posted (#8) for review on master by Ashish Pandey (aspandey)

Comment 8 Pranith Kumar K 2017-03-02 05:55:21 UTC
recursive dir creation

./ec-create.sh && gluster v profile ec2 start && cd /mnt/ec2 && for i in {1..100}; do mkdir $i && cd $i; done && gluster v profile ec2 info

v3.8.8
Interval 0 Stats:
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us              2  RELEASEDIR
      0.04      30.50 us      29.00 us      32.00 us              2      STATFS
      6.30      86.02 us      46.00 us     146.00 us            100    SETXATTR
      7.08      96.61 us      41.00 us     296.00 us            100     SETATTR
      8.49     115.90 us      70.00 us     215.00 us            100     XATTROP
     12.67      34.58 us      16.00 us     259.00 us            500     INODELK
     31.15     138.93 us      52.00 us     642.00 us            306      LOOKUP
     34.27     467.70 us     266.00 us    1190.00 us            100       MKDIR

Master
Interval 0 Stats:
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.00       0.00 us       0.00 us       0.00 us              1  RELEASEDIR
      0.02      24.00 us      24.00 us      24.00 us              1      STATFS
      6.12      84.02 us      48.00 us     158.00 us            100    SETXATTR
      6.73      92.41 us      46.00 us     215.00 us            100     SETATTR
     12.39      34.02 us      16.00 us     640.00 us            500     INODELK
     15.24     104.61 us      55.00 us     236.00 us            200     XATTROP
     27.91     125.20 us      48.00 us     331.00 us            306      LOOKUP
     31.58     433.43 us     241.00 us     938.00 us            100       MKDIR

With Modified idea of Xavi:
Interval 0 Stats:
 %-latency   Avg-latency   Min-Latency   Max-Latency   No. of calls         Fop
 ---------   -----------   -----------   -----------   ------------        ----
      0.10      72.50 us      24.00 us     121.00 us              2      STATFS
      4.87      73.98 us      37.00 us     230.00 us            100     XATTROP
      6.75     102.38 us      59.00 us     220.00 us            100    SETXATTR
      7.36     111.63 us      53.00 us     305.00 us            100     SETATTR
     13.68      41.53 us      17.00 us     284.00 us            500     INODELK
     33.54     509.02 us     280.00 us    1080.00 us            100       MKDIR
     33.70     167.15 us      51.00 us    3137.00 us            306      LOOKUP


Xattrops are the ones we are worried about as you can see, it came back to 100 like it was before :-).

Comment 9 Worker Ant 2017-03-03 06:19:30 UTC
REVIEW: https://review.gluster.org/16821 (cluster/ec: Introduce optimistic changelog in EC) posted (#2) for review on master by Pranith Kumar Karampuri (pkarampu)

Comment 10 Worker Ant 2017-03-04 12:38:00 UTC
COMMIT: https://review.gluster.org/16821 committed in master by Pranith Kumar Karampuri (pkarampu) 
------
commit 78c5c5637104cf79578d0fb9173647c9c3421177
Author: Pranith Kumar K <pkarampu>
Date:   Thu Mar 2 07:14:14 2017 +0530

    cluster/ec: Introduce optimistic changelog in EC
    
    Problem: Fix to https://bugzilla.redhat.com/show_bug.cgi?id=1316873 has made
    changes to set dirty flag before every update fop, data or metadata, and unset
    it after successful operation. That makes some of the fops very slow such as
    entry operations or metadata operations.
    
    Solution: File data operations are the only operation which take some time and
    setting dirty flag before a fop and unsetting it after serves the purpose as
    probability of failure of a fop is high when the time duration is more. For all
    the other operations, set dirty flag at the end of the fop, if any brick is
    down and need heal.
    
    Providing following option to choose between high performance or better heal
    marking for metadata and entry fops.
    
    Set/Unset dirty flag for every update fop at the start of the fop. If ON, this
    option impacts performance of entry operations or metadata operations as it
    will set dirty flag at the start and unset it at the end of ALL update fop. If
    OFF and all the bricks are good, dirty flag will be set at the start only for
    file fops For metadata and entry fops dirty flag will not be set at the start,
    if all the bricks are good. This does not impact performance for metadata
    operations and entry operation but has a very small window to miss marking
    entry as dirty in case it is required to be healed.
    
    Thanks to Xavi and Ashish for the design
    Picked the .t file from Ashish' patch https://review.gluster.org/16298
    
    BUG: 1408809
    Change-Id: I3ce860063f0e2901e50754dcfc3e4ed22daf819f
    Signed-off-by: Pranith Kumar K <pkarampu>
    Reviewed-on: https://review.gluster.org/16821
    Smoke: Gluster Build System <jenkins.org>
    Reviewed-by: Xavier Hernandez <xhernandez>
    Tested-by: Xavier Hernandez <xhernandez>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>

Comment 11 Worker Ant 2017-03-07 12:58:37 UTC
REVIEW: https://review.gluster.org/16865 (cluster/ec: Don't mark dirty on entry/meta ops in query-info) posted (#1) for review on master by Pranith Kumar Karampuri (pkarampu)

Comment 12 Worker Ant 2017-03-07 17:52:33 UTC
COMMIT: https://review.gluster.org/16865 committed in master by Atin Mukherjee (amukherj) 
------
commit fabce246ae948e8e3060dee4a720cd64ac76fdaf
Author: Pranith Kumar K <pkarampu>
Date:   Tue Mar 7 14:32:18 2017 +0530

    cluster/ec: Don't mark dirty on entry/meta ops in query-info
    
    We wanted to mark dirty for metadata/entry operations
    whenever query-info is set and info is not yet there because we
    are anyway sending xattrop over the network. But this is causing
    25% regression from 3.8.8 so removing this optimization
    
    Also fixed two small issues that we didn't find in the previous
    patch
    1) reconfigure failure was sending return value 0 for optimistic-changelog
    2) ec->optimistic_changelog was set to true even before OPTION_INIT
    
    BUG: 1408809
    Change-Id: Iabb0b64bd4d3623688790e4b67e5c20b4da977a1
    Signed-off-by: Pranith Kumar K <pkarampu>
    Reviewed-on: https://review.gluster.org/16865
    Reviewed-by: Xavier Hernandez <xhernandez>
    NetBSD-regression: NetBSD Build System <jenkins.org>
    CentOS-regression: Gluster Build System <jenkins.org>
    Smoke: Gluster Build System <jenkins.org>

Comment 13 Shyamsundar 2017-05-30 18:38:06 UTC
This bug is getting closed because a release has been made available that should address the reported issue. In case the problem is still not fixed with glusterfs-3.11.0, please open a new bug report.

glusterfs-3.11.0 has been announced on the Gluster mailinglists [1], packages for several distributions should become available in the near future. Keep an eye on the Gluster Users mailinglist [2] and the update infrastructure for your distribution.

[1] http://lists.gluster.org/pipermail/announce/2017-May/000073.html
[2] https://www.gluster.org/pipermail/gluster-users/


Note You need to log in before you can comment on or make changes to this bug.