如果现在的我们离开了互联网,生活会是什么样子?

互联网++++,已经深刻渗透到人们的生活中。

不知道大家有没有想过?每一个互联网+结合的背后都是海量的存储需求。你查看的每一个商品、组建的每一个战队、阅读的每一篇文章,基于互联网的每一个兴趣爱好,都有它的key和value。

在 key-value 数据库领域,Redis 因其高吞吐、低延迟、丰富的数据结构一直受开发者欢迎,但 Redis 全内存方案无法解决海量数据所带来的规模与成本问题,数据可靠性也面临挑战

目前业界也有很多基于磁盘的键值存储方案,比如RocksDB、SSDB等。这些存储引擎设计之初是为了发挥磁盘的极致性能,很难在命中内存访问的时候提供Redis级的吞吐;同时磁盘本身的延迟远远高于内存,吞吐也是有限的。

讲道理,我们的市场需要一款产品既要保证用户的极致体验,又要确保海量数据的高可靠,还要尽可能低的成本。

怎么办呢?这里为大家介绍我们的新朋友:KeeWiDB,它可以给开发者提供一个高可靠、高效率、低成本的键值数据库解决方案。

KeeWiDB,什么来头?

KeeWiDB 是腾讯云数据库团队推出的新一代分布式KV存储数据库,兼容 Redis 协议和数据结构,上手门槛低(开发者狂喜)。

也就是说,Redis 有的它都有!它有的,就是它才有。那 KeeWiDB 有什么呢?

它可以,通过 WAL 机制支持数据的高速持久化,实现写入即存储;通过内存和持久内存提供热数据的极致读写性能,NVMe SSD磁盘提供大容量、低成本的存储能力,实现数据的冷热分级,优化存储成本。

总的来说,KeeWiDB 拥有前瞻的架构设计、行业领先的性能表现,可助力企业提升生产效率、降低运营成本。

接下来展开说说什么是前瞻的架构设计。



图:KeeWiDB总体架构图

proxy:兼容主从版、集群版客户端,客户端请求通过 proxy 实现智能路由和结果聚合;同时,proxy 还提供了流量控制和请求统计等功能。

集群设计:通过改进原生 Redis 的 gossip 方案,KeeWiDB 可有效降低在大集群场景下gossip 本身的流量消耗。数据 sharding 则采用 Redis 集群版策略,将所有 key 划分为16384个 slot,每个 shard 服务若干个 slot,key通过crc16(key) % 16384来获得 slot,再根据slot信息路由到对应节点。

分级存储:创新性地提供内存(DRAM),持久内存(PMEM),固态硬盘(SSD)分级存储解决方案,根据数据访问热度自动分级,将不同访问密度的数据存储到不同成本的介质中,有效实现了性能和成本的平衡。



图:KeeWiDB分级存储架构

在该架构中,DRAM 主要存储少量高速索引,如果查询操作直接命中高速索引,则可以直接定位到 value 的位置,最多仅需要一次 IO。

为了降低内存消耗,DRAM 层不存储 key,只存储 hashcode,这样可把 key 大小和索引容量解耦。举个例子,假设一个索引占用内存 hashcode(4) + posinfo(6),共计 10 个字节,100w key索引仅需要占用 10MB 内存。

假如高速缓存未命中,则需要通过 PMEM 来做查找,PMEM 的读取速度还是比较快的,假设按照 DRAM 100ns计算, PMEM可达到 1000ns。KeeWiDB 通过常规的 clock-sweep 算法淘汰不常访问的冷数据到 SSD,PMEM 保存的则是热数据,如果访问的是key 命中,性能将大幅提升。

如果命中的是冷数据,则需要到磁盘(SSD)读取,得益于 SSD 的快速发展,也可实现高性能。目前 KeeWiDB 的设备上,单盘 4k 随机读取 iops 可达到40w+,单盘 4k 随机写入也可以达到 15w+。因此实际使用中,特别是在主要读的场景下,即使PMEM和数据的比例达到 1:10,依然可以获得不错的性能。

KeeWiDB,有多强?

写入即存储

KeeWiDB 采用WAL(预写日志)持久机制,保障数据的原子性和持久性。日志内容会持久化到 PMEM 层,后台进行数据异步落盘,在保证数据实时持久化的同时实现数据的高速、低延迟写入。

极致性能

KeeWiDB 为 KV 场景定制了新一代存储引擎,大部分数据组织都是采用Hash的存取方式,同时与持久内存(PMEM)耦合,单节点最大性能可达到18万写入、28万读取,P99延迟小于2ms,同时可水平堆叠,性能线性提升。

分级存储

基于内存(DRAM)+持久内存(PMEM)+NVMe SSD磁盘搭建分级存储架构,由持久内存(PMEM)缓存访问热数据,磁盘(SSD)存储全量数据,持久内存和磁盘的容量可灵活配置。同时支持数据的冷热分离、自动升热降冷。无需在业务中处理缓存和存储的交换逻辑,可大幅提高版本迭代效率。

大容量低成本

KeeWiDB的原生分布式架构可以提供单实例百TB 级规模;通过持久内存(PMEM)和磁盘(SSD)提供更加灵活的存储方式,在满足业务性能要求的同时提供低成本方案。

智能运维

通过智能proxy和引擎层的多路采集,KeeWiDB 提供丰富的性能、时延、网络、容量、命中率等监控指标,帮助用户提前预警风险,快速定位和解决问题

KeeWiDB,怎么用?

电商场景

电商类应用通常拥有海量的商品数据,使用 KeeWiDB 可以轻松突破内存容量限制,并且大幅降低业务成本。在正常业务请求中,活跃的商品数据会从持久内存中读取,而不活跃的商品数据将从磁盘读取。KeeWiDB 新一代存储引擎带来更强劲的读取能力,单节点最大支持 28W + QPS、P99 延迟小于 2ms,轻松应对百万请求。在电商活动期间,可通过缓存资源的无损扩缩容,快速支撑陡增的性能需求。

游戏全服务

游戏业务包括登陆服务、匹配服务、组队服务、战队服务、社交服务等,需要存储不同的数据结构,比如 Hash 存储玩家信息、Zset 存储排行榜。KeeWiDB 兼容 Redis 的数据结构,对开发者非常友好,同时可将在线活跃的玩家数据持续缓存,未登录的玩家数据落冷至磁盘,玩家上线后数据自动缓存,从而大幅降低成本,保证热数据的极致性能,无需在业务侧处理缓存和存储交换的逻辑,可极大提升开发效率

新闻/内容平台

随着业务运营时间越来越长,内容数据在业务稳定后会有线性的增长,而客户访问的内容以近期、热点数据为主,所以热数据的容量比较稳定,冷数据会不断增大。KeeWiDB 可替换类似 Redis + MySQL 的缓存加存储方案,一体化的缓存+存储架构设计,解决缓存一致性问题的同时,提升业务开发效率,降低存储成本。

画像/推荐业务

当前互联网公司的核心资产是用户,基于用户行为的画像和推荐系统也成为互联网的基础设施,画像、特征、embedding 给企业带来了海量的 KV 存储需求,请求以点读和批量导入为主。KeeWiDB 通过冷热分级存储提供大容量、低成本的 KV 存储能力;通过命令级持久化,实现高速写入,缩短批量导入的窗口时间;通过分布式架构,能够提供百TB 的存储规模。

也说了不少了,大家应该对新朋友 KeeWiDB 有了一定的认识。

想详细了解 KeeWiDB 的高性能之路?且听下回分解。

腾讯云数据库一直致力于非关系型数据库产品的研发和投入,目前已经涵盖了包括缓存、文档、时序、KV在内的七款数据库产品,并且在持续丰富数据库服务的种类。目前,腾讯云 NoSQL 数据库服务了金融、电商、游戏、视频等数十个行业应用场景。

KeeWiDB:兼容Redis协议,领跑NoSQL的更多相关文章

  1. Future Maker | 领跑亚太 进击的阿里云数据库

    7月31日,阿里云马来西亚峰会在吉隆坡召开,阿里巴巴集团副总裁.阿里云智能数据库事业部总裁李飞飞在演讲中表示:“作为亚太地区第一的云服务提供商,阿里云数据库已为多家马来西亚知名企业提供技术支持,助力企 ...

  2. Gartner发布最新魔力象限报告,微软领跑数据库市场(编译自TechRepublic)

    知名调研机构Gartner发布了最新的<2015年数据库管理系统魔力象限调研报告>.报告显示,微软.甲骨文和AWS是数据库市场的三大领导厂商. 此份报告对知名的商用以及开源数据库厂商进行了 ...

  3. 云上领跑,快人一步:华为云抢先发布Redis5.0

    12月17日,华为云在DCS2.0的基础上,快人一步,抢先推出了新的Redis 5.0产品,这是一个崭新的突破.目前国内在缓存领域的发展普遍停留在Redis4.0阶段,华为云率先发布了Redis5.0 ...

  4. Java下Web MVC的领跑者:SpringMVC

    比较常用的MVC框架有Struts 和 SpringMVC. Struts 是Java Web MVC框架中曾经不争的王者.经过长达九年的发展,Struts占有了MVC框架中最大的市场份额.但是Str ...

  5. Redis协议详解

    smark Beetle可靠.高性能的.Net Socket Tcp通讯组件 支持flash amf3,protobuf,Silverlight,windows phone Redis协议详解 由于前 ...

  6. 五大科技巨头VR/AR专利报告,Magic Leap以22.6%领跑

    在十月份发布的<VR/AR专利技术深度分析报告>指出,VR.AR行业的专利多被佳能.索尼.微软.谷歌等科技巨头"包养",但是并没有对这部分进行详细分析.近日,风投公司C ...

  7. 硬件和软件兼容i2c协议的24Cxx系列EEPROM存储器(转)

    源:硬件和软件兼容i2c协议的24Cxx系列EEPROM存储器 硬件上由于24c01的A0A1A2管脚不允许悬空,故暂时的想法是兼容24c02 ---24c16 使用一个dip8封装的芯片插座,A0 ...

  8. Redis进阶实践之十七 Redis协议的规范

    一.介绍            Redis客户端使用称为RESP(Redis的序列化协议)的协议与Redis服务器进行通信. 虽然协议是专门为Redis设计的,但它可以用于其他客户端 - 服务器软件项 ...

  9. 2017年秋软工-领跑衫获奖感言&我最感谢的人

    啥都不说,先上幅图.获得领跑衫,开心. 一.回忆 这是我第二次来上恩师杨的软件工程,第一次是2016年春,那时候我还是本科三年级的学生.忘了第一次为啥去蹭课,印象中是我的榜样亮哥把我给忽悠过去的?我也 ...

随机推荐

  1. Day04 HTML标记

    路径 ./ 同级目录 ./ 进入该目录名下 ../ 上一级目录 HTML标记 图片 <!-- 图片标记 src 图片的路径 width 设置图片宽度 height 设置图片高度 title 鼠标 ...

  2. 交替方向乘子法(Alternating Direction Multiplier Method,ADMM)

    交替方向乘子法(Alternating Direction Multiplier Method,ADMM)是一种求解具有可分结构的凸优化问题的重要方法,其最早由Gabay和Mercier于1967年提 ...

  3. CRM汇客 牛刀小试 5个BUG修复

    1.权限管理-用户管理-高级搜索-手机号搜索不可用 1.1现象 1.2解决思路 1.2.1 定位接口 接口名:system/user/list 请求方式:GET请求 1.2.3 确定bug所在位置 b ...

  4. 论文阅读 Inductive Representation Learning on Temporal Graphs

    12 Inductive Representation Learning on Temporal Graphs link:https://arxiv.org/abs/2002.07962 本文提出了时 ...

  5. 5-1 Vant | 移动组件库

    Vant 什么是Vant Vant是一个轻量,可靠的移动端组件库,2017开源 目前 Vant 官方提供了 Vue 2 版本.Vue 3 版本和微信小程序版本,并由社区团队维护 React 版本和支付 ...

  6. Centos7较为彻底的删除mysql

    Centos7下较为彻底的删除mysql(root 身份操作) 删除mysql安装包 1. yum检查 yum list installed | grep mysql 安装则直接删除 示例:yum r ...

  7. 常见加密算法C#实现(一)

    前言:最近项目中需要用到字符串加解密,遂研究了一波,发现密码学真的是博大精深,好多算法的设计都相当巧妙,学到了不少东西,在这里做个小小的总结,方便后续查阅. 文中关键词: 明文(P,Plaintext ...

  8. HCNP Routing&Switching之DHCP中继

    前文我们聊了下BFD相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16487842.html:今天来聊一聊DHCP中继相关话题: DHCP的作用 DH ...

  9. prim最小生成树算法(堆优化)

    prim算法原理和dijkstra算法差不多,依然不能处理负边 1 #include<bits/stdc++.h> 2 using namespace std; 3 struct edge ...

  10. C#通过完整的例子,Get常用的2个套路,理解抽象方法,虚方法,接口,事件

    一.理解:抽象方法,虚方法,接口,事件 描述: 1.定义一个抽象父类"People": 要求: 1>3个属性:名字,性别,年龄: 2>一个普通方法"说话&qu ...