Skip to content

Commit 9f2ca66

Browse files
Optimize Optional usage and improve code consistency in gateway-ha module
1 parent 488e950 commit 9f2ca66

File tree

5 files changed

+31
-41
lines changed

5 files changed

+31
-41
lines changed

gateway-ha/src/main/java/io/trino/gateway/ha/handler/RoutingTargetHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public RoutingTargetResponse resolveRouting(HttpServletRequest request)
8484
return new RoutingTargetResponse(
8585
new RoutingDestination(routingGroup, cluster, buildUriWithNewCluster(cluster, request)),
8686
request);
87-
}).orElse(getRoutingTargetResponse(request));
87+
}).orElseGet(() -> getRoutingTargetResponse(request));
8888
logRewrite(routingTargetResponse.routingDestination().clusterHost(), request);
8989
return routingTargetResponse;
9090
}

gateway-ha/src/main/java/io/trino/gateway/ha/router/HaResourceGroupsManager.java

Lines changed: 24 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import io.trino.gateway.ha.persistence.dao.SelectorsDao;
2626
import jakarta.annotation.Nullable;
2727

28-
import java.util.ArrayList;
2928
import java.util.List;
29+
import java.util.Optional;
3030

3131
import static com.google.common.collect.ImmutableList.toImmutableList;
3232

@@ -90,13 +90,10 @@ public ResourceGroupsDetail updateResourceGroup(ResourceGroupsDetail resourceGro
9090
@Nullable String routingGroupDatabase)
9191
{
9292
ResourceGroupsDao dao = getResourceGroupsDao(routingGroupDatabase);
93-
ResourceGroups model = dao.findFirstById(resourceGroup.getResourceGroupId());
94-
if (model == null) {
95-
dao.create(resourceGroup);
96-
}
97-
else {
98-
dao.update(resourceGroup);
99-
}
93+
Optional.ofNullable(dao.findFirstById(resourceGroup.getResourceGroupId()))
94+
.ifPresentOrElse(
95+
_ -> dao.update(resourceGroup),
96+
() -> dao.create(resourceGroup));
10097
return resourceGroup;
10198
}
10299

@@ -153,13 +150,10 @@ public SelectorsDetail updateSelector(SelectorsDetail selector, SelectorsDetail
153150
@Nullable String routingGroupDatabase)
154151
{
155152
SelectorsDao dao = getSelectorsDao(routingGroupDatabase);
156-
Selectors model = dao.findFirst(selector);
157-
if (model == null) {
158-
dao.insert(updatedSelector);
159-
}
160-
else {
161-
dao.update(selector, updatedSelector);
162-
}
153+
Optional.ofNullable(dao.findFirst(selector))
154+
.ifPresentOrElse(
155+
_ -> dao.update(selector, updatedSelector),
156+
() -> dao.insert(updatedSelector));
163157
return updatedSelector;
164158
}
165159

@@ -213,14 +207,10 @@ public GlobalPropertiesDetail updateGlobalProperty(GlobalPropertiesDetail global
213207
@Nullable String routingGroupDatabase)
214208
{
215209
ResourceGroupsGlobalPropertiesDao dao = getDao(routingGroupDatabase);
216-
ResourceGroupsGlobalProperties model = dao.findFirstByName(globalProperty.getName());
217-
218-
if (model == null) {
219-
dao.insert(globalProperty.getName(), globalProperty.getValue());
220-
}
221-
else {
222-
dao.update(globalProperty.getName(), globalProperty.getValue());
223-
}
210+
Optional.ofNullable(dao.findFirstByName(globalProperty.getName()))
211+
.ifPresentOrElse(
212+
_ -> dao.update(globalProperty.getName(), globalProperty.getValue()),
213+
() -> dao.insert(globalProperty.getName(), globalProperty.getValue()));
224214
return globalProperty;
225215
}
226216

@@ -263,8 +253,9 @@ public List<ExactSelectorsDetail> readExactMatchSourceSelector()
263253
public ExactSelectorsDetail getExactMatchSourceSelector(
264254
ExactSelectorsDetail exactSelectorDetail)
265255
{
266-
ExactMatchSourceSelectors exactSelector = exactMatchSourceSelectorsDao.findFirst(exactSelectorDetail);
267-
return upcastExactSelectors(exactSelector);
256+
return Optional.ofNullable(exactMatchSourceSelectorsDao.findFirst(exactSelectorDetail))
257+
.map(HaResourceGroupsManager::upcastExactSelectors)
258+
.orElse(null);
268259
}
269260

270261
private SelectorsDao getSelectorsDao(@Nullable String routingGroupDatabase)
@@ -284,15 +275,14 @@ private ResourceGroupsGlobalPropertiesDao getDao(@Nullable String routingGroupDa
284275

285276
private static List<GlobalPropertiesDetail> upcast(List<ResourceGroupsGlobalProperties> globalPropertiesList)
286277
{
287-
List<GlobalPropertiesDetail> globalProperties = new ArrayList<>();
288-
for (ResourceGroupsGlobalProperties dao : globalPropertiesList) {
289-
GlobalPropertiesDetail globalPropertiesDetail = new GlobalPropertiesDetail();
290-
globalPropertiesDetail.setName(dao.name());
291-
globalPropertiesDetail.setValue(dao.value());
292-
293-
globalProperties.add(globalPropertiesDetail);
294-
}
295-
return globalProperties;
278+
return globalPropertiesList.stream()
279+
.map(dao -> {
280+
GlobalPropertiesDetail detail = new GlobalPropertiesDetail();
281+
detail.setName(dao.name());
282+
detail.setValue(dao.value());
283+
return detail;
284+
})
285+
.collect(toImmutableList());
296286
}
297287

298288
private static ExactSelectorsDetail upcastExactSelectors(ExactMatchSourceSelectors exactMatchSourceSelector)

gateway-ha/src/main/java/io/trino/gateway/ha/router/QueryCountBasedRouter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -206,9 +206,9 @@ private void updateLocalStats(LocalStats stats, String user)
206206
// so that they can be used for next queries to route
207207
// We assume that if a user has queued queries then newly arriving queries
208208
// for that user would also be queued
209-
int count = stats.userQueuedCount() == null ? 0 : stats.userQueuedCount().getOrDefault(user, 0);
210-
if (count > 0) {
211-
stats.userQueuedCount().put(user, count + 1);
209+
Map<String, Integer> queuedCounts = stats.userQueuedCount();
210+
if (queuedCounts != null && queuedCounts.getOrDefault(user, 0) > 0) {
211+
queuedCounts.merge(user, 1, Integer::sum);
212212
return;
213213
}
214214
// Else the we assume that the query would be running
@@ -233,7 +233,7 @@ public String provideAdhocCluster(String user)
233233
public String provideClusterForRoutingGroup(String routingGroup, String user)
234234
{
235235
return getBackendForRoutingGroup(routingGroup, user)
236-
.orElse(provideAdhocCluster(user));
236+
.orElseGet(() -> provideAdhocCluster(user));
237237
}
238238

239239
@Override

gateway-ha/src/main/java/io/trino/gateway/ha/security/LbFilter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void filter(final ContainerRequestContext requestContext)
6161
String idToken = Optional
6262
.ofNullable(requestContext.getCookies().get(SessionCookie.OAUTH_ID_TOKEN))
6363
.map(Cookie::getValue)
64-
.orElse(getToken(requestContext.getHeaders().getFirst(HttpHeaders.AUTHORIZATION)));
64+
.orElseGet(() -> getToken(requestContext.getHeaders().getFirst(HttpHeaders.AUTHORIZATION)));
6565

6666
LbPrincipal principal = idTokenAuthenticator.authenticate(idToken)
6767
.orElseThrow(() -> new AuthenticationException("Authentication error"));

gateway-ha/src/main/java/io/trino/gateway/ha/security/LbOAuthManager.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public Response exchangeCodeForToken(String code, String nonce, String redirectL
127127
return buildUnauthorizedResponse();
128128
}
129129
return Response.status(FOUND)
130-
.location(oauthConfig.getRedirectWebUrl().orElse(URI.create(redirectLocation)))
130+
.location(oauthConfig.getRedirectWebUrl().orElseGet(() -> URI.create(redirectLocation)))
131131
.cookie(SessionCookie.getTokenCookie(idToken))
132132
.cookie(OidcCookie.delete())
133133
.build();

0 commit comments

Comments
 (0)