While reading about this topic online I have found out that, in general, RDBMS are good for read heavy loads and NoSQL databases are good for write heavy workloads. This statement also seemed true when I was comparing MySQL with HBase. MySQL used B+ trees which are optimized for reads whereas HBase used LSM trees which are optimized for writes.
However, if the above facts are true, then why is it that NoSQL databases are used primarily for analytics (OLAP) loads whereas RDBMS is used for transaction loads (OLTP) given that analysis is mostly a read heavy load and OLTP has a very high write to read ratio.
One reason for this probably is that transactions usually involve data that cannot be lost hence we need a DB that is ACID compliant. However, from a performance viewpoint, shouldn't the two roles be reversed?