关于『背压』这个错误翻译

简介: 『背压』英文全称是back pressure,这是一个出自物理学的词汇,在传统的工程领域甚至医学界都有背压的概念,后来被引入到了计算机界。然而个人认为背压其实是个被大众认可的、主流的错误翻译!

『背压』英文全称是back pressure,这是一个出自物理学的词汇,在传统的工程领域甚至医学界都有背压的概念,后来被引入到了计算机界。然而个人认为背压其实是个被大众认可的、主流的错误翻译!


back有『后背』的意思,pressure是压力。所以back pressure不知从何时开始被译作了『背压』。但其实back也有『反方向』的含义,比如go back(回去)、come back(回来)、back away(后退)。对于back pressure而言,『反向』的语义比『后背』更准确。


你看机器学习中有个概念:back propagation。此二者back语义是相同的,但它就被译作『反向传播』,并没有被翻译成背传。所以我个人感觉『反向压力』是一个不错的称呼,虽然似乎也有看到这个叫法,但真的远远不如背压 脍(误)炙(人)人(子)口(弟)了……


微信图片_20220528171059.jpg




解释一下back pressure,看一下百科中背压的基础定义:


通常是指运动流体在密闭容器中沿其路径(譬如管路或风通路)流动时,由于受到障碍物或急转弯道的阻碍而被施加的与运动方向相反的压力。

上述定义可能还稍微抽象,再看个具体的例子。发动机有一个概念叫做排气背压,同样看一下百科的定义:


背压大,排气阻力就大,会降低发动机动力。
背压小,排气阻力就小,会增加发动机动力。

我个人总结就是:施方 向 受方 施加某种压力,然后收到了受方的反馈,从而促使施方调整施加压力的强度。


背压概念传播较广,早就从物理学和机械领域泛化,进入到了其他领域。然而不管是哪个领域,背压几乎都可以认为是和『流控』相关的。这下你或许可以听懂了。下面就拿我所熟知的计算机领域来谈一谈背压。背压并不是某种具体的技术,而是一种思想或者说策略。


计算机网络的TCP协议中有流量控制功能,核心实现就是利用『滑动窗口』,其实滑动窗口就应用了背压的策略(但也不能说滑动窗口就是背压。TCP滑动窗口更具体也更复杂)。在网络中,发送方向接收方源源不断地发送数据,是需要考虑接收方的处理能力的,否则容易导致服务雪崩,防雪崩大概就两大类。一种是接收方在处理能力超限之后直接拒绝或丢弃发送方发来的数据;另外一种就是不停地通知发送方自己的处理能力有多少,从而调控发送方的发送频率或大小。后者就是背压的思想。


通过这个描述你也可以发现,不仅仅是TCP的流量控制。对于消息队列或者其他任何生产者-消费者的场景也都可以采用背压的策略。


除了上面这些微观的例子,在宏观一点的业务场景中,背压策略也一直在使用当中,只是你或许不知道这个看似普普通通的做法有个学名叫背压而已。比如在推荐系统中控制同一个创作者的视频、图文等素材以一种被限定的频率被在用户消费。请注意这里不是说某创作者的素材以被约束的频率出在用户时间线(这个实现相对简单),而是说以被限定的频率被消费,只出现在用户的时间线,但用户没有点开观看不算消费。然而用户是否点击观看我们是无法事先得知的,只能借助日志流不停地后验反馈用户的点击观看行为,然后调整接下来创作者的素材出现在用户时间线中的频率!同理,在CPC广告(点击扣费的广告)系统中,广告只有被点击才会扣除广告主的预算,仅展示广告不扣费。此时如何匀速(或者其他限定速度)消耗广告主的预算,避免短时间内广告主预算耗尽(可能广告主希望自己的广告在不同时段都能曝光),其实现过程也大致同理。




除了『反向压力』外,back pressure也有被翻译成『反压』或者『回压』,尽管都小众,但这些都比背压要清晰准确的多。


一点拙见,可能贻笑大方了。




相关文章
|
26天前
|
消息中间件 存储 监控
深度写作:深入源码理解MQ长轮询优化机制
【11月更文挑战第22天】在分布式系统中,消息队列(Message Queue, MQ)扮演着至关重要的角色。MQ不仅实现了应用间的解耦,还提供了异步消息处理、流量削峰等功能。而在MQ的众多特性中,长轮询(Long Polling)机制因其能有效提升消息处理的实时性和效率,备受关注。
59 12
|
4月前
|
SQL 存储 数据库连接
【Azure Stream Analystics】流分析服务执行遇见警告错误消息,导致上游数据堆积,下游无任何输出
【Azure Stream Analystics】流分析服务执行遇见警告错误消息,导致上游数据堆积,下游无任何输出
【Azure Stream Analystics】流分析服务执行遇见警告错误消息,导致上游数据堆积,下游无任何输出
|
5月前
|
机器学习/深度学习 自然语言处理 搜索推荐
ChatGPT如何处理信息?
【7月更文挑战第24天】ChatGPT如何处理信息?
74 3
|
7月前
|
JavaScript 前端开发 Java
流的概念,怎么处理
流的概念,怎么处理
|
7月前
|
人工智能 缓存 自然语言处理
ChatGPT消息发不出去?ChatGPT没反应?那是这个步骤少做了!
今天在工作的过程中,我正准备登陆ChatGPT咨询一些关于文案的问题,但突然发现自己无法发送消息了。 “ChatGPT消息发送故障,但历史对话仍可查看。为了解决问题,您可以先访问OpenAI官方网站:https://status.openai.com/。 这个网站提供了Open AI系统的实时状态监控,非常方便实用。”
180 0
ChatGPT消息发不出去?ChatGPT没反应?那是这个步骤少做了!
|
7月前
|
Web App开发 存储 缓存
如何解决ChatGPT发送消息没有反应的问题
帮你解决ChatGPT发送消息没有反应的问题
397 0
如何解决ChatGPT发送消息没有反应的问题
|
7月前
|
编译器 C语言 C++
程序翻译过程详解
程序翻译过程详解
|
7月前
流式系统:第九章到第十章
流式系统:第九章到第十章
45 0
|
移动开发 算法 Java
不同编程语言复现ELO匹配机制与机制原理理解
不同编程语言复现ELO匹配机制与机制原理理解
244 0
|
JavaScript 前端开发 Java
干货|各种语言是怎么处理时间的?以及常见的 bug
干货|各种语言是怎么处理时间的?以及常见的 bug
130 0