检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
压测数据模型:单行1KB大小。 压测平均CPU负载:50%。 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格。
压测数据模型:单行20Bytes大小。 被测试实例的规格:覆盖以下规格类型,详见表1 实例规格。
同步状态正向迁移速度太快,报错:ERR server reply timeout, some responses may lose, but requests have been executed 修改参数parallel,可调整全量过程传输RDB的并发度,默认为32。
表1 副本集规格 副本集编号 数据库版本 实例规格 被测副本集1 4.0 4U16GB 被测副本集2 4.0 8U32GB 被测副本集3 4.0 16U64GB 被测副本集4 4.0 32U128GB 测试工具 本次测试采用开源社区的YCSB 0.12.0版本的测试工具。
SSDB到GeminiDB Redis的迁移 SSDB是一款使用C/C++语言开发的高性能NoSQL数据库,和Redis具有相似的API,支持KV,list,map(hash),zset(sorted set),qlist(队列)等数据结构,因此得到了广泛的应用。
如何使用Lucene搜索索引 GeminiDB Cassandra支持Lucene搜索索引已实现多维查询、文本检索、统计分析等能力,在使用体验上和原生二级索引相似,但同时拥有了更为丰富的语法支持。
压测命令 在三台ECS上对GeminiDB Redis实例执行多个压测任务,压测任务分别为: ECS1上,对类型一进行hgetall查询操作,通过key范围控制仅访问部分高频数据: memtier_benchmark -s ${ip} -a ${passwd} -p ${port}
表1 实例规格 编号 规格 cluster1 4U*3节点 cluster2 8U*3节点 测试工具 本次测试采用Redis Labs推出的多线程压测工具memtier_benchmark,具体使用方法请参见memtier_benchmark。
同步状态正向迁移速度太慢 修改redis-shake参数source.rdb.parallel,可调整迁移并发度,默认为0,按db和分片数确定。 父主题: 数据迁移
考虑的因素包括:partition size、数据冗余度、磁盘占用空间等。基于最优的性能考虑,建议每个分区下面的数据条数不超过10万,每个分区下面的数据量不超过100MB。
压测机器规格 表3 压测机器规格 名称 测试客户端ECS CPU 16vCPUs 内存 64GB 操作系统 Centos7.4 压测工具信息 表4 压测工具信息 测试工具 YCSB 版本 0.12.0 下载地址 https://github.com/brianfrankcooper
高阶特性 自动扩容 不支持 支持 支持hash field过期 不支持 支持,减少业务设计复杂度&提高并发 极速数据加载能力 不支持 支持FastLoad特征数据极速入库,减少对在线业务影响 基于时间点恢复(PITR)能力 不支持 支持 支持PITR数据回档,原实例快速恢复数据。
GeminiDB基础命令 针对社区Redis提供的全部命令类型,GeminiDB 5.0、6.2(包含6.2.x)和7.0兼容情况如下: 表1 GeminiDB Redis接口命令兼容度 Redis命令分类 命令详情 GeminiDB Redis 5.0兼容情况 GeminiDB
图1 迁移原理 Pika-migrate的迁移原理和pika-port相似,将工具虚拟为pika的从库,然后从主库获取到数据转发给目标redis,同时支持增量同步,实现在线热迁的功能。
不亚于RedisCluster的兼容度,使用户在应用时无需修改代码,可直接使用,100%兼容原生接口。GeminiDB Redis接口在适配Kvrocks业务的同时,还能克服管理能力弱、对Redis兼容度不高等缺点。
如果包含O(n)复杂度的命令,则应该慎重评估。 父主题: 数据库使用
业务上线前,一定要对数据库进行性能压测,评估业务峰值场景下,对数据库的负载情况。 禁止同时执行大量并发事务,且长时间不提交。 业务正式上线前, 所有的查询类别,都应该先执行查询计划检查查询性能。 开发过程中,对集合的每一个操作都要通过执行explain()检查其执行计划。
业务上线前,一定要对数据库进行性能压测,评估业务峰值场景下,对数据库的负载情况。 建议 执行查询时,只选择需要返回的字段,不需要的字段不要返回。 查询时间范围越小,查询性能越好。 查询时TAG值越精确查询性能越好。
由于随机化分区键,因此将跨多个分区均匀分布每天对表的写入,这将提高并行度和总体吞吐量。 但是要读取指定日期的所有项目,必须针对所有后缀查询项目,然后合并结果。
这是因为GeminiDB Redis接口将该场景下达命令复杂度优化到了O(logN + M),其中N是整体数据量,M是匹配的数据量。而开源Redis的扫描复杂度则是更慢的O(N)。