[Bugs] [Bug 1471753] New: [disperse] Keep stripe in in-memory cache for the non aligned write

bugzilla at redhat.com bugzilla at redhat.com
Mon Jul 17 11:56:33 UTC 2017


https://bugzilla.redhat.com/show_bug.cgi?id=1471753

            Bug ID: 1471753
           Summary: [disperse] Keep stripe in in-memory cache for the non
                    aligned write
           Product: GlusterFS
           Version: mainline
         Component: disperse
          Assignee: bugs at gluster.org
          Reporter: aspandey at redhat.com
                CC: bugs at gluster.org



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:

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.


More information about the Bugs mailing list