On 16 January 2013 16:06, Vitaly Zemlyansky <[email protected]> wrote:
> Also I know that projects like FB or Twitter use both distributed DB and > relational DB(MySQL), and I wonder Why do they use both models ? What > benifits do you get by this approach ? The relational model allows you to store more complex data, arranging that into multiple tables so that it can be easily joined using SQL. If you have a need for more complex data then you need relational. Databases that support relational also support other kinds of data structures, for example, PostgreSQL allows you to store XML, JSON and also column oriented data using hstore. Companies use multiple technologies because they have multiple different needs. In startups, having a single database is common. As companies evolve they need more applications and databases, often of different kinds. > I read about this problems in architecture of highload projects. And I know > that relational model can't scale for millions simultaneously requests. All > projects use distributed DB for this problem, like Cassandra or Riak. > And I know, that for in-memmory db, you should build a cluster. Memcached, > for example, has this functionality. But I am trying to find similar for > Redis. It isn't true that the "relational model can't scale", though I have seen that comment before. PostgreSQL supports multiple standby nodes, called hot standby, that allows you to scale out the number of copies of the database, which then allows you to scale. Achieving >100,000 requests per second per node is possible, so doing millions can work also. The key point is usually database writes. Scaling writes requires multiple write nodes. The technique that everybody uses is sharding, that is placing a subset of the data on separate nodes. As soon as you use sharding you need to limit yourself to simple key read/write operations. Complex operations that require access to multiple nodes don't scale well, whether or not they use relational model or relational databases. It's the type of request that is a problem, not the underlying technology. -- Simon Riggs http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

