Hi,
Currently I am using titan graph0.5.4 for making social graph out of user activities like (user1-->follows-->user2 , user1-->likes-->object2 etc.).
Earlier when I started using it, number of activities, users etc. were quite small and since then it is growing daily. So to give approximate numbers I have around 20 million user nodes and 50 million objects nodes and obviously billions of edges :) .
I have exposed APIs on this social graph using tinker pop library in java eg. get followers, following of user1 etc. I am using cassandra(version2.0.14) as underlying database.
Throughput is around 50K rpm.
So, overall loads of deletion, insertion, update, reads are happening on daily basis.
Problems I am facing- If read increases, load gets quite high on my machines (machine config RAID-1 , 1 TB DISK ,32 core, 64GB RAM, 4 similar machines, replication fact 3, Levelled compaction)
- Response time/SLA of APIs also degraded over a period of time.
My Queries
- Can I use titan for serving this type of real time queries, or should I keep it only for analytics purpose to explore/recommend user data?
- Do I need to change my cassandra configurations or machines configuration to improve performance?
Any suggestions for scaling/serving this type of data?
For more explanation or any other thing, please do ping. I am quite stuck over this problem :/