-
Notifications
You must be signed in to change notification settings - Fork 4.2k
ARROW-15921: [Format][FlightRPC][C++][Java] Clarify interpretation of FlightEndpoint.locations #12636
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARROW-15921: [Format][FlightRPC][C++][Java] Clarify interpretation of FlightEndpoint.locations #12636
Changes from 3 commits
ac0648e
6ade353
ea7dbb8
7d213d9
d6d7044
8e0b2c6
11bdb7b
ca0a6ae
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -259,8 +259,9 @@ message FlightInfo { | |
| FlightDescriptor flight_descriptor = 2; | ||
|
|
||
| /* | ||
| * A list of endpoints associated with the flight. To consume the whole | ||
| * flight, all endpoints must be consumed. | ||
| * A list of endpoints associated with the flight. To consume the | ||
| * whole flight, all endpoints must be consumed. In other words, | ||
| * multiple endpoints provide partitioning. | ||
| */ | ||
| repeated FlightEndpoint endpoint = 3; | ||
|
|
||
|
|
@@ -280,9 +281,16 @@ message FlightEndpoint { | |
| Ticket ticket = 1; | ||
|
|
||
| /* | ||
| * A list of URIs where this ticket can be redeemed. If the list is | ||
| * empty, the expectation is that the ticket can only be redeemed on the | ||
| * current service where the ticket was generated. | ||
| * A list of URIs where this ticket can be redeemed. | ||
| * | ||
| * If the list is empty, the expectation is that the ticket can only | ||
| * be redeemed on the current service where the ticket was | ||
| * generated. | ||
| * | ||
| * If the list is not empty, the expectation is that the ticket can | ||
| * be redeemed at any of the locations, and that the data returned | ||
| * will be equivalent. In other words, multiple locations provide | ||
| * redundancy/load balancing. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Is there an intention that if the endpoint list is not empty, the ticket must be redeemed from one of those and not the service that generated the ticket, or is that up to interpretation by the application?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Ah, this is ambiguous still, but I think the former was intended. For instance from the original Flight blog post:
@jacques-n what do you think?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think the reason the original might be thought of as ambiguous is that people are failing to see that tickets were conceived of as single use. If tickets are single use, once I go to one location and use the ticket, I can't then use the ticket at a second location. A flight must be a consumption of all tickets to be complete. I wonder if instead of expressing here, we should clarify elsewhere that a ticket is single use and reuse of ticket results in undefined behavior. Thoughts?
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think that would be good to clarify, but that doesn't answer the question of, "if there are locations, can the ticket still be redeemed on the original server, or must it only be redeemed on one of the given locations"?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah. The intention was, if there are locations, you must use one of the locations to redeem the ticket. One of the locations may be the current server.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thanks for the comments, I've updated this PR with both the
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That sounds reasonable to me |
||
| */ | ||
| repeated Location location = 2; | ||
| } | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perhaps also explain how someone is supposed to "redeem" a ticket (note that verb doesn't seem to exist in the RPC APIs)?