首届开发者大会专家访谈 | 一文了解腾讯云存储高性能技术与实践

本文主要是介绍首届开发者大会专家访谈 | 一文了解腾讯云存储高性能技术与实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

640?wx_fmt=gif

 

640?wx_fmt=jpeg

仰望星空

探索新型存储系统技术

谢长生

分论坛首先由来自华中科技大学的谢长生教授分享了存储系统技术的发展历史和展望。谢教授首先高屋建瓴地从图灵框架进行介绍,从图灵框架下的计算、传输和存储三大部件的发展历史讲起,指出我们的技术发展路线是非常明了的,即追求越来越快的处理,越来越快的传输和越来越大存储。此后,谢教授就存储这一部件进行了深入剖析。

640?wx_fmt=png

谢教授认为存储领域的变化主要集中在存储介质、协议的变革和一些新型存储技术的涌现。

1、在存储介质方面,过去是以硬盘存储为主流存储介质,而当下闪存存储则随着其成本的降低,逐渐地成为主流介质;在未来,STT、RRAM、3DXP等多种存储介质将随着其成本的下降,进一步商业化。

2、在协议方面,谢教授认为随着硬件性能的不断提升,协议栈的性能将成为也影响存储系统的重要因素。纵向上来看,可以通过缓存技术优化存储系统的性能;横向上来看,则可以通过高性能的分布式存储系统,提高整体的并发能力。

3、谢教授进一步为我们介绍了智能存储、AI存储、内存计算、计算型存储、类脑存储和区块链存储等多项近年来热门的新型存储技术。

谢教授认为,数据爆炸性的增长给存储技术提出了空间的挑战,主流存储介质正在发生一个重大的转移,即从磁性介质到闪存介质,往后新型的非易失存储也会逐渐商业化。新型的存储架构则随着新型的存储介质将会得到进一步发展。新型的存储系统结束也将随着AI、5G、物联网的技术的发展而不断涌现,以满足大数据时代对存储系统的要求和挑战。 

利用协议栈卸载实现超低延迟云盘

王银虎

此后,腾讯云块存储专家工程师王银虎介绍了块存储在高性能存储技术的具体实践。低延迟和高并发是高性能实践中遇到的首要问题,王银虎为我们总结了腾讯云块存储在客户端存储所做的优化。

640?wx_fmt=png

1、第一种提高性能的方式是利用SPDK直接访问NVME设备实现内核IO栈的卸载降低延迟。

  • 一方面,数据从QEMU块驱动出来后,不经过内核,直接在SPDK这类模式下,将数据交付到后端的集群;

  • 另一方面,块存储团队调整了数据交付到后端集群过程中的进程管理,将vhost进程跟driver进程捏合在一个进程内,变成一个进程中的两个独立线程,从而实现零拷贝,减少了数据原来两个进程间数据拷贝的耗时。

  • 同时,通过负载均衡,提高CPU的利用效率,以及流水线的水平扩展,进一步提高块存储的性能水平。

2、第二种提高性能的方式则是利用基于RDMA的高速通信框架来实现对网络协议栈的卸载。

  • RDMA是一种host-offload, host-bypass技术,允许应用程序(包括存储)在它们的内存空间之间直接做数据传输。

  • 具有RDMA引擎的以太网卡(RNIC)--而不是host--负责管理源和目标之间的可靠连接。王银虎向听众展示了基于Iscsi、基于NBD和基于RDMA的技术实现带来的性能收益,明显可以看到基于RDMA的方式减少了云硬盘50%的延迟。

大数据存储上
云 快人一步

严俊明

近年来随着云计算技术不断深入普及,用户也不再只是满足于数据存储需求,更希望存储在云上的数据能产生价值,大数据分析技术也在发生着巨大的转型。传统的存储和计算混布的架构也正一步一步朝着存储和计算分离的架构发生着演变。面对这样的发展趋势,腾讯云存储也基于对象存储推出了新型的云HDFS产品。

腾讯云对象存储专家工程师严俊明为我们介绍了这一新型产品的技术架构和实践。 

640?wx_fmt=png

1、对象存储具有灵活、扁平化的优势,但在处理大数据分析的场景时,会遇到诸如追加写的问题、目录操作的延迟问题等挑战。腾讯云HDFS产品通过我们的元数据管理,加上对象存储本身提供的存储容量的能力,可以做到云数据操作的低延时;此外,基于腾讯云的体系,也可以保证整个数据操作流程上的安全性。

2、严俊明分享了云HDFS的整体架构,主要由客户端、文件和目录索引以及底层的自研数据库和对象存储平台。通过这一套架构,数据可以直接通过客户端到我们的对象存储,不经过任何的中间转化,可以保证整个带宽的高效利用。

3、此外,他还分享了云HDFS在生产环境中的测试数据,展示了云HDFS在高带宽利用率、低延时以及动态更新等方面的优点。同时,他还展示了云HDFS丰富的使用方式,以及基于腾讯云权限体系的安全访问架构。

小程序+云存储

轻松响应业务需求

贺永红

夯实的存储能力使得腾讯云存储有底气为用户提供可靠的云服务,在过去一年中,腾讯云存储也积极构建产品生态,联合小程序云开发为更多开发者带来便捷的开发体验。小程序作为一种新的开放能力,开发者既可以在小程序上快速地实现和验证自己的商业构想,也可以利用小程序为自己的应用获取更多的流量加持。

对象存储高级产品经理贺永红分享了小程序在云存储上的商业实践案例,展示了云存储在小程序时代所扮演的角色。

640?wx_fmt=png

对象存储产品生态结构主要分为3层:

  • 其一是基于CDN的上传和下载网络,为用户提供遍布全球的分发节点以加速用户访问。

  • 其二是基于对象存储的PAAS和SAAS产品,如可以进行鉴黄等内容识别功能以及压缩、盲水印功能的数据万象产品;以及各类存储产品解决方案,如智能安防、医疗影像等。

  • 其三是作为底层存储平台的对象存储,可以为用户提供高可用的数据持久存储。

此外,针对对象存储的访问安全、数据持久存储、系统的高可用等技术架构,一一进行了介绍。此后,他进一步分享了基于对象存储的若干小程序案例,如腾讯“乘车码”小程序,香格里拉智能入住小程序,作业盒子在线教育小程序;展示了对象存储作为小程序上图片、音视频等内容的存储平台的优点。

微信后台海量数据存储

承载千亿级并发洪峰流量

郑建军

来自微信事业群分布式存储专家工程师郑建军在此后进一步分享了微信分布式存储系统的挑战,介绍了微信这样行业领先的国民应用所采用的高性能存储技术。

1、微信底层存储针对微信的具体应用场景进行了针对性的优化。

  • 存储引擎方面,采用大小表的存储方式去存储数据,将好友通讯录等应用的存储性能提升了将近1倍;

  • 数据保障方面,采用多副本、数据一致性协议以及数据对齐等多项技术,保障数据的持久性;

  • 在突发事件调控方面,采用队列优先级控制,保障系统在高负载的情况下能够高效地执行和输出。

2、郑建军还分享了微信在存储系统高可用方面的优化。

  • 首先是非租约的Paxos实现,保障系统宕机过程中数据读写的成功率;

  • 其次是存储集群机器的分而治之,大系统小做,同时对不同集群进行逻辑上的隔离;

  • 最后是多副本的数据对齐策略,将数据划分至不同的复制分组,在一个分组里面,数据可以独立进行,其容错跟容灾是相互不影响。

640?wx_fmt=png

多媒体存储

高效缓存和实时处理的强强结合

孙云清

论坛最后一个议题是腾讯技术工程事业群图片业务技术副总监孙云清分享的《多媒体存储,高效缓存和实时处理的强强结合》,介绍了腾讯在过去十年图片业务在架构上的发生变化,以及图片压缩技术的发展。

1、多媒体文件应用场景比较特殊,往往需要用户端展示时有多种不同的分辨率以及文件格式。在过去十年来,我们也经历了移动互联网的飞速发展,各类终端对图片处理技术的要求也越来越高。对于后端图片业务架构而言,越来越高的性能、越来越低的延迟以及越来越低的成本是重大的挑战。

2、孙云清首先介绍了缓存技术的架构和实现,展示了图片业务如何保障业务性能的前提下,提升空间利用率,降低业务成本。此后,她进一步介绍了图片业务在弹性资源的实践,通过弹性调度系统协调低负载的资源,应对突发业务的计算需求,从而降低设备闲置率和业务使用成本。

3、孙云清还介绍了图片压缩技术的发展。TPG作为腾讯自研图片格式,相较JPG格式能够降低40%~50%的存储空间。其主要原理是利用人眼对蓝光和黄光的敏感度差异构造图片。人眼对黄光区域的蓝光以及人眼对蓝光高频变化不敏感,因此对这部分区域的精细结构敏感度较低,因此可以对这部分区域采用低精度的编码,减少数据的存储容量。

640?wx_fmt=jpeg

 

随着5G、物联网等网络技术的发展,海量数据源源不断产生;随着4K/8K高清、AR/VR等新应用的普及,人工智能、大数据等应用深入数据体量急速膨胀;数据呈指数级增长,数据大爆炸已经来临。

腾讯云存储在存储领域将会继续砥砺前行,为开发者和客户提供持久高可用的存储服务。

 

● 文章经审核筛选发布;

● 奖励丰富的各种鹅厂福利;

这篇关于首届开发者大会专家访谈 | 一文了解腾讯云存储高性能技术与实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839363

相关文章

Java调用DeepSeek API的最佳实践及详细代码示例

《Java调用DeepSeekAPI的最佳实践及详细代码示例》:本文主要介绍如何使用Java调用DeepSeekAPI,包括获取API密钥、添加HTTP客户端依赖、创建HTTP请求、处理响应、... 目录1. 获取API密钥2. 添加HTTP客户端依赖3. 创建HTTP请求4. 处理响应5. 错误处理6.

golang内存对齐的项目实践

《golang内存对齐的项目实践》本文主要介绍了golang内存对齐的项目实践,内存对齐不仅有助于提高内存访问效率,还确保了与硬件接口的兼容性,是Go语言编程中不可忽视的重要优化手段,下面就来介绍一下... 目录一、结构体中的字段顺序与内存对齐二、内存对齐的原理与规则三、调整结构体字段顺序优化内存对齐四、内

C++实现封装的顺序表的操作与实践

《C++实现封装的顺序表的操作与实践》在程序设计中,顺序表是一种常见的线性数据结构,通常用于存储具有固定顺序的元素,与链表不同,顺序表中的元素是连续存储的,因此访问速度较快,但插入和删除操作的效率可能... 目录一、顺序表的基本概念二、顺序表类的设计1. 顺序表类的成员变量2. 构造函数和析构函数三、顺序表

python实现简易SSL的项目实践

《python实现简易SSL的项目实践》本文主要介绍了python实现简易SSL的项目实践,包括CA.py、server.py和client.py三个模块,文中通过示例代码介绍的非常详细,对大家的学习... 目录运行环境运行前准备程序实现与流程说明运行截图代码CA.pyclient.pyserver.py参

使用C++实现单链表的操作与实践

《使用C++实现单链表的操作与实践》在程序设计中,链表是一种常见的数据结构,特别是在动态数据管理、频繁插入和删除元素的场景中,链表相比于数组,具有更高的灵活性和高效性,尤其是在需要频繁修改数据结构的应... 目录一、单链表的基本概念二、单链表类的设计1. 节点的定义2. 链表的类定义三、单链表的操作实现四、

Redis存储的列表分页和检索的实现方法

《Redis存储的列表分页和检索的实现方法》在Redis中,列表(List)是一种有序的数据结构,通常用于存储一系列元素,由于列表是有序的,可以通过索引来访问元素,因此可以很方便地实现分页和检索功能,... 目录一、Redis 列表的基本操作二、分页实现三、检索实现3.1 方法 1:客户端过滤3.2 方法

一文详解Java Condition的await和signal等待通知机制

《一文详解JavaCondition的await和signal等待通知机制》这篇文章主要为大家详细介绍了JavaCondition的await和signal等待通知机制的相关知识,文中的示例代码讲... 目录1. Condition的核心方法2. 使用场景与优势3. 使用流程与规范基本模板生产者-消费者示例

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

电脑密码怎么设置? 一文读懂电脑密码的详细指南

《电脑密码怎么设置?一文读懂电脑密码的详细指南》为了保护个人隐私和数据安全,设置电脑密码显得尤为重要,那么,如何在电脑上设置密码呢?详细请看下文介绍... 设置电脑密码是保护个人隐私、数据安全以及系统安全的重要措施,下面以Windows 11系统为例,跟大家分享一下设置电脑密码的具体办php法。Windo

C++中使用vector存储并遍历数据的基本步骤

《C++中使用vector存储并遍历数据的基本步骤》C++标准模板库(STL)提供了多种容器类型,包括顺序容器、关联容器、无序关联容器和容器适配器,每种容器都有其特定的用途和特性,:本文主要介绍C... 目录(1)容器及简要描述‌php顺序容器‌‌关联容器‌‌无序关联容器‌(基于哈希表):‌容器适配器‌:(