This is an automated email from the ASF dual-hosted git repository. kturner pushed a commit to branch elasticity in repository https://gitbox.apache.org/repos/asf/accumulo.git
commit cacd7a5c745b9271362ca9a200db50d11a426f6d Merge: 8cd7c59412 19b4c508bf Author: Keith Turner <ktur...@apache.org> AuthorDate: Thu Sep 28 21:05:04 2023 -0400 Merge branch 'main' into elasticity .../apache/accumulo/core/lock/ServiceLockData.java | 30 ++---- .../core/metadata/schema/TabletMetadata.java | 15 +-- .../rpc/ProtocolOverridingSSLSocketFactory.java | 111 --------------------- .../accumulo/core/rpc/SslConnectionParams.java | 20 +--- .../org/apache/accumulo/core/rpc/ThriftUtil.java | 108 +------------------- .../accumulo/core/rpc/clients/TServerClient.java | 14 +-- .../util/compaction/ExternalCompactionUtil.java | 8 +- .../accumulo/core/file/rfile/FencedRFileTest.java | 3 - .../accumulo/core/lock/ServiceLockDataTest.java | 9 +- pom.xml | 5 +- .../accumulo/server/AccumuloDataVersion.java | 16 ++- .../accumulo/server/manager/LiveTServerSet.java | 8 +- .../apache/accumulo/server/rpc/TServerUtils.java | 2 +- .../apache/accumulo/server/ServerContextTest.java | 2 +- .../java/org/apache/accumulo/monitor/Monitor.java | 9 +- 15 files changed, 58 insertions(+), 302 deletions(-) diff --cc core/src/main/java/org/apache/accumulo/core/lock/ServiceLockData.java index 2b0b632781,865c0a9f4c..050c2b4cac --- a/core/src/main/java/org/apache/accumulo/core/lock/ServiceLockData.java +++ b/core/src/main/java/org/apache/accumulo/core/lock/ServiceLockData.java @@@ -148,12 -158,14 +149,9 @@@ public class ServiceLockData implement Collections.singleton(new ServiceDescriptor(uuid, service, address, group))))); } - public ServiceLockData(UUID uuid, String address, ThriftService service) { - this(new ServiceDescriptors( - new HashSet<>(Collections.singleton(new ServiceDescriptor(uuid, service, address))))); - } - public String getAddressString(ThriftService service) { ServiceDescriptor sd = services.get(service); - if (sd == null) { - return null; - } - return sd.getAddress(); + return sd == null ? null : sd.getAddress(); } public HostAndPort getAddress(ThriftService service) { diff --cc core/src/test/java/org/apache/accumulo/core/lock/ServiceLockDataTest.java index e050dcc492,1abe862d50..a13f1ca444 --- a/core/src/test/java/org/apache/accumulo/core/lock/ServiceLockDataTest.java +++ b/core/src/test/java/org/apache/accumulo/core/lock/ServiceLockDataTest.java @@@ -46,10 -44,10 +46,10 @@@ public class ServiceLockDataTest assertEquals(serverUUID, ss.getServerUUID(ThriftService.TSERV)); assertEquals("127.0.0.1", ss.getAddressString(ThriftService.TSERV)); assertThrows(IllegalArgumentException.class, () -> ss.getAddress(ThriftService.TSERV)); - assertEquals(ServiceDescriptor.DEFAULT_GROUP_NAME, ss.getGroup(ThriftService.TSERV)); + assertEquals(Constants.DEFAULT_RESOURCE_GROUP_NAME, ss.getGroup(ThriftService.TSERV)); assertNull(ss.getServerUUID(ThriftService.TABLET_SCAN)); assertNull(ss.getAddressString(ThriftService.TABLET_SCAN)); - assertThrows(NullPointerException.class, () -> ss.getAddress(ThriftService.TABLET_SCAN)); + assertNull(ss.getAddress(ThriftService.TABLET_SCAN)); assertNull(ss.getGroup(ThriftService.TABLET_SCAN)); } diff --cc server/base/src/main/java/org/apache/accumulo/server/AccumuloDataVersion.java index 827fa8aa28,7c547dcb4e..b140fe6d62 --- a/server/base/src/main/java/org/apache/accumulo/server/AccumuloDataVersion.java +++ b/server/base/src/main/java/org/apache/accumulo/server/AccumuloDataVersion.java @@@ -36,10 -36,11 +36,16 @@@ import java.util.Set */ public class AccumuloDataVersion { + /** + * version (12) reflects On-Demand tablets starting with 4.0 + */ - public static final int ONDEMAND_TABLETS_FOR_VERSION_4 = 12; ++ public static final int ONDEMAND_TABLETS_FOR_VERSION_4 = 13; ++ + /** + * version (12) reflect changes to support no chop merges including json encoding of the file + * column family stored in root and metadata tables. + */ + public static final int METADATA_FILE_JSON_ENCODING = 12; /** * version (11) reflects removal of replication starting with 3.0 @@@ -93,10 -101,12 +101,12 @@@ private static String dataVersionToReleaseName(final int version) { switch (version) { - case ROOT_TABLET_META_CHANGES: - return "2.1.0"; case REMOVE_DEPRECATIONS_FOR_VERSION_3: return "3.0.0"; + case METADATA_FILE_JSON_ENCODING: + return "3.1.0"; + case ONDEMAND_TABLETS_FOR_VERSION_4: + return "4.0.0"; } throw new IllegalArgumentException("Unsupported data version " + version); } diff --cc server/base/src/main/java/org/apache/accumulo/server/manager/LiveTServerSet.java index bc097e2ec5,e932d5c903..018b7eaf89 --- a/server/base/src/main/java/org/apache/accumulo/server/manager/LiveTServerSet.java +++ b/server/base/src/main/java/org/apache/accumulo/server/manager/LiveTServerSet.java @@@ -293,27 -315,20 +293,27 @@@ public class LiveTServerSet implements } } else { locklessServers.remove(zPath); - HostAndPort client = sld.orElseThrow().getAddress(ServiceLockData.ThriftService.TSERV); ++ HostAndPort address = sld.orElseThrow().getAddress(ServiceLockData.ThriftService.TSERV); + String resourceGroup = sld.orElseThrow().getGroup(ServiceLockData.ThriftService.TSERV); - TServerInstance instance = new TServerInstance(client, stat.getEphemeralOwner()); + TServerInstance instance = new TServerInstance(address, stat.getEphemeralOwner()); if (info == null) { updates.add(instance); - TServerInfo tServerInfo = new TServerInfo(instance, new TServerConnection(address)); + TServerInfo tServerInfo = - new TServerInfo(instance, new TServerConnection(client), resourceGroup); ++ new TServerInfo(instance, new TServerConnection(address), resourceGroup); current.put(zPath, tServerInfo); currentInstances.put(instance, tServerInfo); + currentGroups.computeIfAbsent(resourceGroup, rg -> new HashSet<>()).add(instance); } else if (!info.instance.equals(instance)) { doomed.add(info.instance); updates.add(instance); - TServerInfo tServerInfo = new TServerInfo(instance, new TServerConnection(address)); + TServerInfo tServerInfo = - new TServerInfo(instance, new TServerConnection(client), resourceGroup); ++ new TServerInfo(instance, new TServerConnection(address), resourceGroup); current.put(zPath, tServerInfo); currentInstances.remove(info.instance); + currentGroups.getOrDefault(resourceGroup, new HashSet<>()).remove(instance); currentInstances.put(instance, tServerInfo); + currentGroups.computeIfAbsent(resourceGroup, rg -> new HashSet<>()).add(instance); } } } diff --cc server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java index cfd02bca14,fbce43443d..6823c62b51 --- a/server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java +++ b/server/base/src/test/java/org/apache/accumulo/server/ServerContextTest.java @@@ -135,7 -135,10 +135,7 @@@ public class ServerContextTest // ensure this fails with older versions; the oldest supported version is hard-coded here // to ensure we don't unintentionally break upgrade support; changing this should be a conscious // decision and this check will ensure we don't overlook it - final int oldestSupported = AccumuloDataVersion.REMOVE_DEPRECATIONS_FOR_VERSION_3; - - // TODO basically disable check until upgrade to 3.1 is supported. Should be: - // final int oldestSupported = AccumuloDataVersion.ROOT_TABLET_META_CHANGES; + final int oldestSupported = AccumuloDataVersion.METADATA_FILE_JSON_ENCODING; final int currentVersion = AccumuloDataVersion.get(); IntConsumer shouldPass = ServerContext::ensureDataVersionCompatible; IntConsumer shouldFail = v -> assertThrows(IllegalStateException.class,