Patent ID: 8799267
Filing Date: 2014-08-05
Classification: G06F

Abstract:
1. A method to optimize storage allocation in a database management system, the method comprising: receiving a processing step at a step processing module of an access module processor from a dispatcher module, the processing step is a message that encapsulates context extracted from a statement tree for the access module processor as parameters in the message; determining whether a fast access storage flag is set in the processing step, the fast access storage flag indicating use of an intermediate file in fast access storage to store one or more redistributed data rows of a table of a database that is distributed across one or more storage devices of the database management system, the fast access storage selected from outer cylinders of the one or more storage devices and providing faster access than inner cylinders of the one or more storage devices of the database management system, the fast access storage flag set based on the presence of a fast access node in a sink sub tree of a resolved parse tree for the processing step and the fast access node inserted into the sink sub tree based evaluation of table statistics for the database management system, a data type and size information associated with the processing step, and cost metrics for storage devices of the database management system, and instructing other access module processors to copy the one or more redistributed data rows to their local intermediate files; selectively allocating a free fast access storage data block to the intermediate file from a fast access storage pool based on the determination that the fast access storage flag is set; determining whether the free fast access storage data block is available in the fast access storage pool to be allocated to the intermediate file; determining whether a free normal storage data block is available in normal storage pool to be allocated to the intermediate based on the determination that no free fast access storage data block is available; selectively allocating a free normal storage data block to the intermediate file from a normal storage pool based on the determination that a free normal storage data block is available and allocating as an allocated free normal storage data block; and writing the redistributed data row from the one or more redistributed data rows to the allocated free normal storage data block when the free normal storage block is available; writing a redistributed data row from the one or more redistributed data rows to the allocated fast access storage data block when the free normal storage block is unavailable; and joining result files in a combined result file and returning the combined result file to a requesting system.