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.
