×

Storage device access mediation

  • US 9,917,790 B2
  • Filed: 07/31/2014
  • Issued: 03/13/2018
  • Est. Priority Date: 07/31/2014
  • Status: Active Grant
First Claim
Patent Images

1. A computing system for managing outstanding I/O operations for a plurality of entities to a hardware storage device, the system comprising:

  • a de-randomizer, operating on one or more processors of the computing system, wherein the de-randomizer comprises a plurality of slots for a hardware storage device, each slot comprising a queued list for listing I/O operations to be dispatched to the hardware storage device, wherein the slots are organized based on the hardware storage device size and offsets into the hardware storage device such that operations adjacent to each other in a queued list in the same slot are treated as sequential I/O operations to the hardware storage device to determine I/O cost, and non-adjacent operations within the same slot are treated as sparse I/O operations to the hardware storage device to determine I/O cost, and I/O operations from different queued lists in different slots are treated as random I/O operations to the hardware storage device to determine operation cost;

    a plurality of entity queues coupled to the de-randomizer, the entity queues being configured to queue I/O operations for the plurality of entities to the hardware storage device;

    a budget data structure coupled to the de-randomizer, wherein the budget data structure is configured to track budgets credits for the plurality of entities to determine which of the plurality of entities have sufficient budget to be allowed to have I/O operations dispatched to the hardware storage device;

    wherein, based on either a most recent or current I/O operation dispatched to a hardware storage device, the computing system is configured to use the de-randomizer and budget data structure to identify sequential and sparse operations for a first entity of the plurality of entities to dispatch to the hardware storage device when the first entity has sufficient budget to have the I/O operation performed on its behalf, wherein when selecting the next operation for a first entity, the relative cost of the next operation is determined, including a comparison to other I/O operations and a cost for seek time, and the de-randomizer prioritizes selecting a sequential I/O operation in a given slot over a sparse I/O operation in the given slot;

    wherein, based on determining that (i) the first entity has sufficient budget to have an I/O operation performed on its behalf, and that (ii) there are no remaining queued sequential operations in the given slot, the computer system is configured to use the de-randomizer to select a next sparse operation and to dispatch the next sparse operation to the hardware storage device; and

    wherein, based on determining that the first entity lacks sufficient budget to have an additional I/O operation performed on its behalf, the computing system is configured to use the de-randomizer to identify an I/O operation for a second entity of the plurality of entities to dispatch to the hardware storage device.

View all claims
  • 2 Assignments
Timeline View
Assignment View
    ×
    ×