This Friday we would like to share with you a great article by Rick Stehno from Seagate who frequently writes articles about Oracle Linux, MySQL and Oracle Database.
PCIe-based flash can help increase the performance of a database application, such as MySQL on the Oracle Linux platform that delivers the storage performance to contend with the massive data deluge brought on by the mobile Internet, cloud-based services, and enterprise applications. By enabling a thin provisioning feature, low latency and improved performance is achieved, usable flash capacity is expanded and overall TCO is lowered.
Oracle Linux running the default Unbreakable Enterprise Kernel (UEK) was chosen for this study because of its upstream support for the latest hardware relevant to modern data center operations. In addition, MySQL database workloads benefit from the platform’s deep integration with the solution stack, optimizations resulting from industry collaborations and enhancements in the UEK. Oracle Linux with UEK was tuned to perform better and faster on leading-edge x86 configurations that feature many CPU cores and large amounts of main memory, and optimized libraries and system calls help to improve performance for MySQL queries. Because of these optimizations and pervasive testing that occurs within Oracle, Oracle Linux is able to address large transaction capacities and scale well as the number of database users or the number of databases increases.
Thin provisioning, such as with the Nytro Dynamic Logical Capacity (DLC) technology, adds significant value to caching environments where the user is deploying flash for their frequently accessed data. Thin provisioning allows users to effectively double the flash capacity available for this “hot” data to be placed, further improving performance, without any additional effort on the database administrator’s (DBA’s) behalf.
Often, PCIe-based flash cards include built in compression engines. By default, the compression engines are performing lossless compression on the data sent from the host to reduce the physical writes to the NAND. As a result, there is actually free space available on the NAND even after the drive appears full to the host. With thin provisioning enabled, the flash technology can expose this free space to the host as additional usable capacity. As a result, the thin provisioning can expose up to 2x its rated capacity as logical capacity. As the compressibility ratio of the data changes over time, the exposed space will dynamically adjust, hence the Dynamic Logical Capacity technology name.
For example, a database application sends 800GB of data to a 800GB PCIe-based flash card and the card appears full. However, the data was 2:1 compressible, meaning that only 400GB of NAND was physically consumed to write the 800GB of data. The card still has 400GB of available space. With thin provisioning enabled, the application can communicate with the PCIe-based flash card to store more data in the same available capacity. With 2:1 compressible data, this would result in the application being able to write 1.6TB of data to the 800GB card. Utilizing such technology requires close coordination between the PCIe-based flash card and the application.
Deploying PCIe Flash Based Technology with DLC enabled utilizing Flashcache
When implementing PCIe flash into a MySQL and Oracle Linux environment, decisions have to be made on how to utilize the flash storage. Do you:
1. Convert all of the database objects to flash,
2. Convert parts of the database objects to flash, or
3. Implement caching.
The first two options require DBA involvement with corresponding database downtime during the conversion. Option two requires the DBA to constantly look at database objects that are frequently accessed hot data, to update where the database objects reside: traditional hard disk drives (HDD) or on the flash technology.
If the datacenter wants little or no DBA involvement, automatic data tiering with no database changes, then implementing Facebook’s Flashcache caching module for the Oracle Linux is a good fit. What is Flashcache? Here is a quote from Facebook describing Flashcache:
“Flashcache is a simple write back persistent block cache designed to accelerate reads and writes from slower rotational media by caching data in SSD's. We built Flashcache to help us scale InnoDB/MySQL, but it was designed as a generic caching module that can be used with any application built on top of any block device. For InnoDB, when the working set does not fit in the InnoDB buffer pool, read latency is significantly improved due to caching more of the working set in faster media, such as SSD's. We also improve write performance by first caching writes in SSD's and lazily flushing the data back to disk.”*
Benefits of Implementing both Nytro DLC on Oracle Linux and Flashcache:
By implementing Seagate’s version of Flaschcache with imbedded Nytro DLC on Oracle Linux, the Flashcache caching technology can now take full advantage of the expanded benefits of Seagate PCIe flash storage:
- Expose up to 2x of the PCIe-based cards rated capacity as logical capacity
- Higher cache hit rates and fewer latency spikes associated without requiring physical reads from HDD to retrieve the data
- Lower effective cost per GB
- Improved GB / Watt
- Flashcache is a proven caching technology for the InnoDB storage engine in MySQL; and it supports Write-through, Write-around and Write-Back caching options.
For more information about this technology please visit Seagate's Nytro and Oracle Linux websites.