Bug 1471753 - [disperse] Keep stripe in in-memory cache for the non aligned write
[disperse] Keep stripe in in-memory cache for the non aligned write
Status: ASSIGNED
Product: GlusterFS
Classification: Community
Component: disperse (Show other bugs)
mainline
Unspecified Unspecified
unspecified Severity unspecified
: ---
: ---
Assigned To: bugs@gluster.org
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2017-07-17 07:56 EDT by Ashish Pandey
Modified: 2017-08-21 01:31 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Ashish Pandey 2017-07-17 07:56:33 EDT
Description of problem:

   
    Problem:
    Consider an EC volume with configuration  4 + 2.
    The stripe size for this would be 512 * 4 = 2048.
    That means, 2048 bytes of user data stored in one
    stripe. Let's say 2048 + 512 = 2560 bytes are
    already written on this volume. 512 Bytes would
    be in second stripe. Now, if there are sequential
    writes with offset 2560 and of size 1 Byte, we have
    to read the whole stripe, encode it with 1 Byte and
    then again have to write it back. Next, write with
    offset 2561 and size of 1 Byte will again
    READ-MODIFY-WRITE the whole stripe. This is causing
    bad performance because of lots of READ request
    travelling over the network.
    
    There are some tools and scenario's where such kind
    of load is coming and users are not aware of that.
    Example: fio and zip
    
    Solution:
    One possible solution to deal with this issue is to
    keep last stripe in memory. This way, we need not to
    read it again and we can save READ fop going over the
    network. Considering the above example, we have to
    keep last 2048 bytes (maximum) in memory per file.

Version-Release number of selected component (if applicable):


How reproducible:


Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
Comment 1 Worker Ant 2017-07-17 08:24:29 EDT
REVIEW: https://review.gluster.org/17789 (cluster/ec: Keep last written strip in in-memory cache) posted (#1) for review on master by Ashish Pandey (aspandey@redhat.com)
Comment 2 Worker Ant 2017-07-19 01:39:03 EDT
REVIEW: https://review.gluster.org/17789 (cluster/ec: Keep last written strip in in-memory cache) posted (#2) for review on master by Ashish Pandey (aspandey@redhat.com)
Comment 3 Worker Ant 2017-07-23 04:47:53 EDT
REVIEW: https://review.gluster.org/17789 (cluster/ec: Keep last written strip in in-memory cache) posted (#3) for review on master by Ashish Pandey (aspandey@redhat.com)
Comment 4 Worker Ant 2017-08-21 01:31:04 EDT
REVIEW: https://review.gluster.org/17789 (cluster/ec: Keep last written strip in in-memory cache) posted (#4) for review on master by Ashish Pandey (aspandey@redhat.com)

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