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

James Todd updated AVRO-405:
----------------------------

    Attachment: AVRO-405.patch

deps:

  patch is relative to the [avro]/lang/java directory (ie cd [avro]/lang/java; 
patch -p0 < AVRO-405.patch)
  requires netty 3.1.5GA
    workaround: download netty-3.1.5.GA.jar and copy it to the build/lib dir 
(note: would be optimal to update ivy.xml)
 
addressed:

  flattened package (see org.apache.avro.ipc.netty, opted to not co-populate 
o.a.a.ipc at this time)
  included ref/proto code (see org.apache.avro.ipc.netty.prototype)
  o.a.a.ipc.netty.NettyServer implements o.a.a.ipc.Server
  o.a.a.ipc.netty.NettyClient does *not* extend o.a.a.ipc.Transceiver
    note: .o.a.a.ipc.netty.AvroClientHandler includes an internal 
o.a.a.ipc.Transceiver for netty/avro delegation
              we should be able to reconstruct the tests accordingly
  opted to continue to use/leverage/delegate-to netty classes
    note: there should be upside in having the netty code look as netty-native 
as possible and optimizations should
              perhaps be considered downstream a bit, eg once we move past the 
current impl of accumulating ByteBuffer

issues/todo:

  implement requestor/responder factory (eg via post handshake factory, etc)
  references to the Mail/Message prototype code (borrowed from 
avro-rpc-quickstart) persist until we can introspect
    the outbound/inbound message and make the relevant instantiations (see 
above issue)
  construct/support/migrate tests

> Netty-based Java RPC server
> ---------------------------
>
>                 Key: AVRO-405
>                 URL: https://issues.apache.org/jira/browse/AVRO-405
>             Project: Avro
>          Issue Type: New Feature
>          Components: java
>            Reporter: Todd Lipcon
>            Assignee: James Todd
>         Attachments: AVRO-405-for-review.patch, AVRO-405.patch, netty-avro.zip
>
>
> A nonblocking RPC server based on Netty should be more scalable than the 
> current implementation.
> We should provide two mechanisms for interfacing the RPC server to the 
> implementations:
> 1) "Blocking" RPC implementations run inside a worker threadpool. 
> Implementators would not know that they're working in a non-blocking context.
> 2) "Event-driven" RPC implementations that receive requests and some kind of 
> request context. They are responsible for eventually calling 
> context.respond(response) or somesuch. This would allow more scalable 
> interaction with downstream services.
> I propose we focus on (1) first.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to