IP Library Granted Patent US 10,733,099
Granted Patent B2
US 10,733,099 · App. 16/062,592 · Granted Aug 4, 2020

Broadening field specialization

Inventors: Richard T. Snodgrass (Tucson, AZ); Saumya K. Debray (Tucson, AZ); Rui Zhang (Redondo Beach, CA); Yang Liu (Tucson, AZ)
Assignees: ARIZONA BOARD OF REGENTS ON BEHALF OF THE UNIVERSITY OF ARIZONA; DATAWARE VENTURES, LLC
G06F12/0811G06F8/36G06F8/443G06F8/72G06F8/75G06F9/44521G06F12/0804G06F16/21G06F16/217G06F30/20
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 10,733,099
App. No.
16/062,592
Granted
Aug 4, 2020
Kind
B2
Abstract

A method to minimize cache pressure using slot pressure profile (SPP)-guided Algorithm includes generating an intermediate SPP from a binary code of a DBMS. The generated intermediate SPP is received and a reference SPP is output. The reference SPP has a value assigned for each cache slot in a cache, whereby a cache slot value is indicative of cache pressure. The reference SPP is accepted and a candidate slot list related to the cache is produced by sorting the values in the reference SPP. A slot number among the candidate slot list is decided and passed to find an open memory address mapping to the decided slot number for a bee code, the bee code being a specialized version of a DBMS function created and loaded into the cache at run-time. A query with the bee code is executed using the open memory address found.

Claims (47)

1. A computer-implemented method to minimize cache pressure using slot pressure profile (SPP)-guided Algorithm, the method comprising:

generating, in a SPP generation phase, an intermediate SPP from a binary code of a database management system (DBMS);

receiving, in a SPP processing phase, the generated intermediate SPP obtained in the SPP Generation phase and outputting a reference SPP, wherein the reference SPP has a value assigned for each cache slot in a cache, whereby a cache slot value is indicative of cache pressure;

accepting, in a candidate ordering phase, the reference SPP and producing a candidate slot list related to the cache by sorting the values in the reference SPP;

deciding, in a slot selection phase, a slot number among the candidate slot list;

passing the decided slot number, in a bee insertion phase, to find an open memory address mapping to the decided slot number for a bee code, the bee code being a specialized version of a DBMS function created and loaded into the cache at run-time; and

executing, in a query evaluation phase, a query with the bee code using the open memory address found;

wherein the SPP processing phase comprises at least one of:

a Binary Function Score Algorithm to infer cache pressure;

a Function Count Algorithm to construct the reference SPP; or

a MaxResidency Algorithm to give a query plan, wherein the MaxResidency algorithm comprises the steps of:

computing an instruction threshold to identify slots that are accessed enough to potentially incur cache pressure;

checking a max residency of the identified slots; and

in response to the max residency reaches the instruction threshold of total counts at the identified slot, incrementing an estimated occupancy at this slot by 1, wherein the instruction threshold is a ratio of a residency to a total instruction count at a slot that is considered long enough to occupy a cache line.

2. The computer-implemented method of claim 1 , wherein the SPP generation phase further comprises the step of identifying functions that are invoked by operators implemented by the DBMS, wherein dynamic analysis is used at DBMS compile time to provide an estimate of the cache pressure of the identified functions.

3. The computer-implemented method of claim 1 , wherein the SPP generation phase further comprises the steps of:

obtaining a call graph for the DBMS for executing representative workload;

performing a breadth-first search to identify all functions the query calls;

for each identified function, generating a per-function binary instruction cache (I-cache) function score SPP; and

adding up the function score SPPs for an operator to yield a per-operator reference I-cache function count SPP.

4. The computer-implemented method of claim 1 , wherein the SPP generation phase further comprises the steps of:

generating at DBMS compile time one or more SPPs by assigning weights to a binary SPP; and

collecting a raw SPP over the DBMS executing a workload.

5. The computer-implemented method of claim 1 , wherein the SPP processing phase, the candidate ordering phase, the slot selection phase, the bee insertion phase and the query evaluation phase all occur at DBMS run-time.

6. A computer-implemented method to minimize cache pressure using slot pressure profile (SPP)-guided Algorithm, the method comprising:

generating, in a SPP generation phase, an intermediate SPP from a binary code of a database management system (DBMS);

receiving, in a SPP processing phase, the generated intermediate SPP obtained in the SPP Generation phase and outputting a reference SPP;

accepting, in a candidate ordering phase, the reference SPP and producing a candidate slot list related to a cache by sorting the values in the reference SPP;

deciding, in a slot selection phase, a slot number among the candidate slot list;

passing the decided slot number, in a bee insertion phase, to find an open memory address mapping to the decided slot number for a bee code, the bee code being a specialized version of a DBMS function created and loaded into the cache at run-time; and

executing, in a query evaluation phase, a query with the bee code using the found open memory address,

wherein the SPP generation phase further comprising the step of:

identifying functions that are invoked by operators implemented by the DBMS, preferably wherein dynamic analysis is used at DBMS compile time to provide an estimate of the cache pressure of the identified functions; and/or wherein the SPP generation phase further comprising the steps of:

obtaining a call graph for the DBMS for executing representative workload;

performing a breadth-first search to identify all functions the query calls;

for each identified function, generating a per-function binary instruction cache (I-cache) function score SPP;

adding up the function score SPPs for an operator to yield a per-operator reference I-cache function count SPP; and/or

wherein the SPP generation phase further comprising the steps of:

generating at DBMS compile time one or more SPPs by assigning weights to a binary SPP; and

collecting a raw SPP over the DBMS executing a workload; and/or

wherein the SPP processing phase, the candidate ordering phase, the slot selection phase, the bee insertion phase and the query evaluation phase all occur with running time of the DBMS; and/or

wherein the SPP processing phase comprises a Binary Function Score Algorithm to infer a cache pressure; and/or

wherein the SPP processing phase comprises a Function Count Algorithm to construct a reference SPP; and/or

wherein the SPP processing phase comprises a MaxResidency Algorithm to give a query plan, wherein the MaxResidency algorithm preferably comprises steps of:

computing an instruction threshold to identify slots that are accessed enough to potentially incur cache pressure;

checking a max residency of the identified slots; and

in response to the max residency reaches the instruction threshold of total counts at the identified slot, incrementing an estimated occupancy at this slot by 1, wherein the instruction threshold preferably is a ratio of a residency to a total instruction count at a slot that is considered long enough to occupy a cache line.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: ZHANG, RUI
To: DATAWARE VENTURES, LLC
Reel/Frame 047237/0301 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2018
From: SNODGRASS, RICHARD T.; DEBRAY, SAUMYA K.; LIU, YANG
To: ARIZONA BOARD OF REGENTS ON BEHALF OF THE UNIVERSITY OF ARIZONA
Reel/Frame 047237/0616 →
CONFIRMATORY LICENSE Recorded Jul 16, 2018
From: UNIVERSITY OF ARIZONA
To: NATIONAL SCIENCE FOUNDATION
Reel/Frame 046553/0838 →
Continuity (2)
Continuation In Part 14968296 · Dec 14, 2015
Related Publication 20180365148A1 · Dec 20, 2018