This topic describes the architecture and functions of the Meta Service.
The architecture of the Meta Service¶
The architecture of the Meta Service is as follows.
The Meta Service is run by the nebula-metad processes. You can deploy nebula-metad processes according to the scenario:
- In a test environment, you can deploy one or three nebula-metad processes on different machines or a single machine.
- In a production environment, we recommend that you deploy three processes on different machines for high availability.
All the nebula-metad processes form a Raft-based cluster, with one process as the leader and the others as the followers. The leader is elected by quorum, and only the leader can provide service to the clients and other components of Nebula Graph. The followers run in a standby way and each has a data replication of the leader. Once the leader fails, one of the followers will be elected as the new leader.
Functions of the Meta Service¶
Manages user accounts¶
The Meta Service stores the information of user accounts and the privileges granted to the accounts. When the clients send queries to the Graph Service through an account, the Graph Service checks the account information and whether the account has the right privileges to execute the queries or not.
For more information on Nebula Graph access control, see Authentication and authorization.
The Meta Service stores and manages the locations of the storage partitions and helps balance the partitions.
Manages graph spaces¶
Nebula Graph supports multiple graph spaces. Data stored in different graph spaces are securely isolated. The Meta Service stores the metadata of all graph spaces and tracks the changes of them, such as adding or dropping a graph space.
Manages schema information¶
Nebula Graph is a strong-typed graph database. Its schema contains tags (i.e., the vertex types), edge types, tag properties, and edge type properties.
The Meta Service stores the schema information. Besides, it performs the addition, modification, and deletion of the schema, and logs the versions of them.
For more information on Nebula Graph schema, see Data model.
Manages TTL-based data eviction¶
The Meta Service provides automatic data eviction and space reclamation based on TTL (time to live) options for Nebula Graph.
For more information on TTL, see TTL options.
The Job Manager module in the Meta Service is responsible for the creation, queuing, querying and deletion of jobs.