java sdp_[java,SDP] java 7 SDP 技术/Socket Direct Protocol 2

With Java 7 and Sockets Direct Protocol , Java Now does RDMA ( Remote Direct Memory Access)

有了 SDP 技术支持之后的 Java 7 已经开始逐步实现 RDMA 技术 (远程内存直接访问)

RDMA is Remote Dynamic Memory Accesss -- which is a way of moving application buffers between two Java VM processes'

(executing in *nix user address space ) across a network.

RDMA 是 远程直接内存访问 --  即通过某种手段来实现通过网络传输来交换在两个虚拟机进程上运行的应用程序的缓冲空间中的数据

,其中虚拟机进程是运行在 Unix 系列操作系统的用户地址空间中的。

RDMA differs from traditional network interfaces because it bypasses the operating system .

远程内存直接访问技术区别于其他传统上的网络接口, 该种技术在网络中交换数据的全程无需操作系统做出任何控制.

This allows Java SDP over RDMA to deliver :

这使得基于 RDMA 技术之上的 Java 的 SDP技术 可以实现如下目标:

(i) The absolute lowest latency (ii) The highest throughput  (iii) Smallest CPU footprint

(i) 将绝对延迟最小化  (ii) 将吞吐量最大化 (iii) 将 CPU 的管控最小化/让其无需关心网络 IO 处理,更加集中处理计算逻辑,从而提高 CPU 的利用率

By exposing a Java join point to RDMA , SDP implicitly also enables Java to provide a very compelling "Zero-copy" capability.

通过把 Java 的连接点暴露给 RDMA ,SDP 私下里还支持 Java 实现了一个非常吸引人眼球的 "零-拷贝" 的新技术.

"Zero-copy"

describes computer operations in which the CPU does not perform the

task of copying data from one memory area to another .

"Zero-copy" 这一名词是用来描述计算机操作系统中的 CPU 是不会执行将数据从一个内存从拷贝到另一内存中 这样的任务.

Zero-copy versions of network protocol stacks greatly increase the

performance of certain application programs and more efficiently utilize

system resources.

在网络协议栈中实现的 零-拷贝 技术版本极大程度上提高了某些应用系统的性能的同时,也使它们更加充分的利用系统资源.

Performance

is enhanced by allowing the CPU to move on to other tasks while data

copying procedds in parallel in another part of the machine .

让 CPU 不参与数据拷贝工作而去处理其他的任务的同时,将数据拷贝任务在 CPU 的其他区域与 CPU 并行工作来极大地提升性能。

Also , zero-copy operations reduce the number of time-consuming mode switches between user space and kernel space.

同样,零-拷贝 操作减少了耗费时间的 用户态-系统态状态 切换的次数,从而节省了时间。

System resources are utilized more efficiently since using a sophisticated CPU to perform extensive copy operaitons,

which is a relatively simple task, is wasteful if other simpiler system components can do the copying .

系统资源其实还可以更加充分的被利用,因为如果相对简单的拷贝任务可以分配给简单的系统组件来完成,

却仍旧让一个设计精密复杂的 CPU 来执行大量的相对简单的任务操作,则实在是一种浪费。

It

is important to note that the Zero-copy capability we are talking about

here is not the Zero-Copy capability you can achieve by

using java.nio.channels. FileChannel's transferTo() API;.

有一点需谨记的就是,我们现在正在谈论的 "零-拷贝" 技术并非你在使用 java 编程中所使用的  java.nio.channels.FileChannel 中的 transferTo()

函数所提供的 "零-拷贝" 功能。

It is much , much more performant.

我们谈论的"零-拷贝" 技术所提升的性能要远远高出这个 API 接口函数.

With Java 7 SDP , you directly use the native InfiniBand Zero-copy protocol implementation .

有了 Java 7 的 SDP 技术,本地 InfiniBand 零拷贝协议便可立即为你所用.

Let's start to visually depict exactly what Sockets Direct Protocol capability

looks like within the context of some typical Java deployment views.

现在让我们开始直观地描述一下,Sockets Direct Protocol 这种技术究竟在典型的 Java 部署架构图中是如何被描述的.

The

following diagram illustrates how Node1 ( a java.net.Socket writer )

and Node 2 (a java.net.ServerSocket listener ) can be deployed onto a

Java 7 VM configured and booted to support SDP in such a way that the

JVMs can exchange application data buffers from one VM to the other ,

across an InfiniBand network , without any OS system-calls or services

being invoked. Incredibly, the Java data transfer completely bypasses

both operating systems.

下面的这幅图像我们阐述的是 Node1 (一个 java.net.Socket writer 的对象实例) 和 Node 2( 这个 Node 2 是 java.net.ServerSocket 包中 listener 的类实例对象)

是如何被配置、部署在 Java 7 的虚拟机上的;这幅图同样描述了这两个节点(Node1,Node2) 是以何种方式来应用 SDP 技术

-- SDP 技术实现了 JVM 可在无需 动用 任何系统调用方法或是触发任何操作系统中的服务的前提下, 经由 InfiniBand 网络传输,

来和另一台主机上的 JVM 互换应用程序数据缓冲区中数据信息.

Incredibly , the Java data transfer completely bypasses both operating systems.

令人难以置信的是,在整个数据传输过程中都完全绕开通信双方的操作系统

/在整个数据传输过程中,通信双方的操作系统从头到尾没有参与其中

InfiniBandFig1.jpg

1.

Java 7 application=Node 1 (JVM booted to use SDP) uses the

java.net.Socket API to write a block of application data across the

network to a

java.net.ServerSocket listener

1. 使用 Java 7 版本实现的应用程序 Node 1 (JVM 再启动的时候,就开启了 SDP 应用 ) 通过调用 java.net.Socket 包中的应用程序接口函数,

借助于网络传输(InfiniBand ) 来将应用程序数据通过网络传输的

2.

Because the JVM was booted to use SDP the Operating System TCP/IP stack

is completely bypassed - the application data is  written directly to

InfiniBand's

RDMA capability   ( requires InfiniBand to be the physical provider of Network Interface Card ) .

由于 JVM 是以 SDP 应用开启的方式启动的, 所以 Java 的应用程序在执行写入操作的时候是直接把数据直接通过 InfiniBand 的远程内存直接访问技术

写入到了通信端程序的内存空间中,而这一过程彻彻底底地绕过了操作系统中的 TCP/IP 协议栈。( 其中, RDMA 技术的物理设备支撑是要使用 InfiniBand 这种型号的网络接口卡的)

3.

Java 7 application= Node2 ( JVM also booted to use SDP) uses the

java.net.ServerSocket API to listen for a block of application data to

arrive via RDMA across the network from

a java.net.Socket writer . (Requires InfiniBand to be the physical provider of Network Interface Card ).

3. 基于 Java 7 版本编写的应用程序 Node 2 (同样 JMV 以开启 SDP 服务的方式启动的) 使用 java.net.ServerSocket 软件包中的函数

来创建用于监听的类实例,该应用实例用于监听是否有属于 java.net.Socket writer 的应用程序发送的数据块,经由网络以 RDMA 的传输方式发送过来.

(同样,这种通信方式也需要有 InfiniBand作为网络接口卡这一物理设备作为支撑的 )

4.

Data delivered *directly* to de Java VM application buffer!  No OS

system or service calls involved - neither from Node 1's OS nor 2's OS.

That is the power of Java 7 Sockets Direct Protocol .

4. 传输的数据直接就被发送到了 Java 虚拟机 应用程序缓冲区中(啊)!在此过程中 Node1 和 Node 2 无任何一方的操作系统以系统调用或是提供特定服务的方式参与到其中。

这就是 Java 7 中 SDP 技术的强大之处.    (只要998 ,**** 捧回家 的推销即视感)

What is the logical performance difference between the same application running on

Java 7 with SDP vs. Java 6 ?

从逻辑上分析,运行在支持 SDP 技术 的Java 7 (虚拟机) 和 Java 6 (虚拟机) 上的同一段应用程序性能上的差异(是什么--强行问号结尾?)

1. Using Java 7 with SDP configured (shown below left) How does Node 2's reception of Node 1's transmitted data travel up

the OSI Network layer protocol stack and into the Java application ? How many steps does it take ?

1. 使用支持 SDP 技术的 Java 7 的原理图 (左下所示) 运行上一图中描述的应用程序的时候, Node2 是如何接收经由 OSI 网络协议层发送过来的

Node1 上的数据并将其收入到自己的应用程序内存中的?  该过程共分成多少步 ?

It takes only one step ! (Take a look below -- this is the great news

for UHPC Java apps; now UHPC community can use Java 7 to do what needs

to be done) .

答案是一步 !(完成上述所有的操作) (看一下下面的图示你就会明白 -- 这对编写和使用 Java 应用程序的 超高性能计算组是一个天大的好消息; 现在 超高性能计算组 已经

可以借助于 Java 7 来将这套理论用在实际的工作中了)

2.

Using Java 6 ( no SDP - shown below right ) How does Node 2's reception

of Node 1's transmitted data travel up the OSI Network layer protocol

stack and into the Java

application ?      How many steps does it take ? It takes five stepts(

Take a look below -- this is the familiar TCP/IP protocol stack -- not

SDP. It works for most ,

but does not work for the UHPC community . UHPC community just can't use Java 6 to do what needs to be done ).

2. 运行于 Java 6 虚拟机上的相同程序 (版本 6 不支持 SDP 技术,其原理图如下图右半部分所示)  如何实现 在 Node 2 上接收来自 Node 1 发送的经由 OSI 网络层的协议栈

的数据信息,并将其存放到自身应用程序内存空间中 这一系列的操作 ? 这一过程共分为几个步骤?  答案是需要 5 步 (简单的来看一下下面的图示 -- 整个的传输过程和 TCP/IP 协议栈很相似 --

却和 SDP 完全不同。 TCP/IP 协议栈的流程为大多数的服务所用,但是却并不是 高性能计算组的选择。高性能计算组使用 6 代 Java 虚拟机的话是无法正常处理日常事务的.

Fig2small.jpg

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

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

相关文章

百信银行基于 Apache Hudi 实时数据湖演进方案

简介: 本文介绍了百信银行实时计算平台的建设情况,实时数据湖构建在 Hudi 上的方案和实践方法,以及实时计算平台集成 Hudi 和使用 Hudi 的方式。 本文介绍了百信银行实时计算平台的建设情况,实时数据湖构建在 Hudi 上的方案和实践…

如何做一场高质量的分享

简介: 每个人在分享前都应该先问自己这么一个问题,我为什么要分享?我觉得分享就一个最纯粹的原因,就是“我有一些知识,是别人不知道的,但对他人会有所帮助,所以我想分享给大家”。 作者 | 阿相 …

RTE2021,实时互动技术的进化与蝶变

10 月 22—23 日,由声网 Agora 主办的 RTE2021 实时互联网大会在北京圆满落幕。大会以“万象频道”为主题,带来了 20 余场实时互联网全生态线下论坛及活动、近百场的精彩演讲分享,覆盖技术开发、行业观察、创业投资、趋势洞察等多维度话题。同…

Java编程技巧之单元测试用例编写流程

简介: 立足于“如何来编写单元测试用例”,让大家“有章可循”,快速编写出单元测试用例。 作者 | 常意 来源 | 阿里技术公众号 温馨提示:本文较长,同学们可收藏后再看 :)前言 清代杰出思想家章学诚有一句名言&#xff…

KubeVela + KEDA:为应用带来“与生俱来”的弹性伸缩能力

简介: 在这篇博文中,我们将简要解释需要考虑的领域,KEDA 如何使应用自动伸缩变得简单,以及为什么阿里云企业分布式应用服务(EDAS)在 KEDA 上完全标准化。 联合作者 | Yan Xun,阿里云 EDAS 团队…

mysql行转列函数_一个小知识点-Hive行转列实现Pivot

前言传统关系型数据库中,无论是Oracle(11g之后)还是SQLserver(2005之后),都自带了Pivot函数实现行转列功能,本文主要讲述在Hive中实现行转列的两种方式。传统数据库方式这种方式是借鉴在Oracle或者SQLserver在支持Pivot函数之前实现行转列的方…

安全之心:一文读懂可信计算

简介: 信 or 不信,这是个问题 可信计算 TC (Trusted Computing) 业界新宠,越来越被高频提到 本质是创造可信执行环境的芯片级安全防护方案 然而,江湖流传 TA 的传说 却鲜少有人见过真身 阿里云作为亚太区最…

国内顶级AI赛事再启程,第三届“中国人工智能大赛”聚焦算法治理、深度伪造与网络安全

本届大赛赛题分为算法治理、深度伪造和网络安全三大方向的七大赛题,分别是:过滤算法鲁棒性、深度伪造视频检测、深度伪造视频生成方法识别、基于人工智能的音视频合成比赛、说话人无关的音频深度伪造检测识别、说话人相关的音频深度伪造检测识别、Webshe…

看阿里云如何用云上技术创新,帮助哈啰单车实现智能数据收治

简介: 客户通过把日志数据迁移到SLS,替代原有的kafka、ES、ClickHouse,累积节省成本达到30%,同时满足了稳定性、扩展性需求,以及对日志查询分析的需求。 更多存储标杆案例 欢迎点击下方链接查看 阿里云存储标杆案例样…

快进键启动,一文带你了解云原生时代容器安全

简介: 分享阿里云容器安全的治理能力与经验,致力保护生产环境安全。 都说国内需求离容器化还远,更谈不上关注安全,喊的热闹而落地困难。但总得有些声音面向未来向前看。 在2020年Forrester IaaS安全评测中,阿里云容器…

Serverless:这真的是未来吗?(一)

简介: 希望这些博客文章能帮助您在所有相关人员中展开讨论,就最佳业务方案达成一致。该课程可能涉及无服务器,也可能不涉及。在这第一篇文章中,我们将考虑在讨论无服务器时最常见的几个问题。在第二篇文章中,我们将研究…

无限级分类限定层级_王者荣耀:s20战令该不该买?战令限定星元皮肤实测真香...

王者荣耀:s20战令该不该买?战令限定星元皮肤实测真香Hello大家好,我是游戏鲪,很高兴见到大家。如今这个赛季的战令系统早已结束,新赛季也即将到来。许多小伙伴都在憧憬下个赛季的战令。关于s20赛季的战令奖励&#xff…

光进铜退下的“更高”与“更低”,锐捷发布企业极简以太全光网解决方案

全新一代企业网络建设中,以太全光网将满足高带宽、简运维、降成本的要求。 头图 | 付费下载于视觉中国 出品 | CSDN云计算 近日,锐捷网络正式对外发布企业极简以太全光网解决方案。方案针对仓储物流、电子信息、工业制造、地产酒店等在行业客户在园区网…

物联网海量时序数据存储有哪些挑战?

简介: 随着 IoT 技术的快速发展,物联网设备产生的数据呈爆炸式增长,数据的总量(Volume)、数据类型越来越多(Variety)、访问速度要求越来越快(Velocity)、对数据价值&…

什么是 RedCap?一文详解!

作者 | 小枣君来源 | 鲜枣课堂随着3GPP R17版本的不断推进,一个新的名词逐渐开始热门起来,那就是RedCap。究竟什么是RedCap?为什么要引入它?它和现在的5G有什么区别?且看本文的深入解析……█ 什么是RedCapRedCap&…

被解救的代码 - 代码即服务时代来了!

简介: 人类对自由的追求从未停止,我们用战斗获得民族自由,我们用代码获得双手自由,同时代码作为服务器的奴隶,也开始蠢蠢欲动,革命已经开始,当代码翻身做主,作为开发者的我们又该如何…

配置审计(Config)配合开启OSS防盗链功能

简介: 本文作者:紫极zj 本文将主要介绍利用【配置审计】功能,如何快速发现企业上云过程中,针对未配置防盗链的 OSS Bucket 定位及修复案例。 前言 配置审计(Config)将您分散在各地域的资源整合为全局资源…

清华大学:2021元宇宙研究报告

关于元宇宙的详细介绍;来源:软件定义世界(SDX)往期推荐阿里云投入 20 亿发力操作系统谷歌自研Tensor芯片,8核CPU,20核GPURedis很厉害,使用规范来啦Facebook 改名Meta,是押注元宇宙还…

如何做规划?分享2种思维和4个方法

简介: 规划不只是高层的事。学会做规划,不仅可以让目标更聚焦,还能让我们清晰地知道今后要做什么、如何去做。在本篇文章中,提到了规划的2种思维模式,和作者自己在规划中用到的4个规划方法,希望让开始做规划…

vue如何在末尾添加_怎样在Linux上开发vue项目

一、开发环境搭建:安装node.js环境以及vue cli工具(1)安装node.js从官网下载对应的二进制压缩包,如下图:01.png解压到程序安装目录xz -d node-v12.17.0-linux-x64.tar.xztar -xvf node-v12.17.0-linux-x64.tarsudo mv node-v12.17.0-linux-x6…