-
Notifications
You must be signed in to change notification settings - Fork 1.2k
feat: Add HTTP connection pooling for remote online store client #5895
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: Add HTTP connection pooling for remote online store client #5895
Conversation
0a20c41 to
e5cb545
Compare
|
FYI - @jyejare |
5878f9c to
a672d43
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR implements HTTP connection pooling for the remote online store client to improve performance by reusing TCP/TLS connections across requests. The changes introduce a thread-safe session manager, configurable connection pool settings, and automatic idle timeout management.
Changes:
- Added
HttpSessionManagerclass for thread-safe session caching and connection pooling - Added configurable connection pool settings:
connection_pool_size,connection_idle_timeout, andconnection_retries - Modified session management to use cached sessions instead of context managers
- Added comprehensive test coverage for session management functionality
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
sdk/python/feast/permissions/client/http_auth_requests_wrapper.py |
Implements HttpSessionManager with connection pooling, retry logic, and idle timeout |
sdk/python/feast/rest_error_handler.py |
Updates decorator to use cached sessions and extract connection pool config |
sdk/python/feast/infra/online_stores/remote.py |
Adds connection pool config fields and close() method |
sdk/python/tests/unit/permissions/auth/client/test_http_session_manager.py |
Adds comprehensive test suite for session manager |
sdk/python/tests/unit/test_rest_error_decorator.py |
Updates tests to close cached sessions before running |
docs/reference/online-stores/remote.md |
Documents connection pooling configuration and usage |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| {"Authorization": f"Bearer {auth_token}"} | ||
| ) | ||
| except Exception as e: | ||
| logger.warning(f"Failed to refresh auth token: {e}") |
Copilot
AI
Jan 25, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The error message 'Failed to refresh auth token' is logged but the exception is silently swallowed. This could lead to authentication failures being unnoticed. Consider either propagating the exception or providing more context about the consequences of continuing with a potentially stale token.
| logger.warning(f"Failed to refresh auth token: {e}") | |
| logger.warning(f"Failed to refresh auth token: {e}") | |
| raise |
a672d43 to
3329678
Compare
Signed-off-by: ntkathole <nikhilkathole2683@gmail.com>
3329678 to
208f00a
Compare
e022bf8
into
feast-dev:master
…st-dev#5895) Signed-off-by: ntkathole <nikhilkathole2683@gmail.com> Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
…st-dev#5895) Signed-off-by: ntkathole <nikhilkathole2683@gmail.com> Signed-off-by: yassinnouh21 <yassinnouh21@gmail.com>
What this PR does / why we need it:
feature_store.yaml:connection_pool_size,connection_idle_timeout, andconnection_retriesHttpSessionManagerclassMisc
New Features
feature_store.yamlConfiguration Options