Abstract:
One embodiment of the present invention provides a method comprising assigning a first weight to a first consumer and a second weight to a second consumer. The method further comprises receiving at a first scheduler a request for service by a first resource to the first consumer; receiving at a second scheduler a request for service by a second resource to the first consumer; and receiving at the first scheduler a request for service by the first resource to the second consumer. The method further comprises scheduling, by the first and second schedulers, service from the first and second resources to the first and second consumers, wherein the scheduling maintains total service provided by the first and second resources to the first and second consumers in proportion to the respective weights of the first and second consumers without requiring the first and second schedulers to communicate with each other.
Abstract:
An ergonomical pillow to be worn around the waist of a woman, supporting infant in a nursing position. The front pillow (10) has a front portion and adjacent left and right side portions. The front pillow (10) has an attaching mean (30a) attached to the left side and an attaching means (30b) attached right side of the front pillow (10). The nursing pillow (10) further comprises a webbing (45) with ends connected to the attaching means (30a) and (30b) A webbing (45) is laced around users back so that the ends of the webbing are over-passing the distal ends (13) and (13b) of the front pillow (10). The over-passing webbing is keeping distal end (13a) and (13b) down when a weight is placed on top of the front portion. The nursing pillow further comprises back support (32), supporting nursing woman's back against the seat.
Abstract:
The present invention provides techniques for assignment and layout of redundant data in data storage system. In one aspect, the data storage system stores a number M of replicas of the data. Nodes that have sufficient resources available to accommodate a requirement of data to be assigned to the system are identified. When the number of nodes is greater than M, the data is assigned to M randomly selected nodes from among those identified. The data to be assigned may include a group of data segments and when the number of nodes is less than M, the group is divided to form a group of data segments having a reduced requirement. Nodes are then identified that have sufficient resources available to accommodate the reduced requirement. In other aspects, techniques are providing for adding a new storage device node to a data storage system having a plurality of existing storage device nodes and for removing data from a storage device node in such a data storage system.
Abstract:
Systems and methods for path selection for application commands are described. To this end, information associated with at least one application command that were processed at least one port of a target device is received. For a subsequent application command, a set of ports of the target device is determined. In one implementation, the set of ports is determined based on information associated with the subsequent application command. Once the set of ports is determined, the subsequent application command is directed to a port selected from the set of ports.
Abstract:
A quality-of-service controller and related method for a data storage system. Requests for each of a plurality of storage system workloads are prioritized. The requests are selectively forwarded to a storage device queue according to their priorities so as to maintain the device queue at a target queue depth. The target queue depth is adjusted response to a latency value for the requests wherein the latency value is computed based on a difference between an arrival time and a completion time of the requests for each workload. Prioritizing the requests may be accomplished by computing a target deadline for a request based on a monitored arrival time of the request and a target latency for its workload. To reduce latencies, the target queue depth may be reduced when the target latency for a workload is less than its computed latency value. To increase throughput, the target queue depth may be increased when the target latency for each workload is greater than each computed latency value.
Abstract:
An embodiment of a method of operating a replicated cache includes generating a timestamp. A unit of data is read from memory of the replicated cache. The replicated cache comprises a plurality of independent computing devices. Each independent computing device comprises a processor and a portion of the memory. Confirmations are received from at least a majority of the independent computing devices that a flush operation for the unit of data was initiated no later than a time indicated by the timestamp and that a more recent version of the unit of data has not been flushed. The unit of data is provided to storage.
Abstract:
An embodiment of a method of hashing an address space to a plurality of storage servers begins with a first step of dividing the address space by a number of the storage servers to form data segments. Each data segment comprises a base address. A second step assigns the data segments to the storage servers according to a sequence. The method continues with a third step of measuring a load on each of the storage servers. According to an embodiment, the method concludes with a fourth step of adjusting data shares assigned to the storage servers according to the sequence to approximately balances the loads on the storage servers while maintaining the base address for each data segment on an originally assigned storage server. According to another embodiment, the method periodically performs the third and fourth steps to maintain an approximately balanced load on the storage servers.
Abstract:
An adjustable storage system modifies a layout of a storage device having a plurality data blocks during a transfer process. The storage system may include an array controller connected to the storage device, and an index table connected to the array controller for storing addresses of data blocks from the magnetic storage device. The addresses of stored data blocks represent the data blocks involved in the transfer process.
Abstract:
An embodiment of a method of restoring data begins with a step of restoring point-in-time data from a local copy. The method concludes with a step of restoring at least a portion of an incremental difference between the point-in-time data and a desired state of the data from a remote mirror.
Abstract:
Systems and methods for path selection for application commands are described. To this end, information associated with at least one application command that were processed at least one port of a target device is received. For a subsequent application command, a set of ports of the target device is determined. In one implementation, the set of ports is determined based on information associated with the subsequent application command. Once the set of ports is determined, the subsequent application command is directed to a port selected from the set of ports.