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

Ben Craig commented on THRIFT-1891:
-----------------------------------

Note the first sentence in the Wikipedia document:
"The Local Procedure Call (LPC, often also referred to as Lightweight Procedure 
Call or Local Inter-Process Communication) is an internal, undocumented 
inter-process communication facility provided by the Microsoft Windows NT 
kernel for lightweight IPC between processes on the same computer."

As it is internal, and undocumented, that makes it difficult for something like 
Thrift to use it in a well supported way.

I think the closest that could be done in a supported way is to have a Thrift 
transport over MS-RPC using the ncalrpc "protocol".  This may be reasonable, 
but some rough benchmarks would be useful to see if this is actually faster.
                
> 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