Abstract: A storage controller controls a plurality of storage media devices and a network interface passively monitors network traffic and automatically detects video data in at least a portion of said network traffic, where the storage controller archives the video data in the storage media devices and processes the archived video data to serve the archived video data as video-on-demand data.
Abstract: A simplified host accesses SATA and SAS storage media devices by abstracting the SATA and SAS protocols with one full duplex protocol that supports full command queuing to each storage media device, whether SATA or SAS, where the abstraction protocol is performance-centric and supports common high-level read and write access to a pool of storage media devices, each of which may have a SATA or SAS interface. The abstraction protocol is link-agnostic and may be carried via a multiplicity of direct attach or networked interfaces, including but not limited to PCIe, Ethernet (e.g., 1 GbE, 10 GbE, 40 GbE, or 100 GbE), Infiniband, ThunderBolt, Firewire, USB, and/or custom interfaces.
Abstract: A shared counter resource, such as a register, is disclosed in the hardware, where the register representing how much free space there is in the command queue is accessible to one or more processing elements. When a processing element reads the “reservation” register, the hardware automatically decrements the available free space by a preconfigured amount (e.g., 1) and returns the value of the free space immediately prior to the read/reservation. If the read returns 0 (or a number less than the preconfigured amount), there was insufficient free space to satisfy the request. In the event there was insufficient space to satisfy the request the reservation register may be configured to reserve however much space was available or to not reserve any space at all. Any number of processing elements may read these registers and various scenarios are described where the input and output queues are accessible via various processing elements.
Abstract: A storage controller controlling a plurality of storage media devices receives one or more commands from a queue representing a load, identifies a first set of weighted storage region having a slow access rate in the plurality of storage media devices and a second set of weighted storage regions having a fast access rate in the plurality of storage media devices, computes an optimal sustained performance level as function of the first set of weighted storage regions having the slow access rate and the second set of weighted storage regions having the fast access rate, and distributes load based on said computed optimal sustained performance level.
Abstract: A simplified host accesses SATA and SAS storage media devices by abstracting the SATA and SAS protocols with one full duplex protocol that supports full command queuing to each storage media device, whether SATA or SAS, where the abstraction protocol is performance-centric and supports common high-level read and write access to a pool of storage media devices, each of which may have a SATA or SAS interface. The abstraction protocol is link-agnostic and may be carried via a multiplicity of direct attach or networked interfaces, including but not limited to PCIe, Ethernet (e.g., 1 GbE, 10 GbE, 40 GbE, or 100 GbE), Infiniband, ThunderBolt, Firewire, USB, and/or custom interfaces.
Abstract: A storage controller controls a plurality of storage media devices and a network interface passively monitors network traffic and automatically detects video data in at least a portion of the network traffic, where the storage controller stores the detected video data in the storage media devices. The storage media devices where such detected video data is stored may not be the intended destination of the video data.
Abstract: A storage controller controlling said plurality of storage media devices receives one or more commands from a queue representing a load, identifies a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distributes the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load.
Abstract: A storage system that is not a video management system (VMS) offloads load of the VMS by passively monitoring network traffic originating at a source intended for the VMS, automatically detecting video data in at least a portion of the monitored network traffic, and offloading load of the VMS by storing the video data in the storage system instead of the VMS. In another scenario, A storage system passively monitors network traffic originating at a source intended for a VMS, automatically detects both high-resolution and low-resolution video data from the source in at least a portion of the monitored network traffic, and stores the high-resolution video data in the storage system instead of the VMS.
Abstract: A shared counter resource, such as a register, is disclosed in the hardware, where the register representing how much free space there is in the command queue is accessible to one or more processing elements. When a processing element reads the “reservation” register, the hardware automatically decrements the available free space by a preconfigured amount (e.g., 1) and returns the value of the free space immediately prior to the read/reservation. If the read returns 0 (or a number less than the preconfigured amount), there was insufficient free space to satisfy the request. In the event there was insufficient space to satisfy the request the reservation register may be configured to reserve however much space was available or to not reserve any space at all. Any number of processing elements may read these registers and various scenarios are described where the input and output queues are accessible via various processing elements.
Abstract: A simplified host accesses SATA and SAS storage media devices by abstracting the SATA and SAS protocols with one full duplex protocol that supports full command queuing to each storage media device, whether SATA or SAS, where the abstraction protocol is performance-centric and supports common high-level read and write access to a pool of storage media devices, each of which may have a SATA or SAS interface. The abstraction protocol is link-agnostic and may be carried via a multiplicity of direct attach or networked interfaces, including but not limited to PCIe, Ethernet (e.g., 1 GbE, 10 GbE, 40 GbE, or 100 GbE), Infiniband, ThunderBolt, Firewire, USB, and/or custom interfaces. The abstraction protocol also supports communicating with port expanders and port multipliers.
Abstract: A simplified host accesses SATA and SAS storage media devices by abstracting the SATA and SAS protocols with one full duplex protocol that supports full command queuing to each storage media device, whether SATA or SAS, where the abstraction protocol is performance-centric and supports common high-level read and write access to a pool of storage media devices, each of which may have a SATA or SAS interface. The abstraction protocol is link-agnostic and may be carried via a multiplicity of direct attach or networked interfaces, including but not limited to PCIe, Ethernet (e.g., 1GbE, 10GbE, 40GbE, or 100GbE), Infiniband, ThunderBolt, Firewire, USB, and/or custom interfaces.
Abstract: A storage controller controlling a plurality of storage media devices receives one or more commands from a queue representing a load, identifies one or more weighted fast access storage regions within addressable storage regions across the plurality of storage media devices having a fast access rate, distributes load by utilizing only the weighted fast access storage regions within the addressable storage regions across the plurality of storage media devices having the fast access rate.
Abstract: A shared counter resource, such as a register, is disclosed in the hardware, where the register representing how much free space there is in the command queue is accessible to one or more processing elements. When a processing element reads the “reservation” register, the hardware automatically decrements the available free space by a preconfigured amount (e.g., 1) and returns the value of the free space immediately prior to the read/reservation. If the read returns 0 (or a number less than the preconfigured amount), there was insufficient free space to satisfy the request. In the event there was insufficient space to satisfy the request the reservation register may be configured to reserve however much space was available or to not reserve any space at all. Any number of processing elements may read these registers and various scenarios are described where the input and output queues are accessible via various processing elements.
Abstract: A simplified host accesses SATA and SAS storage media devices by abstracting the SATA and SAS protocols with one full duplex protocol that supports full command queuing to each storage media device, whether SATA or SAS, where the abstraction protocol is performance-centric and supports common high-level read and write access to a pool of storage media devices, each of which may have a SATA or SAS interface. The abstraction protocol is link-agnostic and may be carried via a multiplicity of direct attach or networked interfaces, including but not limited to PCIe, Ethernet (e.g., 1 GbE, 10 GbE, 40 GbE, or 100 GbE), Infiniband, ThunderBolt, Firewire, USB, and/or custom interfaces. The abstraction protocol also supports communicating with port expanders and port multipliers.
Abstract: An apparent load is determined based on assigning weightings to commands based on various factors including, but not limited to, the limitations of the underlying storage media device(s), where the command queue fullness is viewed from that perspective rather than simply the number of commands outstanding in a storage media device. Also disclosed is the use of a positive bias and a negative bias to artificially influence the apparent load.
Abstract: A storage controller controlling said plurality of storage media devices receives one or more commands from a queue representing a load, identifies a set of weighted storage regions having the mid-range access rate to target a mid-range performance level that is enough to service the load; and distributes the load based on the mid-range performance level by utilizing only the set of weighted storage regions having the mid-range access rate thereby targeting the mid-range performance level that is enough to service the load.
Abstract: A simplified host accesses SATA and SAS storage media devices by abstracting the SATA and SAS protocols with one full duplex protocol that supports full command queuing to each storage media device, whether SATA or SAS, where the abstraction protocol is performance-centric and supports common high-level read and write access to a pool of storage media devices, each of which may have a SATA or SAS interface. The abstraction protocol is link-agnostic and may be carried via a multiplicity of direct attach or networked interfaces, including but not limited to PCIe, Ethernet (e.g., 1 GbE, 10 GbE, 40 GbE, or 100 GbE), Infiniband, ThunderBolt, Firewire, USB, and/or custom interfaces.
Abstract: A shared counter resource, such as a register, is disclosed in the hardware, where the register representing how much free space there is in the command queue is accessible to one or more processing elements. When a processing element reads the “reservation” register, the hardware automatically decrements the available free space by a preconfigured amount (e.g., 1) and returns the value of the free space immediately prior to the read/reservation. If the read returns 0 (or a number less than the preconfigured amount), there was insufficient free space to satisfy the request. In the event there was insufficient space to satisfy the request the reservation register may be configured to reserve however much space was available or to not reserve any space at all. Any number of processing elements may read these registers and various scenarios are described where the input and output queues are accessible via various processing elements.
Abstract: A storage controller controlling a plurality of storage media devices receives one or more commands from a queue representing a load, identifies a first set of weighted storage region having a slow access rate in the plurality of storage media devices and a second set of weighted storage regions having a fast access rate in the plurality of storage media devices, computes an optimal sustained performance level as function of the first set of weighted storage regions having the slow access rate and the second set of weighted storage regions having the fast access rate, and distributes load based on said computed optimal sustained performance level.
Abstract: A storage controller controlling a plurality of storage media devices receives one or more commands from a queue representing a load, identifies a minimum performance level required for the load, identifies a first set of weighted storage regions having a slow access rate across the plurality of storage media devices and a second set of weighted storage regions having a fast access rate in the plurality of storage media devices, identifies a subset of storage regions within the first set of weighted storage regions having a slow access rate that satisfies the identified minimum performance level, and distributes the load based on the identified minimum performance level by utilizing only the subset of storage regions within the first set of weighted storage regions having the slow access rate and holding the second storage region having the fast access rate in reserve.