SAP HANA is exciting new technology in news these days. It is an In-Memory ACID compliant database that can process both OLAP and OLTP data. Bringing transactions and analytics together, you are report against your data in real time.
But, now the real question is how it is different? Here is how:
In Memory Database
As soon as HANA is started, it loads all the Data in RAM. With all the data in memory, performance is no longer hampered by Disk I/O's which happens in other RDBMS. So does this mean disk storage is not required?
Disk storage is definitely required but for permanent persistency that is in case of power failures we won't lose any data as it is saved in disk. However, this does not affect performance of any transaction as data is written to disk asynchronously by HANA as a background task.
Support for Parallel execution
Computer architecture for which most of the traditional RDBMS were designed has drastically changed in recent years.
Nowadays, increased CPU execution speeds are achieved by adding multiple cores to a CPU package. RAM is no longer a limited resource now and can have storage in terrabytes. Faster performance these days is result of parallel processing happening due to quick communication between processor cores. Thus, a modern RDBMS requires an altogether new algorithm to leverage parallel processing capabilities of modern computer architecture, which is what SAP HANA does.
New approach to Cache management
As mentioned earlier that RAM is no longer limited these days, the bottleneck of performance have now shifted from disk I/O's to data transfer between main memory and cache. This can be solved if the data which is accessed consecutively is loaded altogether in cache avoiding unnecessary loading/unloading of data in cache thus minimizing cache misses.
SAP HANA provides columnar storage organization for this specific purpose that is all values of a particular column is stored contiguously as loading the whole row in cache is not required at all. This case works in cases of column specific search and aggregations (OLAP).
However, SAP HANA also support Traditional storage Row based storage organization which is useful for OLTP systems i.e. rows are stored contiguously and can be used in cases where complete row is necessary to be processed. Thus user can select the desired option to minimize cache misses which suit him the best.
Real Time Analytics
As it is already clear that SAP HANA provides tremendous performance as queries can be executed rapidly and in parallel. Thus traditional approaches of materialized aggregates that are pre-calculation of aggregate values in snapshot tables are no longer required at all as HANA can query huge datasets in real time. Furthermore, as HANA provides columnar storage it is useful specifically for OLAP systems for example a transactional table from which aggregate information is required for analytics can be made a columnar table for faster performance.
With such performance (several megabytes per milliseconds), on the fly aggregations can be performed on huge datasets eliminating the need of a separate data warehouse!
Conclusion
SAP HANA is high performance system which unlike any other RDBMS, is designed to leverage the peak performance of modern hardware.