Environment Mode

This document primarily introduces the three types of environments involved in TuGraph.

1.Classification

Based on the different functionalities supported by the environments, they can be categorized into the following:

  • Compilation Environment: This environment includes all the dependencies required for compiling TuGraph. It contains all the dependencies of the runtime environment and is capable of compiling TuGraph source code. However, it does not include pre-compiled TuGraph executable files and library files. It is intended for developers to compile the source code.

  • Runtime Environment: This environment includes GCC/Java/Python environments, enabling the execution of all TuGraph functionalities. It can support full-text indexing, Java client, uploading C++ source code as a plugin, and running Python plugins. It comes with pre-compiled TuGraph executable files and library files, allowing customers to directly install and use TuGraph without the need for source code compilation.

  • Mini-Runtime Environment: This environment is equivalent to a bare system with pre-compiled TuGraph. It can only run the basic functionalities of TuGraph, without the ability to compile and run C++ plugins, lack of full-text indexing, and absence of Python plugins. It is designed for quick deployment and trial purposes.

After compiling TuGraph, all the required dependencies are packaged together in the form of .a files, eliminating the need for unnecessary additional dependencies during runtime. However, since TuGraph supports stored procedures, which involve compiling C++ code on the server, the required compilers still need to be present in the environment.

2.System Library

For the three types of environments, the required system libraries, excluding the TuGraph runtime package, are as follows:

  • Compilation Environment: It includes GCC, Python, Java compilers, as well as libraries such as ANTLR4 and Pybind11. Please refer to the tugraph-compile-*-Dockerfile for more details.

  • Runtime Environment: The main dependencies introduced by stored procedures include GCC, Boost, CMake, and others. Please refer to the tugraph-runtime-*-Dockerfile for more details.

  • Mini-Runtime Environment: There are no additional system library dependencies. Please refer to the tugraph-mini-runtime-*-Dockerfile for more details.