[ https://issues.apache.org/jira/browse/THRIFT-1891?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13631936#comment-13631936 ]
Dzmitry.Lahoda edited comment on THRIFT-1891 at 4/15/13 5:57 PM: ----------------------------------------------------------------- I made test using MS-RPC from C# interop (https://github.com/asd-and-Rizzo/NDceRpc/blob/master/src/NDceRpc.IntegrationTests/PerformanceTests.cs, TestPerformanceOnLocalRpc, TestPerformanceOnNamedPipe). ALPC is ~2 times faster then Named Pipe. Using ALPC from MS-RPC is documented and public, bad not directly. Will add up pure C++ tests later of exchanging data between 2 process. was (Author: dzmitry.lahoda): I made test using MS-RPC from C# inteop (https://github.com/asd-and-Rizzo/NDceRpc/blob/master/src/NDceRpc.IntegrationTests/PerformanceTests.cs, TestPerformanceOnLocalRpc, TestPerformanceOnNamedPipe). ALPC is ~2 times faster then Named Pipe. Using ALPC from MS-RPC is documented and public, bad not directly. Will add up pure C++ tests later of exchanging data between 2 process. > 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