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

Jens Geyer commented on THRIFT-3397:
------------------------------------

Cool. Looking forward to it!

> Implement TProcessorFactory in C# to enable per-client processors
> -----------------------------------------------------------------
>
>                 Key: THRIFT-3397
>                 URL: https://issues.apache.org/jira/browse/THRIFT-3397
>             Project: Thrift
>          Issue Type: New Feature
>          Components: C# - Library
>    Affects Versions: 0.9.3
>            Reporter: Jonathan Heard
>            Priority: Minor
>              Labels: performance, thread-safety
>   Original Estimate: 168h
>  Remaining Estimate: 168h
>
> The current TServer implementations in C# take a single instance of a 
> TProcessor to be used for all client connections. This is not guaranteed to 
> be thread-safe and can become a significant bottleneck.
> I am implementing a TProcessorFactory interface for C# which is similar to 
> the ones already implemented in Java and C++. I'll generate a pull request 
> for review soon.
> The existing solutions implement TProcessorFactory as a class which takes a 
> TProcessor and just returns that instance to all clients. I'm aiming to 
> improve on that by creating a TProcessorFactory interface and then 
> implementing it in two core classes:
> 1) TSingletonProcessorFactory - this behaves the same as the Java 
> 'TProcessorFactory' class.
> 2) TPrototypeProcessorFactory<Processor,Handler> - this effectively returns a 
> 'new Processor(Handler)' giving every new client its own processor.
> In order to avoid breaking the existing API (and in-keeping with the Java 
> implementation),  I have changed TServer so that it uses a TProcessorFactory 
> instead of TProcessor and updated all relevant constructors so they call the 
> TSingletonProcessorFactory for constructors using TProcessor. New 
> constructors have been added to enable calling with TProcessorFactory. This 
> approach should avoid breaking the established API and not break any existing 
> code.
> I've also updated the TestServer.cs to support these changes.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to