@@ -10,7 +10,7 @@ Author(s): @elevran @nirrozenbaum
1010
1111The EPP Architecture proposal identifies the need for an extensible
1212 [ Data Layer] ( ../0683-epp-architecture-proposal/README.md#data-layer ) .
13- Recently, the scheduling subsystem underwent a major [ architecure change] ( ../0845-scheduler-architecture-proposal/README.md )
13+ Recently, the scheduling subsystem underwent a major [ architecture change] ( ../0845-scheduler-architecture-proposal/README.md )
1414 to allow easier extension and pluggability. This proposal aims to apply
1515 similar extensibility to the Data Layer subsystem, allowing custom inference
1616 gateways to extend the Gateway API Inference extension (GIE) for their use
@@ -20,7 +20,7 @@ See [this document](https://docs.google.com/document/d/1eCCuyB_VW08ik_jqPC1__z6F
2020
2121## Goals
2222
23- The Data Layer pluggability effort aims to address the folllowing goals and
23+ The Data Layer pluggability effort aims to address the following goals and
2424 requirements:
2525
2626- Make endpoint attributes used by GIE components accessible via well defined
@@ -56,6 +56,8 @@ The Data Layer pluggability effort aims to address the folllowing goals and
5656- Inference scheduler Plugins, that rely on custom data collection, accept that
5757 the [ Model Server Protocol] ( ../003-model-server-protocol/README.md ) no longer
5858 provides guarantees on portability of a model server out of the box.
59+ - Intent is * not* to introduce a new scraping mechanism, and continue to support
60+ the current model of Go-routine per endpoint.
5961
6062## Proposal
6163
@@ -72,7 +74,7 @@ There are two existing Data Sources in the Data Layer: a Pod reconciler that
7274The proposal is to make the Data Layer more extensible approaching by introducing
7375 these two interfaces:
7476
75- - An ** Attribute Collection** plugin interface responsible for extratcing relevant
77+ - An ** Attribute Collection** plugin interface responsible for extracting relevant
7678 attributes from a data source and storing them into the Data Layer for consumption
7779 by other components. The plugin can be registered with existing or new
7880 * Data Sources* (see below) and sources would call their registered plugins
@@ -97,7 +99,7 @@ In order to make iterative progress and validate the design alongside, we
97991 . Refactor the metrics scraping code into separate Data Source and Data Collection
98100 plugin interfaces.
991011 . Following that, and based on any lessons learnt, we’ll refactor the existing
100- Kubernetes Pod recocilation loop to the new plugin interfaces.
102+ Kubernetes Pod reconciliation loop to the new plugin interfaces.
101103
102104### Suggested Data Layer Plugin Interfaces
103105
@@ -163,9 +165,9 @@ type DataSource interface {
163165
164166## Open Questions
165167
166- 1 . Type safety in extensible data colletion : ` map[string]interface{} ` seems
168+ 1 . Type safety in extensible data collection : ` map[string]interface{} ` seems
167169 like the simplest option to start, but may want to evolve to support
168- type safety using generics or codegen .
170+ type safety using generics or code generation .
1691711 . Should we design a separate interface specifically for k8s object watching
170172 under GIE control or do we want these to be managed as yet another data source?
171173 This affects the design (e.g., who owns the k8s caches, clients, etc.).
0 commit comments