I'd recommend checking out the (free) Graph Databases book at
http://graphdatabases.com/
It should give you a good understanding of Graphs and Neo4j to base your
application on, as it walks you through modelling and also test-driving
your graph model which I find really appealing. It also shows how to
translate from a relational model to a graph model to help you start
thinking in graph.

On 12/23/2013 02:48 PM, Sourabh Kapoor wrote:
> Hi All,
> 
> What is the best design for social sharing network based on phonebook?
> What should be the architecture of the server?
> 
> Background:
> 
> App sync the phonebook of a contact and social network of a user and
> build a graph and give recommendations.
> 
> I read earlier usually developers make a mistake by thinking graph DB as
> a relational DB and considering everything as a property of a single
> relation.
> 
> Thats why i thought its better to ask questions to  more senior people
> out here.I am also putting some use cases as it helps to think of a long
> term
> 
> design of graph DB. Note: Also read relations are much better than
> properties.Always use that if possible.
> 
> 
> Data involved :
> 
> 1. Estimated data in an yr: 500 million to 1 billion (Currently we have
> only 1 relation friends and on weekend server is choking up)
> 
> 2. 5-6 different sharing networks(BBM , FB, LinkedIn and others)
> 
> 3. on Avg, every phone number (a node) is connected to 300 nodes with
> friends relation.
> 
> 
> Use case:
> 
> 1. Recommendation of friends, mutual friends to people in your phonebook.
> 
> 2. Initially not many nodes user connects to has social linkage
> therefore it may be the case you have lot of friends but very few of
> them are social friends.
> 
>    Does it make sense to have new relationship for every social ID (be
> bbm, FB, linkedin)
> 
> 3. We will build the network through which old user gets notification
> when new user joins any of social network and register to our app.
> 
> 4. Pick of the day - based on mutual friends (degree and social interest
> and country), user can search country wise social IDs.
> 
> 5. User always search people from 1 country or its connected node (upto
> 4 degree) based on male/female and age filter.
> 
> 6. Status update would be notified to other connected nodes with social IDs.
> 
> Current Structure(Failing on bigger data set and creating lot of memory
> issues)
> 
> Neo4j Data:
> 
> Relation - Friend
> 
> Node has social ID as property,Country as indexed key and phone number
> as indexed keys
> 
> Mysql Data:
> 
> All other second level data is in mysql.
> 
> 
> 
> This is what i am thinking to try it out. Please let me know if i am
> moving in right direction or not.
> 
> We need scalable and performance oriented approach where we can scale
> similar solutions to other social
> 
> networking companies with 1 engine behind it. (It can scale to 10 social
> networking companies)
> 
> 
> Country (1 relation or bucket per country)
> 
> Social (1 relation or bucket per social networking company)
> 
> 1 relation for male, 1 relation for female
> 
> Finally Node person with phonenumber as index key.
> 
> 
> Your answers are highly appreciated!!
> 
> -- 
> You received this message because you are subscribed to the Google
> Groups "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.

-- 
You received this message because you are subscribed to the Google Groups 
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to