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

EPIC: Model update/load race conditions handling #150

Open
dlamoris opened this issue Jan 23, 2024 · 0 comments
Open

EPIC: Model update/load race conditions handling #150

dlamoris opened this issue Jan 23, 2024 · 0 comments
Labels

Comments

@dlamoris
Copy link
Contributor

dlamoris commented Jan 23, 2024

Problem

For a given branch, SPARQL update and GSP endpoints can be used to update the rdf model. If 2 or more of these actions happen at the same time, complex race conditions can occur.

Proposal

A simpler way to prevent this is to just enforce one update at a time for a given branch - if a transaction is already underway for a branch, reject the update/load request with 409. This allows the underlying logic to be optimized/simplified without needing to consider race conditions. Currently transaction info is written to the triplestore and deleted after transaction is complete - can check for existence of said transaction for a given branch when a request comes in.

Other considerations

Need to determine if branch/lock creation needs to be included/granularity (creating a branch from a branch currently under transaction vs unrelated branch)

@dlamoris dlamoris added the epic label Jan 23, 2024
@dlamoris dlamoris added this to Flexo Jan 23, 2024
@github-project-automation github-project-automation bot moved this to New in Flexo Jan 23, 2024
@dlamoris dlamoris changed the title Model update/load race conditions handling EPIC: Model update/load race conditions handling Jan 23, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: New
Development

No branches or pull requests

1 participant