IP Library › Granted Patent US 12,079,121
Granted Patent B2
US 12,079,121 · App. 18/306,493 · Granted Sep 3, 2024

Co-operative memory management system

Inventors: Angela Lin (Ottawa, CA); Robert 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 12,079,121
App. No.
18/306,493
Granted
Sep 3, 2024
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 (56)

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

periodically sampling, by the memory coordinator, a memory usage and a quota of each memory consumer;

determining, by the memory coordinator, a QuotaDelta, a QuotaDeltaRate, and an InUseRate for each memory consumer, where

the QuotaDelta=(the memory usage−the quota),

the QuotaDeltaRate=change in the QuotaDelta over time, and

the InUseRate=change in the memory usage over time;

ranking, by the memory coordinator, each memory consumer based on a respective score of each memory consumer to obtain a ranked order, the score based on whether each of the QuotaDelta, the QuotaDeltaRate and the InUseRate of a respective memory consumer is positive or negative;

determining, by the memory coordinator, the total memory usage of the plurality of memory consumers;

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

determining, by the memory coordinator, a quota increment and a quote decrement, each of which is a first fraction of a soft memory limit, the soft memory limit being a second fraction of a finite amount of computer memory;

raising, by the memory coordinator, the quota of each memory consumer by the quota increment in the ranked order, such that a sum of each quota is below the soft memory limit; and

lowering, by the memory coordinator, the quota of each memory consumer by the quota decrement in reverse of the ranked order, such that the sum of each quota is below a hard memory limit, the hard memory limit being a third fraction of a finite amount of computer memory, and the soft memory limit being less than the hard memory limit.

2. The computer-implemented method of claim 1 , wherein:

the hard memory limit is either: 25%-95%, 80%-95%, 85%-95% or 85%-90% of the finite amount of computer memory; and

the soft memory limit is either: 25%-95%, 80%-95%, 85%-95% or 85%-90% of the hard memory limit.

3. The computer-implemented method of claim 1 , wherein when determining the quota increment and the quota decrement, the quota increment is large relative to the quota decrement when a respective urgency is low.

4. The computer-implemented method of claim 1 , wherein when determining the quota increment and the quota decrement, the quota decrement is large relative to the quota increment when a respective urgency is high.

5. The computer-implemented method of claim 1 , wherein when raising the quota of each memory consumer, an amount of quota is transferred from at least one memory consumer having a negative QuotaDelta to a memory consumer having positive QuotaDelta.

6. A system for computer memory management by a memory coordinator of 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:

periodically sample, by the memory coordinator, a memory usage and a quota of each memory consumer;

determine, by the memory coordinator, a QuotaDelta, a QuotaDeltaRate, and an InUseRate for each memory consumer, where

the QuotaDelta=(the memory usage−the quota),

the QuotaDeltaRate=change in the QuotaDelta over time, and

the InUseRate=change in the memory usage over time;

rank, by the memory coordinator, each memory consumer based on a respective score of each memory consumer to obtain a ranked order, the score based on whether each of the QuotaDelta, the QuotaDeltaRate and the InUseRate of a respective memory consumer is positive or negative;

determine, by the memory coordinator, the total memory usage of the plurality of memory consumers;

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

determine, by the memory coordinator, a quota increment and a quote decrement, each of which is a first fraction of a soft memory limit, the soft memory limit being a second fraction of a finite amount of computer memory;

raise, by the memory coordinator, the quota of each memory consumer by the quota increment in the ranked order, such that a sum of each quota is below the soft memory limit; and

lower, by the memory coordinator, the quota of each memory consumer by the quota decrement in reverse of the ranked order, such that the sum of each quota is below a hard memory limit, the hard memory limit being a third fraction of a finite amount of computer memory, and the soft memory limit being less than the hard memory limit.

7. The system of claim 6 , wherein:

the hard memory limit is either: 25%-95%, 80%-95%, 85%-95% or 85%-90% of the finite amount of computer memory; and

the soft memory limit is either: 25%-95%, 80%-95%, 85%-95% or 85%-90% of the hard memory limit.

8. The system of claim 6 , wherein when determining the quota increment and the quota decrement, the quota increment is large relative to the quota decrement when a respective urgency is low.

9. The system of claim 6 , wherein when determining the quota increment and the quota decrement, the quota decrement is large relative to the quota increment when a respective urgency is high.

10. The system of claim 6 , wherein when raising the quota of each memory consumer, an amount of quota is transferred from at least one memory consumer having a negative QuotaDelta to a memory consumer having positive QuotaDelta.

11. A non-transitory computer-readable storage medium for computer memory management by a memory coordinator of a plurality of memory consumers, the computer-readable storage medium including instructions that when executed by a computer, cause the computer to:

periodically sample, by the memory coordinator, a memory usage and a quota of each memory consumer;

determine, by the memory coordinator, a QuotaDelta, a QuotaDeltaRate, and an InUseRate for each memory consumer, where

the QuotaDelta=(the memory usage−the quota),

the QuotaDeltaRate=change in the QuotaDelta over time, and

the InUseRate=change in the memory usage over time;

rank, by the memory coordinator, each memory consumer based on a respective score of each memory consumer to obtain a ranked order, the score based on whether each of the QuotaDelta, the QuotaDeltaRate and the InUseRate of a respective memory consumer is positive or negative;

determine, by the memory coordinator, the total memory usage of the plurality of memory consumers;

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

determine, by the memory coordinator, a quota increment and a quote decrement, each of which is a first fraction of a soft memory limit, the soft memory limit being a second fraction of a finite amount of computer memory;

raise, by the memory coordinator, the quota of each memory consumer by the quota increment in the ranked order, such that a sum of each quota is below the soft memory limit; and

lower, by the memory coordinator, the quota of each memory consumer by the quota decrement in reverse of the ranked order, such that the sum of each quota is below a hard memory limit, the hard memory limit being a third fraction of a finite amount of computer memory, and the soft memory limit being less than the hard memory limit.

12. The non-transitory computer-readable storage medium of claim 11 , wherein:

the hard memory limit is either: 25%-95%, 80%-95%, 85%-95% or 85%-90% of the finite amount of computer memory; and

the soft memory limit is either: 25%-95%, 80%-95%, 85%-95% or 85%-90% of the hard memory limit.

13. The non-transitory computer-readable storage medium of claim 11 , wherein when determining the quota increment and the quota decrement, the quota increment is large relative to the quota decrement when a respective urgency is low.

14. The non-transitory computer-readable storage medium of claim 11 , wherein when determining the quota increment and the quota decrement, the quota decrement is large relative to the quota increment when a respective urgency is high.

15. The non-transitory computer-readable storage medium of claim 11 , wherein when raise the quota of each memory consumer, an amount of quota is transferred from at least one memory consumer having a negative QuotaDelta to a memory consumer having positive QuotaDelta.

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 (4)
Continuation 17521699 · Nov 8, 2021
Continuation 16939553 · Jul 27, 2020
Continuation 16412668 · May 15, 2019
Related Publication 20230259451A1 · Aug 17, 2023
Cited By (1)
US 12,613,798