What’s the difference between SAP HANA and Memcached, Redis and existing databases hacked to use memory instead of disk

There's a huge buzz in the business analytics world about the In-Memory database HANA by SAP. I'm struggling to see its real innovation compared to current open source databases. OK, it has indexing, graph support, column storage, etc… but that's not really new in my opinion. The fact that it is In-Memory is not new either, see Memcached and Redis.

What is the big deal of HANA?

Solution to answer:

  • SAP HANA is an in-memory RDBS, mostly used for accelerating SAP applications.

  • Memcached (open-source) is a key/value (i.e. NoSQL) caching system for accelerating both RDBMS and NoSQL databases. In its native form, Memcached can be scaled infinitely, unlike HANA; on the other hand, Memcached is unreliable, you may lose your data in one of the following events: (1) a node failure; (2) a scaling event; (3) a process restart and (4) a software upgrade. In addition it support very limited set of key-value operations.

  • Redis (open-source)- is an in-memory NoSQL data-base. Unlike Memcached, it has a built-in mechanisms for better reliability like replication and data-persistence. In-addition, Redis sentinel can be used for auto-failover. Unlike HANA and memcached, Redis is built from the ground-up to support enhanced data types like hash, set, sorted-set and list, in a addition to the simple k/v strings data-type. This makes Redis very fast on processing complex commands as well as simple commands. So while Redis can execute simple commands as fast as Memcached does, it can usually process complex commands ten times faster than any other in-memory database including HANA. As of today, Redis is still limited in scalability, you cannot grow your dataset beyond a single master server.