On Monday, December 23, 2013 7:18:05 PM UTC+5:30, 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.

Reply via email to