华为云数据库GaussDB(for Cassandra)揭秘第三期:高性能低成本是什么样的体验?

在我们的日常理念中,追求性价比是最为常见的,但是你知道购买低配置还能享受高性能、低延时、超低价的数据库有哪些吗?今天我们就用数据说话,带你深入了解GaussDB(for Cassandra)挑战高性价比!

众所周知,有数据的地方就需要用数据库,GaussDB(for Cassandra)最擅长在物流、内容分发、视频直播等海量数据的场景中,这样才能发挥它的特长。

本次围绕GaussDB(for Cassandra)新推出的2U8G小规格做一组测试并与自建ECS+开源Cassandra 8U32G进行性能和成本上的对比,快来和我一探究竟吧。

1     客户端压测工具

测试工具

版本

参考地址

YCSB

0.15.0

https://github.com/brianfrankcooper/ycsb/tree/0.15.0/cassandra

2     数据模型

YCSB业务模型

业务负载

负载说明

workload-read-mostly

95% read, 5% update

95%,更新5%

workload-read-write-combination

50% update, 50% read

更新50%,读50%

workload-mixed-operational-analytical

65% read, 25% update, 10% insert

65%,更新25%,写10%

workload-insert-mostly

90% insert, 10% read

90%,读10%

3     部署数据库

3.1  华为云购买GaussDB(for Cassandra)

  本次对比测试,采用华为云GaussDB(for Cassandra)2U8G规格,部署3个节点,申请100GB存储空间。具体操作如下:

1.png

备注:GaussDB(for Cassandra)采用DFV共享存储方案,存储层已实现三副本,该申请存储空间为业务数据可使用的空间。

2.png

如上按需费用为5.62/小时,包年费用是21,034元。

确认规格/节点数/存储空间,直接购买,约8分钟即可创建完成。

创建实例后,每个业务节点对应一个系统容器,挂载2个磁盘(20G/40G),作为操作系统盘和日志盘。

4.png

3.2  公有云购买ECS部署开源Cassandra

本次对比测试,开源Cassandra采用购买ECS,自行部署Cassandra开源软件场景,同样部署3个节点,每个ECS在申请60GB的系统盘/日志盘的基础上,再额外申请100GB数据盘,作为Cassandra数据存储使用。

3.2.1 公有云购买ECS虚拟机

选择8U32G ECS规格,60GB的系统盘/日志盘,100G数据盘。

5.png

X86平台按需费用为3.074元/小时,包年费用是11,196元。

3.2.2 安装与操作开源Cassandra

ECS创建好后,将开源Cassandra搭建到ECS上,具体操作步骤参考以下链接地址(详见4.1章节),链接地址:https://bbs.huaweicloud.com/forum/thread-110605-1-1.html

4     操作步骤

4.1  创建表模型

创建keyspace:

create keyspace ycsb  WITH REPLICATION = {'class' : 'SimpleStrategy', 'replication_factor': 3 };

进入keyspace:

use ycsb;

创建usertable:

create table usertable (

y_id varchar primary key,

    field0 varchar,

    field1 varchar,

    field2 varchar,

    field3 varchar,

    field4 varchar,

    field5 varchar,

    field6 varchar,

    field7 varchar,

    field8 varchar,

field9 varchar);

4.2  数据准备阶段

nohup ./bin/ycsb load cassandra-cql -P workloads/workload-insert-mostly  -threads $THREAD_COUNT -s > $LOG_FILE 2>&1 &

4.3  YCSB四种业务模型压测

YCSB业务模型

业务负载

压测语句

workload-read-mostly

95% read, 5% update

nohup ./bin/ycsb load cassandra-cql -P workloads/workload-read-mostly -threads $THREAD_COUNT -s > $LOG_FILE 2>&1 &

workload-read-write-combination

50% update, 50% read

nohup ./bin/ycsb load cassandra-cql -P workloads/workload-read-write-combination -threads $THREAD_COUNT -s > $LOG_FILE 2>&1 &

workload-mixed-operational-analytical

65% read, 25% update, 10% insert

nohup ./bin/ycsb load cassandra-cql -P workloads/workload-mixed-operational-analytical -threads $THREAD_COUNT -s > $LOG_FILE 2>&1 &

workload-insert-mostly

90% insert, 10% read

nohup ./bin/ycsb load cassandra-cql -P workloads/workload-insert-mostly -threads $THREAD_COUNT -s > $LOG_FILE 2>&1 &

5     YCSB四种业务模型测试结果

5.1  测试结果指标说明

OPS:每秒操作数

insert_Lat(us):每次insert操作平均时延(微秒)

insert95Lat(us)95%insert操作在多少微秒内

insert99Lat(us)99%insert操作在多少微秒内

update_Lat(us):每次update操作平均时延(微秒)

update95Lat(us):95% update操作的时延在多少微秒以内

update99Lat(us):99% update操作的时延在多少微秒以内

read_Lat(us):每次read操作的平均时延(微秒)

read95Lat(us)95% read操作的时延在多少微秒以内

read99Lat(us)99% read操作的时延在多少微秒以内

5.2  GaussDB(for Cassandra) 2U8G测试结果

业务负载

OPS

insert_Lat  (us)

insert95Lat(us)

insert99Lat(us)

update_Lat(us)

update95Lat(us)

update99Lat   (us)

read_Lat  (us)

read95Lat (us)

read99Lat  (us)

95% read, 5% update

8053

/

/

/

1506

1581

1653

2031

2209

2675

50% update, 50% read

9640

/

/

/

1446

1521

1598

2242

2847

3345

65% read, 25% update, 10% insert

9598

1467

1526

1623

1438

1494

1584

2073

2597

3105

90% insert, 10% read

9825

1524

1553

2105

/

/

/

2487

3131

4407

5.3  自建ECS+开源Cassandra 8U32G测试结果

经测试,开源Cassandra自建8U32GGaussDB(for Cassandra)使用GaussDB(for Cassandra) 2U8G性能上持平,具体测试结果如下:

业务负载

OPS

insert_Lat(us)

insert95Lat(us)

insert99Lat(us)

update_Lat(us)

update95Lat(us)

update99Lat(us)

read_Lat(us)

read95Lat(us)

read99Lat(us)

95% read, 5% update

8045

/

/

/

1349

1395

1576

2014

2121

7327

50% update, 50% read

9895

/

/

/

1342

1379

1553

2379

2918

3325

65% read, 25% update, 10% insert

9616

1386

1422

1596

1354

1392

1572

2273

2689

3717

90% insert, 10% read

9017

1441

1406

2009

/

/

/

4620

4511

67775

6     扩容操作

华为云GaussDB(for Cassandra)采用存算分离架构,在计算扩容和存储扩容方面,无需进行数据搬迁,可以做到秒级运维。

6.1  扩容GaussDB(for Cassandra) 实例

6.1.1   计算扩容

在实例管理界面,选中添加节点,进入如下页面,可以选择本次扩容计算的节点个数。本次扩容以12U8G节点为例,具体如下:

6.png

按需1.75/小时,包年费用是6,178元。

6.1.2   存储扩容

在集群基本信息页面,点击磁盘扩容,即可对磁盘空间进行扩容,按需0.00378/GB/小时,包月是2.5/GB/,包年是25/GB/年,增加100GB磁盘空间就是2500/GB/年。

7.png

6.2  扩容自建ECS+开源Cassandra

自建Cassandra在扩容计算和存储期间,需要自行购买ECS计算节点,以及对应超高IO存储。手工修改节点配置、新加集群以及搬迁数据等。

6.2.1   计算扩容

自建Cassandra扩容计算,如上述购买多1ECS虚拟机,挂载磁盘为60GB的系统盘/日志盘。时间推算需要30分钟。

8.png

   以上按需费用是2.934/小时,包年费用是10,196

6.2.2   存储扩容

自建Cassandra扩容存储,在原挂载数据盘的基础上进行扩容。以上述实例为例,3个节点每个ECS的数据盘从100GB扩展到200GB,一共扩容300GB3*100GB),300G费用为3000/年。

9.png

开源存储磁盘扩容按32Mbps/s的迁移速度算每秒为12MB,每分钟处理0.703GB的数据,迁移100GB的数据需要约2小时(100/0.703=142.2分钟)。

7     总结

7.1  性价比对比

从性价比看,华为GaussDB(for Cassandra)在相同存储容量以及性能表现下,费用仅为开源自建Cassandra63%,具体如下:

对比项

ECS+开源Cassandra

GaussDB(for Cassandra)

规格

8U32G * 3节点

2U8G * 3节点

存储空间

100GB

100GB

每小时费用

¥9.222

¥5.62

包年费用

¥33,588

¥21,034

95% read, 5% update

OPS

8045

8053

50% update, 50% read

OPS

9895

9640

65% read, 25% update, 10% insert

OPS

9616

9598

90% insert, 10% read

OPS

9017

9825

相同的数据空间,华为云GaussDB(for Cassandra)仅需要开源Cassandra 1/3的存储价格,享有高性能及更多的运维能力加持,享受非比寻常的体验。

7.2  运维能力对比

以典型的计算扩容和存储扩容场景为例,分析扩容100G存储以及扩容1个计算节点场景,从费用/时长方面做出对比,可看出用华为云GaussDB(for Cassandra),在费用和操作时长方面均有优势,扩容时长方面更是秒级扩容,一眼可见华为云GaussDB(for Cassandra)高扩容能力,具体如下:

运维场景

维度

ECS+开源Cassandra 8U32G

GaussDB(for Cassandra) 2U8G

存储扩容

包年费用

¥3,000

¥2,500

扩容时长

2小时

10

计算扩容

包年费用

¥10,196

¥6,178

扩容时长

30分钟

8分钟

 

综上所述,用开源Cassandra 63%的价格,享受一样的性能,存储实现秒级扩容,享有更好的运维能力,使用更好的架构最大化的节省成本,华为云GaussDB(for Cassandra)值得你拥有。

8     附录

本文作者:华为云高斯Cassandra团队

杭州西安深圳简历投递zhaojuan.zhao@huawei.com

更多技术文章,请关注高斯Cassandra官方博客:

https://bbs.huaweicloud.com/community/usersnew/id_1604998578768602
高斯Cassandra官方首页https://www.huaweicloud.com/product/gaussdbforcassandra.html

(完)