Hi,

> It is generally recommended by the gRPC authors to have
> separate request and response messages for each RPC

Oh, I didn't know about it. Should we create
CancelFlightInfoRequest/CloseFlightInfoRequest messages
instead of using FlightInfo directly for
CancelFlightInfo/CloseFlightInfo?


Thanks,
-- 
kou

In <0add20bd-34af-425f-8bdd-bcc609427...@app.fastmail.com>
  "Re: [DISCUSS][Format][Flight] Result set expiration support" on Wed, 21 Jun 
2023 21:49:58 -0400,
  "David Li" <lidav...@apache.org> wrote:

>> So this may not be needed for now. How about accepting a
>> specific request message instead of FlightEndpoint directly
>> as "PersistFlightEndpoint" input?
> 
> I'm in favor of this on principle. It is generally recommended by the gRPC 
> authors to have separate request and response messages for each RPC, since it 
> gives you flexibility in cases like this. It does lead to some possibly 
> unnecessary indirection, but can save us pain down the line.
> 
>>> * "RefreshFlightEndpoint" suggests the server will recompute (refresh)
>>>   the results; instead I would suggest "PersistFlightEndpoint"
> 
> I think Refresh was fine, but if there's confusion, I like Kou's suggestion 
> of Renew the best.
> 
> On Wed, Jun 21, 2023, at 20:58, Sutou Kouhei wrote:
>> Hi,
>>
>>> * "RefreshFlightEndpoint" suggests the server will recompute (refresh)
>>>   the results; instead I would suggest "PersistFlightEndpoint"
>>
>> Thanks for the suggestion. But I feel that "persist" doesn't
>> have expiration time. (NOTE: I'm not a native English
>> speaker.)
>>
>> How about the followings?
>>
>> * "ExtendFlightEndpoint"
>>   (We may want to add "expiration" to the name too but it
>>   may be long...)
>> * "RenewFlightEndpoint"
>>   (It may suggest "recompute" too...)
>>
>>> * Perhaps "PersistFlightEndpoint" can take an optional
>>>   "suggested_expiration" timestamp, which the server is free to ignore
>>>   (some clients may only need to extend the expiration by two minutes,
>>>   others by two days...)
>>
>> Interesting. It may be useful for some systems.
>>
>> Most of existing systems we listed in "Prior Art" (Dremio,
>> Google BigQuery Storage and Snowflake) can't specify
>> expiration time by users. Only Dremio can specify expiration
>> time by users from its admin page:
>> https://docs.dremio.com/software/advanced-administration/job-results-cleanup/
>>
>> So this may not be needed for now. How about accepting a
>> specific request message instead of FlightEndpoint directly
>> as "PersistFlightEndpoint" input?
>>
>> Current:
>>   PersistFlightEndpoint(FlightEndpoint)
>>
>> New:
>>   PersistFlightEndpoint(PersistFlightEndpointRequest)
>>
>>   message PersistFlightEndpointRequest {
>>     FlightEndpoint endpoint = 1;
>>     // We may add this later.
>>     // google.protobuf.Timestamp suggested_expiration_time = 2;
>>   }
>>
>> David and Matt, what do you think about this suggestion? Do
>> you have any use-case for this feature?
>>
>>> * Does the client potentially have to call "PersistFlightEndpoint" on
>>>   each returned endpoint?
>>
>> Yes.
>>
>>>                           Can it pass several endpoints at once?
>>
>> No.
>>
>> At first "RefreshFlightEndpoint" was "RefreshFlightInfo" and
>> "RefreshFlightInfo" extends all expiration time of
>> FlightEndpoints in the given FlightInfo. But the API will be
>> difficult to use because some of extend operations may be
>> failed in one request. In the case, what should we return?
>> Only succeeded FlightEndpoints? How to detect which
>> FlightEndpoints are succeeded by clients?
>>
>> So this propose doesn't provide an API to operate multiple
>> FlightEndpoints at once.
>>
>> See also: 
>> https://github.com/apache/arrow/issues/35500#issuecomment-1578200076
>>
>>> * What is the expected difference between "CancelFlightInfo" and
>>>   "CloseFlightInfo"? Both seem to have a similar effect, and the exact
>>>   behaviour will probably be server-dependent anyway ("cancel" and
>>>   "close" may have meaningful differences when putting/uploading data,
>>>   not so much when getting/downloading data, IMHO?).
>>
>> We're discussing this in another e-mail:
>> * https://lists.apache.org/thread/nndt2v7w49bcvfmwo0polv7k3srvm5n5
>> * https://lists.apache.org/thread/5c4n40fqn7b0b5t6yz6wbnmz4vsq753q
>>
>> I'll reply to them for this.
>>
>>
>> Thanks,
>> -- 
>> kou
>>
>> In <6696613b-5baa-21c2-c29c-f4ec8aa76...@python.org>
>>   "Re: [DISCUSS][Format][Flight] Result set expiration support" on Wed, 
>> 21 Jun 2023 15:35:18 +0200,
>>   Antoine Pitrou <anto...@python.org> wrote:
>>
>>> 
>>> Hi Kou,
>>> 
>>> Can we have an actual PR with the proposed gRPC field, method and
>>> docstring additions?
>>> 
>>> Regardless, I have some comments and questions:
>>> 
>>> * "RefreshFlightEndpoint" suggests the server will recompute (refresh)
>>> * the results; instead I would suggest "PersistFlightEndpoint"
>>> 
>>> * Perhaps "PersistFlightEndpoint" can take an optional
>>> * "suggested_expiration" timestamp, which the server is free to ignore
>>> * (some clients may only need to extend the expiration by two minutes,
>>> * others by two days...)
>>> 
>>> * Does the client potentially have to call "PersistFlightEndpoint" on
>>> * each returned endpoint? Can it pass several endpoints at once?
>>> 
>>> * What is the expected difference between "CancelFlightInfo" and
>>> * "CloseFlightInfo"? Both seem to have a similar effect, and the exact
>>> * behaviour will probably be server-dependent anyway ("cancel" and
>>> * "close" may have meaningful differences when putting/uploading data,
>>> * not so much when getting/downloading data, IMHO?).
>>> 
>>> Regards
>>> 
>>> Antoine.
>>> 
>>> 
>>> 
>>> Le 21/06/2023 à 02:28, Sutou Kouhei a écrit :
>>>> Hi,
>>>> David provided the Java implementation. Thanks!
>>>> If anyone has any comments about this proposal, please share
>>>> them.
>>>> Thanks,

Reply via email to