Skip to content

Conversation

@zabarn
Copy link

@zabarn zabarn commented Aug 25, 2025

What this PR does / why we need it:

  1. Adds Search RPCs to RegistryServer.proto
  2. Adds RPC implementations in registry_server.py
  3. Adds support for registry_server.py registry calls to sql.py
  4. Adds search.py to create Python objects for related RPCs
  5. Adds tests for search.py in test_search.py

Which issue(s) this PR fixes:

Fixes https://expediagroup.atlassian.net/browse/EAPC-19174

Misc

@zabarn zabarn changed the title EAPC-19174 feat: Remote Registry Support feat: Remote Registry Support Aug 25, 2025
Copy link
Collaborator

@EXPEbdodla EXPEbdodla left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a test cases. Rest all looking good to me.

@zabarn zabarn force-pushed the feature/remote-registry-updates branch from 0082406 to 778bcb7 Compare November 18, 2025 16:20
applyCommand.Dir = featureRepoPath
out, err := applyCommand.CombinedOutput()
if err != nil {
log.Printf("Repo setup error: %s", string(out))
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

log error as well.

Comment on lines +263 to +274
// Verify registry.db was created with retries
registryPath := filepath.Join(dataDir, "registry.db")
for i := 0; i < 10; i++ {
if _, err := os.Stat(registryPath); err == nil {
log.Printf("Registry file created successfully after %d attempts", i+1)
break
}
if i == 9 {
return fmt.Errorf("registry.db was not created after feast apply")
}
time.Sleep(1 * time.Second)
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move it to else.


message ExpediaSearchFeatureViewsRequest {
string search_text = 1;
google.protobuf.BoolValue online = 2;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

write a comment when we are not using bool type.

Comment on lines +632 to +633
int32 total_projects = 3;
int32 total_page_indices = 4;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reset indexes.

def ExpediaSearchFeatureViews(
self, request: RegistryServer_pb2.ExpediaSearchFeatureViewsRequest, context
):
# Using `type: ignore[attr-defined]` because this should only be implemented in sql registry.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

proxied_registry should be SQL Registry or SQL Fallback registry. Throw error if its different registry type.

path="/tmp/multi_view_sink",
file_format="parquet",
timestamp_field="daily_driver_stats__event_timestamp",
created_timestamp_column="daily_driver_stats__created",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need to remove created_timestamp_column?


@pytest.fixture(scope="session")
def sqlite_registry():
@pytest.fixture(scope="function")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

check why we need this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants