gentics / gentics/mesh

Improve ETag performance

Open
#815 2 comments 0 reactions 0 assignees View on GitHub
f/rest
Dominant language
Java
Stars
593
Forks
123
Avg merge
2d 18h
Merged PRs (30d)
4

Description

We should improve the ETag performance.

# Node ETag

The ETag gets computed by checking the following values/references:

* branch -> UUID
* parent node (for branch) -> UUID [**node events**]
* container (for lang, branch, version) -> container ETag [**node events**]
* various query params (resolve links, expanded fields)
* Tags of the node -> Tag ETags [**node tag events**]
* Node children -> amount, schema name [**node events**]
* container lang -> Lang [**node events**]
* breadcrumb [**node events**]
* resolved paths [**node, project, branch events**] (due to branch hostname)
* role permissions [**role, user, group events**]

# Option 1 - ETag Cache

* Implement a global ETag cache which returns the value if present
* Invalidate the cache by registering on the eventbus. Events which indicate that element have been updated could invalidate the ETag cache.
* Check whether it would be possible to generate a list of element that had to be checked to generate the ETag. Invalidate the cache entry if any of the listed elements for the ETag gets modified.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.