I would like to understand database scalability so I’ve just heard a talk about Habits of Highly Scalable Web Applications
On it, the presenter mainly talk about relational database scalability.
I also have read something about MapReduce and Column oriented tables, big tables, hypertable etc… trying to understand which are the most up to date methods to scale web application data. But the second group, to me, is being hard to understand where it fits.
It serves as transactional, reliable data store? or not, its just for large access and processing and to handle fine graned operations we will ever need to rely on RDBMSs?
Could someone give a comprehensive landscape for those new technologies and how to use it?
Basically it’s about using the right tool for the job. Relational databases have been around for decades, which means they are very good at solving the problems that haven’t changed in that time – things like keeping track of sales for example. Although they have become the default data store for just about everything, they are not so good at handling the problems that didn’t exist twenty years ago – particularly scalability and data without a clearly defined, unchanging schema.
NOSQL is a class of tools designed to solve the problems that are not perfectly suited to relational databases. Scalability is the best known, though unlikely to be a relevant to most developers. I think the other key use case that we don’t see so much of yet is for small projects that don’t need to worry about the data storage characteristics at all, and can just use the default – being able to skip database design, ORM and database maintenance is quite attractive.
For Ecommerce specifically you’re probably better off using sql at least in part – You might use NOSQL for product details or a recommendation engine, but you want your sales data in an easily queried sql table.