[
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