Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Networking with Kernel Bypass in Java [closed]

Has anyone figured it out how to do Kernel bypass in Java? Any hello world somewhere or this is rocket science?

like image 624
chrisapotek Avatar asked Aug 25 '12 15:08

chrisapotek


2 Answers

If you are using solarflare, you can use their API to do kernel bypass (I am not using it directly, so can't provide more details). You can also use a messaging broduct like 29West LBM or IBM LLM which support rich functionality over various hardware.

As @eSniff mentioned, the JRE has transferFrom() / transferTo() API which right now is used to expose the sendfile(2) equivalent for the systems that support it. The semantics of the API is defined so it can be transparently implemented to support DMA transfers between any 2 channels.

like image 199
ddimitrov Avatar answered Nov 02 '22 10:11

ddimitrov


Search for "Java Zero-Copy Buffers" or "Java NIO" or "Java Netty".

Here is a slide show about Netty and zero-copy : http://www.slideshare.net/danbim/zerocopy-eventdriven-servers-with-netty . Here is an example project with Netty.

Or you can go lower level and use the java.nio.channels classes, which you can read about here http://www.ibm.com/developerworks/linux/library/j-zerocopy/

like image 45
eSniff Avatar answered Nov 02 '22 09:11

eSniff