Method and mechanism for efficient re-distribution of in-memory columnar units in a clustered RDBMS on topology change
First Claim
1. A method comprising:
- maintaining at a particular node, in a system that includes a plurality of nodes, a mapping that indicates;
a plurality of host nodes for a particular chunk of data, wherein each host node of the plurality of host nodes is a node that has been assigned to load a copy of the particular chunk of data into its volatile memory; and
for each host node, of the plurality of host nodes, a registration timestamp corresponding to a most recent time at which the particular node registered the host node as a host for the particular chunk of data;
maintaining, at the particular node, a global completion timestamp that indicates a particular time;
wherein, at the particular time, all host nodes that had been assigned to the particular chunk had completed loading the particular chunk into their respective volatile memories;
receiving, at the particular node, a query requiring access to the particular chunk;
in response to the query, performing the steps of;
selecting a particular host node, of the plurality of host nodes, based at least in part on comparisons between the global completion timestamp and the registration timestamps of the plurality of host nodes;
wherein the particular host node is selected to be a target candidate to perform work for the query based, at least in part, on the registration timestamp of the particular host node being less than the global completion timestamp;
causing the particular host node to perform work, for the query, that involves accessing data items in the particular chunk;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve redistributing the in-memory database object portions on changes to the clustered database system. Each node may maintain a mapping indicating which nodes in the clustered database system store which chunks, and timestamps indicating when each mapping entry was created or updated. A query coordinator may use the timestamps to select a database server instance with local in memory access to data required by a portion of a query to process that portion of the query.
8 Citations
14 Claims
-
1. A method comprising:
-
maintaining at a particular node, in a system that includes a plurality of nodes, a mapping that indicates; a plurality of host nodes for a particular chunk of data, wherein each host node of the plurality of host nodes is a node that has been assigned to load a copy of the particular chunk of data into its volatile memory; and for each host node, of the plurality of host nodes, a registration timestamp corresponding to a most recent time at which the particular node registered the host node as a host for the particular chunk of data; maintaining, at the particular node, a global completion timestamp that indicates a particular time; wherein, at the particular time, all host nodes that had been assigned to the particular chunk had completed loading the particular chunk into their respective volatile memories; receiving, at the particular node, a query requiring access to the particular chunk; in response to the query, performing the steps of; selecting a particular host node, of the plurality of host nodes, based at least in part on comparisons between the global completion timestamp and the registration timestamps of the plurality of host nodes; wherein the particular host node is selected to be a target candidate to perform work for the query based, at least in part, on the registration timestamp of the particular host node being less than the global completion timestamp; causing the particular host node to perform work, for the query, that involves accessing data items in the particular chunk; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. One or more non-transitory computer-readable media storing instructions, wherein the instructions include:
-
instructions which, when executed by one or more hardware processors, cause maintaining at a particular node, in a system that includes a plurality of nodes, a mapping that indicates; a particular chunk of data; a plurality of host nodes for the particular chunk of data, wherein each host node of the plurality of host nodes is a node that has been assigned to load a copy of the particular chunk of data into its volatile memory; and for each host node, of the plurality of host nodes, a registration timestamp corresponding to a most recent time at which the particular node the host node as a host node for the particular chunk of data; instructions which, when executed by one or more hardware processors, cause maintaining, at the particular node, a global completion timestamp that indicates a particular time; wherein, at the particular time, all host nodes that had been assigned to the particular chunk had completed loading the particular chunk into their respective volatile memories; instructions which, when executed by one or more hardware processors, cause receiving, at the particular node, a query requiring access to the particular chunk; instructions which, when executed by one or more hardware processors, cause in response to the query, performing the steps of; selecting a particular host node, of the plurality of host nodes, based at least in part on comparisons between the global completion timestamp and the registration timestamps of the plurality of host nodes; wherein the particular host node is selected to be a target candidate to perform work for the query based, at least in part, on the registration timestamp of the particular host node being less than the global completion timestamp; causing the particular host node to perform work, for the query, that involves accessing data items in the particular chunk. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
Specification