Real-time query processing over billion node graphs is a very challenging problem. Indices are indispensable for processing advanced graph queries. However, only extremely lightweight easy-to-update indices are affordable on billion node graphs. In this demo, we present a distributed in-memory graph engine for massive graph processing. With efficient graph exploration capability, we support low-latency real-time graph queries on billion node graphs with almost no index. Three representative graph applications are built on the top of Trinity：
1. People Search on a Social Graph
How to perform search efficiently in a web-scale social network is a challenging task. Currently, a person has 130 friends on average in Facebook. Searching within 2 hop means accessing 130+1302 nodes, and searching within 3 hop means accessing 130+1302+1303 (more than 2.2 million) nodes. The search must be conducted very efficiently. In the demo, we simulate a Facebook social graph. The data is deployed on 15 machines.
The following screenshot shows that 2-hop query can be completed within 10 ms.
The following screenshot shows that 3-hop query can be completed within 100 ms.
2. SPARQL query on the Satori RDF graph.
Satori is a knowledge repository created by Microsoft. It aims to build the world’s largest repository of knowledge. The RDF graph of Satori has more than 300 million nodes and more than 800 million edges. SPARQL is the query language for RDF data, processing SPARQL is essentially a subgraph matching problem. In this demo, we will show SPARQL queries on the Satori RDF graph.
3. Subgraph matching query on large labeled graphs.
Subgraph matching is one of the most fundamental operators in many applications that handle graphs, including protein-protein interaction networks, knowledge bases, and program analysis. We use efficient in-memory graph exploration, instead of expensive joins, to support efficient subgraph matching on billion node graph. In this demo, we will show subgraph matching queries on large labeled graphs.