Abstract:
A method for efficiently handling partial write requests in a storage system includes allocating a new block of data for the new partial data, and allocating a record in an extent map to record the location of the new partial data block, the location of the old partial data block and the offset length for each data block. Data blocks can be repackaged in the background when system resources are available. A full, but misaligned write request is also efficiently handled by writing the new data to a newly allocated data block and allocating new records in an extent map to record information corresponding to two partial write operations.
Abstract:
A storage server is configured to receive a request to store a data block from a client. The request to store the data block is serviced by the storage server by compressing the data block into a compression group, which includes a number of compressed data blocks. The storage server stores the compression group in a non-volatile memory and flushes the compression group from the non-volatile memory to a physical storage device in response to reaching a consistency point. By compressing data to be stored in system memory of a storage server, the amount of data that can be processed during a given time period by a data storage system is increased. Furthermore, an increase in performance can be achieved at a lower cost, since the cost of additional physical system memory modules can be avoided.
Abstract:
A method and apparatus is for outputting audio files to a user to enable selection of one of the audio files by the user. At least two independent audio files are played simultaneously, distributed differently over a set of speakers, thereby to appear to the user to originate from different directions. This enables a faster selection process by the user.
Abstract:
A system and method for transparently compressing file system data using compression group descriptors is provided. When data contained within a compression group be compressed beyond a predefined threshold value, a compression group descriptor is included in the compression group that signifies that the data for the group of level 0 blocks is compressed into a lesser number of physical data blocks. When performing a read operation, the file system first determines the appropriate compression group that contains the desired data and determines whether the compression group has been compressed. If so, the file system decompresses the data in the compression group before returning the decompressed data. If the magic value is not the first pointer position, then the data within the compression group was previously stored in an uncompressed format, and the data may be returned without performing a decompression operation.
Abstract:
A method and apparatus for retention of active data stored in memory using multiple indexing systems for data storage. An embodiment of a method for retention of active data in a storage server includes reading data into a first location of a main memory of the storage server. The data in the first location indexes data elements in a long-term data storage in a first manner. The method further provides for copying the data from the first location into a second location in the main memory of the storage server, where the data in the second location indexing the data elements in the long-term data storage in a second manner.
Abstract:
Various implementations include an anti-slip pad for use with a portable electronic device. The anti-slip pad may prevent the portable electronic device from slipping out of the user's hand or across a surface, for example. As described below, the pad includes a non-slip layer and an adhesive layer that are permanently affixed to each other. The non-slip layer has a first side and a second side opposite the first side. The first side of the non-slip layer has a non-slip surface. The adhesive layer is affixed to the second side of the non-slip layer. The adhesive layer is configured for being removably adherable to an outer surface of the portable electronic device such that the non-slip layer faces away from the outer surface. The adhesive layer allows the pad to be selectively repositioned on the portable electronic device, according to some implementations.
Abstract:
An extent-based storage architecture is implemented by a storage server. The storage server generates a new extent identifier for cloning a source extent identified by a source extent identifier and stored at a source data structure that includes a length value providing a length of the source extent, an offset value and a reference count value that provides a number of data containers that reference the source extent identifier. The storage server updates a data structure for a cloned version of the data container for storing the new extent identifier that points to the source extent identifier and includes an extent length value and offset value different from length value and the offset value of the source data structure.
Abstract:
Method and system for partially cloning a data container with compression is provided. A storage operating system determines if a portion of a source data container that is to be cloned includes a plurality of compressed blocks that are compressed using a non-variable compression group size. The operating system clones the plurality compressed blocks with the non-variable compression group size and de-compresses a plurality of blocks of the data container that are not within the non-variable compression group size. The plurality of compressed blocks and the plurality of blocks that are not within the non-variable compression group size are then stored as a partially cloned copy of the source data container.
Abstract:
A method and system to efficiently transmit streaming media are described. The system includes a network protocol engine configured to receive a request for a data stream from a client system and to transmit data packets from the data stream to the client system; and a packet pacing sub-system, responsive to the request for the data stream. The packet pacing sub-system is configured to wait to receive a plurality of data packets from the data stream, and schedule delivery events for the plurality of data packets.The system may further include a streaming media protocol engine to determine a delivery time for data packets in the data stream. The packet pacing sub-system may be configured to receive an associated delivery time for the data packets from the streaming media protocol engine and schedule the delivery events for the data packets according to the associated delivery times for the plurality of packets.
Abstract:
Provided is a method and system for reducing duplicate buffers in buffer cache associated with a storage device. Reducing buffer duplication in a buffer cache includes accessing a file reference pointer associated with a file in a deduplicated filesystem when attempting to load a requested data block from the file into the buffer cache. To determine if the requested data block is already in the buffer cache, aspects of the invention compare a fingerprint that identifies the requested data block against one or more fingerprints identifying a corresponding one or more sharable data blocks in the buffer cache. A match between the fingerprint of the requested data block and the fingerprint from a sharable data block in the buffer cache indicates that the requested data block is already loaded in buffer cache. The sharable data block in buffer cache is used instead thereby reducing buffer duplication in the buffer cache.