GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — perf: Reduce online serving hot-path overhead from metrics and audit logging by ntkathole · Pull Request #6854 · feast-dev/feast

Conversation

@ntkathole

@ntkathole ntkathole commented Sep 22, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

What this PR does / why we need it:

Reduces per-request overhead on the /get-online-features endpoint that was
introduced between v0.61.0 and v0.65.0. Users upgrading across this range
observed p99 latency increase from ~80 ms to ~200 ms with the same
worker/replica configuration.

Two root causes are addressed:

1. Count PRESENT statuses incrementally (utils.py)

track_feature_statuses() (added in #6280) scans the entire feat_statuses
matrix after it is already built:

# Before — O(n_features × output_len) re-scan
_present = sum(s == PRESENT for row in feat_statuses for s in row)

For a request with 25 features × 100 entities × 3 feature views, this
re-scans 7,500 status values. This PR counts PRESENT values during the
existing assignment loop, making the counting O(1) additional work:

# After — incremented during the existing loop
_present_count += 1

2. Skip audit overhead when audit_logging is disabled (feature_server.py)

_emit_online_audit() (added in #6340) runs in the finally block of every
online request. Even with audit_logging: false (the default), every request
still:

  • Calls time.monotonic() twice for audit timing
  • Calls get_security_manager() to resolve requestor identity
  • Calls _parse_feature_info() to re-parse the feature list

This PR adds an early-exit guard on feast_metrics._config.audit_logging so
that when audit logging is disabled, none of this work is performed.

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
@ntkathole
ntkathole requested a review from a team as a code owner September 22, 2026 05:03
@ntkathole
perf: Reduce online serving hot-path overhead from metrics and audit …
63d9516
…logging

Signed-off-by: ntkathole <[email protected]>
@ntkathole
ntkathole force-pushed the perf/online-serving-hot-path-overhead branch from af09314 to 63d9516 Compare September 22, 2026 05:06
@ntkathole ntkathole added the ok-to-test label Sep 22, 2026
@codecov-commenter

codecov-commenter commented Sep 22, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 47.62%. Comparing base (d9ea120) to head (63d9516).
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master    #6854   +/-   ##
=======================================
  Coverage   47.62%   47.62%           
=======================================
  Files         422      422           
  Lines       52352    52358    +6     
  Branches     7596     7599    +3     
=======================================
+ Hits        24931    24936    +5     
  Misses      25646    25646           
- Partials     1775     1776    +1     
Flag Coverage Δ
go-feature-server 30.58% <ø> (ø)
python-unit 48.96% <100.00%> (+<0.01%) ⬆️
Files with missing lines Coverage Δ
sdk/python/feast/feature_server.py 63.88% <100.00%> (+0.24%) ⬆️
sdk/python/feast/utils.py 78.41% <100.00%> (+0.02%) ⬆️

... and 1 file with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d9ea120...63d9516. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

jyejare
jyejare approved these changes Sep 22, 2026
View reviewed changes
@ntkathole
ntkathole merged commit 5ee7ee3 into feast-dev:master Sep 22, 2026
37 checks passed

Uh oh!

There was an error while loading. Please reload this page.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@jyejare jyejare jyejare approved these changes

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

ok-to-test

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

3 participants

@ntkathole @codecov-commenter @jyejare
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.