You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Mos Yud <mo...@gmail.com> on 2017/06/21 04:35:51 UTC

recommendation for transport layer to use for windows localhost rpc

Hi,

I would like to use thrift rpc (on local host) for windows, and i need some
recommendation for the transport layer to use.
One of the mandatory requirements is rpc timeout which is supported only by
TSocket and unfortunately isn't supported by TPipe.
On the other hand, using sockets for ipc is less efficient/error prone then
using pipes (i.e. firewall rule that blocks the connection accidentally or
as a result of some error).

Do you have any recommendation for this issue?

Thx,
Moshe.

Re: recommendation for transport layer to use for windows localhost rpc

Posted by Jens Geyer <je...@hotmail.com>.
I use named pipes a lot but that may be a personal preference.


-----Ursprüngliche Nachricht----- 
From: Randy Abernethy
Sent: Wednesday, June 21, 2017 10:14 AM
To: user@thrift.apache.org
Subject: Re: recommendation for transport layer to use for windows localhost 
rpc

My experience, which may not be representative of the community at large,
is that TSocket is the most used transport even on Windows. Would like to
hear what experience others have.

On Tue, Jun 20, 2017 at 11:23 PM, Mos Yud <mo...@gmail.com> wrote:

> Hi,
>
> Thanks for you reply.
> From your experience, do you know what thrift transport type is usually
> used for windows ipc?
>
> Thx,
> Moshe.
>
>
> On Wed, Jun 21, 2017 at 8:47 AM, Randy Abernethy <ra...@apache.org> wrote:
>
> > Hey Moshe,
> >
> > Couple of thoughts.
> >
> > First Apache Thrift is open source so you can always improve the
> NamedPipes
> > Transport impl to meet your needs and submit a patch to get the changes
> > into the trunk.Nothing faster on Windows than an IOCompletion port based
> > server using pipes in my experience, alas there are no IO Completion 
> > port
> > servers in tree. There was an IO Completion port server in Java 
> > submitted
> > once upon a time but never committed. If you build a good one we would 
> > of
> > course accept the patch for that as well.
> >
> > Second there are also good reasons to consider sockets. Using Sockets 
> > you
> > can talk to anything anywhere, Microsoft has a very fast TCP/IP stack
> also
> > and if you use localhost (rather than a real interface) things take the
> > fast path in the Windows Executive. I haven't done any tests lately but
> you
> > might find sockets and localhost competitive with native options for
> local
> > IPC while leaving you with a more open solution.
> >
> > Would love to hear which way you go and what you find out along the way.
> >
> > Best,
> > Randy
> > (typing from Netanya)
> >
> > On Tue, Jun 20, 2017 at 9:35 PM, Mos Yud <mo...@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I would like to use thrift rpc (on local host) for windows, and i need
> > some
> > > recommendation for the transport layer to use.
> > > One of the mandatory requirements is rpc timeout which is supported
> only
> > by
> > > TSocket and unfortunately isn't supported by TPipe.
> > > On the other hand, using sockets for ipc is less efficient/error prone
> > then
> > > using pipes (i.e. firewall rule that blocks the connection 
> > > accidentally
> > or
> > > as a result of some error).
> > >
> > > Do you have any recommendation for this issue?
> > >
> > > Thx,
> > > Moshe.
> > >
> >
> 


Re: recommendation for transport layer to use for windows localhost rpc

Posted by Randy Abernethy <ra...@apache.org>.
My experience, which may not be representative of the community at large,
is that TSocket is the most used transport even on Windows. Would like to
hear what experience others have.

On Tue, Jun 20, 2017 at 11:23 PM, Mos Yud <mo...@gmail.com> wrote:

> Hi,
>
> Thanks for you reply.
> From your experience, do you know what thrift transport type is usually
> used for windows ipc?
>
> Thx,
> Moshe.
>
>
> On Wed, Jun 21, 2017 at 8:47 AM, Randy Abernethy <ra...@apache.org> wrote:
>
> > Hey Moshe,
> >
> > Couple of thoughts.
> >
> > First Apache Thrift is open source so you can always improve the
> NamedPipes
> > Transport impl to meet your needs and submit a patch to get the changes
> > into the trunk.Nothing faster on Windows than an IOCompletion port based
> > server using pipes in my experience, alas there are no IO Completion port
> > servers in tree. There was an IO Completion port server in Java submitted
> > once upon a time but never committed. If you build a good one we would of
> > course accept the patch for that as well.
> >
> > Second there are also good reasons to consider sockets. Using Sockets you
> > can talk to anything anywhere, Microsoft has a very fast TCP/IP stack
> also
> > and if you use localhost (rather than a real interface) things take the
> > fast path in the Windows Executive. I haven't done any tests lately but
> you
> > might find sockets and localhost competitive with native options for
> local
> > IPC while leaving you with a more open solution.
> >
> > Would love to hear which way you go and what you find out along the way.
> >
> > Best,
> > Randy
> > (typing from Netanya)
> >
> > On Tue, Jun 20, 2017 at 9:35 PM, Mos Yud <mo...@gmail.com> wrote:
> >
> > > Hi,
> > >
> > > I would like to use thrift rpc (on local host) for windows, and i need
> > some
> > > recommendation for the transport layer to use.
> > > One of the mandatory requirements is rpc timeout which is supported
> only
> > by
> > > TSocket and unfortunately isn't supported by TPipe.
> > > On the other hand, using sockets for ipc is less efficient/error prone
> > then
> > > using pipes (i.e. firewall rule that blocks the connection accidentally
> > or
> > > as a result of some error).
> > >
> > > Do you have any recommendation for this issue?
> > >
> > > Thx,
> > > Moshe.
> > >
> >
>

Re: recommendation for transport layer to use for windows localhost rpc

Posted by Mos Yud <mo...@gmail.com>.
Hi,

Thanks for you reply.
From your experience, do you know what thrift transport type is usually
used for windows ipc?

Thx,
Moshe.


On Wed, Jun 21, 2017 at 8:47 AM, Randy Abernethy <ra...@apache.org> wrote:

> Hey Moshe,
>
> Couple of thoughts.
>
> First Apache Thrift is open source so you can always improve the NamedPipes
> Transport impl to meet your needs and submit a patch to get the changes
> into the trunk.Nothing faster on Windows than an IOCompletion port based
> server using pipes in my experience, alas there are no IO Completion port
> servers in tree. There was an IO Completion port server in Java submitted
> once upon a time but never committed. If you build a good one we would of
> course accept the patch for that as well.
>
> Second there are also good reasons to consider sockets. Using Sockets you
> can talk to anything anywhere, Microsoft has a very fast TCP/IP stack also
> and if you use localhost (rather than a real interface) things take the
> fast path in the Windows Executive. I haven't done any tests lately but you
> might find sockets and localhost competitive with native options for local
> IPC while leaving you with a more open solution.
>
> Would love to hear which way you go and what you find out along the way.
>
> Best,
> Randy
> (typing from Netanya)
>
> On Tue, Jun 20, 2017 at 9:35 PM, Mos Yud <mo...@gmail.com> wrote:
>
> > Hi,
> >
> > I would like to use thrift rpc (on local host) for windows, and i need
> some
> > recommendation for the transport layer to use.
> > One of the mandatory requirements is rpc timeout which is supported only
> by
> > TSocket and unfortunately isn't supported by TPipe.
> > On the other hand, using sockets for ipc is less efficient/error prone
> then
> > using pipes (i.e. firewall rule that blocks the connection accidentally
> or
> > as a result of some error).
> >
> > Do you have any recommendation for this issue?
> >
> > Thx,
> > Moshe.
> >
>

Re: recommendation for transport layer to use for windows localhost rpc

Posted by Randy Abernethy <ra...@apache.org>.
Hey Moshe,

Couple of thoughts.

First Apache Thrift is open source so you can always improve the NamedPipes
Transport impl to meet your needs and submit a patch to get the changes
into the trunk.Nothing faster on Windows than an IOCompletion port based
server using pipes in my experience, alas there are no IO Completion port
servers in tree. There was an IO Completion port server in Java submitted
once upon a time but never committed. If you build a good one we would of
course accept the patch for that as well.

Second there are also good reasons to consider sockets. Using Sockets you
can talk to anything anywhere, Microsoft has a very fast TCP/IP stack also
and if you use localhost (rather than a real interface) things take the
fast path in the Windows Executive. I haven't done any tests lately but you
might find sockets and localhost competitive with native options for local
IPC while leaving you with a more open solution.

Would love to hear which way you go and what you find out along the way.

Best,
Randy
(typing from Netanya)

On Tue, Jun 20, 2017 at 9:35 PM, Mos Yud <mo...@gmail.com> wrote:

> Hi,
>
> I would like to use thrift rpc (on local host) for windows, and i need some
> recommendation for the transport layer to use.
> One of the mandatory requirements is rpc timeout which is supported only by
> TSocket and unfortunately isn't supported by TPipe.
> On the other hand, using sockets for ipc is less efficient/error prone then
> using pipes (i.e. firewall rule that blocks the connection accidentally or
> as a result of some error).
>
> Do you have any recommendation for this issue?
>
> Thx,
> Moshe.
>