Skip to content

Commit 726c938

Browse files
authored
fix: Bug fix (#321)
--------- Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * feat: Redis range query materialization (#315) * feat: Redis range query materialization * fex: fix requirements * feat: Add batching and collocation * fix: fix formatting * fix: Add comment * fix: remove collocation * fix: add requirements files * fix: fix formatting * Update redis.py * Update test_redis.py * Update test_redis.py --------- Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * feat: Add Valkey changes (#317) * feat: Redis range query materialization * fex: fix requirements * feat: Add batching and collocation * fix: fix formatting * fix: Add comment * fix: remove collocation * fix: add requirements files * fix: fix formatting * Update redis.py * Update test_redis.py * Update test_redis.py * feat: Added valkey changes * fix: fix formatting --------- Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * fix: Exclude docker tests from macos (#319) * feat: Redis range query materialization * fex: fix requirements * feat: Add batching and collocation * fix: fix formatting * fix: Add comment * fix: remove collocation * fix: add requirements files * fix: fix formatting * Update redis.py * Update test_redis.py * Update test_redis.py * feat: Added valkey changes * fix: fix formatting * fix: exclude docker tests from macos * fix : fix formatting * fix : separate repo config with and without connection string * fix : separate repo config with and without connection string --------- Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * fix: Rename repo config (#320) * feat: Redis range query materialization * fex: fix requirements * feat: Add batching and collocation * fix: fix formatting * fix: Add comment * fix: remove collocation * fix: add requirements files * fix: fix formatting * Update redis.py * Update test_redis.py * Update test_redis.py * feat: Added valkey changes * fix: fix formatting * fix: exclude docker tests from macos * fix : fix formatting * fix : separate repo config with and without connection string * fix : separate repo config with and without connection string * fix : rename repoconfig * fix : formatting * fix : fix tests --------- Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * feat: Added Online Read Range functionality for Redis (#318) * added redis online read range functionality * using reverse instead of ZREVRANGE * adding reverse logic and valkey implementation * adding comments * moved util functionality into utils and addressed PR comments * reverting sample local changes --------- Co-authored-by: Manisha Sudhir <msudhir@expediagroup.com> * feat: Added Integration Tests for Valkey OnlineReadRange testing (#323) * added integration tests * Remove accidentally committed feast binary * adding ignore build integration --------- Co-authored-by: Manisha Sudhir <msudhir@expediagroup.com> * feat: Ttl changes (#311) * ttl changes * fix linting error * fixing the tests * updated the threading logic * fixing a typo * fix linting error * cleanup * cleanup * reformatting * pull max_evnts from feature view tags * fix import * Refactoring and added more unit tests * fix: formatting * formatting * fix tests * formatting * formatting * updated based on the materilaization changes * formatting * formatting * added valkey changes * bug fix * Address review comments * type * fix typo * formatting * fix failing unit tests * update tests * fix: Count ttl command * bug fix * Update sdk/python/feast/infra/online_stores/redis.py Co-authored-by: kpulipati29 <kpulipati29@gmail.com> * address review comments * lint fixes * fix: Enable event time ttl * fix: Use event timestamp to set ttl in redis hash * fix: linting * fix: imports * fix: imports * fix: Small fix * fix: Small fix * fix: exception handling and some cleanup * fix: formatting fix * fix: lint fix * fix: Reduce batch size * fix: reduce batch size * fix: dont expire if ttl is zerp --------- Co-authored-by: vbhagwat <vbhagwat@expediagroup.com> Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> Co-authored-by: kpulipati29 <kpulipati29@gmail.com> * fix: Fix minor bug (#324) * ttl changes * fix linting error * fixing the tests * updated the threading logic * fixing a typo * fix linting error * cleanup * cleanup * reformatting * pull max_evnts from feature view tags * fix import * Refactoring and added more unit tests * fix: formatting * formatting * fix tests * formatting * formatting * updated based on the materilaization changes * formatting * formatting * added valkey changes * bug fix * Address review comments * type * fix typo * formatting * fix failing unit tests * update tests * fix: Count ttl command * bug fix * Update sdk/python/feast/infra/online_stores/redis.py Co-authored-by: kpulipati29 <kpulipati29@gmail.com> * address review comments * lint fixes * fix: Enable event time ttl * fix: Use event timestamp to set ttl in redis hash * fix: linting * fix: imports * fix: imports * fix: Small fix * fix: Small fix * fix: exception handling and some cleanup * fix: formatting fix * fix: lint fix * fix: Reduce batch size * fix: reduce batch size * fix: dont expire if ttl is zerp * fix: add results for sfv --------- Co-authored-by: vbhagwat <vbhagwat@expediagroup.com> Co-authored-by: vanitabhagwat <92561664+vanitabhagwat@users.noreply.github.com> Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * removing limit on filter and adding it on retrieval (#326) Co-authored-by: Manisha Sudhir <msudhir@expediagroup.com> * modifying batch size behaviour (#327) Co-authored-by: Manisha Sudhir <msudhir@expediagroup.com> * fix: Adding Parallelization Logic (#328) * adding parallelization logic * modifying comment * adding logs for debugging * removing logs and cleaning up * removing logs and cleaning up * Add comments for better understandability --------- Co-authored-by: Manisha4 <Manisha4@github.com> * fix: Some bug fixes (#325) * ttl changes * fix linting error * fixing the tests * updated the threading logic * fixing a typo * fix linting error * cleanup * cleanup * reformatting * pull max_evnts from feature view tags * fix import * Refactoring and added more unit tests * fix: formatting * formatting * fix tests * formatting * formatting * updated based on the materilaization changes * formatting * formatting * added valkey changes * bug fix * Address review comments * type * fix typo * formatting * fix failing unit tests * update tests * fix: Count ttl command * bug fix * Update sdk/python/feast/infra/online_stores/redis.py Co-authored-by: kpulipati29 <kpulipati29@gmail.com> * address review comments * lint fixes * fix: Enable event time ttl * fix: Use event timestamp to set ttl in redis hash * fix: linting * fix: imports * fix: imports * fix: Small fix * fix: Small fix * fix: exception handling and some cleanup * fix: formatting fix * fix: lint fix * fix: Reduce batch size * fix: reduce batch size * fix: dont expire if ttl is zerp * fix: add results for sfv * fix: increase batch size * fix: fix a ttl bug * fix: Remove ttl logic to see if it improves latency * fix: some simplifications to ttl logic * fix: remove count based ttl * fix: add log * fix: formatting * fix: remove debug logs * fix: typo in test case * fix: linting * fix: increase ttl to see if that fixes tests * fix: lint * fix: improve tests --------- Co-authored-by: vbhagwat <vbhagwat@expediagroup.com> Co-authored-by: vanitabhagwat <92561664+vanitabhagwat@users.noreply.github.com> Co-authored-by: Krishna mohan Pulipati <kpulipati@expediagroup.com> * fix: Update Redis Implementation to Match Valkey (#329) * Port over valkey implementation to Redis * Fix bug and update tests * formatting fixes * formatting fixes --------- Co-authored-by: Manisha4 <Manisha4@github.com> * Update featurestore_test.go remove types2 import ---------
1 parent 1fa0360 commit 726c938

21 files changed

Lines changed: 3918 additions & 154 deletions

.github/workflows/unit_tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
run: make test-python-unit
4848
- name: Test Python for Mac
4949
if: matrix.os != 'ubuntu-latest'
50-
run: python -m pytest -n 8 --color=yes sdk/python/tests --ignore=sdk/python/tests/expediagroup
50+
run: python -m pytest -n 8 --color=yes sdk/python/tests --ignore=sdk/python/tests/expediagroup -m "not docker"
5151
- name: Minimize uv cache
5252
run: uv cache prune --ci
5353

go.mod

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ require (
1111
github.com/DataDog/dd-trace-go/contrib/redis/go-redis.v9/v2 v2.2.3
1212
github.com/DataDog/dd-trace-go/contrib/valkey-io/valkey-go/v2 v2.2.3
1313
github.com/DataDog/dd-trace-go/v2 v2.2.3
14+
github.com/alicebob/miniredis/v2 v2.35.0
1415
github.com/apache/arrow/go/v17 v17.0.0
1516
github.com/aws/aws-sdk-go-v2 v1.36.4
1617
github.com/aws/aws-sdk-go-v2/config v1.29.14
@@ -126,6 +127,7 @@ require (
126127
github.com/stretchr/objx v0.5.2 // indirect
127128
github.com/tklauser/go-sysconf v0.3.15 // indirect
128129
github.com/tklauser/numcpus v0.10.0 // indirect
130+
github.com/yuin/gopher-lua v1.1.1 // indirect
129131
github.com/yusufpapurcu/wmi v1.2.4 // indirect
130132
github.com/zeebo/xxh3 v1.0.2 // indirect
131133
go.opentelemetry.io/auto/sdk v1.1.0 // indirect

go.sum

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@ github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lpr
5353
github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84=
5454
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
5555
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
56+
github.com/alicebob/miniredis/v2 v2.35.0 h1:QwLphYqCEAo1eu1TqPRN2jgVMPBweeQcR21jeqDCONI=
57+
github.com/alicebob/miniredis/v2 v2.35.0/go.mod h1:TcL7YfarKPGDAthEtl5NBeHZfeUQj6OXMm/+iu5cLMM=
5658
github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M=
5759
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
5860
github.com/apache/arrow/go/v17 v17.0.0 h1:RRR2bdqKcdbss9Gxy2NS/hK8i4LDMh23L6BbkN5+F54=
@@ -299,6 +301,8 @@ github.com/vmihailenco/tagparser v0.1.2/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgq
299301
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
300302
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
301303
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
304+
github.com/yuin/gopher-lua v1.1.1 h1:kYKnWBjvbNP4XLT3+bPEwAXJx262OhaHDWDVOPjL46M=
305+
github.com/yuin/gopher-lua v1.1.1/go.mod h1:GBR0iDaNXjAgGg9zfCvksxSRnQx76gclCIb7kdAd1Pw=
302306
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
303307
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
304308
github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=

go/internal/feast/integration_tests/valkey/feature_repo/example_repo.py

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22

33
from datetime import timedelta
44

5-
from feast import Entity, FeatureView, Field, FileSource, Project, FeatureService
5+
from feast import Entity, FeatureView, Field, FileSource, Project, FeatureService, SortedFeatureView
6+
from feast.protos.feast.core.SortedFeatureView_pb2 import SortOrder
7+
from feast.sort_key import SortKey
68
from feast.types import (
79
Array,
810
Bool,
@@ -89,3 +91,56 @@
8991
features=[mlpfs_test_all_datatypes_view],
9092
)
9193

94+
mlpfs_test_all_datatypes_sorted_view: SortedFeatureView = SortedFeatureView(
95+
name="all_dtypes_sorted",
96+
entities=[index_entity],
97+
ttl=timedelta(),
98+
source=mlpfs_test_all_datatypes_source,
99+
tags=tags,
100+
description="Feature View with all supported feast datatypes",
101+
owner=owner,
102+
online=True,
103+
sort_keys=[
104+
SortKey(
105+
name="event_timestamp",
106+
value_type=ValueType.UNIX_TIMESTAMP,
107+
default_sort_order=SortOrder.DESC,
108+
)
109+
],
110+
schema=[
111+
Field(name="index_id", dtype=Int64),
112+
Field(name="int_val", dtype=Int32),
113+
Field(name="long_val", dtype=Int64),
114+
Field(name="float_val", dtype=Float32),
115+
Field(name="double_val", dtype=Float64),
116+
Field(name="byte_val", dtype=Bytes),
117+
Field(name="string_val", dtype=String),
118+
Field(name="timestamp_val", dtype=UnixTimestamp),
119+
Field(name="boolean_val", dtype=Bool),
120+
Field(name="array_int_val", dtype=Array(Int32)),
121+
Field(name="array_long_val", dtype=Array(Int64)),
122+
Field(name="array_float_val", dtype=Array(Float32)),
123+
Field(name="array_double_val", dtype=Array(Float64)),
124+
Field(name="array_byte_val", dtype=Array(Bytes)),
125+
Field(name="array_string_val", dtype=Array(String)),
126+
Field(name="array_timestamp_val", dtype=Array(UnixTimestamp)),
127+
Field(name="array_boolean_val", dtype=Array(Bool)),
128+
Field(name="null_int_val", dtype=Int32),
129+
Field(name="null_long_val", dtype=Int64),
130+
Field(name="null_float_val", dtype=Float32),
131+
Field(name="null_double_val", dtype=Float64),
132+
Field(name="null_byte_val", dtype=Bytes),
133+
Field(name="null_string_val", dtype=String),
134+
Field(name="null_timestamp_val", dtype=UnixTimestamp),
135+
Field(name="null_boolean_val", dtype=Bool),
136+
Field(name="null_array_int_val", dtype=Array(Int32)),
137+
Field(name="null_array_long_val", dtype=Array(Int64)),
138+
Field(name="null_array_float_val", dtype=Array(Float32)),
139+
Field(name="null_array_double_val", dtype=Array(Float64)),
140+
Field(name="null_array_byte_val", dtype=Array(Bytes)),
141+
Field(name="null_array_string_val", dtype=Array(String)),
142+
Field(name="null_array_timestamp_val", dtype=Array(UnixTimestamp)),
143+
Field(name="null_array_boolean_val", dtype=Array(Bool)),
144+
Field(name="event_timestamp", dtype=UnixTimestamp),
145+
],
146+
)

0 commit comments

Comments
 (0)