I am looking to build a type of social network. Now this isn't going to be Facebook scale but I feel like it could have a large following. I want to build the system with scalability in mind. It also needs to be able to handle a lot of data and relationships. I was hoping someone could give me some direction of what db to use. I have read a lot of articles but they are usually at least a year old and the databases are changing fast so I don't know whether the things people are saying still hold true. I really like the riak database because it is really easy to scale and I like the fact that all of the nodes can read and write. One of my concerns is the relationships the data is going to have. However, I believe that links in riak will solve this problem. But in using links will that decrease the performance. I am just hoping someone could give me some direction with experience and the way the databases are currently.
There are several reviews on that topic: by thoughtworks (and some in Fowler's book), and some in Cassandra vs MongoDB vs CouchDB vs Redis vs Riak vs HBase vs Membase vs Neo4j comparison. According to them you'd need either "Graph database" or "Distributed Peer Store" (Riak is listed here), or, which would be better - some combination of them. If performance is your main concern, I'd also suggest to start modeling of highly loaded scenarios and see what happens.
This question's probably open to too much debate. But all the same; it sounds like you should stay away from simple key-value like say, redis, and towards something that's more of an object store for the rich, even relational, metadata you have; like MongoDB.