3131import feast .serving .ServingAPIProto .GetFeaturesRequest ;
3232import feast .serving .ServingAPIProto .GetFeaturesRequest .EntityRow ;
3333import feast .serving .ServingAPIProto .GetFeaturesRequest .FeatureSet ;
34+ import feast .serving .ServingAPIProto .GetJobRequest ;
35+ import feast .serving .ServingAPIProto .GetJobResponse ;
3436import feast .serving .ServingAPIProto .GetOnlineFeaturesResponse ;
3537import feast .serving .ServingAPIProto .GetOnlineFeaturesResponse .FieldValues ;
36- import feast .serving .ServingAPIProto .ReloadJobRequest ;
37- import feast .serving .ServingAPIProto .ReloadJobResponse ;
3838import feast .storage .RedisProto .RedisKey ;
3939import feast .types .FeatureRowProto .FeatureRow ;
4040import feast .types .FieldProto .Field ;
@@ -62,9 +62,7 @@ public RedisServingService(JedisPool jedisPool, SpecService specService, Tracer
6262 this .tracer = tracer ;
6363 }
6464
65- /**
66- * {@inheritDoc}
67- */
65+ /** {@inheritDoc} */
6866 @ Override
6967 public GetFeastServingTypeResponse getFeastServingType (
7068 GetFeastServingTypeRequest getFeastServingTypeRequest ) {
@@ -73,14 +71,12 @@ public GetFeastServingTypeResponse getFeastServingType(
7371 .build ();
7472 }
7573
76- /**
77- * {@inheritDoc}
78- */
74+ /** {@inheritDoc} */
7975 @ Override
8076 public GetOnlineFeaturesResponse getOnlineFeatures (GetFeaturesRequest request ) {
8177 try (Scope scope = tracer .buildSpan ("Redis-getOnlineFeatures" ).startActive (true )) {
82- GetOnlineFeaturesResponse .Builder getOnlineFeaturesResponseBuilder = GetOnlineFeaturesResponse
83- .newBuilder ();
78+ GetOnlineFeaturesResponse .Builder getOnlineFeaturesResponseBuilder =
79+ GetOnlineFeaturesResponse .newBuilder ();
8480
8581 List <EntityRow > entityRows = request .getEntityRowsList ();
8682 Map <EntityRow , Map <String , Value >> featureValuesMap =
@@ -112,8 +108,8 @@ public GetOnlineFeaturesResponse getOnlineFeatures(GetFeaturesRequest request) {
112108 featureSetRequest = featureSetRequest .toBuilder ().setMaxAge (defaultMaxAge ).build ();
113109 }
114110
115- List <RedisKey > redisKeys = getRedisKeys ( featureSetEntityNames , entityRows ,
116- featureSetRequest );
111+ List <RedisKey > redisKeys =
112+ getRedisKeys ( featureSetEntityNames , entityRows , featureSetRequest );
117113
118114 try {
119115 sendAndProcessMultiGet (redisKeys , entityRows , featureValuesMap , featureSetRequest );
@@ -124,9 +120,10 @@ public GetOnlineFeaturesResponse getOnlineFeatures(GetFeaturesRequest request) {
124120 .asRuntimeException ();
125121 }
126122 }
127- List <FieldValues > fieldValues = featureValuesMap .values ().stream ()
128- .map (m -> FieldValues .newBuilder ().putAllFields (m ).build ())
129- .collect (Collectors .toList ());
123+ List <FieldValues > fieldValues =
124+ featureValuesMap .values ().stream ()
125+ .map (m -> FieldValues .newBuilder ().putAllFields (m ).build ())
126+ .collect (Collectors .toList ());
130127 return getOnlineFeaturesResponseBuilder .addAllFieldValues (fieldValues ).build ();
131128 }
132129 }
@@ -136,9 +133,8 @@ public GetBatchFeaturesResponse getBatchFeatures(GetFeaturesRequest getFeaturesR
136133 throw Status .UNIMPLEMENTED .withDescription ("Method not implemented" ).asRuntimeException ();
137134 }
138135
139-
140136 @ Override
141- public ReloadJobResponse reloadJob ( ReloadJobRequest reloadJobRequest ) {
137+ public GetJobResponse getJob ( GetJobRequest getJobRequest ) {
142138 throw Status .UNIMPLEMENTED .withDescription ("Method not implemented" ).asRuntimeException ();
143139 }
144140
@@ -158,8 +154,7 @@ private List<RedisKey> getRedisKeys(
158154 String featureSetId =
159155 String .format ("%s:%s" , featureSetRequest .getName (), featureSetRequest .getVersion ());
160156 List <RedisKey > redisKeys =
161- entityRows
162- .stream ()
157+ entityRows .stream ()
163158 .map (row -> makeRedisKey (featureSetId , featureSetEntityNames , row ))
164159 .collect (Collectors .toList ());
165160 return redisKeys ;
@@ -175,16 +170,13 @@ private List<RedisKey> getRedisKeys(
175170 * @return {@link RedisKey}
176171 */
177172 private RedisKey makeRedisKey (
178- String featureSet ,
179- List <String > featureSetEntityNames ,
180- EntityRow entityRow ) {
173+ String featureSet , List <String > featureSetEntityNames , EntityRow entityRow ) {
181174 RedisKey .Builder builder = RedisKey .newBuilder ().setFeatureSet (featureSet );
182175 Map <String , Value > fieldsMap = entityRow .getFieldsMap ();
183176 for (int i = 0 ; i < featureSetEntityNames .size (); i ++) {
184177 String entityName = featureSetEntityNames .get (i );
185- builder .addEntities (Field .newBuilder ()
186- .setName (entityName )
187- .setValue (fieldsMap .get (entityName )));
178+ builder .addEntities (
179+ Field .newBuilder ().setName (entityName ).setValue (fieldsMap .get (entityName )));
188180 }
189181 return builder .build ();
190182 }
@@ -199,11 +191,13 @@ private void sendAndProcessMultiGet(
199191 List <byte []> jedisResps = sendMultiGet (redisKeys );
200192
201193 try (Scope scope = tracer .buildSpan ("Redis-processResponse" ).startActive (true )) {
202- String featureSetId = String
203- .format ("%s:%d" , featureSetRequest .getName (), featureSetRequest .getVersion ());
204- Map <String , Value > nullValues = featureSetRequest .getFeatureNamesList ().stream ()
205- .collect (Collectors
206- .toMap (name -> featureSetId + ":" + name , name -> Value .newBuilder ().build ()));
194+ String featureSetId =
195+ String .format ("%s:%d" , featureSetRequest .getName (), featureSetRequest .getVersion ());
196+ Map <String , Value > nullValues =
197+ featureSetRequest .getFeatureNamesList ().stream ()
198+ .collect (
199+ Collectors .toMap (
200+ name -> featureSetId + ":" + name , name -> Value .newBuilder ().build ()));
207201 for (int i = 0 ; i < jedisResps .size (); i ++) {
208202 EntityRow entityRow = entityRows .get (i );
209203 Map <String , Value > featureValues = featureValuesMap .get (entityRow );
@@ -225,18 +219,16 @@ private void sendAndProcessMultiGet(
225219 }
226220 }
227221
228- private boolean isStale (FeatureSet featureSetRequest , EntityRow entityRow ,
229- FeatureRow featureRow ) {
222+ private boolean isStale (
223+ FeatureSet featureSetRequest , EntityRow entityRow , FeatureRow featureRow ) {
230224 if (featureSetRequest .getMaxAge () == Duration .getDefaultInstance ()) {
231225 return false ;
232226 }
233227 long givenTimestamp = entityRow .getEntityTimestamp ().getSeconds ();
234228 if (givenTimestamp == 0 ) {
235229 givenTimestamp = System .currentTimeMillis ();
236230 }
237- long timeDifference =
238- givenTimestamp - featureRow .getEventTimestamp ()
239- .getSeconds ();
231+ long timeDifference = givenTimestamp - featureRow .getEventTimestamp ().getSeconds ();
240232 return timeDifference > featureSetRequest .getMaxAge ().getSeconds ();
241233 }
242234
0 commit comments