[ 
https://issues.apache.org/jira/browse/THRIFT-1891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13632033#comment-13632033
 ] 

Dzmitry.Lahoda commented on THRIFT-1891:
----------------------------------------

C++ exe process calls other C++ exe process.
- All tests done synchronous with one sending process and one single threaded 
waiting process. Real multithreaded scenario can be estimated and tested after

* RPC sending raw bytes 20 requests ~50kb and gets ~500kb response of server 
process 0.034996 sec.
* RPC sending raw bytes 1000 requests ~1kb and gets ~10kb response of server 
process 0.0429957 sec.
* RPC sending raw bytes 10000 requests ~0.1kb and gets ~1kb response of server 
process  0.1949825 sec.

* RPC ALPC sending raw bytes 20 requests ~50kb and gets ~500kb response of 
server process 0.0170016 sec.
* RPC ALPC sending raw bytes 1000 requests ~1kb and gets ~10kb response of 
server process 0.0450044 sec.
* RPC ALPC sending raw bytes 10000 requests ~0.1kb and gets ~1kb response of 
server process     0.160016 sec.

- MS-RPC via ALCP is faster then via Named pipes at least on 20%. Potentially 
ALCP can have lower memory overhead then Named Pipes. 



                
> Add Windows ALPC transport which is right counterpart of Unix domain sockets
> ----------------------------------------------------------------------------
>
>                 Key: THRIFT-1891
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1891
>             Project: Thrift
>          Issue Type: New Feature
>          Components: C++ - Library
>            Reporter: Dzmitry.Lahoda
>              Labels: performance, transport, windows
>   Original Estimate: 192h
>  Remaining Estimate: 192h
>
> Reading about local IPC on Windows leads me to idea that Named Pipes is not 
> the transport should be used where Unix Domain sockets are on Unix. Other, 
> most probably faster, should be.
> ALPC and Unix Domain sockets are similar:
> 1. No networking
> 2. Simple names (no specific prefix)
> 3. Articles impress that Windows ALPC and Unix Domain Sockets use more OS 
> "kernel" then Windows Named Pipes.
> Unix Domain sockets and Windows Named Pipes:
> 1. Named pipes are design for Windows Domain printer and file sharing, not 
> local IPC.
> 2. means Named Pipes do some networking even if are local by security.
> True MS design:
> Local Out of process COM and MS-RPC uses ALPC for local inter process 
> communication everywhere in the OS components.
> Can find in many processes via Sysinternals Process Monitor, look for
> ALPC Port : \RPC Control\OLE[RANDOM_GUID].
> Value:
> I think would be faster with lower resource usage.
> Links:
> http://en.wikipedia.org/wiki/Local_Procedure_Call
> http://www.zezula.net/en/prog/lpc.html
> Search LRPC on 
> http://technet.microsoft.com/en-us/library/cc738291(v=ws.10).aspx

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to