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

Expire Database States #1506

Open
alexanderkiel opened this issue Feb 21, 2024 · 0 comments
Open

Expire Database States #1506

alexanderkiel opened this issue Feb 21, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request module:db
Milestone

Comments

@alexanderkiel
Copy link
Member

alexanderkiel commented Feb 21, 2024

Database states are immutable in Blaze. That is even true in case we delete history during permanent removal of resources (#399), because history is part of the immutable database state. Deleting the history of a resource means that a new database state is constructed which will no longer contain the history of that resource.

Database states are used for all query operations like FHIR Search and CQL evaluation. The immutability of database states ensures full consistency of those operations without the need for transactions or locking. As such database states are needed as long as they are used by a query operation but can be discarded afterwards. Because FHIR Search uses paging to deliver the query results to the client in consumable chunks and the client itself is responsible to request the next page, Blaze can't know how long a database state has to be kept alive. Currently database states will never expire.

However because in case the history of a resource is deleted for GDPR compliance reasons, the resources should not be accessible through former database states. So database states have to expire after a reasonable amount of time. That amount of time has to allow for paging of FHIR Search results and for longer running CQL evaluations. For now I would suggest to set the expiration duration fix to 30 days because erasure without undue delay should be carried out in one month. Later if requested, we can make this duration configurable with a sensible minimum to not break query operations immediately.

Paging URL's should return a 404 Not Found in case the database state they like to access is expired. That will be implemented in #1995.

@alexanderkiel alexanderkiel self-assigned this Aug 28, 2024
@alexanderkiel alexanderkiel added this to the v0.30.0 milestone Aug 28, 2024
@alexanderkiel alexanderkiel added enhancement New feature or request module:db labels Aug 28, 2024
@alexanderkiel alexanderkiel modified the milestones: v0.30.0, v0.31.0 Sep 9, 2024
@alexanderkiel alexanderkiel modified the milestones: v0.30.1, v0.31.0 Oct 10, 2024
@alexanderkiel alexanderkiel modified the milestones: v0.31.0, v0.32.0 Jan 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request module:db
Projects
None yet
Development

No branches or pull requests

1 participant