Bitnine participated in PG Conf 2016 San Francisco as Gold sponsorship member. Kisung Kim, CTO of Bitnine, had a presentation about implementing a graph database based on PostgreSQL. Today, we are going to summarize his presentation in PG Conf 2016.
PG Conf is one of the biggest PG conferences. Many experts and celebrities related to PostgreSQL participated in this conference. Although they have good knowledge of PostgreSQL, the most of them didn’t know what graph database is. Dr. Kim was focusing on the introduction of the graph database and cypher language in the beginning.
Dr. Kim said ” Graph database is one category of NoSQL DBMS. It is an optimized system for handling complex connected data, like a social network and supply chain management It also handles data in a different view from the relational database: node and relationship. It is similar to entity-relationship model so it is very intuitive and easy to understand”. For more concreate example, He explained what cypher language is, too. It is a basic concept of graph database for engineers, but It could have been helpful for audiences who have never experienced Graph database.
He gave audiences interesting real-world case through blog posting from Hipolabs, which posted on Bitnine blog-page (http://bitnine.net/blog-graph-database/journey-from-graph-databases-to-postgresql/). He interested in the experience why the writer, senior IT engineer, is going back to PostgreSQL from multi DBMS using both graph database and MongoDB. It was explaining the direction of developing PostgreSQL.
When our team opened a kiosk at the front desk, we had a lot of questions why you choose PostgreSQL as core database. For this question, Dr. Kim clearly answered that “There are many reasons to choose PostgreSQL. First of all, as you know, PostgreSQL is a fully featured enterprise-ready open source database system. It means there is no license problem for using PostgreSQL. There are also many technical reasons for our choice. Whatever storage layouts are used, graph data should be stored in disk as serialized like tables and the graph traversal step is in principle a join operation. In this result, it is not abnormal to implement a graph database on top of a relational database.”
Lastly, Dr. Kim introduced Agens to audiences and explained the difference between Neo4j and Agens He also explained how Agens are storing data. Agens takes different approaches from the previous system. In fact, we could not use the fixed-size array approach because in PostgreSQL, tuples are moved when they are updated. We cannot fix the location of a vertex and an edge. We think the fixed-size array approach is not very efficient for an updates. Titan’s approach is for the distributed NoSQL system and it is not very proper for online transactional system. This is the current storage structure of AgensGraph. We use the heap storage of PostgreSQL for vertex and edge store. Vertexes are stored in two-column tables and Edges are stored in four-column tables. For efficient search, we use Btree index for vertex ID and Edge’s start and End ID. Given a vertex ID, We can find its adjacent edges by looking up these two Btree Indexes. We made composite indexes so that we can find adjacent vertex IDs without scanning the heal storages.
He didn’t forget mentioning that whoever can join us through Giltub as contributor. We always welcome you to join our project.
After finished presentation, he answered questions from a few audiences. They asked him the planning of Bitnine, decision to participate in PG conf Newyork and use-cases for Agens. Out of questions, His presentation brought a big applause. His speech ended in great success.
BITNINE GLOBAL INC., THE COMPANY SPECIALIZING IN GRAPH DATABASE
비트나인, 그래프 데이터베이스 전문 기업