IP Library Granted Patent US 12,430,335
Granted Patent B2
US 12,430,335 · App. 17/015,908 · Granted Sep 30, 2025

System and method for improved cache utilization using an organizational memory to generate a dashboard

Inventors: Inna Tokarev Sela (Tel Aviv, IL); Yael Lev (Tel Aviv, IL); Guy Boyangu (Tel Aviv, IL); Yuval Shoklar (Tel Aviv, IL)
Assignee: Sisense Ltd.
G06F16/24552G06F16/24542G06F16/24578G06F16/26G06N5/02
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,430,335
App. No.
17/015,908
Granted
Sep 30, 2025
Kind
B2
Abstract

A system and method for improving cache efficiency. A method includes selecting at least one cacheable query node of a plurality of query nodes from a semantic knowledge graph, wherein the semantic knowledge graph includes the plurality of query nodes and a plurality of edges, each edge connecting two of the plurality of query nodes and having a connecting score, wherein the connecting score of each edge indicates a strength of relationship between the two nodes connected by the edge; storing a result of executing a query generated based on the at least one cacheable query node in a cache; and generating a query execution plan based on the at least one cacheable query node, wherein the generated query execution plan includes at least one instruction for query execution using the stored result.

Claims (68)

1. A method for improving cache efficiency, comprising:

selecting at least one cacheable query node of a plurality of query nodes from a semantic knowledge graph, the selecting being based on a cachability relevance score of the at least one cacheable query node;

storing a result of executing a query generated based on the at least one cacheable query node in a cache; and

generating a query execution plan based on the at least one cacheable query node, wherein the generated query execution plan includes at least one instruction for query execution using the stored result, wherein the semantic knowledge graph is generated by:

receiving a plurality of events, wherein the plurality of events includes a plurality of queries, wherein each event of the plurality of events is related to an interaction with at least one data source;

parsing each event of the plurality of received events into a plurality of objects;

determining for each of the plurality of events, a relationship between two objects of the plurality of objects;

generating the semantic knowledge graph based on the determined relationships, the semantic knowledge graph including a plurality of query nodes and a plurality of edges, wherein each query node corresponds to a respective object of the plurality of objects, wherein each query node is connected to another query node of the plurality of query nodes by one of the plurality of edges, wherein each edge represents a strength of relationship between the two nodes connected by the edge;

repeating the receiving, parsing, determining, and generating so as to cause the semantic knowledge graph to be updated continually over time as events occur; and

assigning a score to each edge, wherein the score assigned to each edge indicates a weight of the edge, wherein the score assigned to each edge is determined based on a number of appearances of the relationship represented by the edge in the parsed plurality of events.

2. The method of claim 1 , wherein selecting the at least one cacheable query node further comprises:

determining the cachability relevance score of each of the plurality of query nodes based on the connecting score of each edge connecting the query node to other query nodes of the plurality of query nodes.

3. The method of claim 1 , wherein selecting the at least one cacheable query node further comprises:

determining the cachability relevance score of each of the plurality of query nodes based on an edge rank for each of the plurality of query nodes, the edge rank being based on the connecting score of each edge connecting the query node to other query nodes of the plurality of query nodes, wherein the edge ranks determined for the at least one cacheable query node are the highest edge ranks among the plurality of query nodes, wherein the plurality of query nodes are ranked from most to least relevant by their respective edge ranks.

4. The method of claim 1 , further comprising:

providing the stored result to a widget of a dashboard user interface.

5. The method of claim 4 , further comprising:

receiving a user input based on interaction with the dashboard user interface, wherein the user input causes a first user query to be generated; and

determining a second user query based on the second query and the semantic knowledge graph, wherein the second user query is a predicted next query of a user of the dashboard user interface.

6. The method of claim 5 , wherein determining the second user query further comprises:

identifying at least one query node of the plurality of query nodes in the semantic knowledge graph such that the identified at least one query node collectively represents the second user query, wherein the first user query includes at least one query component, each query component of the first user query corresponding to one of the plurality of query nodes of the semantic knowledge graph, wherein the second user query is determined based further on the identified at least one query node;

executing the second user query, wherein executing the second user query includes generating the second user query based on the identified at least one query node;

storing a result of executing the second user query in the cache.

7. The method of claim 6 , wherein each of the identified at least one query node is directly connected, by an edge, to one of the plurality of query nodes which corresponds to one of the at least one query component of the first user query.

8. The method of claim 6 , wherein each of the identified at least one query node is indirectly connected to one of the plurality of query nodes which corresponds to one of the at least one query component of the first user query such that a path can be traversed in the semantic knowledge graph between each identified query node and one of the plurality of query nodes corresponding to a query component of the first user query.

9. The method of claim 8 , wherein the path includes traversing at most a predetermined number of query nodes of the plurality of query nodes.

10. The method of claim 1 , further comprising:

evicting the result of executing the query based on the at least one cacheable query from the cache, wherein the result is evicted based on a cache eviction policy.

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

selecting at least one cacheable query node of a plurality of query nodes from a semantic knowledge graph, the selecting being based on a cachability relevance score of the at least one cacheable query node;

storing a result of executing a query generated based on the at least one cacheable query node in a cache; and

generating a query execution plan based on the at least one cacheable query node, wherein the generated query execution plan includes at least one instruction for query execution using the stored result, wherein the semantic knowledge graph is generated by:

receiving a plurality of events, wherein the plurality of events includes a plurality of queries, wherein each event of the plurality of events is related to an interaction with at least one data source;

parsing each event of the plurality of received events into a plurality of objects;

determining for each of the plurality of events, a relationship between two objects of the plurality of objects;

generating the semantic knowledge graph based on the determined relationships, the semantic knowledge graph including a plurality of query nodes and a plurality of edges, wherein each query node corresponds to a respective object of the plurality of objects, wherein each query node is connected to another query node of the plurality of query nodes by one of the plurality of edges, wherein each edge represents a strength of relationship between the two nodes connected by the edge;

repeating the receiving, parsing, determining, and generating so as to cause the semantic knowledge graph to be updated continually over time as events occur; and

assigning a score to each edge, wherein the score assigned to each edge indicates a weight of the edge, wherein the score assigned to each edge is determined based on a number of appearances of the relationship represented by the edge in the parsed plurality of events.

12. A system for improving cache efficiency, comprising:

a processing circuitry; and

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

select at least one cacheable query node of a plurality of query nodes from a semantic knowledge graph, the selecting being based on a cachability relevance score of the at least one cacheable query node;

store a result of executing a query generated based on the at least one cacheable query node in a cache; and

generate a query execution plan based on the at least one cacheable query node, wherein the generated query execution plan includes at least one instruction for query execution using the stored result, wherein the semantic knowledge graph is generated by further configuring the system to:

receive a plurality of events, wherein the plurality of events includes a plurality of queries, wherein each event of the plurality of events is related to an interaction with at least one data source;

parse each event of the plurality of received events into a plurality of objects;

determine for each of the plurality of events, a relationship between two objects of the plurality of objects;

generate the semantic knowledge graph based on the determined relationships, the semantic knowledge graph including a plurality of query nodes and a plurality of edges, wherein each query node corresponds to a respective object of the plurality of objects, wherein each query node is connected to another query node of the plurality of query nodes by one of the plurality of edges, wherein each edge represents a strength of relationship between the two nodes connected by the edge;

repeat the receiving, parsing, determining, and generating so as to cause the semantic knowledge graph to be updated continually over time as events occur; and

assign a score to each edge, wherein the score assigned to each edge indicates a weight of the edge, wherein the score assigned to each edge is determined based on a number of appearances of the relationship represented by the edge in the parsed plurality of events.

13. The system of claim 12 , wherein the system is further configured to:

determine the cachability relevance score of each of the plurality of query nodes based on the connecting score of each edge connecting the query node to other query nodes of the plurality of query nodes.

14. The system of claim 12 , wherein the system is further configured to:

determine the cachability relevance score of each of the plurality of query nodes based on an edge rank for each of the plurality of query nodes, the edge rank being based on the connecting score of each edge connecting the query node to other query nodes of the plurality of query nodes, wherein the edge ranks determined for the at least one cacheable query node are the highest edge ranks among the plurality of query nodes, wherein the plurality of query nodes are ranked from most to least relevant by their respective edge ranks.

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

provide the stored result to a widget of a dashboard user interface.

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

receive a user input based on interaction with the dashboard user interface, wherein the user input causes a first user query to be generated; and

determine a second user query based on the second query and the semantic knowledge graph, wherein the second user query is a predicted next query of a user of the dashboard user interface.

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

identify at least one query node of the plurality of query nodes in the semantic knowledge graph such that the identified at least one query node collectively represents the second user query, wherein the first user query includes at least one query component, each query component of the first user query corresponding to one of the plurality of query nodes of the semantic knowledge graph, wherein the second user query is determined based further on the identified at least one query node;

execute the second user query, wherein executing the second user query includes generating the second user query based on the identified at least one query node;

store a result of executing the second user query in the cache.

18. The system of claim 17 , wherein each of the identified at least one query node is directly connected, by an edge, to one of the plurality of query nodes which corresponds to one of the at least one query component of the first user query.

19. The system of claim 17 , wherein each of the identified at least one query node is indirectly connected to one of the plurality of query nodes which corresponds to one of the at least one query component of the first user query such that a path can be traversed in the semantic knowledge graph between each identified query node and one of the plurality of query nodes corresponding to a query component of the first user query.

20. The system of claim 19 , wherein the path includes traversing at most a predetermined number of query nodes of the plurality of query nodes.

21. The system of claim 12 , wherein the system is further configured to:

evict the result of executing the query based on the at least one cacheable query from the cache, wherein the result is evicted based on a cache eviction policy.

Assignments (5)
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 →
SECURITY INTEREST Recorded Sep 24, 2021
From: SISENSE LTD.
To: COMERICA BANK
Reel/Frame 057588/0698 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 9, 2020
From: TOKAREV SELA, INNA; LEV, YAEL; BOYANGU, GUY; SHOKLAR, YUVAL
To: SISENSE LTD.
Reel/Frame 053725/0872 →
Continuity (6)
Continuation In Part 16876943 · May 18, 2020
Continuation In Part 16731668 · Dec 31, 2019
Provisional Application 63020620 · May 6, 2020
Provisional Application 62898236 · Sep 10, 2019
Provisional Application 62850760 · May 21, 2019
Related Publication 20200409955A1 · Dec 31, 2020
References Cited (63)
US 6519592B1 · Getchius · 2003 [cited by examiner]
US 8412727B1 · Das et al. · 2013 [cited by applicant]
US 9305092B1 · Finkelstein et al. · 2016 [cited by applicant]
US 9558265B1 · Tacchi · 2017 [cited by examiner]
US 9836183B1 · Love · 2017 [cited by examiner]
US 10216860B2 · Miranker et al. · 2019 [cited by applicant]
US 10452458B2 · Seto · 2019 [cited by applicant]
US 10997244B2 · Russell et al. · 2021 [cited by applicant]
US 11768869B2 · Lipka et al. · 2023 [cited by applicant]
US 20030033288A1 · Shanahan et al. · 2003 [cited by applicant]
US 20080140643A1 · Ismalon · 2008 [cited by applicant]
US 20080240570A1 · Shi et al. · 2008 [cited by applicant]
US 20100281029A1 · Parikh et al. · 2010 [cited by applicant]
US 20130218898A1 · Raghavan et al. · 2013 [cited by applicant]
US 20130226562A1 · Arnon · 2013 [cited by applicant]
US 20140280114A1 · Keysar et al. · 2014 [cited by applicant]
US 20140280307A1 · Gupta et al. · 2014 [cited by applicant]
US 20140330804A1 · Bao et al. · 2014 [cited by applicant]
US 20140344265A1 · Boucher et al. · 2014 [cited by applicant]
US 20140372931A1 · Zhai et al. · 2014 [cited by applicant]
US 20150169758A1 · Assom et al. · 2015 [cited by applicant]
US 20150370787A1 · Akbacak et al. · 2015 [cited by applicant]
US 20150379414A1 · Yeh et al. · 2015 [cited by applicant]
US 20160239758A1 · Jeong et al. · 2016 [cited by applicant]
US 20160267166A1 · Kohlmeier et al. · 2016 [cited by applicant]
US 20160314348A1 · Wang et al. · 2016 [cited by applicant]
US 20160373456A1 · Vermeulen · 2016 [cited by examiner]
US 20170068903A1 · Hakkani-Tur et al. · 2017 [cited by applicant]
US 20170076206A1 · Lastras-Montano et al. · 2017 [cited by applicant]
US 20170329844A1 · Tacchi · 2017 [cited by examiner]
US 20170330094A1 · Lindsley · 2017 [cited by applicant]
US 20170344711A1 · Liu et al. · 2017 [cited by applicant]
US 20180082183A1 · Hertz et al. · 2018 [cited by applicant]
US 20180129959A1 · Gustafson et al. · 2018 [cited by applicant]
US 20180137424A1 · Royval et al. · 2018 [cited by applicant]
US 20180150750A1 · Verdejo et al. · 2018 [cited by applicant]
US 20180203924A1 · Agrawal et al. · 2018 [cited by applicant]
US 20180210913A1 · Beller · 2018 [cited by examiner]
US 20180218011A1 · Taycher et al. · 2018 [cited by applicant]
US 20180218066A1 · Krishnan et al. · 2018 [cited by applicant]
US 20180357238A1 · Cowan et al. · 2018 [cited by applicant]
US 20190057310A1 · Olmstead et al. · 2019 [cited by applicant]
US 20190087755A1 · Hull et al. · 2019 [cited by applicant]
US 20190095530A1 · Booker et al. · 2019 [cited by applicant]
US 20190129961A1 · Maiti et al. · 2019 [cited by applicant]
US 20190146970A1 · Chamieh · 2019 [cited by examiner]
US 20190155961A1 · Alonso et al. · 2019 [cited by applicant]
US 20190278777A1 · Malik et al. · 2019 [cited by applicant]
US 20190294732A1 · Srinivasan et al. · 2019 [cited by applicant]
US 20190324780A1 · Zhu et al. · 2019 [cited by applicant]
US 20200097560A1 · Kulkarni · 2020 [cited by examiner]
US 20200117658A1 · Venkata · 2020 [cited by examiner]
US 20200134492A1 · Copeland · 2020 [cited by applicant]
US 20200250235A1 · Abhyankar et al. · 2020 [cited by applicant]
US 20200301953A1 · Abhyankar et al. · 2020 [cited by applicant]
US 20200364619A1 · Kazemi et al. · 2020 [cited by applicant]
US 20200372026A1 · Hyde et al. · 2020 [cited by applicant]
US 20200372373A1 · Sela et al. · 2020 [cited by applicant]
US 20200409955A1 · Sela et al. · 2020 [cited by applicant]
US 20210064609A1 · Riscutia et al. · 2021 [cited by applicant]
US 20210166141A1 · Taguchi et al. · 2021 [cited by applicant]
US 20210350125A1 · Arvela et al. · 2021 [cited by applicant]
US 20220075948A1 · Yuan et al. · 2022 [cited by applicant]