Skip to content

Conversation

@ntkathole
Copy link
Member

What this PR does / why we need it:

  • Implement HTTP connection pooling for the remote online store client to improve latency by reusing TCP/TLS connections across requests
  • Add configurable connection pool settings via feature_store.yaml: connection_pool_size, connection_idle_timeout, and connection_retries
  • Add automatic idle timeout to close stale sessions and release resources
  • Add thread-safe session management via HttpSessionManager class

Misc

New Features

  • Connection Pooling: HTTP sessions are now cached and reused, eliminating TCP/TLS handshake overhead (~40-130ms) on subsequent requests
  • Configurable Settings: Users can customize pool size, idle timeout, and retry behavior in feature_store.yaml
  • Automatic Idle Timeout: Sessions are automatically closed after configurable idle period (default: 5 minutes)
  • Retry with Backoff: Built-in exponential backoff retry logic for transient failures

Configuration Options

online_store:
  type: remote
  path: http://feast-feature-server:80
  connection_pool_size: 50        # Max connections in pool (default: 50)
  connection_idle_timeout: 300    # Idle timeout in seconds (default: 300, 0 to disable)
  connection_retries: 3           # Retry count with backoff (default: 3)

@ntkathole
Copy link
Member Author

FYI - @jyejare

Signed-off-by: ntkathole <nikhilkathole2683@gmail.com>
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.

1 participant