by Youngmin L
Solid State Disks (SSDs) are a data storage medium using flash memory. Hard drives on the other hand use rotating platters to store data. Compared to traditional hard disks, SSDs have faster data rates, are more resistant to physical shock, run cooler & quieter, and have lower access times. Because SSDs are a young technology, they are more expensive and have less capacity than traditional hard disks.
In the past, SSDs did not have the capacity for most production uses, and they were too expensive to implement. However, within the past few years, SSDs have dropped in price significantly and storage capacity has increased. This has allowed SSDs to infiltrate consumer and enterprise devices. SSDs are now slowly being adopted for Database servers. Many servers today have an extraordinary amount of RAM and processing power to handle heavy workloads. They however have been bottlenecked by hard drives. Although hard drives have dramatically increased in capacity, they have not significantly increased in speed. This is where SSDs come in as a solution. An enterprise grade SAS hard drive running at 15,000 RPM has a transfer rate of about 200 MB/s. In comparison, a Serial ATA SSD can provide almost 600 MB/s of throughput, limited only by the bus. PCI Express (PCIe) based SSDs can provide over 3000 MB/s (3 GB/s) of throughput.
SSDs can be used in multiple ways within a storage array in a database server. SSDs can be added as a portion of the storage in an auto-tiering array, used as a cache, or used as traditional disks.
Many servers use something called auto-tiering which stores the most frequently accessed data on the fastest storage medium such as a high performance SAS hard drive. However replacing that drive with an SSD makes the “fastest storage medium” even faster. Therefore, information that is accessed the most frequently can be accessed with less delay.
Another way SSDs can be used in an Database server is using the SSD as a flash cache. When the server is configured as a flash cache, the SSD becomes the secondary layer of caching. Even though this flash cache is slower than the normal layer of caching, it is still faster than using traditional hard drives. The flash cache is ideal for systems that often access the same block of data such as an OLTP Database. It is however not ideal for systems that do not use the same blocks of data repeatedly such as an SQL Server.
Lastly, SSDs can be used as traditional disks in a database server. This is the most expensive and least flexible way to use SSDs in a storage array. In this method, SSDs completely replace traditional hard drives. This is extraordinary costly because SSDs are still much more expensive than hard disks. If parts of the database are mostly idle, putting the entire database into SSDs does not make financial sense.
SSDs can be installed onto database servers in two different ways. They can be installed in a standard drive cage, which use SATA interface, or PCI Express based SSDs can be used. PCIe based SSDs plug in directly into the motherboard. There are advantages and disadvantages of both installation methods. Installing an SSD in a drive cage is very easy to install and remove. If the server is hot swappable, SSDs can be replaced and installed without taking the server offline. Another advantage is that the motherboard’s RAID controller can handle all the disk redundancy functions instead of using a software based RAID controller. A disadvantage is that SATA based SSDs max out at 600 MB/s. This is slower than current PCIe based SSDs. PCIe based SSDs connect directly to the motherboard through PCIe slots and therefore have much higher bandwidth. However, the biggest downside to PCIe SSDs is that there is no hardware RAID controller available. This means that a software RAID solution has to be used within the operating system.
The largest benefit of implementing SSDs into a database server is the improvement of server’s I/O operations. The hard disk has been a bottleneck for a very long time and SSDs aim to fix that bottleneck. There can also be other benefits from using SSDs. Because I/O operations are very fast, the server can be able to run with less RAM. For example, if a company is running SQL Server Standard Edition, it can be cheaper to install SSDs instead of upgrading to SQL Server Enterprise Edition and adding more RAM. (SQL Server Standard Edition has a limit of 64 GB of RAM). SSDs can provide immense performance benefits but it will not fix all performance issues. Optimized code is still very important. Optimized code along with an SSD based database server will bring many benefits to any company or enterprise.
Cherry, D. (2013, January 18). Using solid state disks in sql server storage solutions. Retrieved from http://sqlmag.com/storage/using-solid-state-disks-sql-server storage-solutions
Du, Y., Xiao, N., Liu, F., & Chen, Z. (2013). CSWL: Cross-SSD wear-leveling method in SSD-based RAID systems for system endurance and performance. Journal of Computer Science and Technology, 28(1), 28-41. doi:http://dx.doi.org/10.1007/s11390-013-1310-z
Otey, M. (2013, December 27). Hot database industry trends. Retrieved from http://sqlmag.com/sql-server-2014/hot-database-industry-trends
Riley, D. (2013, September 8). Micron p420m ssd review: 1.4 tb of pci express-attached storage. Retrieved from http://www.tomshardware.com/reviews/p420m-pci-express-ssd,3603.html