Skip to content

Cache NAb runs per run and fit type - #1079

Merged
labkey-jeckels merged 5 commits into
developfrom
fb_reduceConnectionGetting
Oct 9, 2026
Merged

labkey-jeckels merged 5 commits into
developfrom
fb_reduceConnectionGetting

Conversation

@labkey-jeckels

@labkey-jeckels labkey-jeckels commented Oct 3, 2026 •

Copy link
Copy Markdown
Contributor

Rationale

Cut the overhead of repeated connection borrows when rendering NAb results. For example, each NAb graph image averaged 164 borrows in TeamCity runs because it rebuilt the whole run; keying the run cache on run and fit type brings a cache hit down to about 3.

Related Pull Requests

Changes

  • Graph images and run details for the same run and curve fit share one built run
  • High-throughput plates load their stored dilution data in a single query

TeamCity: nab Postgres passes on this branch.

Graph images and details for the same run and curve fit now share one built run, and high-throughput plates load their stored DilutionData in one query.
Comment thread nab/src/org/labkey/nab/NabAssayController.java
labkey-jeckels added a commit to LabKey/platform that referenced this pull request Oct 9, 2026
…Ab, and audit grids (#8130)

## Rationale
Cut the overhead of repeatedly borrowing and returning pooled
connections on common request paths. For example, the product menu API
averaged 17 borrows per call in TeamCity runs and should drop to 3–5
with the companion limsModules change, and loading a table's schema
metadata drops from 3 borrows to 1.

## Related Pull Requests
- LabKey/commonAssays: LabKey/commonAssays#1079
- LabKey/limsModules: LabKey/limsModules#2515
- LabKey/testAutomation:
LabKey/testAutomation#3236

## Changes
- Product menu sections load their items under one held connection
instead of one borrow per lazy query
- Schema metadata loading shares one connection across its column,
primary key, and index passes
- Plate and dilution data for NAb runs load per well group in batches
rather than per well
- Lineage queries and data type exclusions are cached or batched
- Domain invalidation and object deletes clear only the affected
ontology cache entries instead of everything
- Audit grid columns memoize per-row lookups
- Query renames clear ontology caches so lookups rewritten in other
domains are picked up
- Plates cache their run container by id so cached plates pass the cache
safety check

## Tasks
- [x] Claude Code Review
- [x] Manual Testing - N/A
- [x] Test Automation

TeamCity: BVT, Daily, Biologics, Sample Manager, LIMS, Inventory, nab,
and endpoint suites pass on this branch.
@labkey-jeckels
labkey-jeckels merged commit 751f53c into develop Oct 9, 2026
6 checks passed
@labkey-jeckels
labkey-jeckels deleted the fb_reduceConnectionGetting branch October 9, 2026 00:35
labkey-jeckels pushed a commit to LabKey/testAutomation that referenced this pull request Oct 9, 2026
## Rationale
See related commonAssays PR for rationale. This PR adds a test that NAb
QC exclusions reach other sessions' cached runs.

## Related Pull Requests
- LabKey/platform#8130
- LabKey/limsModules#2515
- LabKey/commonAssays#1079

## Changes
- Saves well exclusions from a separate API session and checks the
browser session sees the recalculated results, for both an explicit and
the default curve fit.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants