Abstract:
Diverse erasure encoded fragments, that is, fragments produced by different erasure encoding schemes, may be used to reconstruct a data file. The diverse erasure encoded fragments for the data file are collected and the erasure encoding schemes used to generate the fragments are identified. A fragment matrix is generated from these fragments. An expanded encoding matrix is generated based upon the identified erasure encoding schemes. One or more rows may be removed from the expanded matrix to generate a square matrix. If the square matrix is invertible then it is inverted to provide a decoding matrix. One or more corresponding rows may be removed from the collected fragment matrix. The decoding matrix and the collected fragment matrix are multiplied to recover the data file. Padding symbols may be added to one or more fragments so that all fragments have the same number of symbols per fragment.
Abstract:
Techniques described and suggested herein include systems and methods for storing, indexing, and retrieving original data of data archives on data storage systems using redundancy coding techniques. For example, redundancy codes, such as erasure codes, may be applied to archives (such as those received from a customer of a computing resource service provider) so as allow the storage of original data of the individual archives available on a minimum of volumes, such as those of a data storage system, while retaining availability, durability, and other guarantees imparted by the application of the redundancy code. Sparse indexing techniques may be implemented so as to reduce the footprint of indexes used to locate the original data, once stored. The volumes may be apportioned into failure-decorrelated subsets, and archives stored thereto may be apportioned to such subsets.
Abstract:
Techniques described and suggested herein include systems and methods for storing, indexing, and retrieving original data of data archives on data storage systems using redundancy coding techniques. For example, redundancy codes, such as erasure codes, may be applied to archives (such as those received from a customer of a computing resource service provider) so as allow the storage of original data of the individual archives available on a minimum of volumes, such as those of a data storage system, while retaining availability, durability, and other guarantees imparted by the application of the redundancy code. Sparse indexing techniques may be implemented so as to reduce the footprint of indexes used to locate the original data, once stored.
Abstract:
A system that implements a distributed lock service may include a failure detector for servers and sessions, and may track the state of sessions on a per-client-connection basis. It may include an external lock information database that stores lock state information and that supports a higher write throughput rate than a distributed state manager. Each database record may store an identifier of a session during which a lock on a respective item was obtained (if any) and a staleness indicator. A distributed state manager may maintain a session identifier and a respective staleness indicator for each established session, and may push updates to this session information to interested client processes, which may cache the information. A client process wishing to lock an item may determine whether it can do so dependent on the information in a corresponding database record and on its own cached session information.
Abstract:
Conditions are enforced to prevent unintended deletion of data stored by a data storage system. For example, to delete a collection of data, a condition on the collection of data's size may be enforced. The collection may be required to be empty, for example. In addition, a condition that there not exist a pending data processing operation that can affect fulfillment of the condition on the collection of data's size is also enforced.