写点什么

【干货分享】华为云多模数据库 GeminiDB 架构与应用实践直播问答实录

  • 2024-03-27
    海南
  • 本文字数:3890 字

    阅读完需:约 13 分钟

多模数据库作为一种新兴的数据管理解决方案,正在受到越来越多的关注。而华为云多模数据库 GeminiDB 基于云原生数据库优势,让企业应用更智能、更高效。前几日,华为云 NoSQL 数据库研发总监余汶龙通过直播(链接见文末)的方式,分享了《华为云多模数据库 GeminiDB 的技术架构及应用实践》,对 GeminiDB 的技术特性、架构优势等进行了全方位解读。整场直播干货满满,让观众们直呼过瘾,并且积极提问,展开了深入交流。小编将大家关心的问题进行了整理,一起来看看吧!


GeminiDB 通用问题


问:GeminiDB 的计算和存储是完全分离的吗?

答:GeminiDB 的计算节点和存储节点完全分离,通过 RDMA 高速网络实现互通。

问:如果 n 个节点都故障了,有什么应对方案吗?答:如果采用 GeminiDB 跨 Region 双活方案,可以将流量从故障的主实例秒级切换至正常的备实例,实现业务的连续性访问。此外,还可以使用备份恢复到新实例能力,使用备份数据快速重建实例。

问:计算的算力可以水平扩展吗?答:GeminiDB 计算节点支持水平扩展和垂直扩展,即:既可通过变更计算节点 CPU 和内存规格提高每个节点的负载能力,又可以通过添加集群节点的方式提高集群负载上限。

问:多模数据库,是 GeminiDB 会提供多个引擎的统一入口吗?答:目前 GeminiDB 以生态兼容为主,目前支持 Redis,MongoDB,Cassandra,DynamoDB,InfluxDB 五大生态协议的 100%兼容,助力客户无缝、“0”改造搬迁。后期计划推出自有生态协议,给开发者和客户提供更多多模融合功能,让多模数据可以更加紧密地衔接和关联。

问:支持多模数据库的场景,是支持多模并发吗?还是说一次只能支持一个类型的数据库?

答:GeminiDB 是多模数据库,一库具备多种数据模型引擎,可以自由组合,这些多模引擎共享存储资源和管理资源等,支持业务侧进行多模并发处理。

问:不同数据模型的数据之间怎么实现交互,比如文档数据和 KV 数据可以一起处理和使用吗?

答:目前公有云 GeminiDB Cassandra 接口开放了宽表模型数据和搜索引擎协同处理和使用,提供强大的全文检索,复杂索引等能力。其他数据模型交互和协同处理会在后期逐步开放给开发者和客户使用。

问:GeminiDB 存算分离后,是怎么解决跨主机通信网络时延的?

答:采用 RDMA 技术,允许用户程序绕过操作系统内核,直接和网卡交互进行网络通信,从而提供高带宽和极小时延。

问:GeminiDB 适合哪些应用场景?

答:GeminiDB 目前兼容 Cassandra、MongoDB、InfluxDB、Redis 和 DynamoDB 主流 NoSQL 接口,并提供高读写性能,具有高性价比,适用于 IoT、气象、互联网、游戏等领域。

问:GeminiDB 和 GaussDB 有哪些不同?

答:GaussDB 是华为自主创新研发的分布式关系型数据库,GeminiDB 与 GaussDB 在云计算平台高性能、高可用、高可靠、高安全、可弹性伸缩的基础上,提供了一键部署、备份恢复、监控报警等服务能力。区别在于,GeminiDB 是一款基于计算存储分离架构的分布式多模数据库,关注点主要在非关系型数据(即 NoSQL)领域。

问:GeminiDB 对于故障节点数据是怎么处理的?

答:在存算分离的架构中,计算节点只负责数据的解析和 cache,不存储具体数据,因此在计算节点发生故障时,其他节点自动接管对应流量,无需进行数据搬迁。

问:对于文件,直接把内容存储在数据库中,还是存储文件路径,然后把文件存在服务器?

答:存算分离架构从物理布局上有计算服务器和存储服务器。计算服务器部署数据库服务,存储服务器负责持久化。文件被数据库服务进行处理,具体内容是存在存储服务器的。

问:支持自动备份数据到华为云 OBS 吗?

答:GeminiDB 支持自动备份数据到华为云 OBS,GeminiDB 现在的自动备份的数据都是上传到我们 OBS 的,而且 GeminiDB 还支持客户手动备份、增备和差异备份功能,这些功能备份后的数据都是上传到 OBS 的,实现了高性能、高可用、高可靠、高安全等特性。

问:GeminiDB 有没有提供加密存储方案,或者如何保护数据安全?

答:GeminiDB 提供加密功能,用户创建数据库实例成功后,磁盘数据会在服务端加密成密文后存储。用户查询加密对象时,存储的密文会先在服务端解密为明文,再提供给用户,钥使用 KMS 服务由客户进行管理。

问:请问目前在空间能力上有什么优势吗?

答:

  • 编码格式进行极致设计,降低冗余信息;

  • 存储侧自动进行垃圾回收,释放无效存储空间;

  • 采用新一代无损压缩算法,压缩率高,可有效降低存储空间。

问:共享的存储池中修改元数据路由信息怎么保持一致性?

答:采用共享方案后,确保一致性确实一个十分重要的技术难点,这个问题可以换个角度来思考:如何避免双写。GeminiDB 是分布式架构,每个节点都可读可写,每个节点负责一部分数据,为了保证不同节点无法访问同一份数据,采用两种机制来避免双写:

  • 文件租约,访问对应数据之前必须要有相应租约,数据若被另一个节点接管,则需要先进行租约回收,确保原有节点无法继续操作数据;

  • 文件持久后按照大小进行拆分,这个拆分的单元对应到存储侧是一个对象,这个对象除了支持读写接口之外,还提供一个拒写接口,一旦调用该接口后,其他客户端则无法写入。

问:GeminiDB 怎么应对 DDOS, 原理是什么?

答:客户应用在不需要通过公网访问的场景下,GeminiDB 使用华为云 VPC 提供内网访问,无法从公网访问,这种场景下无需担心 DDOS。如果客户应用需要通过公网访问 GeminiDB,GeminiDB 可以通过华为云统一 Anti-DDoS 服务对 GeminiDB 绑定的公网 ip 或 ELB 进行公网流量防护,无需担心 DDOS 攻击。

问:开启备份,是否会影响性能?

答:开启备份不会影响性能,我们的备份服务是基于快照的方式进行的,持续时间为毫秒级,之后由管控服务将备份文件上传至 OBS,对性能影响可以忽略不计。


GeminiDB Redis 接口


问:GeminiDB 键值引擎相比开源 Redis 都增加了哪些的特性?

答:首先,GeminiDB Redis 接口支持秒级无感扩容,且可配置自动扩容策略,无需人工干预。其次,针对广告和推荐业务,GeminiDB Redis 接口提供 Fastload 特征灌库功能,解决业务灌库耗时久痛点。在游戏行业,使用 GeminiDB Redis 接口的业务,可以在发版失败时一键原地回档,将损失降到最低。此外,GeminiDB Redis 接口还支持业务为 Hash field 设置过期时间,该特性是精准营销频控业务的刚需诉求。


GeminiDB DynamoDB 接口

问:怎么购买 DynamoDB 接口?

答:DynamoDB 接口目前购买入口与 GeminiDB Cassandra 接口相同,在 GeminiDB 统一购买页面进入,选在 Cassandra 接口即可:

https://www.huaweicloud.com/product/geminidb.html

购买前需要联系客服,后台会打开 DynamoDB 接口开关。

问:DynamoDB 迁移要做什么改造吗?

答:GeminiDB DynamoDB 接口 100%兼容 DynamoDB 协议和数据模型,并实现了关键特性全面对标,客户从 AWS DynamoDB 迁移至 GeminiDB DynamoDB 接口不需要做任何改造。


GeminiDB Cassandra 接口

问:Cassandra 接口支持原地数据闪回了吗?

答:Cassandra 接口最新版本是支持原地数据闪回的,支持实例级别和表级别的闪回。

问:流表中的数据可以保存多久?答:流表默认可以保存 24 个小时,支持动态调整。


GeminiDB Influx 接口

问:有哪几种设置冷热数据的方法?

答:GeminiDB Influx 接口支持冷热数据分层存储,以降低使用成本,该功能做到业务层不感知;冷热数据分层可以通过保留策略来设置,在创建保留策略时可以指定热数据的时间,到时间后系统会自动将数据转冷,具体可参考官方网站:

https://support.huaweicloud.com/influxug-nosql/nosql_05_0154.html

问:和 openGemini 有什么区别?有什么优势?

答:openGemini 是 GeminiDB 多模引擎中 Influx 接口的开源版本,相比 openGemini,GeminiDB 不仅支持时序引擎,还支持 Mongo,Redis,Cassandra,Dynamo 等多种其他引擎。

问:OpenTSDB 如何迁移到 GeminiDB?迁移后性能提升多少?

答:OpenTSDB 可以通过迁移工具迁移到 GeminiDB,迁移后数据压缩率和读写性能都有明显的提升;根据我们对某个真实业务的改造结果来看,其中数据大小可以减少 10 倍,查询性能提升 5 倍以上,写入性能提升 10 倍以上。

问:GeminiDB 怎么自动区分冷热数据?答:GeminiDB Influx 接口支持冷热数据分层存储,以降低使用成本;区分冷热数据主要通过时间,根据业务需求,设置好热数据时间,时间到了系统会自动将数据转冷。


GeminiDB Mongo 接口

问:与 MongoDB 接口兼容性怎么样呢?

答:当前 GeminiDB Mongo 接口完全兼容对应版本的 MongoDB 接口。

问:MongoDB 自建推荐怎么迁移上云?MongoDB 怎么迁移到 GeminiDB?

答:通过 DRS(数据迁移服务)可以实时同步到云上 GeminiDB。

问:Mongo 接口部分,说可用性容忍 N-1 个节点故障,想请问一下如果是 primary 节点挂掉,GeminiDB 是怎么处理的呢?

答:GeminiDB N 个节点之间会每两秒检测一次心跳,当其他节点在 2 秒间隔发现主节点挂掉后,会发生一个毫秒级的 failover,备节点进行升主。

问:最多支持多少节点的副本集?

答:GeminiDB Mongo 接口当前最多支持 16 节点(1 写 15 读)的副本集。

问:GeminiDB Mongo 和 DDS 都是 NoSQL 的文档数据库,推荐什么场景下使用 GeminiDB,什么场景下用 DDS?

答:

  • GeminiDB Mongo 接口采用了多节点共享存储的架构,主备之间无需同步。

  • DDS 每个节点使用单独的 ECS,EVS 进行部署,节点之间通过 oplog 进行同步。

从高可用角度,DDS 略占优,从主备延迟性,资源利用率角度,GeminiDB 更占优。此外,GeminiDB 和 DDS 价格上也存在差异,如果对价格敏感也可以进行按需选择。

问:Secondary 节点的个数变多是否会影响 Primary 节点的写性能?

答:如果客户端配置了 writeConcern=majority,每次写操作都会确保写入大多数节点才能返回,可能会影响写性能,其他场景下,Secondary 节点变多不会影响 Primary 节点的写性能。

问:怎么判断只读节点上的 Memtable 什么时候该丢弃?

答:只读节点只能处理读请求,不能进行写入,所以不会存在 Memtable。备机上其他的缓存,大致上基于 LRU 策略进行淘汰。

用户头像

还未添加个人签名 2023-04-20 加入

还未添加个人简介

评论

发布
暂无评论
【干货分享】华为云多模数据库GeminiDB架构与应用实践直播问答实录_平平无奇爱好科技_InfoQ写作社区