[ 
https://issues.apache.org/jira/browse/THRIFT-1894?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Randy Abernethy updated THRIFT-1894:
------------------------------------

    Description: 
This is a Java async thread pool server which my shop would like to contribute 
to 1.0.

This server creates a single thread pool to execute all client requests. Any 
thread may be dispatched to service any request on any connection. Async 
operations use direct ByteBuffers, allowing the underlying system to write 
directly to the server buffer in some JVMs. No memory is typically copied by 
the server, the Protocol reads directly from the I/O buffer. The HotSpot JVM 
implements AsynchronousChannelGroups with I/O completion ports on Windows, 
event port on Solaris, and epoll on Linux. The IOCP implementation makes a 
noticeable difference in some scale out scenarios on Windows. Have found this 
server to be good for large client counts and TThreadPoolServer to be a little 
better with lower client counts (our experience only of course). 

In the tar:
Server: TAsyncThreadPoolServer.java
Channel: TChannelManager.java
Transport: TFramedChannelTransport.java
Test: TestAsyncThreadPoolServer.java

Requires Java 7.

Happy to field questions and turn patches if needed.

  was:
This is a Java async thread pool server which my shop would like to contribute 
to 1.0.

This server creates a single thread pool to execute all client requests. Any
thread may be dispatched to service any request on any connection. Async 
operations use direct ByteBuffers, allowing the underlying system to write 
directly to the server buffer in some JVMs. No memory is typically copied by 
the server, the Protocol reads directly from the I/O buffer. The HotSpot JVM 
implements AsynchronousChannelGroups with I/O completion ports on Windows, 
event port on Solaris, and epoll on Linux. The IOCP implementation makes a 
noticeable difference in some scale out scenarios on Windows. Have found this 
server to be good for large client counts and TThreadPoolServer to be a little 
better with lower client counts (our experience only of course). 

In the tar:
Server: TAsyncThreadPoolServer.java
Channel: TChannelManager.java
Transport: TFramedChannelTransport.java
Test: TestAsyncThreadPoolServer.java

Requires Java 7.

Happy to field questions and turn patches if needed.

    
> Thrift multi-threaded async Java Server using Java 7 AsynchronousChannelGroup
> -----------------------------------------------------------------------------
>
>                 Key: THRIFT-1894
>                 URL: https://issues.apache.org/jira/browse/THRIFT-1894
>             Project: Thrift
>          Issue Type: New Feature
>          Components: Java - Library
>    Affects Versions: 1.0
>         Environment: Windows/Linux/OS X
>            Reporter: Randy Abernethy
>             Fix For: 1.0
>
>         Attachments: TAsyncThreadPoolServer.tar
>
>
> This is a Java async thread pool server which my shop would like to 
> contribute to 1.0.
> This server creates a single thread pool to execute all client requests. Any 
> thread may be dispatched to service any request on any connection. Async 
> operations use direct ByteBuffers, allowing the underlying system to write 
> directly to the server buffer in some JVMs. No memory is typically copied by 
> the server, the Protocol reads directly from the I/O buffer. The HotSpot JVM 
> implements AsynchronousChannelGroups with I/O completion ports on Windows, 
> event port on Solaris, and epoll on Linux. The IOCP implementation makes a 
> noticeable difference in some scale out scenarios on Windows. Have found this 
> server to be good for large client counts and TThreadPoolServer to be a 
> little better with lower client counts (our experience only of course). 
> In the tar:
> Server: TAsyncThreadPoolServer.java
> Channel: TChannelManager.java
> Transport: TFramedChannelTransport.java
> Test: TestAsyncThreadPoolServer.java
> Requires Java 7.
> Happy to field questions and turn patches if needed.

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