【HDFS】HADOOP-11552.Allow handoff on the server side for RPC requests

今天来分析一下
HADOOP-11552. Allow handoff on the server side for RPC requests.

这个之前没有使用场景,也没有细看,所以一直不明白它到底是做什么的?
最近在做Router RPC异步化,涉及到这个feature的使用,因此决定深入学习一下,特此记录。

根据ISSUE的描述,HDFS的RPC Server侧目前有这样一个问题。
Handler线程被每一个到来的RPC请求占满,直到这个请求处理完为止。
这是不合理的,因为这种设计建立在RPC全是short-time的情况,实际上,RPC是I/O-bound的,
可能会出现RPC执行很久的情况,那Handler线程就会一直阻塞,不能处理其他RPC请求。

基于上述问题背景,HADOOP-11552对现有RPC流程进行了优化。
我这里按照我的理解先总结一下,具体细节,以及源码可以参见后文。

如果在当前Handler线程里注册了某个特殊回调(用ThreadLocal保存)标记的话,
那么在org.apache.hadoop.ipc.ProtobufRpcEngine2.Server.ProtoBufRpcInvoker#call里会立即返回null,
不阻塞Handler线程,并延迟给客户端发送RPC响应(deferResponse),
等到这个回调的setResponse方法调用时,才触发发送响应的逻辑(sendDeferedResponse)。<

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/50422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Laravel Horizon:队列管理与监控的高级指南

引言 在现代Web应用开发中&#xff0c;任务队列是一个常见的需求&#xff0c;用于处理耗时的任务异步执行。Laravel提供了一个强大的队列系统&#xff0c;而Horizon是Laravel的一个扩展包&#xff0c;专门用于管理和监控队列。Horizon不仅提供了一个美观的Web界面来监控队列&a…

web学习笔记(八十三)git

目录 1.Git的基本概念 2.gitee常用的命令 3.解决两个人操作不同文件造成的冲突 4.解决两个人操作同一个文件造成的冲突 1.Git的基本概念 git是一种管理代码的方式&#xff0c;广泛用于软件开发和版本管理。我们通常使用gitee&#xff08;码云&#xff09;来云管理代码。 …

重生之我当程序猿外包

第一章 个人介绍与收入历程 我出生于1999年&#xff0c;在大四下学期进入了一家互联网公司实习。当时的实习工资是3500元&#xff0c;公司还提供住宿。作为一名实习生&#xff0c;这个工资足够支付生活开销&#xff0c;每个月还能给父母转1000元&#xff0c;自己留2500元用来吃…

前端开发知识(三)-javascript(对象)

一、JS对象 包括JS已经定义的对象&#xff0c;如&#xff0c;Array,Sting &#xff0c;DOM&#xff0c;BOM等&#xff0c;其中&#xff0c;JSON是用户自定义对象&#xff08;除对象外&#xff0c;还有文本&#xff09;&#xff0c;其他是JS定义 1.Array&#xff1a;数组 数…

Java从入门到精通 (十一) ~ 操作系统、进程和线程

无论做什么&#xff0c;请记住都是为你自己而做&#xff0c;这样就毫无怨言&#xff01;今天&#xff0c;我为自己而活&#xff01;今天&#xff0c;又是美丽的一天&#xff01;早安&#xff0c;朋友&#xff01; 目录 前言 一、操作系统 1. 概念 2. 操作系统的基本功能 3…

@RequiredArgsConstructor详解

RequiredArgsConstructor详解 一、什么是RequiredArgsConstructor? RequiredArgsConstructor是Lombok的一个注解&#xff0c;简化了我们对Autowired书写&#xff0c;我们在写Controller层或者Service层的时候&#xff0c;总是需要注入很多mapper接口或者service接口&#xf…

Java-----栈

目录 1.栈&#xff08;Stack&#xff09; 1.1概念 1.2栈的使用 1.3栈的模拟实现 1.4栈的应用场景 1.5栈、虚拟机栈、栈帧有什么区别呢 1.栈&#xff08;Stack&#xff09; 1.1概念 栈&#xff1a;一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操…

【Python】基础学习技能提升代码样例4:常见配置文件和数据文件读写ini、yaml、csv、excel、xml、json

一、 配置文件 1.1 ini 官方-configparser config.ini文件如下&#xff1a; [url] ; section名称baidu https://www.zalou.cnport 80[email]sender ‘xxxqq.com’import configparser # 读取 file config.ini # 创建配置文件对象 con configparser.ConfigParser() # 读…

EEtrade:区块链是什么

区块链&#xff0c;这个近年来频繁出现在我们视野中的术语&#xff0c;已经从一个技术小众圈的词汇&#xff0c;逐渐演变为全球关注的焦点。从比特币的诞生&#xff0c;到如今在金融、供应链、物联网等领域的广泛应用&#xff0c;区块链技术正在深刻地改变着我们的生活。那么&a…

我在高职教STM32——串口通信(5)

大家好,我是老耿,高职青椒一枚,一直从事单片机、嵌入式、物联网等课程的教学。对于高职的学生层次,同行应该都懂的,老师在课堂上教学几乎是没什么成就感的。正因如此,才有了借助 CSDN 平台寻求认同感和成就感的想法。在这里,我准备陆续把自己花了很多心思的教学设计分享…

深入解析 Java 的 switch 语句

深入解析 Java 的 switch 语句 在 Java 编程中&#xff0c;switch 语句是一种常用的控制流语句&#xff0c;它能够根据变量的不同值执行不同的代码块。与 if-else 语句相比&#xff0c;switch 语句在处理多个条件判断时更加简洁和清晰&#xff0c;尤其适用于对一个变量的多个可…

Godot入门 01Godot介绍

Unity大神&#xff0c;YouTube百万游戏开发者的启蒙老师&#xff0c;Brackeys&#xff0c;携 Godot 新手教程&#xff0c;正式回归。 转自&#xff1a;https://youtu.be/LOhfqjmasi0?si4RguI6-pXHZ2mk9K 资产&#xff1a;https://brackeysgames.itch.io/brackeys-platformer-b…

病理多示例学习仓库介绍(持续更新中)

开源项目介绍&#xff1a;MIL_BASELINE 项目概览 MIL_BASELINE 是一个集成了多种多实例学习方法&#xff08;MIL&#xff09;的统一框架库&#xff0c;旨在简化多实例学习模型的开发与应用。它不仅整合了多种MIL方法&#xff0c;还提供了统一的数据集接口和常用的数据集划分方…

C++的编译方式和文件扩展名,C++的头文件,以及C++的标准输入和输出

本文介绍C++的编译方式和文件扩展名,C++的头文件,以及C++的标准输入和输出 1.编译方式和文件扩展名 2.头文件 3.标准输入输出 //vi 01first.cpp#include <iostream>int main(void) {std::cout<<"hello world"<<std::endl;return 0;}1.1编译方式…

【linux】Shell脚本三剑客之grep和egrep命令的详细用法攻略

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

LK漏感值在网络变压器测试中是否有很大的作用?

今天客户一个产品异常问题&#xff0c;就是说LK漏感值严重超标产品规格书参数&#xff0c;今天我们讲讲这个参数在网络变压器其中的影响。LK漏感值在网络变压器的测试和性能评估中扮演着重要的角色。漏感&#xff0c;或称为漏磁场感抗&#xff0c;是指变压器中不参与主要能量传…

2024.7.24

预处理 在计算机编程和算法设计中&#xff0c;“预处理”通常指在正式的处理或计算之前&#xff0c;对数据或操作进行的一些预先的处理和准备工作。 目的 预处理的目的通常包括&#xff1a; 优化性能&#xff1a;通过提前计算或整理一些数据&#xff0c;减少后续主要计算过…

万字长文说说C#和Rust_Cangjie们的模式匹配

C#11新增列表模式后&#xff0c;这个从C#6就开始的特性&#xff0c;算是拼接好了模式匹配的最后一块拼图。对比Swift、Rust或Cangjie这类先天支持模式匹配的语言&#xff0c;能否一战&#xff1f;今天就来全面battle一下。Swift、Rust和Cangjie的模式匹配&#xff0c;一肪相承&…

springboot会员信息管理系统-计算机毕业设计源码38258

目 录 摘要 1 绪论 1.1 研究背景 1.2 研究意义 1.3开发技术 1.3.1 Spring Boot框架 1.3.2 Java语言 1.3.3 MySQL数据库 1.4论文结构与章节安排 2系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1 登录流程 2.2.2数据删除流程 2.3 系统功能分析 2.4 系统用例分析…

代码审计:Bluecms v1.6

代码审计&#xff1a;Bluecms v1.6 漏洞列表如下(共计32个漏洞&#xff0c;附Exp&#xff0c;按时间顺序)&#xff1a; 未完待续… 1、user.php 766行处存在任意文件删除漏洞 Exp:http://127.0.0.3/bluecms/user.php?actedit_user_info Post&#xff1a;face_pic32.php el…