What underlying programming language is TigerGraph implemented with?

Hi TG team members!

I am now making a comprehensive comparison amongst popular graph databases, and found something interesting. In spite of many competitors, TG still remains dominantly fast when it comes to applications with extremely huge data and long hops between edges. I knew some graph databases strive to achieve a competitive edge by using faster programming languages (such as Golang which introduces special mechanisms like goroutines without thread-local storage) and “twisting” the code. However, these measures seldom come with algorithmic-level improvement (such as from O(N) to O(logN)).

I wonder if I could know with which programming language you implemented TG? Supposedly, it could be C++ or Golang? Thank you.

Hi Muenchen,

Glad you are enjoying the performance of TigerGraph. From https://www.tigergraph.com/tigergraph-db/

Our core system was developed from scratch using C++ and system programming concepts to provide an integrated data technology stack. A native graph storage engine (GSE) was developed to co-locate with the graph processing engine (GPE) for fast and efficient processing of data and algorithms.The GPE is designed to provide built-in parallelism for a MapReduce-based computing model available via APIs. The DB graph is optimally stored both on disk and in-memory, allowing the system to take advantage of the data locality on disk, in-memory and CPU cache.

1 Like

@Lenny_Chen Thank you for the reply. It indeed comes with lots of details. Still, I am a little bit curious if we have access to the GSE and GPE directly?

Does someone know something regarding my question in the above? I searched through the official Docs, and found that the underlying graph processing engine (GPE) and the graph storage engine (GSE) seem to be inaccessible to ordinary users. That is, we could not leverage the merits offered by both, and write our know graph library on top of it. Is my understanding right? Correct me if I am taking it wrong. Thank you a lot!

Hi @Muenchen,

You can definitely leverage the merits of TigerGraph (components) and develop your own graph library on of it by using our GSQL language. GSQL is both a query language and a full programming language (a Turing complete language, with procedural extensions such as IF, FOREACH, etc.).

In fact, we used GSQL to develop our TigerGraph In-Database Graph Data Science Algorithm Library which is open source, so you can study and tweak the code. Due to the inherent power of the TigerGraph engine, there is no need to use C++ or any other low level programming languages to get excellent performance out of TigerGraph.

1 Like

Thank you for your reply. Yes, I found the GitHub repo where lots of graph algorithms were curated. But I am still in the process of adapting myself to the weird syntax of TG.