Migrate DbCache use to DatabaseCache#5472
Merged
labkey-adam merged 36 commits intodevelopfrom May 20, 2024
Merged
Conversation
…e. Migrate participant cache. Uncache specimen status.
…nce DbCache is invalidated more aggressively
13 tasks
Contributor
Author
labkey-jeckels
approved these changes
May 20, 2024
experiment/src/org/labkey/experiment/api/ExperimentServiceImpl.java
Outdated
Show resolved
Hide resolved
experiment/src/org/labkey/experiment/api/ExperimentServiceImpl.java
Outdated
Show resolved
Hide resolved
experiment/src/org/labkey/experiment/api/ExperimentServiceImpl.java
Outdated
Show resolved
Hide resolved
This was referenced May 20, 2024
Merged
13 tasks
13 tasks
labkey-tchad
pushed a commit
to LabKey/customModules
that referenced
this pull request
Feb 27, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Rationale
DbCachehas been an anti-pattern for many years since it uses a very inefficient invalidation mechanism (the entire cache is cleared on every insert, update, or delete). It's time to eliminate it.Changes
deleteAllSpecimenData()move is needed to allow explicit invalidation of specimen helpers; other moved methods aren't related to caching, but there's no reason for them to stay in study.equals()andhashCode()on many classes to accommodate cache verification.Note: This PR leaves DbCache and a large amount of validation & logging code in place. While many test suites have been run, my preference is to merge the verification code to develop and run all the tests with it in place for a few days, then follow up with a PR that removes DbCache, validation, logging, etc.