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

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

不知道大家有没有想过?每一个互联网+结合的背后都是海量的存储需求。你查看的每一个商品、组建的每一个战队、阅读的每一篇文章,基于互联网的每一个兴趣爱好,都有它的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. 腾讯云数据库公有云市场稳居TOP 2!

    7月4日,国际权威机构IDC发布的<2021年下半年中国关系型数据库软件市场跟踪报告>显示,腾讯云数据库在关系型数据库软件市场(公有云模式)中,位列第二. IDC报告显示,2021下半年中 ...

  2. android studio取消设置代理

    看标题感觉就是一个简单的设置,其实只是个大坑啊 https://www.jianshu.com/p/bb6d2bcdd5b5 android studio内虽然设置了 no proxy,但是没起作用, ...

  3. Root用户无法使用Tab补齐解决

    1. sudo vim /etc/bash.bashrc 2.取消以下注释 #if [ -f /etc/bash_completion ]; then # . /etc/bash_completion ...

  4. 下载Chrome离线安装包

    https://www.google.com/chrome/thankyou.html?standalone=1&platform=mac&installdataindex=defau ...

  5. Hive sql 经典题目和 复杂hsq

    案例一 练习:一:将下列数据加载hive表. 员工信息表emp:字段:员工id,员工名字,工作岗位,部门经理,受雇日期,薪水,奖金,部门编号英文名:EMPNO,ENAME,JOB,MGR,HIREDA ...

  6. 《Python编程:从入门到实践》第十八章笔记:Django最基本用法笔记

    最近在看Python编程:从入门到实践,这是这本书"项目3 Web应用程序"第18章的笔记.记录了django最基本的一些日常用法,以便自己查阅. 可能是我的这本书版本比较老,书上 ...

  7. github访问较慢问题初步解决方案

    简介 众所周知,github在国内向来都是访问的非常坎坷,不挂代理访问起来非常困难,本文将介绍一种不依赖代理的加快访问的方式,但不一定可行哦,只能说是优化 步骤 1.在搜索框中输入记事本或者notep ...

  8. Linux—系统基础一

    Linux系统基础(一) Linux的基本原则: 由目的单一的小程序组成,组合小程序完成复杂任务: 一切皆文件: 配置文件保存为纯文本格式. 1.shell 1.1 shell简介 Shell俗称壳( ...

  9. Linux系列之比较命令

    前言 Linux中有两个比较命令,它们分别是comm和diff,在比较文本文件的版本时通常很有用.本文介绍它们的区别和简单用法. comm命令 该命令对两个文本文件进行比较,并显示每个文件独有的行和它 ...

  10. 手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果

    七夕来咯!又到了给重要的人送惊喜的时刻. 今年,除了将心意融入花和礼物,作为程序员,用自己的代码本事手搓一个技术感十足"七夕限定"惊喜,我觉得,这是不亚于车马慢时代手写信的古典主义 ...