In a traditional RDBMS, the data is first written to the database, then to the memory. When the memory reaches a certain threshold, it’s written to the Logs. The Log files are used for recovering in case of server crash. In RDBMS before returning a success on an insert/update to the client, the data has to be validated against the predefined schema, indexes created and other things which makes it a bit slow compared to the NoSQL approach discussed below.In case of a NoSQL database like HBase, the data is first written to the Log (WAL), then to the memory. When the memory reaches a certain threshold, it’s written to the Database. Before returning a success for a put call, the data has to be just written to the Log file, there is no need for the data to be written to the Database and validated against the schema.
This blog post, very simply, explains not only a good part of the why behind NoSQL performance, but also exposes the ACID implications.
Unless queries are resolved through the log, the results of a given query cannot be consistent from run to run, but the trade-off is to performance.
Via: Hadoop Tips