IP Library › Granted Patent US 11,288,179
Granted Patent B2
US 11,288,179 · App. 16/939,553 · Granted Mar 29, 2022

Co-operative memory management system

Inventors: Angela Lin (Kanata, CA); Robert Walker (Carleton Place, CA); Marin Creanga (Ottawa, CA); Dylan Ellicott (Ottawa, CA); Alex Fitzpatrick (Ottawa, CA)
Assignee: Kinaxis Inc.
G06F12/0238G06F9/5016G06F9/5083
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,288,179
App. No.
16/939,553
Granted
Mar 29, 2022
Kind
B2
Abstract

Systems and methods for computer memory management by a memory coordinator and a plurality of memory consumers. An urgency and memory quota of each memory consumer is initialized by the memory coordinator, which then adjusts the memory quota of each memory consumer such that the sum of the memory quota of each memory consumer does not exceed a finite amount of computer memory. Each memory consumer adjusts its memory usage in response to the quota input and urgency input from the memory coordinator.

Claims (39)

1. A method for computer memory management by a memory coordinator and a plurality of memory consumers, the method comprising:

setting, by the memory coordinator, an urgency of each memory consumer;

adjusting, by the memory coordinator, a memory quota of each memory consumer such that a sum of the memory quota of each memory consumer does not exceed a finite amount of computer memory; and

adjusting, by each memory consumer, a memory usage in response to a quota input and an urgency input from the memory coordinator to the memory consumer;

wherein the urgency of each memory consumer increases as the sum of the memory usage of the plurality of memory consumers approaches the finite amount of computer memory.

2. The method of claim 1 , further comprising:

setting, by the memory coordinator, a first memory limit that is a fraction of the finite amount of computer memory, wherein the sum of the memory quota of each memory consumer is less than the first memory limit.

3. The method of claim 2 , further comprising:

setting, by the memory coordinator, a second memory limit that is a fraction of the first memory limit, wherein the sum of the memory quota of each memory consumer is less than the second memory limit.

4. The method of claim 1 , further comprising: releasing, by the memory consumer, an amount of memory held by the memory consumer as the memory usage of the memory consumer approaches or exceeds the memory quota of the memory consumer.

5. The method of claim 4 , wherein the amount of memory released by the memory consumer depends on the urgency input from the memory coordinator.

6. The method of claim 1 , in which adjusting the memory quota of each memory consumer further comprises:

requesting, by the memory coordinator, the memory usage of each memory consumer;

ranking, by the memory coordinator, each memory consumer based on a quota need and a memory release capability of each memory consumer; and

rebalancing, by the memory coordinator, the memory quota of each memory consumer.

7. The method of claim 6 , wherein the memory release capability of each memory consumer is based, in part, on: a) a difference between the memory usage and the memory quota; b) rate of change of the difference over time; and c) rate of change in the memory usage over time.

8. The method of claim 1 , further comprising:

releasing, by the memory consumer, an amount of memory held by the memory consumer without the quota input or the urgency input from the memory coordinator.

9. A system for computer memory management by a memory coordinator and a plurality of memory consumers, the system comprising:

a processor; and

a memory storing instructions that, when executed by the processor, configure the system to:

set, by the memory coordinator, an urgency of each memory consumer;

adjust, by the memory coordinator, a memory quota of each memory consumer such that a sum of the memory quota of each memory consumer does not exceed a finite amount of computer memory; and

adjust, by each memory consumer, a memory usage in response to a quota input and an urgency input from the memory coordinator to the memory consumer;

wherein the urgency of each memory consumer increases as the sum of the memory usage of the plurality of memory consumers approaches the finite amount of memory.

10. The system of claim 9 , wherein the instructions further configure the system to:

set, by the memory coordinator, a first memory limit that is a fraction of the finite amount of computer memory, wherein the sum of the memory quota of each memory consumer is less than the first memory limit.

11. The system of claim 10 , wherein the instructions further configure the system to:

set, by the memory coordinator, a second memory limit that is a fraction of the first memory limit, wherein the sum of the memory quota of each memory consumer is less than the second memory limit.

12. The system of claim 9 , wherein the instructions further configure the system to:

release, by the memory consumer, an amount of memory held by the memory consumer as the memory usage of the memory consumer approaches or exceeds the memory quota of the memory consumer.

13. The system of claim 12 , wherein the amount of memory released by the memory consumer depends on the urgency input from the memory coordinator.

14. The system of claim 9 , wherein while adjusting the memory quota of each memory consumer, the instructions further configure the system to:

request, by the memory coordinator, the memory usage of each consumer;

rank, by the memory coordinator, each memory consumer based on a quota need and a memory release capability of each memory consumer; and

rebalance, by the memory coordinator, the memory quota of each memory consumer.

15. The system of claim 14 , wherein the memory release capability of each memory consumer is based, in part, on: a) a difference between the memory usage and the memory quota; b) rate of change of the difference over time; and c) rate of change in the memory usage over time.

16. The system of claim 9 , wherein the instructions further configure the system to:

release, by the memory consumer, an amount of memory held by the memory consumer without the quota input or the urgency input from the memory coordinator.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2025
From: LIN, ANGELA; CREANGA, MARIN; ELLICOTT, DYLAN; WALKER, ROBERT NIGEL; FITZPATRICK, ALEX
To: KINAXIS INC.
Reel/Frame 070567/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2020
From: LIN, ANGELA
To: KINAXIS INC.
Reel/Frame 053318/0075 →
Continuity (2)
Continuation 16412668 · May 15, 2019
Related Publication 20200364139A1 · Nov 19, 2020
Cited By (1)
US 12,613,798