Parallel Graph Algorithms in Neo4j

Recently I was interviewed for the wonderful Graphistania Podcast. I got to talk about my previous work with Neo4j and the Diplom thesis (master equivalent) i am currently writing. The prior work was my student research project (“Großer Beleg”; think about it like a smaller master thesis) about “Parallel Graph Algorithms in Neo4j”. I gave a (preview) talk about it at a Graph Database Meetup in December of 2015 and finished my work on this years 29th of April 😀 . Since then, the guys at Neo Technology didn’t stay idle and released Neo4j version 3.0 which made some of my work a little bit outdated. Mainly because i would have loved to integrate user defined procedures. Some of my code i contributed to the Awesome Procedures On Cypher (APOC) repository (hopefully I can find the time to provide more of it in the future).

Nonetheless, I wanted to “publish” my work here, in case someone wants to learn about parallel graph algorithms like Random Walk and Connected Components and how you can easily integrate them into the Neo4j server. It can be found here. Please note that it is fully written in German and that it is my first real scientific work. The corresponding repository can be found here.

If you are planning on using Neo4j’s Kernel API to create the fastest possible extensions/procedures for your server, i recommend you give it a try. But since i made the mistake to write it in German, I will try to extract the relevant parts into future blog posts in English.

2 thoughts on “Parallel Graph Algorithms in Neo4j

  1. Hello,
    I’m using Neo4j in my thesis and I want to learn about parallel graph algorithms. So, I started by your master thesis but it is written in German. Do you have any work in english in this topic?

    Thakn you.

    1. Hey Maya,

      Sadly I didn’t wrote that one in English (I regret that deeply). But perhaps I can give you the gist of it and if you have any further questions feel free to ask:
      The main thing I’ve done in my work on parallel graph algorithms in Neo4j is to built a server extension that can be triggered by a REST-API (In today’s environment, you would use a procedure for this). The extension executes algorithms like strongly connected components (SCC) which in turn use a low level Java-API (Kernel API) in Neo4j to achieve a bit more speed compared to using the Core API (and probably Cypher). If you like, I can send you some examples for this API as well.

Leave a Reply

Your email address will not be published. Required fields are marked *