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 — Redis online store fails to maintain event-time ordering in batch writes · Issue #5163 · feast-dev/feast

Redis online store fails to maintain event-time ordering in batch writes #5163

New issue
Copy link
New issue
Copy link
Closed
#6656
Closed
Redis online store fails to maintain event-time ordering in batch writes#5163
#6656
Copy link
Labels
kind/bugpriority/p2wontfixThis will not be worked onThis will not be worked on

Description

@sundeep-sf
sundeep-sf
opened on Mar 19, 2025
Issue body actions

Expected Behavior

When writing a batch of events to Redis online store, the store should maintain event-time ordering guarantees regardless of the order of events within the batch. The value associated with the latest timestamp should be preserved, even if it appears earlier in the batch.

Current Behavior

The Redis online store processes events in batch order rather than timestamp order. When writing a batch containing events in reverse chronological order (e.g., [t3, t2, t1]), it incorrectly skips later events because it compares timestamps sequentially, causing the wrong values to be stored.

Steps to reproduce

t1 = datetime.now(timezone.utc)
t2 = t1 + timedelta(seconds=5)
t3 = t2 + timedelta(seconds=5)

# Create batch with reverse chronological order
test_data = pd.DataFrame({
    "customer_id": [1] * 3,
    "total_purchases": [30, 20, 10],
    "avg_order_value": [300.0, 200.0, 100.0],
    "event_timestamp": [t3, t2, t1]  # Latest timestamp first
})

# Push batch to online store
feature_store.push_features(feature_group_name, test_data, mode="online")

# Retrieve feature - will return value 10 instead of expected 30
result = feature_store.get_online_features(...)

Specifications

  • Version: Feast SDK Version: "0.40.1"
  • Platform: Any
  • Subsystem: Redis Online Store

Possible Solution

In online_write_batch, before processing the batch:
Sort the data list by timestamp in ascending order, OR
Find the latest timestamp for each entity key and only write that record
The current implementation in online_write_batch processes records sequentially and skips records with timestamps older than what's already been processed in the current batch, which leads to incorrect behavior when events are not in chronological order.
Relevant code: https://github.com/feast-dev/feast/blob/master/sdk/python/feast/infra/online_stores/redis.py#L582

Activity

  1. sundeep-sf
    added
    kind/bug
    priority/p2
    on Mar 19, 2025
  2. stale commented on Jul 19, 2025

    @stale
    staleBot
    on Jul 19, 2025 – with Stale
    More actions

    This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

  3. stale
    added
    wontfixThis will not be worked onThis will not be worked on
    on Jul 19, 2025
  4. ntkathole
    added a commit that references this issue on Jul 30, 2026

    fix: Preserve event-time ordering within Redis online_write_batch

    This issue will close once commit edc9781 is merged into the 'master' branch.
    edc9781
  5. ntkathole
    closed this as completedin #6656on Jul 30, 2026
  6. ntkathole
    added a commit that references this issue on Jul 30, 2026

    fix: Preserve event-time ordering within Redis online_write_batch

    This issue will close once commit 40fb788 is merged into the 'master' branch.
    40fb788
  7. franciscojavierarceo
    added a commit that references this issue on Aug 21, 2026

    chore(release): release 0.66.0

    1d5be95
  8. Michie-hub
    added a commit that references this issue on Aug 31, 2026

    chore(release): release 0.66.0

    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/p2wontfixThis will not be worked onThis will not be worked on

    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.