# US 2012/0239641 A1 · Memory quota

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2012/0239641 A1
- Document ID: US20120239641A1
- Status: Published application
- Kind: A1
- Application number: 13/051,986
- Filed: 2011-03-18
- Published: 2012-09-20
- Earliest claimed: 2011-03-18
- Assignees: EMC Corporation
- Inventors: Sivaramakrishnan Narayanan; Florian Michael Waas; Joy Jie Kent
- Web page: https://patentgrep.com/patent/US20120239641A1

## CPC

- G06F 16/24554: {Unary operations; Data partitioning operations}
- G06F 12/08: in hierarchically structured memory systems, e.g. virtual memory systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, article of manufacture, and apparatus for processing queries, comprising analyzing a query tree, determining at least one operator based on the query tree analysis, assigning a memory allocation for each of the at least one operator, and storing the assignment in a storage device. In some embodiments, a memory classification for each of the at least one operator is determined. In some embodiments, assigning a memory allocation for each of the at least one operator includes assigning a memory allocation based on the memory classification.

## Claims

### Claim 1

A method for processing database queries in a database system, comprising:
analyzing a query comprising a plurality of operators to determine types of operators;
determining for said types of operators an amount of memory required for processing the query; and
assigning a memory allocation of said amount of memory for each type of operator.

### Claim 2 (depends on 1)

The method as recited in claim 1, further comprising determining a memory classification for each type of operator.

### Claim 3 (depends on 2)

The method as recited in claim 2, wherein assigning said memory allocation includes assigning said memory allocation based on the memory classification.

### Claim 4 (depends on 2)

The method as recited in claim 2, wherein determining said memory classification is comprises determining said memory classification based on the type of operator.

### Claim 5 (depends on 2)

The method as recited in claim 2, wherein determining said memory classification comprises classifying an operator type as one of non-memory intensive or memory intensive.

### Claim 6 (depends on 5)

The method as recited in claim 5, wherein the memory allocation is determined by a user.

### Claim 7 (depends on 5)

The method as recited in claim 5, wherein assigning a memory allocation comprises allocating a predetermined portion of said amount of memory to non-memory intensive types of operators, and dynamically allocating as required for processing other portions of said amount of memory to memory intensive operators.

### Claim 8

A system for processing database queries, comprising a processor configured to analyze a query comprising a plurality of operators to determine types of operators, determine for said types of operators an amount of memory required for processing said query, and assign a memory allocation of said amount of memory for each type of operator.

### Claim 9

A computer program product for processing database queries, comprising a non-transitory computer readable medium having program instructions embodied therein for controlling a machine for:
analyzing a query comprising a plurality of operators to determine types of operators;
determining for said types of operators an amount of memory required for processing the query; and
assigning a memory allocation of said amount of memory for each type of operator.

### Claim 10 (depends on 9)

The computer program product of claim 9 further comprising classifying an operator type as one of non-memory intensive or memory intensive.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein assigning said memory allocation comprises allocating a predetermined portion of said amount of memory to non-memory intensive types of operators, and dynamically allocating as required for processing other portions of said amount of memory to memory intensive operators.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein there are a plurality of queries, and said dynamically allocating comprises dynamically adjusting the memory allocated to a query based upon a number of queries concurrently being processed.

### Claim 13 (depends on 12)

The computer program product of claim 12 further comprising dynamically limiting the number of queries that can be processed concurrently based upon the types of operators of the queries.

### Claim 14 (depends on 7)

The method of claim 7, wherein there are a plurality of queries, and said dynamically allocating comprises dynamically adjusting the memory allocated to said query based upon a number of queries concurrently being processed.
