IP Library › Granted Patent US 12,504,991
Granted Patent B1
US 12,504,991 · App. 17/538,538 · Granted Dec 23, 2025

Workload memory management to achieve service level goals in a highly concurrent database system executing in a cloud and/or on-prem systems

Inventors: Douglas P. Brown (Rancho Santa Fe, CA); Venu Gopal Joshi (El Segundo, CA)
Assignee: Teradata US, Inc.
G06F9/5016G06F9/5022G06F9/5038G06F9/505G06F9/5077
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,504,991
App. No.
17/538,538
Granted
Dec 23, 2025
Kind
B1
Abstract

A memory management computer system arranges a set of consumers of a computer memory resource in an inverted tree hierarchy. The memory management computer system allocates the computer memory resource among the scheduling entities. Each of the scheduling entities allocates the computer memory resource among the consumers of the computer memory resource to which it is directly coupled in the hierarchy. One of the scheduling entities in the hierarchy, a modifying scheduling entity, determines that a change is required to the allocation of the computer memory resource to one of the consumers of the computer memory resource for which the modifying scheduling entity is responsible for allocating the computer memory resource. Modifying the allocation of the computer memory resource to the one of the consumers of the computer memory resource without changing the hierarchy or creating a new hierarchy.

Claims (24)

1 . A computer-based method comprising:

a memory management computer system arranging a set of consumers of a computer memory resource in a tree hierarchy, the hierarchy having a root, a plurality of branches, a plurality of leaves linked to the branches, and a scheduling entity at each location where a branch couples to the root or to another branch, wherein each branch is linked to the root or to another branch closer to the root in the hierarchy, the computer memory resource being allocated along the tree hierarchy from the root through successive scheduling entities, each scheduling entity allocating the computer memory resource along the tree hierarchy after satisfying its own needs for the computer memory resource, each scheduling entity controlling the allocation of the computer memory resource among the leaves to which it is coupled in the tree hierarchy, wherein each scheduling entity and each leaf in the plurality of leaves is a member of the set of consumers of the computer memory resource, wherein each scheduling entity is a respective computer process that runs on the memory management computer system;

the memory management computer system assigning each of the scheduling entities and each leaf a respective priority number, wherein the respective assigned priority numbers decline with distance in the hierarchy from the root, and wherein the respective assigned priority of a scheduling entity or a leaf determines the priority of that scheduling entity or leaf in the allocation of the computer memory resource amount the scheduling entities by the memory management computer system;

the memory management computer system allocating the computer memory resource among the scheduling entities according to respective priority numbers of the scheduling entities;

each of the scheduling entities allocating the computer memory resource among itself and the consumers of the computer memory resource to which it is directly coupled in the hierarchy; and

the memory management computer system determining that a under-utilizing scheduling entity is under utilizing its allotted share of the computer memory resource and temporarily setting the priority number of an over-utilizing scheduling entity to the priority number of the under-utilizing scheduling entity, wherein the over-utilizing scheduling entity is at a greater distance along the tree hierarchy than the under-utilizing scheduling entity, without changing the tree hierarchy or creating a new tree hierarchy.

2 . The computer-based method of claim 1 further comprising the memory management computer system, upon determining that the under-utilizing scheduling entity is under utilizing its allotted share of the computer memory resource, temporarily setting the priority number of the under-utilizing scheduling entity to the priority number of the over-utilizing scheduling entity.

3 . The computer-based method of claim 1 wherein a branch coupled to the root in the hierarchy is a partition.

4 . The computer-based method of claim 1 wherein the scheduling entities are control groups.

5 . A non-transitory computer-readable tangible medium, on which is recorded a computer program, the computer program comprising executable instructions, that, when executed, perform a method comprising:

a memory management computer system arranging a set of consumers of a computer memory resource in a tree hierarchy, the hierarchy having a root, a plurality of branches, a plurality of leaves linked to the branches, and a scheduling entity at each location where a branch couples to the root or to another branch, wherein each branch is linked to the root or to another branch closer to the root in the hierarchy, the computer memory resource being allocated along the tree hierarchy from the root through successive scheduling entities, each scheduling entity allocating the computer memory resource along the tree hierarchy after satisfying its own needs for the computer memory resource, each scheduling entity controlling the allocation of the computer memory resource among the leaves to which it is coupled in the tree hierarchy, wherein each scheduling entity and each leaf in the plurality of leaves is a member of the set of consumers of the computer memory resource, wherein each scheduling entity is a respective computer process that runs on the memory management computer system;

the memory management computer system assigning each of the scheduling entities and each leaf a respective priority number, wherein the respective assigned priority numbers decline with distance in the hierarchy from the root, and wherein the respective assigned priority of a scheduling entity or a leaf determines the priority of that scheduling entity or leaf in the allocation of the computer memory resource amount the scheduling entities by the memory management computer system;

the memory management computer system allocating the computer memory resource among the scheduling entities according to respective priority numbers of the scheduling entities;

each of the scheduling entities allocating the computer memory resource among itself and the consumers of the computer memory resource to which it is directly coupled in the hierarchy; and

the memory management computer system determining that a under-utilizing scheduling entity is under utilizing its allotted share of the computer memory resource and temporarily setting the priority number of an over-utilizing scheduling entity to the priority number of the under-utilizing scheduling entity, wherein the over-utilizing scheduling entity is at a greater distance along the tree hierarchy than the under-utilizing scheduling entity, without changing the tree hierarchy or creating a new tree hierarchy.

6 . The computer-based method of claim 5 further comprising the memory management computer system, upon determining that the under-utilizing scheduling entity is under utilizing its allotted share of the computer memory resource, temporarily setting the priority number of the under-utilizing scheduling entity to the priority number of the over-utilizing scheduling entity.

7 . The computer-based method of claim 5 wherein a branch coupled to the root in the hierarchy is a partition.

8 . The computer-based method of claim 5 wherein the scheduling entities are control groups.

9 . An apparatus comprising:

a memory management computer system, comprising a hardware processor and a non-transitory computer-readable storage medium, the memory management computer system arranging a set of consumers of a computer memory resource in a tree hierarchy, the hierarchy having a root, a plurality of branches, a plurality of leaves linked to the branches, and a scheduling entity at each location where a branch couples to the root or to another branch, wherein each branch is linked to the root or to another branch closer to the root in the hierarchy, the computer memory resource being allocated along the tree hierarchy from the root through successive scheduling entities, each scheduling entity allocating the computer memory resource along the tree hierarchy after satisfying its own needs for the computer memory resource, each scheduling entity controlling the allocation of the computer memory resource among the leaves to which it is coupled in the tree hierarchy, and wherein each scheduling entity and each leaf in the plurality of leaves is a member of the set of consumers of the computer memory resource, wherein each scheduling entity is a respective computer process that runs on the memory management computer system;

the memory management computer system assigning each of the scheduling entities and each leaf a respective priority number, wherein the respective assigned priority numbers decline with distance in the hierarchy from the root, and wherein the respective assigned priority of a scheduling entity or a leaf determines the priority of that scheduling entity or leaf in the allocation of the computer memory resource amount the scheduling entities by the memory management computer system;

the memory management computer system allocating the computer memory resource among the scheduling entities according to respective priority numbers of the scheduling entities;

each of the scheduling entities allocating the computer memory resource among itself and the consumers of the computer memory resource to which it is directly coupled in the hierarchy; and

the memory management computer system determining that a under-utilizing scheduling entity is under utilizing its allotted share of the computer memory resource and temporarily setting the priority number of an over-utilizing scheduling entity to the priority number of the under-utilizing scheduling entity, wherein the over-utilizing scheduling entity is at a greater distance along the tree hierarchy than the under-utilizing scheduling entity, without changing the tree hierarchy or creating a new tree hierarchy.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2021
From: BROWN, DOUGLAS P.; JOSHI, VENU GOPAL
To: TERADATA US, INC
Reel/Frame 058407/0427 →
References Cited (19)
US 9298506B2 · Rabinovici et al. · 2016 [cited by applicant]
US 20020062435A1 · Nemirovsky · 2002 [cited by examiner]
US 20050081210A1 · Day · 2005 [cited by examiner]
US 20090249020A1 · Vaidya · 2009 [cited by examiner]
US 20150143381A1 · Chin · 2015 [cited by examiner]
US 20160380921A1 · Blagodurov · 2016 [cited by examiner]
US 20170093968A1 · Chin · 2017 [cited by examiner]
US 20170364392A1 · Spivak · 2017 [cited by examiner]
US 20190171390A1 · Freche · 2019 [cited by examiner]
US 20190311493A1 · Hillborg · 2019 [cited by examiner]
US 20210089686A1 · He · 2021 [cited by examiner]
US 20220229695A1 · Ferreira · 2022 [cited by examiner]
CN 112581267A · 2021 [cited by examiner]
CN 114443263A · 2022 [cited by examiner]
DE 102018202432A1 · 2018 [cited by examiner]
JP 2015185883A · 2015 [cited by examiner]
JP 2019520646A · 2019 [cited by examiner]
WO WO2022196889A1 · 2022 [cited by examiner]
Paul Menage, Cgroups, Documentation/cgroup-v1/cpusets.txt, accessed at https://www.kernel.org/doc/Documentation/cgroup-v1/cgroups.txt on Nov. 28, 2021. [cited by applicant]