Datacenter RPCs can be General and Fast——论文泛读

news/2024/5/20 6:55:23

NSDI 2019 Paper 论文阅读笔记整理

问题

从现代高速数据中心网络中挤出最佳性能意味着要进行复杂的专业化,打破软件和硬件层之间的抽象障碍。导致依赖网络技术的联合设计分布式系统激增,包括RDMA[18,25,26,38,50,51,58,64,66,69]、无损网络[39,47]、FPGA[33,34]和可编程交换机[37]。再加上新的分布式协议,但这些协议具有不完整的规范、无法重用现有软件、启用远程内存一致视图等缺陷,使得大量人员只使用基于内核的TCP。

现有方法局限性

现有方法在性能和通用性之间提供了一种不可取的折衷。

DPDK[24]这样的低级别接口速度很快,但缺乏通用应用程序所需的功能(例如,DPDK只提供不可靠的数据包I/O)。

mTCP[35]这样的全边缘网络堆栈留下了显著的性能问题。

由于没有提供高性能和通用性的网络选项,最近的系统通常选择使用低级接口来设计和实现自己的通信层[18,25,26,38,39,55,58,66]。

本文方法

本文提出了eRPC,一种新的通用远程过程调用(RPC)库,其性能与专用系统相当,在基于有损以太网或无损结构的传统数据中心网络中的商品CPU上运行。eRPC在三个关键指标上表现良好:小消息的消息速率;大消息的带宽;对大量节点和CPU核心的可扩展性。它处理数据包丢失、节点故障、拥塞控制和长时间运行的后台请求。

  • 针对常见情况进行优化,当消息很小[16,56]时,网络没有拥塞,RPC处理程序很短。处理大型消息、拥塞和长时间运行的RPC处理程序需要昂贵的代码路径,eRPC会尽可能避免这些路径。在重传、节点故障和速率限制的情况下实现零拷贝传输的技术。实现可扩展的方式,NIC内存占用与集群中的节点数量无关。

  • 将每个流限制为最多一个未处理数据的带宽延迟乘积(BDP),有效地防止了由普通传输模式的交换机缓冲区溢出引起的数据包丢失。这是因为数据中心交换机缓冲区比网络的BDP大得多。例如,在我们类似于实际部署的两层测试平台中,每个交换机都有12MB的动态缓冲区,而BDP只有19kB。

开源代码:GitHub - erpc-io/eRPC: Efficient RPCs for datacenter networks

在微基准标记中,一个CPU内核每秒可以处理多达1000万个小型RPC,或以75 Gbps的速度发送大型消息。在不修改核心Raft源代码的情况下,将Raft状态机复制的生产级实现移植到eRPC。在有损以太网上实现了5.5μs的复制延迟,这比使用可编程交换机、FPGA或RDMA的专用复制系统更快或相当。

总结

本文实现了eRPC,一种快速、通用的RPC系统,实现了与无损RDMA结构或专用网络硬件相当的性能。在三个关键指标上表现良好:小消息的消息速率;大消息的带宽;对大量节点和CPU核心的可扩展性。存在两个关键技术:(1)针对常见情况进行优化,当消息很小时,网络没有拥塞,RPC处理程序很短,尽可能避免处理大型消息、拥塞和长时间运行的RPC处理程序需要昂贵的代码路径。在重传、节点故障和速率限制的情况下实现零拷贝传输的技术。降低内存占用,NIC内存占用与集群中的节点数量无关。(2)将每个流限制为最多一个未处理数据,有效防止了由交换机缓冲区溢出引起的数据包丢失。


http://www.mrgr.cn/p/82407825

相关文章

【web网页制作】html+css旅游家乡河南开封主题网页制作(4页面)【附源码】

HTMLCSS家乡河南主题网页目录 🍔涉及知识🥤写在前面🍧一、网页主题🌳二、页面效果Page1 首页Page2 开封游玩Page 3 开封美食Page4 留言 🌈 三、网页架构与技术3.1 脑海构思3.2 整体布局3.3 技术说明书 🐋四…

程序员副业创富:业余时间解锁首笔财富里程碑

在这个充满机遇的数字时代,我,一个普通的程序猿,编程爱好者,终于在云端源想这个平台上收获了属于我的第一桶金。这是一个关于兼职、学习与成长的故事,希望能激发同在编程路上的你,勇敢迈出那一步。 先晒晒我的首笔收入:一个普通的周末,我像往常一样,泡上一杯咖啡,坐在…

(一)文本分类经典模型之CNN篇

这篇blog对NLP领域的基本任务文本分类的CNN经典模型做了梳理CNN源于计算机视觉研究,后来诸多学者将其应用于短文本分类,其基本结构如下图所示:由上图可知,基于CNN的短文本分类模型,通常包括输入层、卷积层、池化层、全连接层和输出层五部分,其中卷积层和池化层是最为关键…

抖音小店是什么?它和直播带货有什么区别和联系?一篇详解!

大家好,我是电商糖果 在网上大家都说抖音的流量大,在抖音做电商比较赚钱。 可是有很多人对抖音电商并不了解。 甚至搞不懂抖音小店是什么?它和直播带货的区别和联系也不清楚。 下面,糖果就来给大家好好解答一下这个问题。 抖音…

Django 4.x 智能分页get_elided_page_range

Django智能分页 分页效果 第1页的效果 第10页的效果 带输入框的效果 主要函数 # 参数解释 # number: 当前页码,默认:1 # on_each_side:当前页码前后显示几页,默认:3 # on_ends:首尾固定显示几页&#…

Apache DolphinScheduler 3.3.0 版本重磅更新提前看!

Apache DolphinScheduler 3.3.0版本终于要在万众期待中发布啦!本次发版将有重大功能更新,包括架构上的调整。 为了让广大用户提前尝鲜,社区特别准备了直播活动提前揭秘3.3.0版本中的重要更新,到时候你将会了解到这些信息:3.3.0版本的工作流引擎改进 任务执行流程的优化 架…

激光雕刻优化:利用RLE压缩技术提高雕刻效率与节省能源成本

什么是 RLE ?RLE 在激光雕刻应用实现代码:总结 什么是 RLE ? RLE 是 Run-Length Encoding(游程长度编码)的缩写。这是一种数据压缩技术,它通过减少连续重复的数据来减小文件的大小。RLE 在图像处理、无损…

【重塑世界的火种】制造业:从匠人之心到智能未来之旅

在人类文明的宏伟乐章中,有一段旋律始终激昂,它既古老又现代,既是力量的象征,也是智慧的结晶——这就是制造业,一个将梦想变为现实,将创意铸就为生活的神奇领域。今天,让我们一起走进这个塑造世…

【触想智能】工业级平板电脑五大特征与应用领域分析

工业级平板电脑是专供工业环境使用的工业控制计算机,也被称为工控一体机。工业级平板电脑基本性能及兼容性与商用平板电脑几乎相同,但是工业级平板电脑更注重在不同环境下的稳定性能,因此,工业级平板电脑与普通的商用平板电脑存在一定的区别。一、工业级平板电脑的五大特征…

2024软件测试自动化面试题(含答案)

1.如何把自动化测试在公司中实施并推广起来的? 选择长期的有稳定模块的项目 项目组调研选择自动化工具并开会演示demo案例,我们主要是演示selenium和robot framework两种。 搭建自动化测试框架,在项目中逐步开展自动化。 把该项目的自动化…

58微聊消息自动回复 – 58微聊自动回复机器人 – 浏览器插件

58同城上发布了产品,有咨询客户通过微聊联系我们,我们插件可以实现自动回复消息效果演示 58微聊消息自动回复,浏览器插件实现 #自动回复 #58同城 #58 – 抖音 (douyin.com) 功能列表关键词自动回复AI知识库自动回复下载插件 请联系微信:llike620 付费获取浏览器插件 原文地…

企业网站从传统服务器迁移到弹性云有什么优势呢?

现代企业对于网站和应用程序的可用性和性能要求越来越高,传统基础设施可能无法满足这些需求。弹性云作为一种新兴的云计算服务模式,对于企业网站的运行和管理带来了许多优势。下面是企业网站从传统服务器迁移到弹性云的五大优势: 灵活弹性&a…

黑马点评项目总结

登录 基于session登录 短信验证码登录 配置登录拦截器 向 Spring MVC 框架中添加拦截器,LoginInterceptor 是一个自定义的拦截器,用于拦截用户的登录请求。 excludePathPatterns这一句是设置拦截器需要放行的请求路径列表。 "/user/code", …

新版宝塔加密数据解密

宝塔更新了数据存储的方式,PanelForensics会尽快支持最近啊,fic中出现了宝塔,结果PanelForensics居然没有梭哈,这怎么行?? 于是我就一通分析,发现这个版本更新了架构,并且对密码的加解密是通过调用二进制依赖进行实现的 我这里就以mysql的密码为例,在新版本中,mysql的…

【挑战30天首通《谷粒商城》】-【第一天】03、简介-分布式基础概念

文章目录 课程介绍 ( 本章了解即可,可以略过)1、微服务简而言之: 2、集群&分布式&节点2.1、定义2.2、示例 3、远程调用4、负载均衡常见的负裁均衡算法: 5、服务注册/发现&注册中心6、配置中心7、服务熔断&服务降级7.1、服务熔断7.2、服务降级 8、AP…

数据库(MySQL)—— DML语句

数据库(MySQL)—— DML语句 什么是DML语句添加数据给全部字段添加数据批量添加数据 修改数据删除数据 什么是DML语句 在MySQL中,DML(Data Manipulation Language,数据操纵语言)语句主要用于对数据库中的数…

MongoDB索引

MongoDB索引 概述 索引支持在MongoDB中高效地执行查询。如果没有索引,MongoDB必须执行全集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的文档。这种扫描全集合的查询效率是非常低的,特别在处理大量的数据时,查询可以要花费几十秒甚至几分钟,这对网站的性能是非常…

Vue2工程化介绍

Vue2项目[基于vue-cli]工程化 【一】环境搭建06-Vue-cli - 刘清政 - 博客园 (cnblogs.com)安装node 使用npm/cnpm npm换源:npm config set registry https://registry.npmmirror.com 安装vue-cli cnpm install -g @vue/cli# 安装脚手架 cnpm install -g @vue/cli # 切换目录,…

jmeter以命令行模式运行:非GUI界面

* `-n`:表示非GUI模式运行:命令行模式运行jmeter脚本 * `-t`:要执行的jmeter脚本(JMX):a.默认执行当前路径下的脚本,b.或执行指定路径下的脚本 * `-l`:生成结果文件(JTL):a.默认在当前路径下生成JTL文件,b.或在指定路径下生成JTL文件 * `-e`:生成HTML报告 * `-o`…

音视频开发3 视频基础,图片基础

图片像素(Pixel) 一张图片是由多少个 像素 构成的。 例如一张图片是由60x50组成的。 位深度 bit depth RGB表示法 红(Red)、绿(Green)、蓝(Blue) 除了24bit,常见的位深…