in reply to High Transaction Data Persistence Requirement across Different Process / Programs

I would suggest doing some reading on IPC (interprocess communication). (see Perl Doc perlipc) There are several immediate options that I can think of at the moment.

1) Use FIFOs (aka named pipes). These are unidirectional so you would need 4 FIFOs (M->A,A->M,M->B,B->M).

2) Use Unix-domain sockets. This will allow bidirectional communication so you will need 2 connections. (M<>A,M<>B)

3) Use TCP sockets. This is probably overkill unless you plan on the processes being on different computers.

Assuming that the 40bytes is 1/message you have a need of about 5000*40=200,000 or 200kB/s. All of the proposed methods should be able to reach that throughput. I have seen benchmarks that suggest that 93mB/s should be obtainable with local TCP sockets. 93mB/s was the lowest benchmark I saw.

Hope this helps.

  • Comment on Re: High Transaction Data Persistence Requirement across Different Process / Programs

Replies are listed 'Best First'.
Re^2: High Transaction Data Persistence Requirement across Different Process / Programs
by Anonymous Monk on Jun 29, 2011 at 04:20 UTC

    Hi , i have put some more explanations on the process and the goals to achieve . DO you still feel we should go by IPC ?

      Yes. From your requirements you have different processes and you want them to communicate with each other. I still believe that interprocess communication is the way to go.

      I think that the unix-named sockets are a good starting point. You should have no trouble meeting the required throughput on the communication side of the system.