Sitelet https://github.com/googleapis/google-cloud-java/issues/63
Skip to content

Expose support for asynchronous interactions #63

Description

@jboynes

Servlet 3.1 and frameworks like Spring 4 support non-blocking request execution. This partially supported by the raw Storage API which exposes its HttpRequest objects with their executeAsync() operation. However, this does not support non-blocking transfers.

Full async support would allow an application to transfer data to/from Cloud Storage without having to consume a Thread while waiting for IO to complete.

Activity

  1. aozarov commented on May 14, 2015

    @aozarov
    Contributor

    I doubt that will change while using google-api-java-client (did you create a feature request there we can link too?), so the current plan is to support it for every service that is available via gRPC.

  2. modified the milestone: on Jun 1, 2015
  3. aozarov commented on Jun 1, 2015

    @aozarov
    Contributor

    @jgeewax I don't this should not be a Needed for public announcement blocker but rather more of a future enhancement (when service supports it).

  4. jgeewax commented on Jun 2, 2015

    @jgeewax

    I can buy that. We could add these later pretty easily. Moving out the of the milestone.

  5. removed this from the milestone on Jun 2, 2015
  6. added this to the milestone on Oct 10, 2015
  7. susanlinsfu commented on Apr 12, 2016

    @susanlinsfu

    +1

  8. lesv commented on May 6, 2016

    @lesv
    Contributor

    Turns out that AppEngine Standard has async support, Jetty 3.1 in Flex supports Async (at Top of Trunk), for generic Java, there is Apache's HttpAsyncClient

  9. garrettjonesgoogle commented on Nov 23, 2016

    @garrettjonesgoogle
    Contributor

    I think we should just naturally surface the async functionality as we move each API to gRPC instead of having an old tracking issue. Closing this out.

  10. dminkovsky commented on Jul 29, 2017

    @dminkovsky

    Has this been addressed elsewhere? I'm not finding another issue with this topic.

    What is currently the best way to stream a file from storage with Netty? As in https://github.com/netty/netty/blob/60250f3795d4082e59df6806dade2966ec583859/example/src/main/java/io/netty/example/http/file/HttpStaticFileServerHandler.java#L188-L202.

  11. dminkovsky commented on Jul 29, 2017

    @dminkovsky

    The way I have this working now is:

    ReadChannel reader = storage.reader("bucket", "blob");
    InputStream in = Channels.newInputStream(reader);
    ChunkedStream stream = new ChunkedStream(in);
    HttpChunkedInput input = new HttpChunkedInput(stream);
    

    I send the HttpChunkedInput stream through the Netty channel and ChuckedWriteHandler writes the stream out in chunks to the client.

    I wonder, though: the ReadChannel reader, is it non-blocking? I looked at the code and there are some functions that sleep the thread.

  12. 14 remaining items

  13. added a commit that references this issue on Dec 22, 2025
  14. added a commit that references this issue on Feb 24, 2026
  15. added a commit that references this issue on Mar 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

🚨 criticalP0 critical issue. Requires immediate fixapi: storageIssues related to the Cloud Storage API.triage meI really want to be triaged.

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions