IP Library Granted Patent US 11,561,981
Granted Patent B2
US 11,561,981 · App. 16/680,698 · Granted Jan 24, 2023

Global indexing techniques for accelerating database functions

Inventors: Shai Roitman (Tel Aviv, IL); Eldad Farkash (Tel Aviv, IL)
Assignee: Sisense Ltd.
G06F16/2456G06F16/2255G06F16/2282H04L9/0643
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 11,561,981
App. No.
16/680,698
Granted
Jan 24, 2023
Kind
B2
Abstract

A system and method for accelerating relational functions between tables. The method includes: determining a plurality of first index values for a plurality of first unique keys in a first column of a first table; determining a plurality of second index values for a plurality of second unique keys in a second column of a second table; generating a hashed third table based on the first column of the first table and the plurality of first index values; generating a hashed fourth table based on the second column of the first table and the plurality of first index values; and generating a fifth table by performing a JOIN operation between the third table and the fourth table based on at least one third column, wherein each of third column includes a plurality of third unique keys that are common between the third table and the fourth table.

Claims (50)

1. A method for accelerating relational functions between tables, comprising:

developing a first set of a plurality of first index values by determining an index value for each unique key of a plurality of first unique keys in a first column of a first table;

developing a second set of a plurality of second index values by determining an index value for each unique key of a plurality of second unique keys in a second column of a second table;

generating a hashed third table based on the first table by using a replacement of each first unique key in the first column of the first table with a corresponding first index value of the plurality of first index values of the first set, wherein the third table has the same structure as the first table other than the replacement of each first unique key in the first column of the first table with its corresponding one of the first index values of the first set;

generating a hashed fourth table based on the second table by using a replacement of each second unique key in the second column of the second table with a corresponding second index value of the plurality of second index values of the second set, wherein the fourth table has the same structure as the second table other than the replacement of each second unique key in the second column of the second table with its corresponding one of the second index values of the second set; and

generating a fifth table by performing a JOIN operation between the third table and the fourth table based on at least one third column, wherein each of the at least one third column includes a plurality of third unique keys, wherein each third unique key is an index value common between the third table and the fourth table.

2. The method of claim 1 , wherein each index value determined for a unique key is determined by inputting the unique key into a hash function.

3. The method of claim 1 , further comprising:

storing each unique key in association with its respective corresponding index value in a sixth table.

4. The method of claim 3 , wherein one of the plurality of first unique keys is stored with a same corresponding index value as one of the plurality of second unique keys.

5. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute a process, the process comprising:

developing a first set of a plurality of first index values by determining an index value for each unique key of a plurality of first unique keys in a first column of a first table;

developing a second set of a plurality of second index values by determining an index value for each unique key of a plurality of second unique keys in a second column of a second table;

generating a hashed third table based on the first table by using a replacement of each first unique key in the first column of the first table with a corresponding first index value of the plurality of first index values of the first set, wherein the third table has the same structure as the first table other than the replacement of each first unique key in the first column of the first table with its corresponding one of the first index values of the first set;

generating a hashed fourth table based on the second table by using a replacement of each second unique key in the second column of the second table with a corresponding second index value of the plurality of second index values of the second set, wherein the fourth table has the same structure as the second table other than the replacement of each second unique key in the second column of the second table with its corresponding one of the second index values of the second set; and

generating a fifth table by performing a JOIN operation between the third table and the fourth table based on at least one third column, wherein each of the at least one third column includes a plurality of third unique keys, wherein each third unique key is an index value common between the third table and the fourth table.

6. A system for accelerating relational functions between tables, comprising:

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

develop a first set of a plurality of first index values by determining an index value for each unique key of a plurality of first unique keys in a first column of a first table;

develop a second set of a plurality of second index values by determining an index value for each unique key of a plurality of second unique keys in a second column of a second table;

generate a hashed third table based on the first table by using a replacement of each first unique key in the first column of the first table with a corresponding first index value of the plurality of first index values of the first set, wherein the third table has the same structure as the first table other than the replacement of each first unique key in the first column of the first table with its corresponding one of the first index values of the first set;

generate a hashed fourth table based on the second table by using a replacement of each second unique key in the second column of the second table with a corresponding second index value of the plurality of second index values of the second set, wherein the fourth table has the same structure as the second table other than the replacement of each second unique key in the second column of the second table with its corresponding one of the second index values of the second set; and

generate a fifth table by performing a JOIN operation between the third table and the fourth table based on at least one third column, wherein each of the at least one third column includes a plurality of third unique keys, wherein each third unique key is an index value common between the third table and the fourth table.

7. The system of claim 6 , wherein each index value determined for a unique key is determined by inputting the unique key into a hash function.

8. The system of claim 6 , wherein the system is further configured to:

store each unique key in association with its respective corresponding index value in a sixth table.

9. The system of claim 8 , wherein one of the plurality of first unique keys is stored with a same corresponding index value as one of the plurality of second unique keys.

10. A method for accelerating relational functions between tables, comprising:

determining an index value from a finite series of values for each unique key of a first plurality of unique keys in a first column of a first table;

determining an index value from the finite series of values for each unique key of a second plurality of unique keys in a second column of a second table;

inserting a hashed column into the first table, wherein the hashed column includes each determined index value in place of its corresponding unique key and otherwise maintaining the structure of the first table.

11. The method of claim 10 , wherein each index value determined for a unique key is determined by inputting the unique key into a hash function.

12. The method of claim 10 , further comprising:

storing each unique key in association with its respective corresponding index value in a sixth table.

13. The method of claim 12 , wherein one of the plurality of first unique keys is stored with a same corresponding index value as one of the plurality of second unique keys.

14. A non-transitory computer readable medium having stored thereon instructions for causing a processing circuitry to execute a process, the process comprising:

determining an index value from a finite series of values for each unique key of a first plurality of unique keys in a first column of a first table;

determining an index value from the finite series of values for each unique key of a second plurality of unique keys in a second column of a second table;

inserting a hashed column into the first table, wherein the hashed column includes each determined index value in place of its corresponding unique key and otherwise maintaining the structure of the first table.

15. A system for accelerating relational functions between tables, comprising:

a processing circuitry; and

a memory, the memory containing instructions that, when executed by the processing circuitry, configure the system to:

determine an index value from a finite series of values for each unique key of a first plurality of unique keys in a first column of a first table;

determine an index value from the finite series of values for each unique key of a second plurality of unique keys in a second column of a second table;

insert a hashed column into the first table, wherein the hashed column includes each determined index value in place of its corresponding unique key and otherwise maintaining the structure of the first table.

16. The system of claim 15 , wherein each index value determined for a unique key is determined by inputting the unique key into a hash function.

17. The system of claim 15 , wherein the system is further configured to:

storing each unique key in association with its respective corresponding index value in a sixth table.

18. The system of claim 17 , wherein one of the plurality of first unique keys is stored with a same corresponding index value as one of the plurality of second unique keys.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2023
From: TRIPLEPOINT VENTURE GROWTH BDC CORP
To: SISENSE SF, INC.; SISENSE LTD.
Reel/Frame 063980/0047 →
SECURITY INTEREST Recorded Jun 14, 2023
From: SISENSE LTD; SISENSE SF INC.
To: HERCULES CAPITAL, INC.
Reel/Frame 063948/0662 →
RELEASE OF SECURITY INTEREST Recorded Jun 9, 2023
From: COMERICA BANK
To: SISENSE LTD.
Reel/Frame 063915/0257 →
RELEASE OF SECURITY INTEREST Recorded May 19, 2023
From: SILICON VALLEY BANK
To: SISENSE LTD
Reel/Frame 063706/0225 →
RELEASE OF SECURITY INTEREST Recorded May 19, 2023
From: SILICON VALLEY BANK
To: SISENSE LTD
Reel/Frame 063706/0240 →
SECURITY INTEREST Recorded Sep 24, 2021
From: SISENSE LTD.
To: COMERICA BANK
Reel/Frame 057588/0698 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 30, 2020
From: SISENSE LTD
To: SILICON VALLEY BANK, AS AGENT
Reel/Frame 052267/0325 →
INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Mar 30, 2020
From: SISENSE LTD
To: SILICON VALLEY BANK
Reel/Frame 052267/0313 →
Continuity (2)
Provisional Application 62758836 · Nov 12, 2018
Related Publication 20200151173A1 · May 14, 2020