Skip to content

Commit

Permalink
Rename SelectionContext to SelectionCriteria
Browse files Browse the repository at this point in the history
This name better describes the actual utility of the class, and opens
up the name SelectionContext for use.
  • Loading branch information
raghavsethi committed Mar 14, 2018
1 parent 6c65d6c commit 84610e9
Show file tree
Hide file tree
Showing 17 changed files with 92 additions and 92 deletions.
Expand Up @@ -19,11 +19,11 @@
import com.facebook.presto.server.ResourceGroupInfo;
import com.facebook.presto.spi.PrestoException;
import com.facebook.presto.spi.memory.ClusterMemoryPoolManager;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.facebook.presto.spi.resourceGroups.ResourceGroupConfigurationManager;
import com.facebook.presto.spi.resourceGroups.ResourceGroupConfigurationManagerContext;
import com.facebook.presto.spi.resourceGroups.ResourceGroupConfigurationManagerFactory;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.sql.tree.Statement;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableMap;
Expand Down Expand Up @@ -213,7 +213,7 @@ else if (elapsedSeconds < 0) {
private synchronized void createGroupIfNecessary(ResourceGroupId id, QueryExecution queryExecution, Executor executor)
{
Session session = queryExecution.getSession();
SelectionContext context = new SelectionContext(
SelectionCriteria context = new SelectionCriteria(
session.getIdentity().getPrincipal().isPresent(),
session.getUser(),
session.getSource(),
Expand Down Expand Up @@ -257,7 +257,7 @@ private void exportGroup(InternalResourceGroup group, Boolean export)
private ResourceGroupId selectGroup(QueryExecution queryExecution)
{
Session session = queryExecution.getSession();
SelectionContext context = new SelectionContext(
SelectionCriteria context = new SelectionCriteria(
session.getIdentity().getPrincipal().isPresent(),
session.getUser(),
session.getSource(),
Expand Down
Expand Up @@ -19,7 +19,7 @@
import com.facebook.presto.spi.resourceGroups.ResourceGroupConfigurationManagerContext;
import com.facebook.presto.spi.resourceGroups.ResourceGroupConfigurationManagerFactory;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;

import javax.inject.Inject;

Expand Down Expand Up @@ -60,15 +60,15 @@ public class LegacyResourceGroupConfigurationManager
implements ResourceGroupConfigurationManager
{
@Override
public void configure(ResourceGroup group, SelectionContext context)
public void configure(ResourceGroup group, SelectionCriteria criteria)
{
checkArgument(group.getId().equals(GLOBAL), "Unexpected resource group: %s", group.getId());
group.setMaxQueuedQueries(maxQueued);
group.setHardConcurrencyLimit(hardConcurrencyLimit);
}

@Override
public Optional<ResourceGroupId> match(SelectionContext context)
public Optional<ResourceGroupId> match(SelectionCriteria criteria)
{
return Optional.of(GLOBAL);
}
Expand Down
Expand Up @@ -18,7 +18,7 @@
import com.facebook.presto.spi.resourceGroups.QueryType;
import com.facebook.presto.spi.resourceGroups.ResourceGroup;
import com.facebook.presto.spi.resourceGroups.ResourceGroupConfigurationManager;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.google.common.collect.ImmutableList;
import io.airlift.units.DataSize;
import io.airlift.units.Duration;
Expand Down Expand Up @@ -147,7 +147,7 @@ protected AbstractResourceConfigurationManager(ClusterMemoryPoolManager memoryPo
});
}

protected Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> getMatchingSpec(ResourceGroup group, SelectionContext context)
protected Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> getMatchingSpec(ResourceGroup group, SelectionCriteria context)
{
List<ResourceGroupSpec> candidates = getRootGroups();
List<String> segments = group.getId().getSegments();
Expand Down
Expand Up @@ -14,9 +14,9 @@
package com.facebook.presto.resourceGroups;

import com.facebook.presto.spi.memory.ClusterMemoryPoolManager;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.facebook.presto.spi.resourceGroups.ResourceGroup;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException;
import com.google.common.annotations.VisibleForTesting;
Expand Down Expand Up @@ -102,17 +102,17 @@ protected List<ResourceGroupSpec> getRootGroups()
}

@Override
public void configure(ResourceGroup group, SelectionContext context)
public void configure(ResourceGroup group, SelectionCriteria criteria)
{
Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> entry = getMatchingSpec(group, context);
Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> entry = getMatchingSpec(group, criteria);
configureGroup(group, entry.getValue());
}

@Override
public Optional<ResourceGroupId> match(SelectionContext context)
public Optional<ResourceGroupId> match(SelectionCriteria criteria)
{
return selectors.stream()
.map(s -> s.match(context))
.map(s -> s.match(criteria))
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
Expand Down
Expand Up @@ -14,7 +14,7 @@
package com.facebook.presto.resourceGroups;

import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.google.common.base.Joiner;
import com.google.common.base.Splitter;
Expand Down Expand Up @@ -52,7 +52,7 @@ public static ResourceGroupIdTemplate fromSegments(List<ResourceGroupNameTemplat
return new ResourceGroupIdTemplate(String.join(".", segments.stream().map(ResourceGroupNameTemplate::toString).collect(Collectors.toList())));
}

public ResourceGroupId expandTemplate(SelectionContext context)
public ResourceGroupId expandTemplate(SelectionCriteria context)
{
ResourceGroupId id = null;
for (ResourceGroupNameTemplate segment : segments) {
Expand Down
Expand Up @@ -13,7 +13,7 @@
*/
package com.facebook.presto.resourceGroups;

import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.fasterxml.jackson.annotation.JsonCreator;

import java.util.Objects;
Expand Down Expand Up @@ -44,7 +44,7 @@ public ResourceGroupNameTemplate(String name)
}
}

public String expandTemplate(SelectionContext context)
public String expandTemplate(SelectionCriteria context)
{
String expanded = USER_PATTERN.matcher(name).replaceAll(context.getUser());
return SOURCE_PATTERN.matcher(expanded).replaceAll(context.getSource().orElse(""));
Expand Down
Expand Up @@ -14,11 +14,11 @@
package com.facebook.presto.resourceGroups;

import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;

import java.util.Optional;

public interface ResourceGroupSelector
{
Optional<ResourceGroupId> match(SelectionContext context);
Optional<ResourceGroupId> match(SelectionCriteria criteria);
}
Expand Up @@ -14,7 +14,7 @@
package com.facebook.presto.resourceGroups;

import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
Expand Down Expand Up @@ -45,29 +45,29 @@ public StaticSelector(Optional<Pattern> userRegex, Optional<Pattern> sourceRegex
this.group = requireNonNull(group, "group is null");
}

public Optional<ResourceGroupId> match(SelectionContext context)
public Optional<ResourceGroupId> match(SelectionCriteria criteria)
{
if (userRegex.isPresent() && !userRegex.get().matcher(context.getUser()).matches()) {
if (userRegex.isPresent() && !userRegex.get().matcher(criteria.getUser()).matches()) {
return Optional.empty();
}
if (sourceRegex.isPresent()) {
String source = context.getSource().orElse("");
String source = criteria.getSource().orElse("");
if (!sourceRegex.get().matcher(source).matches()) {
return Optional.empty();
}
}
if (!clientTags.isEmpty() && !context.getTags().containsAll(clientTags)) {
if (!clientTags.isEmpty() && !criteria.getTags().containsAll(clientTags)) {
return Optional.empty();
}

if (queryType.isPresent()) {
String contextQueryType = context.getQueryType().orElse("");
String contextQueryType = criteria.getQueryType().orElse("");
if (!queryType.get().equalsIgnoreCase(contextQueryType)) {
return Optional.empty();
}
}

return Optional.of(group.expandTemplate(context));
return Optional.of(group.expandTemplate(criteria));
}

@VisibleForTesting
Expand Down
Expand Up @@ -21,9 +21,9 @@
import com.facebook.presto.resourceGroups.SelectorSpec;
import com.facebook.presto.spi.PrestoException;
import com.facebook.presto.spi.memory.ClusterMemoryPoolManager;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import com.facebook.presto.spi.resourceGroups.ResourceGroup;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
Expand Down Expand Up @@ -139,9 +139,9 @@ public void start()
}

@Override
public void configure(ResourceGroup group, SelectionContext context)
public void configure(ResourceGroup group, SelectionCriteria criteria)
{
Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> entry = getMatchingSpec(group, context);
Map.Entry<ResourceGroupIdTemplate, ResourceGroupSpec> entry = getMatchingSpec(group, criteria);
if (groups.putIfAbsent(group.getId(), group) == null) {
// If a new spec replaces the spec returned from getMatchingSpec the group will be reconfigured on the next run of load().
configuredGroups.computeIfAbsent(entry.getKey(), v -> new LinkedList<>()).add(group.getId());
Expand All @@ -152,7 +152,7 @@ public void configure(ResourceGroup group, SelectionContext context)
}

@Override
public Optional<ResourceGroupId> match(SelectionContext context)
public Optional<ResourceGroupId> match(SelectionCriteria criteria)
{
if (lastRefresh.get() == 0) {
throw new PrestoException(CONFIGURATION_UNAVAILABLE, "Selectors cannot be fetched from database");
Expand All @@ -162,7 +162,7 @@ public Optional<ResourceGroupId> match(SelectionContext context)
}

return selectors.get().stream()
.map(s -> s.match(context))
.map(s -> s.match(criteria))
.filter(Optional::isPresent)
.map(Optional::get)
.findFirst();
Expand Down Expand Up @@ -314,13 +314,13 @@ private synchronized Map.Entry<ManagerSpec, Map<ResourceGroupIdTemplate, Resourc
List<SelectorSpec> selectors = dao.getSelectors(environment)
.stream()
.map(selectorRecord ->
new SelectorSpec(
selectorRecord.getUserRegex(),
selectorRecord.getSourceRegex(),
selectorRecord.getQueryType(),
selectorRecord.getClientTags(),
resourceGroupIdTemplateMap.get(selectorRecord.getResourceGroupId()))
).collect(Collectors.toList());
new SelectorSpec(
selectorRecord.getUserRegex(),
selectorRecord.getSourceRegex(),
selectorRecord.getQueryType(),
selectorRecord.getClientTags(),
resourceGroupIdTemplateMap.get(selectorRecord.getResourceGroupId()))
).collect(Collectors.toList());
ManagerSpec managerSpec = new ManagerSpec(rootGroups, selectors, getCpuQuotaPeriodFromDb());
validateRootGroups(managerSpec);
return new AbstractMap.SimpleImmutableEntry<>(managerSpec, resourceGroupSpecs);
Expand Down
Expand Up @@ -15,7 +15,7 @@

import com.facebook.presto.resourceGroups.ResourceGroupSelector;
import com.facebook.presto.spi.resourceGroups.ResourceGroupId;
import com.facebook.presto.spi.resourceGroups.SelectionContext;
import com.facebook.presto.spi.resourceGroups.SelectionCriteria;
import io.airlift.json.JsonCodec;
import io.airlift.log.Logger;
import org.jdbi.v3.core.JdbiException;
Expand All @@ -42,13 +42,13 @@ public DbSourceExactMatchSelector(String environment, ResourceGroupsDao dao)
}

@Override
public Optional<ResourceGroupId> match(SelectionContext context)
public Optional<ResourceGroupId> match(SelectionCriteria criteria)
{
if (!context.getSource().isPresent()) {
if (!criteria.getSource().isPresent()) {
return Optional.empty();
}
try {
String resourceGroupId = dao.getExactMatchResourceGroup(environment, context.getSource().get(), context.getQueryType().orElse(""));
String resourceGroupId = dao.getExactMatchResourceGroup(environment, criteria.getSource().get(), criteria.getQueryType().orElse(""));

Long start = daoOfflineStart.get();
if (start != null && daoOfflineStart.compareAndSet(start, null)) {
Expand Down

0 comments on commit 84610e9

Please sign in to comment.