Abstract:
A network storage controller for transferring data between a host computer and a storage device, such as a redundant array of inexpensive disks (RAID), is disclosed. The network storage controller includes at least one channel interface module which is adapted to be connected to the host computer and storage device. The channel interface module is connected to a passive backplane, and selectively transfers data between the host computer and storage device and the passive backplane. The network storage controller also includes at least one controller memory module, attached to the passive backplane. The controller memory module communicates with the channel interface module via the passive backplane, and processes and temporarily stores data received from the host computer or storage device. In applications where redundancy is required, at least two controller memory modules and at least two channel interface modules are used. The controller memory modules may mirror data between one another using the passive backplane and a shared communication path on the channel interface modules, thereby substantially avoiding the use of host or disk channels to mirror data. The channel interface modules are operable to selectively connect the host computer or storage device to one or more controller memory modules. The controller memory modules may include a DMA engine to facilitate the transfer of mirrored data.
Abstract:
A bus bridge apparatus for performing broadcasted writes to redundant memory subsystems in a network storage controller is disclosed. The bus bridge includes a PCI-X target that receives a write command on a first PCI-X bus on one side of the bridge. The target is coupled to two PCI-X masters coupled to primary and secondary memory subsystems by respective PCI-X buses on the other side of the bridge. A first FIFO buffers the write command data between the target and the first master, and a second FIFO buffers a copy of the data between the target and the second master. The first and second masters concurrently retransmit the write command on their respective PCI-X buses to the primary and secondary memory subsystems. However, the second master only retransmits if broadcasting is enabled and the write command address is in a broadcast address range known by the bus bridge.
Abstract:
A method for improving performance through selective file caching is disclosed. The caching policy of a client's browser cache is set to cache all files. Web page files that reference a dynamic file include JavaScript code that mangles the dynamic filename, such that a reference by the web page file to the dynamic file is unique each time a browser, processes the web page file. In one embodiment, the filename is mangled by appending to it a known string followed by a 12-digit timestamp. Consequently, the mangled filename misses in the cache, forcing the browser to fetch the dynamic file from the web server. The web server recognizes the filename is in the mangled format, regenerates the original filename, and returns the file to the client. Static filenames are not mangled; hence, they are satisfied from the browser cache. The method also works to selectively defeat network caching.