How we fine-tuned RocksDB configuration parameters to increase the performance
RocksDB contains around 120 configurable parameters that can be modified to change the behavior of the key value store. A majority of these parameters affect the performance of the database, but it is very vague when it comes to what the parameter values should be. The default values don't match up to the actual potential of the system, thereby delivering low performance. Therefore we fine-tuned the configuration parameters by performing db_bench benchmarks for different workloads to obtain the maximum throughput performance. Extrapolating from the forum discussions and recommendation, we started with some baseline values and modified one parameter at a time and measured the results. We ran the same benchmark workload for 4 or 5 different values for a single parameter and at the end of each cycle, we would set the parameter to a value that gave the best performance. Likewise we performed for around 25 parameters which we had identified for performance improvement. For a 50-50 workload we were able to increase the performance by more than 50% than the baseline performance. This study provides a guideline that RocksDB users can make use of in their environment or leverage the benchmarking model and fine tune for their setup.
Principal Software Engineer, Samsung Semiconductor Inc
Dr. Choi leads Samsung Memory Solutions Lab's Datacenter Solutions Group (DSG) where he is primarily involved in Storage Intelligence initiatives including Multi-stream system development and customer engagements. He participates in standards group technical discussions, with emphasis on storage intelligence technology. He led the T10 SCSI Storage Intelligence standard which was published as a standard specification in May, 2015. He also enabled NetApp® to exploit multi-stream features within their products. In addition, he has delivered Storage Intelligence presentations at leading storage conferences such as Flash Memory Summit, Storage Developer Conference, etc. He currently leads three Samsung Memory Solutions Lab projects: (1) SSD enablement, (2) Multi-stream and background operation control customer enablement, and (3) In-Storage Compute customer enablement. He has solid knowledge of SSD internals, storage system stacks, and datacenter solutions. Prior to Samsung, he worked at Cisco® Systems for nearly six years. His work included datacenter solutions and cloud computing as well as mobile and computer networking protocol and architecture.
Staff Software Engineer, Samsung Semiconductor Inc
Praveen Krishnamoorthy is involved in optimizing, fine tuning and modifying NoSQL databases for increasing the performance at Samsung. He was earlier with LSI/Avago where he had worked on Linux & VMware Device Drivers for Megaraid & Non-RAID product lines. He also has experience working in areas like Filesystem, High-Availability Storage and Virtual cloud compute/storage. His current area of interest includes databases, distributed systems, flash storage.