IP Library Granted Patent US 10,152,429
Granted Patent B2
US 10,152,429 · App. 14/924,594 · Granted Dec 11, 2018

Predictive memory management

Inventor: Thorvald Natvig (Palo Alto, CA)
Assignee: Medallia, Inc.
G06F12/109G06F12/122G06F17/30474G06F12/12G06F2212/657
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,152,429
App. No.
14/924,594
Granted
Dec 11, 2018
Kind
B2
Abstract

A query for data stored in a database that includes a set of segments is received at a computer system. The set of segments are divided into a plurality of columns and at least one column of the plurality of columns includes one or more fields. The system analyzes the query to determine fields required to be retrieved from the database. The system determines whether a required field of the query is located in a main memory of the computer system. The system creates an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query.

Claims (37)

1. A method of retrieving information from a computer system, comprising:

receiving a query for data stored in a database that includes a set of segments, wherein the query comprises one or more fields, wherein the set of segments are divided into a plurality of columns, wherein at least one column of the plurality of columns includes the one or more fields;

analyzing the query to determine which of the one or more fields are required to be retrieved from the database;

determining that a required field of the query is not located in a main memory of the computer system;

in response to determining that the required field of the query is not located in the main memory of the computer system, creating an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query; and

reducing an amount of time needed to execute the query at least in part by:

loading data of the column containing the required field from a long term storage that includes the database into the main memory; and

executing the query when at least a portion of data corresponding to the one or more fields is stored in the main memory.

2. The method of claim 1 , wherein the at least the portion of data corresponding to the one or more fields corresponds to the data of the column.

3. The method of claim 1 , wherein correlated fields are included together in a column.

4. The method of claim 3 , wherein the correlated fields are frequently part of a same query.

5. The method of claim 1 , wherein creating an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query further includes determining whether a segment of the set of segments stores values of the required field that are within a range of values specified in the query.

6. The method of claim 1 , wherein creating an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query further includes creating a list of memory segments and columns corresponding to the required field.

7. The method of claim 1 , wherein the loaded data overwrites data that corresponds to least frequently queried fields previously stored in the main memory.

8. The method of claim 1 , wherein the set of segments are sequentially stored in the long term storage.

9. The method of claim 1 , wherein the set of segments are stored in the long term storage in an order based at least in part on the columns.

10. The method of claim 1 , wherein the query is executed first on segments already found in main memory.

11. A system for retrieving information from a computer system, comprising:

main memory;

long term storage; and

a query analyzer implemented on a processor configured to:

receive a query for data stored in a database that includes a set of segments, wherein the query comprises one or more fields, wherein the set of segments are divided into a plurality of columns, wherein at least one column of the plurality of columns includes one or more fields;

analyze the query to determine which of the one or more fields are required to be retrieved from the database;

determine that a required field of the query is not located in the main memory;

in response to determining that the required field of the query is not located in the main memory of the computer system, create an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query; and

reduce an amount of time needed to execute the query at least in part by:

load data of the column containing the required field from the long term storage into the main memory; and

execute the query when at least a portion of the data corresponding to the one or more fields is stored in the main memory.

12. The system of claim 11 , wherein the at least the portion of data corresponding to the one or more fields corresponds to the data of the column.

13. The system of claim 11 , wherein correlated fields are included together in a column.

14. The system of claim 13 , wherein the correlated fields are frequently part of a same query.

15. The system of claim 11 , wherein to create an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query further includes to determine whether a segment of the set of segments stores values of the required field that are within a range of values specified in the query.

16. The system of claim 11 , wherein to create an input/output request for a column containing the required field for a plurality of segments of the set of segments prior to executing the query further includes to create a list of memory segments and columns corresponding to the required field.

17. The system of claim 11 , wherein the loaded data overwrites data that corresponds to least frequently queried fields previously stored in the main memory.

18. The system of claim 11 , wherein the set of segments are sequentially stored in the long term storage.

19. The system of claim 11 , wherein the set of segments are stored in the long term storage in an order based on the columns.

20. The system of claim 11 , wherein the query is executed first on segments already found in main memory.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Apr 13, 2022
From: WELLS FARGO BANK NA
To: MEDALLION, INC
Reel/Frame 059581/0865 →
CORRECTIVE ASSIGNMENT TO CORRECT THE THE LIST OF PATENT PROPERTY NUMBER TO INCLUDE TWO PATENTS THAT WERE MISSING FROM THE ORIGINAL FILING PREVIOUSLY RECORDED AT REEL: 057968 FRAME: 0430. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 1, 2021
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: MEDALLIA, INC.
Reel/Frame 057982/0092 →
SECURITY INTEREST Recorded Oct 29, 2021
From: MEDALLIA, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 057964/0016 →
RELEASE OF SECURITY INTEREST Recorded Oct 29, 2021
From: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS ADMINISTRATIVE AGENT
To: MEDALLIA, INC.
Reel/Frame 057968/0430 →
SECURITY INTEREST Recorded Jul 28, 2021
From: MEDALLIA, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 057011/0012 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 6, 2016
From: NATVIG, THORVALD
To: MEDALLIA, INC.
Reel/Frame 037418/0781 →
Continuity (1)
Related Publication 20170116263A1 · Apr 27, 2017