主页
FPGA培训
关于平台
企业孵化
峰会大赛
展厅预约
FPGA知识库
联系我们
登录 注册
首页 > 应用案例 > 案例解析|寻找分布式 Cassandra 数据库性能下降的“原罪”
案例解析|寻找分布式 Cassandra 数据库性能下降的“原罪”
来源:英特尔FPGA 2021-07-20 01:17
Apache Cassandra 是一个开源的、分布式、无中心、弹性可扩展、高可用、容错、一致性可调、面向行的数据库,它基于 Amazon Dynamo 的分布式设计和 Google Bigtable 的数据模型,由 Facebook 创建,在一些最流行的网站中得到应用。


rENIAC 的分布式数据引擎通过提高吞吐量和减少延迟来加速 Apache Cassandra NoSQL 数据库。Facebook 最初开发 Apache Cassandra 分布式 NoSQL 数据库是为了支持其收件箱搜索功能,并在十多年前将其发布到开源社区。在开源社区中,该数据库继续升级优化。分布式 Cassandra 数据库应用能够高效处理许多商用服务器上的大量数据,同时提供高可用性。Cassandra 的分布式特性使单点故障变得不可能。


1123.png


Cassandra性能下降,数据压缩是罪魁祸


rENIAC 数据引擎采用 FPGA 技术,特别是采用英特尔 Arria® 10 GX FPGA 的英特尔® 可编程加速卡 (PAC),可提高数据库吞吐量并减少因系统瓶颈和后台数据压缩操作而导致的延迟降级。图 1 中的图表展示了性能下降的表现方式。


81136.png

图 1:Cassandra 的数据结果压缩需求是影响周期性吞吐量和延迟性能损失的任务之一


图 1 的四个图表说明了与计算、I/O 和压缩操作相关的系统瓶颈对 Cassandra 数据库性能的影响。左上角的图表显示了数据库吞吐量(单位为每秒事务数 (TPS) )随着时间推移而降低。


持续使用数据库会加剧这些瓶颈的影响。例如,当使用作为 Cassandra 分布一部分的标准 Cassandra 压力测试时,数据库的吞吐量会随着时间的推移缓慢下降,当数据压缩算法启动时,每 200 秒会产生大量的周期性吞吐量损失。数据压缩是对日志结构合并数据库的性能产生负面影响的关键因素之一。数据压缩所导致的每个显著吞吐量损失的时间段大约为 10 至 20 秒。


图 1 中的其他三个图表显示了响应数据库查询的应用延迟,右上图显示了所有查询事务的平均延迟。左下图显示了 95% 的事务延迟,右下图显示了 99% 的事务延迟。三个延迟图显示,在相同的 200 秒周期内,延迟大幅增加,在吞吐量图中显示为 TPS 下降。


Cassandra 数据库常用于事务处理,这些大的性能损失可能会给实时和零售应用带来严重问题,因为这些应用需要可预测性更高的性能水平。然而,数据库压缩算法必须运行。



消除延迟峰值,rENIAC新型加速平台加速工作负载


为了应对这种性能损失,rENIAC 开发了一个技术平台,可以加速 Cassandra 等以数据为中心的工作负载。该平台采用基于数据引擎的数据代理(rENIAC 通过采用英特尔 Arria 10 GX FPGA 的英特尔可编程加速卡 (PAC) 进行构建)。通过 rENIAC 数据引擎(部署为面向 Cassandra 数据库的数据代理)加速的 Cassandra 数据库的性能结果如图 2 所示。


1149.png

图 2:使用 rENIAC 分布式数据引擎加速 Cassandra 数据库可以大大减少因数据压缩和其他 I/O 瓶颈而导致的周期性吞吐量和延迟降低问题


图 2 的四个图表将加速的 Cassandara 数据库性能(用橙色显示)与未加速的性能图表(用蓝色显示)并列放置。图 2 左上角的第一个图表显示,与未加速的数据库性能相比,加速数据库吞吐量增加了 4 倍。图 2 的其他三个图表显示,在运行加速版本时,困扰未加速 Cassandra 数据库的大型周期性延迟峰值消失了。


加速版 Cassandra 的延迟现在很低且可预测。除了图 2 所示的平均、95% 和 99% 延迟之外,还可以从针对读取密集型工作负载和混合工作负载测量出的 99.9% 延迟进一步看出这种效果。如图 3 所示。读取密集型数据的延迟缩短了 10 倍,混合工作负载的延迟缩短了 7 倍。


1158.png

图 3:混合工作负载和读取密集型工作负载的 99.9% 延迟


这些性能提升归功于本地数据缓存(可将性能翻倍)和 FPGA 加速(将性能进一步提升了 10 倍)。同时,rENIAC 正在努力整合其他优化,希望在未来进一步提高 Cassandra 数据库性能。