车联网/IOT/用户活动记录/电信信令/电商订单/收件箱等都是典型的时序类数据,随着时间的增长,数据量也随着爆增,不少企业都已经管理着PB甚至EB级的数据。PB级数据存储是相当有挑战的一个技术话题,常规数据库单节点容量是2T的话意味着需要500台服务器。如果要50%冗余则需要1000台服务器。在某云EC2单台服务器(32 vCPU 128 GiB)成本超过4万块/年,意味着光服务器成本就4000万/年,同时管理更多的服务器集群,导致更复杂的部署架构更高的故障率,管理成本/人力成本也是飙升。

经常有外行喷美团阿里百度腾讯滴滴字节360等巨头就一个APP,毫无技术含量也没啥成本。殊不知这些巨头在几十万台服务器存储着几十PB的数据,同时还配置了数量不少资深运维团队,光数据成本这块想想都可怕。然而,数据还在指数级增长。

所以,降低TCO(总成本)是CTO/CIO重点考虑的事情之一。
更少的服务器,单机更大的容量,更精简的技术团队可以有效的帮助企业降低成本。使用DSE/Cassandra存储时序数据时如果使用TWCS的压缩策略,单Cassandra节点可以到40T以上,这是因为TWCS压缩策略生成的时间窗sstable在生命周期内不会再触发压缩,避免了磁盘写放大,会有一个非常稳定的磁盘IO环境。相比单节点2T的解决方案,意味着这服务器数量缩减为原来的1/20之一以上,带来的成本节约是显而易见的。同时带来的用户体验也是令人愉悦的。举个例子,去银行或者电信打印几年前的的流水需要特别申请,因为历史冷数据已经被归档到特别的数据中心了,如果有个超大数据存储中心,这类冷数据就可以实时查询了,你就不用等下周。
通过廉价SSD扩大单机容量的方式减少服务器数量是一个行之有效的方法。近期DataStax和知名SSD厂商Scaleflux 及同盾科技在实验室联合做了一次测试,该测试针对DSE 6.8 在ScaleFlux CSD 2000硬盘进行。测试结果令人兴奋。以下摘取部分测试内容及结果:
环境:32核 128G 2个节点,2个副本,每个节点10T,Cassandra默认的STCS压缩策略。
测试结果:

Load结果:写10亿条数据 每条2个字段,每个字段4KBTPS 4W+, P95 2.8ms,P99 22.6ms

Run结果: 每秒10000次,持续执行10亿次,P99 读延迟在100ms,非常稳定
再看下读延迟抖动率:

P999 只有3-4次超过3s,毛刺少,抖动率极低。
ScaleFlux CSD 2000 QLC的特点: 产品容量大,成本低,随机写性能好,通过数据压缩提升了寿命问题。以下内容来自ScaleFlux 公司关于CSD 2000的介绍与评测:
计算存储驱动器(英文全称 Computational Storage Drives ,缩写:CSD)是一种包含一个或多个计算存储引擎和持久数据存储的存储驱动器. CSD 2000 是 ScaleFlux 量产的第二代数据中心级NVMe SSD, 在此基础上, 支持盘内的透明压缩。目前主要在一些云厂商和互联网行业使用。

CSD 2000 跟普通SSD不一样的价值是:
存储成本: 提供对应用透明的数据压缩功能,应用不需要改造就可以享受数据压缩带来的成本下降和性能提升。
使用寿命: 提供更高的寿命,特别是在寿命问题普遍不高的QLC SSD产品中,CSD 2000 由于内部会对数据压缩,大大减少对NAND 颗粒的消耗和擦除次数,极大的降低QLC 的写放大和提升寿命。

备注:以上图为例, 在设置7%OP时, 数据压缩率从1:1提升到1.2:1时, 仅仅20%的压缩率,就可以将WA(Write Amplification)从接近4降低到小于2,从而最终提升写入寿命(DWPD)。
随机写性能: 数据压缩不光节省了内部空间,还减少了 SSD GC 对性能的影响。同时, CSD 2000 QLC 的FTL 的地址映射表条目使用4K大小,对小IO读写非常友好,读写延时很低且稳定, 在高并发读写场景下,CSD 2000 的读写IO平均等待时间能够稳定在很低的水平上。

备注:FIO 4K 随机读写时,可以看到CSD 2000 的IOPS 显著高于同类产品,主要原因就是FTL 条目映射粒度更小。
想学习更多的Casssandra、Spark、Pulsar相关知识,请关注DataStax公众号。




