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 — Add connection pre-warming for DynamoDB async client · Issue #6060 · feast-dev/feast

Add connection pre-warming for DynamoDB async client #6060

New issue
Copy link
New issue
Copy link
Closed
#6711
Closed
Add connection pre-warming for DynamoDB async client#6060
#6711
Copy link
Labels
kind/bugpriority/p2

Description

@abhijeet-dhumal
abhijeet-dhumal
opened on Mar 4, 2026
Issue body actions

Expected Behavior

When the DynamoDB online store is initialized via initialize(), connections to DynamoDB should be pre-established so that the first get_online_features() call does not incur cold-start latency.

Current Behavior

The initialize() method creates the aiobotocore client but does not establish actual TCP connections to DynamoDB. The first BatchGetItem request incurs additional latency (~10-20ms) for connection establishment, TLS handshake, and authentication.

# Current implementation - client created but no connections established
async def initialize(self, config: RepoConfig):
    online_config = config.online_store
    await self._get_aiodynamodb_client(...)  # Creates client object only

Steps to reproduce

import time
from feast import FeatureStore

fs = FeatureStore(repo_path=".")

# First request - includes connection setup overhead
start = time.time()
fs.get_online_features(features=["fv:f1"], entity_rows=[{"id": "1"}])
first_request = time.time() - start  # ~80ms

# Second request - connections already warm
start = time.time()
fs.get_online_features(features=["fv:f1"], entity_rows=[{"id": "1"}])
second_request = time.time() - start  # ~60ms

print(f"First: {first_request*1000:.0f}ms, Second: {second_request*1000:.0f}ms")
# Output: First: 80ms, Second: 60ms (20ms cold-start overhead)

Specifications

  • Version: 0.60.0 and latest master
  • Platform: Any
  • Subsystem: feast.infra.online_stores.dynamodb

Possible Solution

Add a lightweight DynamoDB API call in initialize() to warm up connections:

async def initialize(self, config: RepoConfig):
    online_config = config.online_store
    
    client = await self._get_aiodynamodb_client(
        online_config.region,
        online_config.max_pool_connections,
        # ... other params
    )
    
    # Warm up connection pool with a lightweight call
    if online_config.warmup_connections:  # New config option
        try:
            await client.describe_limits()
        except Exception:
            pass  # Ignore errors, just warming up connections

Optionally gated behind a new config parameter warmup_connections: bool = False to maintain backward compatibility.

Activity

  1. abhijeet-dhumal
    added
    kind/bug
    priority/p2
    on Mar 4, 2026
  2. nithin42
    added a commit that references this issue on Aug 7, 2026

    fix: Add DynamoDB connection pre-warming, fix mypy TorchTensor type a…

    This issue will close once commit 803db4c is merged into the 'master' branch.
    803db4c
  3. nithin42 commented on Aug 9, 2026

    @nithin42
    nithin42
    on Aug 9, 2026
    Contributor
    More actions

    Hi! I've opened PR #6711 to add the connection pre-warming option to the DynamoDB online store.

  4. nithin42
    added 2 commits that reference this issue on Aug 11, 2026

    fix: Add connection pre-warming for DynamoDB async client

    This issue will close once commit 29e8c6c is merged into the 'master' branch.
    29e8c6c

    fix: Add connection pre-warming for DynamoDB async client

    This issue will close once commit 5eb6037 is merged into the 'master' branch.
    5eb6037
  5. ntkathole
    added a commit that references this issue on Aug 15, 2026

    fix: Add connection pre-warming for DynamoDB async client

    This issue will close once commit 89240fa is merged into the 'master' branch.
    89240fa
  6. ntkathole
    closed this as completedin #6711on Aug 15, 2026
  7. franciscojavierarceo
    added a commit that references this issue on Aug 21, 2026

    chore(release): release 0.66.0

    1d5be95
  8. HSarwat
    added a commit that references this issue on Aug 22, 2026

    fix: Add connection pre-warming for DynamoDB async client

    This issue will close once commit 438e382 is merged into the 'master' branch.
    438e382
  9. Michie-hub
    added 2 commits that reference this issue on Aug 31, 2026

    fix: Add connection pre-warming for DynamoDB async client

    This issue will close once commit 52e4119 is merged into the 'master' branch.
    52e4119

    chore(release): release 0.66.0

    This issue will close once commit a29c923 is merged into the 'master' branch.
    a29c923
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/bugpriority/p2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      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.