US 9,811,561 B2
Executing database queries using multiple processors
Santiago Becerra, Del Mar, CA (US); Santiago E. Becerra, Del Mar, CA (US); Alex C. Schaefer, Solana Beach, CA (US); John McInerney, La Mesa, CA (US); and Patrick Cheng, San Diego, CA (US)
Assigned to SAP SE, Walldorf (DE)
Filed by SAP SE, Walldorf (DE)
Filed on Nov. 4, 2015, as Appl. No. 14/932,007.
Application 14/932,007 is a continuation of application No. 14/288,237, filed on May 27, 2014, granted, now 9,189,519.
Application 14/288,237 is a continuation of application No. 13/835,795, filed on Mar. 15, 2013, granted, now 8,762,366, issued on Jun. 24, 2014.
Claims priority of provisional application 61/762,782, filed on Feb. 8, 2013.
Prior Publication US 2016/0055206 A1, Feb. 25, 2016
This patent is subject to a terminal disclaimer.
Int. Cl. G06F 7/00 (2006.01); G06F 17/30 (2006.01); G06F 9/38 (2006.01)
CPC G06F 17/30454 (2013.01) [G06F 9/3887 (2013.01); G06F 17/30442 (2013.01); G06F 17/30463 (2013.01); G06F 17/30483 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for executing database queries, comprising:
receiving a database query for execution by a database system configured to process the database queries using a first processing unit including one or more central processing units (CPUs) and a second processing unit including one or more single instruction multiple thread (SIMT) based processing units;
generating, by the database system, an intermediate executable representation comprising operators for processing the database query;
selecting, by the database system, a target processing unit for executing an operator of the operators;
determining whether to add padding bytes to input data processed by the database query based on the selected target processing unit;
responsive to selecting the second processing unit including the one or more SIMT based processing units as the target processing unit for executing the operator:
adding the padding bytes to the input data of a data type, wherein adding of the padding bytes causing data elements of the data type to have identical size;
generating native code from the intermediate executable representation;
compiling the native code to executable code; and
executing the executable code using the second processing unit; and
sending a result of the execution of the database query.