You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2016/11/14 15:38:59 UTC

[jira] [Comment Edited] (THRIFT-1891) Add Windows ALPC transport which is right counterpart of Unix domain sockets

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

James E. King, III edited comment on THRIFT-1891 at 11/14/16 3:38 PM:
----------------------------------------------------------------------

Windows ALPC is an undocumented interface, and although it may be faster, I don't see the benefit of using an undocumented interface that can change and become incompatible without any warning.

Named Pipes is a standard technique for this in user space programming and I see no need to change this.

This issue has been open for a few years without movement, so given the lack of interest and the potential incompatibilities I am resolving it as "won't fix".

If you have an implementation of ALPC for transport that you would like to contribute and maintain, we can potentially add it to the project as a "contrib/" item.


was (Author: jking3):
Windows ALPC is an undocumented interface, and although it may be faster, I don't see the benefit of using an undocumented interface that can change and become incompatible without any warning.

Named Pipes is a standard technique for this in user space programming and I see no need to change this.

This issue has been open for a few years without movement, so given the lack of interest and the potential incompatibilities I am resolving it as "won't fix".

> 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
>            Assignee: James E. King, III
>              Labels: performance, transport, windows
>             Fix For: 0.11.0
>
>   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 was sent by Atlassian JIRA
(v6.3.4#6332)