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

news2024/11/25 2:56:41

在我们的日常理念中,追求性价比是最为常见的,但是你知道购买低配置还能享受高性能、低延时、超低价的数据库有哪些吗?今天我们就用数据说话,带你深入了解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

  1. 数据模型

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%

  1. 部署数据库
    1. 华为云购买GaussDB(for Cassandra)

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

 

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

 

 

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

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

 

    1. 公有云ECS部署开源Cassandra

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

      1. 公有云购买ECS虚拟机

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

 

      1. 安装与操作开源Cassandra

ECS创建好后,将开源Cassandra搭建到ECS上,具体操作步骤参考以下链接地址

  1. 操作步骤
    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);

    1. 数据准备阶段

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

    1. 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 &

  1. YCSB四种业务模型测试结果
    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操作的时延在多少微秒以内

    1. 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

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

经测试,开源Cassandra自建8U32G与GaussDB(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

  1. 扩容操作

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

    1. 扩容GaussDB(for Cassandra) 实例
      1. 计算扩容

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

 

      1. 存储扩容

在集群基本信息页面,点击磁盘扩容,即可对磁盘空间进行扩容。

 

    1. 扩容自建ECS+开源Cassandra

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

      1. 计算扩容

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

 

      1. 存储扩容

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

 

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

  1. 总结
    1. 性价比对比

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

对比项

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的存储价格,享有高性能及更多的运维能力加持,享受非比寻常的体验。

    1. 运维能力对比

以典型的计算扩容和存储扩容场景为例,分析扩容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)值得你拥有。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android开发者们想想:到底是市场饱和?还是你们技术饱和?

根据我的不客观数据体验来看,最饱和的是iOS,同样发布一个职位iOS是其他技术岗位10倍的投递量。当然Android作为一个已经市场化将近十几年的技术门类,它必然早已经是成熟常态。这样的技术行业都不再会有爆炸式的增长。连同Android硬件、手机、…

Go学习之路:方法和接口(DAY 3)

文章目录前引方法和接口1.1、方法/声明方法1.2、方法/捆绑其他类型1.3、方法/方法常用指针传递1.4、方法/普通函数指针传递和方法指针传递区别2.1、接口/方法签名集合2.2、接口/接口断言2.3、接口/switch case练习题、接口/stringer实现字符串打印2.4、接口/错误前引 昨天终于算…

机器学习5数据归一化Feature Scaling

文章目录一、为什么要数据归一化?二、解决方案数据归一化,解决方案1:最值归一化normalization:解决方案2:均值方差归一化standardization;三、最值归一化处理normalization四、均值方差归一化Standardization一、为什么…

ICMP协议(3层网络层协议:IP、ARP、ICMP)

1、ICMP协议端口号? 没有端口号,向TCP/UDP这些都是没有端口号只有协议号,只有应用层才有端口号。 2、ICMP协议是干什么的? 网络探测与回馈机制 1)网络探测 2)路由跟踪,windows命令:…

ABP:内置logger and 第三方库serilog 之间的关系

今天在看项目的日志记录功能&#xff0c;比较疑惑为什么项目中有的地方使用 Logger< T > _logger 然后又在资源文件下看见日志的第三方库 Serilog 解答&#xff1a; ASP.NET Core Build-in Logging ASP.NET Core 提供了 Logging 的抽象接口, third party 都会依据抽象来…

DJ 12-3 程序控制指令

目录 1. 无条件转移指令 JMP &#xff08;1&#xff09;段内直接转移 &#xff08;2&#xff09;段内间接转移 &#xff08;3&#xff09;段间直接转移 &#xff08;4&#xff09;段间间接转移 2. 条件转移指令 3. 循环控制指令 &#xff08;1&#xff09;LOOP 指令 &…

R语言中不同类型的聚类方法比较

聚类方法用于识别从营销&#xff0c;生物医学和地理空间等领域收集的多变量数据集中的相似对象。我们围绕聚类技术进行一些咨询&#xff0c;帮助客户解决独特的业务问题。它们是不同类型的聚类方法&#xff0c;包括&#xff1a; 划分方法分层聚类模糊聚类基于密度的聚类基于模…

Qt Creator 的 Shadow build(影子构建)

目录 一、什么是影子构建 二、如何取消影子构建 一、什么是影子构建 做wpf项目时&#xff0c;项目里面会有bin文件夹&#xff0c;里面有debug和release文件夹&#xff0c;生成的exe就在debug或release里面&#xff0c;但第一次做qt时&#xff0c;发现项目文件夹里面只有源码文…

2022 JuiceFS 社区用户调研结果出炉

为了使 JuiceFS 的发展更贴合用户的真实需求&#xff0c;我们在三周前向社区发出了一份调研问卷。此次调研面向已经将 JuiceFS 应用于生产环境的用户&#xff0c;了解其在应用 JuiceFS 前和使用中的体验与评价。 参与此次调研的用户&#xff0c;大型企业占比最高&#xff0c;有…

李炎恢ECMAScript6 / ES6+(一)

01. ECMAScript6 简介和历史 学习要点&#xff1a; 1.ES6 简介 2.ECMAScript 历史 3.学习和创建 Demo 本节课我们来开始了解 ECMAScript6(简称 ES6)&#xff0c;着重了解它的标准和历史。 一&#xff0e;ES6 简介 ECMAScript6 简称 ES6&#xff0c;是 JavaScript 语言的下一…

Vue3项目引入 vue-quill 编辑器组件并封装使用

这是一款支持Vue3的富文本编辑器 GitHub地址&#xff1a;https://github.com/vueup/vue-quill/ VueQuill官网&#xff1a;https://vueup.github.io/vue-quill/ // 查看 vueup/vue-quill 版本 npm view vueup/vue-quill versions --json// 导入 vueup/vue-quill 依赖包 npm i v…

试编写算法(用C语言)打印值为x的结点的所有祖先,假设值为x的结点不多于一个。(递归实现和非递归实现)

&#xff08;一&#xff09;递归实现&#xff1a; 完整代码&#xff1a; #include<stdio.h> #include<stdlib.h> #include<iostream> using namespace std;#define MaxSize 100 typedef int ElemType; typedef struct BiNode {ElemType data;BiNode* lchil…

基于springboot摄影跟拍预定管理系统设计与实现的源码+文档

摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包罗软件架构模式、整体功能模块、数据库设计。…

最新版k8s 1.25版本安装

简介 Kubernetes&#xff08;k8s&#xff09;是自动化容器操作的开源平台。这些容器操作包括&#xff1a;部署、调度和节点集群间扩展。 具体功能&#xff1a; 自动化容器部署和复制。实时弹性收缩容器规模。容器编排成组&#xff0c;并提供容器间的负载均衡。 总而言之&…

PHP基于thinkphp的教材管理系统#毕业设计

教材是每个学生和学校都必须具备的教学资源之一,它是知识的载体,是学生汲取知识的土壤,好的教材可以做到事半功倍的效果。但是通常情况下教材都是批量进行购买和发放的,为了能够更好的对教材信息进行管理,我们通过PHP语言,thinkphp框架开发了本次的教材管理系统 教材管理系统,…

谷粒学苑_第十一天

要开始做前台部分(用户环境) 之前我们用的后台前端框架是vue-admin-template 这次的前台框架是用的NUXT 轮播图实现 显示课程和老师 redis缓存 NUXT 服务端渲染技术 解压guli_site 在这里我们使用的是成品,页面也基本写好 然后下载依赖: 开始运行: npm rum dev后面…

[附源码]Python计算机毕业设计Django高校车辆管理系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

力扣(LeetCode)123. 买卖股票的最佳时机 III(C++)

前后缀分解 维护前缀和数组&#xff0c;保存 111~iii 天&#xff0c;买卖一次的最大利润。维护后缀和数组&#xff0c;保存 iii~nnn 天买卖一次的最大利润。枚举所有分界点 iii &#xff0c;买卖两次的最大利润 iii 的前缀和 i\ i i 的后缀和 111~iii 天买卖一次的最大利润 i\…

Mock测试

1、什么是mock测试 Mock 测试就是在测试活动中&#xff0c;对于某些不容易构造或者不容易获取的数据/场景&#xff0c;用一个Mock对象来创建以便测试的测试方法。 2、Mock测试常见场景 &#xff08;1&#xff09;无法控制第三方系统接口的返回&#xff0c;返回的数据不满足要…

Tomcat的安装、在idea中的使用以及创建Web项目

目录Tomcat的安装Tomcat运行Tomcat在idea中的使用创建Web项目最后Tomcat的安装 Tomcat的官网: https://tomcat.apache.org/ 从官网上可以下载对应的版本进行使用。 下载windows64位&#xff0c;版本自行选择。 下载好之后找到压缩包进行解压&#xff0c;注意目录不要有中文且…