Re: linear writes to raid5

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>>>> Alex Tomas (AT) writes:

 AT> I see. though my point is a bit different:
 AT> say, there is an application that's doing big linear writes in order
 AT> to achieve good throughput. on the other hand, most of modern storages
 AT> are very sensible to request size and tend to suck serving zillions
 AT> of small I/Os. raid5 breaks all incoming requests into small ones and
 AT> handles them separately. of couse, one might be lucky and after submiting
 AT> those small requests get merged to larger ones. but only due to luck,
 AT> I'm afraid. what I'm talking about is expressly code in raid5 that
 AT> would try to merge small requests in some obvious cases.
 AT> for example:


sorry, forgot to include the example ...

there is 3 disks raid5 with chunk=64K. one does 128K request.

and in make_request() we do something like this:

    struct context {
              struct bio *bios[FOR_EVERY_DISK];
    };

    /* initialize context with empty bio's */
    for (all internal stripes) {
        sh = get_active_stripe();
        add_stripe_bio(sh, bi, ...);
        handle_stripe(sh, context);
    }
    /* submit all non-empty bio's from the context */


and in handle_stripe(): instead of immediate calling
generic_make_request() try to merge request to correspondend
bio in the context.

I understand there are few different limits to bio size,
active stripes, etc. but what do you think about the idea in general?

thanks, Alex
-
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux