Patent Document ID: 9824106
Application ID: 14185697
Patent Flag: 1

Claim One:
1. A computer-implemented method of data processing by a data processing device, comprising: apportioning a first dataset into a plurality of first dataset portions based on a hashing algorithm that employs, as a hash key, a first data attribute of the first dataset; apportioning a second dataset into a plurality of second dataset portions based on the hashing algorithm that employs, as the hash key, the first data attribute of the first dataset; apportioning a third dataset into a plurality of third dataset portions based on the hashing algorithm that employs, as the hash key, the first data attribute of the first dataset, one or more of the first dataset, the second dataset, or the third dataset being a table included in a relational database; storing the plurality of first dataset portions, the plurality of second dataset portions, and the plurality of third dataset portions in a data storage device; generating a plurality of fourth dataset portions by performing a plurality of first join operations to combine individual ones of the plurality of first dataset portions to individual ones of the plurality of second dataset portions, the plurality of first join operations employing the first data attribute, two or more of the plurality of first join operations performed at least partly in parallel; generating a plurality of fifth dataset portions by performing a plurality of second join operations to combine individual ones of the plurality of first dataset portions to individual ones of the plurality of third dataset portions, the plurality of second join operations employing a second data attribute that is present in the first dataset and the third dataset, two or more of the plurality of second join operations performed at least partly in parallel, the second data attribute being different than the first data attribute; storing the plurality of fourth dataset portions and the plurality of fifth dataset portions in the data storage device; receiving, from a user device, a data request for an output dataset specifying data associated with one or more requested data attributes, the data request including a requested time for data availability; determining, based on the data request, that the data associated with the requested data attributes is accessible from a combination formed by joining the plurality of fourth dataset portions and the plurality of fifth dataset portions using the first data attribute of the first dataset; determining a predicted time for availability of the output dataset exceeds the requested time for data availability for the output dataset; in response to the predicted time for availability of the output dataset exceeding the requested time for data availability for the output dataset, providing to the user device the fourth dataset portions and the fifth dataset portions during the requested time for data availability; generating the output dataset by performing a plurality of combination operations to generate a combination of the plurality of fourth dataset portions and the plurality of fifth dataset portions based on the first data attribute of the first dataset, the plurality of combination operations including one or more of a join operation, a group-by operation, or a union operation; storing the output dataset in the data storage device; and providing, to the user device, the output dataset in response to the data request at a time exceeding the requested time for data availability.