SAP HANA is an in-memory database. The data is kept in the RAM of one or multiple SAP HANA worker hosts. All database operations (reads, inserts, updates, or deletes) are performed in the main memory of the host. This feature differentiates SAP HANA from traditional databases, where only a part of the data is cached in RAM and the remaining data resides on disk.
To ensure that the SAP HANA database can always be restored to its most recent committed state, persistent storage is used to provide a fallback in case of failure. The log captures all changes by database transactions (redo logs), and data and undo log information is automatically saved to disk at regular savepoints.
As an SAP-certified enterprise storage array for SAP HANA, Unity arrays can be used for both single-host (scale-up) and multihost (scale-out) systems in TDI deployments.
In single-host environments, the database must fit into the RAM of a single server. Single-host environments are preferred for online transaction processing (OLTP)-type workloads such as SAP Business Suite on SAP HANA.
In multihost environments, the database tables are distributed across the RAM of multiple servers. Multihost environments use worker and standby hosts. A worker host is an active component that accepts and processes database requests. A standby host is a passive component. It has all database services running, but no data in RAM. It waits for a failure of a worker host so that it can take over its role, a process known as host auto-failover. Because the in-memory capacity in these deployments can be quite high, scale-out SAP HANA clusters are perfectly suited for online analytical processing (OLAP)-type workloads with very large datasets, such as SAP Business Warehouse on SAP HANA.
The HANA persistent devices have different I/O patterns. See the SAP HANA Storage Requirements White Paper for details.
Access to the data volume is primarily random, with various block sizes from small
4 K blocks up to large 64 M blocks. The data is written asynchronously with parallel I/Os to the data file system. During normal operations, most of the I/Os to the data file system are writes, and data is read from the file system only during database restarts, SAP HANA backups, host auto-failovers, or a column store table load/reload.
Access to the log volume is primarily sequential, with various block sizes from 4K up to 1M blocks. SAP HANA keeps a 1 M buffer for the redo log in memory. When the buffer is full, it is synchronously written to the log volume. When a database transaction is committed before the log buffer is full, a smaller block is written to the file system. Because data to the log volume is written synchronously, a low latency for the I/O to the storage device is important, especially for the smaller 4 K block and 16 K block sizes.
Similar to the data volume, during normal database operations, most of the I/Os to the log volume are writes, and data is read from the log volume only during database restarts, high availability (HA) failover, and log backups or database recovery.
SAP HANA I/Os can be optimized for specific storage environments. See Optimizing file I/Os after SAP HANA installation for a description of the specific optimization required for the Unity arrays.