2

I already have a .Net Web project running on MongoDB where I store some news/feed data. After a while I needed a faster way to track "who shared what" and "how to find relationships depending on these information". Then I came up with an idea to use graphDB to track related feeds and users.

Since the system is already running on MongoDB, I am thinking of leaving the data in Mongo and creating the graph representation in Neo4J for applying a graph search.

I do not want to migrate all my data to Neo4J because many people telling me MongoDB's I/O performance is way better than Neo4J and they also pointed out Sharding feature.

What would you suggest in this situation? And If I follow my idea, will it be a good practice?

Community
  • 1
  • 1
stckvflw
  • 329
  • 3
  • 10

1 Answers1

3

Personnally I think there are no unique answer and best practices. It is common usage to use polyglot persistence systems.

Now everything is based on your context and there are points we can't just reply for you :

  • How much time do you have (learning a new technology is not a matter of days until you can use it in production and sleep good )

  • How much money you can invest in the project , sharding is, AFAIK, a neo4j enterprise feature and licenses have a cost if you're not opensource or commercial company. Also hosting costs for Neo4j in cluster mode.

  • How much data ? As long as your graph can fit in memory, you'll not run I/O issues.

Now, away from these points, yes you can in a first instance trying to map neo4j on top of mongoDB.

Maybe try to do incremental migrations, and at then end of the process, maybe ask you the following questions, WHY do you need MongoDB to handle graph structures ?

Christophe Willemsen
  • 19,399
  • 2
  • 29
  • 36
  • Hello Christophe, - I have about two weeks to accomplish this goal - Money is not an issue at the moment. As long as the system is reliable and running well, the bills would not hurt anyone. I guess we can go for Neo4J Enterprise. - I currently have 4M entries in my database. ~%25 of them seems to be updated/used in production. I already have my data in MongoDB and I do not know if Neo4J performance on I/O would be as slight as it is in Mongo. I guess there are some memory/data size limitations. I am thinking of keeping my data in Mongo and handling the relations and graph in Neo4J atm. – stckvflw Jan 10 '15 at 22:04
  • Two weeks is not so much time. So I wish you a lot of fun with Neo4j, don't hesitate to come on SO again for questions. – Christophe Willemsen Jan 10 '15 at 23:58