V
V
Vlad9112013-04-08 18:40:12
data mining
Vlad911, 2013-04-08 18:40:12

Service recommending friends

Hey Habr!

I have the following task, and I want to know your opinion on the topic from which side to approach its solution.

We are developing a mobile social service, in which one of the main mechanics is a recommendation to users of other users based on a variety of interests and, for example, geographic location of users, gender, age, etc. - most likely no more than 5 such fields.

The task is to dynamically select pairs or groups of users for chat based on these parameters. At the same time, the user can change the interlocutor at any time, similarly to chatroulette.

Interested in possible approaches in terms of architecture and algorithms / technologies.

It is clear that some clustering / classification algorithm will be used here if we want to form groups, or some simple optimization algorithm that optimizes the "distinction" of the selected user from other users, in the case of matching a pair.

The question is how to approach the architecture of such a service? How and in what way will it differ for 1000 users, for 100,000 users and for 10,000,000 users? What technologies/languages ​​would you use to implement the backend that solves this problem?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
A
Alexander Kouznetsov, 2013-04-09
@Vlad911

It doesn't matter what to implement - with each step you will not run into query performance.
Those. two tasks need to be solved:
a) fetching according to the data scheme for a valid period
b) getting data for a valid period
Roughly like this:
10 3 : any storage with indexes on the fields involved in the query (almost any sql server)
10 4 : fields involved in the query encoded into keys (denormalization or NoSQL)
10 5 : fetch speed - storage sharding + fetch multithreading + problems with connections, here you need to rack your brains what architecture you have, what technologies you use
10 6: most likely you will already answer such questions yourself :)

P
pomeo, 2013-04-08
@pomeo

It's not clear, are you going to do a video chat? then it is strange that you did not mention the channel, the weakest point.
Mobile in the sense in the form of applications or a web muzzle is also planned?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question