Skip to content
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

java-client: use FetchTableRequests to stop cascading behavior #5003

Open
devinrsmith opened this issue Jan 2, 2024 · 1 comment
Open

java-client: use FetchTableRequests to stop cascading behavior #5003

devinrsmith opened this issue Jan 2, 2024 · 1 comment
Assignees
Labels
feature request New feature or request

Comments

@devinrsmith
Copy link
Member

This graph shows how the java client currently constructs a request from a linear TableSpec of three operations that each have an export:

flowchart RL
    C --> B --> A

    e1[[export: 1]] --> A
    e2[[export: 2]] --> B
    e3[[export: 3]] --> C
Loading

Unfortunately, I think I've misinterpreted how cascading works, and assumed it only applied to CANCELLED (see #4781, #5002) - it also applies to RELEASED afaict. (It's also possible the behavior changed during #4772, but I haven't dug into that aspect.)

Regardless, it may be necessary for correctness for the java client to introduce a layer of Fetch's so that RELEASED doesn't cascade - this would fix #4781 and #5002.

flowchart RL
    C --> B --> A
    
    FetchA[Fetch] --> A
    FetchB[Fetch] --> B
    FetchC[Fetch] --> C

    e1[[export: 1]] --> FetchA
    e2[[export: 2]] --> FetchB
    e3[[export: 3]] --> FetchC
Loading

It may also be desirable to more explicitly document how export behavior works, and how clients may want to introduce this type of structure to limit cascading cancel/releases.

@devinrsmith devinrsmith added the feature request New feature or request label Jan 2, 2024
@devinrsmith devinrsmith self-assigned this Jan 2, 2024
@nbauernfeind
Copy link
Member

IMO this should be unnecessary if we find #5014 acceptable. It feels excessive to put this responsibility on client implementations.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature request New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants