Overview
Introduction
Datanode
is mainly responsible for storing the actual data for GreptimeDB. As we know, in GreptimeDB,
a table can have one or more region
s, and Datanode
is responsible for managing the reading and writing
of these region
s. Datanode
is not aware of table and can be considered as a region server
. Therefore,
Frontend
and Metasrv
operate Datanode
at the granularity of region
.
Components
A Datanode
contains all the components needed for a region server
. Here we list some of the vital parts:
- A gRPC service is provided for reading and writing region data, and
Frontend
uses this service to read and write data fromDatanode
s. - An HTTP service, through which you can obtain metrics, configuration information, etc., of the current node.
Heartbeat Task
is used to send heartbeat to theMetasrv
. The heartbeat plays a crucial role in the distributed architecture of GreptimeDB and serves as a basic communication channel for distributed coordination. The upstream heartbeat messages contain important information such as the workload of aRegion
. If theMetasrv
has made scheduling(such asRegion
migration) decisions, it will send instructions to theDatanode
via downstream heartbeat messages.- The
Datanode
does not include components like thePhysical Planner
,Optimizer
, etc. (these are placed in theFrontend
). The user's query requests for one or moreTable
s will be transformed intoRegion
query requests in theFrontend
. TheDatanode
is responsible for handling theseRegion
query requests. - A
Region Manager
is used to manage allRegion
s on aDatanode
. - GreptimeDB supports a pluggable multi-engine architecture, with existing engines including
File Engine
andMito Engine
.