[ 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