diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-01-04 14:23:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-04 14:23:41 +0100 |
commit | 85e3166919ccff9b15fd1b14b834a6a39634fab4 (patch) | |
tree | 65831e9891eafdc6fe26ee267990bb1d90d928c7 /node-repository/src/main/java/com/yahoo | |
parent | 261a7682dfef5645431abdc6f458499368ab0f7a (diff) | |
parent | 219db0de471dd62629b45eb30f8f916711edd268 (diff) |
Merge pull request #25389 from vespa-engine/mpolden/improve-naming
Rename database classes
Diffstat (limited to 'node-repository/src/main/java/com/yahoo')
13 files changed, 59 insertions, 59 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java index c490c50c940..ae1ea6c4d71 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/NodeRepository.java @@ -24,7 +24,7 @@ import com.yahoo.vespa.hosted.provision.node.Agent; import com.yahoo.vespa.hosted.provision.node.NodeAcl; import com.yahoo.vespa.hosted.provision.node.Nodes; import com.yahoo.vespa.hosted.provision.os.OsVersions; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import com.yahoo.vespa.hosted.provision.persistence.DnsNameResolver; import com.yahoo.vespa.hosted.provision.persistence.JobControlFlags; import com.yahoo.vespa.hosted.provision.persistence.NameResolver; @@ -46,7 +46,7 @@ import java.util.Optional; */ public class NodeRepository extends AbstractComponent { - private final CuratorDatabaseClient db; + private final CuratorDb db; private final Clock clock; private final Zone zone; private final Nodes nodes; @@ -122,7 +122,7 @@ public class NodeRepository extends AbstractComponent { zone.cloud().dynamicProvisioning(), provisionServiceProvider.getHostProvisioner().map(__ -> "present").orElse("empty"))); this.flagSource = flagSource; - this.db = new CuratorDatabaseClient(flavors, curator, clock, useCuratorClientCache, nodeCacheSize); + this.db = new CuratorDb(flavors, curator, clock, useCuratorClientCache, nodeCacheSize); this.zone = zone; this.clock = clock; this.applications = new Applications(db); @@ -145,7 +145,7 @@ public class NodeRepository extends AbstractComponent { } /** Returns the curator database client used by this */ - public CuratorDatabaseClient database() { return db; } + public CuratorDb database() { return db; } /** Returns the nodes of the node repo. */ public Nodes nodes() { return nodes; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java index 2cf6d290dc8..9cfed5d046c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/applications/Applications.java @@ -6,7 +6,7 @@ import com.yahoo.config.provision.ApplicationLockException; import com.yahoo.config.provision.ApplicationTransaction; import com.yahoo.transaction.Mutex; import com.yahoo.transaction.NestedTransaction; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.time.Duration; import java.util.List; @@ -21,9 +21,9 @@ import java.util.Optional; */ public class Applications { - private final CuratorDatabaseClient db; + private final CuratorDb db; - public Applications(CuratorDatabaseClient db) { + public Applications(CuratorDb db) { this.db = db; // read and write all to make sure they are stored in the latest version of the serialized format for (ApplicationId id : ids()) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancers.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancers.java index 7cbb8ef2764..1d218e6c973 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancers.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/lb/LoadBalancers.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.provision.lb; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.util.function.Predicate; @@ -14,9 +14,9 @@ import java.util.function.Predicate; */ public class LoadBalancers { - private final CuratorDatabaseClient db; + private final CuratorDb db; - public LoadBalancers(CuratorDatabaseClient db) { + public LoadBalancers(CuratorDb db) { this.db = db; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureVersions.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureVersions.java index a1f36a4f1a5..19d6c79d680 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureVersions.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/InfrastructureVersions.java @@ -5,7 +5,7 @@ import com.yahoo.component.Version; import com.yahoo.component.Vtag; import com.yahoo.config.provision.NodeType; import com.yahoo.vespa.curator.Lock; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.util.Collections; import java.util.Map; @@ -23,14 +23,14 @@ public class InfrastructureVersions { private static final Logger logger = Logger.getLogger(InfrastructureVersions.class.getName()); - private final CuratorDatabaseClient db; + private final CuratorDb db; private final Version defaultVersion; - public InfrastructureVersions(CuratorDatabaseClient db) { + public InfrastructureVersions(CuratorDb db) { this(db, Vtag.currentVersion); } - InfrastructureVersions(CuratorDatabaseClient db, Version defaultVersion) { + InfrastructureVersions(CuratorDb db, Version defaultVersion) { this.db = db; this.defaultVersion = defaultVersion; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java index 0264d0df837..44c92434a0f 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/LoadBalancerExpirer.java @@ -11,7 +11,7 @@ import com.yahoo.vespa.hosted.provision.lb.LoadBalancer.State; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerId; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerService; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerSpec; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.time.Duration; import java.time.Instant; @@ -46,7 +46,7 @@ public class LoadBalancerExpirer extends NodeRepositoryMaintainer { private static final Duration inactiveExpiry = Duration.ofHours(1); private final LoadBalancerService service; - private final CuratorDatabaseClient db; + private final CuratorDb db; public LoadBalancerExpirer(NodeRepository nodeRepository, Duration interval, LoadBalancerService service, Metric metric) { super(nodeRepository, interval, metric); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java index 380bb752070..2590db9434b 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/node/Nodes.java @@ -20,7 +20,7 @@ import com.yahoo.vespa.hosted.provision.NodeMutex; import com.yahoo.vespa.hosted.provision.applications.Applications; import com.yahoo.vespa.hosted.provision.maintenance.NodeFailer; import com.yahoo.vespa.hosted.provision.node.filter.NodeFilter; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import com.yahoo.vespa.orchestrator.HostNameNotFoundException; import com.yahoo.vespa.orchestrator.Orchestrator; @@ -58,13 +58,13 @@ public class Nodes { private static final Logger log = Logger.getLogger(Nodes.class.getName()); - private final CuratorDatabaseClient db; + private final CuratorDb db; private final Zone zone; private final Clock clock; private final Orchestrator orchestrator; private final Applications applications; - public Nodes(CuratorDatabaseClient db, Zone zone, Clock clock, Orchestrator orchestrator, Applications applications) { + public Nodes(CuratorDb db, Zone zone, Clock clock, Orchestrator orchestrator, Applications applications) { this.zone = zone; this.clock = clock; this.db = db; diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java index 2939b940486..75ab91c4efc 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/OsVersions.java @@ -9,7 +9,7 @@ import com.yahoo.vespa.curator.Lock; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.NodeRepository; import com.yahoo.vespa.hosted.provision.node.Status; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.util.List; import java.util.Objects; @@ -33,7 +33,7 @@ public class OsVersions { private static final Logger log = Logger.getLogger(OsVersions.class.getName()); private final NodeRepository nodeRepository; - private final CuratorDatabaseClient db; + private final CuratorDb db; private final Cloud cloud; public OsVersions(NodeRepository nodeRepository) { diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CachingCurator.java index aa935eaf272..eb73fd51f4a 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabase.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CachingCurator.java @@ -18,18 +18,20 @@ import java.util.Optional; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.atomic.AtomicReference; import java.util.function.Supplier; -import java.util.stream.Collectors; /** - * This encapsulated the curator database of the node repo. + * A caching wrapper for {@link Curator}. + * * It serves reads from an in-memory cache of the content which is invalidated when changed on another node * using a global, shared counter. The counter is updated on all write operations, ensured by wrapping write - * operations in a try block, with the counter increment in a finally block. Locks must be used to ensure consistency. + * operations in a try block, with the counter increment in a finally block. + * + * Locks must be used to ensure consistency. * * @author bratseth * @author jonmv */ -public class CuratorDatabase { +public class CachingCurator { private final Curator curator; @@ -40,7 +42,7 @@ public class CuratorDatabase { private final AtomicReference<Cache> cache = new AtomicReference<>(); /** Whether we should return data from the cache or always read from ZooKeeper */ - private final boolean useCache; + private final boolean enabled; private final Object cacheCreationLock = new Object(); @@ -50,8 +52,8 @@ public class CuratorDatabase { * @param curator the curator instance * @param root the file system root of the db */ - public CuratorDatabase(Curator curator, Path root, boolean useCache) { - this.useCache = useCache; + public CachingCurator(Curator curator, Path root, boolean enabled) { + this.enabled = enabled; this.curator = curator; changeGenerationCounter = new CuratorCounter(curator, root.append("changeCounter")); cache.set(newCache(changeGenerationCounter.get())); @@ -60,10 +62,10 @@ public class CuratorDatabase { /** Returns all hosts configured to be part of this ZooKeeper cluster */ public List<HostName> cluster() { return Arrays.stream(curator.zooKeeperEnsembleConnectionSpec().split(",")) - .filter(hostAndPort -> !hostAndPort.isEmpty()) - .map(hostAndPort -> hostAndPort.split(":")[0]) - .map(HostName::of) - .toList(); + .filter(hostAndPort -> !hostAndPort.isEmpty()) + .map(hostAndPort -> hostAndPort.split(":")[0]) + .map(HostName::of) + .toList(); } /** Create a reentrant lock */ @@ -123,7 +125,7 @@ public class CuratorDatabase { /** Caches must only be instantiated using this method */ private Cache newCache(long generation) { - return useCache ? new Cache(generation, curator) : new NoCache(generation, curator); + return enabled ? new Cache(generation, curator) : new NoCache(generation, curator); } /** diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDb.java index ae8311995f5..4da788da7a3 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDatabaseClient.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/CuratorDb.java @@ -47,18 +47,19 @@ import java.util.stream.IntStream; import static com.yahoo.stream.CustomCollectors.toLinkedMap; import static java.util.stream.Collectors.collectingAndThen; -/** - * Client which reads and writes nodes to a curator database. - * Nodes are stored in files named <code>/provision/v1/[nodestate]/[hostname]</code>. +/**. + * A persistent database for the contents of the node repository, backed by {@link CachingCurator}. + * + * Nodes are stored in files named /provision/v1/[nodestate]/[hostname]. * * The responsibility of this class is to turn operations on the level of node states, applications and nodes * into operations on the level of file paths and bytes. * * @author bratseth */ -public class CuratorDatabaseClient { +public class CuratorDb { - private static final Logger log = Logger.getLogger(CuratorDatabaseClient.class.getName()); + private static final Logger log = Logger.getLogger(CuratorDb.class.getName()); private static final Path root = Path.fromString("/provision/v1"); private static final Path lockPath = root.append("locks"); @@ -74,13 +75,13 @@ public class CuratorDatabaseClient { private static final Duration defaultLockTimeout = Duration.ofMinutes(1); private final NodeSerializer nodeSerializer; - private final CuratorDatabase db; + private final CachingCurator db; private final Clock clock; private final CuratorCounter provisionIndexCounter; - public CuratorDatabaseClient(NodeFlavors flavors, Curator curator, Clock clock, boolean useCache, long nodeCacheSize) { + public CuratorDb(NodeFlavors flavors, Curator curator, Clock clock, boolean useCache, long nodeCacheSize) { this.nodeSerializer = new NodeSerializer(flavors, nodeCacheSize); - this.db = new CuratorDatabase(curator, root, useCache); + this.db = new CachingCurator(curator, root, useCache); this.clock = clock; this.provisionIndexCounter = new CuratorCounter(curator, root.append("provisionIndexCounter")); initZK(); @@ -268,7 +269,7 @@ public class CuratorDatabaseClient { List<Node> nodes = new ArrayList<>(); if (states.length == 0) states = Node.State.values(); - CuratorDatabase.Session session = db.getSession(); + CachingCurator.Session session = db.getSession(); for (Node.State state : states) { for (String hostname : session.getChildren(toPath(state))) { Optional<Node> node = readNode(session, hostname, state); @@ -282,7 +283,7 @@ public class CuratorDatabaseClient { * Returns a particular node, or empty if this node is not in any of the given states. * If no states are given this returns the node if it is present in any state. */ - public Optional<Node> readNode(CuratorDatabase.Session session, String hostname, Node.State ... states) { + public Optional<Node> readNode(CachingCurator.Session session, String hostname, Node.State ... states) { if (states.length == 0) states = Node.State.values(); for (Node.State state : states) { @@ -317,9 +318,9 @@ public class CuratorDatabaseClient { /** Creates and returns the path to the lock for this application */ private Path lockPath(ApplicationId application) { - Path lockPath = CuratorDatabaseClient.lockPath.append(application.tenant().value()) - .append(application.application().value()) - .append(application.instance().value()); + Path lockPath = CuratorDb.lockPath.append(application.tenant().value()) + .append(application.application().value()) + .append(application.instance().value()); db.create(lockPath); return lockPath; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/JobControlFlags.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/JobControlFlags.java index 13cc1ce5027..0632fc0818b 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/JobControlFlags.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/JobControlFlags.java @@ -16,10 +16,10 @@ import java.util.Set; */ public class JobControlFlags implements JobControlState { - private final CuratorDatabaseClient curator; + private final CuratorDb curator; private final ListFlag<String> inactiveJobsFlag; - public JobControlFlags(CuratorDatabaseClient curator, FlagSource flagSource) { + public JobControlFlags(CuratorDb curator, FlagSource flagSource) { this.curator = curator; this.inactiveJobsFlag = PermanentFlags.INACTIVE_MAINTENANCE_JOBS.bindTo(flagSource); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java index e057fabc4fc..7855ee7c42c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/ArchiveUris.java @@ -6,7 +6,7 @@ import com.yahoo.lang.CachedSupplier; import com.yahoo.vespa.curator.Lock; import com.yahoo.vespa.hosted.provision.Node; import com.yahoo.vespa.hosted.provision.node.Allocation; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.time.Duration; import java.util.Map; import java.util.Optional; @@ -27,10 +27,10 @@ public class ArchiveUris { private static final Pattern validUriPattern = Pattern.compile("[a-z0-9]+://(?:(?:[a-z0-9]+(?:[-_][a-z0-9.]+)*)+/)+"); private static final Duration cacheTtl = Duration.ofMinutes(1); - private final CuratorDatabaseClient db; + private final CuratorDb db; private final CachedSupplier<Map<TenantName, String>> archiveUris; - public ArchiveUris(CuratorDatabaseClient db) { + public ArchiveUris(CuratorDb db) { this.db = db; this.archiveUris = new CachedSupplier<>(db::readArchiveUris, cacheTtl); } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FirmwareChecks.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FirmwareChecks.java index 475d03e92e4..ff375f2abe1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FirmwareChecks.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/FirmwareChecks.java @@ -2,7 +2,7 @@ package com.yahoo.vespa.hosted.provision.provisioning; import com.yahoo.lang.CachedSupplier; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.time.Clock; import java.time.Duration; @@ -24,11 +24,11 @@ public class FirmwareChecks { private static final Duration cacheExpiry = Duration.ofMinutes(1); - private final CuratorDatabaseClient database; + private final CuratorDb database; private final Clock clock; private final CachedSupplier<Optional<Instant>> checkAfter; - public FirmwareChecks(CuratorDatabaseClient database, Clock clock) { + public FirmwareChecks(CuratorDb database, Clock clock) { this.database = database; this.clock = clock; this.checkAfter = new CachedSupplier<>(database::readFirmwareCheck, cacheExpiry); diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java index 8794d0b373e..3e8124d5309 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/LoadBalancerProvisioner.java @@ -6,7 +6,6 @@ import com.yahoo.config.provision.ApplicationName; import com.yahoo.config.provision.ApplicationTransaction; import com.yahoo.config.provision.CloudAccount; import com.yahoo.config.provision.ClusterSpec; -import com.yahoo.config.provision.ClusterSpec.Type; import com.yahoo.config.provision.HostName; import com.yahoo.config.provision.LoadBalancerSettings; import com.yahoo.config.provision.NodeType; @@ -26,7 +25,7 @@ import com.yahoo.vespa.hosted.provision.lb.LoadBalancerService; import com.yahoo.vespa.hosted.provision.lb.LoadBalancerSpec; import com.yahoo.vespa.hosted.provision.lb.Real; import com.yahoo.vespa.hosted.provision.node.IP; -import com.yahoo.vespa.hosted.provision.persistence.CuratorDatabaseClient; +import com.yahoo.vespa.hosted.provision.persistence.CuratorDb; import java.time.Instant; import java.util.ArrayList; @@ -34,7 +33,6 @@ import java.util.Collections; import java.util.LinkedHashSet; import java.util.List; import java.util.Map; -import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.function.Function; @@ -42,7 +40,6 @@ import java.util.logging.Level; import java.util.logging.Logger; import java.util.stream.Collectors; -import static java.util.Objects.requireNonNullElse; import static java.util.stream.Collectors.groupingBy; import static java.util.stream.Collectors.reducing; @@ -62,7 +59,7 @@ public class LoadBalancerProvisioner { private static final Logger log = Logger.getLogger(LoadBalancerProvisioner.class.getName()); private final NodeRepository nodeRepository; - private final CuratorDatabaseClient db; + private final CuratorDb db; private final LoadBalancerService service; private final BooleanFlag deactivateRouting; |