Giter Club home page Giter Club logo

Comments (8)

katyakats avatar katyakats commented on July 25, 2024

Hi! Thank you for the intrest in accelio. If I understand your question correctly, you need to change your application to work with Accelio api. Once you do it, you can switch tcp/trdma simply by changing accelio server binding address from "tcp://10.10.10.10:1234" to "rdma://10.10.10.10:1234".
Katya

from accelio.

areschen2015 avatar areschen2015 commented on July 25, 2024

Thanks katyakats! Yes, you are right. I really want to transplant my application to work with Accelio API, while my application works well on the traditional TCP socket(by calling the system API such as: socket, bind, listen, send, recv, select, etc.) based on Ethernet cards. Now we integrated IB HCA with RDMA function, so we should transplant app to RDMA devices. We need the concrete RDMA APIs from Accelio, but not changing server binding address as the URI format. Are there any common libxio's APIs available to replace the system APIs? In other words, like JXIO, it is scaled on top of Accelio with the bindings of C++ and JAVA, I need this eincapsulation. Thanks a lot.

from accelio.

katyakats avatar katyakats commented on July 25, 2024

Hi! I think if you take a look at the hello world example (examples/usr/hello_world) it might answer most of your question. There you will see a client connecting to server and sending request and receiving responses. The example shows the major Accelio's api functions.
Katya

from accelio.

areschen2015 avatar areschen2015 commented on July 25, 2024

Hi katyakats! I think you are right! Maybe there are many differences between RDMA send/recv, request/response model and TCP send/recv model. So the xio_xxx could not replace the system calls of TCP socket directly. I will make more efforts to integrate Accelio based on the sample programmes.
I have another question about the fio sample:
run the shell script as root:

./run_f_io_rd_lat.sh

file1: (g=0): rw=read, bs=1K-1K/1K-1K/1K-1K, ioengine=libraio, iodepth=1
fio-2.1.10
Starting 1 thread
libraio: unexpected session event: connection refused. reason: Connect error
**** [0x16c22c0] message 0 failed. reason: Message flushed
libraio: raio_open failed. Connection refused
libraio open failed - file:/172.16.10.214/12345/dev/null flags:2800 Connection refused
libraio: open file failed. /172.16.10.214/12345/dev/null
Run status group 0 (all jobs):

So what's the matter? How to resolve it? Should I run an RAIO server process on 172.16.10.214/12345 at first?

from accelio.

katyakats avatar katyakats commented on July 25, 2024

yes you should have a server process running

from accelio.

areschen2015 avatar areschen2015 commented on July 25, 2024

You are right! But there is a little bug for option -f of raio_server, if a server process run at first with finite option as follows:

./raio_server -a 172.16.10.214 -p 12345 -f 1

Then the client run fio shell with connect error as follows:
libraio: unexpected session event: connection refused. reason: Connect error
The workaound is that running raio_server without option -f, thus the fio shell could run normally on the client side.

from accelio.

jsudrik avatar jsudrik commented on July 25, 2024

Folks,

I am looking at the same issue as areschen raised. I have heavy duty client and multi threaded server code based on traditional tcp/ip socket APIs with well known flow (socket, bind, listen, accept on server side and socket, connect on client side followed by send/receive calls).

Now I have task at hand to replace this with Accelio APIs and library.

Would it be any faster introducing Accelio library and take considerable efforts changing the structure of the code rather than just use rsockets, which involves minimal efforts.

areschen, did you manage to replace your tcp/ip socket code with accelio APIs? If you have some samples for this, it would be really useful.

Thanks in Advance.
-- Jay

from accelio.

rafiw avatar rafiw commented on July 25, 2024

Hi @jsudrik first I suggest opening a new issue
In order to start working with accelio you should start with reading the developer's tutorial http://www.accelio.org/wp-admin/accelio_doc/index.html and understand the basic building blocks of an accelio application.
After that I suggest to look at accelio's examples located under the folders examples, tests and benchmark.
You can also take a look in sheepdog code that now supports accelio,
grep the code for HAVE_ACCELIO
https://github.com/sheepdog/sheepdog

from accelio.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.