Skip to content
Navigation Menu
Sign in
Appearance settings
Platform
AI CODE CREATION
GitHub Copilot
Write better code with AI
GitHub Copilot app
Direct agents from issue to merge
MCP Registry
Integrate external tools
DEVELOPER WORKFLOWS
Actions
Automate any workflow
Codespaces
Instant dev environments
Issues
Plan and track work
Code Review
Manage code changes
Code Quality
Enforce quality at merge
APPLICATION SECURITY
GitHub Advanced Security
Find and fix vulnerabilities
Code security
Secure your code as you build
Secret protection
Stop leaks before they start
EXPLORE
Why GitHub
Documentation
Blog
Changelog
Marketplace
View all features
Solutions
BY COMPANY SIZE
Enterprises
Small and medium teams
Startups
Nonprofits
BY USE CASE
App Modernization
DevSecOps
DevOps
CI/CD
View all use cases
BY INDUSTRY
Healthcare
Financial services
Manufacturing
Government
View all industries
View all solutions
Resources
EXPLORE BY TOPIC
AI
Software Development
DevOps
Security
View all topics
EXPLORE BY TYPE
Customer stories
Events & webinars
Ebooks & reports
Business insights
GitHub Skills
SUPPORT & SERVICES
Documentation
Customer support
Community forum
Trust center
Partners
View all resources
Open Source
COMMUNITY
GitHub Sponsors
Fund open source developers
PROGRAMS
Security Lab
Maintainer Community
Accelerator
GitHub Stars
Archive Program
REPOSITORIES
Topics
Trending
Collections
Enterprise
ENTERPRISE SOLUTIONS
Enterprise platform
AI-powered developer platform
AVAILABLE ADD-ONS
GitHub Advanced Security
Enterprise-grade security features
Copilot for Business
Enterprise-grade AI features
Premium Support
Enterprise-grade 24/7 support
Pricing
Search
/
Sign in
Sign up
Appearance settings
You signed in with another tab or window.
Reload
to refresh your session.
You signed out in another tab or window.
Reload
to refresh your session.
You switched accounts on another tab or window.
Reload
to refresh your session.
Dismiss alert
{{ message }}
Uh oh!
There was an error while loading.
Please reload this page
.
OpenStackweb
/
summit-api
Public
Notifications
You must be signed in to change notification settings
Fork
2
Star
3
Code
Issues
3
Pull requests
18
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Actions
Projects
Security and quality
Insights
perf(events): eliminate /events N+1 queries — 298 → 47 queries, ~1500ms → ~340ms
- #549
#549
Merged
smarcet
merged 33 commits into
main
OpenStackweb/summit-api:main
from
hotfix/cache-optimizations
OpenStackweb/summit-api:hotfix/cache-optimizations
Copy head branch name to clipboard
Jun 22, 2026
Conversation
Commits
33
(33)
Checks
Files changed
Merged
perf(events): eliminate /events N+1 queries — 298 → 47 queries, ~1500ms → ~340ms
#549
smarcet
merged 33 commits into
main
OpenStackweb/summit-api:main
from
hotfix/cache-optimizations
OpenStackweb/summit-api:hotfix/cache-optimizations
Copy head branch name to clipboard
Commits
Commits on Jun 12, 2026
fix(serializer): add last_edited timestamp to presentation cache key for automatic invalidation
Show description for bbdc74d
smarcet
committed
bbdc74d
View commit details
Copy full SHA for bbdc74d
Browse repository at this point
chore(routes): enable server.timing.doctrine on getEvents for profiling
Show description for cf19f31
smarcet
committed
cf19f31
View commit details
Copy full SHA for cf19f31
Browse repository at this point
chore(profiling): expose per-phase request breakdown via Server-Timing header
Show description for 5a206b2
smarcet
committed
5a206b2
View commit details
Copy full SHA for 5a206b2
Browse repository at this point
fix(profiling): accurate DB time measurement via DBAL Driver Middleware
Show description for 3d0264d
smarcet
committed
3d0264d
View commit details
Copy full SHA for 3d0264d
Browse repository at this point
chore(profiling): log top-repeating SQL patterns to identify exact N+1 sources
Show description for 7968d40
smarcet
committed
7968d40
View commit details
Copy full SHA for 7968d40
Browse repository at this point
fix(member): memoize belongsToGroup() per-instance to eliminate N+1 of 84 queries
Show description for 4d78aa1
smarcet
committed
4d78aa1
View commit details
Copy full SHA for 4d78aa1
Browse repository at this point
fix(repository): preload PresentationSpeaker + Member in single DQL query
Show description for d3e00ea
smarcet
committed
d3e00ea
View commit details
Copy full SHA for d3e00ea
Browse repository at this point
fix(repository): include root alias 'a' in speaker+member preload SELECT
Show description for 04d63a7
smarcet
committed
04d63a7
View commit details
Copy full SHA for 04d63a7
Browse repository at this point
chore(debug): instrument preload to confirm what it loads
Show description for 586f202
smarcet
committed
586f202
View commit details
Copy full SHA for 586f202
Browse repository at this point
chore(debug): capture Member query params to identify which Members are being loaded
Show description for b1939fa
smarcet
committed
b1939fa
View commit details
Copy full SHA for b1939fa
Browse repository at this point
fix(debug): strip backticks before matching Member table name
Show description for 736e7b3
smarcet
committed
736e7b3
View commit details
Copy full SHA for 736e7b3
Browse repository at this point
fix(auth): memoize getCurrentUser() — eliminates ~98 redundant Member SELECTs per request
Show description for 1107c5b
smarcet
committed
1107c5b
View commit details
Copy full SHA for 1107c5b
Browse repository at this point
fix(repository): batch-preload SummitSelectedPresentation, eliminates 20 queries
Show description for b4ec71e
smarcet
committed
b4ec71e
View commit details
Copy full SHA for b4ec71e
Browse repository at this point
chore(debug): instrument SummitSelectedPresentation preload to find why it has no effect
Show description for 176c91d
smarcet
committed
176c91d
View commit details
Copy full SHA for 176c91d
Browse repository at this point
fix(speaker): pre-populate getPresentationAssignmentOrder cache from batch-loaded assignments
Show description for af997fd
smarcet
committed
af997fd
View commit details
Copy full SHA for af997fd
Browse repository at this point
fix(repository): preload location (FETCH JOIN), tags and materials in /events hydration
Show description for bed486f
smarcet
committed
bed486f
View commit details
Copy full SHA for bed486f
Browse repository at this point
fix(repository): preload sponsors batch + fetch-join PresentationCategory
Show description for 05e300e
smarcet
committed
05e300e
View commit details
Copy full SHA for 05e300e
Browse repository at this point
chore(cleanup): remove diagnostic logging used to profile the /events N+1 hunt
Show description for 179b915
smarcet
committed
179b915
View commit details
Copy full SHA for 179b915
Browse repository at this point
docs(adr): document /events N+1 elimination work
Show description for 2073af3
smarcet
committed
2073af3
View commit details
Copy full SHA for 2073af3
Browse repository at this point
fix(events): correct SummitSelectedPresentation preload DQL and cache reset on auth context change
Show description for 60e814a
smarcet
committed
60e814a
View commit details
Copy full SHA for 60e814a
Browse repository at this point
fix(events): low-severity findings + unit tests from PR #549 review
Show description for 722556a
smarcet
committed
722556a
View commit details
Copy full SHA for 722556a
Browse repository at this point
fix(trait): restore optional afterQuery hook in _getAll
Show description for e774876
smarcet
committed
e774876
View commit details
Copy full SHA for e774876
Browse repository at this point
fix(timing): replace Session with request attributes for sub-phase timings
Show description for 746512a
smarcet
committed
746512a
View commit details
Copy full SHA for 746512a
Browse repository at this point
fix(timing): use import instead of fully qualified class for QueryTimingCollector
smarcet
committed
d086f11
View commit details
Copy full SHA for d086f11
Browse repository at this point
fix(auth): track side-effects independently in getCurrentUser cache
Show description for 8d5b833
smarcet
committed
8d5b833
View commit details
Copy full SHA for 8d5b833
Browse repository at this point
fix(presentation): reset memoizedSelectionStatus on all state-mutating methods
Show description for f6800e7
smarcet
committed
f6800e7
View commit details
Copy full SHA for f6800e7
Browse repository at this point
fix(cache): bump last_edited on association-only mutations to bust PresentationSerializer cache
Show description for a295d99
smarcet
committed
a295d99
View commit details
Copy full SHA for a295d99
Browse repository at this point
fix(cache): invalidate presentation cache on speaker reorder and harden getCurrentUser
Show description for 9d095d5
smarcet
committed
9d095d5
View commit details
Copy full SHA for 9d095d5
Browse repository at this point
chore(config): commit message rules updated
smarcet
committed
ba81308
View commit details
Copy full SHA for ba81308
Browse repository at this point
fix(presentation): clear preload caches on plan/material mutations
Show description for 4ffcc84
smarcet
committed
4ffcc84
View commit details
Copy full SHA for 4ffcc84
Browse repository at this point
fix(presentation): clear preloadedSessionSelections in setSelectedPresentations and setCategory
Show description for 588c3c6
smarcet
committed
588c3c6
View commit details
Copy full SHA for 588c3c6
Browse repository at this point
fix(auth): restore cachedCurrentUser after syncMemberFields transaction
Show description for 094faa6
smarcet
committed
094faa6
View commit details
Copy full SHA for 094faa6
Browse repository at this point
chore(routes): fix middleware order
smarcet
committed
926ee8a
View commit details
Copy full SHA for 926ee8a
Browse repository at this point
You can’t perform that action at this time.