the_drow
the_drow

Reputation: 19181

What do I need to know to implement a proof of concept graph database?

I have a product that needs a graph database, and unfortunately all of the graph databases I've found are not mature enough, cost a lot of money or just don't suite my needs.
I would like to implement a tailor-made graph database that has the following features:

What do I need to know in order to write this as a proof of concept? How much time will it take to write it?
Will a functional oriented approach (I know it handles recursion better) fit here better than an object oriented approach?
Do my constrains make it easier to implement?

Upvotes: 1

Views: 537

Answers (2)

wizzard0
wizzard0

Reputation: 1928

The database must be embedded within the running process and thus it will be kept in memory.

You could basically use any kind of graph processing library (like QuickGraph for C#) and periodically serialize a database to disk in background thread (in case of sudden power loss or crash).

You'll need some understanding of the graph theory (of course), of multithreading, parallel computing (locks, transactions etc), but if you don't need transactions, then using libraries basically makes it a weekend project IMO.

Upvotes: 1

nawroth
nawroth

Reputation: 4361

If you use some other datastore as a backend, you could write up a proof of concept really fast, just adding a graphdb API on top. Regarding the size of the project: look around on places like SourceForge and GitHub and you should be able to find small graphdb implementations. Then you can look at lines of source code vs. features and get some idea about your project. You don't mention things like transactions and failure recovery - if you want that, it will take a lot more effort.

Upvotes: 1

Related Questions