本文介绍如何通过云原生多模数据库 Lindorm扩展云数据库Cassandra的性能。
云原生多模数据库 Lindorm简介
云原生多模数据库 Lindorm是一款适用于任何规模、多种模型的云原生数据库服务,支持海量数据的低成本存储处理和弹性按需付费,提供宽表、时序、搜索、文件等多种数据模型,兼容HBase、Cassandra、Phoenix、OpenTSDB、Solr、SQL等多种开源标准接口,是互联网、IoT、车联网、广告、社交、监控、游戏、风控等场景优选数据库,也是为阿里巴巴核心业务提供关键支撑的数据库之一。
云原生多模数据库 Lindorm基于存储计算分离、多模共享融合的云原生架构,具备弹性伸缩、低成本、简单易用、开放、稳定等优势,适合元数据、日志、账单、标签、消息、报表、维表、结果表、Feed流、用户画像、设备数据、监控数据、传感器数据、小文件、小图片等数据的存储和分析。其核心能力包括:
融合多模:支持宽表、时序、搜索、文件四种模型,提供统一联合查询和独立开源接口两种方式,模型之间数据互融互通,帮助应用开发更加敏捷、灵活、高效。
性价比:支持千万级高并发吞吐、毫秒级访问延迟,并通过高密度低成本存储介质、智能冷热分离、自适应压缩,大幅减少存储成本。
云原生弹性:支持计算资源、存储资源独立弹性伸缩,并提供按需即时弹性、按使用量付费的Serverless服务。
开放数据生态:提供简单易用的数据交换、处理、订阅等能力,能够高度兼容MySQL、Spark、Flink、Kafka等系统。
开源Cassandra挑战
开源Cassandra是基于Amazon DynamoDB和Google Bigtable设计的一款分布式NoSQL数据库,具备无中心、一致性可调、提供类SQL查询语言CQL等优点。但在实际使用中,Cassandra存在一些难以解决的挑战。比如Cassandra存储和计算不分离,一旦需要扩容,需要搬迁数据,扩容持续时间长,无法快速应对业务突发流量。而Lindorm是存储计算分离架构,可以实现快速弹性。
另外,Cassandra 需要定期对所有副本进行全量数据修复,否则会出现”幽灵key“等问题,但是修复过程会因为消耗大量系统资源从而影响服务稳定性。而Lindorm由底层的存储组件负责一致性,当您的数据写入时,就会按照您设定的副本数写入,不会有数据不一致问题,也不用定期修复。
Lindorm For Cassandra特性
更强性能:相比开源Cassandra,Lindorm For Cassandra在大规模数据下吞吐量更高,延迟更低。同等规格,20亿行数据下Lindorm与开源Cassandra的性能对比如下:
说明以下数值仅供参考,具体以实际场景为准。
单行读:Lindorm的吞吐量约是开源Cassandra的13倍,延迟降低了52倍。
范围读:Lindorm的吞吐量约是开源Cassandra的7倍,延迟降低了13倍。
单行写:Lindorm的吞吐量约是开源Cassandra的1.6倍,延迟降低了2.7倍。
范围写:Lindorm的吞吐量约是开源Cassandra的1.8倍,延迟降低了0.9倍。
透明冷热分离:Lindorm For Cassandra采用自由设置冷热的存储介质、压缩算法,减少冷数据存储成本,提升热数据访问性能,实现一体化冷热分离、数据自动分层。
按需计费:Lindorm for Cassandra提供集群版和serverless版产品形态,serverless版采用serverless式免资源管理,根据业务需求量弹性响应,按请求次数、实际数据库量计费,实现简单易用、经济高效、按需弹性的计费特性。
搜索宽表一体化:Lindorm for Cassandra 通过全文索引加速宽表引擎查询,对外统一提供CQL语言的访问方式。
丰富的数据通道:Lindorm for Cassandra具备丰富的数据通道,比如搜索引擎、在线事务数据库、数仓、日志队列等。
更多企业级特性:Lindorm for Cassandra具备更多的企业级特性,详情请参见下表。更多企业级特性请参考Lindorm产品首页。
特性
Apache Cassandra
Lindorm for Cassandra
基础功能
KV
多模(KV/Table/SQL/Search/Timeseries/File)
性能
不涉及
最高14倍性能,10%的延迟,2倍压缩率。
开源标准
CQL
兼容CQL(大部分情况下无需改造代码)
一致性
可调一致性,需定期repair。
可调一致性(无需repair数据)
服务模式
自建
集群托管或者Serverless可选
可靠性
无SLA保障,开源软件BUG需要自行修复。
SLA保障,并具备主备双活、备份、异地容灾等能力。
冷热分离
不支持
透明冷热分离降低成本
全文检索
不支持
兼容CQL语法
其他企业级功能
不涉及
支持全球多活、备份恢复等企业级能力。
弹性
存储计算不分离,扩缩容需要搬迁数据,弹性能力差。
包括以下几点:
支持Scale Up:升配和磁盘扩容。
支持Scale Out:产品化扩缩节点。
支持Serverless:自动弹性。
生态
开源生态,打通依赖工具或程序开发。
支持开源生态和阿里云生态,与MySQL、Spark、OSS、MaxCompute等深度产品化集成。
使用成本
高,取决于产品维护的研发投入。
低
如果您需要将Cassandra数据导入至Lindorm宽表,具体操作请参见导入Cassandra数据。