超越“高并发I/O数据库系统”的性能挑战


超越“高并发I/O数据库系统”的性能挑战

文章插图
 
德州大学阿灵顿分校计算机科学与工程系教授江泓
今天与大家分享我们实验室最近的一项研究:在企业级应用环境下,数据库系统高并发I/O带来的性能挑战 。该项研究发表在今年的EuroSys会议上 。
如今大量企业级应用,如社交网络、电子商务、数字银行、社交媒体等,时刻不能离开后台数据支持,海量在线用户引发的并发数据访问,给数据后台服务带来了前所未有的压力,可以用三高一低来概括:高带宽、高并发、高体量和低延时 。
超越“高并发I/O数据库系统”的性能挑战

文章插图
 
如今后台存储设备性能也以指数级趋势增长,由上图看见,PCIe SSD的I/O带宽每3年翻一倍 。目前PCIe 5.0 I/O带宽可以达到10GB/s,如此高的带宽,在理论上可以极大地促进存储子系统和数据库的融合,满足上层企业级应用更高性能体验的需求 。然而现实并非如此 。
在企业级应用的下层,一般会有不同类型的数据库实现数据的存储和分析服务 。这其中包括传统的关系数据库和NoSQL数据库,而支撑数据库运行的是不同类型的存储设备,如基于SSD、HDD的存储子系统或分布式文件系统 。我们的研究发现,在这三层构架中,各类数据库系统正在成为软肋,也使得存储设备潜力难以发掘,直接影响企业级应用的体验 。
超越“高并发I/O数据库系统”的性能挑战

文章插图
 
以广泛应用关系数据库MySQL为例,我们不难发现以上现实:高并发用户I/O可以导致不同类型锁的严重竞争行为,从而消耗相当比例的CPU处理时间,造成长时间的锁等待 。更为严重的是,用户之间锁等待时间的分布,可能存在巨大的不公平性,这种不公平性还会随着并发用户数量的增加而不断恶化,极大降低I/O的处理效率 。低效I/O性能如以上数据所示,主要表现为吞吐率降低、请求延时波动上,这说明MySQL不能保证高并发环境下,公平高效的分配I/O资源 。我们也发现其他类型数据库,如作为NoSQL数据库经典的MongoDB,也有类似问题 。
超越“高并发I/O数据库系统”的性能挑战

文章插图
 
针对以上问题,我们推荐可以跨数据库的应用级调度技术AppleS(Application Level Scheduler),旨在实现非侵入式的数据库外部I/O访问控制和运行时调度机制,准确地隐藏超过数据库能力的多余用户并行请求 。从而极大地降低了锁竞争和队列等待时间,并提高数据库缓存的利用率 。正如以上数据所示,AppleS可以极大地提升数据库利用现有存储资源的能力,实现高效吞吐,公平用户I/O访问和稳定低延时的高并发用户I/O服务 。
超越“高并发I/O数据库系统”的性能挑战

文章插图
 
当前有潜力解决相关问题的技术方案大致可以分为三类,即面向特定数据库的侵入式的解决方案、资源管理工具如Cgroup以及内核I/O调度技术 。
但是这些方案都存在以下三个问题:
1.被动的用户高并发I/O导致的性能瓶颈,从而丧失最佳的解决时机,进而无力阻止低效、不公平、不稳定的用户并发I/O 。
2.侵入方案很难跟踪并有效规范自发性的用户并发I/O 。
3.面向特定数据库的侵入式解决方案,即使对特定类型、特定版本的数据库有较好的效果,但是很难迁移到其他版本的同类数据库,更不用说不同类型的数据库 。无法实现跨数据库、跨版本的支持 。
针对以上挑战,AppleS的设计遵循以下四个原则:
  1. 黑盒子工作模式,AppleS将数据库以及下沉存储I/O或者数据库和存储子系统的融合,看作一个大黑盒子 。

超越“高并发I/O数据库系统”的性能挑战


推荐阅读