Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Duplicate
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: java
    • Labels:
      None

      Description

      An async Java RPC client would be useful. It could, for example, send out a set of requests to be computed in parallel, then gather and combine the results as they are returned.

        Issue Links

          Activity

          Doug Cutting created issue -
          Hide
          Doug Cutting added a comment -

          Java Future's seem a good way to do this, Google's ListenableFuture in particular.

          http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/util/concurrent/ListenableFuture.html

          Here's a possible design:

          Change Transceiver's primary method to:

          ListenableFuture<List<ByteBuffer>> transceive(List<ByteBuffer>);

          Change Responder's primary method to:

          ListenableFuture<Object> respond(String messageName, Object parameters) throws Exception;

          Re-define the old, synchronous, version in terms of this.

          Have the compiler emit a second interface for each protocol, something like:

          public interface Test$Future FutureProtocol

          { ListenableFuture<Utf8> echo(Utf8 greeting); }

          Add a method to SpecificRequestor to create a future-generating proxy with:

          public FutureProtocol getFutureClient(Class<FutureClient>, Transceiver);

          Show
          Doug Cutting added a comment - Java Future's seem a good way to do this, Google's ListenableFuture in particular. http://guava-libraries.googlecode.com/svn/trunk/javadoc/com/google/common/util/concurrent/ListenableFuture.html Here's a possible design: Change Transceiver's primary method to: ListenableFuture<List<ByteBuffer>> transceive(List<ByteBuffer>); Change Responder's primary method to: ListenableFuture<Object> respond(String messageName, Object parameters) throws Exception; Re-define the old, synchronous, version in terms of this. Have the compiler emit a second interface for each protocol, something like: public interface Test$Future FutureProtocol { ListenableFuture<Utf8> echo(Utf8 greeting); } Add a method to SpecificRequestor to create a future-generating proxy with: public FutureProtocol getFutureClient(Class<FutureClient>, Transceiver);
          Jeff Hammerbacher made changes -
          Field Original Value New Value
          Link This issue is related to AVRO-405 [ AVRO-405 ]
          Jeff Hammerbacher made changes -
          Link This issue is related to AVRO-625 [ AVRO-625 ]
          Hide
          James Baldassari added a comment -

          Should this be marked as a duplicate of AVRO-539? The design/functionality is basically the same as described here.

          Show
          James Baldassari added a comment - Should this be marked as a duplicate of AVRO-539 ? The design/functionality is basically the same as described here.
          Hide
          Doug Cutting added a comment -

          You're right, this is mostly a duplicate of AVRO-539. I forgot I filed that! I'll resolve it as a duplicate.

          Show
          Doug Cutting added a comment - You're right, this is mostly a duplicate of AVRO-539 . I forgot I filed that! I'll resolve it as a duplicate.
          Doug Cutting made changes -
          Status Open [ 1 ] Resolved [ 5 ]
          Resolution Duplicate [ 3 ]
          Doug Cutting made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Transition Time In Source Status Execution Times Last Executer Last Execution Date
          Open Open Resolved Resolved
          370d 5h 55m 1 Doug Cutting 29/Jun/11 23:03
          Resolved Resolved Closed Closed
          43d 22h 20m 1 Doug Cutting 12/Aug/11 21:23

            People

            • Assignee:
              Unassigned
              Reporter:
              Doug Cutting
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development