The road so far….

January 4, 2013

NoSQL = RDBMS + others

Filed under: java — Tags: , , — Rahul Sharma @ 10:25 am

In the recent past, I seen a few applications which have taken the NoSQL route. These apps dumped RDBMS as it did not sound good for the job. They took one of the NoSql stores.  Then evolved a complete schema there. The schema had concepts of foreign keys / constraints and thus realized the sore points of NoSQL. At some point in time these applications started to play with RDBMS in a new fashion which I call “Not only SQL. (more…)

September 5, 2010

Inserting and Indexing Bulk data in Neo4J

Filed under: java — Tags: — Rahul Sharma @ 10:23 pm

In my previous blog I tried to import some 151K names in Neo4J using Transactions, but the db gave me all sorts of exceptions while importing this much data. I was then advised to use BatchInserter api to import data in bulk as the Transaction interface keeps data in memory untill everything has been committed. On the other hand the BatchInserter directly writes back to store without any transaction mechanism. (more…)

August 9, 2010

Exploring Neo4J, the nosql graph database

Filed under: java — Tags: — Rahul Sharma @ 8:15 am

After hearing much about Neo4J, the graph database, I started my quest of exploring it. My goals were simple, evaluate it and possibly refactor and use it at one of our graph solutions. Now  after the evaluation I have found out that it is quite  simple and efficient  to use, but there are certain things esp  a shift in design that it asks us to do  in order to use it properly. Also the complete Neo4J library is divided into components and the kernel lib is quite light weight (a few Kbs) and can easily be shipped with the application.

Let us say  we want to implement a use-case where there are persons and a person can be connected to other persons. In order to use Neo4J  we must think about  POJOs in terms of  interfaces and corresponding implementions. This is so because the database is a key-value store at the back, so it asks us to store the properties of the POJO in terms of  key-value pairs. Moreover there are no foreign keys in Neo4J, objects in the db are connected with other objects using Relationships. So the connections between different persons  will be represented by a  custom connection enum which will  implement the RelationshipType interface. (more…)