IP Library › Granted Patent US 12,277,122
Granted Patent B1
US 12,277,122 · App. 18/497,617 · Granted Apr 15, 2025

System and method for accelerating query execution

Inventors: Rathijit Sen (Redmond, WA); Zezhou Huang (New York, NY); Matteo Interlandi (Torrance, CA); Marius Dumitru (Sammamish, WA); Carlo Aldo Curino (Woodinville, WA); Krystian Sakowski (Washington, DC); Hans C. Lehnert Merino (Redmond, WA)
Assignee: Microsoft Technology Licensing, LLC
G06F16/24553G06F16/221G06F16/24537G06F16/24542
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,277,122
App. No.
18/497,617
Granted
Apr 15, 2025
Kind
B1
Abstract

A method, computer program product, and computing system for optimizing query operations on run length encoding (RLE) data in a parallel processing computing system. Data is received in a plurality of columns of an input table of a parallel processing computing system for query execution; the system determines that at least a portion of the received data in a first number of columns is compressed according to run length encoding (RLE), thereby comprising RLE data columns including RLE data and that the received data in a second number of columns is not compressed according to run length encoding (RLE), thereby comprising non-RLE data columns including non-RLE data. A query operation is executed on the RLE data and the non-RLE data by prioritizing processing of the RLE data columns over processing of the non-RLE data columns.

Claims (36)

1. A computer-implemented method, executed on a computing device, comprising:

receiving data in a plurality of columns of an input table of a parallel processing computing system for query execution;

determining that at least a portion of the received data in a first number of columns is compressed according to run length encoding (RLE), thereby comprising RLE data columns including RLE data;

determining that the received data in a second number of columns is not compressed according to run length encoding (RLE), thereby comprising non-RLE data columns including non-RLE data;

executing a query operation on the RLE data and the non-RLE data by prioritizing processing of the RLE data columns over processing of the non-RLE data columns.

2. The computer-implemented method of claim 1 , wherein the plurality of columns includes at least one column in a fact table and at least one column in a dimension table.

3. The computer-implemented method of claim 1 , wherein the non-RLE data is non-encoded data.

4. The computer-implemented method of claim 1 , wherein the parallel processing computing system comprises a graphics processing unit.

5. The computer-implemented method of claim 1 , wherein prioritizing processing of the RLE data columns includes determining a reduced-cost order of executing query operations.

6. The computer-implemented method of claim 1 , wherein prioritizing processing of the RLE data columns comprises first executing the query operation on all RLE data columns and then executing the query operation on all non-RLE data columns.

7. The computer-implemented method of claim 1 , wherein the query operation comprises a plurality of query functions.

8. The computer-implemented method of claim 7 , wherein prioritizing processing of the RLE data columns comprises first executing the query operation on all RLE data columns without consideration of the types of query functions to be performed.

9. A computing system comprising:

a memory; and

a processor to:

receive data in a plurality of columns of an input table of a parallel processing computing system for query execution;

determine that at least a portion of the received data in a first number of columns is encoded, thereby comprising encoded data columns including encoded data;

determine that the received data in a second number of columns is not encoded, thereby comprising non-encoded data columns including non-encoded data;

execute a query operation on the encoded data and the non-encoded data by prioritizing processing of the encoded data columns over processing of the non-encoded data columns.

10. The computing system of claim 9 , wherein the encoded data is encoded according to run length encoding.

11. The computing system of claim 9 , wherein the plurality of columns includes at least one column in a fact table and at least one column in a dimension table.

12. The computing system of claim 9 , wherein the parallel processing computing system comprises a graphics processing unit.

13. The computing system of claim 9 , wherein prioritizing processing of the encoded data columns includes determining a reduced-cost order of executing query operations.

14. The computing system of claim 9 , wherein prioritizing processing of the encoded data columns comprises first executing the query operation on all encoded data columns and then executing the query operation on all non-encoded data columns.

15. The computing system of claim 9 , wherein the query operation comprises a plurality of query functions.

16. The computer-implemented method of claim 15 , wherein prioritizing processing of the RLE data columns comprises executing the query operation on all RLE data columns without consideration of the types of query functions to be performed.

17. A computer-implemented method, executed on a computing device, comprising:

receiving data in a plurality of columns of an input table of a parallel processing computing system for query operation execution;

determining that the received data in a plurality of columns is compressed according to run length encoding (RLE), thereby comprising RLE data columns including RLE data, wherein the RLE data in each column represents a disparate data category;

determining that a query to be performed on the RLE data columns of RLE data includes a plurality of predicates to be applied on each of the plurality of RLE data columns;

executing each of the plurality of predicates on a first RLE data column to generate a first parameter;

executing each of the plurality of predicates on a second RLE data column to generate a second parameter; and

executing a query operator on the first and second parameters to generate an output of the query operation.

18. The computer-implemented method of claim 17 , further comprising determining an order of execution of the predicates on the RLE data columns prior to executing the plurality of predicates.

19. The computer-implemented method of claim 18 , wherein determining an order of execution of the predicates on the RLE data columns includes grouping processing of the plurality of predicates to complete application of the plurality of predicates to each data category represented in each RLE data column.

20. The computer-implemented method of claim 19 , wherein the order of execution of the predicates on the RLE data columns is determined to minimize a computational cost of the query operation execution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 30, 2023
From: SEN, RATHIJIT; HUANG, ZEZHOU; INTERLANDI, MATTEO; DUMITRU, MARIUS; CURINO, CARLO ALDO; SAKOWSKI, KRYSTIAN; LEHNERT MERINO, HANS C.
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 065392/0033 →
References Cited (7)
US 9430524B1 · Narayanan · 2016 [cited by examiner]
US 10146837B1 · Narayanan · 2018 [cited by applicant]
US 11558067B2 · Shi · 2023 [cited by examiner]
US 20100030748A1 · Netz · 2010 [cited by examiner]
US 20150347087A1 · Dickie · 2015 [cited by examiner]
Abadi, et al., “Integrating compression and execution in column-oriented database systems”, In Proceedings of ACM SIGMOD international conference on Management of data, Jun. 27, 2006, pp. 671-682. [cited by applicant]
International Search Report Received in PCT Application No. PCT/US2024/049696, mailed on Jan. 2, 2025, 14 pages. [cited by applicant]