Lindorm for Cassandra应用实践

本文介绍如何通过云原生多模数据库 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由底层的存储组件负责一致性,当您的数据写入时,就会按照您设定的副本数写入,不会有数据不一致问题,也不用定期修复。

image

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采用自由设置冷热的存储介质、压缩算法,减少冷数据存储成本,提升热数据访问性能,实现一体化冷热分离、数据自动分层。

    image

  • 按需计费:Lindorm for Cassandra提供集群版和serverless版产品形态,serverless版采用serverless式免资源管理,根据业务需求量弹性响应,按请求次数、实际数据库量计费,实现简单易用、经济高效、按需弹性的计费特性。

    image

  • 搜索宽表一体化:Lindorm for Cassandra 通过全文索引加速宽表引擎查询,对外统一提供CQL语言的访问方式。

    image

  • 丰富的数据通道:Lindorm for Cassandra具备丰富的数据通道,比如搜索引擎、在线事务数据库、数仓、日志队列等。

    image

  • 更多企业级特性: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数据