Abstract:
Embodiments of the present invention store application data and associated encryption key(s) on at least k+1 remote servers using LH* addressing. At least k+1 buckets are created on separate remote servers. At least k+1 key shares are generated for each of at least one encryption key. Each encryption key has a unique key number. Each key share is stored in a different key share record. Each of the key share records is stored in a different bucket using LH* addressing. Encrypted application data is generated by encrypting the application data with the encryption key(s). The encrypted application data is stored in encrypted data record(s). Each of the encrypted data records is stored in a different bucket among the buckets using LH* addressing.
Abstract:
Disclosed is a system for generating parity information for a data file in a distributed data structure system. Data objects in the data file are distributed into data buckets located in memory areas in servers interconnected by a network. An nth set of bucket group numbers are generated. A data bucket and a parity bucket are associated with a bucket group number in the nth set. Parity data for the data objects is generated and stored in a parity bucket associated with a bucket group number in the nth set. After adding a data object to the data file an additional data bucket may be provided for additional data object storage space. After adding a data bucket, a determination is made as to whether bucket availability has decreased below a predetermined threshold. If so, an (n+1)th set of bucket group numbers is generated and parity data for at least one of the data objects is stored in a parity bucket associated with a bucket group number in the (n+1)th set. A bucket group number in the (n+1)th set is associated with a data bucket and a parity bucket.
Abstract:
Disclosed is a system for recovering data objects stored in a data bucket in a computer system comprised of servers interconnected by a network. Each server includes a storage area. Data buckets are included in a plurality of the storage areas throughout the network. A failure of a data bucket and nth bucket group number associated with the failed data bucket are determined, wherein n is an integer value greater than zero. Parity data in a parity bucket associated with the nth bucket group number is then located. The data objects in the failed data bucket are then recovered from the parity data in the located parity bucket. After determining that the recovery of data objects using the parity data in the parity bucket associated with the nth bucket group number was unsuccessful, for each n' not equal to n and while the data objects have not been recovered and all n' have not been considered, performing the steps of: determining an n'th bucket group number associated with the failed data bucket; locating parity data in a parity bucket associated with the n'th bucket group number; and recovering the data objects in the failed data bucket from the parity data in the located parity bucket associated with the n'th bucket group number. Recovery can also be made of the parity data using the data objects.
Abstract:
A data processing method and apparatus, which generate a correct memory address from a character or digit string such as a record key value, and which is adapted for use in distributed or parallel processing architectures such as computer networks, multiprocessing systems, and the like. The invention provides a plurality of client data processors and a plurality of file servers, each server including at least a respective one memory location or "bucket". The method of the invention includes the following steps: generating the key value by means of any one of the client data processors; generating a first memory address from the key value, the first address identifying a first memory location; selecting from the plurality of servers a server that includes the first memory location; transmitting the key value from the one client to the server that includes the first memory location; and determining whether the first address is the correct address by means of the server. The method of the invention further provides that if the first address is not the correct address then the following steps are performed: generating a second memory address from the key value by means of the server, the second address identifying a second memory location; selecting from the plurality of servers another server, which includes the second memory location; transmitting the key value from the server that includes the first memory location to the other server, which includes the second memory location; determining whether the second address is the correct address by means of the other server; and generating a third memory address, which is the correct address, if neither the first or second addresses is the correct address. The present invention provides fast storage and subsequent searching and retrieval of data records in data processing applications such as database applications.