Mysql - curious about scaling a twitter-like application?
I am developing an application that vaguely resembles twitter, in which it allows users to follow each other. I wanted to do this with Google App Engine, for its promises scalability, but it proves difficult to work with for several reasons.
If I was doing this with mysql, I would have a _users table and a _followers table. Users enter the users table, and the follower relationships go into _next ones. The problem is that each row in the users table will likely have about 100 matching entries in the _followers table as users start to follow each other. Thus, the number of lines will quickly explode.
Using the application engine, the volume issue [shouldn't be].
If I go with mysql and I really start getting some traction, how do I increase this? Am I going to migrate to a distributed database anyway eventually? Should I fight the google engine? I read that Twitter uses mysql and they ran into this problem and are now switching to cassandra.
thanks
a source to share
Anyway, will I go to a distributed database anyway?
If you get as big as twitter for example: Yes - or at least some form of distributed cache.
Should I fight the google engine?
Start doing something useful. You are not Twitter - you don’t have the experience people collect twitter / google / yahoo from scaling a large real world application.
If you start building something that will scale to the whole world, you will never achieve it, and you will still be wrong. If all you do is not done, there are 0 users and it doesn't matter how well it scales.
a source to share