Title: Factor out storage key generation logic, to eliminate code duplication · Issue #402 · feast-dev/feast · GitHub
Open Graph Title: Factor out storage key generation logic, to eliminate code duplication · Issue #402 · feast-dev/feast
X Title: Factor out storage key generation logic, to eliminate code duplication · Issue #402 · feast-dev/feast
Description: This is a small-ish refactoring chore. See #360 (comment) Currently there is some code duplication between ingestion and serving for the generation and parsing of Redis keys. We multiplied this in the course of implementing Cassandra sto...
Open Graph Description: This is a small-ish refactoring chore. See #360 (comment) Currently there is some code duplication between ingestion and serving for the generation and parsing of Redis keys. We multiplied this in ...
X Description: This is a small-ish refactoring chore. See #360 (comment) Currently there is some code duplication between ingestion and serving for the generation and parsing of Redis keys. We multiplied this in ...
Opengraph URL: https://github.com/feast-dev/feast/issues/402
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Factor out storage key generation logic, to eliminate code duplication","articleBody":"This is a small-ish refactoring chore. See https://github.com/gojek/feast/pull/360#discussion_r362778747\r\n\r\nCurrently there is some code duplication between ingestion and serving for the generation and parsing of Redis keys. We multiplied this in the course of implementing Cassandra storage (#360), as it is already a large change set we didn't want to introduce additional Redis refactoring to it and thus decided to log it as a follow-up.\r\n\r\nThis could be done for Redis independent of and before integrating the Cassandra implementation though, and Cass implementation can be updated to follow the pattern if so.\r\n\r\n_Update_: The below storage modularization was realized through #529 and subsequent PRs that implemented its interfaces. This issue remains for tech debt of code duplication that still remains, enumerated in https://github.com/gojek/feast/issues/402#issuecomment-623264345\r\n\r\n~~In the interest of storage modularization to minimize dependency headaches in the future (something I believe we'll hash out in further RFC issues), I propose something like this:~~\r\n\r\n~~1. A `storage-api` module, which defines an interface something like `KeyUtil`~~\r\n~~1. A `storage-redis` implementation module which implements `KeyUtil` for Redis~~\r\n\r\n~~I'm open to better naming suggestions, structure is more my focus here.~~\r\n\r\n~~The `KeyUtil`s could ideally be `static` so that unit testing them is trivially simple and the unit tests can serve as a good spec/documentation of the key format.~~","author":{"url":"https://github.com/ches","@type":"Person","name":"ches"},"datePublished":"2020-01-03T11:44:33.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":10},"url":"https://github.com/402/feast/issues/402"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:3e8a9996-5568-a263-7a1e-446b9fe78a54 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | EB14:31F1BD:49C29D:666BBA:697B3218 |
| html-safe-nonce | 2841b6228603c3f98ef0d134f4dfbb4fc458d182586fc864f09b73b7da2b4f86 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFQjE0OjMxRjFCRDo0OUMyOUQ6NjY2QkJBOjY5N0IzMjE4IiwidmlzaXRvcl9pZCI6IjU1MDE2Njg2NDMzOTUyODU1MjgiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 559168f639cc6842e791845ce15cc0af011014def8d1f012d9aea07c44ae4c3a |
| hovercard-subject-tag | issue:544961726 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/feast-dev/feast/402/issue_layout |
| twitter:image | https://opengraph.githubassets.com/7ada38412bf68096557eb9f7f1b783940c079f1ce88e03696bda034df6b612a8/feast-dev/feast/issues/402 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/7ada38412bf68096557eb9f7f1b783940c079f1ce88e03696bda034df6b612a8/feast-dev/feast/issues/402 |
| og:image:alt | This is a small-ish refactoring chore. See #360 (comment) Currently there is some code duplication between ingestion and serving for the generation and parsing of Redis keys. We multiplied this in ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | ches |
| hostname | github.com |
| expected-hostname | github.com |
| None | b829d4f4ed54ba25a8ee6563ddbee902b007126d82d1fd1328905d890c88d4ac |
| turbo-cache-control | no-preview |
| go-import | github.com/feast-dev/feast git https://github.com/feast-dev/feast.git |
| octolytics-dimension-user_id | 57027613 |
| octolytics-dimension-user_login | feast-dev |
| octolytics-dimension-repository_id | 161133770 |
| octolytics-dimension-repository_nwo | feast-dev/feast |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 161133770 |
| octolytics-dimension-repository_network_root_nwo | feast-dev/feast |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 647182d21b3adf5207d3e3a12b3ca1947ba99070 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width