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

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

不知道大家有没有想过?每一个互联网+结合的背后都是海量的存储需求。你查看的每一个商品、组建的每一个战队、阅读的每一篇文章,基于互联网的每一个兴趣爱好,都有它的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. 皮尔逊(Pearson)系数矩阵——numpy

    一.原理 注意 专有名词.(例如:极高相关) 二.代码 import numpy as np f = open('../file/Pearson.csv', encoding='utf-8') dat ...

  2. 鹏城杯 WEB_WP

    简单的PHP GET /?code=[~%8C%86%8C%8B%9A%92][~%CF]([~%9A%91%9B][~%CF]([~%98%9A%8B%9E%93%93%97%9A%9E%9B%9A ...

  3. CenetOS 7设置IP

    使用ip addr查看网卡名称,如:eth0 vim /etc/sysconfig/network-scripts/ifcfg-eth0,编辑网卡名对应的配置文件: BOOTPROTO=dhcp ON ...

  4. warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8): No such file or directory

    1)apt-get clean && apt-get update && apt-get install -y locales 2)locale-gen en_US.U ...

  5. SQLZOO练习二--SELECT from Nobel Tutorial

    We continue practicing simple SQL queries on a single table. This tutorial is concerned with a table ...

  6. Jmeter-记一次自动化造数引发的BeanShell写入excel实例

    一.前言 最近工作和生活说忙也忙,说不忙也不忙,但就是已经感觉很长时间没有get新的技术技能了,就是一丢丢的那种也没有,哈哈哈,今天就来讲一下最近get到的小技能吧. 工作中,由于某个需求需要几百条数 ...

  7. Codeforces Round #792 (Div. 1 + Div. 2) // C ~ E

    比赛链接:Dashboard - Codeforces Round #792 (Div. 1 + Div. 2) - Codeforces C. Column Swapping 题意: 给定一个n*m ...

  8. HCNP Routing&Switching之DHCP中继

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

  9. CentOS Docker安装 && docker 基础指令

    1 # 直接从官网下载docker的安装命令包(docker已经很贴心将安装shell脚本帮我们准备好了) 2 curl -fsSL get.docker.com -o get-docker.sh 3 ...

  10. while,do while,for循环语句

    循环语句 循环包含三大语句-----while语句 do while语句 for语句 循环三要素 初始值(初始的变量值) 迭代量(基于初始值的改变) 条件(基于初始值的判断) while语句 var ...