Non-uniform memory access (NUMA) database management system
First Claim
Patent Images
1. A computer implemented method, comprising:
- receiving a request to load data from a storage device into an in-memory database, wherein the in-memory database is distributed across a plurality of nodes, each node comprising a local memory;
determining, by at least one processor, a preferred one of the plurality of nodes onto which to load the data from the storage device based on a bitmap indicating the preferred node based on a workload of the plurality of nodes and a relative distance from a client;
determining whether the preferred node has sufficient free local memory in a free list to store the data, wherein if the preferred node does not have sufficient free list memory;
requesting an allocation of heap memory to be allocated to the preferred node,storing the data in the requested heap memory, andbinding the requested heap memory storing the data to the preferred node; and
providing, responsive to the request, an address of the allocated heap memory by which the data is accessed;
wherein at least one of the receiving, determining the preferred node, determining whether the preferred node has sufficient free memory, and providing are performed by one or more computers.
1 Assignment
0 Petitions
Accused Products
Abstract
Disclosed herein are system, method, and computer program product embodiments for managing non-uniform memory access (NUMA) in a database management system. An embodiment operates by receiving a request to load data from a disk into an in-memory database. An optimal one of the plurality of nodes onto which to load the data from the disk based on a system state is determined. It is determined whether the optimal node has sufficient free local memory in a free list to store the data. If the optimal node does not have sufficient free list memory, a memory allocation is requested from an operating system. An address of the memory storing the data is provided.
-
Citations
19 Claims
-
1. A computer implemented method, comprising:
-
receiving a request to load data from a storage device into an in-memory database, wherein the in-memory database is distributed across a plurality of nodes, each node comprising a local memory; determining, by at least one processor, a preferred one of the plurality of nodes onto which to load the data from the storage device based on a bitmap indicating the preferred node based on a workload of the plurality of nodes and a relative distance from a client; determining whether the preferred node has sufficient free local memory in a free list to store the data, wherein if the preferred node does not have sufficient free list memory; requesting an allocation of heap memory to be allocated to the preferred node, storing the data in the requested heap memory, and binding the requested heap memory storing the data to the preferred node; and providing, responsive to the request, an address of the allocated heap memory by which the data is accessed; wherein at least one of the receiving, determining the preferred node, determining whether the preferred node has sufficient free memory, and providing are performed by one or more computers. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 19)
-
-
10. A system, comprising:
-
a memory; and at least one processor coupled to the memory and configured to; receive a request to load data from a storage device into an in-memory database, wherein the in-memory database is distributed across a plurality of nodes, each node comprising a local memory; determine, by at least one processor, a preferred one of the plurality of nodes onto which to load the data from the storage device based on a bitmap indicating the preferred node based on a workload of the plurality of nodes and a relative distance from a client; determine whether the optimal node has sufficient free local memory in a free list to store the data, wherein if the preferred node does not have sufficient free list memory; request an allocation of heap memory to be allocated to the preferred node, store the data in the requested heap memory, and bind the requested heap memory storing the data to the preferred node; and provide, responsive to the request, an address of the allocated heap memory by which the data is accessed. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A tangible computer-readable device having instructions stored thereon that, when executed by at least one computing device, causes the at least one computing device to perform operations comprising:
-
receiving a request to load data from a disk into an in-memory database, wherein the in-memory database is distributed across a plurality of nodes, each node comprising a local memory; determining, by at least one processor, a preferred one of the plurality of nodes onto which to load the data from the storage device based on a bitmap indicating the preferred node based on a workload of the plurality of nodes and a relative distance from a client; determining whether the preferred node has sufficient free local memo store the data, wherein if the preferred node does not have sufficient free local memory; requesting an allocation of heap memory to be allocated to the preferred node, storing the data in the requested heap memory, and binding the requested heap memory storing the data to the preferred node; and providing, responsive to the request, an address of the allocated heap memory by which the data is accessed.
-
Specification