Skip to content

Commit 1b98ec9

Browse files
author
Tsotne Tabidze
authored
replace GetOnlineFeaturesResponse with GetOnlineFeaturesResponseV2 in… (feast-dev#2214)
* replace GetOnlineFeaturesResponse with GetOnlineFeaturesResponseV2 in Python Signed-off-by: Tsotne Tabidze <[email protected]> * Fix unit tests Signed-off-by: Tsotne Tabidze <[email protected]> * Fix java compilation & python integration tests Signed-off-by: Tsotne Tabidze <[email protected]> * Fix integration tests Signed-off-by: Tsotne Tabidze <[email protected]>
1 parent 2a95629 commit 1b98ec9

File tree

27 files changed

+361
-522
lines changed

27 files changed

+361
-522
lines changed

go.mod

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ require (
2525
go.opencensus.io v0.22.3 // indirect
2626
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect
2727
golang.org/x/lint v0.0.0-20210508222113-6edffad5e616 // indirect
28-
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d
29-
golang.org/x/tools v0.1.7 // indirect
28+
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f
29+
golang.org/x/tools v0.1.8 // indirect
3030
google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013 // indirect
3131
google.golang.org/grpc v1.29.1
3232
google.golang.org/protobuf v1.27.1 // indirect

go.sum

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -345,6 +345,7 @@ github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
345345
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
346346
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
347347
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
348+
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
348349
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
349350
go.opencensus.io v0.21.0 h1:mU6zScU4U1YAFPHEHYk+3JC4SY7JxgkqS10ZOSyksNg=
350351
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
@@ -386,6 +387,7 @@ golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzB
386387
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
387388
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
388389
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
390+
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
389391
golang.org/x/net v0.0.0-20170114055629-f2499483f923/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
390392
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
391393
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d h1:g9qWBGx4puODJTMVyoPrpoxPFgVGd+z1DZwjfRu4d0I=
@@ -415,6 +417,7 @@ golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/
415417
golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA=
416418
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
417419
golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
420+
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
418421
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
419422
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
420423
golang.org/x/oauth2 v0.0.0-20190402181905-9f3314589c9a/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -454,6 +457,7 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w
454457
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
455458
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
456459
golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
460+
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
457461
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
458462
golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
459463
golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
@@ -464,6 +468,7 @@ golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs=
464468
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
465469
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
466470
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
471+
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
467472
golang.org/x/time v0.0.0-20161028155119-f51c12702a4d/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
468473
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
469474
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
@@ -525,6 +530,8 @@ golang.org/x/tools v0.0.0-20201124005743-911501bfb504 h1:jOKV2ysikH1GANB7t2Lotmh
525530
golang.org/x/tools v0.0.0-20201124005743-911501bfb504/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
526531
golang.org/x/tools v0.1.7 h1:6j8CgantCy3yc8JGBqkDLMKWqZ0RDU2g1HVgacojGWQ=
527532
golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
533+
golang.org/x/tools v0.1.8 h1:P1HhGGuLW4aAclzjtmJdf0mJOjVUZUzOTqkAkWL+l6w=
534+
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
528535
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
529536
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
530537
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=

java/common/src/test/java/feast/common/logging/entry/AuditLogEntryTest.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@
2121

2222
import com.google.gson.JsonObject;
2323
import com.google.gson.JsonParser;
24+
import com.google.protobuf.Timestamp;
2425
import feast.common.logging.entry.LogResource.ResourceType;
26+
import feast.proto.serving.ServingAPIProto;
2527
import feast.proto.serving.ServingAPIProto.FeatureReferenceV2;
2628
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesRequestV2;
2729
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesResponse;
28-
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesResponse.FieldValues;
2930
import feast.proto.types.ValueProto.Value;
3031
import io.grpc.Status;
3132
import java.util.Arrays;
@@ -50,15 +51,24 @@ public List<AuditLogEntry> getTestAuditLogs() {
5051

5152
GetOnlineFeaturesResponse responseSpec =
5253
GetOnlineFeaturesResponse.newBuilder()
53-
.addAllFieldValues(
54+
.setMetadata(
55+
ServingAPIProto.GetOnlineFeaturesResponseMetadata.newBuilder()
56+
.setFeatureNames(
57+
ServingAPIProto.FeatureList.newBuilder()
58+
.addAllVal(
59+
Arrays.asList(
60+
"featuretable_1:feature_1", "featuretable_1:feature2"))))
61+
.addAllResults(
5462
Arrays.asList(
55-
FieldValues.newBuilder()
56-
.putFields(
57-
"featuretable_1:feature_1", Value.newBuilder().setInt32Val(32).build())
63+
GetOnlineFeaturesResponse.FeatureVector.newBuilder()
64+
.addValues(Value.newBuilder().setInt32Val(32).build())
65+
.addStatuses(ServingAPIProto.FieldStatus.PRESENT)
66+
.addEventTimestamps(Timestamp.newBuilder().build())
5867
.build(),
59-
FieldValues.newBuilder()
60-
.putFields(
61-
"featuretable_1:feature2", Value.newBuilder().setInt32Val(64).build())
68+
GetOnlineFeaturesResponse.FeatureVector.newBuilder()
69+
.addValues(Value.newBuilder().setInt32Val(64).build())
70+
.addStatuses(ServingAPIProto.FieldStatus.PRESENT)
71+
.addEventTimestamps(Timestamp.newBuilder().build())
6272
.build()))
6373
.build();
6474

java/sdk/java/src/main/java/dev/feast/FeastClient.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import feast.proto.serving.ServingAPIProto.GetFeastServingInfoRequest;
2222
import feast.proto.serving.ServingAPIProto.GetFeastServingInfoResponse;
2323
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesRequest;
24-
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesResponseV2;
24+
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesResponse;
2525
import feast.proto.serving.ServingServiceGrpc;
2626
import feast.proto.serving.ServingServiceGrpc.ServingServiceBlockingStub;
2727
import feast.proto.types.ValueProto;
@@ -129,7 +129,7 @@ public List<Row> getOnlineFeatures(List<String> featureRefs, List<Row> entities)
129129

130130
requestBuilder.putAllEntities(getEntityValuesMap(entities));
131131

132-
GetOnlineFeaturesResponseV2 response = stub.getOnlineFeatures(requestBuilder.build());
132+
GetOnlineFeaturesResponse response = stub.getOnlineFeatures(requestBuilder.build());
133133

134134
List<Row> results = Lists.newArrayList();
135135
if (response.getResultsCount() == 0) {

java/sdk/java/src/test/java/dev/feast/FeastClientTest.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import feast.proto.serving.ServingAPIProto;
2525
import feast.proto.serving.ServingAPIProto.FieldStatus;
2626
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesRequest;
27-
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesResponseV2;
27+
import feast.proto.serving.ServingAPIProto.GetOnlineFeaturesResponse;
2828
import feast.proto.serving.ServingServiceGrpc.ServingServiceImplBase;
2929
import feast.proto.types.ValueProto;
3030
import feast.proto.types.ValueProto.Value;
@@ -57,7 +57,7 @@ public class FeastClientTest {
5757
@Override
5858
public void getOnlineFeatures(
5959
GetOnlineFeaturesRequest request,
60-
StreamObserver<GetOnlineFeaturesResponseV2> responseObserver) {
60+
StreamObserver<GetOnlineFeaturesResponse> responseObserver) {
6161
if (!request.equals(FeastClientTest.getFakeRequest())) {
6262
responseObserver.onError(Status.FAILED_PRECONDITION.asRuntimeException());
6363
}
@@ -137,22 +137,22 @@ private static GetOnlineFeaturesRequest getFakeRequest() {
137137
.build();
138138
}
139139

140-
private static GetOnlineFeaturesResponseV2 getFakeResponse() {
141-
return GetOnlineFeaturesResponseV2.newBuilder()
140+
private static GetOnlineFeaturesResponse getFakeResponse() {
141+
return GetOnlineFeaturesResponse.newBuilder()
142142
.addResults(
143-
GetOnlineFeaturesResponseV2.FeatureVector.newBuilder()
143+
GetOnlineFeaturesResponse.FeatureVector.newBuilder()
144144
.addValues(strValue("david"))
145145
.addStatuses(FieldStatus.PRESENT)
146146
.addEventTimestamps(Timestamp.newBuilder())
147147
.build())
148148
.addResults(
149-
GetOnlineFeaturesResponseV2.FeatureVector.newBuilder()
149+
GetOnlineFeaturesResponse.FeatureVector.newBuilder()
150150
.addValues(intValue(3))
151151
.addStatuses(FieldStatus.PRESENT)
152152
.addEventTimestamps(Timestamp.newBuilder())
153153
.build())
154154
.addResults(
155-
GetOnlineFeaturesResponseV2.FeatureVector.newBuilder()
155+
GetOnlineFeaturesResponse.FeatureVector.newBuilder()
156156
.addValues(Value.newBuilder().build())
157157
.addStatuses(FieldStatus.NULL_VALUE)
158158
.addEventTimestamps(Timestamp.newBuilder())

java/serving/src/main/java/feast/serving/controller/ServingServiceGRpcController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ public void getFeastServingInfo(
6060
@Override
6161
public void getOnlineFeatures(
6262
ServingAPIProto.GetOnlineFeaturesRequest request,
63-
StreamObserver<ServingAPIProto.GetOnlineFeaturesResponseV2> responseObserver) {
63+
StreamObserver<ServingAPIProto.GetOnlineFeaturesResponse> responseObserver) {
6464
try {
6565
// authorize for the project in request object.
6666
RequestHelper.validateOnlineRequest(request);
6767
Span span = tracer.buildSpan("getOnlineFeaturesV2").start();
68-
ServingAPIProto.GetOnlineFeaturesResponseV2 onlineFeatures =
68+
ServingAPIProto.GetOnlineFeaturesResponse onlineFeatures =
6969
servingServiceV2.getOnlineFeatures(request);
7070
if (span != null) {
7171
span.finish();

java/serving/src/main/java/feast/serving/controller/ServingServiceRestController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public GetFeastServingInfoResponse getInfo() {
5454
public List<Map<String, Object>> getOnlineFeatures(
5555
@RequestBody ServingAPIProto.GetOnlineFeaturesRequest request) {
5656
RequestHelper.validateOnlineRequest(request);
57-
ServingAPIProto.GetOnlineFeaturesResponseV2 onlineFeatures =
57+
ServingAPIProto.GetOnlineFeaturesResponse onlineFeatures =
5858
servingService.getOnlineFeatures(request);
5959
return mapGetOnlineFeaturesResponse(onlineFeatures);
6060
}

java/serving/src/main/java/feast/serving/grpc/OnlineServingGrpcServiceV2.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void getFeastServingInfo(
4141
@Override
4242
public void getOnlineFeatures(
4343
ServingAPIProto.GetOnlineFeaturesRequest request,
44-
StreamObserver<ServingAPIProto.GetOnlineFeaturesResponseV2> responseObserver) {
44+
StreamObserver<ServingAPIProto.GetOnlineFeaturesResponse> responseObserver) {
4545
responseObserver.onNext(this.servingServiceV2.getOnlineFeatures(request));
4646
responseObserver.onCompleted();
4747
}

java/serving/src/main/java/feast/serving/service/OnlineServingServiceV2.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public GetFeastServingInfoResponse getFeastServingInfo(
7272
}
7373

7474
@Override
75-
public ServingAPIProto.GetOnlineFeaturesResponseV2 getOnlineFeatures(
75+
public ServingAPIProto.GetOnlineFeaturesResponse getOnlineFeatures(
7676
ServingAPIProto.GetOnlineFeaturesRequest request) {
7777
// Split all feature references into non-ODFV (e.g. batch and stream) references and ODFV.
7878
List<FeatureReferenceV2> allFeatureReferences = getFeaturesList(request);
@@ -132,8 +132,8 @@ public ServingAPIProto.GetOnlineFeaturesResponseV2 getOnlineFeatures(
132132

133133
Span postProcessingSpan = tracer.buildSpan("postProcessing").start();
134134

135-
ServingAPIProto.GetOnlineFeaturesResponseV2.Builder responseBuilder =
136-
ServingAPIProto.GetOnlineFeaturesResponseV2.newBuilder();
135+
ServingAPIProto.GetOnlineFeaturesResponse.Builder responseBuilder =
136+
ServingAPIProto.GetOnlineFeaturesResponse.newBuilder();
137137

138138
Timestamp now = Timestamp.newBuilder().setSeconds(System.currentTimeMillis() / 1000).build();
139139
Timestamp nullTimestamp = Timestamp.newBuilder().build();
@@ -147,7 +147,7 @@ public ServingAPIProto.GetOnlineFeaturesResponseV2 getOnlineFeatures(
147147

148148
Duration maxAge = this.registryRepository.getMaxAge(featureReference);
149149

150-
ServingAPIProto.GetOnlineFeaturesResponseV2.FeatureVector.Builder vectorBuilder =
150+
ServingAPIProto.GetOnlineFeaturesResponse.FeatureVector.Builder vectorBuilder =
151151
responseBuilder.addResultsBuilder();
152152

153153
for (int rowIdx = 0; rowIdx < features.size(); rowIdx++) {
@@ -262,7 +262,7 @@ private void populateOnDemandFeatures(
262262
List<FeatureReferenceV2> retrievedFeatureReferences,
263263
ServingAPIProto.GetOnlineFeaturesRequest request,
264264
List<List<feast.storage.api.retriever.Feature>> features,
265-
ServingAPIProto.GetOnlineFeaturesResponseV2.Builder responseBuilder) {
265+
ServingAPIProto.GetOnlineFeaturesResponse.Builder responseBuilder) {
266266

267267
List<Pair<String, List<ValueProto.Value>>> onDemandContext =
268268
request.getRequestContextMap().entrySet().stream()
@@ -383,7 +383,7 @@ private void populateHistogramMetrics(
383383
*/
384384
private void populateCountMetrics(
385385
FeatureReferenceV2 featureRef,
386-
ServingAPIProto.GetOnlineFeaturesResponseV2.FeatureVectorOrBuilder featureVector) {
386+
ServingAPIProto.GetOnlineFeaturesResponse.FeatureVectorOrBuilder featureVector) {
387387
String featureRefString = Feature.getFeatureReference(featureRef);
388388
featureVector
389389
.getStatusesList()

java/serving/src/main/java/feast/serving/service/OnlineTransformationService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ public void processTransformFeaturesResponse(
189189
transformFeaturesResponse,
190190
String onDemandFeatureViewName,
191191
Set<String> onDemandFeatureStringReferences,
192-
ServingAPIProto.GetOnlineFeaturesResponseV2.Builder responseBuilder) {
192+
ServingAPIProto.GetOnlineFeaturesResponse.Builder responseBuilder) {
193193
try {
194194
BufferAllocator allocator = new RootAllocator(Long.MAX_VALUE);
195195
ArrowFileReader reader =
@@ -219,7 +219,7 @@ public void processTransformFeaturesResponse(
219219

220220
FieldVector fieldVector = readBatch.getVector(field);
221221
int valueCount = fieldVector.getValueCount();
222-
ServingAPIProto.GetOnlineFeaturesResponseV2.FeatureVector.Builder vectorBuilder =
222+
ServingAPIProto.GetOnlineFeaturesResponse.FeatureVector.Builder vectorBuilder =
223223
responseBuilder.addResultsBuilder();
224224
List<ValueProto.Value> valueList = Lists.newArrayListWithExpectedSize(valueCount);
225225

0 commit comments

Comments
 (0)