Hi,

I would like to propose result set expiration support for
Flight RPC.

See the following pull request and discussion for details:

* GH-35500: [C++][Go][Java][FlightRPC] Add support for result set expiration
  https://github.com/apache/arrow/pull/36009

* [DISCUSS][Format][Flight] Result set expiration support
  https://lists.apache.org/thread/48fqd554gkqrrld8k13l3b8trz5gk7ow

This is based on one of the following proposals:

  [DISCUSS] Flight RPC/Flight SQL/ADBC enhancements
  https://lists.apache.org/thread/247z3t06mf132nocngc1jkp3oqglz7jp

  Google Docs: (Arrow ML) Arrow Flight RPC/Flight SQL Proposals
  
https://docs.google.com/document/d/1jhPyPZSOo2iy0LqIJVUs9KWPyFULVFJXTILDfkadx2g/edit#heading=h.h2ein4otvhtq

Summary:

* Background: Currently, it is undefined whether a client
  can call DoGet more than once. Clients may want to retry
  requests, and servers may not want to persist a query
  result forever.

* Proposal: Add an expiration time to FlightEndpoint. If
  present, clients may assume they can retry DoGet
  requests. Otherwise, clients should avoid retrying DoGet
  requests.

  NOTE: This proposal is "not" a full retry protocol.

* Changes:
  * Add FlightEndpoint.expiration_time field

  * Add the following pre-defined actions:
    * CancelFlightInfo: Asynchronously cancel the execution
      of a distributed query. (Replaces the equivalent
      Flight SQL action.)
    * RenewFlightEndpoint: Request an extension of the
      expiration of a FlightEndpoint.

* This proposal does NOT break a backward
  compatibility:

  * Flight RPC: Because clients can ignore
    FlightEndpoint.expiration_time.

  * Flight SQL: Because we deprecate existing CancelQuery
    action but it still available.

* The pull request includes reference implementations for
  C++, Go and Java.


The vote will be open for at least 72 hours.

[ ] +1 Accept this proposal
[ ] +0
[ ] -1 Do not accept this proposal because...


Thanks,
-- 
kou

Reply via email to