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

James E. King, III commented on THRIFT-1915:
--------------------------------------------

On thinking about this some more, it looks like the approach taken is not 
backwards compatible.  In other words, you cannot produce a server that will 
listed on a single port an be able to handle older clients plus newer clients 
that are channel-aware.  I'm not sure how far along this is overall as a 
project, but is backwards compatibility a concern or requirement?  If it is, 
this would require a newer server to listen on an older port number for the 
older service, to handle older clients, and then to open another port to 
service multiplexed newer clients.  There's no easy cut-over using the same 
port with the chosen technique.  This introduces firewall complexities for 
upgrades because additional ports are now required.  If the unused byte in the 
protocol header is used, then "channel zero" can handle the original, older 
monolithic service for the older clients, and newer clients can ignore "channel 
zero" and use channels 1..255 instead, all on the same port.  This allows you 
to upgrade a server to one that has channel support and continue to service all 
your older clients without any additional security concerns.
                
> Multiplexing Services
> ---------------------
>
>                 Key: THRIFT-1915
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1915
>             Project: Thrift
>          Issue Type: Improvement
>          Components: AS3 - Library, Build Process, C glib - Library, C# - 
> Library, C++ - Library, Cocoa - Library, Compiler (General), D - Library, 
> Delphi - Library, Deployment, Documentation, Erlang - Library, Go - Library, 
> Haskell - Library, Java - Library, JavaME - Library, JavaScript - Library, 
> Node.js - Library, OCaml - Library, Perl - Library, PHP - Library, Python - 
> Library, Ruby - Library, Smalltalk - Library, Test Suite, Tutorial, Website
>    Affects Versions: 1.0
>            Reporter: Roger Meier
>            Priority: Blocker
>
> This is the parent Topic for the 1.0 release to introduce *Multiplex 
> Services* with Apache Thrift.
> We need sub tasks here to manage language support, test suite, documentation 
> & co.
> e.g. integrate Multiplex Services into cross language test suite THRIFT-847 
> via test/test.sh

--
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