IP Library › Granted Patent US 11,669,442
Granted Patent B2
US 11,669,442 · App. 17/521,699 · Granted Jun 6, 2023

Co-operative memory management system

Inventors: Angela Lin (Kanata, CA); Robert Nigel Walker (Ottawa, 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,669,442
App. No.
17/521,699
Granted
Jun 6, 2023
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 (77)

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;

prioritizing, by the memory coordinator, allocation of the memory quota of each memory consumer based on a memory release capability of the respective memory consumer; 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 respective 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:

inferring, by the memory coordinator, the memory release capability of each memory consumer based on a rate at which the memory usage of each memory consumer exceeds the quota of the respective memory consumer.

3. The method of claim 1 , wherein the urgency of each memory consumer is based on at least one of:

i) a first difference equal to a first memory limit minus a sum of all the memory usage by the plurality of the memory consumers; and

ii) a second difference equal to a second memory limit minus the sum of all the memory usage by the plurality of the memory consumers;

wherein:

the first memory limit is a fraction of the finite amount of computer memory;

the sum of the memory quota of each memory consumer is less than the first memory limit; and

the second memory limit is a fraction of the first memory limit.

4. The method of claim 3 , wherein the sum of the memory quota of each memory consumer is less than the second memory limit.

5. The method of claim 1 , further comprising:

ranking, by the memory coordinator, each memory consumer based on the memory release capability of the respective memory consumer.

6. The method of claim 5 , wherein the memory release capability of the respective memory consumer is partly based on a change in a difference between the memory usage and the quota of the respective memory consumer, over time.

7. The method of claim 1 , further comprising:

ranking, by the memory coordinator, each memory consumer;

wherein the ranking of each memory consumer is based on:

i) a difference between the memory usage and the quota of the respective memory consumer;

ii) a change in the difference over time; and

iii) a change in memory usage over time.

8. A system comprising:

a processor; and

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

set, by a memory coordinator, an urgency of each memory consumer of a plurality of memory consumers;

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;

prioritize, by the memory coordinator, allocation of the memory quota of each memory consumer based on a memory release capability of the respective memory consumer; 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 respective 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.

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

infer, by the memory coordinator, the memory release capability of each memory consumer based on a rate at which the memory usage of each memory consumer exceeds the quota of the respective memory consumer.

10. The system of claim 8 , wherein the urgency of each memory consumer is based on at least one of:

i) a first difference equal to a first memory limit minus a sum of all the memory usage by the plurality of the memory consumers; and

ii) a second difference equal to a second memory limit minus the sum of all the memory usage by the plurality of the memory consumers;

wherein:

the first memory limit is a fraction of the finite amount of computer memory;

the sum of the memory quota of each memory consumer is less than the first memory limit; and

the second memory limit is a fraction of the first memory limit.

11. The system of claim 10 , wherein the sum of the memory quota of each memory consumer is less than the second memory limit.

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

rank, by the memory coordinator, each memory consumer based on the memory release capability of the respective memory consumer.

13. The system of claim 12 , wherein the memory release capability of the respective memory consumer is partly based on a change in a difference between the memory usage and the quota of the respective memory consumer, over time.

14. The system of claim 8 , wherein the instructions further configure the apparatus to:

rank, by the memory coordinator, each memory consumer;

wherein the ranking of each memory consumer is based on:

i) a difference between the memory usage and the quota of the respective memory consumer;

ii) a change in the difference over time; and

iii) a change in memory usage over time.

15. A non-transitory computer-readable storage medium, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

set, by a memory coordinator, an urgency of each memory consumer from a plurality of memory consumers;

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;

prioritize, by the memory coordinator, allocation of the memory quota of each memory consumer based on a memory release capability of the respective memory consumer; 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 respective 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.

16. The computer-readable storage medium of claim 15 , wherein the instructions further configure the computer to:

infer, by the memory coordinator, the memory release capability of each memory consumer based on a rate at which the memory usage of each memory consumer exceeds the quota of the respective memory consumer.

17. The computer-readable storage medium of claim 15 , wherein the urgency of each memory consumer is based on at least one of:

i) a first difference equal to a first memory limit minus a sum of all the memory usage by the plurality of the memory consumers; and

ii) a second difference equal to a second memory limit minus the sum of all the memory usage by the plurality of the memory consumers;

wherein:

the first memory limit is a fraction of the finite amount of computer memory;

the sum of the memory quota of each memory consumer is less than the first memory limit; and

the second memory limit is a fraction of the first memory limit.

18. The computer-readable storage medium of claim 17 , wherein the sum of the memory quota of each memory consumer is less than the second memory limit.

19. The computer-readable storage medium of claim 15 , wherein the instructions further configure the computer to:

rank, by the memory coordinator, each memory consumer based on the memory release capability of the respective memory consumer.

20. The computer-readable storage medium of claim 19 , wherein the memory release capability of the respective memory consumer is partly based on a change in a difference between the memory usage and the quota of the respective memory consumer, over time.

21. The computer-readable storage medium of claim 15 , wherein the instructions further configure the computer to:

rank, by the memory coordinator, each memory consumer;

wherein the ranking of each memory consumer is based on:

i) a difference between the memory usage and the quota of the respective memory consumer;

ii) a change in the difference over time; and

iii) a change in memory usage over time.

Assignments (1)
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 →
Continuity (3)
Continuation 16939553 · Jul 27, 2020
Continuation 16412668 · May 15, 2019
Related Publication 20220066922A1 · Mar 3, 2022
Cited By (1)
US 12,468,745