IQSS / IQSS/dataverse

As a performance boost, investigate caching of pages/API requests that can be served as static content

Open
#7,927 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
1.1k
Forks
564
Avg merge
2d 2h
Merged PRs (30d)
29

Description

Opening this issue per recent conversation with Jim (but something similar had been suggested in the past as well).
We have certain pages that, under some circumstances are both a) expensive to render and b) are guaranteed to have identical content between repeated calls. So it should be possible to render such pages once, then serve cached copies.
Prime examples I can think of are the published dataverse and dataset pages, as served to guest users. (Not sure it can be easily done with logged-in, non-guest users, even for published objects - it gets complicated there fairly quickly).
Even with guests and published materials, it's unlikely to be entirely trivial - as most of our pages are not single chunks of content that are easy to save, but have some dynamic content/partial submits, etc. Plus, if we can only do it for guests, it'll take some non-trivial mechanism for determining when to use cached content, and how, and when to serve full pages. (Not something that can be implemented with simple Apache rewrite rules - I don't think?).
Still, it should be worth investigating. And there's a chance there are some off the shelf solutions already available.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by investigating how published dataverse and dataset pages are rendered for guest users, focusing on which responses are identical between requests and which dynamic content or partial submits prevents caching. Compare available caching solutions and define how cached content would be selected, refreshed, and bypassed for logged-in users. Done means a feasible approach and scope are documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.